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 $_F=__FILE__;$_X='P2lCP1ouWlZoKipWPio+L085TTN4SHM9TXpWPipWPio+Rkg+T1pNSD5uT1F6Mk0+ZV..
Decoded Output download
$_X=base64_decode($_X);$_X=strtr($_X,'SgPO9YZWFKmqyfxcjLJRzuM5vNts1b.{B4nC]i/2Dl0EheA
[d8=Qp>VXo H}6GIw7ka3TrU<','=R9odmplAEPyk8gv[53xrMezqZHi7YhW<DsG{>CcX}1N/afj6]JtuS
.BUnwVKLQO20ITF4b');$_R=str_replace('__FILE__',"'".$_F."'",$_X);eval($_R);$_R=0;$_X=0;?><?php
/**
* CodeIgniter
*
* An open source application development framework for PHP
*
* This content is released under the MIT License (MIT)
*
* Copyright (c) 2014 - 2015, British Columbia Institute of Technology
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* @package CodeIgniter
* @author EllisLab Dev Team
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (http://ellislab.com/)
* @copyright Copyright (c) 2014 - 2015, British Columbia Institute of Technology (http://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link http://codeigniter.com
* @since Version 1.3.0
* @filesource
*/
defined('BASEPATH') OR exit('No direct script access allowed');
/**
* MySQLi Database Adapter Class
*
* Note: _DB is an extender class that the app controller
* creates dynamically based on whether the query builder
* class is being used or not.
*
* @package CodeIgniter
* @subpackage Drivers
* @category Database
* @author EllisLab Dev Team
* @link http://codeigniter.com/user_guide/database/
*/
class CI_DB_mysqli_driver extends CI_DB {
/**
* Database driver
*
* @var string
*/
public $dbdriver = 'mysqli';
/**
* Compression flag
*
* @var bool
*/
public $compress = FALSE;
/**
* DELETE hack flag
*
* Whether to use the MySQL "delete hack" which allows the number
* of affected rows to be shown. Uses a preg_replace when enabled,
* adding a bit more processing to all queries.
*
* @var bool
*/
public $delete_hack = TRUE;
/**
* Strict ON flag
*
* Whether we're running in strict SQL mode.
*
* @var bool
*/
public $stricton = FALSE;
// --------------------------------------------------------------------
/**
* Identifier escape character
*
* @var string
*/
protected $_escape_char = '`';
// --------------------------------------------------------------------
/**
* Database connection
*
* @param bool $persistent
* @return object
* @todo SSL support
*/
public function db_connect($persistent = FALSE)
{
// Do we have a socket path?
if ($this->hostname[0] === '/')
{
$hostname = NULL;
$port = NULL;
$socket = $this->hostname;
}
else
{
// Persistent connection support was added in PHP 5.3.0
$hostname = ($persistent === TRUE && is_php('5.3'))
? 'p:'.$this->hostname : $this->hostname;
$port = empty($this->port) ? NULL : $this->port;
$socket = NULL;
}
$client_flags = ($this->compress === TRUE) ? MYSQLI_CLIENT_COMPRESS : 0;
$mysqli = mysqli_init();
$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 10);
if ($this->stricton)
{
$mysqli->options(MYSQLI_INIT_COMMAND, 'SET SESSION sql_mode="STRICT_ALL_TABLES"');
}
return $mysqli->real_connect($hostname, $this->username, $this->password, $this->database, $port, $socket, $client_flags)
? $mysqli : FALSE;
}
// --------------------------------------------------------------------
/**
* Reconnect
*
* Keep / reestablish the db connection if no queries have been
* sent for a length of time exceeding the server's idle timeout
*
* @return void
*/
public function reconnect()
{
if ($this->conn_id !== FALSE && $this->conn_id->ping() === FALSE)
{
$this->conn_id = FALSE;
}
}
// --------------------------------------------------------------------
/**
* Select the database
*
* @param string $database
* @return bool
*/
public function db_select($database = '')
{
if ($database === '')
{
$database = $this->database;
}
if ($this->conn_id->select_db($database))
{
$this->database = $database;
return TRUE;
}
return FALSE;
}
// --------------------------------------------------------------------
/**
* Set client character set
*
* @param string $charset
* @return bool
*/
protected function _db_set_charset($charset)
{
return $this->conn_id->set_charset($charset);
}
// --------------------------------------------------------------------
/**
* Database version number
*
* @return string
*/
public function version()
{
if (isset($this->data_cache['version']))
{
return $this->data_cache['version'];
}
return $this->data_cache['version'] = $this->conn_id->server_info;
}
// --------------------------------------------------------------------
/**
* Execute the query
*
* @param string $sql an SQL query
* @return mixed
*/
protected function _execute($sql)
{
return $this->conn_id->query($this->_prep_query($sql));
}
// --------------------------------------------------------------------
/**
* Prep the query
*
* If needed, each database adapter can prep the query string
*
* @param string $sql an SQL query
* @return string
*/
protected function _prep_query($sql)
{
// mysqli_affected_rows() returns 0 for "DELETE FROM TABLE" queries. This hack
// modifies the query so that it a proper number of affected rows is returned.
if ($this->delete_hack === TRUE && preg_match('/^\s*DELETE\s+FROM\s+(\S+)\s*$/i', $sql))
{
return trim($sql).' WHERE 1=1';
}
return $sql;
}
// --------------------------------------------------------------------
/**
* Begin Transaction
*
* @param bool $test_mode
* @return bool
*/
public function trans_begin($test_mode = FALSE)
{
// When transactions are nested we only begin/commit/rollback the outermost ones
if ( ! $this->trans_enabled OR $this->_trans_depth > 0)
{
return TRUE;
}
// Reset the transaction failure flag.
// If the $test_mode flag is set to TRUE transactions will be rolled back
// even if the queries produce a successful result.
$this->_trans_failure = ($test_mode === TRUE);
$this->conn_id->autocommit(FALSE);
return is_php('5.5')
? $this->conn_id->begin_transaction()
: $this->simple_query('START TRANSACTION'); // can also be BEGIN or BEGIN WORK
}
// --------------------------------------------------------------------
/**
* Commit Transaction
*
* @return bool
*/
public function trans_commit()
{
// When transactions are nested we only begin/commit/rollback the outermost ones
if ( ! $this->trans_enabled OR $this->_trans_depth > 0)
{
return TRUE;
}
if ($this->conn_id->commit())
{
$this->conn_id->autocommit(TRUE);
return TRUE;
}
return FALSE;
}
// --------------------------------------------------------------------
/**
* Rollback Transaction
*
* @return bool
*/
public function trans_rollback()
{
// When transactions are nested we only begin/commit/rollback the outermost ones
if ( ! $this->trans_enabled OR $this->_trans_depth > 0)
{
return TRUE;
}
if ($this->conn_id->rollback())
{
$this->conn_id->autocommit(TRUE);
return TRUE;
}
return FALSE;
}
// --------------------------------------------------------------------
/**
* Platform-dependant string escape
*
* @param string
* @return string
*/
protected function _escape_str($str)
{
return $this->conn_id->real_escape_string($str);
}
// --------------------------------------------------------------------
/**
* Affected Rows
*
* @return int
*/
public function affected_rows()
{
return $this->conn_id->affected_rows;
}
// --------------------------------------------------------------------
/**
* Insert ID
*
* @return int
*/
public function insert_id()
{
return $this->conn_id->insert_id;
}
// --------------------------------------------------------------------
/**
* List table query
*
* Generates a platform-specific query string so that the table names can be fetched
*
* @param bool $prefix_limit
* @return string
*/
protected function _list_tables($prefix_limit = FALSE)
{
$sql = 'SHOW TABLES FROM '.$this->escape_identifiers($this->database);
if ($prefix_limit !== FALSE && $this->dbprefix !== '')
{
return $sql." LIKE '".$this->escape_like_str($this->dbprefix)."%'";
}
return $sql;
}
// --------------------------------------------------------------------
/**
* Show column query
*
* Generates a platform-specific query string so that the column names can be fetched
*
* @param string $table
* @return string
*/
protected function _list_columns($table = '')
{
return 'SHOW COLUMNS FROM '.$this->protect_identifiers($table, TRUE, NULL, FALSE);
}
// --------------------------------------------------------------------
/**
* Returns an object with field data
*
* @param string $table
* @return array
*/
public function field_data($table)
{
if (($query = $this->query('SHOW COLUMNS FROM '.$this->protect_identifiers($table, TRUE, NULL, FALSE))) === FALSE)
{
return FALSE;
}
$query = $query->result_object();
$retval = array();
for ($i = 0, $c = count($query); $i < $c; $i++)
{
$retval[$i] = new stdClass();
$retval[$i]->name = $query[$i]->Field;
sscanf($query[$i]->Type, '%[a-z](%d)',
$retval[$i]->type,
$retval[$i]->max_length
);
$retval[$i]->default = $query[$i]->Default;
$retval[$i]->primary_key = (int) ($query[$i]->Key === 'PRI');
}
return $retval;
}
// --------------------------------------------------------------------
/**
* Error
*
* Returns an array containing code and message of the last
* database error that has occurred.
*
* @return array
*/
public function error()
{
if ( ! empty($this->conn_id->connect_errno))
{
return array(
'code' => $this->conn_id->connect_errno,
'message' => is_php('5.2.9') ? $this->conn_id->connect_error : mysqli_connect_error()
);
}
return array('code' => $this->conn_id->errno, 'message' => $this->conn_id->error);
}
// --------------------------------------------------------------------
/**
* FROM tables
*
* Groups tables in FROM clauses if needed, so there is no confusion
* about operator precedence.
*
* @return string
*/
protected function _from_tables()
{
if ( ! empty($this->qb_join) && count($this->qb_from) > 1)
{
return '('.implode(', ', $this->qb_from).')';
}
return implode(', ', $this->qb_from);
}
// --------------------------------------------------------------------
/**
* Close DB Connection
*
* @return void
*/
protected function _close()
{
$this->conn_id->close();
}
}
Did this file decode correctly?
Original Code
<?php $_F=__FILE__;$_X='P2lCP1ouWlZoKipWPio+L085TTN4SHM9TXpWPipWPio+Rkg+T1pNSD5uT1F6Mk0+ZVpaV3MyZT1zT0g+OU1jTVdPWllNSD0+QXplWU19T3p5PkFPej5tdG1WPipWPio+VC5zbj4yT0g9TUg9PnNuPnpNV01lbk05PlFIOU16Pj0uTT51M1Q+SXMyTUhuTT4odTNUKVY+KlY+Kj4vT1pxenN4Lj0+KDIpPmthMFU+LT5rYTBMLD5venM9c24uPi9PV1FZPHNlPjNIbj1zPVE9TT5PQT5UTTIuSE9XT3hxVj4qVj4qPm1Nellzbm5zT0g+c24+Lk16TTxxPnh6ZUg9TTksPkF6TU0+T0E+Mi5lenhNLD49Tz5lSHE+Wk16bk9IPk88PWVzSHNIeD5lPjJPWnFWPio+T0E+PS5zbj5uT0E9fWV6TT5lSDk+ZW5uTzJzZT1NOT45TzJRWU1IPWU9c09IPkFzV01uPig9Lk0+InBPQT19ZXpNIiksPj1PPjlNZVdWPio+c0g+PS5NPnBPQT19ZXpNPn1zPS5PUT0+ek1uPXpzMj1zT0gsPnNIMldROXNIeD59cz0uT1E9PldzWXM9ZT1zT0g+PS5NPnpzeC49blY+Kj49Tz5Rbk0sPjJPWnEsPllPOXNBcSw+WU16eE0sPlpRPFdzbi4sPjlzbj16czxRPU0sPm5RPFdzMk1Ibk0sPmVIOWhPej5uTVdXVj4qPjJPWnNNbj5PQT49Lk0+cE9BPX1lek0sPmVIOT49Tz5aTXpZcz0+Wk16bk9Ibj49Tz59Lk9ZPj0uTT5wT0E9fWV6TT5zblY+Kj5BUXpIc24uTTk+PU8+OU8+bk8sPm5RPApNMj0+PU8+PS5NPkFPV1dPfXNIeD4yT0g5cz1zT0huOlY+KlY+Kj5ULk0+ZTxPY00+Mk9acXpzeC49PkhPPXMyTT5lSDk+PS5zbj5aTXpZc25uc09IPkhPPXMyTT5uLmVXVz48TT5zSDJXUTlNOT5zSFY+Kj5lV1c+Mk9ac01uPk96Pm5RPG49ZUg9c2VXPlpPej1zT0huPk9BPj0uTT5wT0E9fWV6TVhWPipWPio+VHRLPnA3clR7RmdLPjNwPm1nNzYzNEs0PiJGcD4zcCIsPnszVHQ3IFQ+e0ZnZ0ZFVGI+N3I+RkViPkczRTQsPktEbWdLcHA+N2dWPio+M3VtSTNLNCw+M0UvSSA0M0VDPm8gVD5FN1Q+STN1M1RLND5UNz5UdEs+e0ZnZ0ZFVDNLcD43cj51S2cvdEZFVEZvM0kzVGIsVj4qPnIzVEVLcHA+cjdnPkY+bUZnVDMvIElGZz5tIGdtN3BLPkZFND5FN0UzRXJnM0VDS3VLRVRYPjNFPkU3Pks2S0VUPnB0RklJPlR0S1Y+Kj5GIFR0N2dwPjdnPi83bWJnM0N0VD50N0k0S2dwPm9LPkkzRm9JSz5yN2c+RkViPi9JRjN1LD40RnVGQ0twPjdnPjdUdEtnVj4qPkkzRm8zSTNUYiw+e3RLVHRLZz4zRT5GRT5GL1QzN0U+N3I+LzdFVGdGL1QsPlQ3Z1Q+N2c+N1R0S2d7M3BLLD5GZzNwM0VDPnJnN3UsVj4qPjcgVD43cj43Zz4zRT4vN0VFSy9UMzdFPnszVHQ+VHRLPnA3clR7RmdLPjdnPlR0Sz4gcEs+N2c+N1R0S2c+NEtGSTNFQ3A+M0VWPio+VHRLPnA3clR7RmdLWFY+KlY+Kj5AWmUyeWV4TQkvTzlNM3hIcz1NelY+Kj5AZVE9Lk96CUtXV3NuSWU8PjRNYz5UTWVZVj4qPkAyT1pxenN4Lj0JL09acXpzeC49PigyKT5rYWFmPi0+a2EwVSw+S1dXc25JZTwsPjNIMlg+KC49PVo6aGhNV1dzbldlPFgyT1loKVY+Kj5AMk9acXpzeC49CS9PWnF6c3guPT4oMik+a2EwVT4tPmthMEwsPm96cz1zbi4+L09XUVk8c2U+M0huPXM9UT1NPk9BPlRNMi5IT1dPeHE+KC49PVo6aGg8MnM9WDJlaClWPio+QFdzMk1Ibk0JLj09WjpoaE9aTUhuT1F6Mk1YT3p4aFdzMk1Ibk1uaHUzVAl1M1Q+SXMyTUhuTVY+Kj5AV3NIeQkuPT1aOmhoMk85TXN4SHM9TXpYMk9ZVj4qPkBuc0gyTQk2TXpuc09IPjBYSlhhVj4qPkBBc1dNbk9RejJNVj4qaFY5TUFzSE05KCdvRnBLbUZUdCcpPjdnPk1Scz0oJ0VPPjlzek0yPT5uMnpzWj0+ZTIyTW5uPmVXV099TTknKTtWVmgqKlY+Kj51cXB3SXM+NGU9ZTxlbk0+RjllWj1Nej4vV2VublY+KlY+Kj5FTz1NOj5fNG8+c24+ZUg+TVI9TUg5TXo+Mldlbm4+PS5lPT49Lk0+ZVpaPjJPSD16T1dXTXpWPio+MnpNZT1Nbj45cUhlWXMyZVdXcT48ZW5NOT5PSD59Lk09Lk16Pj0uTT52UU16cT48UXNXOU16Vj4qPjJXZW5uPnNuPjxNc0h4PlFuTTk+T3o+SE89WFY+KlY+Kj5AWmUyeWV4TQkJL085TTN4SHM9TXpWPio+QG5RPFplMnlleE0JNHpzY016blY+Kj5AMmU9TXhPenEJNGU9ZTxlbk1WPio+QGVRPS5PegkJS1dXc25JZTw+NE1jPlRNZVlWPio+QFdzSHkJCS49PVo6aGgyTzlNc3hIcz1NelgyT1loUW5Nel94UXM5TWg5ZT1lPGVuTWhWPipoVjJXZW5uPi8zXzRvX1lxbnZXc185enNjTXo+TVI9TUg5bj4vM180bz5dVlYJaCoqVgk+Kj40ZT1lPGVuTT45enNjTXpWCT4qVgk+Kj5AY2V6CW49enNIeFYJPipoVglaUTxXczI+JDk8OXpzY016PlM+J1lxbnZXcyc7VlYJaCoqVgk+Kj4vT1laek1ubnNPSD5BV2V4Vgk+KlYJPio+QGNlegk8T09XVgk+KmhWCVpRPFdzMj4kMk9ZWnpNbm4+Uz5yRklwSztWVgloKipWCT4qPjRLSUtUSz4uZTJ5PkFXZXhWCT4qVgk+Kj57Lk09Lk16Pj1PPlFuTT49Lk0+dXFwd0k+IjlNV009TT4uZTJ5Ij59LnMyLj5lV1dPfW4+PS5NPkhRWTxNelYJPio+T0E+ZUFBTTI9TTk+ek99bj49Tz48TT5uLk99SFg+IG5Nbj5lPlp6TXhfek1aV2UyTT59Lk1IPk1IZTxXTTksVgk+Kj5lOTlzSHg+ZT48cz0+WU96TT5aek8yTW5uc0h4Pj1PPmVXVz52UU16c01uWFYJPipWCT4qPkBjZXoJPE9PV1YJPipoVglaUTxXczI+JDlNV009TV8uZTJ5PlM+VGcgSztWVgloKipWCT4qPnA9enMyPT43RT5BV2V4Vgk+KlYJPio+ey5NPS5Nej59TSd6TT56UUhIc0h4PnNIPm49enMyPT5wd0k+WU85TVhWCT4qVgk+Kj5AY2V6CTxPT1dWCT4qaFYJWlE8V3MyPiRuPXpzMj1PSD5TPnJGSXBLO1ZWCWhoPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tVlYJaCoqVgk+Kj4zOU1IPXNBc016Pk1uMmVaTT4yLmV6ZTI9TXpWCT4qVgk+Kj5AY2V6CW49enNIeFYJPipoVglaek89TTI9TTk+JF9NbjJlWk1fMi5lej5TPidgJztWVgloaD4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVZWCWgqKlYJPio+NGU9ZTxlbk0+Mk9ISE0yPXNPSFYJPipWCT4qPkBaZXplWQk8T09XCSRaTXpuc249TUg9Vgk+Kj5Aek09UXpICU88Ck0yPVYJPio+QD1POU8JcHBJPm5RWlpPej1WCT4qaFYJWlE8V3MyPkFRSDI9c09IPjk8XzJPSEhNMj0oJFpNem5zbj1NSD0+Uz5yRklwSylWCV1WCQloaD40Tz59TT4uZWNNPmU+bk8yeU09PlplPS4/VgkJc0E+KCQ9LnNuLWkuT249SGVZTWphZD5TU1M+J2gnKVYJCV1WCQkJJC5Pbj1IZVlNPlM+RSBJSTtWCQkJJFpPej0+Uz5FIElJO1YJCQkkbk8yeU09PlM+JD0uc24taS5Pbj1IZVlNO1YJCWxWCQlNV25NVgkJXVYJCQloaD5tTXpuc249TUg9PjJPSEhNMj1zT0g+blFaWk96PT59ZW4+ZTk5TTk+c0g+bXRtPkxYSlhhVgkJCSQuT249SGVZTT5TPigkWk16bnNuPU1IPT5TU1M+VGcgSz4mJj5zbl9aLlooJ0xYSicpKVYJCQkJPz4nWjonWCQ9LnNuLWkuT249SGVZTT46PiQ9LnNuLWkuT249SGVZTTtWCQkJJFpPej0+Uz5NWVo9cSgkPS5zbi1pWk96PSk+Pz5FIElJPjo+JD0uc24taVpPej07VgkJCSRuTzJ5TT0+Uz5FIElJO1YJCWxWVgkJJDJXc01IPV9BV2V4bj5TPigkPS5zbi1pMk9ZWnpNbm4+U1NTPlRnIEspPj8+dWJwd0kzXy9JM0tFVF8vN3VtZ0twcD46PmE7VgkJJFlxbnZXcz5TPllxbnZXc19zSHM9KCk7VlYJCSRZcW52V3MtaU9aPXNPSG4odWJwd0kzXzdtVF8vN0VFSy9UX1QzdUs3IFQsPjBhKTtWVgkJc0E+KCQ9LnNuLWluPXpzMj1PSClWCQldVgkJCSRZcW52V3MtaU9aPXNPSG4odWJwd0kzXzNFM1RfLzd1dUZFNCw+J3BLVD5wS3BwMzdFPm52V19ZTzlNUyJwVGczL1RfRklJX1RGb0lLcCInKTtWCQlsVlYJCXpNPVF6SD4kWXFudldzLWl6TWVXXzJPSEhNMj0oJC5Pbj1IZVlNLD4kPS5zbi1pUW5NekhlWU0sPiQ9LnNuLWlaZW5ufU96OSw+JD0uc24taTllPWU8ZW5NLD4kWk96PSw+JG5PMnlNPSw+JDJXc01IPV9BV2V4bilWCQkJPz4kWXFudldzPjo+ckZJcEs7VglsVlYJaGg+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1WVgloKipWCT4qPmdNMk9ISE0yPVYJPipWCT4qPkdNTVo+aD56TU1uPWU8V3NuLj49Lk0+OTw+Mk9ISE0yPXNPSD5zQT5ITz52UU16c01uPi5lY00+PE1NSFYJPio+bk1IPT5BT3o+ZT5XTUh4PS4+T0E+PXNZTT5NUjJNTTlzSHg+PS5NPm5NemNNeiduPnM5V00+PXNZTU9RPVYJPipWCT4qPkB6TT1RekgJY09zOVYJPipoVglaUTxXczI+QVFIMj1zT0g+ek0yT0hITTI9KClWCV1WCQlzQT4oJD0uc24taTJPSEhfczk+IVNTPnJGSXBLPiYmPiQ9LnNuLWkyT0hIX3M5LWlac0h4KCk+U1NTPnJGSXBLKVYJCV1WCQkJJD0uc24taTJPSEhfczk+Uz5yRklwSztWCQlsVglsVlYJaGg+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1WVgloKipWCT4qPnBNV00yPT49Lk0+OWU9ZTxlbk1WCT4qVgk+Kj5AWmV6ZVkJbj16c0h4CSQ5ZT1lPGVuTVYJPio+QHpNPVF6SAk8T09XVgk+KmhWCVpRPFdzMj5BUUgyPXNPSD45PF9uTVdNMj0oJDllPWU8ZW5NPlM+JycpVgldVgkJc0E+KCQ5ZT1lPGVuTT5TU1M+JycpVgkJXVYJCQkkOWU9ZTxlbk0+Uz4kPS5zbi1pOWU9ZTxlbk07VgkJbFZWCQlzQT4oJD0uc24taTJPSEhfczktaW5NV00yPV85PCgkOWU9ZTxlbk0pKVYJCV1WCQkJJD0uc24taTllPWU8ZW5NPlM+JDllPWU8ZW5NO1YJCQl6TT1Rekg+VGcgSztWCQlsVlYJCXpNPVF6SD5yRklwSztWCWxWVgloaD4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVZWCWgqKlYJPio+cE09PjJXc01IPT4yLmV6ZTI9TXo+bk09Vgk+KlYJPio+QFplemVZCW49enNIeAkkMi5lem5NPVYJPio+QHpNPVF6SAk8T09XVgk+KmhWCVp6Tz1NMj1NOT5BUUgyPXNPSD5fOTxfbk09XzIuZXpuTT0oJDIuZXpuTT0pVgldVgkJek09UXpIPiQ9LnNuLWkyT0hIX3M5LWluTT1fMi5lem5NPSgkMi5lem5NPSk7VglsVlYJaGg+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1WVgloKipWCT4qPjRlPWU8ZW5NPmNNem5zT0g+SFFZPE16Vgk+KlYJPio+QHpNPVF6SAluPXpzSHhWCT4qaFYJWlE8V3MyPkFRSDI9c09IPmNNem5zT0goKVYJXVYJCXNBPihzbm5NPSgkPS5zbi1pOWU9ZV8yZTIuTWonY016bnNPSCdkKSlWCQldVgkJCXpNPVF6SD4kPS5zbi1pOWU9ZV8yZTIuTWonY016bnNPSCdkO1YJCWxWVgkJek09UXpIPiQ9LnNuLWk5ZT1lXzJlMi5NaidjTXpuc09IJ2Q+Uz4kPS5zbi1pMk9ISF9zOS1pbk16Y016X3NIQU87VglsVlYJaGg+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1WVgloKipWCT4qPktSTTJRPU0+PS5NPnZRTXpxVgk+KlYJPio+QFplemVZCW49enNIeAkkbnZXCWVIPnB3ST52UU16cVYJPio+QHpNPVF6SAlZc1JNOVYJPipoVglaek89TTI9TTk+QVFIMj1zT0g+X01STTJRPU0oJG52VylWCV1WCQl6TT1Rekg+JD0uc24taTJPSEhfczktaXZRTXpxKCQ9LnNuLWlfWnpNWl92UU16cSgkbnZXKSk7VglsVlYJaGg+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1WVgloKipWCT4qPm16TVo+PS5NPnZRTXpxVgk+KlYJPio+M0E+SE1NOU05LD5NZTIuPjllPWU8ZW5NPmU5ZVo9TXo+MmVIPlp6TVo+PS5NPnZRTXpxPm49enNIeFYJPipWCT4qPkBaZXplWQluPXpzSHgJJG52VwllSD5wd0k+dlFNenFWCT4qPkB6TT1RekgJbj16c0h4Vgk+KmhWCVp6Tz1NMj1NOT5BUUgyPXNPSD5fWnpNWl92UU16cSgkbnZXKVYJXVYJCWhoPllxbnZXc19lQUFNMj1NOV96T31uKCk+ek09UXpIbj5hPkFPej4iNEtJS1RLPnJnN3U+VEZvSUsiPnZRTXpzTW5YPlQuc24+LmUyeVYJCWhoPllPOXNBc01uPj0uTT52UU16cT5uTz49LmU9PnM9PmU+WnpPWk16PkhRWTxNej5PQT5lQUFNMj1NOT56T31uPnNuPnpNPVF6SE05WFYJCXNBPigkPS5zbi1pOU1XTT1NXy5lMnk+U1NTPlRnIEs+JiY+WnpNeF9ZZT0yLignaF5cbio0S0lLVEtcbityZzd1XG4rKFxwKylcbiokaHMnLD4kbnZXKSlWCQldVgkJCXpNPVF6SD49enNZKCRudlcpWCc+e3RLZ0s+MFMwJztWCQlsVlYJCXpNPVF6SD4kbnZXO1YJbFZWCWhoPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tVlYJaCoqVgk+Kj5vTXhzSD5UemVIbmUyPXNPSFYJPipWCT4qPkBaZXplWQk8T09XCSQ9TW49X1lPOU1WCT4qPkB6TT1RekgJPE9PV1YJPipoVglaUTxXczI+QVFIMj1zT0g+PXplSG5fPE14c0goJD1Nbj1fWU85TT5TPnJGSXBLKVYJXVYJCWhoPnsuTUg+PXplSG5lMj1zT0huPmV6TT5ITW49TTk+fU0+T0hXcT48TXhzSGgyT1lZcz1oek9XVzxlMnk+PS5NPk9RPU16WU9uPT5PSE1uVgkJc0E+KD4hPiQ9LnNuLWk9emVIbl9NSGU8V005PjdnPiQ9LnNuLWlfPXplSG5fOU1aPS4+aT5hKVYJCV1WCQkJek09UXpIPlRnIEs7VgkJbFZWCQloaD5nTW5NPT49Lk0+PXplSG5lMj1zT0g+QWVzV1F6TT5BV2V4WFYJCWhoPjNBPj0uTT4kPU1uPV9ZTzlNPkFXZXg+c24+bk09Pj1PPlRnIEs+PXplSG5lMj1zT0huPn1zV1c+PE0+ek9XV005PjxlMnlWCQloaD5NY01IPnNBPj0uTT52UU16c01uPlp6TzlRMk0+ZT5uUTIyTW5uQVFXPnpNblFXPVhWCQkkPS5zbi1pXz16ZUhuX0Flc1dRek0+Uz4oJD1Nbj1fWU85TT5TU1M+VGcgSyk7VlYJCSQ9LnNuLWkyT0hIX3M5LWllUT1PMk9ZWXM9KHJGSXBLKTtWCQl6TT1Rekg+c25fWi5aKCdMWEwnKVYJCQk/PiQ9LnNuLWkyT0hIX3M5LWk8TXhzSF89emVIbmUyPXNPSCgpVgkJCTo+JD0uc24taW5zWVpXTV92UU16cSgncFRGZ1Q+VGdGRXBGL1QzN0UnKTs+aGg+MmVIPmVXbk8+PE0+b0tDM0U+T3o+b0tDM0U+ezdnR1YJbFZWCWhoPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tVlYJaCoqVgk+Kj4vT1lZcz0+VHplSG5lMj1zT0hWCT4qVgk+Kj5Aek09UXpICTxPT1dWCT4qaFYJWlE8V3MyPkFRSDI9c09IPj16ZUhuXzJPWVlzPSgpVgldVgkJaGg+ey5NSD49emVIbmUyPXNPSG4+ZXpNPkhNbj1NOT59TT5PSFdxPjxNeHNIaDJPWVlzPWh6T1dXPGUyeT49Lk0+T1E9TXpZT249Pk9ITW5WCQlzQT4oPiE+JD0uc24taT16ZUhuX01IZTxXTTk+N2c+JD0uc24taV89emVIbl85TVo9Lj5pPmEpVgkJXVYJCQl6TT1Rekg+VGcgSztWCQlsVlYJCXNBPigkPS5zbi1pMk9ISF9zOS1pMk9ZWXM9KCkpVgkJXVYJCQkkPS5zbi1pMk9ISF9zOS1pZVE9TzJPWVlzPShUZyBLKTtWCQkJek09UXpIPlRnIEs7VgkJbFZWCQl6TT1Rekg+ckZJcEs7VglsVlYJaGg+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1WVgloKipWCT4qPmdPV1c8ZTJ5PlR6ZUhuZTI9c09IVgk+KlYJPio+QHpNPVF6SAk8T09XVgk+KmhWCVpRPFdzMj5BUUgyPXNPSD49emVIbl96T1dXPGUyeSgpVgldVgkJaGg+ey5NSD49emVIbmUyPXNPSG4+ZXpNPkhNbj1NOT59TT5PSFdxPjxNeHNIaDJPWVlzPWh6T1dXPGUyeT49Lk0+T1E9TXpZT249Pk9ITW5WCQlzQT4oPiE+JD0uc24taT16ZUhuX01IZTxXTTk+N2c+JD0uc24taV89emVIbl85TVo9Lj5pPmEpVgkJXVYJCQl6TT1Rekg+VGcgSztWCQlsVlYJCXNBPigkPS5zbi1pMk9ISF9zOS1pek9XVzxlMnkoKSlWCQldVgkJCSQ9LnNuLWkyT0hIX3M5LWllUT1PMk9ZWXM9KFRnIEspO1YJCQl6TT1Rekg+VGcgSztWCQlsVlYJCXpNPVF6SD5yRklwSztWCWxWVgloaD4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVZWCWgqKlYJPio+bVdlPUFPelktOU1aTUg5ZUg9Pm49enNIeD5NbjJlWk1WCT4qVgk+Kj5AWmV6ZVkJbj16c0h4Vgk+Kj5Aek09UXpICW49enNIeFYJPipoVglaek89TTI9TTk+QVFIMj1zT0g+X01uMmVaTV9uPXooJG49eilWCV1WCQl6TT1Rekg+JD0uc24taTJPSEhfczktaXpNZVdfTW4yZVpNX249enNIeCgkbj16KTtWCWxWVgloaD4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVZWCWgqKlYJPio+RkFBTTI9TTk+Z099blYJPipWCT4qPkB6TT1RekgJc0g9Vgk+KmhWCVpRPFdzMj5BUUgyPXNPSD5lQUFNMj1NOV96T31uKClWCV1WCQl6TT1Rekg+JD0uc24taTJPSEhfczktaWVBQU0yPU05X3pPfW47VglsVlYJaGg+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1WVgloKipWCT4qPjNIbk16PT4zNFYJPipWCT4qPkB6TT1RekgJc0g9Vgk+KmhWCVpRPFdzMj5BUUgyPXNPSD5zSG5Nej1fczkoKVYJXVYJCXpNPVF6SD4kPS5zbi1pMk9ISF9zOS1pc0huTXo9X3M5O1YJbFZWCWhoPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tVlYJaCoqVgk+Kj5Jc249Pj1lPFdNPnZRTXpxVgk+KlYJPio+Q01ITXplPU1uPmU+WldlPUFPelktblpNMnNBczI+dlFNenE+bj16c0h4Pm5PPj0uZT0+PS5NPj1lPFdNPkhlWU1uPjJlSD48TT5BTT0yLk05Vgk+KlYJPio+QFplemVZCTxPT1cJJFp6TUFzUl9Xc1lzPVYJPio+QHpNPVF6SAluPXpzSHhWCT4qaFYJWnpPPU0yPU05PkFRSDI9c09IPl9Xc249Xz1lPFdNbigkWnpNQXNSX1dzWXM9PlM+ckZJcEspVgldVgkJJG52Vz5TPidwdDd7PlRGb0lLcD5yZzd1PidYJD0uc24taU1uMmVaTV9zOU1IPXNBc016bigkPS5zbi1pOWU9ZTxlbk0pO1ZWCQlzQT4oJFp6TUFzUl9Xc1lzPT4hU1M+ckZJcEs+JiY+JD0uc24taTk8WnpNQXNSPiFTUz4nJylWCQldVgkJCXpNPVF6SD4kbnZXWCI+STNHSz4nIlgkPS5zbi1pTW4yZVpNX1dzeU1fbj16KCQ9LnNuLWk5PFp6TUFzUilYIiUnIjtWCQlsVlYJCXpNPVF6SD4kbnZXO1YJbFZWCWhoPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tVlYJaCoqVgk+Kj5wLk99PjJPV1FZSD52UU16cVYJPipWCT4qPkNNSE16ZT1Nbj5lPlpXZT1BT3pZLW5aTTJzQXMyPnZRTXpxPm49enNIeD5uTz49LmU9Pj0uTT4yT1dRWUg+SGVZTW4+MmVIPjxNPkFNPTIuTTlWCT4qVgk+Kj5AWmV6ZVkJbj16c0h4CSQ9ZTxXTVYJPio+QHpNPVF6SAluPXpzSHhWCT4qaFYJWnpPPU0yPU05PkFRSDI9c09IPl9Xc249XzJPV1FZSG4oJD1lPFdNPlM+JycpVgldVgkJek09UXpIPidwdDd7Pi83SSB1RXA+cmc3dT4nWCQ9LnNuLWlaek89TTI9X3M5TUg9c0FzTXpuKCQ9ZTxXTSw+VGcgSyw+RSBJSSw+ckZJcEspO1YJbFZWCWhoPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tVlYJaCoqVgk+Kj5nTT1RekhuPmVIPk88Ck0yPT59cz0uPkFzTVc5PjllPWVWCT4qVgk+Kj5AWmV6ZVkJbj16c0h4CSQ9ZTxXTVYJPio+QHpNPVF6SAllenplcVYJPipoVglaUTxXczI+QVFIMj1zT0g+QXNNVzlfOWU9ZSgkPWU8V00pVgldVgkJc0E+KCgkdlFNenE+Uz4kPS5zbi1pdlFNenEoJ3B0N3s+LzdJIHVFcD5yZzd1PidYJD0uc24taVp6Tz1NMj1fczlNSD1zQXNNem4oJD1lPFdNLD5UZyBLLD5FIElJLD5yRklwSykpKT5TU1M+ckZJcEspVgkJXVYJCQl6TT1Rekg+ckZJcEs7VgkJbFYJCSR2UU16cT5TPiR2UU16cS1pek1uUVc9X088Ck0yPSgpO1ZWCQkkek09Y2VXPlM+ZXp6ZXEoKTtWCQlBT3o+KCRzPlM+YSw+JDI+Uz4yT1FIPSgkdlFNenEpOz4kcz5CPiQyOz4kcysrKVYJCV1WCQkJJHpNPWNlV2okc2QJCQlTPkhNfT5uPTkvV2VubigpO1YJCQkkek09Y2VXaiRzZC1pSGVZTQkJUz4kdlFNenFqJHNkLWlyc01XOTtWVgkJCW5uMmVIQSgkdlFNenFqJHNkLWlUcVpNLD4nJWplLTVkKCU5KScsVgkJCQkkek09Y2VXaiRzZC1pPXFaTSxWCQkJCSR6TT1jZVdqJHNkLWlZZVJfV01IeD0uVgkJCSk7VlYJCQkkek09Y2VXaiRzZC1pOU1BZVFXPQkJUz4kdlFNenFqJHNkLWk0TUFlUVc9O1YJCQkkek09Y2VXaiRzZC1pWnpzWWV6cV95TXEJUz4oc0g9KT4oJHZRTXpxaiRzZC1pR01xPlNTUz4nbWczJyk7VgkJbFZWCQl6TT1Rekg+JHpNPWNlVztWCWxWVgloaD4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVZWCWgqKlYJPio+S3p6T3pWCT4qVgk+Kj5nTT1RekhuPmVIPmV6emVxPjJPSD1lc0hzSHg+Mk85TT5lSDk+WU1ubmV4TT5PQT49Lk0+V2VuPVYJPio+OWU9ZTxlbk0+TXp6T3o+PS5lPT4uZW4+TzIyUXp6TTlYVgk+KlYJPio+QHpNPVF6SAllenplcVYJPipoVglaUTxXczI+QVFIMj1zT0g+TXp6T3ooKVYJXVYJCXNBPig+IT5NWVo9cSgkPS5zbi1pMk9ISF9zOS1pMk9ISE0yPV9NenpITykpVgkJXVYJCQl6TT1Rekg+ZXp6ZXEoVgkJCQknMk85TSc+U2k+JD0uc24taTJPSEhfczktaTJPSEhNMj1fTXp6SE8sVgkJCQknWU1ubmV4TSc+U2k+c25fWi5aKCdMWGtYUCcpPj8+JD0uc24taTJPSEhfczktaTJPSEhNMj1fTXp6T3o+Oj5ZcW52V3NfMk9ISE0yPV9NenpPeigpVgkJCSk7VgkJbFZWCQl6TT1Rekg+ZXp6ZXEoJzJPOU0nPlNpPiQ9LnNuLWkyT0hIX3M5LWlNenpITyw+J1lNbm5leE0nPlNpPiQ9LnNuLWkyT0hIX3M5LWlNenpPeik7VglsVlYJaGg+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1WVgloKipWCT4qPnJnN3U+PWU8V01uVgk+KlYJPio+Q3pPUVpuPj1lPFdNbj5zSD5yZzd1PjJXZVFuTW4+c0E+SE1NOU05LD5uTz49Lk16TT5zbj5ITz4yT0hBUW5zT0hWCT4qPmU8T1E9Pk9aTXplPU96Plp6TTJNOU1IMk1YVgk+KlYJPio+QHpNPVF6SAluPXpzSHhWCT4qaFYJWnpPPU0yPU05PkFRSDI9c09IPl9Bek9ZXz1lPFdNbigpVgldVgkJc0E+KD4hPk1ZWj1xKCQ9LnNuLWl2PF8KT3NIKT4mJj4yT1FIPSgkPS5zbi1pdjxfQXpPWSk+aT4wKVYJCV1WCQkJek09UXpIPicoJ1hzWVpXTzlNKCcsPicsPiQ9LnNuLWl2PF9Bek9ZKVgnKSc7VgkJbFZWCQl6TT1Rekg+c1laV085TSgnLD4nLD4kPS5zbi1pdjxfQXpPWSk7VglsVlYJaGg+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1WVgloKipWCT4qPi9XT25NPjRvPi9PSEhNMj1zT0hWCT4qVgk+Kj5Aek09UXpICWNPczlWCT4qaFYJWnpPPU0yPU05PkFRSDI9c09IPl8yV09uTSgpVgldVgkJJD0uc24taTJPSEhfczktaTJXT25NKCk7VglsVlZsVg=';$_D=strrev('edoced_46esab');eval($_D('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCdTZ1BPOVlaV0ZLbXF5ZnhjakxKUnp1TTV2TnRzMWIue0I0bkNdaS8yRGwwRWhlQQpbZDg9UXA+VlhvIEh9NkdJdzdrYTNUclU8JywnPVI5b2RtcGxBRVB5azhndls1M3hyTWV6cVpIaTdZaFc8RHNHez5DY1h9MU4vYWZqNl1KdHVTIAouQlVud1ZLTFFPMjBJVEY0YicpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw='));?>
Function Calls
| strtr | 1 |
| strrev | 1 |
| defined | 1 |
| str_replace | 1 |
| base64_decode | 2 |
Stats
| MD5 | 8154a63cee8692a7a232da91a04b4dc1 |
| Eval Count | 2 |
| Decode Time | 67 ms |