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 /* Dev By Hoang Skyht 18-06-2024 */$OOO000000=urldecode('%66%67%36%73%62%65%68%70%72..

Decoded Output download

$O000O0O00=$OOO000O00($OOO0O0O00,'rb');$O0O00OO00($O000O0O00,0x4a6);$OO00O00O0=$OOO0000O0($OOO00000O($O0O00OO00($O000O0O00,0x17c),'EnteryouwkhRHYKNWOUTAaBbCcDdFfGgIiJjLlMmPpQqSsVvXxZz0123456789+/=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));eval($OO00O00O0);$OO00O00O0=str_replace('__FILE__',"'".$OOO0O0O00."'",$OOO0000O0($OOO00000O($O0O00OO00($O000O0O00,$OO00O0000),'EnteryouwkhRHYKNWOUTAaBbCcDdFfGgIiJjLlMmPpQqSsVvXxZz0123456789+/=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/')));fclose($O000O0O00);eval($OO00O00O0);
namespace App\Models;
use App\Utils\CacheKey;
use Exception;
use Faker\Provider\Base;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Redis;
use Throwable;
abstract class BaseServer extends Model
{
const FIELD_ID = "id";
const FIELD_NAME = "name";
const FIELD_PLAN_ID = 'plan_id';
const FIELD_PARENT_ID = "parent_id";
const FIELD_AREA_ID = "area_id";
const FIELD_HOST = "host";
const FIELD_PORT = "port";
const FIELD_SERVER_PORT = "server_port";
const FIELD_TAGS = "tags";
const FIELD_IPS = "ips";
const FIELD_RATE = "rate";
const FIELD_SHOW = "show";
const FIELD_CHECK = "check";
const FIELD_SORT = "sort";
const FIELD_CREATED_AT = "created_at";
const FIELD_UPDATED_AT = "updated_at";
const SHOW_ON = 1;
const SHOW_OFF = 0;
const CHECK_ON = 1;
const TYPE = "";
const ONLINE_LIMIT_TIME = 1200;
public static function allTags(): array
{
$result = [];
$servers = self::where(self::FIELD_SHOW,self::SHOW_ON)->get();
foreach ($servers as $server) {
$tags = (array)$server->getAttribute(self::FIELD_TAGS);
$result = array_merge($result,$tags);
}
return array_unique($result);
}
public static function baseFaultNodeNames(string $checkKey,string $pushKey): array
{
$result = [];
$servers = self::where(self::FIELD_CHECK,self::CHECK_ON)->get();
foreach ($servers as $server) {
$parentId = $server->getAttribute(self::FIELD_PARENT_ID);
$nodeId = $parentId >0 ?$server->getAttribute(self::FIELD_PARENT_ID) : $server->getKey();
$lastCheckAt = (int)Redis::hget($checkKey,$nodeId);
if ($lastCheckAt <(time() -self::ONLINE_LIMIT_TIME)) {
array_push($result,$server->getAttribute(self::FIELD_NAME));
}
if ($parentId === 0) {
$ips = (array)$server->getAttribute(self::FIELD_IPS);
foreach ($ips as $ip) {
$ipLastCheckAt = Redis::hget(CacheKey::get($checkKey,$server->getKey()),$ip);
if ($ipLastCheckAt <(time() -self::ONLINE_LIMIT_TIME)) {
array_push($result,sprintf("%s  IP:%s ",$server->getAttribute(self::FIELD_NAME),$ip));
}
}
}
}
return $result;
}
public static function baseConfigs(User $user,string $type,string $checkKey,bool $show = true,bool $needExtra = false): Collection
{
$planId = $user->getAttribute(User::FIELD_PLAN_ID);
if ($planId <= 0) {
return collect([]);
}
$servers = self::orderBy(self::FIELD_SORT,"ASC")->
whereJsonContains(BaseServer::FIELD_PLAN_ID,$planId)
->where(self::FIELD_SHOW,(int)$show)->get();
foreach ($servers as $server) {
$server->setAttribute("type",$type);
if ($needExtra) {
if ($server->getAttribute(self::FIELD_PARENT_ID) >0) {
$server->setAttribute('last_check_at',(int)Redis::hget($checkKey,
$server->getAttribute(self::FIELD_PARENT_ID)));
}else {
$server->setAttribute('last_check_at',(int)Redis::hget($checkKey,
$server->getKey()));
}
}
}
return $servers;
}
public static function baseNodes(string $type,string $onlineKey,string $checkKey,string $pushKey): Collection
{
$servers = self::orderBy('sort',"ASC")->get();
foreach ($servers as $server) {
$parentId = $server->getAttribute(self::FIELD_PARENT_ID);
$loadIps = (array)$server->getAttribute(self::FIELD_IPS);
$nodeId = $parentId >0 ?$parentId : $server->getKey();
$cacheKeyOnline = CacheKey::get($onlineKey,$nodeId);
$lastCheckAt = Redis::hget($checkKey,$nodeId);
$lastPushAt = Redis::hget($pushKey,$nodeId);
$onlineData = Redis::hgetall($cacheKeyOnline);
$online = 0;
$onlineUserIds = [];
$ipOnline = [];
$ipOnlineUserIds = [];
$onlineUserRequests = [];
$ipOnlineUserRequests = [];
$ipRequests = [];
$requests = 0;
foreach ($onlineData as $ip =>$onlineJSON) {
$onlineItem = json_decode($onlineJSON);
if (!empty($loadIps) &&!in_array($ip,$loadIps)) {
continue;
}
if (isset($onlineItem->time) &&time() -$onlineItem->time <= self::ONLINE_LIMIT_TIME) {
$online += $onlineItem->count;
$ipOnline[$ip] = $onlineItem->count;
if (isset($onlineItem->user_ids)) {
$ipOnlineUserIds[$ip] = $onlineItem->user_ids;
$onlineUserIds = array_merge($onlineUserIds,$onlineItem->user_ids);
}
if (isset($onlineItem->user_requests)) {
$ipOnlineUserRequests[$ip] = $onlineItem->user_requests;
foreach ($onlineItem->user_requests as $userId =>$num) {
if (isset($onlineUserRequests[$userId])) {
$onlineUserRequests[$userId] += $num;
}else {
$onlineUserRequests[$userId] = $num;
}
}
}
if (isset($onlineItem->requests)) {
$ipRequests[$ip] = $onlineItem->requests;
$requests += $onlineItem->requests;
}
}
}
if ((time() -self::ONLINE_LIMIT_TIME) >= $lastCheckAt) {
$availableStatus = 0;
}else if ((time() -self::ONLINE_LIMIT_TIME) >= $lastPushAt) {
$availableStatus = 1;
}else {
$availableStatus = 2;
}
$ipStatus = [];
$ips = (array)$server->getAttribute(self::FIELD_IPS);
foreach ($ips as $ip) {
$ipLastCheckAt = Redis::hget(CacheKey::get($checkKey,$server->getKey()),$ip);
$ipLastPushAt = Redis::hget(CacheKey::get($pushKey,$server->getKey()),$ip);
if ((time() -self::ONLINE_LIMIT_TIME) >= $ipLastCheckAt) {
$ipAvailableStatus = 0;
}else if ((time() -self::ONLINE_LIMIT_TIME) >= $ipLastPushAt) {
$ipAvailableStatus = 1;
}else {
$ipAvailableStatus = 2;
}
$ipStatus[$ip] = $ipAvailableStatus;
}
$server->setAttribute('type',$type);
$server->setAttribute('online',$online);
$server->setAttribute('online_user_ids',collect($onlineUserIds)->unique()->values());
$server->setAttribute('ip_online',$ipOnline);
$server->setAttribute('ip_online_user_ids',$ipOnlineUserIds);
$server->setAttribute('requests',$requests);
$server->setAttribute('ip_requests',$ipRequests);
$server->setAttribute('online_user_requests',$onlineUserRequests);
$server->setAttribute('ip_online_user_requests',$ipOnlineUserRequests);
$server->setAttribute('available_status',$availableStatus);
$server->setAttribute('ip_status',$ipStatus);
}
return $servers;
}
public function area()
{
return $this->belongsTo('App\Models\ServerArea')->first();
}
public function isShow(): bool
{
return $this->getAttribute(self::FIELD_SHOW) === self::SHOW_ON;
}
public function findAvailableUsers(): Collection
{
$planIds = (array)$this->getAttribute(self::FIELD_PLAN_ID);
if (empty($planIds)) {
return collect([]);
}
$plans = Plan::whereIn(Plan::FIELD_ID,$planIds)->get()->groupBy('id');
$users = User::whereIn(User::FIELD_PLAN_ID,$planIds)->where(User::FIELD_BANNED,User::BANNED_OFF)
->where(function ($query) {
$query->where(User::FIELD_SUSPEND_AT,NULL)->orWhere(function($query) {
$query->where(User::FIELD_SUSPEND_AT,'<',time())->where(User::FIELD_SUSPEND_AT,'>',0);
});
})
->where(function ($query) {
$query->where(User::FIELD_EXPIRED_AT,'>=',time())
->orWhere(User::FIELD_EXPIRED_AT,NULL)->orWhere(User::FIELD_EXPIRED_AT,0);
})->select([User::FIELD_ID,User::FIELD_ONLINE,User::FIELD_SPEED_LIMIT,User::FIELD_DEVICE_LIMIT,User::FIELD_PLAN_ID,User::FIELD_EMAIL,User::FIELD_T,User::FIELD_U,User::FIELD_D,User::FIELD_UUID])->get();
return $users->filter(function (User $user) use ($plans) {
$planId = $user->getAttribute(User::FIELD_PLAN_ID);
$plan = $plans[$planId][0];
$transferEnableValue = $plan->getAttribute(Plan::FIELD_TRANSFER_ENABLE_VALUE);
$u = $user->getAttribute(User::FIELD_U);
$d = $user->getAttribute(User::FIELD_D);
if ($transferEnableValue <= ($u +$d)) {
return false;
}
$UserLimitIP = (int)$user->getAttribute(User::FIELD_DEVICE_LIMIT);
$limit_device = $UserLimitIP >0 ?$UserLimitIP : (int)$plan->getAttribute(Plan::FIELD_LIMIT_DEVICE);
$device_online = (int)$user->getAttribute(User::FIELD_ONLINE);
$UserLimitIP = (int)$user->getAttribute(User::FIELD_DEVICE_LIMIT);
$user->setAttribute(Plan::FIELD_LIMIT_DEVICE,$limit_device);
$TocDoGioiHan50 = (int)config('v2board.TocDoGioiHan50');
$TocDoGioiHan60 = (int)config('v2board.TocDoGioiHan60');
$TocDoGioiHan70 = (int)config('v2board.TocDoGioiHan70');
$TocDoGioiHan80 = (int)config('v2board.TocDoGioiHan80');
$TocDoGioiHan90 = (int)config('v2board.TocDoGioiHan90');
$TocDoToiDa = ($device_online / $limit_device) * 100;
if ($TocDoToiDa <50 ){
$TocDoChoPhep = 999999;
}
else if ($TocDoToiDa >= 50 &&$TocDoToiDa <60) {
$TocDoChoPhep = $TocDoGioiHan50;
}
else if ($TocDoToiDa >= 60 &&$TocDoToiDa <70) {
$TocDoChoPhep = $TocDoGioiHan60;
}
else if ($TocDoToiDa >= 70 &&$TocDoToiDa <80) {
$TocDoChoPhep = $TocDoGioiHan70;
}
else if ($TocDoToiDa >= 80 &&$TocDoToiDa <90) {
$TocDoChoPhep = $TocDoGioiHan80;
}
else if ($TocDoToiDa >= 90 &&$TocDoToiDa <100) {
$TocDoChoPhep = $TocDoGioiHan90;
}
else  if ($TocDoToiDa >= 100) {
return false;
}
$UserTocDoToiDa = (int)$user->getAttribute(User::FIELD_SPEED_LIMIT);
$user->setAttribute(User::FIELD_SPEED_LIMIT,$UserTocDoToiDa >0 ?$UserTocDoToiDa : $TocDoChoPhep);
$timeLimit = (bool)$plan->getAttribute(Plan::FIELD_TIME_LIMIT);
$startSec = $plan->getAttribute(Plan::FIELD_START_SEC);
$endSec = $plan->getAttribute(Plan::FIELD_END_SEC);
if ($timeLimit) {
$seconds = time() -strtotime(date('Y-m-d',time()));
if ($seconds <$startSec ||$seconds >$endSec) {
return false;
}
}
return true;
});
}
public function drop(): bool
{
Db::beginTransaction();
try {
$this->delete();
TrafficServerLog::where([TrafficServerLog::FIELD_SERVER_ID =>$this->getKey(),
TrafficServerLog::FIELD_SERVER_TYPE =>self::TYPE])->delete();
}catch (Exception $e) {
DB::rollBack();
throw new Exception($e);
}
Db::commit();
return true;
}
public function getType(): string
{
return ltrim($this->getTable(),"server_");
}
};

Did this file decode correctly?

Original Code

<?php /* Dev By Hoang Skyht 18-06-2024 */$OOO000000=urldecode('%66%67%36%73%62%65%68%70%72%61%34%63%6f%5f%74%6e%64');$OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5};$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};$OOO000O00=$OOO000000{0}.$OOO000000{12}.$OOO000000{7}.$OOO000000{5}.$OOO000000{15};$O0O000O00=$OOO000000{0}.$OOO000000{1}.$OOO000000{5}.$OOO000000{14};$O0O000O0O=$O0O000O00.$OOO000000{11};$O0O000O00=$O0O000O00.$OOO000000{3};$O0O00OO00=$OOO000000{0}.$OOO000000{8}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16};$OOO00000O=$OOO000000{3}.$OOO000000{14}.$OOO000000{8}.$OOO000000{14}.$OOO000000{8};$OOO0O0O00=__FILE__;$OO00O0000=0x3028;eval($OOO0000O0('JE8wMDBPME8wMD0kT09PMDAwTzAwKCRPT08wTzBPMDAsJ3JiJyk7JE8wTzAwT08wMCgkTzAwME8wTzAwLDB4NGE2KTskT08wME8wME8wPSRPT08wMDAwTzAoJE9PTzAwMDAwTygkTzBPMDBPTzAwKCRPMDAwTzBPMDAsMHgxN2MpLCdFbnRlcnlvdXdraFJIWUtOV09VVEFhQmJDY0RkRmZHZ0lpSmpMbE1tUHBRcVNzVnZYeFp6MDEyMzQ1Njc4OSsvPScsJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nKSk7ZXZhbCgkT08wME8wME8wKTs='));return;?>@rjILSgVTV~mkr9NHenNHenNHe1zfukgFMaXdoyjcUImb19oUAxyb18mRtwmwJ4LT09NHr8XTzEXRJwmwJXLT09NHeEXHr8XhtONT08XHeEXHr8Pkr8XTzEXT08XHtILTzEXHr8XTzEXRtONTzEXTzEXHeEpRtfydmOlFmlvfbfqDykwBAsKa09aaryiWMkeC0OLOMcuc0lpUMpHdr1sAunOFaYzamcCGyp6HerZHzW1YjF4KUSvNUFSk0ytW0OyOLfwUApRTr1KT1nOAlYAaacbBylDCBkjcoaMc2ipDMsSdB5vFuyZF3O1fmf4GbPXHTwzYeA2YzI5hZ8mhULpK2cjdo9zcUILTzEXHr8XTzEXhTslfMyShtONTzEXTzEXTzEpKX==tM5idBazFoyjcUnnFunFTB9LcBxzKXp1F2AIWbnXbya0DBxzbrYiC2ilU2a5KXp1F2AIObijcbn0DB9VKXp1F2AIOMyqcbkFAukvfMlLcbkFWMyzcTShfbYlwrlSduasDB5ifoaFOoy0CBkiF2aFOBxvFbaldmOFTB9LcBX7tmazcUnkdox1dBlVCbOlbrOifoyJCbYlbraSd3y1cB50bykldoy0DB9VF1xtcBxvdMfzao87tmazcUnkdox1dBlVCbOlbyY1FunvFmOFW29SdoajfolvdjShfbYlwrlSduasDB5ifoaFA3aXFo9ZfyxoCBYicoazbrOtKXp1F2AIUBxSfB1pdMy0caxTfbnXd3k0brciC2yLcbYFAMaLDbH7tmazcUnADukvf2yJdoA7tMyJF3OZCBY0woYSCbYzwrkiF2aTcbk2cbwIcbi0cB5LFZnYd2OldEp7tMYvdmY0wrckOAxrb0lrwe0IwMlLwjShC29VF3WIOLlyTrOgTLyYOUE9wtkVCB1lwjShC29VF3WIOLlyTrOgArxnTl9kOtE9wtfXdoyVb2lLkzShC29VF3WIOLlyTrOgAryUOA5Ab0lrwe0IwmniFMaVfy9pctw7tMYvdmY0wrckOAxrb0yUOAygUAWINUEJCbklCa9pctw7tMYvdmY0wrckOAxrb0iNA1WINUEJDo9zftw7tMYvdmY0wrckOAxrb1nNAlWINUEJFo9Zftw7tMYvdmY0wrckOAxrb1YyAlcyAl9WT1kAwe0IwmYlFmclFl9Xd3k0wjShC29VF3WIOLlyTrOgaryuAZE9wtk0CBfzwjShC29VF3WIOLlyTrOgUanTwe0IwMlXFZw7tMYvdmY0wrckOAxrb1knarAINUEJFMy0cUw7tMYvdmY0wrckOAxrb1YwT1FINUEJF2ivfZw7tMYvdmY0wrckOAxrb0YwOAYRwe0IwMYPcBYqwjShC29VF3WIOLlyTrOgA09UatE9wtkzd3k0wjShC29VF3WIOLlyTrOgW1kyWaOyOy9natE9wtkjFMaifoaLb2y0wjShC29VF3WIOLlyTrOgaanrWaOyOy9natE9wtk1FoOifoaLb2y0wjShC29VF3WIA0iNa19NTJE9wer7tMYvdmY0wyYwT1fgT0cowe0IHeShC29VF3WIW0iyW0sgT04INUExKXpjd25zftnABanywe0IwJw7tMYvdmY0wr9KTrlKOa9HUA1kay9AUA1ywe0IHTwXHeShFuaJdoljwuY0CbOpCZnMfB5jfolvdJnidoxACBfzhtL6woyZFMy5tmShkuklF3aSftE9wysfKXPLF2aZfMaZFZE9wuYldoC6KmfPcbklhuYldoC6KLckOAxrb1YwT1FSF2aScjP6A0iNa19NTJLsNMflftIpKXpMd3klCBYPwtILF2aZfMaZFZniFZELF2aZfMaZhUn7tJO0CBfzwe0IhoyZFMy5hUOzcbk2cbwsNMflfry0fukpCma0cUizcBxMKjpoUAaHOy9AWAfThTShkuklF3aSftE9woyZFMy5b21lFMflhtOZcbY1duWSkuOic3HpKXp9tmklfuaZdJniFmkiGa91dMlxfBAPkuklF3aSftL7tm0hFuaJdoljwuY0CbOpCZnMfB5jfolvdJnJCbYlOMy1duOKd2OlTMyscbHPF3OZDB5mwtOjDoajD0slGUxzfukpdMFIkun1F2iRcbLpKJniFmkiGWp7tJOZcbY1duWINUndbTShkuYlFmclFmHINUnzcBxMKjp3DoaZcUizcBxMKjpoUAaHOy9eUraeUZxzcBxMKjpeUraeU19NTJLsNMflftIpKXpMd3klCBYPwtILF2aZfMaZFZniFZELF2aZfMaZhUn7tJOXCbkldmOkctE9wtOzcbk2cbwsNMflfry0fukpCma0cUizcBxMKjpoUAaHOy9WWakyTlOgUAWpKXPLdM9LcAlLwe0IkuniFMaVfrlLwe4Xwe8LF2aZfMaZRT5mcbOnfuOZDBk1foAPF2aScjP6OLlyTrOgAryUOA5Ab0lrhUE6wtOzcbk2cbwsNMflfrslGUIpKXPLdoyzfrYPcBYqWbWINUEPDB50haklcolzKjpPc2a0htOjDoajD0slGUXLdM9LcAlLhTShDBCIhtOSCbY0W2ilC2snftE8huOpdBAPhUEsF2aScjP6T05HUA5yb0xkTAlAb1OkTAAphUn7tMyZFMy5b3n1F2IPkuklF3aSftXLF2aZfMaZRT5mcbOnfuOZDBk1foAPF2aScjP6OLlyTrOgTLyYOULpKXp9tMlMwtILFoyZcB50UBWINT09weEpwuShkolXFZE9wtiiFmkiGULLF2aZfMaZRT5mcbOnfuOZDBk1foAPF2aScjP6OLlyTrOgUanThTShcM9ZcByjDtEPkolXFZniFZELDbEpwuShkolXToyzfrYPcBYqWbWINUnUcBOpFzP6DoflftieCBYPcAslGTP6c2a0htOjDoajD0slGUXLF2aZfMaZRT5mcbORcbLPhULSkolXhTShDBCIhtOpFrxiF3OeDoajD0y0weXPfolscUIpwt1zcBxMKjpNTLxkTLagTrlYUaOgarlYOULpwuShCbkZCblgFuazDtILFMazfBx0RuYXFMlVfoCPwJazwtnkAePlFZEJRtOzcbk2cbwsNMflfry0fukpCma0cUizcBxMKjpoUAaHOy9KWA1yhUXLDbEphTShgWp9tm0hgWpZcbO1FM4IkuklF3aSfeShgWpXfBkSDBHIF3Oifoljwoc1dMY0DB9VwokiF2aed25MDBfzhyazcbwIkuazcbwSF3OZDB5mwtO0GbnlRuY0FMlVcZELC2ilC2sRcbLSCM9vdtELF2ivfZE9wuOZfBASCM9vdtELdMalcra4fukiwe0IcMySF2ApKJned2xScBY0DB9VtmShkunSCB5kctE9wtO1F2aZRT5mcbOnfuOZDBk1foAPabYlFjP6OLlyTrOgArxnTl9kOtL7tMlMwtILFoxidLlLweX9weEpwuShFMa0fbkVwoYvdoxlC3WPB10pKXp9tJOzcbk2cbkzwe0IF2aScjP6d3kLcbktGUizcBxMKjpoUAaHOy9TT1kARtknA0HJhU0+tmfPcbklUmYvdLYvdmOiDB5zhrkiF2aTcbk2cbw6KLckOAxrb1nHWA5gUAWSkunSCB5kctLhRT53DoaZcUizcBxMKjpoUAaHOy9TUr9bRtipdmWpkuYPd3FpRT5mcbWPhTShcM9ZcByjDtEPkuYlFmclFmHICbHIkuYlFmclFJLIGXPLF2aZfMaZRT5zcbOnfuOZDBk1foAPwmO5FoAJRtO0GbnlhTShDBCIhtOVcBaLObi0FMrpwuShDBCIhtOzcbk2cbwsNMflfry0fukpCma0cUizcBxMKjpoUAaHOy9WWakyTlOgUAWpwe4XhUn7tJOzcbk2cbwsNmYlfry0fukpCma0cUImdoyzfy9jDoajD19iftFSholVftlUcBOpFzP6DoflftILC2ilC2sRcbLStJOzcbk2cbwsNMflfry0fukpCma0cUizcBxMKjpoUAaHOy9WWakyTlOgUAWphUL7tm1lduYlwuShkuYlFmclFJ0+F2a0WbO0FMlJfbOlhtfSCbY0b2YPcBYqb2y0kZXPDB50haklcolzKjpPc2a0htOjDoajD0slGUXhkuYlFmclFJ0+c2a0U2a5htLphTShgWp9tm0hFMa0fbkVwtOzcbk2cbkzKXp9tmn1CMxpCZnzfoy0DBHIcmaVC3Opd24ICMyzcA5vcoazhuY0FMlVcZELfulXcUxzfukpdMFIko9VdolVcAslGUxzfukpdMFIkoYPcBYqU2a5RuY0FMlVcZELFuazDrslGUL6wrYvdoxlC3Opd24hGXPLF2aZfMaZFZE9wuYldoC6KM9ZcoaZWmLPk3YvFmWmRtknA0HJhU0+c2a0htL7tMcvFMaiC2IIhtOzcbk2cbkzwoyzwtOzcbk2cbwpwuShkuniFMaVfrlLwe0IkuYlFmclFJ0+c2a0WbO0FMlJfbOlhuYldoC6KLckOAxrb1nnALaKay9kOtL7tJOSd2yLUbnzwe0IhoyZFMy5hUOzcbk2cbwsNMflfry0fukpCma0cUizcBxMKjpoUAaHOy9kAyHpKXPLdM9LcAlLwe0IkuniFMaVfrlLwe4Xwe8LFoyZcB50UBWIKJELF2aZfMaZRT5mcbORcbLPhTShkoYiC2ilU2a5T25SDB5lwe0IW2yjDoaRcbL6KMflftILd25SDB5lU2a5RtOVd2OlUBWpKXPLdoyzfrYPcBYqWbWINUnUcBOpFzP6DoflftILC2ilC2sRcbLSko5vcoakctL7tJOSCbY0AuazDry0we0IAMaLDbH6KMimcbWPkun1F2iRcbLSko5vcoakctL7tJOvdMxpdMarCbOiwe0IAMaLDbH6KMimcbOidoXPkoYiC2ilU2a5T25SDB5lhTShko9VdolVcUE9weE7tJOvdMxpdMaaF2aZUBOzwe0IB107tJOpFr9VdolVcUE9wysfKXPLDbnNdMxpdMaaF2aZUBOzwe0IB107tJOvdMxpdMaaF2aZAMaxfBazfuHINUndbTShkolXT25SDB5labYlFlklFbalF3Ozwe0IB107tJOpFyklFbalF3Ozwe0IB107tJOZcby1cbY0FZE9weE7tMcvFMaiC2IIhtOvdMxpdMarCbOiwoyzwtOpFtE9NJOvdMxpdMahA09KhUn7tJOvdMxpdMakfoaswe0IDmYvdl9LcBYvcoAPko9VdolVcApTT04pKXppcJEPwBasFuO5htOSd2yLUbnzhUEMkJypdl9iFmkiGUILDbESkoxvCBOkFuHphUn7tMYvdmOpdmalKXp9tMlMwtipF3YlftILd25SDB5lUbOldU0+folscULIkJc0DB1lhtLIRUOvdMxpdMakfoasRT50DB1lweX9wuYldoC6KL9KTrlKOa9HUA1kay9AUA1yhUn7tJOvdMxpdMAIhz0Iko9VdolVcAl0cB0sNMYvfB50KXPLDbnNdMxpdMadkolXbUE9wtOvdMxpdMakfoasRT5jd3aVfeShDBCIholzF2a0htOvdMxpdMakfoasRT51F2aZb2lLFZLpwuShkolXT25SDB5labYlFLlLF1SLDbnfwe0Iko9VdolVcAl0cB0sNmazcbkgDBOzKXPLd25SDB5labYlFLlLFZE9woyZFMy5b21lFMflhtOvdMxpdMaaF2aZUBOzRtOvdMxpdMakfoasRT51F2aZb2lLFZL7tm0hDBCIholzF2a0htOvdMxpdMakfoasRT51F2aZb3klFbalF3OzhULIGXPLDbnNdMxpdMaaF2aZAMaxfBazfuYdkolXbUE9wtOvdMxpdMakfoasRT51F2aZb3klFbalF3OzKXpMd3klCBYPwtILd25SDB5lUbOldU0+fbYlFl9Zcby1cbY0FZniFZELfbYlFLlLwe0+ko51dULIGXppcJEPDbYzcbWPko9VdolVcaazcbkUcby1cbY0F1SLfbYlFLlLbULpwuShko9VdolVcaazcbkUcby1cbY0F1SLfbYlFLlLbUEqNUELdmasKXp9cBxzcUn7tJOvdMxpdMaaF2aZAMaxfBazfuYdkuazcbkkcy0INUELdmasKXp9tm0hgWppcJEPDbYzcbWPko9VdolVcAl0cB0sNmklFbalF3OzhULIGXPLDbnUcby1cbY0F1SLDbnfwe0Iko9VdolVcAl0cB0sNmklFbalF3OzKXPLFMaxfBazfuHIhz0Iko9VdolVcAl0cB0sNmklFbalF3OzKXp9tm0hgWppcJEPhuOpdBAPhUEsF2aScjP6T05HUA5yb0xkTAlAb1OkTAApwe49wtOSCbY0W2ilC2snftLIGXPLCbciDBxiCMxlA3Oifuazwe0IHeShgBaSF2AIDBCIhti0DB1lhtLIRbYldoC6KL9KTrlKOa9HUA1kay9AUA1yhUE+NUELdoyzfyn1F2inftLIGXPLCbciDBxiCMxlA3Oifuazwe0IHTShgBaSF2AIGXPLCbciDBxiCMxlA3Oifuazwe0IHjShgWPLDbnTfoy0fbHINUndbTShkolXFZE9wtiiFmkiGULLF2aZfMaZRT5mcbOnfuOZDBk1foAPF2aScjP6OLlyTrOgUanThTShcM9ZcByjDtEPkolXFZniFZELDbEpwuShkolXToyzfrYPcBYqWbWINUnUcBOpFzP6DoflftieCBYPcAslGTP6c2a0htOjDoajD0slGUXLF2aZfMaZRT5mcbORcbLPhULSkolXhTShkolXToyzfyn1F2inftE9wyklcolzKjpPc2a0hrYiC2ilU2a5KjpmcbWPkun1F2iRcbLSkuYlFmclFJ0+c2a0U2a5htLpRtOpFtL7tMlMwtIPfolscUIpwt1zcBxMKjpNTLxkTLagTrlYUaOgarlYOULINj0IkolXToyzfrYPcBYqWbWpwuShkolXWbciDBxiCMxlA3Oifuazwe0IHeShgBaSF2AIDBCIhti0DB1lhtLIRbYldoC6KL9KTrlKOa9HUA1kay9AUA1yhUE+NUELDbnHCbY0AuazDry0hUn7tJOpFry2CBlSCBkScaY0CbO1FZE9wer7tm1lduYlwuShkolXWbciDBxiCMxlA3Oifuazwe0IHjShgWPLDbnTfoy0fbYdkolXbUE9wtOpFry2CBlSCBkScaY0CbO1FzShgWPLF2aZfMaZRT5zcbOnfuOZDBk1foAPk3O5FoAmRtO0GbnlhTShkuYlFmclFJ0+F2a0WbO0FMlJfbOlhtfvdMxpdMAmRtOvdMxpdMApKXPLF2aZfMaZRT5zcbOnfuOZDBk1foAPk29VdolVca91F2aZb2lLFZFSC29SdoajftILd25SDB5labYlFLlLFZLsNmaVDby1cUIpRT52CBx1cbHPhUL7tJOzcbk2cbwsNmYlfry0fukpCma0cUImDbngd25SDB5lkZXLDbnNdMxpdMApKXPLF2aZfMaZRT5zcbOnfuOZDBk1foAPk2lXb29VdolVca91F2aZb2lLFZFSkolXT25SDB5labYlFLlLFZL7tJOzcbk2cbwsNmYlfry0fukpCma0cUImFMaxfBaz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\NfCoWIaiOaMQ^]\V

Function Calls

fopen 1
fread 3
strtr 2
fclose 1
urldecode 1
str_replace 1
base64_decode 3

Variables

$O000O0O00 True
$O0O000O00 fgets
$O0O000O0O fgetc
$O0O00OO00 fread
$OO00O0000 12328
$OO00O00O0 namespace App\Models; use App\Utils\CacheKey; use Exception..
$OOO000000 fg6sbehpra4co_tnd
$OOO00000O strtr
$OOO0000O0 base64_decode
$OOO000O00 fopen
$OOO0O0O00 index.php

Stats

MD5 d4e12ae5f721481790fdc3c59352f0ca
Eval Count 3
Decode Time 99 ms