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
#ifndef BOOST_PYTHON_SLICE_JDB20040105_HPP #define BOOST_PYTHON_SLICE_JDB20040105_HPP // Copyright (c) 2004 Jonathan Brandmeyer // Use, modification and distribution are subject to the // Boost Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) #include #include #include #include #include #include #include #include namespace boost { namespace python { namespace detail { class BOOST_PYTHON_DECL slice_base : public object { public: // Get the Python objects associated with the slice. In principle, these // may be any arbitrary Python type, but in practice they are usually // integers. If one or more parameter is ommited in the Python expression // that created this slice, than that parameter is None here, and compares // equal to a default-constructed boost::python::object. // If a user-defined type wishes to support slicing, then support for the // special meaning associated with negative indices is up to the user. object start() const; object stop() const; object step() const; protected: explicit slice_base(PyObject*, PyObject*, PyObject*); BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS(slice_base, object) }; } class slice : public detail::slice_base { typedef detail::slice_base base; public: // Equivalent to slice(::) slice() : base(0,0,0) {} // Each argument must be slice_nil, or implicitly convertable to object. // They should normally be integers. template slice( Integer1 start, Integer2 stop) : base( object(start).ptr(), object(stop).ptr(), 0 ) {} template slice( Integer1 start, Integer2 stop, Integer3 stride) : base( object(start).ptr(), object(stop).ptr(), object(stride).ptr() ) {} // The following algorithm is intended to automate the process of // determining a slice range when you want to fully support negative // indices and non-singular step sizes. Its functionallity is simmilar to // PySlice_GetIndicesEx() in the Python/C API, but tailored for C++ users. // This template returns a slice::range struct that, when used in the // following iterative loop, will traverse a slice of the function's // arguments. // while (start != end) { // do_foo(...); // std::advance( start, step); // } // do_foo(...); // repeat exactly once more. // Arguments: a [begin, end) pair of STL-conforming random-access iterators. // Return: slice::range, where start and stop define a _closed_ interval // that covers at most [begin, end-1] of the provided arguments, and a step // that is non-zero. // Throws: error_already_set() if any of the indices are neither None nor // integers, or the slice has a step value of zero. // std::invalid_argument if the resulting range would be empty. Normally, // you should catch this exception and return an empty sequence of the // appropriate type. // Performance: constant time for random-access iterators. // Rationale: // closed-interval: If an open interval were used, then for a non-singular // value for step, the required state for the end iterator could be // beyond the one-past-the-end postion of the specified range. While // probably harmless, the behavior of STL-conforming iterators is // undefined in this case. // exceptions on zero-length range: It is impossible to define a closed // interval over an empty range, so some other form of error checking // would have to be used by the user to prevent undefined behavior. In // the case where the user fails to catch the exception, it will simply // be translated to Python by the default exception handling mechanisms. template struct range { RandomAccessIterator start; RandomAccessIterator stop; typename iterator_difference::type step; }; template slice::range get_indices( const RandomAccessIterator& begin, const RandomAccessIterator& end) const { // This is based loosely on PySlice_GetIndicesEx(), but it has been // carefully crafted to ensure that these iterators never fall out of // the range of the container. slice::range ret; typedef typename iterator_difference::type difference_type; difference_type max_dist = std::distance(begin, end); object slice_start = this->start(); object slice_stop = this->stop(); object slice_step = this->step(); // Extract the step. if (slice_step == object()) { ret.step = 1; } else { ret.step = extract( slice_step); if (ret.step == 0) { PyErr_SetString( PyExc_IndexError, "step size cannot be zero."); throw_error_already_set(); } } // Setup the start iterator. if (slice_start == object()) { if (ret.step < 0) { ret.start = end; --ret.start; } else ret.start = begin; } else { difference_type i = extract( slice_start); if (i >= max_dist && ret.step > 0) throw std::invalid_argument( "Zero-length slice"); if (i >= 0) { ret.start = begin; BOOST_USING_STD_MIN(); std::advance( ret.start, min BOOST_PREVENT_MACRO_SUBSTITUTION(i, max_dist-1)); } else { if (i < -max_dist && ret.step < 0) throw std::invalid_argument( "Zero-length slice"); ret.start = end; // Advance start (towards begin) not farther than begin. std::advance( ret.start, (-i < max_dist) ? i : -max_dist ); } } // Set up the stop iterator. This one is a little trickier since slices // define a [) range, and we are returning a [] range. if (slice_stop == object()) { if (ret.step < 0) { ret.stop = begin; } else { ret.stop = end; std::advance( ret.stop, -1); } } else { difference_type i = extract(slice_stop); // First, branch on which direction we are going with this. if (ret.step < 0) { if (i+1 >= max_dist || i == -1) throw std::invalid_argument( "Zero-length slice"); if (i >= 0) { ret.stop = begin; std::advance( ret.stop, i+1); } else { // i is negative, but more negative than -1. ret.stop = end; std::advance( ret.stop, (-i < max_dist) ? i : -max_dist); } } else { // stepping forward if (i == 0 || -i >= max_dist) throw std::invalid_argument( "Zero-length slice"); if (i > 0) { ret.stop = begin; std::advance( ret.stop, (std::min)( i-1, max_dist-1)); } else { // i is negative, but not more negative than -max_dist ret.stop = end; std::advance( ret.stop, i-1); } } } // Now the fun part, handling the possibilites surrounding step. // At this point, step has been initialized, ret.stop, and ret.step // represent the widest possible range that could be traveled // (inclusive), and final_dist is the maximum distance covered by the // slice. typename iterator_difference::type final_dist = std::distance( ret.start, ret.stop); // First case, if both ret.start and ret.stop are equal, then step // is irrelevant and we can return here. if (final_dist == 0) return ret; // Second, if there is a sign mismatch, than the resulting range and // step size conflict: std::advance( ret.start, ret.step) goes away from // ret.stop. if ((final_dist > 0) != (ret.step > 0)) throw std::invalid_argument( "Zero-length slice."); // Finally, if the last step puts us past the end, we move ret.stop // towards ret.start in the amount of the remainder. // I don't remember all of the oolies surrounding negative modulii, // so I am handling each of these cases separately. if (final_dist < 0) { difference_type remainder = -final_dist % -ret.step; std::advance( ret.stop, remainder); } else { difference_type remainder = final_dist % ret.step; std::advance( ret.stop, -remainder); } return ret; } // Incorrect spelling. DO NOT USE. Only here for backward compatibility. // Corrected 2011-06-14. template slice::range get_indicies( const RandomAccessIterator& begin, const RandomAccessIterator& end) const { return get_indices(begin, end); } public: // This declaration, in conjunction with the specialization of // object_manager_traits<> below, allows C++ functions accepting slice // arguments to be called from from Python. These constructors should never // be used in client code. BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS(slice, detail::slice_base) }; namespace converter { template<> struct object_manager_traits : pytype_object_manager_traits<&PySlice_Type, slice> { }; } // !namesapce converter } } // !namespace ::boost::python #endif // !defined BOOST_PYTHON_SLICE_JDB20040105_HPP