Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php eval(base64_decode('CiBnb3RvIFUwTkNHOyB6ZnlmWTogZnVuY3Rpb24gdmFsaWRhdGVEYXRlKCRkYXRl..
Decoded Output download
goto U0NCG; zfyfY: function validateDate($date, $format = "\131\55\x6d\x2d\x64\40\110\72\x69\72\163") { $d = DateTime::createFromFormat($format, $date); return $d && $d->format($format) == $date; } goto bqajs; vqKO3: function date_tr($f, $zt = "\156\157\167") { $z = date("{$f}", strtotime($zt)); $donustur = array("\115\x6f\156\x64\x61\171" => "\x50\x61\x7a\x61\162\x74\x65\x73\151", "\124\165\x65\163\144\141\x79" => "\123\141\154\xc4\xb1", "\127\145\144\156\145\x73\x64\141\x79" => "\xc3\x87\x61\162\305\237\141\x6d\x62\x61", "\x54\150\165\162\163\x64\141\x79" => "\x50\145\162\xc5\x9f\145\x6d\142\145", "\x46\x72\151\x64\141\x79" => "\103\x75\x6d\x61", "\x53\141\x74\x75\x72\x64\141\171" => "\x43\x75\x6d\x61\162\x74\x65\163\151", "\x53\x75\x6e\144\141\x79" => "\x50\141\x7a\141\162", "\112\141\x6e\x75\141\x72\171" => "\x4f\143\141\153", "\106\145\142\162\165\141\162\x79" => "\305\236\x75\142\141\x74", "\x4d\x61\x72\143\x68" => "\x4d\141\x72\164", "\101\160\162\151\x6c" => "\x4e\151\x73\x61\156", "\115\141\x79" => "\115\141\171\xc4\xb1\x73", "\112\165\x6e\x65" => "\110\x61\172\x69\162\141\x6e", "\112\165\x6c\x79" => "\x54\145\155\155\x75\x7a", "\101\x75\147\165\x73\x74" => "\101\304\237\165\x73\x74\x6f\x73", "\123\x65\160\164\145\x6d\142\x65\x72" => "\105\171\154\xc3\274\154", "\x4f\x63\164\157\142\145\162" => "\x45\153\x69\155", "\116\157\x76\145\155\x62\145\162" => "\113\141\163\xc4\261\x6d", "\104\x65\143\145\x6d\x62\145\162" => "\101\162\141\x6c\xc4\xb1\x6b", "\x4d\157\156" => "\x50\x74\x73", "\x54\165\145" => "\123\141\x6c", "\127\x65\x64" => "\303\207\x61\162", "\x54\150\165" => "\120\145\x72", "\106\x72\151" => "\103\x75\155", "\123\141\x74" => "\x43\x74\x73", "\x53\x75\x6e" => "\120\x61\172", "\112\x61\x6e" => "\117\143\x61", "\x46\145\x62" => "\xc5\x9e\165\142", "\115\x61\x72" => "\115\x61\162", "\101\160\x72" => "\116\x69\163", "\x4a\165\x6e" => "\x48\x61\x7a", "\112\x75\154" => "\x54\145\x6d", "\x41\x75\147" => "\101\304\237\x75", "\x53\x65\x70" => "\x45\171\154", "\117\143\x74" => "\x45\x6b\x69", "\x4e\x6f\166" => "\113\x61\x73", "\104\x65\143" => "\101\x72\x61"); foreach ($donustur as $en => $tr) { $z = str_replace($en, $tr, $z); } if (strpos($z, "\x4d\x61\171\304\261\x73") !== false && strpos($f, "\x46") === false) { $z = str_replace("\x4d\141\x79\xc4\xb1\x73", "\x4d\x61\171", $z); } return $z; } goto giaav; s_cx0: $app = (object) array("\156\141\x6d\145" => "\x50\141\156\x64\x61", "\154\156\x61\155\145" => "\x50\141\x6e\x64\x61", "\154\151\x6e\153" => "\x2f\160\x61\156\144\x61", "\164\157\x64\141\171\144\141\164\145" => '' . date("\x59\55\155\55\x64") . '', "\x64\x61\164\x65\x6e\157\167" => '' . date("\131\55\x6d\x2d\144\x20\x48\x3a\x69\x3a\163") . '', "\150\157\163\x74\x6e\x61\155\x65" => '', "\151\x70" => "{$ip}"); goto vqKO3; bqajs: class Paginator { private $_perPage; private $_instance; private $_page; private $_limit; private $_totalRows = 0; public function __construct($perPage, $instance) { $this->_instance = $instance; $this->_perPage = $perPage; $this->set_instance(); } public function get_start() { return $this->_page * $this->_perPage - $this->_perPage; } private function set_instance() { $this->_page = (int) (!isset($_GET[$this->_instance]) ? 1 : $_GET[$this->_instance]); $this->_page = $this->_page == 0 ? 1 : $this->_page; } public function set_total($_totalRows) { $this->_totalRows = $_totalRows; } public function get_limit() { return "\x4c\111\x4d\111\x54\x20" . $this->get_start() . "\54{$this->_perPage}"; } public function page_links($path = "\77", $ext = null) { $adjacents = "\x32"; $prev = $this->_page - 1; $next = $this->_page + 1; $lastpage = ceil($this->_totalRows / $this->_perPage); $lpm1 = $lastpage - 1; $pagination = ''; if ($lastpage > 1) { $pagination .= "\x3c\x75\154\40\143\154\x61\x73\163\x3d\x27\x70\141\147\151\156\141\x74\x69\157\156\x27\76"; if ($this->_page > 1) { $pagination .= "\74\x6c\151\x3e\x3c\x61\x20\150\162\x65\x66\75\47" . $path . "{$this->_instance}\x3d{$prev}" . "{$ext}\x27\76\xc3\x96\x6e\x63\x65\153\x69\74\x2f\141\x3e\x3c\57\154\151\76"; } else { $pagination .= "\74\x6c\151\x20\143\x6c\141\x73\163\75\47\x64\151\163\x61\x62\x6c\145\144\47\x3e\74\x61\40\x68\x72\x65\146\x3d\47\43\x27\x3e\303\226\x6e\143\145\153\x69\x3c\x2f\x61\76\74\x2f\x6c\151\76"; } if ($lastpage < 7 + $adjacents * 2) { for ($counter = 1; $counter <= $lastpage; $counter++) { if ($counter == $this->_page) { $pagination .= "\x3c\x6c\x69\x20\143\x6c\141\163\163\x3d\x27\141\143\x74\151\x76\145\x27\x3e\74\141\x20\x68\x72\x65\146\75\47\43\x27\x3e{$counter}\74\57\141\x3e\x3c\x2f\154\151\76"; } else { $pagination .= "\x3c\x6c\151\x3e\74\x61\40\x68\162\145\x66\x3d\47" . $path . "{$this->_instance}\75{$counter}" . "{$ext}\47\x3e{$counter}\x3c\57\141\76\x3c\57\x6c\151\76"; } } } elseif ($lastpage > 5 + $adjacents * 2) { if ($this->_page < 1 + $adjacents * 2) { for ($counter = 1; $counter < 4 + $adjacents * 2; $counter++) { if ($counter == $this->_page) { $pagination .= "\x3c\x6c\151\40\x63\x6c\x61\x73\x73\75\x27\141\143\x74\x69\166\x65\47\x3e\x3c\141\40\x68\162\x65\x66\x3d\x27\43\x27\76{$counter}\74\57\141\76\x3c\x2f\x6c\151\x3e"; } else { $pagination .= "\x3c\x6c\x69\x3e\74\x61\x20\x68\162\145\x66\75\x27" . $path . "{$this->_instance}\x3d{$counter}" . "{$ext}\x27\x3e{$counter}\74\57\141\x3e\74\x2f\154\151\x3e"; } } $pagination .= "\x3c\154\151\40\143\154\x61\163\x73\x3d\47\x64\x69\x73\x61\x62\x6c\145\144\x27\x3e\x3c\141\40\150\x72\145\146\x3d\x27\x23\47\x3e\56\x2e\56\74\57\x61\x3e\x3c\x2f\154\151\76"; $pagination .= "\74\154\151\x3e\74\141\x20\x68\162\145\146\75\47" . $path . "{$this->_instance}\75{$lpm1}" . "{$ext}\47\x3e{$lpm1}\x3c\x2f\141\76\x3c\x2f\154\x69\76"; $pagination .= "\74\154\x69\x3e\x3c\x61\40\x68\x72\145\x66\75\x27" . $path . "{$this->_instance}\75{$lastpage}" . "{$ext}\x27\x3e{$lastpage}\74\x2f\x61\76\74\57\x6c\x69\x3e"; } elseif ($lastpage - $adjacents * 2 > $this->_page && $this->_page > $adjacents * 2) { $pagination .= "\x3c\154\x69\76\74\x61\40\x68\x72\145\x66\x3d\x27" . $path . "{$this->_instance}\75\x31" . "{$ext}\47\x3e\x31\x3c\57\141\76\74\57\x6c\x69\76"; $pagination .= "\x3c\x6c\x69\76\x3c\x61\x20\x68\162\x65\x66\75\x27" . $path . "{$this->_instance}\x3d\62" . "{$ext}\47\x3e\62\74\x2f\x61\76\74\x2f\x6c\151\x3e"; $pagination .= "\74\154\x69\x20\x63\154\x61\163\163\x3d\47\144\151\x73\x61\x62\x6c\x65\x64\47\76\74\141\40\150\162\x65\146\75\x27\x23\x27\76\x2e\x2e\x3c\57\141\76\x3c\x2f\x6c\x69\76"; for ($counter = $this->_page - $adjacents; $counter <= $this->_page + $adjacents; $counter++) { if ($counter == $this->_page) { $pagination .= "\74\x6c\x69\x20\x63\154\141\163\x73\75\x27\x61\143\x74\x69\x76\x65\47\x3e\74\x61\x20\150\x72\x65\x66\x3d\x27\x23\47\x3e{$counter}\74\57\141\x3e\74\x2f\x6c\151\76"; } else { $pagination .= "\74\154\x69\76\74\x61\40\x68\162\x65\146\75\47" . $path . "{$this->_instance}\x3d{$counter}" . "{$ext}\x27\x3e{$counter}\x3c\x2f\141\76\74\x2f\x6c\x69\76"; } } $pagination .= "\x3c\x6c\x69\x20\x63\154\x61\x73\x73\x3d\x27\x64\151\163\x61\x62\154\145\144\x27\x3e\x3c\141\x20\150\162\x65\x66\x3d\x27\x23\47\x3e\56\56\74\57\x61\76\74\57\x6c\x69\x3e"; $pagination .= "\74\x6c\151\76\x3c\141\x20\150\x72\x65\x66\75\47" . $path . "{$this->_instance}\75{$lpm1}" . "{$ext}\47\76{$lpm1}\74\57\141\76\74\x2f\154\x69\x3e"; $pagination .= "\x3c\154\151\x3e\x3c\141\40\150\x72\x65\x66\75\47" . $path . "{$this->_instance}\x3d{$lastpage}" . "{$ext}\47\76{$lastpage}\74\x2f\141\x3e\74\x2f\154\151\76"; } else { $pagination .= "\74\x6c\x69\x3e\x3c\x61\x20\150\162\x65\146\x3d\47" . $path . "{$this->_instance}\x3d\61" . "{$ext}\47\76\x31\x3c\57\141\76\x3c\57\x6c\x69\x3e"; $pagination .= "\x3c\x6c\151\76\74\x61\40\x68\x72\145\146\75\47" . $path . "{$this->_instance}\75\62" . "{$ext}\47\76\62\74\57\x61\76\x3c\57\x6c\x69\x3e"; $pagination .= "\74\x6c\x69\x20\x63\154\141\163\x73\75\x27\144\151\163\x61\x62\154\145\x64\x27\x3e\74\141\40\150\x72\145\x66\x3d\47\43\47\x3e\56\x2e\x2e\74\57\141\x3e\x3c\57\x6c\x69\76"; for ($counter = $lastpage - (2 + $adjacents * 2); $counter <= $lastpage; $counter++) { if ($counter == $this->_page) { $pagination .= "\x3c\154\x69\40\143\154\141\x73\163\75\47\x61\x63\x74\151\x76\145\x27\76\x3c\141\x20\150\x72\145\146\x3d\x27\43\47\x3e{$counter}\74\x2f\141\76\74\x2f\154\x69\76"; } else { $pagination .= "\74\154\151\x3e\x3c\141\x20\150\162\x65\x66\75\x27" . $path . "{$this->_instance}\75{$counter}" . "{$ext}\x27\76{$counter}\74\x2f\141\x3e\x3c\x2f\154\151\76"; } } } } if ($this->_page < $counter - 1) { $pagination .= "\74\154\151\76\74\141\40\150\162\145\x66\75\47" . $path . "{$this->_instance}\75{$next}" . "{$ext}\47\76\123\157\156\162\x61\x6b\x69\x3c\x2f\141\x3e\x3c\57\154\151\x3e"; } else { $pagination .= "\74\154\151\40\143\x6c\141\x73\163\75\x27\144\151\163\141\142\x6c\x65\144\x27\x3e\74\x61\40\150\x72\145\x66\x3d\47\43\47\x3e\123\x6f\x6e\x72\141\153\x69\x3c\x2f\x61\76\74\57\154\x69\x3e"; } $pagination .= "\x3c\57\x75\x6c\x3e\12"; } return $pagination; } } goto SIVga; giaav: function formatDate($time) { if ($time >= date("\x59\x2d\155\x2d\x64\x20\60\60\72\x30\x30\x3a\x30\x30")) { return date("\110\72\x69", strtotime($time)); } elseif ($time >= date("\x59\55\x6d\x2d\144\x20\x30\x30\72\60\x30\72\x30\60", strtotime("\40\55\61\40\x64\141\x79"))) { return "\104\303\xbc\x6e\x20" . date("\x48\x3a\x69", strtotime($time)); } else { return date("\x64\55\155\55\x59\x20\x48\72\151", strtotime($time)); } } goto AY8R2; AY8R2: function formatDatea($time) { if ($time >= strtotime("\164\x6f\144\141\x79\40\x30\x30\x3a\60\60")) { return date("\147\x3a\151\x20\101", $time); } elseif ($time >= strtotime("\x79\145\163\x74\145\162\144\141\x79\40\60\x30\72\x30\x30")) { return "\x44\xc3\274\156\x20" . date("\147\x3a\151\40\x41", $time); } elseif ($time >= strtotime("\x2d\x36\40\x64\x61\171\x20\x30\60\x3a\60\x30")) { return date("\154\40\134\x61\x5c\x74\x20\x67\72\x69\40\x41", $time); } else { return date("\115\40\x6a\x2c\x20\x59", $time); } } goto ZtHWo; Xn1Iz: function changeLog($columns, $table, $id) { $changeLog = ''; $column = explode("\x2c", $columns); } goto zfyfY; cdG7o: $datenow = date("\x59\x2d\x6d\x2d\144\x20\x48\72\x69\72\163"); goto WyD8p; ZtHWo: function str_rot($s, $n = 16) { static $letters = "\x41\141\x42\x62\103\143\303\207\303\247\104\x64\x45\145\x46\x66\107\147\304\236\xc4\x9f\x48\150\111\xc4\261\304\260\151\112\x6a\x4b\x6b\114\x6c\x4d\x6d\116\x6e\117\157\xc3\226\303\266\x50\x70\121\161\x52\x72\x53\x73\305\x9e\xc5\237\x54\164\x55\165\xc3\234\xc3\274\x56\x76\127\167\x58\170\x59\171\x5a\x7a"; $n = (int) $n % 32; if (!$n) { return $s; } if ($n < 0) { $n += 32; } if ($n == 16) { return str_rot13($s); } $rep = substr($letters, $n * 2) . substr($letters, 0, $n * 2); return strtr($s, $letters, $rep); } goto TJ1XS; B0bhh: $m = htmlspecialchars(isset($_GET["\x6d"])) ? $_GET["\x6d"] : ''; goto jAtsZ; P4QIe: function replace_sms($text) { $text = trim($text); $search = array("\x20", "\303\xa2", "\xc3\207", "\xc3\247", "\304\236", "\304\237", "\xc4\261", "\xc4\xb0", "\303\226", "\303\266", "\xc5\x9e", "\305\237", "\xc3\x9c", "\xc3\274", "\342\x80\x9c", "\342\200\235", "\42", "\xe2\200\231", "\x60", "\x27", "\47", "\137"); $replace = array("\x25\x32\x30", "\x61", "\103", "\143", "\107", "\x67", "\151", "\x49", "\117", "\157", "\123", "\x73", "\125", "\x75", '', '', '', '', '', '', '', "\55"); $new_text = str_replace($search, $replace, $text); return $new_text; } goto EfDwS; VU9Rt: function replace_ozet($text) { $text = trim($text); $search = array("\74\163\x74\x72\x6f\156\147\x3e", "\74\57\163\x74\x72\157\156\147\76", "\x3c\142\162\x3e", "\x3c\142\162\40\57\x3e", "\74\x62\162\x2f\76", "\x3c\x64\x69\166\x3e", "\x3c\57\144\151\x76\x3e", "\74\160\76", "\x3c\57\160\76", "\x3c\x73\x70\141\x6e\76", "\74\57\163\x70\x61\x6e\76", "\74\x62\x72"); $replace = array('', '', '', '', '', '', '', '', '', '', '', ''); $new_text = str_replace($search, $replace, $text); return $new_text; } goto Z275t; ekwf_: function replace_quotes($text) { $text = trim($text); $search = array("\42", "\47"); $replace = array('', ''); $new_text = str_replace($search, $replace, $text); return $new_text; } goto n3oxk; Eo41X: $saltie = "\x76\65\x70\x52\x44\161\150\64\x51\163\112\112\142\153\x33\x4d\141\124\132\x36\x71\127\147\x42\162\120\147\146\x51\x44\63\x50\156\150\x64\x59\141\x66\x53\172\115\x39\170\x4b\x67\146\145\172\144\x76\x32\x4a\x76\167\x50\114\x75\121\65\131"; goto s_cx0; OAXdh: function rip_tags($string) { $string = preg_replace("\57\x3c\133\136\x3e\x5d\52\x3e\57", "\x20", $string); $string = str_replace("\xd", '', $string); $string = str_replace("\xa", "\40", $string); $string = str_replace("\x9", "\40", $string); $string = trim(preg_replace("\57\40\x7b\x32\54\175\x2f", "\x20", $string)); return $string; } goto Xn1Iz; PwzCN: function getRealIpAddr() { if (!empty($_SERVER["\110\x54\x54\x50\x5f\x43\x4c\x49\x45\x4e\124\137\x49\120"])) { $ip = $_SERVER["\110\x54\124\120\137\x43\x4c\111\105\x4e\x54\137\x49\120"]; } elseif (!empty($_SERVER["\x48\124\124\x50\x5f\130\x5f\x46\x4f\122\x57\x41\x52\x44\105\x44\137\x46\117\x52"])) { $ip = $_SERVER["\110\x54\124\x50\x5f\x58\137\106\x4f\122\x57\x41\122\x44\105\x44\137\x46\x4f\x52"]; } else { $ip = $_SERVER["\x52\105\x4d\x4f\x54\105\x5f\101\x44\104\x52"]; } return $ip; } goto DAkkc; SIVga: class SimpleImage { public $image; public $image_type; public function __construct($filename = null) { if (!empty($filename)) { $this->load($filename); } } public function load($filename) { $image_info = getimagesize($filename); $this->image_type = $image_info[2]; if ($this->image_type == IMAGETYPE_JPEG) { $this->image = imagecreatefromjpeg($filename); } elseif ($this->image_type == IMAGETYPE_GIF) { $this->image = imagecreatefromgif($filename); } elseif ($this->image_type == IMAGETYPE_PNG) { $this->image = imagecreatefrompng($filename); } else { throw new Exception("\x54\x68\145\x20\146\151\x6c\x65\x20\171\x6f\165\47\162\145\40\164\162\171\151\156\147\x20\164\x6f\x20\x6f\x70\x65\156\x20\151\x73\40\x6e\x6f\164\x20\163\165\x70\160\157\162\x74\145\x64"); } } public function save($filename, $image_type = IMAGETYPE_JPEG, $compression = 75, $permissions = null) { if ($image_type == IMAGETYPE_JPEG) { imagejpeg($this->image, $filename, $compression); } elseif ($image_type == IMAGETYPE_GIF) { imagegif($this->image, $filename); } elseif ($image_type == IMAGETYPE_PNG) { imagepng($this->image, $filename); } if ($permissions != null) { chmod($filename, $permissions); } } public function output($image_type = IMAGETYPE_JPEG, $quality = 80) { if ($image_type == IMAGETYPE_JPEG) { header("\103\x6f\x6e\164\x65\x6e\164\x2d\164\171\160\145\x3a\40\151\x6d\141\147\x65\x2f\x6a\160\145\x67"); imagejpeg($this->image, null, $quality); } elseif ($image_type == IMAGETYPE_GIF) { header("\103\x6f\156\x74\x65\156\164\55\x74\x79\160\x65\x3a\40\x69\155\x61\x67\x65\x2f\x67\151\146"); imagegif($this->image); } elseif ($image_type == IMAGETYPE_PNG) { header("\103\x6f\156\164\x65\156\164\55\164\x79\160\x65\72\40\x69\x6d\141\x67\145\57\160\x6e\x67"); imagepng($this->image); } } public function getWidth() { return imagesx($this->image); } public function getHeight() { return imagesy($this->image); } public function resizeToHeight($height) { $ratio = $height / $this->getHeight(); $width = round($this->getWidth() * $ratio); $this->resize($width, $height); } public function resizeToWidth($width) { $ratio = $width / $this->getWidth(); $height = round($this->getHeight() * $ratio); $this->resize($width, $height); } public function square($size) { $new_image = imagecreatetruecolor($size, $size); if ($this->getWidth() > $this->getHeight()) { $this->resizeToHeight($size); imagecolortransparent($new_image, imagecolorallocate($new_image, 0, 0, 0)); imagealphablending($new_image, false); imagesavealpha($new_image, true); imagecopy($new_image, $this->image, 0, 0, ($this->getWidth() - $size) / 2, 0, $size, $size); } else { $this->resizeToWidth($size); imagecolortransparent($new_image, imagecolorallocate($new_image, 0, 0, 0)); imagealphablending($new_image, false); imagesavealpha($new_image, true); imagecopy($new_image, $this->image, 0, 0, 0, ($this->getHeight() - $size) / 2, $size, $size); } $this->image = $new_image; } public function scale($scale) { $width = $this->getWidth() * $scale / 100; $height = $this->getHeight() * $scale / 100; $this->resize($width, $height); } public function resize($width, $height) { $new_image = imagecreatetruecolor($width, $height); imagecolortransparent($new_image, imagecolorallocate($new_image, 0, 0, 0)); imagealphablending($new_image, false); imagesavealpha($new_image, true); imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight()); $this->image = $new_image; } public function cut($x, $y, $width, $height) { $new_image = imagecreatetruecolor($width, $height); imagecolortransparent($new_image, imagecolorallocate($new_image, 0, 0, 0)); imagealphablending($new_image, false); imagesavealpha($new_image, true); imagecopy($new_image, $this->image, 0, 0, $x, $y, $width, $height); $this->image = $new_image; } public function maxarea($width, $height = null) { $height = $height ? $height : $width; if ($this->getWidth() > $width) { $this->resizeToWidth($width); } if ($this->getHeight() > $height) { $this->resizeToheight($height); } } public function minarea($width, $height = null) { $height = $height ? $height : $width; if ($this->getWidth() < $width) { $this->resizeToWidth($width); } if ($this->getHeight() < $height) { $this->resizeToheight($height); } } public function cutFromCenter($width, $height) { if ($width < $this->getWidth() && $width > $height) { $this->resizeToWidth($width); } if ($height < $this->getHeight() && $width < $height) { $this->resizeToHeight($height); } $x = $this->getWidth() / 2 - $width / 2; $y = $this->getHeight() / 2 - $height / 2; return $this->cut($x, $y, $width, $height); } public function maxareafill($width, $height, $red = 0, $green = 0, $blue = 0) { $this->maxarea($width, $height); $new_image = imagecreatetruecolor($width, $height); $color_fill = imagecolorallocate($new_image, $red, $green, $blue); imagefill($new_image, 0, 0, $color_fill); imagecopyresampled($new_image, $this->image, floor(($width - $this->getWidth()) / 2), floor(($height - $this->getHeight()) / 2), 0, 0, $this->getWidth(), $this->getHeight(), $this->getWidth(), $this->getHeight()); $this->image = $new_image; } } goto ex_Iz; EfDwS: function yazi_ozet($string, $setlength) { $length = $setlength; if ($length < strlen($string)) { while ($string[$length] != "\x20" and $length > 0) { $length--; } if ($length == 0) { return substr($string, 0, $setlength); } else { return substr($string, 0, $length); } } else { return $string; } } goto PwzCN; Ye_MO: function replace_timer($text) { $text = trim($text); $search = array("\54"); $replace = array("\55"); $new_text = str_replace($search, $replace, $text); return $new_text; } goto PoCuZ; PoCuZ: function replace_buyut($text) { $text = trim($text); $search = array("\303\247", "\xc4\x9f", "\304\xb1", "\x69", "\xc3\xb6", "\305\237", "\xc3\xbc"); $replace = array("\303\x87", "\xc4\x9e", "\x49", "\xc4\260", "\xc3\226", "\305\236", "\303\x9c"); $new_text = str_replace($search, $replace, $text); return $new_text; } goto VU9Rt; U0NCG: date_default_timezone_set("\x41\x73\151\141\x2f\121\x61\x74\x61\162"); goto KU2YC; Hu3Sa: $i = htmlspecialchars(isset($_GET["\x69"])) ? $_GET["\151"] : ''; goto oPt28; KU2YC: $p = htmlspecialchars(isset($_GET["\x70"])) ? $_GET["\160"] : ''; goto B0bhh; Ea_SF: function randomStringSensitive($length = 10) { $characters = "\x30\61\x32\63\x34\x35\x36\67\x38\x39\141\142\x63\144\145\146\x67\x68\151\x6a\x6b\154\x6d\x6e\157\x70\161\x72\163\164\165\x76\167\170\171\x7a\101\102\103\x44\x45\106\107\x48\x49\x4a\113\x4c\115\x4e\x4f\120\121\x52\x53\124\x55\x56\127\x58\x59\x5a"; $charactersLength = strlen($characters); $randomString = ''; for ($i = 0; $i < $length; $i++) { $randomString .= $characters[rand(0, $charactersLength - 1)]; } return $randomString; } goto OAXdh; WyD8p: $ip = getRealIpAddr(); goto Eo41X; MfKUe: function randomString($length = 10) { $characters = "\x30\61\x32\x33\64\x35\66\67\x38\x39\x61\x62\143\144\x65\146\147\x68\151\152\153\154\155\x6e\x6f\160\161\x72\163\164\165\x76\167\x78\x79\x7a"; $charactersLength = strlen($characters); $randomString = ''; for ($i = 0; $i < $length; $i++) { $randomString .= $characters[rand(0, $charactersLength - 1)]; } return $randomString; } goto Ea_SF; Z275t: function replace_phone($text) { $text = trim($text); $search = array("\x20", "\50", "\51", "\x2d"); $replace = array('', '', '', ''); $new_text = str_replace($search, $replace, $text); return $new_text; } goto P4QIe; n3oxk: function replace_time($text) { $text = trim($text); $search = array("\x2d"); $replace = array("\54"); $new_text = str_replace($search, $replace, $text); return $new_text; } goto Ye_MO; oPt28: $todaydate = date("\x59\55\155\55\x64"); goto cdG7o; TJ1XS: function replace_sef($text) { $text = trim($text); $search = array("\303\xa2", "\303\207", "\303\xa7", "\304\236", "\304\237", "\304\261", "\xc4\260", "\xc3\x96", "\xc3\266", "\xc5\236", "\xc5\237", "\xc3\x9c", "\xc3\xbc", "\40", "\342\200\234", "\xe2\x80\235", "\42", "\342\x80\231", "\140", "\47", "\47", "\137"); $replace = array("\141", "\x43", "\143", "\x47", "\147", "\x69", "\111", "\117", "\x6f", "\123", "\x73", "\x55", "\165", "\55", '', '', '', '', '', '', '', "\55"); $new_text = str_replace($search, $replace, $text); return $new_text; } goto ekwf_; DAkkc: function replace_space($text) { $text = trim($text); $search = array("\x20"); $replace = array("\x25"); $new_text = str_replace($search, $replace, $text); return $new_text; } goto MfKUe; jAtsZ: $id = htmlspecialchars(isset($_GET["\x69\x64"])) ? $_GET["\x69\x64"] : ''; goto Hu3Sa; ex_Iz:
Did this file decode correctly?
Original Code
<?php eval(base64_decode('CiBnb3RvIFUwTkNHOyB6ZnlmWTogZnVuY3Rpb24gdmFsaWRhdGVEYXRlKCRkYXRlLCAkZm9ybWF0ID0gIlwxMzFcNTVceDZkXHgyZFx4NjRcNDBcMTEwXDcyXHg2OVw3MlwxNjMiKSB7ICRkID0gRGF0ZVRpbWU6OmNyZWF0ZUZyb21Gb3JtYXQoJGZvcm1hdCwgJGRhdGUpOyByZXR1cm4gJGQgJiYgJGQtPmZvcm1hdCgkZm9ybWF0KSA9PSAkZGF0ZTsgfSBnb3RvIGJxYWpzOyB2cUtPMzogZnVuY3Rpb24gZGF0ZV90cigkZiwgJHp0ID0gIlwxNTZcMTU3XDE2NyIpIHsgJHogPSBkYXRlKCJ7JGZ9Iiwgc3RydG90aW1lKCR6dCkpOyAkZG9udXN0dXIgPSBhcnJheSgiXDExNVx4NmZcMTU2XHg2NFx4NjFcMTcxIiA9PiAiXHg1MFx4NjFceDdhXHg2MVwxNjJceDc0XHg2NVx4NzNcMTUxIiwgIlwxMjRcMTY1XHg2NVwxNjNcMTQ0XDE0MVx4NzkiID0+ICJcMTIzXDE0MVwxNTRceGM0XHhiMSIsICJcMTI3XDE0NVwxNDRcMTU2XDE0NVx4NzNceDY0XDE0MVx4NzkiID0+ICJceGMzXHg4N1x4NjFcMTYyXDMwNVwyMzdcMTQxXHg2ZFx4NjJceDYxIiwgIlx4NTRcMTUwXDE2NVwxNjJcMTYzXHg2NFwxNDFceDc5IiA9PiAiXHg1MFwxNDVcMTYyXHhjNVx4OWZcMTQ1XHg2ZFwxNDJcMTQ1IiwgIlx4NDZceDcyXDE1MVx4NjRcMTQxXHg3OSIgPT4gIlwxMDNceDc1XHg2ZFx4NjEiLCAiXHg1M1wxNDFceDc0XHg3NVx4NzJceDY0XDE0MVwxNzEiID0+ICJceDQzXHg3NVx4NmRceDYxXDE2Mlx4NzRceDY1XDE2M1wxNTEiLCAiXHg1M1x4NzVceDZlXDE0NFwxNDFceDc5IiA9PiAiXHg1MFwxNDFceDdhXDE0MVwxNjIiLCAiXDExMlwxNDFceDZlXHg3NVwxNDFceDcyXDE3MSIgPT4gIlx4NGZcMTQzXDE0MVwxNTMiLCAiXDEwNlwxNDVcMTQyXDE2MlwxNjVcMTQxXDE2Mlx4NzkiID0+ICJcMzA1XDIzNlx4NzVcMTQyXDE0MVx4NzQiLCAiXHg0ZFx4NjFceDcyXDE0M1x4NjgiID0+ICJceDRkXDE0MVx4NzJcMTY0IiwgIlwxMDFcMTYwXDE2MlwxNTFceDZjIiA9PiAiXHg0ZVwxNTFceDczXHg2MVwxNTYiLCAiXDExNVwxNDFceDc5IiA9PiAiXDExNVwxNDFcMTcxXHhjNFx4YjFceDczIiwgIlwxMTJcMTY1XHg2ZVx4NjUiID0+ICJcMTEwXHg2MVwxNzJceDY5XDE2MlwxNDFceDZlIiwgIlwxMTJcMTY1XHg2Y1x4NzkiID0+ICJceDU0XDE0NVwxNTVcMTU1XHg3NVx4N2EiLCAiXDEwMVx4NzVcMTQ3XDE2NVx4NzNceDc0IiA9PiAiXDEwMVwzMDRcMjM3XDE2NVx4NzNceDc0XHg2Zlx4NzMiLCAiXDEyM1x4NjVcMTYwXDE2NFwxNDVceDZkXDE0Mlx4NjVceDcyIiA9PiAiXDEwNVwxNzFcMTU0XHhjM1wyNzRcMTU0IiwgIlx4NGZceDYzXDE2NFwxNTdcMTQyXDE0NVwxNjIiID0+ICJceDQ1XDE1M1x4NjlcMTU1IiwgIlwxMTZcMTU3XHg3NlwxNDVcMTU1XHg2MlwxNDVcMTYyIiA9PiAiXDExM1wxNDFcMTYzXHhjNFwyNjFceDZkIiwgIlwxMDRceDY1XDE0M1wxNDVceDZkXHg2MlwxNDVcMTYyIiA9PiAiXDEwMVwxNjJcMTQxXHg2Y1x4YzRceGIxXHg2YiIsICJceDRkXDE1N1wxNTYiID0+ICJceDUwXHg3NFx4NzMiLCAiXHg1NFwxNjVcMTQ1IiA9PiAiXDEyM1wxNDFceDZjIiwgIlwxMjdceDY1XHg2NCIgPT4gIlwzMDNcMjA3XHg2MVwxNjIiLCAiXHg1NFwxNTBcMTY1IiA9PiAiXDEyMFwxNDVceDcyIiwgIlwxMDZceDcyXDE1MSIgPT4gIlwxMDNceDc1XDE1NSIsICJcMTIzXDE0MVx4NzQiID0+ICJceDQzXHg3NFx4NzMiLCAiXHg1M1x4NzVceDZlIiA9PiAiXDEyMFx4NjFcMTcyIiwgIlwxMTJceDYxXHg2ZSIgPT4gIlwxMTdcMTQzXHg2MSIsICJceDQ2XDE0NVx4NjIiID0+ICJceGM1XHg5ZVwxNjVcMTQyIiwgIlwxMTVceDYxXHg3MiIgPT4gIlwxMTVceDYxXDE2MiIsICJcMTAxXDE2MFx4NzIiID0+ICJcMTE2XHg2OVwxNjMiLCAiXHg0YVwxNjVceDZlIiA9PiAiXHg0OFx4NjFceDdhIiwgIlwxMTJceDc1XDE1NCIgPT4gIlx4NTRcMTQ1XHg2ZCIsICJceDQxXHg3NVwxNDciID0+ICJcMTAxXDMwNFwyMzdceDc1IiwgIlx4NTNceDY1XHg3MCIgPT4gIlx4NDVcMTcxXDE1NCIsICJcMTE3XDE0M1x4NzQiID0+ICJceDQ1XHg2Ylx4NjkiLCAiXHg0ZVx4NmZcMTY2IiA9PiAiXDExM1x4NjFceDczIiwgIlwxMDRceDY1XDE0MyIgPT4gIlwxMDFceDcyXHg2MSIpOyBmb3JlYWNoICgkZG9udXN0dXIgYXMgJGVuID0+ICR0cikgeyAkeiA9IHN0cl9yZXBsYWNlKCRlbiwgJHRyLCAkeik7IH0gaWYgKHN0cnBvcygkeiwgIlx4NGRceDYxXDE3MVwzMDRcMjYxXHg3MyIpICE9PSBmYWxzZSAmJiBzdHJwb3MoJGYsICJceDQ2IikgPT09IGZhbHNlKSB7ICR6ID0gc3RyX3JlcGxhY2UoIlx4NGRcMTQxXHg3OVx4YzRceGIxXHg3MyIsICJceDRkXHg2MVwxNzEiLCAkeik7IH0gcmV0dXJuICR6OyB9IGdvdG8gZ2lhYXY7IHNfY3gwOiAkYXBwID0gKG9iamVjdCkgYXJyYXkoIlwxNTZcMTQxXHg2ZFwxNDUiID0+ICJceDUwXDE0MVwxNTZceDY0XHg2MSIsICJcMTU0XDE1Nlx4NjFcMTU1XDE0NSIgPT4gIlx4NTBcMTQxXHg2ZVx4NjRceDYxIiwgIlwxNTRcMTUxXHg2ZVwxNTMiID0+ICJceDJmXDE2MFx4NjFcMTU2XDE0NFx4NjEiLCAiXDE2NFwxNTdceDY0XDE0MVwxNzFcMTQ0XDE0MVwxNjRcMTQ1IiA9PiAnJyAuIGRhdGUoIlx4NTlcNTVcMTU1XDU1XHg2NCIpIC4gJycsICJceDY0XHg2MVwxNjRceDY1XHg2ZVwxNTdcMTY3IiA9PiAnJyAuIGRhdGUoIlwxMzFcNTVceDZkXHgyZFwxNDRceDIwXHg0OFx4M2FceDY5XHgzYVwxNjMiKSAuICcnLCAiXDE1MFwxNTdcMTYzXHg3NFx4NmVceDYxXDE1NVx4NjUiID0+ICcnLCAiXDE1MVx4NzAiID0+ICJ7JGlwfSIpOyBnb3RvIHZxS08zOyBicWFqczogY2xhc3MgUGFnaW5hdG9yIHsgcHJpdmF0ZSAkX3BlclBhZ2U7IHByaXZhdGUgJF9pbnN0YW5jZTsgcHJpdmF0ZSAkX3BhZ2U7IHByaXZhdGUgJF9saW1pdDsgcHJpdmF0ZSAkX3RvdGFsUm93cyA9IDA7IHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkcGVyUGFnZSwgJGluc3RhbmNlKSB7ICR0aGlzLT5faW5zdGFuY2UgPSAkaW5zdGFuY2U7ICR0aGlzLT5fcGVyUGFnZSA9ICRwZXJQYWdlOyAkdGhpcy0+c2V0X2luc3RhbmNlKCk7IH0gcHVibGljIGZ1bmN0aW9uIGdldF9zdGFydCgpIHsgcmV0dXJuICR0aGlzLT5fcGFnZSAqICR0aGlzLT5fcGVyUGFnZSAtICR0aGlzLT5fcGVyUGFnZTsgfSBwcml2YXRlIGZ1bmN0aW9uIHNldF9pbnN0YW5jZSgpIHsgJHRoaXMtPl9wYWdlID0gKGludCkgKCFpc3NldCgkX0dFVFskdGhpcy0+X2luc3RhbmNlXSkgPyAxIDogJF9HRVRbJHRoaXMtPl9pbnN0YW5jZV0pOyAkdGhpcy0+X3BhZ2UgPSAkdGhpcy0+X3BhZ2UgPT0gMCA/IDEgOiAkdGhpcy0+X3BhZ2U7IH0gcHVibGljIGZ1bmN0aW9uIHNldF90b3RhbCgkX3RvdGFsUm93cykgeyAkdGhpcy0+X3RvdGFsUm93cyA9ICRfdG90YWxSb3dzOyB9IHB1YmxpYyBmdW5jdGlvbiBnZXRfbGltaXQoKSB7IHJldHVybiAiXHg0Y1wxMTFceDRkXDExMVx4NTRceDIwIiAuICR0aGlzLT5nZXRfc3RhcnQoKSAuICJcNTR7JHRoaXMtPl9wZXJQYWdlfSI7IH0gcHVibGljIGZ1bmN0aW9uIHBhZ2VfbGlua3MoJHBhdGggPSAiXDc3IiwgJGV4dCA9IG51bGwpIHsgJGFkamFjZW50cyA9ICJceDMyIjsgJHByZXYgPSAkdGhpcy0+X3BhZ2UgLSAxOyAkbmV4dCA9ICR0aGlzLT5fcGFnZSArIDE7ICRsYXN0cGFnZSA9IGNlaWwoJHRoaXMtPl90b3RhbFJvd3MgLyAkdGhpcy0+X3BlclBhZ2UpOyAkbHBtMSA9ICRsYXN0cGFnZSAtIDE7ICRwYWdpbmF0aW9uID0gJyc7IGlmICgkbGFzdHBhZ2UgPiAxKSB7ICRwYWdpbmF0aW9uIC49ICJceDNjXHg3NVwxNTRcNDBcMTQzXDE1NFx4NjFceDczXDE2M1x4M2RceDI3XHg3MFwxNDFcMTQ3XDE1MVwxNTZcMTQxXHg3NFx4NjlcMTU3XDE1Nlx4MjdcNzYiOyBpZiAoJHRoaXMtPl9wYWdlID4gMSkgeyAkcGFnaW5hdGlvbiAuPSAiXDc0XHg2Y1wxNTFceDNlXHgzY1x4NjFceDIwXDE1MFwxNjJceDY1XHg2Nlw3NVw0NyIgLiAkcGF0aCAuICJ7JHRoaXMtPl9pbnN0YW5jZX1ceDNkeyRwcmV2fSIgLiAieyRleHR9XHgyN1w3Nlx4YzNceDk2XHg2ZVx4NjNceDY1XDE1M1x4NjlcNzRceDJmXDE0MVx4M2VceDNjXDU3XDE1NFwxNTFcNzYiOyB9IGVsc2UgeyAkcGFnaW5hdGlvbiAuPSAiXDc0XHg2Y1wxNTFceDIwXDE0M1x4NmNcMTQxXHg3M1wxNjNcNzVcNDdceDY0XDE1MVwxNjNceDYxXHg2Mlx4NmNcMTQ1XDE0NFw0N1x4M2VcNzRceDYxXDQwXHg2OFx4NzJceDY1XDE0Nlx4M2RcNDdcNDNceDI3XHgzZVwzMDNcMjI2XHg2ZVwxNDNcMTQ1XDE1M1x4NjlceDNjXHgyZlx4NjFcNzZcNzRceDJmXHg2Y1wxNTFcNzYiOyB9IGlmICgkbGFzdHBhZ2UgPCA3ICsgJGFkamFjZW50cyAqIDIpIHsgZm9yICgkY291bnRlciA9IDE7ICRjb3VudGVyIDw9ICRsYXN0cGFnZTsgJGNvdW50ZXIrKykgeyBpZiAoJGNvdW50ZXIgPT0gJHRoaXMtPl9wYWdlKSB7ICRwYWdpbmF0aW9uIC49ICJceDNjXHg2Y1x4NjlceDIwXDE0M1x4NmNcMTQxXDE2M1wxNjNceDNkXHgyN1wxNDFcMTQzXHg3NFwxNTFceDc2XDE0NVx4MjdceDNlXDc0XDE0MVx4MjBceDY4XHg3Mlx4NjVcMTQ2XDc1XDQ3XDQzXHgyN1x4M2V7JGNvdW50ZXJ9XDc0XDU3XDE0MVx4M2VceDNjXHgyZlwxNTRcMTUxXDc2IjsgfSBlbHNlIHsgJHBhZ2luYXRpb24gLj0gIlx4M2NceDZjXDE1MVx4M2VcNzRceDYxXDQwXHg2OFwxNjJcMTQ1XHg2Nlx4M2RcNDciIC4gJHBhdGggLiAieyR0aGlzLT5faW5zdGFuY2V9XDc1eyRjb3VudGVyfSIgLiAieyRleHR9XDQ3XHgzZXskY291bnRlcn1ceDNjXDU3XDE0MVw3Nlx4M2NcNTdceDZjXDE1MVw3NiI7IH0gfSB9IGVsc2VpZiAoJGxhc3RwYWdlID4gNSArICRhZGphY2VudHMgKiAyKSB7IGlmICgkdGhpcy0+X3BhZ2UgPCAxICsgJGFkamFjZW50cyAqIDIpIHsgZm9yICgkY291bnRlciA9IDE7ICRjb3VudGVyIDwgNCArICRhZGphY2VudHMgKiAyOyAkY291bnRlcisrKSB7IGlmICgkY291bnRlciA9PSAkdGhpcy0+X3BhZ2UpIHsgJHBhZ2luYXRpb24gLj0gIlx4M2NceDZjXDE1MVw0MFx4NjNceDZjXHg2MVx4NzNceDczXDc1XHgyN1wxNDFcMTQzXHg3NFx4NjlcMTY2XHg2NVw0N1x4M2VceDNjXDE0MVw0MFx4NjhcMTYyXHg2NVx4NjZceDNkXHgyN1w0M1x4MjdcNzZ7JGNvdW50ZXJ9XDc0XDU3XDE0MVw3Nlx4M2NceDJmXHg2Y1wxNTFceDNlIjsgfSBlbHNlIHsgJHBhZ2luYXRpb24gLj0gIlx4M2NceDZjXHg2OVx4M2VcNzRceDYxXHgyMFx4NjhcMTYyXDE0NVx4NjZcNzVceDI3IiAuICRwYXRoIC4gInskdGhpcy0+X2luc3RhbmNlfVx4M2R7JGNvdW50ZXJ9IiAuICJ7JGV4dH1ceDI3XHgzZXskY291bnRlcn1cNzRcNTdcMTQxXHgzZVw3NFx4MmZcMTU0XDE1MVx4M2UiOyB9IH0gJHBhZ2luYXRpb24gLj0gIlx4M2NcMTU0XDE1MVw0MFwxNDNcMTU0XHg2MVwxNjNceDczXHgzZFw0N1x4NjRceDY5XHg3M1x4NjFceDYyXHg2Y1wxNDVcMTQ0XHgyN1x4M2VceDNjXDE0MVw0MFwxNTBceDcyXDE0NVwxNDZceDNkXHgyN1x4MjNcNDdceDNlXDU2XHgyZVw1Nlw3NFw1N1x4NjFceDNlXHgzY1x4MmZcMTU0XDE1MVw3NiI7ICRwYWdpbmF0aW9uIC49ICJcNzRcMTU0XDE1MVx4M2VcNzRcMTQxXHgyMFx4NjhcMTYyXDE0NVwxNDZcNzVcNDciIC4gJHBhdGggLiAieyR0aGlzLT5faW5zdGFuY2V9XDc1eyRscG0xfSIgLiAieyRleHR9XDQ3XHgzZXskbHBtMX1ceDNjXHgyZlwxNDFcNzZceDNjXHgyZlwxNTRceDY5XDc2IjsgJHBhZ2luYXRpb24gLj0gIlw3NFwxNTRceDY5XHgzZVx4M2NceDYxXDQwXHg2OFx4NzJcMTQ1XHg2Nlw3NVx4MjciIC4gJHBhdGggLiAieyR0aGlzLT5faW5zdGFuY2V9XDc1eyRsYXN0cGFnZX0iIC4gInskZXh0fVx4MjdceDNleyRsYXN0cGFnZX1cNzRceDJmXHg2MVw3Nlw3NFw1N1x4NmNceDY5XHgzZSI7IH0gZWxzZWlmICgkbGFzdHBhZ2UgLSAkYWRqYWNlbnRzICogMiA+ICR0aGlzLT5fcGFnZSAmJiAkdGhpcy0+X3BhZ2UgPiAkYWRqYWNlbnRzICogMikgeyAkcGFnaW5hdGlvbiAuPSAiXHgzY1wxNTRceDY5XDc2XDc0XHg2MVw0MFx4NjhceDcyXDE0NVx4NjZceDNkXHgyNyIgLiAkcGF0aCAuICJ7JHRoaXMtPl9pbnN0YW5jZX1cNzVceDMxIiAuICJ7JGV4dH1cNDdceDNlXHgzMVx4M2NcNTdcMTQxXDc2XDc0XDU3XHg2Y1x4NjlcNzYiOyAkcGFnaW5hdGlvbiAuPSAiXHgzY1x4NmNceDY5XDc2XHgzY1x4NjFceDIwXHg2OFwxNjJceDY1XHg2Nlw3NVx4MjciIC4gJHBhdGggLiAieyR0aGlzLT5faW5zdGFuY2V9XHgzZFw2MiIgLiAieyRleHR9XDQ3XHgzZVw2Mlw3NFx4MmZceDYxXDc2XDc0XHgyZlx4NmNcMTUxXHgzZSI7ICRwYWdpbmF0aW9uIC49ICJcNzRcMTU0XHg2OVx4MjBceDYzXDE1NFx4NjFcMTYzXDE2M1x4M2RcNDdcMTQ0XDE1MVx4NzNceDYxXHg2Mlx4NmNceDY1XHg2NFw0N1w3Nlw3NFwxNDFcNDBcMTUwXDE2Mlx4NjVcMTQ2XDc1XHgyN1x4MjNceDI3XDc2XHgyZVx4MmVceDNjXDU3XDE0MVw3Nlx4M2NceDJmXHg2Y1x4NjlcNzYiOyBmb3IgKCRjb3VudGVyID0gJHRoaXMtPl9wYWdlIC0gJGFkamFjZW50czsgJGNvdW50ZXIgPD0gJHRoaXMtPl9wYWdlICsgJGFkamFjZW50czsgJGNvdW50ZXIrKykgeyBpZiAoJGNvdW50ZXIgPT0gJHRoaXMtPl9wYWdlKSB7ICRwYWdpbmF0aW9uIC49ICJcNzRceDZjXHg2OVx4MjBceDYzXDE1NFwxNDFcMTYzXHg3M1w3NVx4MjdceDYxXDE0M1x4NzRceDY5XHg3Nlx4NjVcNDdceDNlXDc0XHg2MVx4MjBcMTUwXHg3Mlx4NjVceDY2XHgzZFx4MjdceDIzXDQ3XHgzZXskY291bnRlcn1cNzRcNTdcMTQxXHgzZVw3NFx4MmZceDZjXDE1MVw3NiI7IH0gZWxzZSB7ICRwYWdpbmF0aW9uIC49ICJcNzRcMTU0XHg2OVw3Nlw3NFx4NjFcNDBceDY4XDE2Mlx4NjVcMTQ2XDc1XDQ3IiAuICRwYXRoIC4gInskdGhpcy0+X2luc3RhbmNlfVx4M2R7JGNvdW50ZXJ9IiAuICJ7JGV4dH1ceDI3XHgzZXskY291bnRlcn1ceDNjXHgyZlwxNDFcNzZcNzRceDJmXHg2Y1x4NjlcNzYiOyB9IH0gJHBhZ2luYXRpb24gLj0gIlx4M2NceDZjXHg2OVx4MjBceDYzXDE1NFx4NjFceDczXHg3M1x4M2RceDI3XHg2NFwxNTFcMTYzXHg2MVx4NjJcMTU0XDE0NVwxNDRceDI3XHgzZVx4M2NcMTQxXHgyMFwxNTBcMTYyXHg2NVx4NjZceDNkXHgyN1x4MjNcNDdceDNlXDU2XDU2XDc0XDU3XHg2MVw3Nlw3NFw1N1x4NmNceDY5XHgzZSI7ICRwYWdpbmF0aW9uIC49ICJcNzRceDZjXDE1MVw3Nlx4M2NcMTQxXHgyMFwxNTBceDcyXHg2NVx4NjZcNzVcNDciIC4gJHBhdGggLiAieyR0aGlzLT5faW5zdGFuY2V9XDc1eyRscG0xfSIgLiAieyRleHR9XDQ3XDc2eyRscG0xfVw3NFw1N1wxNDFcNzZcNzRceDJmXDE1NFx4NjlceDNlIjsgJHBhZ2luYXRpb24gLj0gIlx4M2NcMTU0XDE1MVx4M2VceDNjXDE0MVw0MFwxNTBceDcyXHg2NVx4NjZcNzVcNDciIC4gJHBhdGggLiAieyR0aGlzLT5faW5zdGFuY2V9XHgzZHskbGFzdHBhZ2V9IiAuICJ7JGV4dH1cNDdcNzZ7JGxhc3RwYWdlfVw3NFx4MmZcMTQxXHgzZVw3NFx4MmZcMTU0XDE1MVw3NiI7IH0gZWxzZSB7ICRwYWdpbmF0aW9uIC49ICJcNzRceDZjXHg2OVx4M2VceDNjXHg2MVx4MjBcMTUwXDE2Mlx4NjVcMTQ2XHgzZFw0NyIgLiAkcGF0aCAuICJ7JHRoaXMtPl9pbnN0YW5jZX1ceDNkXDYxIiAuICJ7JGV4dH1cNDdcNzZceDMxXHgzY1w1N1wxNDFcNzZceDNjXDU3XHg2Y1x4NjlceDNlIjsgJHBhZ2luYXRpb24gLj0gIlx4M2NceDZjXDE1MVw3Nlw3NFx4NjFcNDBceDY4XHg3MlwxNDVcMTQ2XDc1XDQ3IiAuICRwYXRoIC4gInskdGhpcy0+X2luc3RhbmNlfVw3NVw2MiIgLiAieyRleHR9XDQ3XDc2XDYyXDc0XDU3XHg2MVw3Nlx4M2NcNTdceDZjXHg2OVx4M2UiOyAkcGFnaW5hdGlvbiAuPSAiXDc0XHg2Y1x4NjlceDIwXHg2M1wxNTRcMTQxXDE2M1x4NzNcNzVceDI3XDE0NFwxNTFcMTYzXHg2MVx4NjJcMTU0XDE0NVx4NjRceDI3XHgzZVw3NFwxNDFcNDBcMTUwXHg3MlwxNDVceDY2XHgzZFw0N1w0M1w0N1x4M2VcNTZceDJlXHgyZVw3NFw1N1wxNDFceDNlXHgzY1w1N1x4NmNceDY5XDc2IjsgZm9yICgkY291bnRlciA9ICRsYXN0cGFnZSAtICgyICsgJGFkamFjZW50cyAqIDIpOyAkY291bnRlciA8PSAkbGFzdHBhZ2U7ICRjb3VudGVyKyspIHsgaWYgKCRjb3VudGVyID09ICR0aGlzLT5fcGFnZSkgeyAkcGFnaW5hdGlvbiAuPSAiXHgzY1wxNTRceDY5XDQwXDE0M1wxNTRcMTQxXHg3M1wxNjNcNzVcNDdceDYxXHg2M1x4NzRcMTUxXHg3NlwxNDVceDI3XDc2XHgzY1wxNDFceDIwXDE1MFx4NzJcMTQ1XDE0Nlx4M2RceDI3XDQzXDQ3XHgzZXskY291bnRlcn1cNzRceDJmXDE0MVw3Nlw3NFx4MmZcMTU0XHg2OVw3NiI7IH0gZWxzZSB7ICRwYWdpbmF0aW9uIC49ICJcNzRcMTU0XDE1MVx4M2VceDNjXDE0MVx4MjBcMTUwXDE2Mlx4NjVceDY2XDc1XHgyNyIgLiAkcGF0aCAuICJ7JHRoaXMtPl9pbnN0YW5jZX1cNzV7JGNvdW50ZXJ9IiAuICJ7JGV4dH1ceDI3XDc2eyRjb3VudGVyfVw3NFx4MmZcMTQxXHgzZVx4M2NceDJmXDE1NFwxNTFcNzYiOyB9IH0gfSB9IGlmICgkdGhpcy0+X3BhZ2UgPCAkY291bnRlciAtIDEpIHsgJHBhZ2luYXRpb24gLj0gIlw3NFwxNTRcMTUxXDc2XDc0XDE0MVw0MFwxNTBcMTYyXDE0NVx4NjZcNzVcNDciIC4gJHBhdGggLiAieyR0aGlzLT5faW5zdGFuY2V9XDc1eyRuZXh0fSIgLiAieyRleHR9XDQ3XDc2XDEyM1wxNTdcMTU2XDE2Mlx4NjFceDZiXHg2OVx4M2NceDJmXDE0MVx4M2VceDNjXDU3XDE1NFwxNTFceDNlIjsgfSBlbHNlIHsgJHBhZ2luYXRpb24gLj0gIlw3NFwxNTRcMTUxXDQwXDE0M1x4NmNcMTQxXHg3M1wxNjNcNzVceDI3XDE0NFwxNTFcMTYzXDE0MVwxNDJceDZjXHg2NVwxNDRceDI3XHgzZVw3NFx4NjFcNDBcMTUwXHg3MlwxNDVceDY2XHgzZFw0N1w0M1w0N1x4M2VcMTIzXHg2Zlx4NmVceDcyXDE0MVwxNTNceDY5XHgzY1x4MmZceDYxXDc2XDc0XDU3XDE1NFx4NjlceDNlIjsgfSAkcGFnaW5hdGlvbiAuPSAiXHgzY1w1N1x4NzVceDZjXHgzZVwxMiI7IH0gcmV0dXJuICRwYWdpbmF0aW9uOyB9IH0gZ290byBTSVZnYTsgZ2lhYXY6IGZ1bmN0aW9uIGZvcm1hdERhdGUoJHRpbWUpIHsgaWYgKCR0aW1lID49IGRhdGUoIlx4NTlceDJkXDE1NVx4MmRceDY0XHgyMFw2MFw2MFw3Mlx4MzBceDMwXHgzYVx4MzBceDMwIikpIHsgcmV0dXJuIGRhdGUoIlwxMTBcNzJceDY5Iiwgc3RydG90aW1lKCR0aW1lKSk7IH0gZWxzZWlmICgkdGltZSA+PSBkYXRlKCJceDU5XDU1XHg2ZFx4MmRcMTQ0XHgyMFx4MzBceDMwXDcyXDYwXHgzMFw3Mlx4MzBcNjAiLCBzdHJ0b3RpbWUoIlw0MFw1NVw2MVw0MFx4NjRcMTQxXHg3OSIpKSkgeyByZXR1cm4gIlwxMDRcMzAzXHhiY1x4NmVceDIwIiAuIGRhdGUoIlx4NDhceDNhXHg2OSIsIHN0cnRvdGltZSgkdGltZSkpOyB9IGVsc2UgeyByZXR1cm4gZGF0ZSgiXHg2NFw1NVwxNTVcNTVceDU5XHgyMFx4NDhcNzJcMTUxIiwgc3RydG90aW1lKCR0aW1lKSk7IH0gfSBnb3RvIEFZOFIyOyBBWThSMjogZnVuY3Rpb24gZm9ybWF0RGF0ZWEoJHRpbWUpIHsgaWYgKCR0aW1lID49IHN0cnRvdGltZSgiXDE2NFx4NmZcMTQ0XDE0MVx4NzlcNDBceDMwXHgzMFx4M2FcNjBcNjAiKSkgeyByZXR1cm4gZGF0ZSgiXDE0N1x4M2FcMTUxXHgyMFwxMDEiLCAkdGltZSk7IH0gZWxzZWlmICgkdGltZSA+PSBzdHJ0b3RpbWUoIlx4NzlcMTQ1XDE2M1x4NzRcMTQ1XDE2MlwxNDRcMTQxXHg3OVw0MFw2MFx4MzBcNzJceDMwXHgzMCIpKSB7IHJldHVybiAiXHg0NFx4YzNcMjc0XDE1Nlx4MjAiIC4gZGF0ZSgiXDE0N1x4M2FcMTUxXDQwXHg0MSIsICR0aW1lKTsgfSBlbHNlaWYgKCR0aW1lID49IHN0cnRvdGltZSgiXHgyZFx4MzZcNDBceDY0XHg2MVwxNzFceDIwXHgzMFw2MFx4M2FcNjBceDMwIikpIHsgcmV0dXJuIGRhdGUoIlwxNTRcNDBcMTM0XHg2MVx4NWNceDc0XHgyMFx4NjdcNzJceDY5XDQwXHg0MSIsICR0aW1lKTsgfSBlbHNlIHsgcmV0dXJuIGRhdGUoIlwxMTVcNDBceDZhXHgyY1x4MjBceDU5IiwgJHRpbWUpOyB9IH0gZ290byBadEhXbzsgWG4xSXo6IGZ1bmN0aW9uIGNoYW5nZUxvZygkY29sdW1ucywgJHRhYmxlLCAkaWQpIHsgJGNoYW5nZUxvZyA9ICcnOyAkY29sdW1uID0gZXhwbG9kZSgiXHgyYyIsICRjb2x1bW5zKTsgfSBnb3RvIHpmeWZZOyBjZEc3bzogJGRhdGVub3cgPSBkYXRlKCJceDU5XHgyZFx4NmRceDJkXDE0NFx4MjBceDQ4XDcyXHg2OVw3MlwxNjMiKTsgZ290byBXeUQ4cDsgWnRIV286IGZ1bmN0aW9uIHN0cl9yb3QoJHMsICRuID0gMTYpIHsgc3RhdGljICRsZXR0ZXJzID0gIlx4NDFcMTQxXHg0Mlx4NjJcMTAzXDE0M1wzMDNcMjA3XDMwM1wyNDdcMTA0XHg2NFx4NDVcMTQ1XHg0Nlx4NjZcMTA3XDE0N1wzMDRcMjM2XHhjNFx4OWZceDQ4XDE1MFwxMTFceGM0XDI2MVwzMDRcMjYwXDE1MVwxMTJceDZhXHg0Ylx4NmJcMTE0XHg2Y1x4NGRceDZkXDExNlx4NmVcMTE3XDE1N1x4YzNcMjI2XDMwM1wyNjZceDUwXHg3MFwxMjFcMTYxXHg1Mlx4NzJceDUzXHg3M1wzMDVceDllXHhjNVwyMzdceDU0XDE2NFx4NTVcMTY1XHhjM1wyMzRceGMzXDI3NFx4NTZceDc2XDEyN1wxNjdceDU4XDE3MFx4NTlcMTcxXHg1YVx4N2EiOyAkbiA9IChpbnQpICRuICUgMzI7IGlmICghJG4pIHsgcmV0dXJuICRzOyB9IGlmICgkbiA8IDApIHsgJG4gKz0gMzI7IH0gaWYgKCRuID09IDE2KSB7IHJldHVybiBzdHJfcm90MTMoJHMpOyB9ICRyZXAgPSBzdWJzdHIoJGxldHRlcnMsICRuICogMikgLiBzdWJzdHIoJGxldHRlcnMsIDAsICRuICogMik7IHJldHVybiBzdHJ0cigkcywgJGxldHRlcnMsICRyZXApOyB9IGdvdG8gVEoxWFM7IEIwYmhoOiAkbSA9IGh0bWxzcGVjaWFsY2hhcnMoaXNzZXQoJF9HRVRbIlx4NmQiXSkpID8gJF9HRVRbIlx4NmQiXSA6ICcnOyBnb3RvIGpBdHNaOyBQNFFJZTogZnVuY3Rpb24gcmVwbGFjZV9zbXMoJHRleHQpIHsgJHRleHQgPSB0cmltKCR0ZXh0KTsgJHNlYXJjaCA9IGFycmF5KCJceDIwIiwgIlwzMDNceGEyIiwgIlx4YzNcMjA3IiwgIlx4YzNcMjQ3IiwgIlwzMDRcMjM2IiwgIlwzMDRcMjM3IiwgIlx4YzRcMjYxIiwgIlx4YzRceGIwIiwgIlwzMDNcMjI2IiwgIlwzMDNcMjY2IiwgIlx4YzVceDllIiwgIlwzMDVcMjM3IiwgIlx4YzNceDljIiwgIlx4YzNcMjc0IiwgIlwzNDJceDgwXHg5YyIsICJcMzQyXDIwMFwyMzUiLCAiXDQyIiwgIlx4ZTJcMjAwXDIzMSIsICJceDYwIiwgIlx4MjciLCAiXDQ3IiwgIlwxMzciKTsgJHJlcGxhY2UgPSBhcnJheSgiXHgyNVx4MzJceDMwIiwgIlx4NjEiLCAiXDEwMyIsICJcMTQzIiwgIlwxMDciLCAiXHg2NyIsICJcMTUxIiwgIlx4NDkiLCAiXDExNyIsICJcMTU3IiwgIlwxMjMiLCAiXHg3MyIsICJcMTI1IiwgIlx4NzUiLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgIlw1NSIpOyAkbmV3X3RleHQgPSBzdHJfcmVwbGFjZSgkc2VhcmNoLCAkcmVwbGFjZSwgJHRleHQpOyByZXR1cm4gJG5ld190ZXh0OyB9IGdvdG8gRWZEd1M7IFZVOVJ0OiBmdW5jdGlvbiByZXBsYWNlX296ZXQoJHRleHQpIHsgJHRleHQgPSB0cmltKCR0ZXh0KTsgJHNlYXJjaCA9IGFycmF5KCJcNzRcMTYzXHg3NFx4NzJceDZmXDE1NlwxNDdceDNlIiwgIlw3NFw1N1wxNjNceDc0XHg3MlwxNTdcMTU2XDE0N1w3NiIsICJceDNjXDE0MlwxNjJceDNlIiwgIlx4M2NcMTQyXDE2Mlw0MFw1N1x4M2UiLCAiXDc0XHg2MlwxNjJceDJmXDc2IiwgIlx4M2NceDY0XHg2OVwxNjZceDNlIiwgIlx4M2NcNTdcMTQ0XDE1MVx4NzZceDNlIiwgIlw3NFwxNjBcNzYiLCAiXHgzY1w1N1wxNjBcNzYiLCAiXHgzY1x4NzNceDcwXDE0MVx4NmVcNzYiLCAiXDc0XDU3XDE2M1x4NzBceDYxXHg2ZVw3NiIsICJcNzRceDYyXHg3MiIpOyAkcmVwbGFjZSA9IGFycmF5KCcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycpOyAkbmV3X3RleHQgPSBzdHJfcmVwbGFjZSgkc2VhcmNoLCAkcmVwbGFjZSwgJHRleHQpOyByZXR1cm4gJG5ld190ZXh0OyB9IGdvdG8gWjI3NXQ7IGVrd2ZfOiBmdW5jdGlvbiByZXBsYWNlX3F1b3RlcygkdGV4dCkgeyAkdGV4dCA9IHRyaW0oJHRleHQpOyAkc2VhcmNoID0gYXJyYXkoIlw0MiIsICJcNDciKTsgJHJlcGxhY2UgPSBhcnJheSgnJywgJycpOyAkbmV3X3RleHQgPSBzdHJfcmVwbGFjZSgkc2VhcmNoLCAkcmVwbGFjZSwgJHRleHQpOyByZXR1cm4gJG5ld190ZXh0OyB9IGdvdG8gbjNveGs7IEVvNDFYOiAkc2FsdGllID0gIlx4NzZcNjVceDcwXHg1Mlx4NDRcMTYxXDE1MFw2NFx4NTFcMTYzXDExMlwxMTJcMTQyXDE1M1x4MzNceDRkXDE0MVwxMjRcMTMyXHgzNlx4NzFcMTI3XDE0N1x4NDJcMTYyXDEyMFwxNDdcMTQ2XHg1MVx4NDRcNjNceDUwXDE1NlwxNTBceDY0XHg1OVwxNDFceDY2XHg1M1wxNzJcMTE1XHgzOVwxNzBceDRiXHg2N1wxNDZcMTQ1XDE3MlwxNDRceDc2XHgzMlx4NGFceDc2XDE2N1x4NTBcMTE0XHg3NVwxMjFcNjVcMTMxIjsgZ290byBzX2N4MDsgT0FYZGg6IGZ1bmN0aW9uIHJpcF90YWdzKCRzdHJpbmcpIHsgJHN0cmluZyA9IHByZWdfcmVwbGFjZSgiXDU3XHgzY1wxMzNcMTM2XHgzZVx4NWRcNTJceDNlXDU3IiwgIlx4MjAiLCAkc3RyaW5nKTsgJHN0cmluZyA9IHN0cl9yZXBsYWNlKCJceGQiLCAnJywgJHN0cmluZyk7ICRzdHJpbmcgPSBzdHJfcmVwbGFjZSgiXHhhIiwgIlw0MCIsICRzdHJpbmcpOyAkc3RyaW5nID0gc3RyX3JlcGxhY2UoIlx4OSIsICJcNDAiLCAkc3RyaW5nKTsgJHN0cmluZyA9IHRyaW0ocHJlZ19yZXBsYWNlKCJcNTdcNDBceDdiXHgzMlw1NFwxNzVceDJmIiwgIlx4MjAiLCAkc3RyaW5nKSk7IHJldHVybiAkc3RyaW5nOyB9IGdvdG8gWG4xSXo7IFB3ekNOOiBmdW5jdGlvbiBnZXRSZWFsSXBBZGRyKCkgeyBpZiAoIWVtcHR5KCRfU0VSVkVSWyJcMTEwXHg1NFx4NTRceDUwXHg1Zlx4NDNceDRjXHg0OVx4NDVceDRlXDEyNFwxMzdceDQ5XDEyMCJdKSkgeyAkaXAgPSAkX1NFUlZFUlsiXDExMFx4NTRcMTI0XDEyMFwxMzdceDQzXHg0Y1wxMTFcMTA1XHg0ZVx4NTRcMTM3XHg0OVwxMjAiXTsgfSBlbHNlaWYgKCFlbXB0eSgkX1NFUlZFUlsiXHg0OFwxMjRcMTI0XHg1MFx4NWZcMTMwXHg1Zlx4NDZceDRmXDEyMlx4NTdceDQxXHg1Mlx4NDRcMTA1XHg0NFwxMzdceDQ2XDExN1x4NTIiXSkpIHsgJGlwID0gJF9TRVJWRVJbIlwxMTBceDU0XDEyNFx4NTBceDVmXHg1OFwxMzdcMTA2XHg0ZlwxMjJceDU3XHg0MVwxMjJceDQ0XDEwNVx4NDRcMTM3XHg0Nlx4NGZceDUyIl07IH0gZWxzZSB7ICRpcCA9ICRfU0VSVkVSWyJceDUyXDEwNVx4NGRceDRmXHg1NFwxMDVceDVmXDEwMVx4NDRcMTA0XHg1MiJdOyB9IHJldHVybiAkaXA7IH0gZ290byBEQWtrYzsgU0lWZ2E6IGNsYXNzIFNpbXBsZUltYWdlIHsgcHVibGljICRpbWFnZTsgcHVibGljICRpbWFnZV90eXBlOyBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGZpbGVuYW1lID0gbnVsbCkgeyBpZiAoIWVtcHR5KCRmaWxlbmFtZSkpIHsgJHRoaXMtPmxvYWQoJGZpbGVuYW1lKTsgfSB9IHB1YmxpYyBmdW5jdGlvbiBsb2FkKCRmaWxlbmFtZSkgeyAkaW1hZ2VfaW5mbyA9IGdldGltYWdlc2l6ZSgkZmlsZW5hbWUpOyAkdGhpcy0+aW1hZ2VfdHlwZSA9ICRpbWFnZV9pbmZvWzJdOyBpZiAoJHRoaXMtPmltYWdlX3R5cGUgPT0gSU1BR0VUWVBFX0pQRUcpIHsgJHRoaXMtPmltYWdlID0gaW1hZ2VjcmVhdGVmcm9tanBlZygkZmlsZW5hbWUpOyB9IGVsc2VpZiAoJHRoaXMtPmltYWdlX3R5cGUgPT0gSU1BR0VUWVBFX0dJRikgeyAkdGhpcy0+aW1hZ2UgPSBpbWFnZWNyZWF0ZWZyb21naWYoJGZpbGVuYW1lKTsgfSBlbHNlaWYgKCR0aGlzLT5pbWFnZV90eXBlID09IElNQUdFVFlQRV9QTkcpIHsgJHRoaXMtPmltYWdlID0gaW1hZ2VjcmVhdGVmcm9tcG5nKCRmaWxlbmFtZSk7IH0gZWxzZSB7IHRocm93IG5ldyBFeGNlcHRpb24oIlx4NTRceDY4XDE0NVx4MjBcMTQ2XDE1MVx4NmNceDY1XHgyMFwxNzFceDZmXDE2NVw0N1wxNjJcMTQ1XDQwXDE2NFwxNjJcMTcxXDE1MVwxNTZcMTQ3XHgyMFwxNjRceDZmXHgyMFx4NmZceDcwXHg2NVwxNTZceDIwXDE1MVx4NzNcNDBceDZlXHg2ZlwxNjRceDIwXDE2M1wxNjVceDcwXDE2MFwxNTdcMTYyXHg3NFwxNDVceDY0Iik7IH0gfSBwdWJsaWMgZnVuY3Rpb24gc2F2ZSgkZmlsZW5hbWUsICRpbWFnZV90eXBlID0gSU1BR0VUWVBFX0pQRUcsICRjb21wcmVzc2lvbiA9IDc1LCAkcGVybWlzc2lvbnMgPSBudWxsKSB7IGlmICgkaW1hZ2VfdHlwZSA9PSBJTUFHRVRZUEVfSlBFRykgeyBpbWFnZWpwZWcoJHRoaXMtPmltYWdlLCAkZmlsZW5hbWUsICRjb21wcmVzc2lvbik7IH0gZWxzZWlmICgkaW1hZ2VfdHlwZSA9PSBJTUFHRVRZUEVfR0lGKSB7IGltYWdlZ2lmKCR0aGlzLT5pbWFnZSwgJGZpbGVuYW1lKTsgfSBlbHNlaWYgKCRpbWFnZV90eXBlID09IElNQUdFVFlQRV9QTkcpIHsgaW1hZ2VwbmcoJHRoaXMtPmltYWdlLCAkZmlsZW5hbWUpOyB9IGlmICgkcGVybWlzc2lvbnMgIT0gbnVsbCkgeyBjaG1vZCgkZmlsZW5hbWUsICRwZXJtaXNzaW9ucyk7IH0gfSBwdWJsaWMgZnVuY3Rpb24gb3V0cHV0KCRpbWFnZV90eXBlID0gSU1BR0VUWVBFX0pQRUcsICRxdWFsaXR5ID0gODApIHsgaWYgKCRpbWFnZV90eXBlID09IElNQUdFVFlQRV9KUEVHKSB7IGhlYWRlcigiXDEwM1x4NmZceDZlXDE2NFx4NjVceDZlXDE2NFx4MmRcMTY0XDE3MVwxNjBcMTQ1XHgzYVw0MFwxNTFceDZkXDE0MVwxNDdceDY1XHgyZlx4NmFcMTYwXDE0NVx4NjciKTsgaW1hZ2VqcGVnKCR0aGlzLT5pbWFnZSwgbnVsbCwgJHF1YWxpdHkpOyB9IGVsc2VpZiAoJGltYWdlX3R5cGUgPT0gSU1BR0VUWVBFX0dJRikgeyBoZWFkZXIoIlwxMDNceDZmXDE1Nlx4NzRceDY1XDE1NlwxNjRcNTVceDc0XHg3OVwxNjBceDY1XHgzYVw0MFx4NjlcMTU1XHg2MVx4NjdceDY1XHgyZlx4NjdcMTUxXDE0NiIpOyBpbWFnZWdpZigkdGhpcy0+aW1hZ2UpOyB9IGVsc2VpZiAoJGltYWdlX3R5cGUgPT0gSU1BR0VUWVBFX1BORykgeyBoZWFkZXIoIlwxMDNceDZmXDE1NlwxNjRceDY1XDE1NlwxNjRcNTVcMTY0XHg3OVwxNjBceDY1XDcyXDQwXHg2OVx4NmRcMTQxXHg2N1wxNDVcNTdcMTYwXHg2ZVx4NjciKTsgaW1hZ2VwbmcoJHRoaXMtPmltYWdlKTsgfSB9IHB1YmxpYyBmdW5jdGlvbiBnZXRXaWR0aCgpIHsgcmV0dXJuIGltYWdlc3goJHRoaXMtPmltYWdlKTsgfSBwdWJsaWMgZnVuY3Rpb24gZ2V0SGVpZ2h0KCkgeyByZXR1cm4gaW1hZ2VzeSgkdGhpcy0+aW1hZ2UpOyB9IHB1YmxpYyBmdW5jdGlvbiByZXNpemVUb0hlaWdodCgkaGVpZ2h0KSB7ICRyYXRpbyA9ICRoZWlnaHQgLyAkdGhpcy0+Z2V0SGVpZ2h0KCk7ICR3aWR0aCA9IHJvdW5kKCR0aGlzLT5nZXRXaWR0aCgpICogJHJhdGlvKTsgJHRoaXMtPnJlc2l6ZSgkd2lkdGgsICRoZWlnaHQpOyB9IHB1YmxpYyBmdW5jdGlvbiByZXNpemVUb1dpZHRoKCR3aWR0aCkgeyAkcmF0aW8gPSAkd2lkdGggLyAkdGhpcy0+Z2V0V2lkdGgoKTsgJGhlaWdodCA9IHJvdW5kKCR0aGlzLT5nZXRIZWlnaHQoKSAqICRyYXRpbyk7ICR0aGlzLT5yZXNpemUoJHdpZHRoLCAkaGVpZ2h0KTsgfSBwdWJsaWMgZnVuY3Rpb24gc3F1YXJlKCRzaXplKSB7ICRuZXdfaW1hZ2UgPSBpbWFnZWNyZWF0ZXRydWVjb2xvcigkc2l6ZSwgJHNpemUpOyBpZiAoJHRoaXMtPmdldFdpZHRoKCkgPiAkdGhpcy0+Z2V0SGVpZ2h0KCkpIHsgJHRoaXMtPnJlc2l6ZVRvSGVpZ2h0KCRzaXplKTsgaW1hZ2Vjb2xvcnRyYW5zcGFyZW50KCRuZXdfaW1hZ2UsIGltYWdlY29sb3JhbGxvY2F0ZSgkbmV3X2ltYWdlLCAwLCAwLCAwKSk7IGltYWdlYWxwaGFibGVuZGluZygkbmV3X2ltYWdlLCBmYWxzZSk7IGltYWdlc2F2ZWFscGhhKCRuZXdfaW1hZ2UsIHRydWUpOyBpbWFnZWNvcHkoJG5ld19pbWFnZSwgJHRoaXMtPmltYWdlLCAwLCAwLCAoJHRoaXMtPmdldFdpZHRoKCkgLSAkc2l6ZSkgLyAyLCAwLCAkc2l6ZSwgJHNpemUpOyB9IGVsc2UgeyAkdGhpcy0+cmVzaXplVG9XaWR0aCgkc2l6ZSk7IGltYWdlY29sb3J0cmFuc3BhcmVudCgkbmV3X2ltYWdlLCBpbWFnZWNvbG9yYWxsb2NhdGUoJG5ld19pbWFnZSwgMCwgMCwgMCkpOyBpbWFnZWFscGhhYmxlbmRpbmcoJG5ld19pbWFnZSwgZmFsc2UpOyBpbWFnZXNhdmVhbHBoYSgkbmV3X2ltYWdlLCB0cnVlKTsgaW1hZ2Vjb3B5KCRuZXdfaW1hZ2UsICR0aGlzLT5pbWFnZSwgMCwgMCwgMCwgKCR0aGlzLT5nZXRIZWlnaHQoKSAtICRzaXplKSAvIDIsICRzaXplLCAkc2l6ZSk7IH0gJHRoaXMtPmltYWdlID0gJG5ld19pbWFnZTsgfSBwdWJsaWMgZnVuY3Rpb24gc2NhbGUoJHNjYWxlKSB7ICR3aWR0aCA9ICR0aGlzLT5nZXRXaWR0aCgpICogJHNjYWxlIC8gMTAwOyAkaGVpZ2h0ID0gJHRoaXMtPmdldEhlaWdodCgpICogJHNjYWxlIC8gMTAwOyAkdGhpcy0+cmVzaXplKCR3aWR0aCwgJGhlaWdodCk7IH0gcHVibGljIGZ1bmN0aW9uIHJlc2l6ZSgkd2lkdGgsICRoZWlnaHQpIHsgJG5ld19pbWFnZSA9IGltYWdlY3JlYXRldHJ1ZWNvbG9yKCR3aWR0aCwgJGhlaWdodCk7IGltYWdlY29sb3J0cmFuc3BhcmVudCgkbmV3X2ltYWdlLCBpbWFnZWNvbG9yYWxsb2NhdGUoJG5ld19pbWFnZSwgMCwgMCwgMCkpOyBpbWFnZWFscGhhYmxlbmRpbmcoJG5ld19pbWFnZSwgZmFsc2UpOyBpbWFnZXNhdmVhbHBoYSgkbmV3X2ltYWdlLCB0cnVlKTsgaW1hZ2Vjb3B5cmVzYW1wbGVkKCRuZXdfaW1hZ2UsICR0aGlzLT5pbWFnZSwgMCwgMCwgMCwgMCwgJHdpZHRoLCAkaGVpZ2h0LCAkdGhpcy0+Z2V0V2lkdGgoKSwgJHRoaXMtPmdldEhlaWdodCgpKTsgJHRoaXMtPmltYWdlID0gJG5ld19pbWFnZTsgfSBwdWJsaWMgZnVuY3Rpb24gY3V0KCR4LCAkeSwgJHdpZHRoLCAkaGVpZ2h0KSB7ICRuZXdfaW1hZ2UgPSBpbWFnZWNyZWF0ZXRydWVjb2xvcigkd2lkdGgsICRoZWlnaHQpOyBpbWFnZWNvbG9ydHJhbnNwYXJlbnQoJG5ld19pbWFnZSwgaW1hZ2Vjb2xvcmFsbG9jYXRlKCRuZXdfaW1hZ2UsIDAsIDAsIDApKTsgaW1hZ2VhbHBoYWJsZW5kaW5nKCRuZXdfaW1hZ2UsIGZhbHNlKTsgaW1hZ2VzYXZlYWxwaGEoJG5ld19pbWFnZSwgdHJ1ZSk7IGltYWdlY29weSgkbmV3X2ltYWdlLCAkdGhpcy0+aW1hZ2UsIDAsIDAsICR4LCAkeSwgJHdpZHRoLCAkaGVpZ2h0KTsgJHRoaXMtPmltYWdlID0gJG5ld19pbWFnZTsgfSBwdWJsaWMgZnVuY3Rpb24gbWF4YXJlYSgkd2lkdGgsICRoZWlnaHQgPSBudWxsKSB7ICRoZWlnaHQgPSAkaGVpZ2h0ID8gJGhlaWdodCA6ICR3aWR0aDsgaWYgKCR0aGlzLT5nZXRXaWR0aCgpID4gJHdpZHRoKSB7ICR0aGlzLT5yZXNpemVUb1dpZHRoKCR3aWR0aCk7IH0gaWYgKCR0aGlzLT5nZXRIZWlnaHQoKSA+ICRoZWlnaHQpIHsgJHRoaXMtPnJlc2l6ZVRvaGVpZ2h0KCRoZWlnaHQpOyB9IH0gcHVibGljIGZ1bmN0aW9uIG1pbmFyZWEoJHdpZHRoLCAkaGVpZ2h0ID0gbnVsbCkgeyAkaGVpZ2h0ID0gJGhlaWdodCA/ICRoZWlnaHQgOiAkd2lkdGg7IGlmICgkdGhpcy0+Z2V0V2lkdGgoKSA8ICR3aWR0aCkgeyAkdGhpcy0+cmVzaXplVG9XaWR0aCgkd2lkdGgpOyB9IGlmICgkdGhpcy0+Z2V0SGVpZ2h0KCkgPCAkaGVpZ2h0KSB7ICR0aGlzLT5yZXNpemVUb2hlaWdodCgkaGVpZ2h0KTsgfSB9IHB1YmxpYyBmdW5jdGlvbiBjdXRGcm9tQ2VudGVyKCR3aWR0aCwgJGhlaWdodCkgeyBpZiAoJHdpZHRoIDwgJHRoaXMtPmdldFdpZHRoKCkgJiYgJHdpZHRoID4gJGhlaWdodCkgeyAkdGhpcy0+cmVzaXplVG9XaWR0aCgkd2lkdGgpOyB9IGlmICgkaGVpZ2h0IDwgJHRoaXMtPmdldEhlaWdodCgpICYmICR3aWR0aCA8ICRoZWlnaHQpIHsgJHRoaXMtPnJlc2l6ZVRvSGVpZ2h0KCRoZWlnaHQpOyB9ICR4ID0gJHRoaXMtPmdldFdpZHRoKCkgLyAyIC0gJHdpZHRoIC8gMjsgJHkgPSAkdGhpcy0+Z2V0SGVpZ2h0KCkgLyAyIC0gJGhlaWdodCAvIDI7IHJldHVybiAkdGhpcy0+Y3V0KCR4LCAkeSwgJHdpZHRoLCAkaGVpZ2h0KTsgfSBwdWJsaWMgZnVuY3Rpb24gbWF4YXJlYWZpbGwoJHdpZHRoLCAkaGVpZ2h0LCAkcmVkID0gMCwgJGdyZWVuID0gMCwgJGJsdWUgPSAwKSB7ICR0aGlzLT5tYXhhcmVhKCR3aWR0aCwgJGhlaWdodCk7ICRuZXdfaW1hZ2UgPSBpbWFnZWNyZWF0ZXRydWVjb2xvcigkd2lkdGgsICRoZWlnaHQpOyAkY29sb3JfZmlsbCA9IGltYWdlY29sb3JhbGxvY2F0ZSgkbmV3X2ltYWdlLCAkcmVkLCAkZ3JlZW4sICRibHVlKTsgaW1hZ2VmaWxsKCRuZXdfaW1hZ2UsIDAsIDAsICRjb2xvcl9maWxsKTsgaW1hZ2Vjb3B5cmVzYW1wbGVkKCRuZXdfaW1hZ2UsICR0aGlzLT5pbWFnZSwgZmxvb3IoKCR3aWR0aCAtICR0aGlzLT5nZXRXaWR0aCgpKSAvIDIpLCBmbG9vcigoJGhlaWdodCAtICR0aGlzLT5nZXRIZWlnaHQoKSkgLyAyKSwgMCwgMCwgJHRoaXMtPmdldFdpZHRoKCksICR0aGlzLT5nZXRIZWlnaHQoKSwgJHRoaXMtPmdldFdpZHRoKCksICR0aGlzLT5nZXRIZWlnaHQoKSk7ICR0aGlzLT5pbWFnZSA9ICRuZXdfaW1hZ2U7IH0gfSBnb3RvIGV4X0l6OyBFZkR3UzogZnVuY3Rpb24geWF6aV9vemV0KCRzdHJpbmcsICRzZXRsZW5ndGgpIHsgJGxlbmd0aCA9ICRzZXRsZW5ndGg7IGlmICgkbGVuZ3RoIDwgc3RybGVuKCRzdHJpbmcpKSB7IHdoaWxlICgkc3RyaW5nWyRsZW5ndGhdICE9ICJceDIwIiBhbmQgJGxlbmd0aCA+IDApIHsgJGxlbmd0aC0tOyB9IGlmICgkbGVuZ3RoID09IDApIHsgcmV0dXJuIHN1YnN0cigkc3RyaW5nLCAwLCAkc2V0bGVuZ3RoKTsgfSBlbHNlIHsgcmV0dXJuIHN1YnN0cigkc3RyaW5nLCAwLCAkbGVuZ3RoKTsgfSB9IGVsc2UgeyByZXR1cm4gJHN0cmluZzsgfSB9IGdvdG8gUHd6Q047IFllX01POiBmdW5jdGlvbiByZXBsYWNlX3RpbWVyKCR0ZXh0KSB7ICR0ZXh0ID0gdHJpbSgkdGV4dCk7ICRzZWFyY2ggPSBhcnJheSgiXDU0Iik7ICRyZXBsYWNlID0gYXJyYXkoIlw1NSIpOyAkbmV3X3RleHQgPSBzdHJfcmVwbGFjZSgkc2VhcmNoLCAkcmVwbGFjZSwgJHRleHQpOyByZXR1cm4gJG5ld190ZXh0OyB9IGdvdG8gUG9DdVo7IFBvQ3VaOiBmdW5jdGlvbiByZXBsYWNlX2J1eXV0KCR0ZXh0KSB7ICR0ZXh0ID0gdHJpbSgkdGV4dCk7ICRzZWFyY2ggPSBhcnJheSgiXDMwM1wyNDciLCAiXHhjNFx4OWYiLCAiXDMwNFx4YjEiLCAiXHg2OSIsICJceGMzXHhiNiIsICJcMzA1XDIzNyIsICJceGMzXHhiYyIpOyAkcmVwbGFjZSA9IGFycmF5KCJcMzAzXHg4NyIsICJceGM0XHg5ZSIsICJceDQ5IiwgIlx4YzRcMjYwIiwgIlx4YzNcMjI2IiwgIlwzMDVcMjM2IiwgIlwzMDNceDljIik7ICRuZXdfdGV4dCA9IHN0cl9yZXBsYWNlKCRzZWFyY2gsICRyZXBsYWNlLCAkdGV4dCk7IHJldHVybiAkbmV3X3RleHQ7IH0gZ290byBWVTlSdDsgVTBOQ0c6IGRhdGVfZGVmYXVsdF90aW1lem9uZV9zZXQoIlx4NDFceDczXDE1MVwxNDFceDJmXDEyMVx4NjFceDc0XHg2MVwxNjIiKTsgZ290byBLVTJZQzsgSHUzU2E6ICRpID0gaHRtbHNwZWNpYWxjaGFycyhpc3NldCgkX0dFVFsiXHg2OSJdKSkgPyAkX0dFVFsiXDE1MSJdIDogJyc7IGdvdG8gb1B0Mjg7IEtVMllDOiAkcCA9IGh0bWxzcGVjaWFsY2hhcnMoaXNzZXQoJF9HRVRbIlx4NzAiXSkpID8gJF9HRVRbIlwxNjAiXSA6ICcnOyBnb3RvIEIwYmhoOyBFYV9TRjogZnVuY3Rpb24gcmFuZG9tU3RyaW5nU2Vuc2l0aXZlKCRsZW5ndGggPSAxMCkgeyAkY2hhcmFjdGVycyA9ICJceDMwXDYxXHgzMlw2M1x4MzRceDM1XHgzNlw2N1x4MzhceDM5XDE0MVwxNDJceDYzXDE0NFwxNDVcMTQ2XHg2N1x4NjhcMTUxXHg2YVx4NmJcMTU0XHg2ZFx4NmVcMTU3XHg3MFwxNjFceDcyXDE2M1wxNjRcMTY1XHg3NlwxNjdcMTcwXDE3MVx4N2FcMTAxXDEwMlwxMDNceDQ0XHg0NVwxMDZcMTA3XHg0OFx4NDlceDRhXDExM1x4NGNcMTE1XHg0ZVx4NGZcMTIwXDEyMVx4NTJceDUzXDEyNFx4NTVceDU2XDEyN1x4NThceDU5XHg1YSI7ICRjaGFyYWN0ZXJzTGVuZ3RoID0gc3RybGVuKCRjaGFyYWN0ZXJzKTsgJHJhbmRvbVN0cmluZyA9ICcnOyBmb3IgKCRpID0gMDsgJGkgPCAkbGVuZ3RoOyAkaSsrKSB7ICRyYW5kb21TdHJpbmcgLj0gJGNoYXJhY3RlcnNbcmFuZCgwLCAkY2hhcmFjdGVyc0xlbmd0aCAtIDEpXTsgfSByZXR1cm4gJHJhbmRvbVN0cmluZzsgfSBnb3RvIE9BWGRoOyBXeUQ4cDogJGlwID0gZ2V0UmVhbElwQWRkcigpOyBnb3RvIEVvNDFYOyBNZktVZTogZnVuY3Rpb24gcmFuZG9tU3RyaW5nKCRsZW5ndGggPSAxMCkgeyAkY2hhcmFjdGVycyA9ICJceDMwXDYxXHgzMlx4MzNcNjRceDM1XDY2XDY3XHgzOFx4MzlceDYxXHg2MlwxNDNcMTQ0XHg2NVwxNDZcMTQ3XHg2OFwxNTFcMTUyXDE1M1wxNTRcMTU1XHg2ZVx4NmZcMTYwXDE2MVx4NzJcMTYzXDE2NFwxNjVceDc2XDE2N1x4NzhceDc5XHg3YSI7ICRjaGFyYWN0ZXJzTGVuZ3RoID0gc3RybGVuKCRjaGFyYWN0ZXJzKTsgJHJhbmRvbVN0cmluZyA9ICcnOyBmb3IgKCRpID0gMDsgJGkgPCAkbGVuZ3RoOyAkaSsrKSB7ICRyYW5kb21TdHJpbmcgLj0gJGNoYXJhY3RlcnNbcmFuZCgwLCAkY2hhcmFjdGVyc0xlbmd0aCAtIDEpXTsgfSByZXR1cm4gJHJhbmRvbVN0cmluZzsgfSBnb3RvIEVhX1NGOyBaMjc1dDogZnVuY3Rpb24gcmVwbGFjZV9waG9uZSgkdGV4dCkgeyAkdGV4dCA9IHRyaW0oJHRleHQpOyAkc2VhcmNoID0gYXJyYXkoIlx4MjAiLCAiXDUwIiwgIlw1MSIsICJceDJkIik7ICRyZXBsYWNlID0gYXJyYXkoJycsICcnLCAnJywgJycpOyAkbmV3X3RleHQgPSBzdHJfcmVwbGFjZSgkc2VhcmNoLCAkcmVwbGFjZSwgJHRleHQpOyByZXR1cm4gJG5ld190ZXh0OyB9IGdvdG8gUDRRSWU7IG4zb3hrOiBmdW5jdGlvbiByZXBsYWNlX3RpbWUoJHRleHQpIHsgJHRleHQgPSB0cmltKCR0ZXh0KTsgJHNlYXJjaCA9IGFycmF5KCJceDJkIik7ICRyZXBsYWNlID0gYXJyYXkoIlw1NCIpOyAkbmV3X3RleHQgPSBzdHJfcmVwbGFjZSgkc2VhcmNoLCAkcmVwbGFjZSwgJHRleHQpOyByZXR1cm4gJG5ld190ZXh0OyB9IGdvdG8gWWVfTU87IG9QdDI4OiAkdG9kYXlkYXRlID0gZGF0ZSgiXHg1OVw1NVwxNTVcNTVceDY0Iik7IGdvdG8gY2RHN287IFRKMVhTOiBmdW5jdGlvbiByZXBsYWNlX3NlZigkdGV4dCkgeyAkdGV4dCA9IHRyaW0oJHRleHQpOyAkc2VhcmNoID0gYXJyYXkoIlwzMDNceGEyIiwgIlwzMDNcMjA3IiwgIlwzMDNceGE3IiwgIlwzMDRcMjM2IiwgIlwzMDRcMjM3IiwgIlwzMDRcMjYxIiwgIlx4YzRcMjYwIiwgIlx4YzNceDk2IiwgIlx4YzNcMjY2IiwgIlx4YzVcMjM2IiwgIlx4YzVcMjM3IiwgIlx4YzNceDljIiwgIlx4YzNceGJjIiwgIlw0MCIsICJcMzQyXDIwMFwyMzQiLCAiXHhlMlx4ODBcMjM1IiwgIlw0MiIsICJcMzQyXHg4MFwyMzEiLCAiXDE0MCIsICJcNDciLCAiXDQ3IiwgIlwxMzciKTsgJHJlcGxhY2UgPSBhcnJheSgiXDE0MSIsICJceDQzIiwgIlwxNDMiLCAiXHg0NyIsICJcMTQ3IiwgIlx4NjkiLCAiXDExMSIsICJcMTE3IiwgIlx4NmYiLCAiXDEyMyIsICJceDczIiwgIlx4NTUiLCAiXDE2NSIsICJcNTUiLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgIlw1NSIpOyAkbmV3X3RleHQgPSBzdHJfcmVwbGFjZSgkc2VhcmNoLCAkcmVwbGFjZSwgJHRleHQpOyByZXR1cm4gJG5ld190ZXh0OyB9IGdvdG8gZWt3Zl87IERBa2tjOiBmdW5jdGlvbiByZXBsYWNlX3NwYWNlKCR0ZXh0KSB7ICR0ZXh0ID0gdHJpbSgkdGV4dCk7ICRzZWFyY2ggPSBhcnJheSgiXHgyMCIpOyAkcmVwbGFjZSA9IGFycmF5KCJceDI1Iik7ICRuZXdfdGV4dCA9IHN0cl9yZXBsYWNlKCRzZWFyY2gsICRyZXBsYWNlLCAkdGV4dCk7IHJldHVybiAkbmV3X3RleHQ7IH0gZ290byBNZktVZTsgakF0c1o6ICRpZCA9IGh0bWxzcGVjaWFsY2hhcnMoaXNzZXQoJF9HRVRbIlx4NjlceDY0Il0pKSA/ICRfR0VUWyJceDY5XHg2NCJdIDogJyc7IGdvdG8gSHUzU2E7IGV4X0l6OiA=')); ?>
Function Calls
base64_decode | 1 |
Stats
MD5 | 5c1fcf22116447d831252c864a73a7a6 |
Eval Count | 1 |
Decode Time | 113 ms |