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('PD9waHANCg0KcmVxdWlyZV9vbmNlICdsaWIvVGVhbVNwZWFrMy9UZWFtU3B..
Decoded Output download
?>b'<?php
require_once \'lib/TeamSpeak3/TeamSpeak3.php\';
require_once \'cfg/config.php\';
require_once \'inc/functions.php\';
require_once \'inc/core.php\';
TeamSpeak3::init();
$last_info;
$last_check = time();
$in_timeout_check = false;
$doubleECheck = 0;
echo "
";
echo "| Welcome! This bot have been created by TheTrueElektro |
";
echo "| THIS IS NOT A RELASE!! This bot could contain bugs |
";
echo "| Please send requests/suggestions/bugs to my e-mail |
";
echo "| [email protected] |
";
try
{
// Init the connection announcement
printl("Start Connecting..");
// Events
TeamSpeak3_Helper_Signal::getInstance()->subscribe(\'serverqueryConnected\', \'onConnect\');
TeamSpeak3_Helper_Signal::getInstance()->subscribe(\'serverqueryWaitTimeout\', \'onTimeout\');
TeamSpeak3_Helper_Signal::getInstance()->subscribe(\'notifyLogin\', \'onLogin\');
TeamSpeak3_Helper_Signal::getInstance()->subscribe(\'notifyEvent\', \'onEvent\');
TeamSpeak3_Helper_Signal::getInstance()->subscribe(\'notifyServerselected\', \'onSelect\');
$uri = "serverquery://" . $srv_cfg[\'q_user\'] . ":" . $srv_cfg[\'q_pass\']
. "@" . $srv_cfg[\'s_address\'] . ":" . $srv_cfg[\'q_port\']
. "/?server_port=" . $srv_cfg[\'s_port\']
. "&nickname=" . $cfg[\'bot_nickname\']
. "&blocking=0";
// Connecting
$srv = TeamSpeak3::factory($uri);
// Echo the connection informations.
printl("Connected on ".$srv_cfg[\'s_address\'].":".$srv_cfg[\'q_port\'].". Query user is ".$srv_cfg[\'q_user\']." on port ".$srv_cfg[\'q_port\']);
$srv->logAdd($cfg[\'onconnect_log_msg\']);
// If set, switching to default channel.
if ($cfg[\'bot_default_channel_id\'] != "")
{
$bot_id = (int) $srv->whoamiGet("client_id");
$srv->clientMove($bot_id, $cfg[\'bot_default_channel_id\'], $cfg[\'bot_default_channel_pass\']);
printl("Switched to default channel (id=" . $cfg[\'bot_default_channel_id\'] . ")");
}
// Ready for actions
printl("All good! waiting now for event or command..");
}
catch (Exception $e)
{
die("
FATAL ERROR Bot Connection Exception: " . $e->getMessage() . "
INFO Stopping now..
");
}
// Keep the Bot watching for infos..
while (1) {
try { $srv->getAdapter()->wait(); }
catch (Exception $e) { die ("
FATAL ERROR Connection Timeout: " . $e->getMessage() . "
"); }
}
// ====== [ CALLBACKS FUNCTIONS ] ====== //
function onConnect(TeamSpeak3_Adapter_ServerQuery $adapter)
{
printl("Server is running with version " . $adapter->getHost()->version(\'version\') . " on " . $adapter->getHost()->version(\'platform\'));
}
function onLogin(TeamSpeak3_Node_Host $host)
{
printl("Authenticated as user \"".$host->whoamiGet(\'client_login_name\')."\"");
}
function onTimeout($seconds, TeamSpeak3_Adapter_ServerQuery $adapter)
{
global $cfg, $srv, $last_check, $in_timeout_check;
if(floor(time() - $last_check) >= $cfg[\'anti_timeout\'])
{
$last_check = time();
if(!empty($cfg[\'hooks\'][\'onTimeout\']))
foreach($cfg[\'hooks\'][\'onTimeout\'] as $hook)
{
if($in_timeout_check)
{
printl("onTimeout - Already in Timeout Hook exiting this loop");
break;
}
$in_timeout_check = true;
printl("onTimeout - Starting Hook - ".$hook);
$hook();
$in_timeout_check = false;
}
}
if($adapter->getQueryLastTimestamp() < time()-300)
{
printl("Sending keep-alive command");
$adapter->request(\'clientupdate\');
}
}
function onEvent(TeamSpeak3_Adapter_ServerQuery_Event $event, TeamSpeak3_Node_Host $host)
{
global $cfg, $srv, $doubleECheck;
try
{
if ($doubleECheck == 0)
{
$doubleECheck = 1;
$type = $event->getType();
$data = $event->getData();
if (($type == \'textmessage\') && ($srv->whoamiGet(\'client_login_name\') != $data[\'invokername\']))
onTextMessage($event);
elseif($type == \'clientmoved\' && $cfg[\'modules\'][\'sub_channel\'][\'enabled\'] == true)
onClientMoved($event);
elseif($type == \'cliententerview\' && $cfg[\'modules\'][\'welcome_pm\'][\'enabled\'] == true && ($srv->whoamiGet(\'client_login_name\') != $data[\'client_nickname\']))
onEnteredView($event);
else
printl("Notification: ".$type.": ".$event->getMessage()."
");
unset($type, $data, $event, $host);
}
else
$doubleECheck = 0;
}
catch (Exception $e)
{
printl("An event were not treaten correctly: ".$e->getMessage(), \'warn\', "
");
}
}
function onClientMoved(TeamSpeak3_Adapter_ServerQuery_Event $e)
{
global $srv, $cfg;
$data = $e->getData();
printl("onMoved Check Begins");
//plugin_ChannelNotify($e);
plugin_SGonChannelJoin($e);
plugin_SubChannels($e);
}
function onTextMessage(TeamSpeak3_Adapter_ServerQuery_Event $e)
{
global $srv;
$info = $e->getData();
// Print info
switch ($info["targetmode"]) {
case 1:
printl("New Private Message from " . $info["invokername"]->toString() . ": " . $info["msg"], \'info\', "
");
break;
case 2:
printl("New Message from " . $info["invokername"]->toString() . " in Channel " . $srv->channelGetById($srv->whoamiGet("client_channel_id"))->toString() . ": " . $info["msg"], \'info\', "
");
break;
case 3:
printl("New Server Message from " . $info["invokername"]->toString() . ": " . $info["msg"], \'info\', "
");
break;
}
// If it\'s a command, we call the function in Core.php
if (substr($info["msg"], 0, 1) === \'!\')
{
printl("Message from " . $info["invokername"]->toString() . " is a command.");
core_BotCommands($e);
}
}
function onEnteredView(TeamSpeak3_Adapter_ServerQuery_Event $e)
{
printl("onEnteredView Check Begins");
plugin_WelcomePm($e);
}
function onSelect(TeamSpeak3_Node_Host $host)
{
printl("Selected virtual server Id ".$host->serverSelectedId());
$host->serverGetSelected()->notifyRegister(\'server\');
$host->serverGetSelected()->notifyRegister(\'channel\');
$host->serverGetSelected()->notifyRegister(\'textserver\');
$host->serverGetSelected()->notifyRegister(\'textchannel\');
$host->serverGetSelected()->notifyRegister(\'textprivate\');
}
?>
'<?
Did this file decode correctly?
Original Code
<?php eval("?>".base64_decode('PD9waHANCg0KcmVxdWlyZV9vbmNlICdsaWIvVGVhbVNwZWFrMy9UZWFtU3BlYWszLnBocCc7DQpyZXF1aXJlX29uY2UgJ2NmZy9jb25maWcucGhwJzsNCnJlcXVpcmVfb25jZSAnaW5jL2Z1bmN0aW9ucy5waHAnOw0KcmVxdWlyZV9vbmNlICdpbmMvY29yZS5waHAnOw0KDQpUZWFtU3BlYWszOjppbml0KCk7DQoNCiRsYXN0X2luZm87DQokbGFzdF9jaGVjayA9IHRpbWUoKTsNCiRpbl90aW1lb3V0X2NoZWNrID0gZmFsc2U7DQokZG91YmxlRUNoZWNrID0gMDsNCg0KDQplY2hvICJcblxuIjsNCmVjaG8gIuKAouKAouKAonwgIFdlbGNvbWUhIFRoaXMgYm90IGhhdmUgYmVlbiBjcmVhdGVkIGJ5IFRoZVRydWVFbGVrdHJvICB84oCi4oCi4oCiXG4iOw0KZWNobyAi4oCi4oCi4oCifCAgIFRISVMgSVMgTk9UIEEgUkVMQVNFISEgVGhpcyBib3QgY291bGQgY29udGFpbiBidWdzICAgIHzigKLigKLigKJcbiI7DQplY2hvICLigKLigKLigKJ8ICAgUGxlYXNlIHNlbmQgcmVxdWVzdHMvc3VnZ2VzdGlvbnMvYnVncyB0byBteSBlLW1haWwgICAgfOKAouKAouKAolxuIjsNCmVjaG8gIuKAouKAouKAonwgICAgICAgICAgICBjb250YWN0LnRoZXRydWVlbGVrdHJvQGdtYWlsLmNvbSAgICAgICAgICAgICB84oCi4oCi4oCiXG5cbiI7DQoNCnRyeQ0Kew0KICAvLyBJbml0IHRoZSBjb25uZWN0aW9uIGFubm91bmNlbWVudA0KICBwcmludGwoIlN0YXJ0IENvbm5lY3RpbmcuLiIpOw0KDQogIC8vIEV2ZW50cw0KICBUZWFtU3BlYWszX0hlbHBlcl9TaWduYWw6OmdldEluc3RhbmNlKCktPnN1YnNjcmliZSgnc2VydmVycXVlcnlDb25uZWN0ZWQnLCAnb25Db25uZWN0Jyk7DQogIFRlYW1TcGVhazNfSGVscGVyX1NpZ25hbDo6Z2V0SW5zdGFuY2UoKS0+c3Vic2NyaWJlKCdzZXJ2ZXJxdWVyeVdhaXRUaW1lb3V0JywgJ29uVGltZW91dCcpOw0KICBUZWFtU3BlYWszX0hlbHBlcl9TaWduYWw6OmdldEluc3RhbmNlKCktPnN1YnNjcmliZSgnbm90aWZ5TG9naW4nLCAnb25Mb2dpbicpOw0KICBUZWFtU3BlYWszX0hlbHBlcl9TaWduYWw6OmdldEluc3RhbmNlKCktPnN1YnNjcmliZSgnbm90aWZ5RXZlbnQnLCAnb25FdmVudCcpOw0KICBUZWFtU3BlYWszX0hlbHBlcl9TaWduYWw6OmdldEluc3RhbmNlKCktPnN1YnNjcmliZSgnbm90aWZ5U2VydmVyc2VsZWN0ZWQnLCAnb25TZWxlY3QnKTsNCg0KICAkdXJpID0gInNlcnZlcnF1ZXJ5Oi8vIiAuICRzcnZfY2ZnWydxX3VzZXInXSAuICI6IiAuICRzcnZfY2ZnWydxX3Bhc3MnXQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAuICJAIiAuICRzcnZfY2ZnWydzX2FkZHJlc3MnXSAuICI6IiAuICRzcnZfY2ZnWydxX3BvcnQnXQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAuICIvP3NlcnZlcl9wb3J0PSIgLiAkc3J2X2NmZ1snc19wb3J0J10NCiAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiJm5pY2tuYW1lPSIgLiAkY2ZnWydib3Rfbmlja25hbWUnXQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAuICImYmxvY2tpbmc9MCI7DQoNCiAgLy8gQ29ubmVjdGluZw0KICAkc3J2ID0gVGVhbVNwZWFrMzo6ZmFjdG9yeSgkdXJpKTsNCg0KDQogIC8vIEVjaG8gdGhlIGNvbm5lY3Rpb24gaW5mb3JtYXRpb25zLg0KICBwcmludGwoIkNvbm5lY3RlZCBvbiAiLiRzcnZfY2ZnWydzX2FkZHJlc3MnXS4iOiIuJHNydl9jZmdbJ3FfcG9ydCddLiIuIFF1ZXJ5IHVzZXIgaXMgIi4kc3J2X2NmZ1sncV91c2VyJ10uIiBvbiBwb3J0ICIuJHNydl9jZmdbJ3FfcG9ydCddKTsNCiAgJHNydi0+bG9nQWRkKCRjZmdbJ29uY29ubmVjdF9sb2dfbXNnJ10pOw0KDQogIC8vIElmIHNldCwgc3dpdGNoaW5nIHRvIGRlZmF1bHQgY2hhbm5lbC4NCiAgaWYgKCRjZmdbJ2JvdF9kZWZhdWx0X2NoYW5uZWxfaWQnXSAhPSAiIikNCiAgew0KICAgICRib3RfaWQgPSAoaW50KSAkc3J2LT53aG9hbWlHZXQoImNsaWVudF9pZCIpOw0KICAgICRzcnYtPmNsaWVudE1vdmUoJGJvdF9pZCwgJGNmZ1snYm90X2RlZmF1bHRfY2hhbm5lbF9pZCddLCAkY2ZnWydib3RfZGVmYXVsdF9jaGFubmVsX3Bhc3MnXSk7DQogICAgcHJpbnRsKCJTd2l0Y2hlZCB0byBkZWZhdWx0IGNoYW5uZWwgKGlkPSIgLiAkY2ZnWydib3RfZGVmYXVsdF9jaGFubmVsX2lkJ10gLiAiKSIpOw0KICB9DQoNCiAgLy8gUmVhZHkgZm9yIGFjdGlvbnMNCiAgcHJpbnRsKCJBbGwgZ29vZCEgd2FpdGluZyBub3cgZm9yIGV2ZW50IG9yIGNvbW1hbmQuLiIpOw0KfQ0KY2F0Y2ggKEV4Y2VwdGlvbiAkZSkNCnsNCiAgZGllKCJcbuKAouKAoiBGQVRBTCBFUlJPUiDigKLigKIgIOKGkiAgQm90IENvbm5lY3Rpb24gRXhjZXB0aW9uOiAiIC4gJGUtPmdldE1lc3NhZ2UoKSAuICJcbuKAouKAoiBJTkZPIOKAouKAoiAg4oaSICBTdG9wcGluZyBub3cuLlxuXG4iKTsNCn0NCg0KDQovLyBLZWVwIHRoZSBCb3Qgd2F0Y2hpbmcgZm9yIGluZm9zLi4NCndoaWxlICgxKSB7DQogICAgdHJ5ICAgICAgICAgICAgICAgICAgIHsgJHNydi0+Z2V0QWRhcHRlcigpLT53YWl0KCk7IH0NCiAgICBjYXRjaCAoRXhjZXB0aW9uICRlKSAgeyBkaWUgKCJcbuKAouKAoiBGQVRBTCBFUlJPUiDigKLigKIgIOKGkiAgQ29ubmVjdGlvbiBUaW1lb3V0OiDihpIgIiAuICRlLT5nZXRNZXNzYWdlKCkgLiAiXG4iKTsgfQ0KfQ0KDQoNCg0KDQovLyA9PT09PT0gWyBDQUxMQkFDS1MgRlVOQ1RJT05TIF0gPT09PT09IC8vDQoNCg0KDQoNCmZ1bmN0aW9uIG9uQ29ubmVjdChUZWFtU3BlYWszX0FkYXB0ZXJfU2VydmVyUXVlcnkgJGFkYXB0ZXIpDQp7DQoJcHJpbnRsKCJTZXJ2ZXIgaXMgcnVubmluZyB3aXRoIHZlcnNpb24gIiAuICRhZGFwdGVyLT5nZXRIb3N0KCktPnZlcnNpb24oJ3ZlcnNpb24nKSAuICIgb24gIiAuICRhZGFwdGVyLT5nZXRIb3N0KCktPnZlcnNpb24oJ3BsYXRmb3JtJykpOw0KfQ0KDQoNCmZ1bmN0aW9uIG9uTG9naW4oVGVhbVNwZWFrM19Ob2RlX0hvc3QgJGhvc3QpDQp7DQoJcHJpbnRsKCJBdXRoZW50aWNhdGVkIGFzIHVzZXIgXCIiLiRob3N0LT53aG9hbWlHZXQoJ2NsaWVudF9sb2dpbl9uYW1lJykuIlwiIik7DQp9DQoNCg0KZnVuY3Rpb24gb25UaW1lb3V0KCRzZWNvbmRzLCBUZWFtU3BlYWszX0FkYXB0ZXJfU2VydmVyUXVlcnkgJGFkYXB0ZXIpDQp7DQoJZ2xvYmFsICRjZmcsICRzcnYsICRsYXN0X2NoZWNrLCAkaW5fdGltZW91dF9jaGVjazsNCglpZihmbG9vcih0aW1lKCkgLSAkbGFzdF9jaGVjaykgPj0gJGNmZ1snYW50aV90aW1lb3V0J10pDQoJew0KCQkkbGFzdF9jaGVjayA9IHRpbWUoKTsNCgkJaWYoIWVtcHR5KCRjZmdbJ2hvb2tzJ11bJ29uVGltZW91dCddKSkNCgkJCWZvcmVhY2goJGNmZ1snaG9va3MnXVsnb25UaW1lb3V0J10gYXMgJGhvb2spDQoJCQl7DQoJCQkJaWYoJGluX3RpbWVvdXRfY2hlY2spDQoJCQkJew0KICAgICAgICAgIHByaW50bCgib25UaW1lb3V0IC0gQWxyZWFkeSBpbiBUaW1lb3V0IEhvb2sgZXhpdGluZyB0aGlzIGxvb3AiKTsNCgkJCQkJYnJlYWs7DQoJCQkJfQ0KCQkJCSRpbl90aW1lb3V0X2NoZWNrID0gdHJ1ZTsNCiAgICAgICAgcHJpbnRsKCJvblRpbWVvdXQgLSBTdGFydGluZyBIb29rIC0gIi4kaG9vayk7DQoJCQkJJGhvb2soKTsNCgkJCQkkaW5fdGltZW91dF9jaGVjayA9IGZhbHNlOw0KCQkJfQ0KCX0NCglpZigkYWRhcHRlci0+Z2V0UXVlcnlMYXN0VGltZXN0YW1wKCkgPCB0aW1lKCktMzAwKQ0KCXsNCgkJcHJpbnRsKCJTZW5kaW5nIGtlZXAtYWxpdmUgY29tbWFuZCIpOw0KCQkkYWRhcHRlci0+cmVxdWVzdCgnY2xpZW50dXBkYXRlJyk7DQoJfQ0KfQ0KDQoNCmZ1bmN0aW9uIG9uRXZlbnQoVGVhbVNwZWFrM19BZGFwdGVyX1NlcnZlclF1ZXJ5X0V2ZW50ICRldmVudCwgVGVhbVNwZWFrM19Ob2RlX0hvc3QgJGhvc3QpDQp7DQoJZ2xvYmFsICRjZmcsICRzcnYsICRkb3VibGVFQ2hlY2s7DQoNCiAgdHJ5DQogIHsNCiAgICBpZiAoJGRvdWJsZUVDaGVjayA9PSAwKQ0KICAJew0KICAgICAgJGRvdWJsZUVDaGVjayA9IDE7DQogIAkJJHR5cGUgPSAkZXZlbnQtPmdldFR5cGUoKTsNCiAgCQkkZGF0YSA9ICRldmVudC0+Z2V0RGF0YSgpOw0KDQogIAkJaWYgKCgkdHlwZSA9PSAndGV4dG1lc3NhZ2UnKSAmJiAoJHNydi0+d2hvYW1pR2V0KCdjbGllbnRfbG9naW5fbmFtZScpICE9ICRkYXRhWydpbnZva2VybmFtZSddKSkNCiAgICAgICAgb25UZXh0TWVzc2FnZSgkZXZlbnQpOw0KICAJCWVsc2VpZigkdHlwZSA9PSAnY2xpZW50bW92ZWQnICYmICRjZmdbJ21vZHVsZXMnXVsnc3ViX2NoYW5uZWwnXVsnZW5hYmxlZCddID09IHRydWUpDQogIAkJCW9uQ2xpZW50TW92ZWQoJGV2ZW50KTsNCiAgICAgIGVsc2VpZigkdHlwZSA9PSAnY2xpZW50ZW50ZXJ2aWV3JyAmJiAkY2ZnWydtb2R1bGVzJ11bJ3dlbGNvbWVfcG0nXVsnZW5hYmxlZCddID09IHRydWUgJiYgKCRzcnYtPndob2FtaUdldCgnY2xpZW50X2xvZ2luX25hbWUnKSAhPSAkZGF0YVsnY2xpZW50X25pY2tuYW1lJ10pKQ0KICAgICAgICBvbkVudGVyZWRWaWV3KCRldmVudCk7DQogICAgICBlbHNlDQogICAgICAgIHByaW50bCgiTm90aWZpY2F0aW9uOiAiLiR0eXBlLiI6ICIuJGV2ZW50LT5nZXRNZXNzYWdlKCkuIlxuIik7DQoNCiAgICAgIHVuc2V0KCR0eXBlLCAkZGF0YSwgJGV2ZW50LCAkaG9zdCk7DQogIAl9DQogIAllbHNlDQogIAkJJGRvdWJsZUVDaGVjayA9IDA7DQogIH0NCiAgY2F0Y2ggKEV4Y2VwdGlvbiAkZSkNCiAgew0KICAgIHByaW50bCgiQW4gZXZlbnQgd2VyZSBub3QgdHJlYXRlbiBjb3JyZWN0bHk6ICIuJGUtPmdldE1lc3NhZ2UoKSwgJ3dhcm4nLCAiXG4iKTsNCiAgfQ0KfQ0KDQoNCmZ1bmN0aW9uIG9uQ2xpZW50TW92ZWQoVGVhbVNwZWFrM19BZGFwdGVyX1NlcnZlclF1ZXJ5X0V2ZW50ICRlKQ0Kew0KICBnbG9iYWwgJHNydiwgJGNmZzsNCiAgJGRhdGEgPSAkZS0+Z2V0RGF0YSgpOw0KCXByaW50bCgib25Nb3ZlZCBDaGVjayBCZWdpbnMiKTsNCg0KICAvL3BsdWdpbl9DaGFubmVsTm90aWZ5KCRlKTsNCiAgcGx1Z2luX1NHb25DaGFubmVsSm9pbigkZSk7DQogIHBsdWdpbl9TdWJDaGFubmVscygkZSk7DQp9DQoNCg0KZnVuY3Rpb24gb25UZXh0TWVzc2FnZShUZWFtU3BlYWszX0FkYXB0ZXJfU2VydmVyUXVlcnlfRXZlbnQgJGUpDQp7DQogIGdsb2JhbCAkc3J2Ow0KICAkaW5mbyAgID0gJGUtPmdldERhdGEoKTsNCg0KICAvLyBQcmludCBpbmZvDQogIHN3aXRjaCAoJGluZm9bInRhcmdldG1vZGUiXSkgew0KICAgICAgY2FzZSAxOg0KICAgICAgICAgIHByaW50bCgiTmV3IFByaXZhdGUgTWVzc2FnZSBmcm9tICIgLiAkaW5mb1siaW52b2tlcm5hbWUiXS0+dG9TdHJpbmcoKSAuICI6ICIgLiAkaW5mb1sibXNnIl0sICdpbmZvJywgIlxuIik7DQogICAgICAgICAgYnJlYWs7DQogICAgICBjYXNlIDI6DQogICAgICAgICAgcHJpbnRsKCJOZXcgTWVzc2FnZSBmcm9tICIgLiAkaW5mb1siaW52b2tlcm5hbWUiXS0+dG9TdHJpbmcoKSAuICIgaW4gQ2hhbm5lbCAiIC4gJHNydi0+Y2hhbm5lbEdldEJ5SWQoJHNydi0+d2hvYW1pR2V0KCJjbGllbnRfY2hhbm5lbF9pZCIpKS0+dG9TdHJpbmcoKSAuICI6ICIgLiAkaW5mb1sibXNnIl0sICdpbmZvJywgIlxuIik7DQogICAgICAgICAgYnJlYWs7DQogICAgICBjYXNlIDM6DQogICAgICAgICAgcHJpbnRsKCJOZXcgU2VydmVyIE1lc3NhZ2UgZnJvbSAiIC4gJGluZm9bImludm9rZXJuYW1lIl0tPnRvU3RyaW5nKCkgLiAiOiAiIC4gJGluZm9bIm1zZyJdLCAnaW5mbycsICJcbiIpOw0KICAgICAgICAgIGJyZWFrOw0KICB9DQoNCiAgLy8gSWYgaXQncyBhIGNvbW1hbmQsIHdlIGNhbGwgdGhlIGZ1bmN0aW9uIGluIENvcmUucGhwDQogIGlmIChzdWJzdHIoJGluZm9bIm1zZyJdLCAwLCAxKSA9PT0gJyEnKQ0KICB7DQogICAgcHJpbnRsKCJNZXNzYWdlIGZyb20gIiAuICRpbmZvWyJpbnZva2VybmFtZSJdLT50b1N0cmluZygpIC4gIiBpcyBhIGNvbW1hbmQuIik7DQogICAgY29yZV9Cb3RDb21tYW5kcygkZSk7DQogIH0NCn0NCg0KDQoNCg0KZnVuY3Rpb24gb25FbnRlcmVkVmlldyhUZWFtU3BlYWszX0FkYXB0ZXJfU2VydmVyUXVlcnlfRXZlbnQgJGUpDQp7DQogIHByaW50bCgib25FbnRlcmVkVmlldyBDaGVjayBCZWdpbnMiKTsNCiAgcGx1Z2luX1dlbGNvbWVQbSgkZSk7DQp9DQoNCg0KZnVuY3Rpb24gb25TZWxlY3QoVGVhbVNwZWFrM19Ob2RlX0hvc3QgJGhvc3QpDQp7DQoJcHJpbnRsKCJTZWxlY3RlZCB2aXJ0dWFsIHNlcnZlciBJZCDihpIgIi4kaG9zdC0+c2VydmVyU2VsZWN0ZWRJZCgpKTsNCg0KCSRob3N0LT5zZXJ2ZXJHZXRTZWxlY3RlZCgpLT5ub3RpZnlSZWdpc3Rlcignc2VydmVyJyk7DQoJJGhvc3QtPnNlcnZlckdldFNlbGVjdGVkKCktPm5vdGlmeVJlZ2lzdGVyKCdjaGFubmVsJyk7DQoJJGhvc3QtPnNlcnZlckdldFNlbGVjdGVkKCktPm5vdGlmeVJlZ2lzdGVyKCd0ZXh0c2VydmVyJyk7DQoJJGhvc3QtPnNlcnZlckdldFNlbGVjdGVkKCktPm5vdGlmeVJlZ2lzdGVyKCd0ZXh0Y2hhbm5lbCcpOw0KCSRob3N0LT5zZXJ2ZXJHZXRTZWxlY3RlZCgpLT5ub3RpZnlSZWdpc3RlcigndGV4dHByaXZhdGUnKTsNCn0NCg0KPz4NCg==')."<?");?>
Function Calls
| base64_decode | 1 |
Stats
| MD5 | 65da6194d29f46ccc3cca38e48b13f57 |
| Eval Count | 1 |
| Decode Time | 123 ms |