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
// // Copyright (c) 2025 Klemens Morgenstern (klemens.morgenstern@gmx.net) // // Distributed under 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) // #ifndef BOOST_COBALT_IO_BUFFER_HPP #define BOOST_COBALT_IO_BUFFER_HPP #include #include #include #include namespace boost::cobalt::io { using asio::buffer; using asio::mutable_buffer; struct mutable_buffer_sequence { std::size_t buffer_count() const {return tail_.size() + 1u;} #if defined(BOOST_ASIO_HAS_IO_URING) mutable_buffer_sequence(asio::mutable_registered_buffer buffer = {}) : registered_(buffer) { } mutable_buffer_sequence(asio::mutable_buffer head) : registered_{} { this->head_ = head; } mutable_buffer_sequence(const mutable_buffer_sequence & rhs) : registered_(rhs.registered_), tail_(rhs.tail_) {} #else mutable_buffer_sequence(asio::mutable_registered_buffer buffer = {}) : head_(buffer.buffer()) { } mutable_buffer_sequence(asio::mutable_buffer head) : head_{head} { } mutable_buffer_sequence(const mutable_buffer_sequence & rhs) : head_(rhs.head_), tail_(rhs.tail_) {} #endif mutable_buffer_sequence& operator=(const mutable_buffer_sequence & rhs) { #if defined(BOOST_ASIO_HAS_IO_URING) registered_ = rhs.registered_; #else head_ = rhs.head_; #endif tail_ = rhs.tail_; return *this; } ~mutable_buffer_sequence() {} template requires (std::constructible_from, const T&>) mutable_buffer_sequence(const T & value) #if defined(BOOST_ASIO_HAS_IO_URING) : registered_{} #endif { std::span spn(value); if (!spn.empty()) { head_ = spn.front(); tail_ = spn.subspan(1u); } } mutable_buffer_sequence(std::span spn) #if defined(BOOST_ASIO_HAS_IO_URING) : registered_{} #endif { if (!spn.empty()) { head_ = spn.front(); tail_ = spn.subspan(1u); } } mutable_buffer_sequence & operator+=(std::size_t n) { if (n < head_.size()) head_ += n; else { n -= head_.size(); std::size_t idx = 0u; while (idx < tail_.size() && n > tail_[idx].size() ) n -= tail_[idx++].size(); if (idx == tail_.size()) // we're exceeding the size, so just drop everything { tail_ = {}; head_ = {}; } if (tail_.empty()) head_ = {}; else { head_ = tail_[idx]; head_ += n; tail_ = tail_.subspan(idx + 1); } } return *this; } struct const_iterator { using iterator_category = std::random_access_iterator_tag; using value_type = asio::mutable_buffer; using difference_type = std::ptrdiff_t; using pointer = const asio::mutable_buffer*; using reference = const asio::mutable_buffer&; BOOST_COBALT_MSVC_NOINLINE const_iterator(asio::mutable_buffer head, std::span tail, std::size_t offset = std::numeric_limits::max()) : head_(head), tail_(tail), offset_(offset) {} BOOST_COBALT_MSVC_NOINLINE reference & operator*() const { return offset_ == std::numeric_limits::max() ? head_ : tail_[offset_]; } BOOST_COBALT_MSVC_NOINLINE pointer operator->() const { return offset_ == std::numeric_limits::max() ? &head_ : &tail_[offset_]; } const_iterator operator++() { offset_++; return *this; } const_iterator operator++(int) { auto o = *this; offset_ ++ ; return o; } const_iterator operator--() { offset_ --; return *this; } const_iterator operator--(int) { auto o = *this; offset_ -- ; return o; } const_iterator operator+(difference_type diff) const { auto res = *this; res.offset_ += diff; return res; } const_iterator operator-(difference_type diff) const { auto res = *this; res.offset_ -= diff; return res; } const_iterator& operator+=(difference_type diff) { offset_ += diff; return *this; } const_iterator operator-=(difference_type diff) { offset_ -= diff; return *this; } reference operator[](difference_type n) const { auto idx = offset_ + n; return idx == std::numeric_limits::max() ? head_ : tail_[idx]; } difference_type operator-(const_iterator itr) const { return static_cast(offset_) - static_cast(itr.offset_); } friend auto operator<=>(const const_iterator & lhs, const const_iterator & rhs) { return std::make_tuple(lhs.head_.data(), lhs.head_.size(), lhs.tail_.data(), lhs.tail_.size(), lhs.offset_) <=> std::make_tuple(rhs.head_.data(), rhs.head_.size(), rhs.tail_.data(), rhs.tail_.size(), rhs.offset_); }; friend bool operator==(const const_iterator & lhs, const const_iterator & rhs) { return std::make_tuple(lhs.head_.data(), lhs.head_.size(), lhs.tail_.data(), lhs.tail_.size(), lhs.offset_) == std::make_tuple(rhs.head_.data(), rhs.head_.size(), rhs.tail_.data(), rhs.tail_.size(), rhs.offset_); } friend bool operator!=(const const_iterator & lhs, const const_iterator & rhs) { return std::make_tuple(lhs.head_.data(), lhs.head_.size(), lhs.tail_.data(), lhs.tail_.size(), lhs.offset_) != std::make_tuple(rhs.head_.data(), rhs.head_.size(), rhs.tail_.data(), rhs.tail_.size(), rhs.offset_); } private: asio::mutable_buffer head_; std::span tail_; std::size_t offset_{std::numeric_limits::max()}; }; BOOST_COBALT_MSVC_NOINLINE const_iterator begin() const {return const_iterator{head_, tail_};} BOOST_COBALT_MSVC_NOINLINE const_iterator end() const {return const_iterator{head_, tail_, tail_.size()};} bool is_registered() const { #if defined(BOOST_ASIO_HAS_IO_URING) return registered_.id() != asio::registered_buffer_id(); #else return false; #endif } template friend auto visit(const mutable_buffer_sequence & seq, Func && func) { if (seq.buffer_count() > 1u) return std::forward(func)(seq); #if defined(BOOST_ASIO_HAS_IO_URING) else if (seq.is_registered()) return std::forward(func)(seq.registered_); #endif else return std::forward(func)(seq.head_); } private: #if defined(BOOST_ASIO_HAS_IO_URING) union { asio::mutable_registered_buffer registered_{}; asio::mutable_buffer head_; }; #else asio::mutable_buffer head_; #endif std::span tail_; }; using asio::const_buffer; struct const_buffer_sequence { std::size_t buffer_count() const {return tail_.size() + 1u;} #if defined(BOOST_ASIO_HAS_IO_URING) const_buffer_sequence(asio::const_registered_buffer buffer = {}) : registered_(buffer) {} const_buffer_sequence(asio::mutable_registered_buffer buffer) : registered_(buffer) {} const_buffer_sequence(asio::const_buffer head) : registered_{} { this->head_ = head; } const_buffer_sequence(asio::mutable_buffer head) : registered_{} { this->head_ = head; } const_buffer_sequence(const const_buffer_sequence & rhs) : registered_(rhs.registered_), tail_(rhs.tail_) {} #else const_buffer_sequence(asio::const_registered_buffer buffer = {}) : head_(buffer.buffer()) {} const_buffer_sequence(asio::mutable_registered_buffer buffer) : head_(buffer.buffer()) {} const_buffer_sequence(asio::const_buffer head) : head_{ head} { } const_buffer_sequence(asio::mutable_buffer head) : head_{ head} { } const_buffer_sequence(const const_buffer_sequence & rhs) : head_(rhs.head_), tail_(rhs.tail_) {} #endif template requires (std::constructible_from, const T&>) const_buffer_sequence(const T & value) #if defined(BOOST_ASIO_HAS_IO_URING) : registered_{} #endif { std::span spn(value); if (!spn.empty()) { head_ = spn.front(); tail_ = spn.subspan(1u); } } const_buffer_sequence& operator=(const const_buffer_sequence & rhs) { #if defined(BOOST_ASIO_HAS_IO_URING) registered_ = rhs.registered_; #else head_ = rhs.head_; #endif tail_ = rhs.tail_; return *this; } ~const_buffer_sequence() {} const_buffer_sequence(std::span spn) #if defined(BOOST_ASIO_HAS_IO_URING) : registered_{} #endif { if (!spn.empty()) { head_ = spn.front(); tail_ = spn.subspan(1u); } } const_buffer_sequence & operator+=(std::size_t n) { if (n < head_.size()) head_ += n; else { n -= head_.size(); std::size_t idx = 0u; while (idx < tail_.size() && n > tail_[idx].size() ) n -= tail_[idx++].size(); if (idx == tail_.size()) // we're exceeding the size, so just drop everything { tail_ = {}; head_ = {}; } if (tail_.empty()) head_ = {}; else { head_ = tail_[idx]; head_ += n; tail_ = tail_.subspan(idx + 1); } } return *this; } struct const_iterator { using iterator_category = std::random_access_iterator_tag; using value_type = asio::const_buffer; using difference_type = std::ptrdiff_t; using pointer = const asio::const_buffer*; using reference = const asio::const_buffer&; BOOST_COBALT_MSVC_NOINLINE const_iterator(asio::const_buffer head, std::span tail, std::size_t offset = std::numeric_limits::max()) : head_(head), tail_(tail), offset_(offset) { } BOOST_COBALT_MSVC_NOINLINE reference & operator*() const { return offset_ == std::numeric_limits::max() ? head_ : tail_[offset_]; } BOOST_COBALT_MSVC_NOINLINE pointer operator->() const { return offset_ == std::numeric_limits::max() ? &head_ : &tail_[offset_]; } const_iterator operator++() { offset_++; return *this; } const_iterator operator++(int) { auto o = *this; offset_ ++ ; return o; } const_iterator operator--() { offset_ --; return *this; } const_iterator operator--(int) { auto o = *this; offset_ -- ; return o; } const_iterator operator+(difference_type diff) const { auto res = *this; res.offset_ += diff; return res; } const_iterator operator-(difference_type diff) const { auto res = *this; res.offset_ -= diff; return res; } const_iterator& operator+=(difference_type diff) { offset_ += diff; return *this; } const_iterator operator-=(difference_type diff) { offset_ -= diff; return *this; } BOOST_COBALT_MSVC_NOINLINE reference operator[](difference_type n) const { auto idx = offset_ + n; return idx == std::numeric_limits::max() ? head_ : tail_[idx]; } difference_type operator-(const_iterator itr) const { return static_cast(offset_) - static_cast(itr.offset_); } friend auto operator<=>(const const_iterator & lhs, const const_iterator & rhs) { return std::make_tuple(lhs.head_.data(), lhs.head_.size(), lhs.tail_.data(), lhs.tail_.size(), lhs.offset_) <=> std::make_tuple(rhs.head_.data(), rhs.head_.size(), rhs.tail_.data(), rhs.tail_.size(), rhs.offset_); }; friend bool operator==(const const_iterator & lhs, const const_iterator & rhs) { return std::make_tuple(lhs.head_.data(), lhs.head_.size(), lhs.tail_.data(), lhs.tail_.size(), lhs.offset_) == std::make_tuple(rhs.head_.data(), rhs.head_.size(), rhs.tail_.data(), rhs.tail_.size(), rhs.offset_); } friend bool operator!=(const const_iterator & lhs, const const_iterator & rhs) { return std::make_tuple(lhs.head_.data(), lhs.head_.size(), lhs.tail_.data(), lhs.tail_.size(), lhs.offset_) != std::make_tuple(rhs.head_.data(), rhs.head_.size(), rhs.tail_.data(), rhs.tail_.size(), rhs.offset_); } private: asio::const_buffer head_; std::span tail_; std::size_t offset_{std::numeric_limits::max()}; }; BOOST_COBALT_MSVC_NOINLINE const_iterator begin() const {return const_iterator{head_, tail_};} BOOST_COBALT_MSVC_NOINLINE const_iterator end() const {return const_iterator{head_, tail_, tail_.size()};} bool is_registered() const { #if defined(BOOST_ASIO_HAS_IO_URING) return registered_.id() != asio::registered_buffer_id(); #else return false; #endif } template friend auto visit(const const_buffer_sequence & seq, Func && func) { if (seq.buffer_count() > 1u) return std::forward(func)(seq); // Windows doesn't support registerd buffers anyhow #if defined(BOOST_ASIO_HAS_IO_URING) else if (seq.is_registered()) return std::forward(func)(seq.registered_); #endif else return std::forward(func)(seq.head_); } private: #if defined(BOOST_ASIO_HAS_IO_URING) union { asio::const_registered_buffer registered_; asio::const_buffer head_; }; #else asio::const_buffer head_; #endif std::span tail_; }; using asio::buffer_copy; using asio::buffer_size; } #endif //BOOST_COBALT_IO_BUFFER_HPP