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
package URI::otpauth; use warnings; use strict; use MIME::Base32(); use URI::Split(); use URI::Escape(); use parent qw( URI URI::_query ); our $VERSION = '5.34'; sub new { my ($class, @parameters) = @_; my %fields = $class->_set(@parameters); my $uri = URI::Split::uri_join( 'otpauth', $fields{type}, $class->_path(%fields), $class->_query(%fields), ); return bless \$uri, $class; } sub _parse { my $self = shift; my ($scheme, $type, $path, $query, $frag) = URI::Split::uri_split(${$self}); $path =~ s/^\///smxg; my @path_parts = split /:/smx, $path; my ($issuer_prefix, $account_name); if (scalar @path_parts == 1) { $account_name = $path_parts[0]; } else { $issuer_prefix = $path_parts[0]; $account_name = $path_parts[1]; } my %fields = (label => $path, type => $type, account_name => $account_name); my $issuer_parameter = $self->query_param('issuer'); if (defined $issuer_parameter) { if ((defined $issuer_prefix) && ($issuer_prefix ne $issuer_parameter)) { Carp::carp( "Issuer prefix from label '$issuer_prefix' does not match issuer parameter '$issuer_parameter'" ); } $fields{issuer} = $issuer_parameter; } elsif (defined $issuer_prefix) { $fields{issuer} = URI::Escape::uri_unescape($issuer_prefix); } if (my $encoded_secret = $self->query_param('secret')) { $fields{secret} = MIME::Base32::decode_base32($encoded_secret); } foreach my $name (qw(algorithm digits counter period)) { if (my $value = $self->query_param($name)) { $fields{$name} = $value; } } %fields = $self->_set(%fields); return ($scheme, $fields{type}, \%fields, $query, $frag); } my $label_escape_regex = qr/[^[:alnum:]@.]/smx; sub _set { my ($self, %fields) = @_; delete $fields{label}; if (defined $fields{account_name}) { if (defined $fields{issuer}) { $fields{label} = $fields{issuer} . q[:] . $fields{account_name}; } else { $fields{label} = $fields{account_name}; } } if (!length $fields{type}) { $fields{type} = 'totp'; } return %fields; } my %field_names = map { $_ => 1 } qw(secret label counter algorithm period digits issuer type account_name); my @query_names = qw(secret issuer algorithm digits counter period); my %defaults = (algorithm => 'SHA1', digits => 6, type => 'totp', period => 30); sub _field { my ($self, $name, @remainder) = @_; my ($scheme, $type, $fields, $query, $frag) = $self->_parse(); if (!@remainder) { if (defined $fields->{$name}) { return $fields->{$name}; } else { return $defaults{$name}; } } $fields->{$name} = shift @remainder; ${$self} = URI::Split::uri_join( $scheme, $fields->{type}, $self->_path(%{$fields}), $self->_query(%{$fields}), $frag ); return $self; } sub _query { my ($class, %fields) = @_; if (defined $fields{secret}) { $fields{secret} = MIME::Base32::encode_base32($fields{secret}); } else { Carp::croak('secret is a mandatory parameter for ' . __PACKAGE__); } return join q[&], map { join q[=], $_ => $fields{$_} } grep { exists $fields{$_} } @query_names; } sub _path { my ($class, %fields) = @_; my $path = $fields{label}; return $path; } sub type { my ($self, @parameters) = @_; return $self->_field('type', @parameters); } sub authority { return shift->type(@_); } sub label { my ($self, @parameters) = @_; return $self->_field('label', @parameters); } sub account_name { my ($self, @parameters) = @_; return $self->_field('account_name', @parameters); } sub issuer { my ($self, @parameters) = @_; return $self->_field('issuer', @parameters); } sub secret { my ($self, @parameters) = @_; return $self->_field('secret', @parameters); } sub algorithm { my ($self, @parameters) = @_; return $self->_field('algorithm', @parameters); } sub counter { my ($self, @parameters) = @_; return $self->_field('counter', @parameters); } sub digits { my ($self, @parameters) = @_; return $self->_field('digits', @parameters); } sub period { my ($self, @parameters) = @_; return $self->_field('period', @parameters); } 1; __END__ =head1 NAME URI::otpauth - URI scheme for secret keys for OTP secrets. Usually found in QR codes =head1 VERSION Version 5.29 =head1 SYNOPSIS use URI; # optauth URI from textual uri my $uri = URI->new( 'otpauth://totp/Example:alice@google.com?secret=NFZS25DINFZV643VOAZXELLTGNRXEM3UH4&issuer=Example' ); # same URI but created from arguments my $uri = URI::otpauth->new( type => 'totp', issuer => 'Example', account_name => 'alice@google.com', secret => 'is-this_sup3r-s3cr3t?' ); =head1 DESCRIPTION This URI scheme is defined in L: =head1 SUBROUTINES/METHODS =head2 C<< new >> Create a new URI::otpauth. The available arguments are listed below; =over =item * account_name - this can be the account name (probably an email address) used when authenticating with this secret. It is an optional field. =item * algorithm - this is the L that should be used. Current values are L, L or L. It is an optional field and will default to SHA1. =item * counter - this is only required when the type is HOTP. =item * digits - this determines the L of the code presented to the user. It is an optional field and will default to 6 digits. =item * issuer - this can be the L that this secret can be used to authenticate to. It is an optional field. =item * label - this is the L joined with a ":" character. It is an optional field. =item * period - this is the L. It is an optional field and will default to 30 seconds. =item * secret - this is the L that the L/L algorithm uses to derive the value. It is an arbitrary byte string and must remain private. This field is mandatory. =item * type - this can be 'L' or 'L'. This field will default to 'totp'. =back =head2 C Get or set the algorithm of this otpauth URI. =head2 C Get or set the account_name of this otpauth URI. =head2 C Get or set the counter of this otpauth URI. =head2 C Get or set the digits of this otpauth URI. =head2 C Get or set the issuer of this otpauth URI. =head2 C