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("PD9waHAgZGF0ZV9kZWZhdWx0X3RpbWV6b25lX3NldCgnQXNpYS9Ib19DaG..
Decoded Output download
?>b'<?php date_default_timezone_set(\'Asia/Ho_Chi_Minh\');
ini_set(\'max_execution_time\', 0);
require_once \'../huanads.php\';
$conn = mysqli_connect($DBHOST, $DBUSER, $DBPW, $DBNAME);
mysqli_set_charset($conn,\'utf8\');
$datatoken = getdatatoken(70,1);
//var_dump($datatoken);
$cdt = count($datatoken);
for($r = 0 ; $r < $cdt ;$r++){
$token = $datatoken[$r][\'token\'];
$id = $datatoken[$r][\'id\'];
$type = $datatoken[$r][\'type\'];
$idstt = $datatoken[$r][\'idstt\'];
$useradd = $datatoken[$r][\'useradd\'];
// $idbot = $datatoken[$r][\'idbot\'];
// $maxlike = $datatoken[$r][\'maxreaction\'];
// $onreaction = $datatoken[$r][\'reaction\'];
// $oncomment = $datatoken[$r][\'comment\'];
// $contentcmt = $datatoken[$r][\'contentcmt\'];
// $maxcmt = $datatoken[$r][\'maxcmt\'];
// $packsticker = $datatoken[$r][\'packsticker\'];
// $sleepafter = $datatoken[$r][\'sleepafter\'];
//$runreac = reaction($token,$idstt,$id,$type);
$checks = hasreaction($token,$idstt);
if($checks == "NONE"){
$runreac = reaction2($token,$idstt,$type);
if($runreac == "true"){
addhistorybot($id, $type,$idstt,$useradd);
updatetotalauto($id,1);
}
}
deletenewfeedbotreaction($idstt);
}
die();
function hasreaction($token,$idstt){
$token = trim($token);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://graph.facebook.com/v2.9/$idstt/reactions?summary=true&limit=0&access_token=$token",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"cache-control: no-cache"
),
));
$data = curl_exec($curl);
curl_close($curl);
$data = json_decode($data,true);
if($data[\'error\'][\'code\']==\'100\' || $data[\'error\'][\'code\']==\'200\'){
return "idsttdie";
}
return $data[\'summary\'][\'viewer_reaction\'];
}
function reaction2($tokenn,$idstt,$type){
$tokenn = trim($tokenn);
$idstt = trim($idstt);
$type = trim($type);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://graph.facebook.com/$idstt/reactions?access_token=$tokenn",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 10,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "type=$type",
CURLOPT_HTTPHEADER => array(
"cache-control: no-cache",
"content-type: application/x-www-form-urlencoded"
),
));
$response = curl_exec($curl);
curl_close($curl);
$response = json_decode($response,true);
if(isset($response[\'success\'])){
return "true";
}else{
if($response[\'error\'][\'code\'] == \'190\'){
//deletetoken($tokenn);
}
if($response[\'error\'][\'code\'] == \'100\' || $response[\'error\'][\'code\']==\'200\'){
//deleteidstt($idstt);
return "idsttdie";
}
if($response[\'error\'][\'code\'] == \'3\'){
//updateago($tokenn,\'999999999999999\');
}
}
}
function reaction($token,$idstt,$uid,$type="LIKE"){
$idstt = explode("_",$idstt);
$uidtarget = $idstt[0];
$idstt = $idstt[1];
$reac = "3";
switch ($type) {
case "LIKE":
$reac = "1";
break;
case "LOVE":
$reac = "2";
break;
case "HAHA":
$reac = "4";
break;
case "WOW":
$reac = "3";
break;
case "SAD":
$reac = "7";
break;
case "ANGRY":
$reac = "8";
break;
default:
$reac = "3";
}
$idsttbase64 = urlencode( base64_encode("feedback:".$idstt));
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://graph.facebook.com/graphql",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "doc_id=1465022236921477&method=post&locale=vi_VN&pretty=false&format=json&variables=%7B%220%22%3A%7B%22tracking%22%3A%5B%22%7B%5C%22top_level_post_id%5C%22%3A%5C%22".$idstt."%5C%22%2C%5C%22tl_objid%5C%22%3A%5C%22".$idstt."%5C%22%2C%5C%22throwback_story_fbid%5C%22%3A%5C%22".$idstt."%5C%22%2C%5C%22profile_id%5C%22%3A%5C%22".$uidtarget."%5C%22%2C%5C%22profile_relationship_type%5C%22%3A2%2C%5C%22actrs%5C%22%3A%5C%22".$uidtarget."%5C%22%7D%22%2C%22%7B%5C%22image_loading_state%5C%22%3A0%2C%5C%22radio_type%5C%22%3A%5C%22wifi-none%5C%22%7D%22%5D%2C%22feedback_source%22%3A%22video_channel_feed%22%2C%22feedback_reaction%22%3A".$reac."%2C%22client_mutation_id%22%3A%22a6c63b5d-d926-".rand(111,999)."f-92a6-e35xf8f".rand(1111,9999)."4%22%2C%22nectar_module%22%3A%22unknown%22%2C%22actor_id%22%3A%22".$uid."%22%2C%22feedback_id%22%3A%22".$idsttbase64."%22%2C%22action_timestamp%22%3A".$uid."%7D%7D&fb_api_req_friendly_name=ViewerReactionsMutation&fb_api_caller_class=graphservice",
CURLOPT_HTTPHEADER => array(
"accept-encoding: gzip, deflate",
"authorization: OAuth ".$token,
"cache-control: no-cache",
"content-type: application/x-www-form-urlencoded",
"host: graph.facebook.com",
"user-agent: [FBAN/FB4A;FBAV/153.0.0.54.88;FBBV/84570987;FBDM/{density=2.0,width=720,height=1280};FBLC/vi_VN;FBRV/85070460;FBCR/Android;FBMF/x86;FBBD/generic;FBPN/com.facebook.katana;FBDV/Samsung Galaxy S".rand(3,7)." - ".rand(4,6).".0.".rand(1,7)." - API 16 - 720x1280;FBSV/4.1.1;FBOP/1;FBCA/x86:unknown;]",
"x-fb-connection-type: WIFI",
"x-fb-friendly-name: ViewerReactionsMutation",
"x-fb-http-engine: Liger",
"x-fb-net-hni: 310260",
"x-fb-sim-hni: 310270"
),
));
echo $response = curl_exec($curl);
curl_close($curl);
if(strpos($response,\'{"data":{"feedback_react":{"feedback":{"id":"\') !== false){
return "true";
}else{
if(strpos($response,\'"code": 190,\') || strpos($response,\'"code":190,\')){
return "tokendie";
}
if(strpos($response,\'"code": 12,\') || strpos($response,\'"code":12,\')){
return "tokennotable";
}
}
}
function IsCmt($idstt,$token){
$idstt = explode("_",$idstt);
// $uidtarget = $idstt[0];
$idstt = $idstt[1];
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://graph.facebook.com/fql?q=SELECT%20id%2Ctext%2Cfromid%20FROM%20comment%20WHERE%20object_id%3D".$idstt."%20AND%20fromid%3Dme()&access_token=".$token,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"cache-control: no-cache"
),
));
$response = curl_exec($curl);
curl_close($curl);
if(strpos($response,\'"id":\')){
return true;
}else{
return false;
}
}
function comment($toke,$id,$text,$urlimagecmt,$packsticker){
$idstt = explode("_",$id);
$idtag = $idstt[0];
//$idstt = $idstt[1];
$contentstickrequest = "";
$contentimagerequest = "";
if($packsticker != "No" && $urlimagecmt == "No"){
switch ($packsticker){
case "Tonton":
$stick = array(\'193082987877305\',\'193082767877327\',\'193082841210653\',\'193083071210630\',\'193083057877298\',\'193083121210625\',\'193083104543960\',\'193083087877295\',\'193754761143461\',\'193082944543976\',\'193083031210634\',\'193083001210637\',\'193082917877312\',\'193754774476793\',\'193082784543992\',\'193082931210644\',\'193082874543983\',\'193082974543973\',\'193082891210648\',\'193083044543966\',\'193082827877321\',\'193082804543990\',\'193082861210651\',\'193082987877305\',\'193083967877207\');
break;
case "Chuoi":
$stick = array(\'420710724953547\',\'420710068286946\',\'420715784953041\',\'420710414953578\',\'420715238286429\',\'420714631619823\',\'420715634953056\',\'420714754953144\',\'427321267625826\',\'420709004953719\',\'420714868286466\',\'420715121619774\',\'420716101619676\',\'420716284952991\',\'420716634952956\',\'427320150959271\',\'427320327625920\',\'427320510959235\',\'427321144292505\',\'427321750959111\');
break;
case "Usagyuuun":
$stick = array(\'184002505550738\',\'184002745550714\',\'184002922217363\',\'184003345550654\',\'184023658881956\',\'184003438883978\',\'184568445494144\',\'184570625493926\',\'184571022160553\',\'184023735548615\',\'184568315494157\',\'184571368827185\',\'184568682160787\',\'184569952160660\',\'184003212217334\',\'184570488827273\',\'184570088827313\',\'184570198827302\',\'184570725493916\',\'184022932215362\',\'184570885493900\',\'184571475493841\',\'184571208827201\',\'184002655550723\');
break;
case "Mugsy":
$stick = array(\'396449133832526\',\'396449307165842\',\'396449313832508\',\'396449147165858\',\'396449210499185\',\'396449327165840\',\'396449380499168\',\'396449127165860\',\'396449120499194\',\'396449263832513\',\'396449390499167\',\'396449427165830\',\'396449203832519\',\'396449220499184\',\'396449370499169\',\'396449193832520\');
break;
case "Betakkuma20":
$stick = array(\'919273981556651\',\'919274211556628\',\'919274511556598\',\'919274654889917\',\'919274771556572\',\'919274868223229\',\'919275011556548\',\'919275968223119\',\'919276181556431\',\'919289898221726\',\'919290824888300\',\'919291361554913\',\'919291468221569\',\'919291654888217\',\'919291751554874\',\'919291891554860\',\'919292021554847\',\'919292121554837\',\'919292228221493\',\'919292281554821\',\'919292408221475\',\'919292488221467\',\'919293468221369\',\'919293584888024\');
break;
case "Batdong":
$stick = array(\'364384037058235\',\'364384197058219\',\'364384103724895\',\'364384047058234\',\'364384143724891\',\'364383993724906\',\'364383983724907\',\'364384123724893\',\'364383973724908\',\'364384113724894\',\'364384090391563\',\'364384153724890\',\'364384057058233\',\'364384017058237\',\'364384003724905\',\'364384187058220\',\'364384177058221\',\'364384077058231\',\'364384167058222\',\'364384133724892\');
break;
case "Trongtai":
$stick = array(\'298592790320920\',\'298592806987585\',\'298592816987584\',\'298592830320916\',\'298592840320915\',\'298592850320914\',\'298592863654246\',\'298592876987578\',\'298592886987577\',\'298592896987576\',\'298592910320908\',\'298592923654240\',\'298592933654239\',\'298592943654238\',\'298592953654237\',\'298592963654236\');
break;
case "EmtraiYam":
$stick = array(\'1598323250480496\',\'1598323170480504\',\'1598323397147148\',\'1748797872099699\',\'1748797422099744\',\'1598324113813743\',\'1598323843813770\',\'1598324190480402\',\'1598324360480385\',\'1748794082100078\',\'1598326803813474\',\'1598327543813400\',\'1598327050480116\',\'1598327220480099\',\'1748796828766470\',\'1748793925433427\',\'1748794622100024\',\'1598332903812864\',\'1598327337146754\',\'1748808718765281\',\'1598327843813370\',\'1748797698766383\',\'1748798165433003\',\'1748798442099642\');
break;
case "Duncan1":
$stick = array(\'785424308295590\',\'785424328295588\',\'785424341628920\',\'785424364962251\',\'785424388295582\',\'785424401628914\',\'785424414962246\',\'785424431628911\');
break;
case "Xinchaochonau":
$stick = array(\'789355237820057\',\'789355251153389\',\'789355424486705\',\'789355111153403\',\'789355197820061\',\'789355277820053\',\'789355324486715\',\'789355397820041\',\'789355311153383\',\'789355384486709\',\'789355224486725\',\'789355157820065\',\'789355144486733\',\'789355411153373\',\'789355131153401\',\'789355354486712\',\'789355211153393\',\'789355341153380\',\'789355371153377\',\'789355441153370\');
break;
case "Noohin":
$stick = array(\'1193275907437966\',\'1193275110771379\',\'1355454444553444\',\'1193278047437752\',\'1193279524104271\',\'1193278434104380\',\'1193277874104436\',\'1193277374104486\',\'1211883345577222\',\'1193279267437630\',\'1193280720770818\',\'1195824403849783\',\'1193280354104188\',\'1193279787437578\',\'1193275340771356\',\'1193280114104212\');
break;
case "QooBeeAgapi":
$stick = array(\'1747081105603141\',\'1747081465603105\',\'1747082232269695\',\'1747082948936290\',\'1747083702269548\',\'1747083968936188\',\'1747084572269461\',\'1747084802269438\',\'1747085322269386\',\'1747092188935366\',\'1747082038936381\',\'1747085735602678\',\'1747085962269322\',\'1747086582269260\',\'1747087128935872\',\'1747087835602468\',\'1747088982269020\',\'1747089445602307\',\'1747090242268894\',\'1747091025602149\');
break;
case "Piyomarukhoihai":
$stick = array(\'344394649290083\',\'344394765956738\',\'344395845956630\',\'344395365956678\',\'344395512623330\',\'344395972623284\',\'344403782622503\',\'344396232623258\',\'344396342623247\',\'344402749289273\',\'344403035955911\',\'344396095956605\',\'344403592622522\',\'344403172622564\',\'344403322622549\',\'344404019289146\',\'345440432518838\',\'344404369289111\',\'344411775955037\',\'344406672622214\',\'344409682621913\',\'344411035955111\',\'344394505956764\',\'344411262621755\');
break;
case "Rosavuive":
$stick = array(\'295918937522850\',\'295919034189507\',\'295919157522828\',\'295919207522823\',\'295919314189479\',\'295919437522800\',\'295919567522787\',\'295919650856112\',\'295920017522742\',\'295920180856059\',\'295920257522718\',\'295920407522703\',\'295920524189358\',\'295920620856015\',\'295920800855997\',\'295920877522656\');
break;
default:
$stick = array(\'193082987877305\',\'193082767877327\',\'193082841210653\',\'193083071210630\',\'193083057877298\',\'193083121210625\',\'193083104543960\',\'193083087877295\',\'193754761143461\',\'193082944543976\',\'193083031210634\',\'193083001210637\',\'193082917877312\',\'193754774476793\',\'193082784543992\',\'193082931210644\',\'193082874543983\',\'193082974543973\',\'193082891210648\',\'193083044543966\',\'193082827877321\',\'193082804543990\',\'193082861210651\',\'193082987877305\',\'193083967877207\');
}
$cst = count($stick);
$s = rand(0,($cst-1));
$contentstickrequest = "&attachment_id=".$stick[$s];
}
if($urlimagecmt != "No"){
$contentimagerequest = "&attachment_url=".$urlimagecmt;
}
$text = str_replace("((tag))","@[$idtag:0]",$text);
$text = urlencode($text);
$a = file_get_contents("https://graph.facebook.com/$id/comments?method=post&message=".$text.$contentstickrequest.$contentimagerequest."&access_token=".$toke);
if(strpos($a,\'"id"\')){
return true;
}else{
return false;
}
}
function xulytext($text1){
$text = explode("{",$text1);
$ketqua =\'\';
$ketqua .= $text[0];
$a = array();
$b = array();
$ct = count($text);
for($i=1;$i<$ct;$i++){
$a1 = explode(\'}\',$text[$i]);
$b[] = $a1[1];
$a[] = $a1[0];
}
$ca = count($a);
$cb = count($b);
for($i=0;$i<$cb;$i++){
$a1 = explode(\'|\',$a[$i]);
$ran = rand(0,(count($a1)-1));
$ketqua .= $a1[$ran].$b[$i];
}
return $ketqua;
}
function randreactions($data){
$data = explode(\'|\',$data);
$cd = count($data);
$r = rand(0,$cd-1);
return $data[$r];
}
function getdatatoken($limit,$sv){
global $conn;
$nows = strtotime(date(\'Y-m-d H:i:s\'));
//$nowHi = date("H:i:s");
$result = mysqli_query($conn, "SELECT * FROM `newfeedbotreaction` WHERE \'$nows\'-`created_time`>`sleep` AND `sv`=\'$sv\' LIMIT $limit");
$kq = array();
while ($row = $result->fetch_assoc()){
$token = $row[\'token\'];
$id = $row[\'uid\'];
//$idbot = $row[\'idbot\'];
//$maxreaction = $row[\'maxreaction\'];
$type = $row[\'type\'];
$idstt = $row[\'idstt\'];
$useradd = $row[\'useradd\'];
// $reaction = $row[\'reaction\'];
// $comment = $row[\'comment\'];
// $contentcmt = $row[\'contentcmt\'];
// $maxcmt = $row[\'maxcomment\'];
// $urlimagecmt = $row[\'urlimagecmt\'];
// $packsticker = $row[\'packsticker\'];
// $useradd = $row[\'addby\'];
// $onlyid = $row[\'onlyid\'];
// $sleepafter = $row[\'sleepafter\'];
$kq[] = array(\'token\'=>$token,\'id\'=>$id,\'type\'=>$type,\'idstt\'=>$idstt,\'useradd\'=>$useradd);
updatetimeupdate($id,$nows);
}
return $kq;
}
function updatetimeupdate($uid,$nows){
global $conn;
mysqli_query($conn, "UPDATE `botreaction` SET `timeupdate`=\'$nows\' WHERE `uid`=\'$uid\'");
}
function addhistorybot($uid,$type,$status,$useradd){
global $conn;
$nows = strtotime(date(\'Y-m-d H:i:s\'));
mysqli_query($conn, "INSERT INTO `historybot`(`uid`, `status`, `time`,`useradd`,`type`) VALUES (\'$uid\',\'$status\',\'$nows\',\'$useradd\',\'$type\')");
}
function updatetotalauto($uid,$count){
global $conn;
mysqli_query($conn, "UPDATE `botreaction` SET `autotoday`= (SELECT `autotoday`) + $count ,`totalauto`= (SELECT `totalauto`) + $count WHERE `uid`=\'$uid\'");
}
function updatetotalautocmt($uid,$count){
global $conn;
mysqli_query($conn, "UPDATE `botreaction` SET `autocmttoday`= (SELECT `autocmttoday`) + $count ,`totalcmt`= (SELECT `totalcmt`) + $count WHERE `uid`=\'$uid\'");
}
function updatelive($uid,$status,$mess){
global $conn;
mysqli_query($conn, "UPDATE `botreaction` SET `live`=\'$status\',`status`=\'$mess\' WHERE `uid`=\'$uid\'");
}
function addnewfeedbotreaction($token,$idstt,$uid,$type,$created_time,$sleepafter){
global $conn;
mysqli_query($conn, "INSERT INTO `newfeedbotreaction`(`idstt`, `token`, `type`, `created_time`, `sleep`,`uid`) VALUES (\'$idstt\',\'$token\',\'$type\',\'$created_time\',\'$sleepafter\',\'$uid\')");
}
function deletenewfeedbotreaction($idstt){
global $conn;
mysqli_query($conn, "DELETE FROM `newfeedbotreaction` WHERE `idstt`=\'$idstt\'");
}
function sendnoti($id,$text){
$text = urlencode($text);
global $botid;
global $blockid;
global $TOKENCHATFUEL;
$api_url = "https://api.chatfuel.com/bots/$botid/users/$id/send?chatfuel_token=$TOKENCHATFUEL&chatfuel_block_id=$blockid¬i=$text";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(\'Content-Type: application/json\'));
$response = curl_exec($ch);
curl_close($ch);
return $response;
} ?>'
Did this file decode correctly?
Original Code
<?php @eval("?>".base64_decode("PD9waHAgZGF0ZV9kZWZhdWx0X3RpbWV6b25lX3NldCgnQXNpYS9Ib19DaGlfTWluaCcpOwppbmlfc2V0KCdtYXhfZXhlY3V0aW9uX3RpbWUnLCAwKTsKcmVxdWlyZV9vbmNlICcuLi9odWFuYWRzLnBocCc7CiRjb25uID0gbXlzcWxpX2Nvbm5lY3QoJERCSE9TVCwgJERCVVNFUiwgJERCUFcsICREQk5BTUUpOwpteXNxbGlfc2V0X2NoYXJzZXQoJGNvbm4sJ3V0ZjgnKTsKCiRkYXRhdG9rZW4gPSBnZXRkYXRhdG9rZW4oNzAsMSk7Ci8vdmFyX2R1bXAoJGRhdGF0b2tlbik7CiRjZHQgPSBjb3VudCgkZGF0YXRva2VuKTsKZm9yKCRyID0gMCA7ICRyIDwgJGNkdCA7JHIrKyl7CiAgICAkdG9rZW4gPSAkZGF0YXRva2VuWyRyXVsndG9rZW4nXTsKICAgICRpZCA9ICRkYXRhdG9rZW5bJHJdWydpZCddOwogICAgJHR5cGUgPSAkZGF0YXRva2VuWyRyXVsndHlwZSddOwogICAgJGlkc3R0ID0gJGRhdGF0b2tlblskcl1bJ2lkc3R0J107CiAgICAkdXNlcmFkZCA9ICRkYXRhdG9rZW5bJHJdWyd1c2VyYWRkJ107CiAgICAvLyAkaWRib3QgPSAkZGF0YXRva2VuWyRyXVsnaWRib3QnXTsKICAgIC8vICRtYXhsaWtlID0gJGRhdGF0b2tlblskcl1bJ21heHJlYWN0aW9uJ107CiAgICAvLyAkb25yZWFjdGlvbiA9ICRkYXRhdG9rZW5bJHJdWydyZWFjdGlvbiddOwogICAgLy8gJG9uY29tbWVudCA9ICRkYXRhdG9rZW5bJHJdWydjb21tZW50J107CiAgICAvLyAkY29udGVudGNtdCA9ICRkYXRhdG9rZW5bJHJdWydjb250ZW50Y210J107CiAgICAvLyAkbWF4Y210ID0gJGRhdGF0b2tlblskcl1bJ21heGNtdCddOwogICAgLy8gJHBhY2tzdGlja2VyID0gJGRhdGF0b2tlblskcl1bJ3BhY2tzdGlja2VyJ107CiAgICAvLyAkc2xlZXBhZnRlciA9ICRkYXRhdG9rZW5bJHJdWydzbGVlcGFmdGVyJ107CiAgICAgICAgLy8kcnVucmVhYyA9IHJlYWN0aW9uKCR0b2tlbiwkaWRzdHQsJGlkLCR0eXBlKTsKICAgICAgICAkY2hlY2tzID0gaGFzcmVhY3Rpb24oJHRva2VuLCRpZHN0dCk7CiAgICAgICAgaWYoJGNoZWNrcyA9PSAiTk9ORSIpewogICAgICAgICAgICAkcnVucmVhYyA9IHJlYWN0aW9uMigkdG9rZW4sJGlkc3R0LCR0eXBlKTsKICAgICAgICAgICAgaWYoJHJ1bnJlYWMgPT0gInRydWUiKXsKICAgICAgICAgICAgICAgIGFkZGhpc3Rvcnlib3QoJGlkLCAkdHlwZSwkaWRzdHQsJHVzZXJhZGQpOwogICAgICAgICAgICAgICAgdXBkYXRldG90YWxhdXRvKCRpZCwxKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBkZWxldGVuZXdmZWVkYm90cmVhY3Rpb24oJGlkc3R0KTsKfQpkaWUoKTsKCgpmdW5jdGlvbiBoYXNyZWFjdGlvbigkdG9rZW4sJGlkc3R0KXsKICAgICR0b2tlbiA9IHRyaW0oJHRva2VuKTsKICAgICRjdXJsID0gY3VybF9pbml0KCk7CiAgICBjdXJsX3NldG9wdF9hcnJheSgkY3VybCwgYXJyYXkoCiAgICAgIENVUkxPUFRfVVJMID0+ICJodHRwczovL2dyYXBoLmZhY2Vib29rLmNvbS92Mi45LyRpZHN0dC9yZWFjdGlvbnM/c3VtbWFyeT10cnVlJmxpbWl0PTAmYWNjZXNzX3Rva2VuPSR0b2tlbiIsCiAgICAgIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIgPT4gdHJ1ZSwKICAgICAgQ1VSTE9QVF9FTkNPRElORyA9PiAiIiwKICAgICAgQ1VSTE9QVF9NQVhSRURJUlMgPT4gMTAsCiAgICAgIENVUkxPUFRfVElNRU9VVCA9PiAzMCwKICAgICAgQ1VSTE9QVF9IVFRQX1ZFUlNJT04gPT4gQ1VSTF9IVFRQX1ZFUlNJT05fMV8xLAogICAgICBDVVJMT1BUX0NVU1RPTVJFUVVFU1QgPT4gIkdFVCIsCiAgICAgIENVUkxPUFRfSFRUUEhFQURFUiA9PiBhcnJheSgKICAgICAgICAiY2FjaGUtY29udHJvbDogbm8tY2FjaGUiCiAgICAgICksCiAgICApKTsKICAgICRkYXRhID0gY3VybF9leGVjKCRjdXJsKTsKICAgIGN1cmxfY2xvc2UoJGN1cmwpOwogICAgJGRhdGEgPSBqc29uX2RlY29kZSgkZGF0YSx0cnVlKTsKICAgIGlmKCRkYXRhWydlcnJvciddWydjb2RlJ109PScxMDAnIHx8ICRkYXRhWydlcnJvciddWydjb2RlJ109PScyMDAnKXsKICAgICAgICByZXR1cm4gImlkc3R0ZGllIjsKICAgIH0KcmV0dXJuICRkYXRhWydzdW1tYXJ5J11bJ3ZpZXdlcl9yZWFjdGlvbiddOwp9CmZ1bmN0aW9uIHJlYWN0aW9uMigkdG9rZW5uLCRpZHN0dCwkdHlwZSl7CiAgICAkdG9rZW5uID0gdHJpbSgkdG9rZW5uKTsKICAgICRpZHN0dCA9IHRyaW0oJGlkc3R0KTsKICAgICR0eXBlID0gdHJpbSgkdHlwZSk7CiAgICAkY3VybCA9IGN1cmxfaW5pdCgpOwogICAgY3VybF9zZXRvcHRfYXJyYXkoJGN1cmwsIGFycmF5KAogICAgICBDVVJMT1BUX1VSTCA9PiAiaHR0cHM6Ly9ncmFwaC5mYWNlYm9vay5jb20vJGlkc3R0L3JlYWN0aW9ucz9hY2Nlc3NfdG9rZW49JHRva2VubiIsCiAgICAgIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIgPT4gdHJ1ZSwKICAgICAgQ1VSTE9QVF9USU1FT1VUID0+IDEwLAogICAgICBDVVJMT1BUX0NVU1RPTVJFUVVFU1QgPT4gIlBPU1QiLAogICAgICBDVVJMT1BUX1BPU1RGSUVMRFMgPT4gInR5cGU9JHR5cGUiLAogICAgICBDVVJMT1BUX0hUVFBIRUFERVIgPT4gYXJyYXkoCiAgICAgICAgImNhY2hlLWNvbnRyb2w6IG5vLWNhY2hlIiwKICAgICAgICAiY29udGVudC10eXBlOiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiCiAgICAgICksCiAgICApKTsKICAgICRyZXNwb25zZSA9IGN1cmxfZXhlYygkY3VybCk7CiAgICBjdXJsX2Nsb3NlKCRjdXJsKTsKICAgICRyZXNwb25zZSA9IGpzb25fZGVjb2RlKCRyZXNwb25zZSx0cnVlKTsKICAgIGlmKGlzc2V0KCRyZXNwb25zZVsnc3VjY2VzcyddKSl7CiAgICAgICAgcmV0dXJuICJ0cnVlIjsKICAgIH1lbHNlewogICAgICAgIGlmKCRyZXNwb25zZVsnZXJyb3InXVsnY29kZSddID09ICcxOTAnKXsKICAgICAgICAgICAvL2RlbGV0ZXRva2VuKCR0b2tlbm4pOwogICAgICAgIH0KICAgICAgICBpZigkcmVzcG9uc2VbJ2Vycm9yJ11bJ2NvZGUnXSA9PSAnMTAwJyB8fCAkcmVzcG9uc2VbJ2Vycm9yJ11bJ2NvZGUnXT09JzIwMCcpewogICAgICAgICAgICAvL2RlbGV0ZWlkc3R0KCRpZHN0dCk7CiAgICAgICAgICAgIHJldHVybiAiaWRzdHRkaWUiOwogICAgICAgIH0KICAgICAgICBpZigkcmVzcG9uc2VbJ2Vycm9yJ11bJ2NvZGUnXSA9PSAnMycpewogICAgICAgICAgIC8vdXBkYXRlYWdvKCR0b2tlbm4sJzk5OTk5OTk5OTk5OTk5OScpOwogICAgICAgIH0KICAgIH0KfQpmdW5jdGlvbiByZWFjdGlvbigkdG9rZW4sJGlkc3R0LCR1aWQsJHR5cGU9IkxJS0UiKXsKICAgICRpZHN0dCA9IGV4cGxvZGUoIl8iLCRpZHN0dCk7CiAgICAkdWlkdGFyZ2V0ID0gJGlkc3R0WzBdOwogICAgJGlkc3R0ID0gJGlkc3R0WzFdOwogICAgJHJlYWMgPSAiMyI7CiAgICBzd2l0Y2ggKCR0eXBlKSB7CiAgICAgICAgY2FzZSAiTElLRSI6CiAgICAgICAgICAgICRyZWFjID0gIjEiOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJMT1ZFIjoKICAgICAgICAgICAgJHJlYWMgPSAiMiI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIkhBSEEiOgogICAgICAgICAgICAkcmVhYyA9ICI0IjsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiV09XIjoKICAgICAgICAgICAgJHJlYWMgPSAiMyI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIlNBRCI6CiAgICAgICAgICAgICRyZWFjID0gIjciOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJBTkdSWSI6CiAgICAgICAgICAgICRyZWFjID0gIjgiOwogICAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAkcmVhYyA9ICIzIjsKICAgIH0KICAgICRpZHN0dGJhc2U2NCA9IHVybGVuY29kZSggYmFzZTY0X2VuY29kZSgiZmVlZGJhY2s6Ii4kaWRzdHQpKTsKICAgICRjdXJsID0gY3VybF9pbml0KCk7CiAgICBjdXJsX3NldG9wdF9hcnJheSgkY3VybCwgYXJyYXkoCiAgICAgIENVUkxPUFRfVVJMID0+ICJodHRwczovL2dyYXBoLmZhY2Vib29rLmNvbS9ncmFwaHFsIiwKICAgICAgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiA9PiB0cnVlLAogICAgICBDVVJMT1BUX0VOQ09ESU5HID0+ICIiLAogICAgICBDVVJMT1BUX01BWFJFRElSUyA9PiAxMCwKICAgICAgQ1VSTE9QVF9USU1FT1VUID0+IDMwLAogICAgICBDVVJMT1BUX0hUVFBfVkVSU0lPTiA9PiBDVVJMX0hUVFBfVkVSU0lPTl8xXzEsCiAgICAgIENVUkxPUFRfQ1VTVE9NUkVRVUVTVCA9PiAiUE9TVCIsCiAgICAgIENVUkxPUFRfUE9TVEZJRUxEUyA9PiAiZG9jX2lkPTE0NjUwMjIyMzY5MjE0NzcmbWV0aG9kPXBvc3QmbG9jYWxlPXZpX1ZOJnByZXR0eT1mYWxzZSZmb3JtYXQ9anNvbiZ2YXJpYWJsZXM9JTdCJTIyMCUyMiUzQSU3QiUyMnRyYWNraW5nJTIyJTNBJTVCJTIyJTdCJTVDJTIydG9wX2xldmVsX3Bvc3RfaWQlNUMlMjIlM0ElNUMlMjIiLiRpZHN0dC4iJTVDJTIyJTJDJTVDJTIydGxfb2JqaWQlNUMlMjIlM0ElNUMlMjIiLiRpZHN0dC4iJTVDJTIyJTJDJTVDJTIydGhyb3diYWNrX3N0b3J5X2ZiaWQlNUMlMjIlM0ElNUMlMjIiLiRpZHN0dC4iJTVDJTIyJTJDJTVDJTIycHJvZmlsZV9pZCU1QyUyMiUzQSU1QyUyMiIuJHVpZHRhcmdldC4iJTVDJTIyJTJDJTVDJTIycHJvZmlsZV9yZWxhdGlvbnNoaXBfdHlwZSU1QyUyMiUzQTIlMkMlNUMlMjJhY3RycyU1QyUyMiUzQSU1QyUyMiIuJHVpZHRhcmdldC4iJTVDJTIyJTdEJTIyJTJDJTIyJTdCJTVDJTIyaW1hZ2VfbG9hZGluZ19zdGF0ZSU1QyUyMiUzQTAlMkMlNUMlMjJyYWRpb190eXBlJTVDJTIyJTNBJTVDJTIyd2lmaS1ub25lJTVDJTIyJTdEJTIyJTVEJTJDJTIyZmVlZGJhY2tfc291cmNlJTIyJTNBJTIydmlkZW9fY2hhbm5lbF9mZWVkJTIyJTJDJTIyZmVlZGJhY2tfcmVhY3Rpb24lMjIlM0EiLiRyZWFjLiIlMkMlMjJjbGllbnRfbXV0YXRpb25faWQlMjIlM0ElMjJhNmM2M2I1ZC1kOTI2LSIucmFuZCgxMTEsOTk5KS4iZi05MmE2LWUzNXhmOGYiLnJhbmQoMTExMSw5OTk5KS4iNCUyMiUyQyUyMm5lY3Rhcl9tb2R1bGUlMjIlM0ElMjJ1bmtub3duJTIyJTJDJTIyYWN0b3JfaWQlMjIlM0ElMjIiLiR1aWQuIiUyMiUyQyUyMmZlZWRiYWNrX2lkJTIyJTNBJTIyIi4kaWRzdHRiYXNlNjQuIiUyMiUyQyUyMmFjdGlvbl90aW1lc3RhbXAlMjIlM0EiLiR1aWQuIiU3RCU3RCZmYl9hcGlfcmVxX2ZyaWVuZGx5X25hbWU9Vmlld2VyUmVhY3Rpb25zTXV0YXRpb24mZmJfYXBpX2NhbGxlcl9jbGFzcz1ncmFwaHNlcnZpY2UiLAogICAgICBDVVJMT1BUX0hUVFBIRUFERVIgPT4gYXJyYXkoCiAgICAgICAgImFjY2VwdC1lbmNvZGluZzogZ3ppcCwgZGVmbGF0ZSIsCiAgICAgICAgImF1dGhvcml6YXRpb246IE9BdXRoICIuJHRva2VuLAogICAgICAgICJjYWNoZS1jb250cm9sOiBuby1jYWNoZSIsCiAgICAgICAgImNvbnRlbnQtdHlwZTogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwKICAgICAgICAiaG9zdDogZ3JhcGguZmFjZWJvb2suY29tIiwKICAgICAgICAidXNlci1hZ2VudDogW0ZCQU4vRkI0QTtGQkFWLzE1My4wLjAuNTQuODg7RkJCVi84NDU3MDk4NztGQkRNL3tkZW5zaXR5PTIuMCx3aWR0aD03MjAsaGVpZ2h0PTEyODB9O0ZCTEMvdmlfVk47RkJSVi84NTA3MDQ2MDtGQkNSL0FuZHJvaWQ7RkJNRi94ODY7RkJCRC9nZW5lcmljO0ZCUE4vY29tLmZhY2Vib29rLmthdGFuYTtGQkRWL1NhbXN1bmcgR2FsYXh5IFMiLnJhbmQoMyw3KS4iIC0gIi5yYW5kKDQsNikuIi4wLiIucmFuZCgxLDcpLiIgLSBBUEkgMTYgLSA3MjB4MTI4MDtGQlNWLzQuMS4xO0ZCT1AvMTtGQkNBL3g4Njp1bmtub3duO10iLAogICAgICAgICJ4LWZiLWNvbm5lY3Rpb24tdHlwZTogV0lGSSIsCiAgICAgICAgIngtZmItZnJpZW5kbHktbmFtZTogVmlld2VyUmVhY3Rpb25zTXV0YXRpb24iLAogICAgICAgICJ4LWZiLWh0dHAtZW5naW5lOiBMaWdlciIsCiAgICAgICAgIngtZmItbmV0LWhuaTogMzEwMjYwIiwKICAgICAgICAieC1mYi1zaW0taG5pOiAzMTAyNzAiCiAgICAgICksCiAgICApKTsKICAgIAogICAgZWNobyAkcmVzcG9uc2UgPSBjdXJsX2V4ZWMoJGN1cmwpOwogICAgY3VybF9jbG9zZSgkY3VybCk7CiAgICBpZihzdHJwb3MoJHJlc3BvbnNlLCd7ImRhdGEiOnsiZmVlZGJhY2tfcmVhY3QiOnsiZmVlZGJhY2siOnsiaWQiOiInKSAhPT0gZmFsc2UpewogICAgICAgIHJldHVybiAidHJ1ZSI7CiAgICB9ZWxzZXsKICAgICAgICBpZihzdHJwb3MoJHJlc3BvbnNlLCciY29kZSI6IDE5MCwnKSB8fCBzdHJwb3MoJHJlc3BvbnNlLCciY29kZSI6MTkwLCcpKXsKICAgICAgICAgICAgcmV0dXJuICJ0b2tlbmRpZSI7CiAgICAgICAgfQogICAgICAgIGlmKHN0cnBvcygkcmVzcG9uc2UsJyJjb2RlIjogMTIsJykgfHwgc3RycG9zKCRyZXNwb25zZSwnImNvZGUiOjEyLCcpKXsKICAgICAgICAgICAgcmV0dXJuICJ0b2tlbm5vdGFibGUiOwogICAgICAgIH0KICAgIH0KfQpmdW5jdGlvbiBJc0NtdCgkaWRzdHQsJHRva2VuKXsKICAgICRpZHN0dCA9IGV4cGxvZGUoIl8iLCRpZHN0dCk7Ci8vICAgICR1aWR0YXJnZXQgPSAkaWRzdHRbMF07CiAgICAkaWRzdHQgPSAkaWRzdHRbMV07ICAgIAogICAgJGN1cmwgPSBjdXJsX2luaXQoKTsKICAgIGN1cmxfc2V0b3B0X2FycmF5KCRjdXJsLCBhcnJheSgKICAgICAgQ1VSTE9QVF9VUkwgPT4gImh0dHBzOi8vZ3JhcGguZmFjZWJvb2suY29tL2ZxbD9xPVNFTEVDVCUyMGlkJTJDdGV4dCUyQ2Zyb21pZCUyMEZST00lMjBjb21tZW50JTIwV0hFUkUlMjBvYmplY3RfaWQlM0QiLiRpZHN0dC4iJTIwQU5EJTIwZnJvbWlkJTNEbWUoKSZhY2Nlc3NfdG9rZW49Ii4kdG9rZW4sCiAgICAgIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIgPT4gdHJ1ZSwKICAgICAgQ1VSTE9QVF9FTkNPRElORyA9PiAiIiwKICAgICAgQ1VSTE9QVF9NQVhSRURJUlMgPT4gMTAsCiAgICAgIENVUkxPUFRfVElNRU9VVCA9PiAzMCwKICAgICAgQ1VSTE9QVF9IVFRQX1ZFUlNJT04gPT4gQ1VSTF9IVFRQX1ZFUlNJT05fMV8xLAogICAgICBDVVJMT1BUX0NVU1RPTVJFUVVFU1QgPT4gIkdFVCIsCiAgICAgIENVUkxPUFRfSFRUUEhFQURFUiA9PiBhcnJheSgKICAgICAgICAiY2FjaGUtY29udHJvbDogbm8tY2FjaGUiCiAgICAgICksCiAgICApKTsKICAgICRyZXNwb25zZSA9IGN1cmxfZXhlYygkY3VybCk7CiAgICBjdXJsX2Nsb3NlKCRjdXJsKTsKICAgIGlmKHN0cnBvcygkcmVzcG9uc2UsJyJpZCI6JykpewogICAgICAgIHJldHVybiB0cnVlOwogICAgfWVsc2V7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQp9CmZ1bmN0aW9uIGNvbW1lbnQoJHRva2UsJGlkLCR0ZXh0LCR1cmxpbWFnZWNtdCwkcGFja3N0aWNrZXIpewogICAgJGlkc3R0ID0gZXhwbG9kZSgiXyIsJGlkKTsKICAgICRpZHRhZyA9ICRpZHN0dFswXTsKICAgIC8vJGlkc3R0ID0gJGlkc3R0WzFdOwogICAgJGNvbnRlbnRzdGlja3JlcXVlc3QgPSAiIjsKICAgICRjb250ZW50aW1hZ2VyZXF1ZXN0ID0gIiI7CiAgICBpZigkcGFja3N0aWNrZXIgIT0gIk5vIiAmJiAkdXJsaW1hZ2VjbXQgPT0gIk5vIil7CiAgICAgICAgc3dpdGNoICgkcGFja3N0aWNrZXIpewogICAgICAgICAgICBjYXNlICJUb250b24iOgogICAgICAgICAgICAgICAgJHN0aWNrID0gYXJyYXkoJzE5MzA4Mjk4Nzg3NzMwNScsJzE5MzA4Mjc2Nzg3NzMyNycsJzE5MzA4Mjg0MTIxMDY1MycsJzE5MzA4MzA3MTIxMDYzMCcsJzE5MzA4MzA1Nzg3NzI5OCcsJzE5MzA4MzEyMTIxMDYyNScsJzE5MzA4MzEwNDU0Mzk2MCcsJzE5MzA4MzA4Nzg3NzI5NScsJzE5Mzc1NDc2MTE0MzQ2MScsJzE5MzA4Mjk0NDU0Mzk3NicsJzE5MzA4MzAzMTIxMDYzNCcsJzE5MzA4MzAwMTIxMDYzNycsJzE5MzA4MjkxNzg3NzMxMicsJzE5Mzc1NDc3NDQ3Njc5MycsJzE5MzA4Mjc4NDU0Mzk5MicsJzE5MzA4MjkzMTIxMDY0NCcsJzE5MzA4Mjg3NDU0Mzk4MycsJzE5MzA4Mjk3NDU0Mzk3MycsJzE5MzA4Mjg5MTIxMDY0OCcsJzE5MzA4MzA0NDU0Mzk2NicsJzE5MzA4MjgyNzg3NzMyMScsJzE5MzA4MjgwNDU0Mzk5MCcsJzE5MzA4Mjg2MTIxMDY1MScsJzE5MzA4Mjk4Nzg3NzMwNScsJzE5MzA4Mzk2Nzg3NzIwNycpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIkNodW9pIjoKICAgICAgICAgICAgICAgICRzdGljayA9IGFycmF5KCc0MjA3MTA3MjQ5NTM1NDcnLCc0MjA3MTAwNjgyODY5NDYnLCc0MjA3MTU3ODQ5NTMwNDEnLCc0MjA3MTA0MTQ5NTM1NzgnLCc0MjA3MTUyMzgyODY0MjknLCc0MjA3MTQ2MzE2MTk4MjMnLCc0MjA3MTU2MzQ5NTMwNTYnLCc0MjA3MTQ3NTQ5NTMxNDQnLCc0MjczMjEyNjc2MjU4MjYnLCc0MjA3MDkwMDQ5NTM3MTknLCc0MjA3MTQ4NjgyODY0NjYnLCc0MjA3MTUxMjE2MTk3NzQnLCc0MjA3MTYxMDE2MTk2NzYnLCc0MjA3MTYyODQ5NTI5OTEnLCc0MjA3MTY2MzQ5NTI5NTYnLCc0MjczMjAxNTA5NTkyNzEnLCc0MjczMjAzMjc2MjU5MjAnLCc0MjczMjA1MTA5NTkyMzUnLCc0MjczMjExNDQyOTI1MDUnLCc0MjczMjE3NTA5NTkxMTEnKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJVc2FneXV1dW4iOgogICAgICAgICAgICAgICAgJHN0aWNrID0gYXJyYXkoJzE4NDAwMjUwNTU1MDczOCcsJzE4NDAwMjc0NTU1MDcxNCcsJzE4NDAwMjkyMjIxNzM2MycsJzE4NDAwMzM0NTU1MDY1NCcsJzE4NDAyMzY1ODg4MTk1NicsJzE4NDAwMzQzODg4Mzk3OCcsJzE4NDU2ODQ0NTQ5NDE0NCcsJzE4NDU3MDYyNTQ5MzkyNicsJzE4NDU3MTAyMjE2MDU1MycsJzE4NDAyMzczNTU0ODYxNScsJzE4NDU2ODMxNTQ5NDE1NycsJzE4NDU3MTM2ODgyNzE4NScsJzE4NDU2ODY4MjE2MDc4NycsJzE4NDU2OTk1MjE2MDY2MCcsJzE4NDAwMzIxMjIxNzMzNCcsJzE4NDU3MDQ4ODgyNzI3MycsJzE4NDU3MDA4ODgyNzMxMycsJzE4NDU3MDE5ODgyNzMwMicsJzE4NDU3MDcyNTQ5MzkxNicsJzE4NDAyMjkzMjIxNTM2MicsJzE4NDU3MDg4NTQ5MzkwMCcsJzE4NDU3MTQ3NTQ5Mzg0MScsJzE4NDU3MTIwODgyNzIwMScsJzE4NDAwMjY1NTU1MDcyMycpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIk11Z3N5IjoKICAgICAgICAgICAgICAgICRzdGljayA9IGFycmF5KCczOTY0NDkxMzM4MzI1MjYnLCczOTY0NDkzMDcxNjU4NDInLCczOTY0NDkzMTM4MzI1MDgnLCczOTY0NDkxNDcxNjU4NTgnLCczOTY0NDkyMTA0OTkxODUnLCczOTY0NDkzMjcxNjU4NDAnLCczOTY0NDkzODA0OTkxNjgnLCczOTY0NDkxMjcxNjU4NjAnLCczOTY0NDkxMjA0OTkxOTQnLCczOTY0NDkyNjM4MzI1MTMnLCczOTY0NDkzOTA0OTkxNjcnLCczOTY0NDk0MjcxNjU4MzAnLCczOTY0NDkyMDM4MzI1MTknLCczOTY0NDkyMjA0OTkxODQnLCczOTY0NDkzNzA0OTkxNjknLCczOTY0NDkxOTM4MzI1MjAnKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJCZXRha2t1bWEyMCI6CiAgICAgICAgICAgICAgICAkc3RpY2sgPSBhcnJheSgnOTE5MjczOTgxNTU2NjUxJywnOTE5Mjc0MjExNTU2NjI4JywnOTE5Mjc0NTExNTU2NTk4JywnOTE5Mjc0NjU0ODg5OTE3JywnOTE5Mjc0NzcxNTU2NTcyJywnOTE5Mjc0ODY4MjIzMjI5JywnOTE5Mjc1MDExNTU2NTQ4JywnOTE5Mjc1OTY4MjIzMTE5JywnOTE5Mjc2MTgxNTU2NDMxJywnOTE5Mjg5ODk4MjIxNzI2JywnOTE5MjkwODI0ODg4MzAwJywnOTE5MjkxMzYxNTU0OTEzJywnOTE5MjkxNDY4MjIxNTY5JywnOTE5MjkxNjU0ODg4MjE3JywnOTE5MjkxNzUxNTU0ODc0JywnOTE5MjkxODkxNTU0ODYwJywnOTE5MjkyMDIxNTU0ODQ3JywnOTE5MjkyMTIxNTU0ODM3JywnOTE5MjkyMjI4MjIxNDkzJywnOTE5MjkyMjgxNTU0ODIxJywnOTE5MjkyNDA4MjIxNDc1JywnOTE5MjkyNDg4MjIxNDY3JywnOTE5MjkzNDY4MjIxMzY5JywnOTE5MjkzNTg0ODg4MDI0Jyk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiQmF0ZG9uZyI6CiAgICAgICAgICAgICAgICAkc3RpY2sgPSBhcnJheSgnMzY0Mzg0MDM3MDU4MjM1JywnMzY0Mzg0MTk3MDU4MjE5JywnMzY0Mzg0MTAzNzI0ODk1JywnMzY0Mzg0MDQ3MDU4MjM0JywnMzY0Mzg0MTQzNzI0ODkxJywnMzY0MzgzOTkzNzI0OTA2JywnMzY0MzgzOTgzNzI0OTA3JywnMzY0Mzg0MTIzNzI0ODkzJywnMzY0MzgzOTczNzI0OTA4JywnMzY0Mzg0MTEzNzI0ODk0JywnMzY0Mzg0MDkwMzkxNTYzJywnMzY0Mzg0MTUzNzI0ODkwJywnMzY0Mzg0MDU3MDU4MjMzJywnMzY0Mzg0MDE3MDU4MjM3JywnMzY0Mzg0MDAzNzI0OTA1JywnMzY0Mzg0MTg3MDU4MjIwJywnMzY0Mzg0MTc3MDU4MjIxJywnMzY0Mzg0MDc3MDU4MjMxJywnMzY0Mzg0MTY3MDU4MjIyJywnMzY0Mzg0MTMzNzI0ODkyJyk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiVHJvbmd0YWkiOgogICAgICAgICAgICAgICAgJHN0aWNrID0gYXJyYXkoJzI5ODU5Mjc5MDMyMDkyMCcsJzI5ODU5MjgwNjk4NzU4NScsJzI5ODU5MjgxNjk4NzU4NCcsJzI5ODU5MjgzMDMyMDkxNicsJzI5ODU5Mjg0MDMyMDkxNScsJzI5ODU5Mjg1MDMyMDkxNCcsJzI5ODU5Mjg2MzY1NDI0NicsJzI5ODU5Mjg3Njk4NzU3OCcsJzI5ODU5Mjg4Njk4NzU3NycsJzI5ODU5Mjg5Njk4NzU3NicsJzI5ODU5MjkxMDMyMDkwOCcsJzI5ODU5MjkyMzY1NDI0MCcsJzI5ODU5MjkzMzY1NDIzOScsJzI5ODU5Mjk0MzY1NDIzOCcsJzI5ODU5Mjk1MzY1NDIzNycsJzI5ODU5Mjk2MzY1NDIzNicpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIkVtdHJhaVlhbSI6CiAgICAgICAgICAgICAgICAkc3RpY2sgPSBhcnJheSgnMTU5ODMyMzI1MDQ4MDQ5NicsJzE1OTgzMjMxNzA0ODA1MDQnLCcxNTk4MzIzMzk3MTQ3MTQ4JywnMTc0ODc5Nzg3MjA5OTY5OScsJzE3NDg3OTc0MjIwOTk3NDQnLCcxNTk4MzI0MTEzODEzNzQzJywnMTU5ODMyMzg0MzgxMzc3MCcsJzE1OTgzMjQxOTA0ODA0MDInLCcxNTk4MzI0MzYwNDgwMzg1JywnMTc0ODc5NDA4MjEwMDA3OCcsJzE1OTgzMjY4MDM4MTM0NzQnLCcxNTk4MzI3NTQzODEzNDAwJywnMTU5ODMyNzA1MDQ4MDExNicsJzE1OTgzMjcyMjA0ODAwOTknLCcxNzQ4Nzk2ODI4NzY2NDcwJywnMTc0ODc5MzkyNTQzMzQyNycsJzE3NDg3OTQ2MjIxMDAwMjQnLCcxNTk4MzMyOTAzODEyODY0JywnMTU5ODMyNzMzNzE0Njc1NCcsJzE3NDg4MDg3MTg3NjUyODEnLCcxNTk4MzI3ODQzODEzMzcwJywnMTc0ODc5NzY5ODc2NjM4MycsJzE3NDg3OTgxNjU0MzMwMDMnLCcxNzQ4Nzk4NDQyMDk5NjQyJyk7CiAgICAgICAgICAgICAgICBicmVhazsgCiAgICAgICAgICAgIGNhc2UgIkR1bmNhbjEiOgogICAgICAgICAgICAgICAgJHN0aWNrID0gYXJyYXkoJzc4NTQyNDMwODI5NTU5MCcsJzc4NTQyNDMyODI5NTU4OCcsJzc4NTQyNDM0MTYyODkyMCcsJzc4NTQyNDM2NDk2MjI1MScsJzc4NTQyNDM4ODI5NTU4MicsJzc4NTQyNDQwMTYyODkxNCcsJzc4NTQyNDQxNDk2MjI0NicsJzc4NTQyNDQzMTYyODkxMScpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIlhpbmNoYW9jaG9uYXUiOgogICAgICAgICAgICAgICAgJHN0aWNrID0gYXJyYXkoJzc4OTM1NTIzNzgyMDA1NycsJzc4OTM1NTI1MTE1MzM4OScsJzc4OTM1NTQyNDQ4NjcwNScsJzc4OTM1NTExMTE1MzQwMycsJzc4OTM1NTE5NzgyMDA2MScsJzc4OTM1NTI3NzgyMDA1MycsJzc4OTM1NTMyNDQ4NjcxNScsJzc4OTM1NTM5NzgyMDA0MScsJzc4OTM1NTMxMTE1MzM4MycsJzc4OTM1NTM4NDQ4NjcwOScsJzc4OTM1NTIyNDQ4NjcyNScsJzc4OTM1NTE1NzgyMDA2NScsJzc4OTM1NTE0NDQ4NjczMycsJzc4OTM1NTQxMTE1MzM3MycsJzc4OTM1NTEzMTE1MzQwMScsJzc4OTM1NTM1NDQ4NjcxMicsJzc4OTM1NTIxMTE1MzM5MycsJzc4OTM1NTM0MTE1MzM4MCcsJzc4OTM1NTM3MTE1MzM3NycsJzc4OTM1NTQ0MTE1MzM3MCcpOwogICAgICAgICAgICAgICAgYnJlYWs7IAogICAgICAgICAgICBjYXNlICJOb29oaW4iOgogICAgICAgICAgICAgICAgJHN0aWNrID0gYXJyYXkoJzExOTMyNzU5MDc0Mzc5NjYnLCcxMTkzMjc1MTEwNzcxMzc5JywnMTM1NTQ1NDQ0NDU1MzQ0NCcsJzExOTMyNzgwNDc0Mzc3NTInLCcxMTkzMjc5NTI0MTA0MjcxJywnMTE5MzI3ODQzNDEwNDM4MCcsJzExOTMyNzc4NzQxMDQ0MzYnLCcxMTkzMjc3Mzc0MTA0NDg2JywnMTIxMTg4MzM0NTU3NzIyMicsJzExOTMyNzkyNjc0Mzc2MzAnLCcxMTkzMjgwNzIwNzcwODE4JywnMTE5NTgyNDQwMzg0OTc4MycsJzExOTMyODAzNTQxMDQxODgnLCcxMTkzMjc5Nzg3NDM3NTc4JywnMTE5MzI3NTM0MDc3MTM1NicsJzExOTMyODAxMTQxMDQyMTInKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJRb29CZWVBZ2FwaSI6CiAgICAgICAgICAgICAgICAkc3RpY2sgPSBhcnJheSgnMTc0NzA4MTEwNTYwMzE0MScsJzE3NDcwODE0NjU2MDMxMDUnLCcxNzQ3MDgyMjMyMjY5Njk1JywnMTc0NzA4Mjk0ODkzNjI5MCcsJzE3NDcwODM3MDIyNjk1NDgnLCcxNzQ3MDgzOTY4OTM2MTg4JywnMTc0NzA4NDU3MjI2OTQ2MScsJzE3NDcwODQ4MDIyNjk0MzgnLCcxNzQ3MDg1MzIyMjY5Mzg2JywnMTc0NzA5MjE4ODkzNTM2NicsJzE3NDcwODIwMzg5MzYzODEnLCcxNzQ3MDg1NzM1NjAyNjc4JywnMTc0NzA4NTk2MjI2OTMyMicsJzE3NDcwODY1ODIyNjkyNjAnLCcxNzQ3MDg3MTI4OTM1ODcyJywnMTc0NzA4NzgzNTYwMjQ2OCcsJzE3NDcwODg5ODIyNjkwMjAnLCcxNzQ3MDg5NDQ1NjAyMzA3JywnMTc0NzA5MDI0MjI2ODg5NCcsJzE3NDcwOTEwMjU2MDIxNDknKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJQaXlvbWFydWtob2loYWkiOgogICAgICAgICAgICAgICAgJHN0aWNrID0gYXJyYXkoJzM0NDM5NDY0OTI5MDA4MycsJzM0NDM5NDc2NTk1NjczOCcsJzM0NDM5NTg0NTk1NjYzMCcsJzM0NDM5NTM2NTk1NjY3OCcsJzM0NDM5NTUxMjYyMzMzMCcsJzM0NDM5NTk3MjYyMzI4NCcsJzM0NDQwMzc4MjYyMjUwMycsJzM0NDM5NjIzMjYyMzI1OCcsJzM0NDM5NjM0MjYyMzI0NycsJzM0NDQwMjc0OTI4OTI3MycsJzM0NDQwMzAzNTk1NTkxMScsJzM0NDM5NjA5NTk1NjYwNScsJzM0NDQwMzU5MjYyMjUyMicsJzM0NDQwMzE3MjYyMjU2NCcsJzM0NDQwMzMyMjYyMjU0OScsJzM0NDQwNDAxOTI4OTE0NicsJzM0NTQ0MDQzMjUxODgzOCcsJzM0NDQwNDM2OTI4OTExMScsJzM0NDQxMTc3NTk1NTAzNycsJzM0NDQwNjY3MjYyMjIxNCcsJzM0NDQwOTY4MjYyMTkxMycsJzM0NDQxMTAzNTk1NTExMScsJzM0NDM5NDUwNTk1Njc2NCcsJzM0NDQxMTI2MjYyMTc1NScpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIlJvc2F2dWl2ZSI6CiAgICAgICAgICAgICAgICAkc3RpY2sgPSBhcnJheSgnMjk1OTE4OTM3NTIyODUwJywnMjk1OTE5MDM0MTg5NTA3JywnMjk1OTE5MTU3NTIyODI4JywnMjk1OTE5MjA3NTIyODIzJywnMjk1OTE5MzE0MTg5NDc5JywnMjk1OTE5NDM3NTIyODAwJywnMjk1OTE5NTY3NTIyNzg3JywnMjk1OTE5NjUwODU2MTEyJywnMjk1OTIwMDE3NTIyNzQyJywnMjk1OTIwMTgwODU2MDU5JywnMjk1OTIwMjU3NTIyNzE4JywnMjk1OTIwNDA3NTIyNzAzJywnMjk1OTIwNTI0MTg5MzU4JywnMjk1OTIwNjIwODU2MDE1JywnMjk1OTIwODAwODU1OTk3JywnMjk1OTIwODc3NTIyNjU2Jyk7CiAgICAgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgCiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAkc3RpY2sgPSBhcnJheSgnMTkzMDgyOTg3ODc3MzA1JywnMTkzMDgyNzY3ODc3MzI3JywnMTkzMDgyODQxMjEwNjUzJywnMTkzMDgzMDcxMjEwNjMwJywnMTkzMDgzMDU3ODc3Mjk4JywnMTkzMDgzMTIxMjEwNjI1JywnMTkzMDgzMTA0NTQzOTYwJywnMTkzMDgzMDg3ODc3Mjk1JywnMTkzNzU0NzYxMTQzNDYxJywnMTkzMDgyOTQ0NTQzOTc2JywnMTkzMDgzMDMxMjEwNjM0JywnMTkzMDgzMDAxMjEwNjM3JywnMTkzMDgyOTE3ODc3MzEyJywnMTkzNzU0Nzc0NDc2NzkzJywnMTkzMDgyNzg0NTQzOTkyJywnMTkzMDgyOTMxMjEwNjQ0JywnMTkzMDgyODc0NTQzOTgzJywnMTkzMDgyOTc0NTQzOTczJywnMTkzMDgyODkxMjEwNjQ4JywnMTkzMDgzMDQ0NTQzOTY2JywnMTkzMDgyODI3ODc3MzIxJywnMTkzMDgyODA0NTQzOTkwJywnMTkzMDgyODYxMjEwNjUxJywnMTkzMDgyOTg3ODc3MzA1JywnMTkzMDgzOTY3ODc3MjA3Jyk7CiAgICAgICAgfQogICAgICAgICRjc3QgPSBjb3VudCgkc3RpY2spOwogICAgICAgICRzID0gcmFuZCgwLCgkY3N0LTEpKTsKICAgICAgICAkY29udGVudHN0aWNrcmVxdWVzdCA9ICImYXR0YWNobWVudF9pZD0iLiRzdGlja1skc107CiAgICB9CiAgICBpZigkdXJsaW1hZ2VjbXQgIT0gIk5vIil7CiAgICAgICAgJGNvbnRlbnRpbWFnZXJlcXVlc3QgPSAiJmF0dGFjaG1lbnRfdXJsPSIuJHVybGltYWdlY210OwogICAgfQogICAgJHRleHQgPSBzdHJfcmVwbGFjZSgiKCh0YWcpKSIsIkBbJGlkdGFnOjBdIiwkdGV4dCk7CiAgICAkdGV4dCA9IHVybGVuY29kZSgkdGV4dCk7CiAgICAkYSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCJodHRwczovL2dyYXBoLmZhY2Vib29rLmNvbS8kaWQvY29tbWVudHM/bWV0aG9kPXBvc3QmbWVzc2FnZT0iLiR0ZXh0LiRjb250ZW50c3RpY2tyZXF1ZXN0LiRjb250ZW50aW1hZ2VyZXF1ZXN0LiImYWNjZXNzX3Rva2VuPSIuJHRva2UpOwogICAgaWYoc3RycG9zKCRhLCciaWQiJykpewogICAgICAgIHJldHVybiB0cnVlOwogICAgfWVsc2V7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQp9CmZ1bmN0aW9uIHh1bHl0ZXh0KCR0ZXh0MSl7CiAgICAkdGV4dCA9IGV4cGxvZGUoInsiLCR0ZXh0MSk7CiAgICAka2V0cXVhID0nJzsKICAgICRrZXRxdWEgLj0gJHRleHRbMF07IAogICAgJGEgPSBhcnJheSgpOwogICAgJGIgPSBhcnJheSgpOwogICAgJGN0ID0gY291bnQoJHRleHQpOwogICAgZm9yKCRpPTE7JGk8JGN0OyRpKyspewogICAgJGExID0gZXhwbG9kZSgnfScsJHRleHRbJGldKTsKICAgICRiW10gPSAkYTFbMV07CiAgICAkYVtdID0gJGExWzBdOwogICAgfQogICAgJGNhID0gY291bnQoJGEpOwogICAgJGNiID0gY291bnQoJGIpOwogICAgCiAgICBmb3IoJGk9MDskaTwkY2I7JGkrKyl7CiAgICAgICAgJGExID0gZXhwbG9kZSgnfCcsJGFbJGldKTsKICAgICAgICAkcmFuID0gcmFuZCgwLChjb3VudCgkYTEpLTEpKTsKICAgICAgICAka2V0cXVhIC49ICRhMVskcmFuXS4kYlskaV07CiAgICB9CiAgICByZXR1cm4gJGtldHF1YTsKfQpmdW5jdGlvbiByYW5kcmVhY3Rpb25zKCRkYXRhKXsKICAgICRkYXRhID0gZXhwbG9kZSgnfCcsJGRhdGEpOwogICAgJGNkID0gY291bnQoJGRhdGEpOwogICAgJHIgPSByYW5kKDAsJGNkLTEpOwogICAgcmV0dXJuICRkYXRhWyRyXTsKfQpmdW5jdGlvbiBnZXRkYXRhdG9rZW4oJGxpbWl0LCRzdil7CiAgICAgIGdsb2JhbCAkY29ubjsKICAgICAgJG5vd3MgPSBzdHJ0b3RpbWUoZGF0ZSgnWS1tLWQgSDppOnMnKSk7CiAgICAgIC8vJG5vd0hpID0gZGF0ZSgiSDppOnMiKTsKICAgICAgJHJlc3VsdCA9IG15c3FsaV9xdWVyeSgkY29ubiwgIlNFTEVDVCAqIEZST00gYG5ld2ZlZWRib3RyZWFjdGlvbmAgV0hFUkUgJyRub3dzJy1gY3JlYXRlZF90aW1lYD5gc2xlZXBgIEFORCBgc3ZgPSckc3YnIExJTUlUICRsaW1pdCIpOwogICAgICAka3EgPSBhcnJheSgpOwogICAgICB3aGlsZSAoJHJvdyA9ICRyZXN1bHQtPmZldGNoX2Fzc29jKCkpewogICAgICAgICAgJHRva2VuID0gJHJvd1sndG9rZW4nXTsKICAgICAgICAgICRpZCA9ICRyb3dbJ3VpZCddOwogICAgICAgICAgLy8kaWRib3QgPSAkcm93WydpZGJvdCddOwogICAgICAgICAgLy8kbWF4cmVhY3Rpb24gPSAkcm93WydtYXhyZWFjdGlvbiddOwogICAgICAgICAgJHR5cGUgPSAkcm93Wyd0eXBlJ107CiAgICAgICAgICAkaWRzdHQgPSAkcm93WydpZHN0dCddOwogICAgICAgICAgJHVzZXJhZGQgPSAkcm93Wyd1c2VyYWRkJ107CiAgICAgICAgLy8gICAkcmVhY3Rpb24gPSAkcm93WydyZWFjdGlvbiddOwogICAgICAgIC8vICAgJGNvbW1lbnQgPSAkcm93Wydjb21tZW50J107CiAgICAgICAgLy8gICAkY29udGVudGNtdCA9ICRyb3dbJ2NvbnRlbnRjbXQnXTsKICAgICAgICAvLyAgICRtYXhjbXQgPSAkcm93WydtYXhjb21tZW50J107CiAgICAgICAgLy8gICAkdXJsaW1hZ2VjbXQgPSAkcm93Wyd1cmxpbWFnZWNtdCddOwogICAgICAgIC8vICAgJHBhY2tzdGlja2VyID0gJHJvd1sncGFja3N0aWNrZXInXTsKICAgICAgICAvLyAgICR1c2VyYWRkID0gJHJvd1snYWRkYnknXTsKICAgICAgICAvLyAgICRvbmx5aWQgPSAkcm93Wydvbmx5aWQnXTsKICAgICAgICAvLyAgICRzbGVlcGFmdGVyID0gJHJvd1snc2xlZXBhZnRlciddOwogICAgICAgICAgJGtxW10gPSBhcnJheSgndG9rZW4nPT4kdG9rZW4sJ2lkJz0+JGlkLCd0eXBlJz0+JHR5cGUsJ2lkc3R0Jz0+JGlkc3R0LCd1c2VyYWRkJz0+JHVzZXJhZGQpOwogICAgICAgICAgdXBkYXRldGltZXVwZGF0ZSgkaWQsJG5vd3MpOwogICAgICB9CiAgICByZXR1cm4gJGtxOyAKfQoKZnVuY3Rpb24gdXBkYXRldGltZXVwZGF0ZSgkdWlkLCRub3dzKXsKICAgICAgZ2xvYmFsICRjb25uOwogICAgICBteXNxbGlfcXVlcnkoJGNvbm4sICJVUERBVEUgYGJvdHJlYWN0aW9uYCBTRVQgYHRpbWV1cGRhdGVgPSckbm93cycgV0hFUkUgYHVpZGA9JyR1aWQnIik7ICAgIAp9CmZ1bmN0aW9uIGFkZGhpc3Rvcnlib3QoJHVpZCwkdHlwZSwkc3RhdHVzLCR1c2VyYWRkKXsKICAgICAgZ2xvYmFsICRjb25uOwogICAgICAkbm93cyA9IHN0cnRvdGltZShkYXRlKCdZLW0tZCBIOmk6cycpKTsKICAgICAgbXlzcWxpX3F1ZXJ5KCRjb25uLCAiSU5TRVJUIElOVE8gYGhpc3Rvcnlib3RgKGB1aWRgLCBgc3RhdHVzYCwgYHRpbWVgLGB1c2VyYWRkYCxgdHlwZWApIFZBTFVFUyAoJyR1aWQnLCckc3RhdHVzJywnJG5vd3MnLCckdXNlcmFkZCcsJyR0eXBlJykiKTsgICAgCn0KZnVuY3Rpb24gdXBkYXRldG90YWxhdXRvKCR1aWQsJGNvdW50KXsKICAgICAgZ2xvYmFsICRjb25uOwogICAgICBteXNxbGlfcXVlcnkoJGNvbm4sICJVUERBVEUgYGJvdHJlYWN0aW9uYCBTRVQgYGF1dG90b2RheWA9IChTRUxFQ1QgYGF1dG90b2RheWApICsgJGNvdW50ICxgdG90YWxhdXRvYD0gKFNFTEVDVCBgdG90YWxhdXRvYCkgKyAkY291bnQgV0hFUkUgYHVpZGA9JyR1aWQnIik7ICAgIAp9CmZ1bmN0aW9uIHVwZGF0ZXRvdGFsYXV0b2NtdCgkdWlkLCRjb3VudCl7CiAgICAgIGdsb2JhbCAkY29ubjsKICAgICAgbXlzcWxpX3F1ZXJ5KCRjb25uLCAiVVBEQVRFIGBib3RyZWFjdGlvbmAgU0VUIGBhdXRvY210dG9kYXlgPSAoU0VMRUNUIGBhdXRvY210dG9kYXlgKSArICRjb3VudCAsYHRvdGFsY210YD0gKFNFTEVDVCBgdG90YWxjbXRgKSArICRjb3VudCBXSEVSRSBgdWlkYD0nJHVpZCciKTsgICAgCn0KZnVuY3Rpb24gdXBkYXRlbGl2ZSgkdWlkLCRzdGF0dXMsJG1lc3MpewogICAgICBnbG9iYWwgJGNvbm47CiAgICAgIG15c3FsaV9xdWVyeSgkY29ubiwgIlVQREFURSBgYm90cmVhY3Rpb25gIFNFVCBgbGl2ZWA9JyRzdGF0dXMnLGBzdGF0dXNgPSckbWVzcycgV0hFUkUgYHVpZGA9JyR1aWQnIik7ICAgIAp9CmZ1bmN0aW9uIGFkZG5ld2ZlZWRib3RyZWFjdGlvbigkdG9rZW4sJGlkc3R0LCR1aWQsJHR5cGUsJGNyZWF0ZWRfdGltZSwkc2xlZXBhZnRlcil7CiAgICAgIGdsb2JhbCAkY29ubjsKICAgICAgbXlzcWxpX3F1ZXJ5KCRjb25uLCAiSU5TRVJUIElOVE8gYG5ld2ZlZWRib3RyZWFjdGlvbmAoYGlkc3R0YCwgYHRva2VuYCwgYHR5cGVgLCBgY3JlYXRlZF90aW1lYCwgYHNsZWVwYCxgdWlkYCkgVkFMVUVTICgnJGlkc3R0JywnJHRva2VuJywnJHR5cGUnLCckY3JlYXRlZF90aW1lJywnJHNsZWVwYWZ0ZXInLCckdWlkJykiKTsgICAgCn0KZnVuY3Rpb24gZGVsZXRlbmV3ZmVlZGJvdHJlYWN0aW9uKCRpZHN0dCl7CiAgICAgIGdsb2JhbCAkY29ubjsKICAgICAgbXlzcWxpX3F1ZXJ5KCRjb25uLCAiREVMRVRFIEZST00gYG5ld2ZlZWRib3RyZWFjdGlvbmAgV0hFUkUgYGlkc3R0YD0nJGlkc3R0JyIpOyAgICAKfQpmdW5jdGlvbiBzZW5kbm90aSgkaWQsJHRleHQpewogICAgJHRleHQgPSB1cmxlbmNvZGUoJHRleHQpOwogICAgZ2xvYmFsICRib3RpZDsKICAgIGdsb2JhbCAkYmxvY2tpZDsKICAgIGdsb2JhbCAkVE9LRU5DSEFURlVFTDsKICAgICRhcGlfdXJsID0gImh0dHBzOi8vYXBpLmNoYXRmdWVsLmNvbS9ib3RzLyRib3RpZC91c2Vycy8kaWQvc2VuZD9jaGF0ZnVlbF90b2tlbj0kVE9LRU5DSEFURlVFTCZjaGF0ZnVlbF9ibG9ja19pZD0kYmxvY2tpZCZub3RpPSR0ZXh0IjsKICAgICRjaCA9IGN1cmxfaW5pdCgpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgJGFwaV91cmwpOyAKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IRUFERVIsIGZhbHNlKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgdHJ1ZSk7IAogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1QsIHRydWUpOyAKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IVFRQSEVBREVSLCBhcnJheSgnQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uJykpOwogICAgJHJlc3BvbnNlID0gY3VybF9leGVjKCRjaCk7IAogICAgY3VybF9jbG9zZSgkY2gpOyAKICAgIHJldHVybiAkcmVzcG9uc2U7Cn0gPz4="));
Function Calls
| base64_decode | 1 |
Stats
| MD5 | 58d247409fc62667d8dc55d181d5f0eb |
| Eval Count | 1 |
| Decode Time | 106 ms |