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 /* Quad Sistemas - quadsistemas.com.br - Todos Direitos esto Reservados - Contato:..
Decoded Output download
$codelock_active_key="Jesus"; @extract($_REQUEST); error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT); if ($codelock_act >= 1) { } else { @set_time_limit(240); } if ($I0X0OIOOIIOO11I == "") { $I0X0OIOOIIOO11I="codelock.php"; } else {} if ($codelock_act >= 1) { $codelock_testsize=@filesize($OO1OOI10II0OO1OII1O1OOI10/$I0X0OIOOIIOO11I); if($codelock_testsize != $codelock_mastersize){ @chmod("$OO1OOI10II0OO1OII1O1OOI10/$I0X0OIOOIIOO11I", 0777); if (@copy ("$OO1OOI10II0X0/$I0X0OIOOIIOO11I","$OO1OOI10II0OO1OII1O1OOI10/$I0X0OIOOIIOO11I")){}else{ $codelock_fp2 = @fopen("$OO1OOI10II0OO1OII1O1OOI10/$I0X0OIOOIIOO11I", "wb"); if ($codelock_fp2) { } else { @unlink($OO1OOI10II0OO1OII1O1OOI10/$I0X0OIOOIIOO11I); $codelock_fp2 = @fopen("$OO1OOI10II0OO1OII1O1OOI10/$I0X0OIOOIIOO11I", "wb"); } if ($codelock_fp2) { @fwrite($codelock_fp2, $codelock_masterdata); @fclose($codelock_fp2); } } @chmod("$I0X0OIOOIIOO11I", 0777); } } else {} $codelock_encbrowser=""; $codelock_usezlib=""; $codelock_scname=""; $codelock_coname=""; $codelock_extranotes=""; if (!function_exists('gzdeflate') AND $codelock_usezlib=="^") { echo"<font face='verdana' size='2'><br /><b>Error!</b> You need to install the ZLIB module for PHP to run this script!</font>"; die(); } else {} if (function_exists('codelock_enc_int')) { } else { function codelock_enc_int($codelock_enc_int_code,$codelock_enc_key) { $codelock_encint_code=base64_encode($codelock_enc_int_code); if ($codelock_enc_key == "") { } else { $codelock_enc_key=base64_encode($codelock_enc_key); $codelock_k1=substr($codelock_enc_key,0,1); $codelock_k2=substr($codelock_enc_key,1,1); $codelock_k3=substr($codelock_enc_key,2,1); $codelock_encint_code=str_replace("$codelock_k1", "$", $codelock_encint_code); $codelock_encint_code=str_replace("$codelock_k2", "(", $codelock_encint_code); $codelock_encint_code=str_replace("$codelock_k3", ")", $codelock_encint_code); } return $codelock_encint_code; } } if (function_exists('codelock_dec_int')) { } else { function codelock_dec_int($codelock_decint_code,$codelock_calc_key) { if ($codelock_calc_key == "") { } else { $codelock_calc_key=base64_encode($codelock_calc_key); $codelock_k1=substr($codelock_calc_key,0,1); $codelock_k2=substr($codelock_calc_key,1,1); $codelock_k3=substr($codelock_calc_key,2,1); $codelock_decint_code=str_replace("$", "$codelock_k1", $codelock_decint_code); $codelock_decint_code=str_replace("(", "$codelock_k2", $codelock_decint_code); $codelock_decint_code=str_replace(")", "$codelock_k3", $codelock_decint_code); } $codelock_decint_code=base64_decode($codelock_decint_code); return $codelock_decint_code; } } if (function_exists('codelock_dec')) { } else { function codelock_dec($codelock_v){ switch($codelock_v){ case "A":$dv=0;break; case "B":$dv=1;break; case "C":$dv=2;break; case "D":$dv=3;break; case "E":$dv=4;break; case "F":$dv=5;break; case "G":$dv=6;break; case "H":$dv=7;break; case "I":$dv=8;break; case "J":$dv=9;break; case "K":$dv=10;break; case "L":$dv=11;break; case "M":$dv=12;break; case "N":$dv=13;break; case "O":$dv=14;break; case "P":$dv=15;break; case "Q":$dv=16;break; case "R":$dv=17;break; case "S":$dv=18;break; case "T":$dv=19;break; case "U":$dv=20;break; case "V":$dv=21;break; case "W":$dv=22;break; case "X":$dv=23;break; case "Y":$dv=24;break; case "Z":$dv=25;break; case "a":$dv=26;break; case "b":$dv=27;break; case "c":$dv=28;break; case "d":$dv=29;break; case "e":$dv=30;break; case "f":$dv=31;break; case "g":$dv=32;break; case "h":$dv=33;break; case "i":$dv=34;break; case "j":$dv=35;break; case "k":$dv=36;break; case "l":$dv=37;break; case "m":$dv=38;break; case "n":$dv=39;break; case "o":$dv=40;break; case "p":$dv=41;break; case "q":$dv=42;break; case "r":$dv=43;break; case "s":$dv=44;break; case "t":$dv=45;break; case "u":$dv=46;break; case "v":$dv=47;break; case "w":$dv=48;break; case "x":$dv=49;break; case "y":$dv=50;break; case "z":$dv=51;break; case "0":$dv=52;break; case "1":$dv=53;break; case "2":$dv=54;break; case "3":$dv=55;break; case "4":$dv=56;break; case "5":$dv=57;break; case "6":$dv=58;break; case "7":$dv=59;break; case "8":$dv=60;break; case "9":$dv=61;break; case "+":$dv=62;break; case "/":$dv=63;break; case "=":$dv=64;break; default: $dv=0;break; } return $dv; } } if (function_exists('codelock_run')) { } else { function codelock_run($ciph,$key){ $m=0; $abc=""; for($i=0;$i<strlen($ciph);$i++){ $c=substr($ciph,$i,1); $dv=codelock_dec($c); $dv=($dv-$m)/4; $fb=decbin($dv); while(strlen($fb)<4){ $fb="0".$fb; } $abc=$abc.$fb; $m++; if($m>3){ $m=0; } } $kl=0; $pd=""; for($j=0;$j<strlen($abc);$j=$j+8){ $c=substr($abc,$j,8); $k=substr($key,$kl,1); $dc=bindec($c); $dc=$dc - strlen($key); $c=chr($dc); $kl++; if($kl>=strlen($key)){ $kl=0; } $dc=ord($c)^ord($k); $p=chr($dc); $pd=$pd.$p; } return $pd; } } if (substr($codelock_active_key, 0, 15) != "codelock_active") { if ($I0X0OIOOIIOO11I == "") { $I0X0OIOOIIOO11I="codelock.php"; } else {} if($ioncube_fixpath==""){ $codelock_located_file_temp=$OO1OOI10II0OO1OII1O1OOI10."/".$I0X0OIOOIIOO11I; }else{ $codelock_located_file_temp=$ioncube_fixpath."/".$I0X0OIOOIIOO11I; } $codelock_fp3 = @fopen("$codelock_located_file_temp", "rb"); $codelock_skip = @fgets($codelock_fp3, 8192); $codelock_skip2 = @fgets($codelock_fp3, 8192); $codelock_skip3 = @fgets($codelock_fp3, 65536); $codelock_key_data = @fread($codelock_fp3, @filesize("$codelock_located_file_temp")); @fclose ($codelock_fp3); if ($codelock_usezlib == "^") { $codelock_key_data=base64_decode($codelock_key_data); $codelock_key_data=gzinflate($codelock_key_data); } else {} $codelock_key_data=codelock_dec_int($codelock_key_data,$codelock_active_key); eval($codelock_key_data); if ($codelock_act >= 1) { } else { return; } } else { $codelock_askforkey="n"; if($codelock_askforkey == "y") { } else { $codelock_unlock="Jesus"; $codelock_sub="y"; } if ($I0X0OIOOIIOO11I == "") { $I0X0OIOOIIOO11I="codelock.php"; } else {} if($ioncube_fixpath==""){ $codelock_openthisfile2=$OO1OOI10II0OO1OII1O1OOI10."/".$I0X0OIOOIIOO11I; }else{ $codelock_openthisfile2=$ioncube_fixpath."/".$I0X0OIOOIIOO11I; } if($codelock_sub == "y") { $codelock_fp = @fopen("$codelock_openthisfile2", "rb"); $codelock_skip = @fgets($codelock_fp, 8192); $codelock_skip2 = @fgets($codelock_fp, 8192); $codelock_skip3 = @fgets($codelock_fp, 65536); $codelock_key_data = @fread($codelock_fp, @filesize("$codelock_openthisfile2")); @fclose ($codelock_fp); if ($codelock_usezlib == "^") { $codelock_key_data=base64_decode($codelock_key_data); $codelock_key_data=gzinflate($codelock_key_data); } else {} $codelock_exec=codelock_run($codelock_key_data,$codelock_unlock); if (preg_match("/codelock_decrypted/i", $codelock_exec)) { if ($codelock_usezlib == "^") { $codelock_codeii=$O01OOI10II0X0OIOOII; for ($codelock_ii=0; $codelock_ii < 11; $codelock_ii++) { $codelock_codeii=gzinflate(base64_decode($codelock_codeii)); $codelock_codeii=str_replace("eval(gzinf"."late(base64_de"."code('", "", $codelock_codeii); $codelock_codeii=str_replace("')));", "", $codelock_codeii); } $O01OOI10II0X0OIOOII=$codelock_codeii; } else { $O01OOI10II0X0OIOOII=base64_decode($O01OOI10II0X0OIOOII); } $codelock_skip3=$O01OOI10II0X0OIOOII; $codelock_skip3=str_replace("codelock_ac"."tive_key_text", $codelock_unlock, $codelock_skip3); $pres_codelock_skip3=$codelock_skip3; if ($codelock_usezlib == "^") { $codelock_codeii=$codelock_skip3; $codelock_codeii=gzdeflate($codelock_codeii); $codelock_codeii=base64_encode($codelock_codeii); for ($codelock_ii=0; $codelock_ii < 10; $codelock_ii++) { $codelock_codeii="eval(gzinflate(base64_decode('".$codelock_codeii."')));"; $codelock_codeii=gzdeflate($codelock_codeii); $codelock_codeii=base64_encode($codelock_codeii); } $codelock_skip3=$codelock_codeii; } else { $codelock_skip3=base64_encode($codelock_skip3); } $codelock_nskip3=$codelock_skip3; $codelock_nnskip3=""; if ($codelock_exp == "") { } else { $codelock_nnskip3.="$"."codelock_exp=\"$codelock_exp\"; "; } if ($codelock_usezlib == "^") { $codelock_nnnskip3="if ("."$"."OO1OOI10I == '') { echo \"<font face='verdana' size='2'><br /><b>Error!</b> </font>\"; die(); } else {} ".$codelock_nnskip3."$"."I0IOOIIOO11IOI=\"$codelock_nskip3\"; eval(gzinflate(base64_decode("."$"."I0IOOIIOO11IOI))); return; ?".chr(62).chr(13).chr(10); } else { $codelock_nnnskip3="if ("."$"."OO1OOI10I == '') { echo \"<font face='verdana' size='2'><br /><b>Error!</b> </font>\"; die(); } else {} ".$codelock_nnskip3."$"."I0IOOIIOO11IOI=\"$codelock_nskip3\"; eval(base64_decode("."$"."I0IOOIIOO11IOI)); return; ?".chr(62).chr(13).chr(10); } $codelock_exec2=codelock_enc_int($codelock_exec,$codelock_unlock); if ($codelock_usezlib == "^") { $codelock_exec2=gzdeflate($codelock_exec2); $codelock_exec2=base64_encode($codelock_exec2); } else {} $codelock_fdata=$codelock_skip.$codelock_skip2.'$OO1OOI10II0X0=dirname(__FILE__); '.$codelock_nnnskip3.$codelock_exec2; $codelock_masterdata=$codelock_fdata; @chmod("$I0X0OIOOIIOO11I", 0777); $codelock_fp2 = @fopen("$I0X0OIOOIIOO11I", "wb"); if ($codelock_fp2) { } else { echo "<br /><b>Error!</b> H um problema de permisso de gravao. Voc precisa CHMOD do arquivo: <b>$I0X0OIOOIIOO11I</b> para 777."; die(); } @fwrite($codelock_fp2, $codelock_fdata); @fclose ($codelock_fp2); @chmod("$I0X0OIOOIIOO11I", 0777); $codelock_mastersize=@filesize($I0X0OIOOIIOO11I); ob_start(); phpinfo(INFO_GENERAL); $codelock_op_string = ob_get_contents(); ob_end_clean(); if (strstr($codelock_op_string, "indows")) { $codelock_w_op="y"; } else {} if ($codelock_w_op == "y") { $codelock_sep_str=";"; } else { $codelock_sep_str=":"; } $include_curr_dir=$OO1OOI10II0OO1OII1O1OOI10; $include_dir_write=@ini_get('include_path'); $include_dir_write=$include_dir_write.$codelock_sep_str.$include_curr_dir; @ini_set('include_path', $include_dir_write); eval($codelock_exec); } else {} } else {} if ($codelock_act >= 1) { return; } else { echo '<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">'; echo '<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">'; echo"<div class='row jumbotron'>"; echo "<div class='col-md-3'></div>"; echo "<div class=\"col-md-6\" ><table cellpadding=10><tr><td>"; if($IO1O1OOI10 == ""){ $codelock_openthisfile=$OO1OOI10I; }else{ $codelock_openthisfile='http://'.$_SERVER['HTTP_HOST']."/".$IO1O1OOI10."/".$OO1OOI10I; } echo "<img src='https://quadsistemas.com.br/z_nunca_apague/logoquad.jpg'><BR><BR>"; echo "<form method=\"post\" class='text-center' action=\"$codelock_openthisfile\"><div align=\"center\">"; if ($codelock_scname == "") { echo "<font face=\"arial\" color=\"#006699\" size=\"4\">Quad Sistemas Web<BR><font size=2>quadsistemas.com.br</font><BR><b>Licena do Software</b></font><br /><br />"; } else { echo "<font face=\"arial\" color=\"#006699\" size=\"4\"><b>$codelock_scname - Codigo</b></font><br /><br />"; } if ($codelock_sub == "y") { echo "<font face=\"arial\" color=\"#cc0000\" size=\"4\"><b>Erro: </b></font><font face=\"arial\" color=\"#006699\" size=\"2\"><b>Chave Invlida</b></font><br /><br />"; } else {} echo"<font face=\"Arial\" size=\"2\">Entre com o Cdigo:</font><br /><br><div class=''><input class=\"form-control\" type=\"text\" id=codelock_unlock name=\"codelock_unlock\" size=\"10\" maxlength=\"64\"></div>"; echo"<input type=\"hidden\" name=\"codelock_sub\" value=\"y\">"; echo"<input type=\"hidden\" name=\"codelock_encbrowser\" value=\"$codelock_encbrowser\">"; echo"<input type=\"hidden\" name=\"codelock_enc\" value=\"$I0X0OIOOIIOO11I\">"; echo"<br /><br /><input type=\"submit\" class='btn btn-primary' id=submit name=\"Submit\" value=\"Desbloquear >>>\">"; if ($codelock_coname == "") { } else { echo "<br /><br /><font face=\"arial\" color=\"#000000\" size=\"2\">Software licenciado para: $codelock_coname</font>"; } if ($codelock_extranotes == "") {} else { echo "<br /><font face=\"arial\" color=\"#000000\" size=\"2\"><b>Nota: </b>$codelock_extranotes</font>"; } echo"</div></form></td><td></td></tr></table></div>"; echo "<div class='col-md-3'></div>"; echo "</div>"; echo '<script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>'; echo '<script>$(function(){ $("#codelock_unlock").focus(); $("#submit").click(function() { if($( "#codelock_unlock" ).val()==""){ alert("Entre com o Cdigo!"); $("#codelock_unlock").focus(); return false; }; }); $("body").bind("contextmenu", function(e) { e.preventDefault(); })});</script>'; } } return;
Did this file decode correctly?
Original Code
<?PHP
/* Quad Sistemas - quadsistemas.com.br - Todos Direitos esto Reservados - Contato: [email protected] - Copyright 2002-2019 ionCube Ltd. PHP Encoder - License for PHP Scripts */
$OO1OOI10II0X0=dirname(__FILE__); if ($OO1OOI10I == '') { echo "<font face='verdana' size='2'><br /><b>Error!</b> </font>"; die(); } else {} $I0IOOIIOO11IOI="ICRjb2RlbG9ja19hY3RpdmVfa2V5PSJKZXN1cyI7IEBleHRyYWN0KCRfUkVRVUVTVCk7IGVycm9yX3JlcG9ydGluZyhFX0FMTCAmIH5FX05PVElDRSAmIH5FX1NUUklDVCk7IGlmICgkY29kZWxvY2tfYWN0ID49IDEpIHsgfSBlbHNlIHsgQHNldF90aW1lX2xpbWl0KDI0MCk7IH0gaWYgKCRJMFgwT0lPT0lJT08xMUkgPT0gIiIpIHsgJEkwWDBPSU9PSUlPTzExST0iY29kZWxvY2sucGhwIjsgfSBlbHNlIHt9IGlmICgkY29kZWxvY2tfYWN0ID49IDEpIHsgICAgICAgICAkY29kZWxvY2tfdGVzdHNpemU9QGZpbGVzaXplKCRPTzFPT0kxMElJME9PMU9JSTFPMU9PSTEwLyRJMFgwT0lPT0lJT08xMUkpOyAgICAgICAgIGlmKCRjb2RlbG9ja190ZXN0c2l6ZSAhPSAkY29kZWxvY2tfbWFzdGVyc2l6ZSl7ICAgICAgICAgQGNobW9kKCIkT08xT09JMTBJSTBPTzFPSUkxTzFPT0kxMC8kSTBYME9JT09JSU9PMTFJIiwgMDc3Nyk7ICAgICAgICAgaWYgKEBjb3B5ICgiJE9PMU9PSTEwSUkwWDAvJEkwWDBPSU9PSUlPTzExSSIsIiRPTzFPT0kxMElJME9PMU9JSTFPMU9PSTEwLyRJMFgwT0lPT0lJT08xMUkiKSl7fWVsc2V7ICAgICAgICAgICAgICRjb2RlbG9ja19mcDIgPSBAZm9wZW4oIiRPTzFPT0kxMElJME9PMU9JSTFPMU9PSTEwLyRJMFgwT0lPT0lJT08xMUkiLCAid2IiKTsgICAgICAgICAgICAgaWYgKCRjb2RlbG9ja19mcDIpIHsgfSBlbHNlIHsgQHVubGluaygkT08xT09JMTBJSTBPTzFPSUkxTzFPT0kxMC8kSTBYME9JT09JSU9PMTFJKTsgJGNvZGVsb2NrX2ZwMiA9IEBmb3BlbigiJE9PMU9PSTEwSUkwT08xT0lJMU8xT09JMTAvJEkwWDBPSU9PSUlPTzExSSIsICJ3YiIpOyB9ICAgICAgICAgICAgIGlmICgkY29kZWxvY2tfZnAyKSB7ICAgICAgICAgICAgIEBmd3JpdGUoJGNvZGVsb2NrX2ZwMiwgJGNvZGVsb2NrX21hc3RlcmRhdGEpOyAgICAgICAgICAgICBAZmNsb3NlKCRjb2RlbG9ja19mcDIpOyAgICAgICAgICAgICB9ICAgICAgICAgfSAgICAgICAgIEBjaG1vZCgiJEkwWDBPSU9PSUlPTzExSSIsIDA3NzcpOyB9IH0gZWxzZSB7fSAkY29kZWxvY2tfZW5jYnJvd3Nlcj0iIjsgJGNvZGVsb2NrX3VzZXpsaWI9IiI7ICRjb2RlbG9ja19zY25hbWU9IiI7ICRjb2RlbG9ja19jb25hbWU9IiI7ICRjb2RlbG9ja19leHRyYW5vdGVzPSIiOyBpZiAoIWZ1bmN0aW9uX2V4aXN0cygnZ3pkZWZsYXRlJykgQU5EICRjb2RlbG9ja191c2V6bGliPT0iXiIpIHsgICAgIGVjaG8iPGZvbnQgZmFjZT0ndmVyZGFuYScgc2l6ZT0nMic+PGJyIC8+PGI+RXJyb3IhPC9iPiBZb3UgbmVlZCB0byBpbnN0YWxsIHRoZSBaTElCIG1vZHVsZSBmb3IgUEhQIHRvIHJ1biB0aGlzIHNjcmlwdCE8L2ZvbnQ+IjsgICAgIGRpZSgpOyB9IGVsc2Uge30gIGlmIChmdW5jdGlvbl9leGlzdHMoJ2NvZGVsb2NrX2VuY19pbnQnKSkgeyB9IGVsc2UgeyBmdW5jdGlvbiBjb2RlbG9ja19lbmNfaW50KCRjb2RlbG9ja19lbmNfaW50X2NvZGUsJGNvZGVsb2NrX2VuY19rZXkpIHsgJGNvZGVsb2NrX2VuY2ludF9jb2RlPWJhc2U2NF9lbmNvZGUoJGNvZGVsb2NrX2VuY19pbnRfY29kZSk7ICBpZiAoJGNvZGVsb2NrX2VuY19rZXkgPT0gIiIpIHsgfSBlbHNlIHsgJGNvZGVsb2NrX2VuY19rZXk9YmFzZTY0X2VuY29kZSgkY29kZWxvY2tfZW5jX2tleSk7ICRjb2RlbG9ja19rMT1zdWJzdHIoJGNvZGVsb2NrX2VuY19rZXksMCwxKTsgJGNvZGVsb2NrX2syPXN1YnN0cigkY29kZWxvY2tfZW5jX2tleSwxLDEpOyAkY29kZWxvY2tfazM9c3Vic3RyKCRjb2RlbG9ja19lbmNfa2V5LDIsMSk7ICRjb2RlbG9ja19lbmNpbnRfY29kZT1zdHJfcmVwbGFjZSgiJGNvZGVsb2NrX2sxIiwgIiQiLCAkY29kZWxvY2tfZW5jaW50X2NvZGUpOyAkY29kZWxvY2tfZW5jaW50X2NvZGU9c3RyX3JlcGxhY2UoIiRjb2RlbG9ja19rMiIsICIoIiwgJGNvZGVsb2NrX2VuY2ludF9jb2RlKTsgJGNvZGVsb2NrX2VuY2ludF9jb2RlPXN0cl9yZXBsYWNlKCIkY29kZWxvY2tfazMiLCAiKSIsICRjb2RlbG9ja19lbmNpbnRfY29kZSk7IH0gcmV0dXJuICRjb2RlbG9ja19lbmNpbnRfY29kZTsgfSB9ICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdjb2RlbG9ja19kZWNfaW50JykpIHsgfSBlbHNlIHsgZnVuY3Rpb24gY29kZWxvY2tfZGVjX2ludCgkY29kZWxvY2tfZGVjaW50X2NvZGUsJGNvZGVsb2NrX2NhbGNfa2V5KSB7ICBpZiAoJGNvZGVsb2NrX2NhbGNfa2V5ID09ICIiKSB7IH0gZWxzZSB7ICRjb2RlbG9ja19jYWxjX2tleT1iYXNlNjRfZW5jb2RlKCRjb2RlbG9ja19jYWxjX2tleSk7ICRjb2RlbG9ja19rMT1zdWJzdHIoJGNvZGVsb2NrX2NhbGNfa2V5LDAsMSk7ICRjb2RlbG9ja19rMj1zdWJzdHIoJGNvZGVsb2NrX2NhbGNfa2V5LDEsMSk7ICRjb2RlbG9ja19rMz1zdWJzdHIoJGNvZGVsb2NrX2NhbGNfa2V5LDIsMSk7ICRjb2RlbG9ja19kZWNpbnRfY29kZT1zdHJfcmVwbGFjZSgiJCIsICIkY29kZWxvY2tfazEiLCAkY29kZWxvY2tfZGVjaW50X2NvZGUpOyAkY29kZWxvY2tfZGVjaW50X2NvZGU9c3RyX3JlcGxhY2UoIigiLCAiJGNvZGVsb2NrX2syIiwgJGNvZGVsb2NrX2RlY2ludF9jb2RlKTsgJGNvZGVsb2NrX2RlY2ludF9jb2RlPXN0cl9yZXBsYWNlKCIpIiwgIiRjb2RlbG9ja19rMyIsICRjb2RlbG9ja19kZWNpbnRfY29kZSk7IH0gJGNvZGVsb2NrX2RlY2ludF9jb2RlPWJhc2U2NF9kZWNvZGUoJGNvZGVsb2NrX2RlY2ludF9jb2RlKTsgIHJldHVybiAkY29kZWxvY2tfZGVjaW50X2NvZGU7IH0gfSBpZiAoZnVuY3Rpb25fZXhpc3RzKCdjb2RlbG9ja19kZWMnKSkgeyB9IGVsc2UgeyBmdW5jdGlvbiBjb2RlbG9ja19kZWMoJGNvZGVsb2NrX3YpeyBzd2l0Y2goJGNvZGVsb2NrX3YpeyBjYXNlICJBIjokZHY9MDticmVhazsgY2FzZSAiQiI6JGR2PTE7YnJlYWs7IGNhc2UgIkMiOiRkdj0yO2JyZWFrOyBjYXNlICJEIjokZHY9MzticmVhazsgY2FzZSAiRSI6JGR2PTQ7YnJlYWs7IGNhc2UgIkYiOiRkdj01O2JyZWFrOyBjYXNlICJHIjokZHY9NjticmVhazsgY2FzZSAiSCI6JGR2PTc7YnJlYWs7IGNhc2UgIkkiOiRkdj04O2JyZWFrOyBjYXNlICJKIjokZHY9OTticmVhazsgY2FzZSAiSyI6JGR2PTEwO2JyZWFrOyBjYXNlICJMIjokZHY9MTE7YnJlYWs7IGNhc2UgIk0iOiRkdj0xMjticmVhazsgY2FzZSAiTiI6JGR2PTEzO2JyZWFrOyBjYXNlICJPIjokZHY9MTQ7YnJlYWs7IGNhc2UgIlAiOiRkdj0xNTticmVhazsgY2FzZSAiUSI6JGR2PTE2O2JyZWFrOyBjYXNlICJSIjokZHY9MTc7YnJlYWs7IGNhc2UgIlMiOiRkdj0xODticmVhazsgY2FzZSAiVCI6JGR2PTE5O2JyZWFrOyBjYXNlICJVIjokZHY9MjA7YnJlYWs7IGNhc2UgIlYiOiRkdj0yMTticmVhazsgY2FzZSAiVyI6JGR2PTIyO2JyZWFrOyBjYXNlICJYIjokZHY9MjM7YnJlYWs7IGNhc2UgIlkiOiRkdj0yNDticmVhazsgY2FzZSAiWiI6JGR2PTI1O2JyZWFrOyBjYXNlICJhIjokZHY9MjY7YnJlYWs7IGNhc2UgImIiOiRkdj0yNzticmVhazsgY2FzZSAiYyI6JGR2PTI4O2JyZWFrOyBjYXNlICJkIjokZHY9Mjk7YnJlYWs7IGNhc2UgImUiOiRkdj0zMDticmVhazsgY2FzZSAiZiI6JGR2PTMxO2JyZWFrOyBjYXNlICJnIjokZHY9MzI7YnJlYWs7IGNhc2UgImgiOiRkdj0zMzticmVhazsgY2FzZSAiaSI6JGR2PTM0O2JyZWFrOyBjYXNlICJqIjokZHY9MzU7YnJlYWs7IGNhc2UgImsiOiRkdj0zNjticmVhazsgY2FzZSAibCI6JGR2PTM3O2JyZWFrOyBjYXNlICJtIjokZHY9Mzg7YnJlYWs7IGNhc2UgIm4iOiRkdj0zOTticmVhazsgY2FzZSAibyI6JGR2PTQwO2JyZWFrOyBjYXNlICJwIjokZHY9NDE7YnJlYWs7IGNhc2UgInEiOiRkdj00MjticmVhazsgY2FzZSAiciI6JGR2PTQzO2JyZWFrOyBjYXNlICJzIjokZHY9NDQ7YnJlYWs7IGNhc2UgInQiOiRkdj00NTticmVhazsgY2FzZSAidSI6JGR2PTQ2O2JyZWFrOyBjYXNlICJ2IjokZHY9NDc7YnJlYWs7IGNhc2UgInciOiRkdj00ODticmVhazsgY2FzZSAieCI6JGR2PTQ5O2JyZWFrOyBjYXNlICJ5IjokZHY9NTA7YnJlYWs7IGNhc2UgInoiOiRkdj01MTticmVhazsgY2FzZSAiMCI6JGR2PTUyO2JyZWFrOyBjYXNlICIxIjokZHY9NTM7YnJlYWs7IGNhc2UgIjIiOiRkdj01NDticmVhazsgY2FzZSAiMyI6JGR2PTU1O2JyZWFrOyBjYXNlICI0IjokZHY9NTY7YnJlYWs7IGNhc2UgIjUiOiRkdj01NzticmVhazsgY2FzZSAiNiI6JGR2PTU4O2JyZWFrOyBjYXNlICI3IjokZHY9NTk7YnJlYWs7IGNhc2UgIjgiOiRkdj02MDticmVhazsgY2FzZSAiOSI6JGR2PTYxO2JyZWFrOyBjYXNlICIrIjokZHY9NjI7YnJlYWs7IGNhc2UgIi8iOiRkdj02MzticmVhazsgY2FzZSAiPSI6JGR2PTY0O2JyZWFrOyBkZWZhdWx0OiAkZHY9MDticmVhazsgfSByZXR1cm4gJGR2OyB9IH0gaWYgKGZ1bmN0aW9uX2V4aXN0cygnY29kZWxvY2tfcnVuJykpIHsgfSBlbHNlIHsgZnVuY3Rpb24gY29kZWxvY2tfcnVuKCRjaXBoLCRrZXkpeyAkbT0wOyAkYWJjPSIiOyBmb3IoJGk9MDskaTxzdHJsZW4oJGNpcGgpOyRpKyspeyAkYz1zdWJzdHIoJGNpcGgsJGksMSk7ICRkdj1jb2RlbG9ja19kZWMoJGMpOyAkZHY9KCRkdi0kbSkvNDsgJGZiPWRlY2JpbigkZHYpOyB3aGlsZShzdHJsZW4oJGZiKTw0KXsgJGZiPSIwIi4kZmI7IH0gJGFiYz0kYWJjLiRmYjsgJG0rKzsgaWYoJG0+Myl7ICRtPTA7IH0gfSAka2w9MDsgJHBkPSIiOyBmb3IoJGo9MDskajxzdHJsZW4oJGFiYyk7JGo9JGorOCl7ICRjPXN1YnN0cigkYWJjLCRqLDgpOyAkaz1zdWJzdHIoJGtleSwka2wsMSk7ICRkYz1iaW5kZWMoJGMpOyAkZGM9JGRjIC0gc3RybGVuKCRrZXkpOyAkYz1jaHIoJGRjKTsgJGtsKys7IGlmKCRrbD49c3RybGVuKCRrZXkpKXsgJGtsPTA7IH0gJGRjPW9yZCgkYyleb3JkKCRrKTsgJHA9Y2hyKCRkYyk7ICRwZD0kcGQuJHA7IH0gcmV0dXJuICRwZDsgfSB9ICBpZiAoc3Vic3RyKCRjb2RlbG9ja19hY3RpdmVfa2V5LCAwLCAxNSkgIT0gImNvZGVsb2NrX2FjdGl2ZSIpIHsgICAgIGlmICgkSTBYME9JT09JSU9PMTFJID09ICIiKSB7ICRJMFgwT0lPT0lJT08xMUk9ImNvZGVsb2NrLnBocCI7IH0gZWxzZSB7fSAgICAgICAgIGlmKCRpb25jdWJlX2ZpeHBhdGg9PSIiKXsgICAgICAgICAgICAgJGNvZGVsb2NrX2xvY2F0ZWRfZmlsZV90ZW1wPSRPTzFPT0kxMElJME9PMU9JSTFPMU9PSTEwLiIvIi4kSTBYME9JT09JSU9PMTFJOyAgICAgICAgIH1lbHNleyAgICAgICAgICAgICAkY29kZWxvY2tfbG9jYXRlZF9maWxlX3RlbXA9JGlvbmN1YmVfZml4cGF0aC4iLyIuJEkwWDBPSU9PSUlPTzExSTsgICAgICAgICB9ICAgICAkY29kZWxvY2tfZnAzID0gQGZvcGVuKCIkY29kZWxvY2tfbG9jYXRlZF9maWxlX3RlbXAiLCAicmIiKTsgICAgICRjb2RlbG9ja19za2lwID0gQGZnZXRzKCRjb2RlbG9ja19mcDMsIDgxOTIpOyAgICAgJGNvZGVsb2NrX3NraXAyID0gQGZnZXRzKCRjb2RlbG9ja19mcDMsIDgxOTIpOyAgICAgJGNvZGVsb2NrX3NraXAzID0gQGZnZXRzKCRjb2RlbG9ja19mcDMsIDY1NTM2KTsgICAgICRjb2RlbG9ja19rZXlfZGF0YSA9IEBmcmVhZCgkY29kZWxvY2tfZnAzLCBAZmlsZXNpemUoIiRjb2RlbG9ja19sb2NhdGVkX2ZpbGVfdGVtcCIpKTsgICAgIEBmY2xvc2UgKCRjb2RlbG9ja19mcDMpOyAgICAgaWYgKCRjb2RlbG9ja191c2V6bGliID09ICJeIikgeyAgICAgJGNvZGVsb2NrX2tleV9kYXRhPWJhc2U2NF9kZWNvZGUoJGNvZGVsb2NrX2tleV9kYXRhKTsgICAgICRjb2RlbG9ja19rZXlfZGF0YT1nemluZmxhdGUoJGNvZGVsb2NrX2tleV9kYXRhKTsgICAgIH0gZWxzZSB7fSAgICAgJGNvZGVsb2NrX2tleV9kYXRhPWNvZGVsb2NrX2RlY19pbnQoJGNvZGVsb2NrX2tleV9kYXRhLCRjb2RlbG9ja19hY3RpdmVfa2V5KTsgICAgIGV2YWwoJGNvZGVsb2NrX2tleV9kYXRhKTsgICAgIGlmICgkY29kZWxvY2tfYWN0ID49IDEpIHsgICAgIH0gZWxzZSB7ICAgICByZXR1cm47ICAgICB9IH0gZWxzZSB7ICAgICAgJGNvZGVsb2NrX2Fza2ZvcmtleT0ibiI7ICAgICBpZigkY29kZWxvY2tfYXNrZm9ya2V5ID09ICJ5IikgeyAgICAgfSBlbHNlIHsgICAgICRjb2RlbG9ja191bmxvY2s9Ikplc3VzIjsgICAgICRjb2RlbG9ja19zdWI9InkiOyAgICAgfSAgICAgICBpZiAoJEkwWDBPSU9PSUlPTzExSSA9PSAiIikgeyAkSTBYME9JT09JSU9PMTFJPSJjb2RlbG9jay5waHAiOyB9IGVsc2Uge30gICAgICAgICBpZigkaW9uY3ViZV9maXhwYXRoPT0iIil7ICAgICAgICAgJGNvZGVsb2NrX29wZW50aGlzZmlsZTI9JE9PMU9PSTEwSUkwT08xT0lJMU8xT09JMTAuIi8iLiRJMFgwT0lPT0lJT08xMUk7ICAgICAgICAgfWVsc2V7ICAgICAgICAgJGNvZGVsb2NrX29wZW50aGlzZmlsZTI9JGlvbmN1YmVfZml4cGF0aC4iLyIuJEkwWDBPSU9PSUlPTzExSTsgICAgICAgICB9ICAgICAgICAgaWYoJGNvZGVsb2NrX3N1YiA9PSAieSIpIHsgICAgICAgICAkY29kZWxvY2tfZnAgPSBAZm9wZW4oIiRjb2RlbG9ja19vcGVudGhpc2ZpbGUyIiwgInJiIik7ICAgICAgICAgJGNvZGVsb2NrX3NraXAgPSBAZmdldHMoJGNvZGVsb2NrX2ZwLCA4MTkyKTsgICAgICAgICAkY29kZWxvY2tfc2tpcDIgPSBAZmdldHMoJGNvZGVsb2NrX2ZwLCA4MTkyKTsgICAgICAgICAkY29kZWxvY2tfc2tpcDMgPSBAZmdldHMoJGNvZGVsb2NrX2ZwLCA2NTUzNik7ICAgICAgICAgJGNvZGVsb2NrX2tleV9kYXRhID0gQGZyZWFkKCRjb2RlbG9ja19mcCwgQGZpbGVzaXplKCIkY29kZWxvY2tfb3BlbnRoaXNmaWxlMiIpKTsgICAgICAgICBAZmNsb3NlICgkY29kZWxvY2tfZnApOyAgICAgICAgICAgICBpZiAoJGNvZGVsb2NrX3VzZXpsaWIgPT0gIl4iKSB7ICAgICAgICAgICAgICRjb2RlbG9ja19rZXlfZGF0YT1iYXNlNjRfZGVjb2RlKCRjb2RlbG9ja19rZXlfZGF0YSk7ICAgICAgICAgICAgICRjb2RlbG9ja19rZXlfZGF0YT1nemluZmxhdGUoJGNvZGVsb2NrX2tleV9kYXRhKTsgICAgICAgICAgICAgfSBlbHNlIHt9ICAgICAgICAgJGNvZGVsb2NrX2V4ZWM9Y29kZWxvY2tfcnVuKCRjb2RlbG9ja19rZXlfZGF0YSwkY29kZWxvY2tfdW5sb2NrKTsgICAgICAgICBpZiAocHJlZ19tYXRjaCgiL2NvZGVsb2NrX2RlY3J5cHRlZC9pIiwgJGNvZGVsb2NrX2V4ZWMpKSB7ICAgICAgICAgICAgICBpZiAoJGNvZGVsb2NrX3VzZXpsaWIgPT0gIl4iKSB7ICAgICAgICAgICAgICRjb2RlbG9ja19jb2RlaWk9JE8wMU9PSTEwSUkwWDBPSU9PSUk7ICAgICAgICAgICAgIGZvciAoJGNvZGVsb2NrX2lpPTA7ICRjb2RlbG9ja19paSA8IDExOyAkY29kZWxvY2tfaWkrKykgeyAgICAgICAgICAgICAkY29kZWxvY2tfY29kZWlpPWd6aW5mbGF0ZShiYXNlNjRfZGVjb2RlKCRjb2RlbG9ja19jb2RlaWkpKTsgICAgICAgICAgICAgJGNvZGVsb2NrX2NvZGVpaT1zdHJfcmVwbGFjZSgiZXZhbChnemluZiIuImxhdGUoYmFzZTY0X2RlIi4iY29kZSgnIiwgIiIsICRjb2RlbG9ja19jb2RlaWkpOyAgICAgICAgICAgICAkY29kZWxvY2tfY29kZWlpPXN0cl9yZXBsYWNlKCInKSkpOyIsICIiLCAkY29kZWxvY2tfY29kZWlpKTsgICAgICAgICAgICAgfSAgICAgICAgICAgICAkTzAxT09JMTBJSTBYME9JT09JST0kY29kZWxvY2tfY29kZWlpOyAgICAgICAgICAgICB9IGVsc2UgeyAgICAgICAgICAgICAkTzAxT09JMTBJSTBYME9JT09JST1iYXNlNjRfZGVjb2RlKCRPMDFPT0kxMElJMFgwT0lPT0lJKTsgICAgICAgICAgICAgfSAgICAgICAgICAgICAgJGNvZGVsb2NrX3NraXAzPSRPMDFPT0kxMElJMFgwT0lPT0lJOyAgICAgICAgICAgICAkY29kZWxvY2tfc2tpcDM9c3RyX3JlcGxhY2UoImNvZGVsb2NrX2FjIi4idGl2ZV9rZXlfdGV4dCIsICRjb2RlbG9ja191bmxvY2ssICRjb2RlbG9ja19za2lwMyk7ICAgICAgICAgICAgICRwcmVzX2NvZGVsb2NrX3NraXAzPSRjb2RlbG9ja19za2lwMzsgICAgICAgICAgICAgICAgICBpZiAoJGNvZGVsb2NrX3VzZXpsaWIgPT0gIl4iKSB7ICAgICAgICAgICAgICRjb2RlbG9ja19jb2RlaWk9JGNvZGVsb2NrX3NraXAzOyAgICAgICAgICAgICAkY29kZWxvY2tfY29kZWlpPWd6ZGVmbGF0ZSgkY29kZWxvY2tfY29kZWlpKTsgJGNvZGVsb2NrX2NvZGVpaT1iYXNlNjRfZW5jb2RlKCRjb2RlbG9ja19jb2RlaWkpOyAgICAgICAgICAgICBmb3IgKCRjb2RlbG9ja19paT0wOyAkY29kZWxvY2tfaWkgPCAxMDsgJGNvZGVsb2NrX2lpKyspIHsgICAgICAgICAgICAgJGNvZGVsb2NrX2NvZGVpaT0iZXZhbChnemluZmxhdGUoYmFzZTY0X2RlY29kZSgnIi4kY29kZWxvY2tfY29kZWlpLiInKSkpOyI7ICAgICAgICAgICAgICRjb2RlbG9ja19jb2RlaWk9Z3pkZWZsYXRlKCRjb2RlbG9ja19jb2RlaWkpOyAkY29kZWxvY2tfY29kZWlpPWJhc2U2NF9lbmNvZGUoJGNvZGVsb2NrX2NvZGVpaSk7ICAgICAgICAgICAgIH0gICAgICAgICAgICAgJGNvZGVsb2NrX3NraXAzPSRjb2RlbG9ja19jb2RlaWk7ICAgICAgICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgICRjb2RlbG9ja19za2lwMz1iYXNlNjRfZW5jb2RlKCRjb2RlbG9ja19za2lwMyk7ICAgICAgICAgICAgIH0gICAgICAgICAgJGNvZGVsb2NrX25za2lwMz0kY29kZWxvY2tfc2tpcDM7ICAgICAgICAgJGNvZGVsb2NrX25uc2tpcDM9IiI7ICAgICAgICAgaWYgKCRjb2RlbG9ja19leHAgPT0gIiIpIHsgfSBlbHNlIHsgJGNvZGVsb2NrX25uc2tpcDMuPSIkIi4iY29kZWxvY2tfZXhwPVwiJGNvZGVsb2NrX2V4cFwiOyAiOyB9ICAgICAgICAgICAgICBpZiAoJGNvZGVsb2NrX3VzZXpsaWIgPT0gIl4iKSB7ICAgICAgICAgICAgICRjb2RlbG9ja19ubm5za2lwMz0iaWYgKCIuIiQiLiJPTzFPT0kxMEkgPT0gJycpIHsgZWNobyBcIjxmb250IGZhY2U9J3ZlcmRhbmEnIHNpemU9JzInPjxiciAvPjxiPkVycm9yITwvYj4gPC9mb250PlwiOyBkaWUoKTsgfSBlbHNlIHt9ICIuJGNvZGVsb2NrX25uc2tpcDMuIiQiLiJJMElPT0lJT08xMUlPST1cIiRjb2RlbG9ja19uc2tpcDNcIjsgZXZhbChnemluZmxhdGUoYmFzZTY0X2RlY29kZSgiLiIkIi4iSTBJT09JSU9PMTFJT0kpKSk7IHJldHVybjsgPyIuY2hyKDYyKS5jaHIoMTMpLmNocigxMCk7ICAgICAgICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgICRjb2RlbG9ja19ubm5za2lwMz0iaWYgKCIuIiQiLiJPTzFPT0kxMEkgPT0gJycpIHsgZWNobyBcIjxmb250IGZhY2U9J3ZlcmRhbmEnIHNpemU9JzInPjxiciAvPjxiPkVycm9yITwvYj4gPC9mb250PlwiOyBkaWUoKTsgfSBlbHNlIHt9ICIuJGNvZGVsb2NrX25uc2tpcDMuIiQiLiJJMElPT0lJT08xMUlPST1cIiRjb2RlbG9ja19uc2tpcDNcIjsgZXZhbChiYXNlNjRfZGVjb2RlKCIuIiQiLiJJMElPT0lJT08xMUlPSSkpOyByZXR1cm47ID8iLmNocig2MikuY2hyKDEzKS5jaHIoMTApOyAgICAgICAgICAgICB9ICAgICAgICAgJGNvZGVsb2NrX2V4ZWMyPWNvZGVsb2NrX2VuY19pbnQoJGNvZGVsb2NrX2V4ZWMsJGNvZGVsb2NrX3VubG9jayk7ICAgICAgICAgIGlmICgkY29kZWxvY2tfdXNlemxpYiA9PSAiXiIpIHsgICAgICAgICAgICAgJGNvZGVsb2NrX2V4ZWMyPWd6ZGVmbGF0ZSgkY29kZWxvY2tfZXhlYzIpOyAgICAgICAgICAgICAkY29kZWxvY2tfZXhlYzI9YmFzZTY0X2VuY29kZSgkY29kZWxvY2tfZXhlYzIpOyAgICAgICAgICAgICB9IGVsc2Uge30gICAgICAgICAkY29kZWxvY2tfZmRhdGE9JGNvZGVsb2NrX3NraXAuJGNvZGVsb2NrX3NraXAyLickT08xT09JMTBJSTBYMD1kaXJuYW1lKF9fRklMRV9fKTsgJy4kY29kZWxvY2tfbm5uc2tpcDMuJGNvZGVsb2NrX2V4ZWMyOyAgICAgICAgICRjb2RlbG9ja19tYXN0ZXJkYXRhPSRjb2RlbG9ja19mZGF0YTsgICAgICAgICBAY2htb2QoIiRJMFgwT0lPT0lJT08xMUkiLCAwNzc3KTsgICAgICAgICAkY29kZWxvY2tfZnAyID0gQGZvcGVuKCIkSTBYME9JT09JSU9PMTFJIiwgIndiIik7ICAgICAgICAgaWYgKCRjb2RlbG9ja19mcDIpIHsgfSBlbHNlIHsgZWNobyAiPGJyIC8+PGI+RXJyb3IhPC9iPiBIw6EgdW0gcHJvYmxlbWEgZGUgcGVybWlzc8OjbyBkZSBncmF2YcOnw6NvLiBWb2PDqiBwcmVjaXNhIENITU9EIGRvIGFycXVpdm86IDxiPiRJMFgwT0lPT0lJT08xMUk8L2I+IHBhcmEgNzc3LiI7IGRpZSgpOyB9ICAgICAgICAgQGZ3cml0ZSgkY29kZWxvY2tfZnAyLCAkY29kZWxvY2tfZmRhdGEpOyAgICAgICAgIEBmY2xvc2UgKCRjb2RlbG9ja19mcDIpOyAgICAgICAgIEBjaG1vZCgiJEkwWDBPSU9PSUlPTzExSSIsIDA3NzcpOyAgICAgICAgICRjb2RlbG9ja19tYXN0ZXJzaXplPUBmaWxlc2l6ZSgkSTBYME9JT09JSU9PMTFJKTsgICAgICAgICBvYl9zdGFydCgpOyBwaHBpbmZvKElORk9fR0VORVJBTCk7ICRjb2RlbG9ja19vcF9zdHJpbmcgPSBvYl9nZXRfY29udGVudHMoKTsgICAgICAgICBvYl9lbmRfY2xlYW4oKTsgaWYgKHN0cnN0cigkY29kZWxvY2tfb3Bfc3RyaW5nLCAiaW5kb3dzIikpIHsgJGNvZGVsb2NrX3dfb3A9InkiOyB9IGVsc2Uge30gICAgICAgICBpZiAoJGNvZGVsb2NrX3dfb3AgPT0gInkiKSB7ICRjb2RlbG9ja19zZXBfc3RyPSI7IjsgfSBlbHNlIHsgJGNvZGVsb2NrX3NlcF9zdHI9IjoiOyB9ICAgICAgICAgJGluY2x1ZGVfY3Vycl9kaXI9JE9PMU9PSTEwSUkwT08xT0lJMU8xT09JMTA7ICAgICAgICAgJGluY2x1ZGVfZGlyX3dyaXRlPUBpbmlfZ2V0KCdpbmNsdWRlX3BhdGgnKTsgJGluY2x1ZGVfZGlyX3dyaXRlPSRpbmNsdWRlX2Rpcl93cml0ZS4kY29kZWxvY2tfc2VwX3N0ci4kaW5jbHVkZV9jdXJyX2RpcjsgICAgICAgICBAaW5pX3NldCgnaW5jbHVkZV9wYXRoJywgJGluY2x1ZGVfZGlyX3dyaXRlKTsgICAgICAgICBldmFsKCRjb2RlbG9ja19leGVjKTsgICAgICAgICB9IGVsc2Uge30gICAgICAgICB9IGVsc2Uge30gIGlmICgkY29kZWxvY2tfYWN0ID49IDEpIHsgICAgIHJldHVybjsgICAgIH0gZWxzZSB7ICAgICAgICAgZWNobyAnPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC80LjAuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiIGludGVncml0eT0ic2hhMzg0LUduNTM4NHhxUTFhb1dYQSswNThSWFB4UGc2Znk0SVd2VE5oMEUyNjNYbUZjSmxTQXdpR2dGQVcvZEFpUzZKWG0iIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPic7ICAgICAgICAgZWNobyAnPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC80LjAuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiIGludGVncml0eT0ic2hhMzg0LUduNTM4NHhxUTFhb1dYQSswNThSWFB4UGc2Znk0SVd2VE5oMEUyNjNYbUZjSmxTQXdpR2dGQVcvZEFpUzZKWG0iIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPic7ICAgICAgICAgZWNobyI8ZGl2IGNsYXNzPSdyb3cganVtYm90cm9uJz4iOyAgICAgICAgIGVjaG8gIjxkaXYgY2xhc3M9J2NvbC1tZC0zJz48L2Rpdj4iOyAgICAgICAgIGVjaG8gIjxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiID48dGFibGUgY2VsbHBhZGRpbmc9MTA+PHRyPjx0ZD4iOyAgICAgaWYoJElPMU8xT09JMTAgPT0gIiIpeyAgICAgJGNvZGVsb2NrX29wZW50aGlzZmlsZT0kT08xT09JMTBJOyAgICAgfWVsc2V7ICAgICAkY29kZWxvY2tfb3BlbnRoaXNmaWxlPSdodHRwOi8vJy4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uIi8iLiRJTzFPMU9PSTEwLiIvIi4kT08xT09JMTBJOyAgICAgfSAgICAgICAgIGVjaG8gIjxpbWcgc3JjPSdodHRwczovL3F1YWRzaXN0ZW1hcy5jb20uYnIvel9udW5jYV9hcGFndWUvbG9nb3F1YWQuanBnJz48QlI+PEJSPiI7ICAgICAgICAgZWNobyAiPGZvcm0gbWV0aG9kPVwicG9zdFwiIGNsYXNzPSd0ZXh0LWNlbnRlcicgYWN0aW9uPVwiJGNvZGVsb2NrX29wZW50aGlzZmlsZVwiPjxkaXYgYWxpZ249XCJjZW50ZXJcIj4iOyAgICAgICAgICAgICBpZiAoJGNvZGVsb2NrX3NjbmFtZSA9PSAiIikgeyAgICAgICAgICAgICBlY2hvICI8Zm9udCBmYWNlPVwiYXJpYWxcIiBjb2xvcj1cIiMwMDY2OTlcIiBzaXplPVwiNFwiPlF1YWQgU2lzdGVtYXMgV2ViPEJSPjxmb250IHNpemU9Mj5xdWFkc2lzdGVtYXMuY29tLmJyPC9mb250PjxCUj48Yj5MaWNlbsOnYSBkbyBTb2Z0d2FyZTwvYj48L2ZvbnQ+PGJyIC8+PGJyIC8+IjsgICAgICAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICAgZWNobyAiPGZvbnQgZmFjZT1cImFyaWFsXCIgY29sb3I9XCIjMDA2Njk5XCIgc2l6ZT1cIjRcIj48Yj4kY29kZWxvY2tfc2NuYW1lICAtIENvZGlnbzwvYj48L2ZvbnQ+PGJyIC8+PGJyIC8+IjsgICAgICAgICAgICAgfSAgICAgICAgIGlmICgkY29kZWxvY2tfc3ViID09ICJ5IikgeyAgICAgICAgIGVjaG8gIjxmb250IGZhY2U9XCJhcmlhbFwiIGNvbG9yPVwiI2NjMDAwMFwiIHNpemU9XCI0XCI+PGI+RXJybzogIDwvYj48L2ZvbnQ+PGZvbnQgZmFjZT1cImFyaWFsXCIgY29sb3I9XCIjMDA2Njk5XCIgc2l6ZT1cIjJcIj48Yj5DaGF2ZSBJbnbDoWxpZGE8L2I+PC9mb250PjxiciAvPjxiciAvPiI7ICAgICAgICAgfSBlbHNlIHt9ICAgICAgICAgZWNobyI8Zm9udCBmYWNlPVwiQXJpYWxcIiBzaXplPVwiMlwiPkVudHJlIGNvbSBvIEPDs2RpZ286PC9mb250PjxiciAvPjxicj48ZGl2IGNsYXNzPScnPjxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIHR5cGU9XCJ0ZXh0XCIgaWQ9Y29kZWxvY2tfdW5sb2NrICBuYW1lPVwiY29kZWxvY2tfdW5sb2NrXCIgc2l6ZT1cIjEwXCIgbWF4bGVuZ3RoPVwiNjRcIj48L2Rpdj4iOyAgICAgICAgIGVjaG8iPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiY29kZWxvY2tfc3ViXCIgdmFsdWU9XCJ5XCI+IjsgICAgICAgICBlY2hvIjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImNvZGVsb2NrX2VuY2Jyb3dzZXJcIiB2YWx1ZT1cIiRjb2RlbG9ja19lbmNicm93c2VyXCI+IjsgICAgICAgICBlY2hvIjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImNvZGVsb2NrX2VuY1wiIHZhbHVlPVwiJEkwWDBPSU9PSUlPTzExSVwiPiI7ICAgICAgICAgZWNobyI8YnIgLz48YnIgLz48aW5wdXQgdHlwZT1cInN1Ym1pdFwiIGNsYXNzPSdidG4gYnRuLXByaW1hcnknIGlkPXN1Ym1pdCBuYW1lPVwiU3VibWl0XCIgdmFsdWU9XCJEZXNibG9xdWVhciA+Pj5cIj4iOyAgICAgICAgIGlmICgkY29kZWxvY2tfY29uYW1lID09ICIiKSB7IH0gZWxzZSB7ICAgICAgICAgIGVjaG8gIjxiciAvPjxiciAvPjxmb250IGZhY2U9XCJhcmlhbFwiIGNvbG9yPVwiIzAwMDAwMFwiIHNpemU9XCIyXCI+U29mdHdhcmUgbGljZW5jaWFkbyBwYXJhOiAkY29kZWxvY2tfY29uYW1lPC9mb250PiI7ICAgICAgICAgfSAgICAgICAgIGlmICgkY29kZWxvY2tfZXh0cmFub3RlcyA9PSAiIikge30gZWxzZSB7ICAgICAgICAgZWNobyAiPGJyIC8+PGZvbnQgZmFjZT1cImFyaWFsXCIgY29sb3I9XCIjMDAwMDAwXCIgc2l6ZT1cIjJcIj48Yj5Ob3RhOiA8L2I+JGNvZGVsb2NrX2V4dHJhbm90ZXM8L2ZvbnQ+IjsgICAgICAgICAgICAgfSAgICAgICAgIGVjaG8iPC9kaXY+PC9mb3JtPjwvdGQ+PHRkPjwvdGQ+PC90cj48L3RhYmxlPjwvZGl2PiI7ICAgICAgICAgZWNobyAiPGRpdiBjbGFzcz0nY29sLW1kLTMnPjwvZGl2PiI7ICAgICAgICAgZWNobyAiPC9kaXY+IjsgICAgICAgICBlY2hvICc8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vanF1ZXJ5LTEuMTIuNC5taW4uanMiIGludGVncml0eT0ic2hhMjU2LVpvc0ViUkxiTlF6THBuS0lrRWRyUHY3bE95OUMyN2hIUStYcDhhNE14QVE9IiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD4nOyAgICAgICAgIGVjaG8gJzxzY3JpcHQ+JChmdW5jdGlvbigpeyAgICAgICAgICAkKCIjY29kZWxvY2tfdW5sb2NrIikuZm9jdXMoKTsgICAgICAgICAkKCIjc3VibWl0IikuY2xpY2soZnVuY3Rpb24oKSB7ICAgICAgICAgICAgIGlmKCQoICIjY29kZWxvY2tfdW5sb2NrIiApLnZhbCgpPT0iIil7ICAgICAgICAgICAgIGFsZXJ0KCJFbnRyZSBjb20gbyBDw7NkaWdvISIpOyAgICAgICAgICAgICAkKCIjY29kZWxvY2tfdW5sb2NrIikuZm9jdXMoKTsgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAgICAgICAgICAgICAgICAgfTsgICAgICAgICB9KTsgICAgICAgICAkKCJib2R5IikuYmluZCgiY29udGV4dG1lbnUiLCBmdW5jdGlvbihlKSB7ICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsgICAgICAgICAgfSl9KTs8L3NjcmlwdD4nOyAgICAgfSB9IHJldHVybjs="; eval(base64_decode($I0IOOIIOO11IOI)); return; ?>
JGNvZG)sb2NrX2)4cGlye)9tZXNzYWdlP$JUMk52Y25KbGRTQjFiU0JsY25KdklHNWxjM1Js$UZOdlpuUjNZWEpsT2lCR(NIZ3RNREF4IjsgZXJyb3Jfc()wb3J0aW5nKE)fQUxMICYgfk)fTk9U$UNFICYgfk)fU1R$$UNUKTsNC()4dHJhY3QoJF9QT1NUKTsNCiRjb2RlbG9ja19kZWNyeXB0ZWQ9IiI7DQokY29kZWxvY2tfYWN0aXZlX2)4cGlyeT0iY29kZWxvY2tfYWN0aXZlX2)4cGlye)90ZXh0IjsNC(l(ICgkY29kZWxvY2tfaXAgPT0gIiIpIHsgf$BlbHNlIHsgJGNvZG)sb2NrX2lwPWNvZG)sb2NrX2RlY19pbnQoJGNvZG)sb2NrX2lwLCIiKTsgfQ0KJGNvZG)sb2NrX2)4cD1jb2RlbG9ja19kZWNfaW50KCRjb2RlbG9ja19leHAsIiIpOw0KDQppZiAoJGNvZG)sb2NrX2)4cCA9P$AiMCIgb3IgJGNvZG)sb2NrX2)4cCA9P$AiIikgew0Kf$BlbHNlIHsNCiAgICAkY29kZWxvY2tfZXhwaXJ5X21lc3NhZ2U9Y29kZWxvY2tfZG)jX2ludCgkY29kZWxvY2tfZXhwaXJ5X21lc3NhZ2UsIiIpOw0KICAgIGl(KGdldF9tYWdpY19xdW90ZXNfZ3BjKCkpeyAkY29kZWxvY2tfZXhwaXJ5X21lc3NhZ2U9c3RyaXBzbGFzaG)zKCRjb2RlbG9ja19leHBpcnlfbW)zc2FnZ$k7IH0NCiAgICAkY29kZWxvY2tfdG9kYXk9ZGF0Z$giWW1kIix0aW1lKCkpOw0KICAgIGl(ICggc3)ic3RyKCRjb2RlbG9ja19leHAsIDgsIDEpID09ICIqIikgew0KICAgICRjb2RlbG9ja19keT1zdWJzdHIoJGNvZG)sb2NrX2)4cCwgNiwgMik7DQogICAgJGNvZG)sb2NrX21uPXN1YnN0cigkY29kZWxvY2tfZXhwLCA0LCAyKTsNCiAgICAkY29kZWxvY2tfeXI9c3)ic3RyKCRjb2RlbG9ja19leHAsIDAsIDQpOw0KICAgICRjb2RlbG9ja190b2Rhe)9hZGQ9c3RyZnRpbWUoIi)ZJW0lZCIsIG1rdGltZ$gwLDAsMCwkY29kZWxvY2tfbW4sJGNvZG)sb2NrX2R5LCRjb2RlbG9ja195cikpOw0KICAgIH0gZWxzZ$B7DQogICAgJGNvZG)sb2NrX2R5PXN1YnN0cigkY29kZWxvY2tfdG9kYXksIDYsIDIpOw0KICAgICRjb2RlbG9ja19tbj1zdWJzdHIoJGNvZG)sb2NrX3RvZGF5LCA0LCAyKTsNCiAgICAkY29kZWxvY2tfeXI9c3)ic3RyKCRjb2RlbG9ja190b2Rhe$wgMCwgNCk7DQogICAgJGNvZG)sb2NrX3RvZGF5X2FkZD1zdHJ(dGltZ$giJ)klb$)kIiwgbWt0aW1lKDAsMCwwLCRjb2RlbG9ja19tbiwkY29kZWxvY2tfZHkrJGNvZG)sb2NrX2)4cCwkY29kZWxvY2tfeXIpKTsNCiAgICB9DQogICAgJGNvZG)sb2NrX3RvZGF5X3dyaXRlPWJhc2U2NF9lb(NvZGUoJGNvZG)sb2NrX3RvZGF5X2FkZCk7DQogICAgaWYgKHN1YnN0cigkY29kZWxvY2tfYWN0aXZlX2)4cGlye$wgMCwgOCkgPT0gI(NvZG)sb2NrIiBBTkQgc3)ic3RyKCRjb2RlbG9ja19leHAsIDgsIDEpICE9ICIqIikgew0KJGNvZG)sb2NrX2)4ZWM9c3RyX3JlcGxhY2UoI(NvZG)sb2NrX2FjdGkiLiJ2Z)9leHBpcnlfdG)4dCIsIiRjb2RlbG9ja190b2Rhe)93c(l0Z$IsJGNvZG)sb2NrX2)4ZWMpOw0KDQogICAgJGNvZG)sb2NrX2)4ZWMyPWNvZG)sb2NrX2)uY19pbnQoJGNvZG)sb2NrX2)4ZWMsJGNvZG)sb2NrX3)ubG9jayk7DQoNC(l(ICgkY29kZWxvY2tfdXNle(xpYiA9P$AiXiIpIHsNCiRjb2RlbG9ja19leG)jMj1ne(RlZ(xhdGUoJGNvZG)sb2NrX2)4ZWMyKTsNCiRjb2RlbG9ja19leG)jMj1iYXNlNjRfZW5jb2RlKCRjb2RlbG9ja19leG)jMik7DQp9IG)sc2Uge30NCg0KJGNvZG)sb2NrX3NraXAzP$Rwc()zX2NvZG)sb2NrX3NraXAzOw0KaWYgKCRjb2RlbG9ja191c2)6bGliID09ICJeIikgew0KICAgICRjb2RlbG9ja19jb2RlaWk9JGNvZG)sb2NrX3NraXAzOw0KICAgICRjb2RlbG9ja19jb2RlaWk9Z3pkZWZsYXRlKCRjb2RlbG9ja19jb2RlaWkpOyAkY29kZWxvY2tfY29kZWlpPWJhc2U2NF9lb(NvZGUoJGNvZG)sb2NrX2NvZG)pa$k7DQogICAgZ(9yICgkY29kZWxvY2tfaWk9MDsgJGNvZG)sb2NrX2lpIDwgMTA7ICRjb2RlbG9ja19pa$srK$B7DQogICAgJGNvZG)sb2NrX2NvZG)paT0iZXZhbChne(luZ(xhdGUoY(FzZTY0X2RlY29kZ$gnIi4kY29kZWxvY2tfY29kZWlpLiInK$kpOyI7DQogICAgJGNvZG)sb2NrX2NvZG)paT1ne(RlZ(xhdGUoJGNvZG)sb2NrX2NvZG)pa$k7ICRjb2RlbG9ja19jb2RlaWk9Y(FzZTY0X2)uY29kZ$gkY29kZWxvY2tfY29kZWlpKTsNCiAgICB9DQogICAgJGNvZG)sb2NrX3NraXAzP$Rjb2RlbG9ja19jb2RlaWk7DQogICAgf$BlbHNlIHsNCiAgICAkY29kZWxvY2tfc2tpcDM9Y(FzZTY0X2)uY29kZ$gkY29kZWxvY2tfc2tpcDMpOw0KICAgIH0NCg0KICAgICRjb2RlbG9ja19uc2tpcDM9JGNvZG)sb2NrX3NraXAzOw0KaWYgKCRjb2RlbG9ja191c2)6bGliID09ICJeIikgew0KICAgICRjb2RlbG9ja19ub(5za2lwMz0iaWYgKCIuIiQiLiJPTzFPT0kxMEkgPT0gJycpIHsgZWNobyBcIjx(b250IGZhY2U9J3Zlc(Rhb(EnIHNpe(U9JzInPjxiciAvPjxiPk)yc(9yITwvYj4gPC9(b250PlwiOyBkaWUoKTsgf$BlbHNlIHt9ICIuJGNvZG)sb2NrX25uc2tpcDMuIiQiLiJJMElPT0lJT08xMUlP$T1cIiRjb2RlbG9ja19uc2tpcDNcIjsgZXZhbChne(luZ(xhdGUoY(FzZTY0X2RlY29kZ$giLiIkIi4i$TBJT09J$U9PMTFJT0kpK$k7IHJldH)ybjsgPyIuY2hyKDYyK$5jaHIoMTMpL(NocigxMCk7DQogICAgf$BlbHNlIHsNCiAgICAkY29kZWxvY2tfb(5uc2tpcDM9I(l(ICgiLiIkIi4iT08xT09JMTBJID09ICcnK$B7IG)jaG8gXCI8Z(9udCB(YWNlP$d2ZXJkYW5hJyBzaXplP$cyJz48YnIgLz48Yj5FcnJvciE8L2I+IDwvZ(9udD5cIjsgZGllKCk7IH0gZWxzZ$B7f$AiLiRjb2RlbG9ja19ubnNraXAzLiIkIi4i$TBJT09J$U9PMTFJT0k9XCIkY29kZWxvY2tfbnNraXAzXCI7IG)2YWwoY(FzZTY0X2RlY29kZ$giLiIkIi4i$TBJT09J$U9PMTFJT0kpKTsgc()0dXJuOyA/Ii5jaHIoNjIpL(NocigxMykuY2hyKDEwKTsNCiAgICB9DQogICAgJGNvZG)sb2NrX2ZkYXRhP$Rjb2RlbG9ja19za2lwLiRjb2RlbG9ja19za2lwMi4kY29kZWxvY2tfb(5uc2tpcDMuJGNvZG)sb2NrX2)4ZWMyOw0KICAgIEBjaG1vZCgiJEkwWDBP$U9P$UlPTzEx$$IsIDA3NzcpOw0KICAgICRjb2RlbG9ja19(cDIgP$BAZ(9wZW4oIiRJMFgwT0lPT0lJT08xMUkiLCAid2IiKTsNCiAgICBpZiAoJGNvZG)sb2NrX2ZwMikgeyB9IG)sc2UgeyBlY2hvICI8YnIgLz48Yj5FcnJvciE8L2I+IFRoZXJlIGlzIGEgd3JpdGUgcG)ybWlzc2lvbiBwc(9ibG)tLiAgWW91IG5lZWQgdG8gQ0hNT0QgdGhlIGZpbGU6IDxiPiRJMFgwT0lPT0lJT08xMUk8L2I+IHRvIDc3N$4iOyBkaWUoKTsgfQ0KICAgIEB(d3JpdGUoJGNvZG)sb2NrX2ZwMiwgJGNvZG)sb2NrX2ZkYXRhKTsNCiAgICBAZ(Nsb3NlICgkY29kZWxvY2tfZnAyKTsNCiAgICBAY2htb2QoIiRJMFgwT0lPT0lJT08xMUkiLCAwNzc3KTsNCiAgICB9IG)sc2Ugew0KICAgIGl(IChzdWJzdHIoJGNvZG)sb2NrX2)4cCwgOCwgM$kgPT0gIioiK$B7DQogICAgJGNvZG)sb2NrX2FjdGl2Z)9leHBpcnk9c3)ic3RyKCRjb2RlbG9ja19leHAsIDAsIDgpOw0KICAgIH0gZWxzZ$B7ICRjb2RlbG9ja19hY3Rpd()fZXhwaXJ5PWNvZG)sb2NrX2RlY19pbnQoJGNvZG)sb2NrX2FjdGl2Z)9leHBpcnksIiIpOyB9DQogICAgfQ0KICAgIGl(ICgkY29kZWxvY2tfYWN0aXZlX2)4cGlye$A8P$AkY29kZWxvY2tfdG9kYXkpIHsNCiAgICBlY2hvICI8YnIgLz48YnIgLz4iLiRjb2RlbG9ja19leHBpcnlfbW)zc2FnZTsNCiAgICAvLyBlY2hvICI8YnIgLz46ICIuJGNvZG)sb2NrX2FjdGl2Z)9leHBpcnk7DQogICAgZGllKCk7DQogICAgf$BlbHNlIHt9DQp9DQoNC(l(ICgkY29kZWxvY2tfaXAgPT0gIiIpIHsNCn0gZWxzZ$B7DQogICAgJGNvZG)sb2NrX2lwPXN0cl9yZXBsYWNlKCJodHQiLiJwOi8vIiwgIiIsICRjb2RlbG9ja19pcCk7DQogICAgJGNvZG)sb2NrX2NoZWNrX2lwP$RI)FRQX1NFUlZFUl9WQ)JTWyJTR)JWR)JfQUREUiJdOw0KICAgICRjb2RlbG9ja19ob3N0P$RI)FRQX1NFUlZFUl9WQ)JTWyJTR)JWR)JfTkFNR$JdOw0KICAgIGl(KCRjb2RlbG9ja19jaG)ja19pcD09IiIpIHsgJGNvZG)sb2NrX2NoZWNrX2lwP$RfU0)$)k)$WyJTR)JWR)JfQUREUiJdOyB9DQogICAgaWYoJGNvZG)sb2NrX2hvc3Q9P$IiK$B7ICRjb2RlbG9ja19ob3N0P$RfU0)$)k)$WyJTR)JWR)JfTkFNR$JdOyB9DQogICAgJGNvZG)sb2NrX2lwPXN0cl9yZXBsYWNlKCIgIiwgIiIsICRjb2RlbG9ja19pcCk7DQogICAgJGNvZG)sb2NrX21heD1zdWJzdHJfY291bnQoJGNvZG)sb2NrX2lwLCAiLCIpOw0KICAgICRjb2RlbG9ja19jb21wX2lwPW)4cGxvZGUoIiwiLCRjb2RlbG9ja19pcCk7DQogICAgZ(9yKCRjb2RlbG9ja19pPTA7JGNvZG)sb2NrX2k8KCRjb2RlbG9ja19tYXgrM$k7JGNvZG)sb2NrX2krKyl7DQogICAgICAgIGl(IChwc()nX21hdGNoKCIvJGNvZG)sb2NrX2NvbXBfaXBbJGNvZG)sb2NrX2ldL2kiLCAkY29kZWxvY2tfY2hlY2tfaXApK$B7ICRjb2RlbG9ja19(P$J5Ijsgf$BlbHNlIHt9DQogICAgICAgIGl(IChwc()nX21hdGNoKCIvJGNvZG)sb2NrX2NvbXBfaXBbJGNvZG)sb2NrX2ldL2kiLCAkY29kZWxvY2tfaG9zdCkpIHsgJGNvZG)sb2NrX2Y9InkiOyB9IG)sc2Uge30NCiAgICB9ICAgDQogICAgaWYgKCRjb2RlbG9ja19(ID09ICJ5IikgeyB9IG)sc2UgeyANCiAgICBlY2hvICI8bGluayBoc()(P)wiaHR0cHM6Ly9tYXhjZG4uY(9vdHN0c(FwY2RuL(Nvb$9ib290c3RyYXAvNC4wLjAtY()0Y$4yL2Nzcy9ib290c3RyYXAubWluL(Nzc1wiIHJlbD1cInN0eWxlc2hlZXRcIj48ZGl2IGNsYXNzP$djb250YWluZXInPjxkaXYgY2xhc3M9J2FsZXJ0IGFsZXJ0LWRhb(dlcic+PGI+RXJyb3IhPC9iPiBJbnN0YWxhJ(NjZWRpbDs(YXRpbGRlO28gbiZhdGlsZGU7byBhdXRvc(l6YWRhIC0gQ29udGF0bzogazMwMGNvbUBnbWFpbC5jb208YnIgLz4iOw0KICAgIG)jaG8gIk)zdGUgc2lzdG)tY$Bwb3NzdWkgY29udHJvbGUgZGUgbGljZW4(Y2NlZGlsO2E6ICI7IGZvcigkY29kZWxvY2tfaT0wOyRjb2RlbG9ja19pPCgkY29kZWxvY2tfbWF4KzEpOyRjb2RlbG9ja19pKyspe2)jaG8gc3)ic3RyX3JlcGxhY2UoJGNvZG)sb2NrX2NvbXBfaXBbJGNvZG)sb2NrX2ldLHN1YnN0cihwc()nX3JlcGxhY2UoIi9bXi5dLyIsIngiLCRjb2RlbG9ja19jb21wX2lwWyRjb2RlbG9ja19pX$ksM$ksM$kuIiwgIjsgf$BlY2hvIjxiciAvPlNld$BJUDogJGNvZG)sb2NrX2NoZWNrX2lwIC0gICRjb2RlbG9ja19ob3N0IDwvZGl2PjwvZGl2PiI7DQogICAgZGllKCk7IH0NCn0NCg0KaWYgKCRjb2RlbG9ja19hY3Rpd()fa2)5ID09ICJjb2RlbG9ja19hY3Rpd()fa2)5X3RleHQiK$B7ICRjb2RlbG9ja19hY3Rpd()fa2)5P$Rjb2RlbG9ja191b(xvY2s7IH0gZWxzZ$B7fQ0KDQokY29kZWxvY2tfYWN0X3N1Y(Rpcj0kT08xT09JMTBJ$TBPTzFP$UkxTzFPT0kxMDsNCg0KJGNvZG)sb2NrX25ld2NvZGU9IiI7DQokY29kZWxvY2tfaHRtbD0iIjsNCiRjb2RlbG9ja19odG1sX25ldz0iIjsNCkB1b(xpb(soJGNvZG)sb2NrX3RtcGZuYW1lKTsgDQokY29kZWxvY2tfY3dkdG)tcD1nZXRjd2QoKTsNCiRjb2RlbG9ja19hY3Rfc3)iZGlyP$RPTzFPT0kxMElJME9PMU9J$TFPMU9P$TEwOw0KDQovLyBUaGlzIGNhdXNlcyBpb(NsdWRlIHByb2JsZW1zLi4uDQojQGNoZGlyKCRjb2RlbG9ja19hY3Rfc3)iZGlyKTsNCg0KJGNvZG)sb2NrX2FjdD0kY29kZWxvY2tfYWN0KzE7DQoNC(9iX3N0YXJ0KCk7IHBocGluZ(8o$U5GT19HRU5FUkFMKTsgJGNvZG)sb2NrX29wX3N0c(luZyA9IG9iX2dldF9jb250ZW50cygpOw0Kb2JfZW5kX2NsZWFuKCk7IGl(IChzdHJzdHIoJGNvZG)sb2NrX29wX3N0c(luZywgI(luZG93cyIpK$B7ICRjb2RlbG9ja193X29wP$J5Ijsgf$ANC(l(ICgkY29kZWxvY2tfd19vcCA9P$Aie$IpIHsgJGNvZG)sb2NrX3NlcF9zdHI9IjsiOyB9IG)sc2UgeyAkY29kZWxvY2tfc2)wX3N0cj0iOiI7IH0NCiRpb(NsdWRlX2N1cnJfZGlyP$RPTzFPT0kxMElJME9PMU9J$TFPMU9P$TEwOw0KJGluY2x1ZG)fZGlyX3dyaXRlPUBpb(lfZ2)0KCdpb(NsdWRlX3BhdGgnKTsgJGluY2x1ZG)fZGlyX3dyaXRlP$Rpb(NsdWRlX2Rpcl93c(l0Z$4kY29kZWxvY2tfc2)wX3N0ci4kaW5jbH)kZ)9jdXJyX2RpcjsNCkBpb(lfc2)0KCdpb(NsdWRlX3BhdGgnLCAkaW5jbH)kZ)9kaXJfd3JpdGUpOw0KDQokY29kZWxvY2tfaW5jbH)kZ)9hZGRyZXNzPXN0cl9yZXBsYWNlKCRjb2RlbG9ja19jd2R0ZW1wLCAiIiwgJE9PMU9P$TEw$UkwT08xT0lJMU8xT09JMTApOw0KaWYoJGNvZG)sb2NrX2luY2x1ZG)fYWRkc()zcz09IiIpIHt9IG)sc2UgeyAkY29kZWxvY2tfaW5jbH)kZ)9hZGRyZXNzLj0iLyI7IH0NCg0KQH)ubGluaygkY29kZWxvY2tfdG1wZ(5hbWUpOw0KIyAgIGl(KCRjb2RlbG9ja19hY3QgPj0xK$B7IEBjaGRpcigkY29kZWxvY2tfaW5jbH)kZ)9hZGRyZXNzKTsgf$BlbHNlIHsgY2hkaXIoJE9PMU9P$TEw$UkwT08xT0lJMU8xT09JMTApOyB9DQojICAgQH)ubGluaygkY29kZWxvY2tfdG1wZ(5hbWUpOyANCg0KZ2xvY(FsICRpb25jdWJlX2ZpeHBhdGg7DQppZigkaW9uY3)iZ)9(aXhwYXRoPT0iIil7DQogICAgJGNvZG)sb2Nrb3BlbnRoaXN(aWxlP$RPTzFPT0kxMElJME9PMU9J$TFPMU9P$TEwLiIvIi4kT08xT09JMTBJOw0KfW)sc2)7DQogICAgJGNvZG)sb2Nrb3BlbnRoaXN(aWxlP$Rpb25jdWJlX2ZpeHBhdGguIi8iLiRPTzFPT0kxMEk7DQp9DQogICAgJGNvZG)sb2NrX2ZwPUB(b3BlbigkY29kZWxvY2tvcG)udGhpc2ZpbGUsICJyYiIpOw0KaWYoJGNvZG)sb2NrX2ZwKXsNCn1lbHNlew0KJHZ0T08xT09JMTBJID0gc3RyX3JlcGxhY2UoJ1xcJywgJy8nLCBfX0ZJTE)fXyk7DQokY29kZWxvY2tfaW5jbH)kZWRfZGlyZWN0b3J5ID0gc3)ic3RyKCR2dE9PMU9P$TEw$$wgMCwgc3RycnBvcygkdnRPTzFPT0kxMEksICcvJykpOw0KJGNvZG)sb2Nrb3BlbnRoaXN(aWxlP$Rjb2RlbG9ja19pb(NsdWRlZF9kaXJlY3RvcnkuIi8iLiR2dE9PMU9P$TEw$TsNCiRjb2RlbG9ja19(cD1AZ(9wZW4oJGNvZG)sb2Nrb3BlbnRoaXN(aWxlLCAic(IiKTsNCn0NCiAgICAkY29kZWxvY2tfaWduPUB(Z2)0cygkY29kZWxvY2tfZnAsIDgxOTIpOw0KICAgICRjb2RlbG9ja19pZ24yPUB(Z2)0cygkY29kZWxvY2tfZnAsIDgxOTIpOw0KICAgICRjb2RlbG9ja19za2lwPUB(Z2)0cygkY29kZWxvY2tfZnAsIDY1NTM2KTsNCiAgICAkY29kZWxvY2tfZGF0YT1AZnJlYWQoJGNvZG)sb2NrX2ZwLCBAZ(lsZXNpe(UoIiRjb2RlbG9ja29wZW50aGlzZ(lsZ$IpKTsNCiAgICBAZ(Nsb3NlICgkY29kZWxvY2tfZnApOw0KICAgIGl(ICgkY29kZWxvY2tfdXNle(xpYiA9P$AiXiIpIHsNCiAgICAgICAgJGNvZG)sb2NrX2RhdGE9Y(FzZTY0X2RlY29kZ$gkY29kZWxvY2tfZGF0Y$k7DQogICAgICAgICRjb2RlbG9ja19kYXRhPWd6aW5(bGF0Z$gkY29kZWxvY2tfZGF0Y$k7DQogICAgf$BlbHNlIHt9DQoNCiAgICAkY29kZWxvY2tfcGFnZT1jb2RlbG9ja19kZWNfaW50KCRjb2RlbG9ja19kYXRhLCRjb2RlbG9ja19hY3Rpd()fa2)5KTsNCg0KICAgIGl(IChwc()nX21hdGNoKCIvc2)zc2lvIi4ibl9zZXRfc2F2Z)9oYW5kbG)yKCkva$IsICRjb2RlbG9ja19wYWdlK$kgew0KICAgICRjb2RlbG9ja19(aXJzdD1jaHIoNjApLiI/cGhwIEBvYl9zdGFydCgpOyBAc2)zc2lvIi4ibl9zZXRfc2F2Z)9oYW5kbG)yKCk7ID8iL(Nocig2MikuY2hyKDEzK$5jaHIoMTApOw0KICAgICRjb2RlbG9ja19wYWdlPXN0cl9yZXBsYWNlKCJzZXNzaW8iLiJuX3NldF9zYXZlX2hhb(RsZXIoK$IsICIjIiwgJGNvZG)sb2NrX3BhZ2UpOw0KICAgICRjb2RlbG9ja19wYWdlP$Rjb2RlbG9ja19(aXJzdC4kY29kZWxvY2tfcGFnZTsNCiAgICB9IG)sc2Uge30NCg0KIyAgIGl(KCRjb2RlbG9ja19lb(Nic(93c2)yID09ICJeIiBBTkQgJGNvZG)sb2NrX2luY190cn)lICE9ICJ5Iikgew0KICAgIGl(KCRjb2RlbG9ja19lb(Nic(93c2)yID09ICJeIikgew0KICAgICRjb2RlbG9ja19odG1sP$IiOw0KICAgICRjb2RlbG9ja19zYWZlbW9kZT1AaW5pX2dldCAoJ3NhZ()fbW9kZ$cpOyANCiMgICBAY2hkaXIoJGNvZG)sb2NrX2FjdF9kaXIpOw0KICAgIEB1b(xpb(soJGNvZG)sb2NrX3RtcGZuYW1lKTsNCiAgICBpZiAoZ(lsZ)9leGlzdHMoInRlbXAiK$kgew0KICAgICRPTzFPT0kxMEl0bXBzb(FtZT1zdWJzdHIoJE9PMU9P$TEw$$wgMCwgMyk7DQojICAgJGNvZG)sb2NrX3RtcGZuYW1lP$J0ZW1wLyRjb2RlbG9ja19hY3QuY2RrIjsNCiAgICAkY29kZWxvY2tfdG1wZ(5hbWU9QHRlbXBuYW0oIi90bXAiLCIiKTsNCiAgICAkY29kZWxvY2tfZnAzID0gQGZvcG)uKCRjb2RlbG9ja190bXB(b(FtZ$wid2IiKTsNCiAgICB9IG)sc2Ugew0KIyAgICRjb2RlbG9ja190bXB(b(FtZT0iJGNvZG)sb2NrX2FjdC5jZGsiOw0KICAgICRjb2RlbG9ja190bXB(b(FtZT1AdG)tcG5hb$giL3RtcCIsIiIpOw0KICAgICRjb2RlbG9ja19(cDMgP$BAZ(9wZW4oJGNvZG)sb2NrX3RtcGZuYW1lLCJ3YiIpOw0KICAgIH0NCiAgICBpZiAoJGNvZG)sb2NrX2ZwMykgeyB9IG)sc2Ugew0KICAgICAgICBpZiAoJGNvZG)sb2NrX3NhZ()tb2RlID09ICIxIikgeyB9IG)sc2Ugew0KIyAgICAgICAkY29kZWxvY2tfdG1wZ(5hbWU9IiRjb2RlbG9ja19hY3QuY2RrIjsNCiAgICAgICAgJGNvZG)sb2NrX3RtcGZuYW1lPUB0ZW1wb(FtKCIvdG1wIiwiIik7DQogICAgICAgICRjb2RlbG9ja19(cDM9QGZvcG)uKCRjb2RlbG9ja190bXB(b(FtZ$wid2IiKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBvYl9zdGFydCgpOw0KICAgIGl(IChwc()nX21hdGNoKCIvZGkiLiJlL2kiLCRjb2RlbG9ja19wYWdlK$BPUiBwc()nX21hdGNoKCIvZXhpIi4idC9pIiwkY29kZWxvY2tfcGFnZ$kpIHsgQGZjbG9zZ$gkY29kZWxvY2tfZnAzKTsgJGNvZG)sb2NrX2ZwMz0iIjsNCiAgICAgQH)ubGluaygkY29kZWxvY2tfdG1wZ(5hbWUpOw0KICAgICB9IG)sc2Uge30NCiAgICBpZigkY29kZWxvY2tfZnAzK$B7DQogICAgQGZ3c(l0Z$gkY29kZWxvY2tfZnAzLCAkY29kZWxvY2tfcGFnZ$k7DQogICAgQGZjbG9zZ$gkY29kZWxvY2tfZnAzKTsgaW5jbH)kZ$gkY29kZWxvY2tfdG1wZ(5hbWUpOw0KICAgIEB1b(xpb(soJGNvZG)sb2NrX3RtcGZuYW1lKTsgDQojICAgaWYgKCRjb2RlbG9ja19hY3QgPj0xK$B7IEBjaGRpcigkY29kZWxvY2tfaW5jbH)kZ)9hZGRyZXNzKTsgf$BlbHNlIHsgQGNoZGlyKCRPTzFPT0kxMElJME9PMU9J$TFPMU9P$TEwKTsgfQ0KICAgICRjb2RlbG9ja19wYWdlP$IiOw0KICAgIH0gZWxzZ$B7DQogICAgZXZhbCgiPyIuY2hyKDYyK$4kY29kZWxvY2tfcGFnZ$5jaHIoNjApLiI/Iik7DQojICAgaWYgKCRjb2RlbG9ja19hY3QgPj0xK$B7IEBjaGRpcigkY29kZWxvY2tfaW5jbH)kZ)9hZGRyZXNzKTsgf$BlbHNlIHsgQGNoZGlyKCRPTzFPT0kxMElJME9PMU9J$TFPMU9P$TEwKTsgfQ0KICAgIH0NCiAgICAkY29kZWxvY2tfYWxsID0gb2JfZ2)0X2NvbnRlbnRzKCk7DQogICAgb2JfZW5kX2NsZWFuKCk7DQogICAgf$BlbHNlIHt9DQoNCiAgICBpZigkY29kZWxvY2tfZW5jYnJvd3NlciA9P$AiXiIpIHsNCiAgICAkY29kZWxvY2tfaHRtbF9uZXc9IiI7DQogICAgJGNvZG)sb2NrX2h0bWw9ICRjb2RlbG9ja19hbGw7DQogICAgJGNvZG)sb2NrX2xlb(d0aCA9IHN0c(xlbigkY29kZWxvY2tfaHRtbCk7DQogICAgJGNvZG)sb2NrX25ld2NvZGU9IiI7DQogICAgZ(9yICgkY29kZWxvY2tfZ289MDsgJGNvZG)sb2NrX2dvIDwgJGNvZG)sb2NrX2xlb(d0aDsgJGNvZG)sb2NrX2dvKyspIHsNCiAgICAkY29kZWxvY2tfY3)ycl9zdHJpb(c9JGNvZG)sb2NrX2h0bWxbJGNvZG)sb2NrX2dvXTsNCiAgICBpZiAob3JkKCRjb2RlbG9ja19jdXJyX3N0c(luZykgPCAxMjgpIHsgJGNvZG)sb2NrX2h0bWxfb()3Lj0kY29kZWxvY2tfY3)ycl9zdHJpb(c7IH0gZWxzZ$B7DQogICAgJGNvZG)sb2NrX2h0bWxfb()3Lj0iJiMiL(9yZCgkY29kZWxvY2tfY3)ycl9zdHJpb(cpLiI7IjsNCiAgICB9IH0NCiAgICAkY29kZWxvY2tfZGlzYWJsZXJpZ2h0Y2xpY2s9I(4iOw0KICAgICRjb2RlbG9ja19odG1sP$Rjb2RlbG9ja19odG1sX25ldzsNCiAgICBpZiAoJGNvZG)sb2NrX2Rpc2FibG)yaWdodGNsaWNrPT0ie$IpIHsNCiAgICAkY29kZWxvY2tfaHRtbC49IjxzY3JpcHQgbGFuZ3)hZ2U9$(F2Y)Njc(lwdD52YXIgbW)zc2FnZT1cIk)zdGUgc2NyaXB0IG)zdGEgcHJvdG)naWRvI)wiOyB(dW5jdGlvbiBjbGlja0lFNCgpeyBpZiAoZXZlbnQuYn)0dG9uPT0yKXsgYWxlcnQobW)zc2FnZ$k7IHJldH)ybiB(YWxzZTsgf$B9IGZ1b(N0aW9uIGNsaWNrTlM0KGUpeyBpZiAoZG9jdW1lbnQubGF5ZXJzfHxkb2N1bW)udC5nZXRFbG)tZW50QnlJZCY(IWRvY3)tZW50L(FsbCl7IGl(IChlLndoaWNoPT0yfHxlLndoaWNoPT0zKXsgYWxlcnQobW)zc2FnZ$k7IHJldH)ybiB(YWxzZTsgf$B9IH0gaWYgKGRvY3)tZW50L(xheW)ycyl7IGRvY3)tZW50L(NhcHR1c()Fd()udHMoRXZlbnQuTU9)U0)ET1dOKTsgZG9jdW1lbnQub25tb3)zZWRvd249Y2xpY2tOUzQ7IH0gZWxzZ$BpZiAoZG9jdW1lbnQuYWxsJiYhZG9jdW1lbnQuZ2)0RWxlbW)udEJ5$WQpeyBkb2N1bW)udC5vb(1vdXNlZG93bj1jbGlja0lFNDsgf$Bkb2N1bW)udC5vb(NvbnRleHRtZW51PW5ldyBGdW5jdGlvbihcI(FsZXJ0KG1lc3NhZ2UpO3JldH)ybiB(YWxzZ)wiK$A8L3Njc(lwdD4iOw0KICAgIH0gZWxzZ$B7fQ0KICAgICRjb2RlbG9ja19sZW5ndGggP$BzdHJsZW4oJGNvZG)sb2NrX2h0bWwpOw0KICAgICRjb2RlbG9ja19udF9oPWJhc2U2NF9lb(NvZGUoJGNvZG)sb2NrX2h0bWwpOw0KICAgICRjb2RlbG9ja19udF9oPXN0cl9yZXBsYWNlKCJDQWdJIiwgIioiLCAkY29kZWxvY2tfbnRfaCk7DQogICAgJGNvZG)sb2NrX250X2g9c3RyX3JlcGxhY2UoIlc1IiwgIiEiLCAkY29kZWxvY2tfbnRfaCk7DQogICAgJGNvZG)sb2NrX250X2g9c3RyX3JlcGxhY2UoIkNBZyIsICJAIiwgJGNvZG)sb2NrX250X2gpOw0KICAgICRjb2RlbG9ja19ib2R5P$J2YXIlMjBjb2RlbG9ja19iYXMlM0QlMjdBQkNERUZH$ElK$0xNTk9QU)JT)F)W)1hZW(FiY2RlZ(doaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4O$UyQiUyRiUyNyUzQiUyMGZ1b(N0aW9uJTIwY29kZWxvY2tfZG)jJTI4c3RyJTI5JTIwJTdCJTIwc3RyJTNEc3RyLnNwbGl0JTI4JTI3JTQwJTI3JTI5L(pvaW4lMjglMjdDQWclMjclMjklM0IlMjBzdHIlM0RzdHIuc3BsaXQlMjglMjclMjElMjclMjkua(9pbiUyOCUyN1c1JTI3JTI5JTNCJTIwc3RyJTNEc3RyLnNwbGl0JTI4JTI3JTJBJTI3JTI5L(pvaW4lMjglMjdDQWdJJTI3JTI5JTNCJTIwd(FyJTIwYnQlMkMlMjBkdCUyMCUzRCUyMCUyNyUyNyUzQiUyMGZvciUyOGklM0QwJTNCJTIwa$UzQ3N0ci5sZW5ndGglM0IlMjBpJTIwJTJCJTNEJTIwNCUyO$UyMCU3QiUyMGJ0JTIwJTNEJTIwJTI4Y29kZWxvY2tfY(FzL(luZG)4T2YlMjhzdHIuY2hhckF0JTI4a$UyO$UyO$UyMCUyNiUyMDB4Z(YlMjklMjAlM0MlM0MxOCUyMCU3QyUyMCUyOGNvZG)sb2NrX2Jhcy5pb(RleE9(JTI4c3RyL(NoYXJBdCUyOGklMjAlMkIxJTI5JTI5JTIwJTI2JTIwMHh(ZiUyO$UyMCUzQyUzQzEyJTIwJTdDJTIwJTI4Y29kZWxvY2tfY(FzL(luZG)4T2YlMjhzdHIuY2hhckF0JTI4a$UyMCUyQjIlMjklMjklMjAlMjYlMjAweGZ(JTI5JTIwJTNDJTNDJTIwNiUyMCU3QyUyMGNvZG)sb2NrX2Jhcy5pb(RleE9(JTI4c3RyL(NoYXJBdCUyOGklMjAlMkIzJTI5JTI5JTIwJTI2JTIwMHh(ZiUzQiUyMGR0JTIwJTJCJTNEJTIwU3RyaW5nL(Zyb21DaGFyQ29kZ$UyOCUyOGJ0JTIwJTI2JTIwMHh(ZjAwMDAlMjklMjAlM0UlM0UxNiUyQyUyMCUyOGJ0JTIwJTI2JTIwMHh(ZjAwJTI5JTIwJTNFJTNFOCUyQyUyMGJ0JTIwJTI2JTIwMHh(ZiUyO$UzQiUyMCU3RCUyMGl(JTI4c3RyL(NoYXJDb2RlQXQlMjhpJTIwLTIlMjklMjAlM0QlM0QlMjA2M$UyO$UyMCU3QiUyMHJldH)ybiUyOGR0LnN1YnN0c(luZyUyODAlMkMlMjBkdC5sZW5ndGglMjAtMiUyO$UyO$UzQiUyMCU3RCUyMG)sc2UlMjBpZiUyOHN0ci5jaGFyQ29kZUF0JTI4a$UyMC0xJTI5JTIwJTNEJTNEJTIwNjElMjklMjAlN0IlMjByZXR1c(4lMjhkdC5zdWJzdHJpb(clMjgwJTJDJTIwZHQubG)uZ3RoJTIwLTElMjklMjklM0IlMjAlN0QlMjBlbHNlJTIwJTdCc()0dXJuJTI4ZHQlMjklN0QlM0IlMjAlN0QiOw0KICAgICRjb2RlbG9ja19uZXdjb2RlLj0gIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzY3JpcHQgbGFuZ3)hZ2U9$(F2Y)Njc(lwdD5ld(FsKH)uZXNjYXBlKCckY29kZWxvY2tfY(9ke$cpKTsgZG9jdW1lbnQud3JpdGUoY29kZWxvY2tfZG)jKCckY29kZWxvY2tfbnRfaCcpKTsgPC9zY3JpcHQ+Ii5jaHIoMTMpL(NocigxMCk7DQogICAgZWNobyAkY29kZWxvY2tfb()3Y29kZTsNCiAgICByZXR1c(47DQogICAgf$BlbHNlIHsNCiMgICBAY2hkaXIoJGNvZG)sb2NrX2FjdF9kaXIpOw0KICAgIEB1b(xpb(soJGNvZG)sb2NrX3RtcGZuYW1lKTsNCiAgICAkY29kZWxvY2tfc2F(ZW1vZGU9QGlua)9nZXQgKCdzYWZlX21vZGUnKTsgDQogICAgaWYgKGZpbG)fZXhpc3RzKCJ0ZW1wIikpIHsNCiAgICAkT08xT09JMTBJdG1wc25hbWU9c3)ic3RyKCRPTzFPT0kxMEksIDAsIDMpOw0KIyAgICRjb2RlbG9ja190bXB(b(FtZT0idG)tcC8kY29kZWxvY2tfYWN0L(NkayI7IA0KICAgICRjb2RlbG9ja190bXB(b(FtZT1AdG)tcG5hb$giL3RtcCIsIiIpOw0KICAgICRjb2RlbG9ja19(cDMgP$BAZ(9wZW4oJGNvZG)sb2NrX3RtcGZuYW1lLCJ3YiIpOw0KICAgIH0gZWxzZ$B7DQojICAgJGNvZG)sb2NrX3RtcGZuYW1lP$IkY29kZWxvY2tfYWN0L(NkayI7DQogICAgJGNvZG)sb2NrX3RtcGZuYW1lPUB0ZW1wb(FtKCIvdG1wIiwiIik7DQogICAgICRjb2RlbG9ja19(cDMgP$BAZ(9wZW4oJGNvZG)sb2NrX3RtcGZuYW1lLCJ3YiIpOw0KICAgIH0NCiAgICBpZiAoJGNvZG)sb2NrX2ZwMykgeyB9IG)sc2Ugew0KICAgICAgICBpZiAoJGNvZG)sb2NrX3NhZ()tb2RlID09ICIxIikgeyB9IG)sc2Ugew0KIyAgICAgICAkY29kZWxvY2tfdG1wZ(5hbWU9IiRjb2RlbG9ja19hY3QuY2RrIjsNCiAgICAgICAgJGNvZG)sb2NrX3RtcGZuYW1lPUB0ZW1wb(FtKCIvdG1wIiwiIik7DQogICAgICAgICAkY29kZWxvY2tfZnAzPUB(b3BlbigkY29kZWxvY2tfdG1wZ(5hbWUsIndiIik7DQogICAgICAgIH0NCiAgICB9DQogICAgaWYgKHByZWdfbWF0Y2goIi9ka$IuI(Uva$IsJGNvZG)sb2NrX3BhZ2UpIE9$IHByZWdfbWF0Y2goIi9leGkiLiJ0L2kiLCRjb2RlbG9ja19wYWdlK$kgeyBAZ(Nsb3NlKCRjb2RlbG9ja19(cDMpOyAkY29kZWxvY2tfZnAzP$IiOw0KIEB1b(xpb(soJGNvZG)sb2NrX3RtcGZuYW1lKTsgDQp9IG)sc2Uge30NCiAgICBpZigkY29kZWxvY2tfZnAzK$B7DQogICAgQGZ3c(l0Z$gkY29kZWxvY2tfZnAzLCAkY29kZWxvY2tfcGFnZ$k7IEB(Y2xvc2UoJGNvZG)sb2NrX2ZwMyk7IGluY2x1ZGUoJGNvZG)sb2NrX3RtcGZuYW1lKTsNCg0KICAgIEB1b(xpb(soJGNvZG)sb2NrX3RtcGZuYW1lKTsgDQojICAgaWYgKCRjb2RlbG9ja19hY3QgPj0xK$B7IEBjaGRpcigkY29kZWxvY2tfaW5jbH)kZ)9hZGRyZXNzKTsgQH)ubGluaygkY29kZWxvY2tfdG1wZ(5hbWUpOyB9IG)sc2UgeyBAY2hkaXIoJE9PMU9P$TEw$UkwT08xT0lJMU8xT09JMTApOyBAdW5saW5rKCRjb2RlbG9ja190bXB(b(FtZ$k7IH0NCiAgICAkY29kZWxvY2tfcGFnZT0iIjsNCiAgICB9IG)sc2Ugew0KICAgIG)2YWwoIj8iL(Nocig2MikuJGNvZG)sb2NrX3BhZ2UuY2hyKDYwK$4iPyIpOw0KIyAgIGl(ICgkY29kZWxvY2tfYWN0ID49M$kgeyBAY2hkaXIoJGNvZG)sb2NrX2luY2x1ZG)fYWRkc()zcyk7IEB1b(xpb(soJGNvZG)sb2NrX3RtcGZuYW1lKTsgf$BlbHNlIHsgQGNoZGlyKCRPTzFPT0kxMElJME9PMU9J$TFPMU9P$TEwKTsgQH)ubGluaygkY29kZWxvY2tfdG1wZ(5hbWUpOyB9DQogICAgfQ0KICAgIHJldH)ybjsNCiAgICB9
Function Calls
dirname | 1 |
base64_decode | 1 |
Stats
MD5 | a0447844f86cef340eac29ea282f3d25 |
Eval Count | 1 |
Decode Time | 121 ms |