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
// // SPDX-License-Identifier: BSD-3-Clause // Copyright (c) Weta Digital, Ltd and Contributors to the OpenEXR Project. // #ifndef INCLUDED_IMF_PARTHELPER_H #define INCLUDED_IMF_PARTHELPER_H //----------------------------------------------------------------------------- // // Functions to help split channels into separate parts: provide a list of // channels, with desired views. call SplitChannels to assign a part to each // layer, or correct the name of the channel. // Also can enumerate the parts in a file and list which parts channels are in // // This is a good way to offer a 'create Multipart file' checkbox to the user in a // write dialog box: Populate a list of MultiViewChannelName objects, // call SplitChannels with whether single or multipart files are required. // Then write the number of parts it specifies, using internal_name for the channel // names in the ChannelList and FrameBuffer objects. There should be no need // for different codepaths for single part and multipart files // // Similarly, on reading a file as a MultiPartInputFile, use GetChannelsInMultiPartFile to // enumerate all channels in the file, using internal_name in FrameBuffer objects // to read the channel // // //----------------------------------------------------------------------------- #include "ImfChannelList.h" #include "ImfExport.h" #include "ImfForward.h" #include "ImfMultiPartInputFile.h" #include "ImfMultiView.h" #include "ImfNamespace.h" #include "ImfStandardAttributes.h" #include "ImfStringVectorAttribute.h" #include #include #include OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER struct MultiViewChannelName { public: std::string name; ///< name of channel std::string view; ///< view for channel int part_number; ///< part number: updated by SplitChannels std::string internal_name; ///< name used in headers: in singlepart mode, may contain viewname //return layer for this channel, or "" if no layer std::string getLayer () const { std::size_t q = name.rfind ('.'); if (q == name.npos) { return ""; } return name.substr (0, q); } std::string getSuffix () const { std::size_t q = name.rfind ('.'); if (q == name.npos) { return name; } return name.substr (q + 1); } }; // ///\brief assigns individual channels to different parts based on their layer and view name /// input is an array, list, vector etc of MultiViewChannelName objects /// on entry, each MultiViewChannelName name/view must be set (view can be empty if not multiview) /// /// if singlepart set, then on exit part_number will be zero, and internal_name will have view name inserted /// otherwise, each channel will be assigned to a different part based on its layer name and view name /// /// @param begin pointer to first MultiViewChannelName item /// @param end pointer to end of MultiViewChannelName item array /// @return total number of parts required // template inline int SplitChannels ( const T& begin, const T& end, bool multipart = true, const std::string& heroView = std::string ()) { if (!multipart) { for (T i = begin; i != end; i++) { i->part_number = 0; //does this have a view name set? if (i->view == "") { i->internal_name = i->name; } else { std::string lname = i->getLayer (); // no layer, only non-hero views get view name in layer name if (lname == "") { if (i->view == heroView) { i->internal_name = i->name; } else { i->internal_name = i->view + "." + i->name; } } else { i->internal_name = lname + "." + i->view + "." + i->getSuffix (); } } } // single part created return 1; } else { // step 1: extract individual layers and parts // for each layer, enumerate which views are active std::map> viewsInLayers; for (T i = begin; i != end; i++) { viewsInLayers[i->getLayer ()].insert (i->view); } // step 2: assign a part number to each layer/view std::map, int> layerToPart; int partCount = 0; for (std::map>::const_iterator layer = viewsInLayers.begin (); layer != viewsInLayers.end (); layer++) { // if this layer has a heroView, insert that first bool layer_has_hero = layer->second.find (heroView) != layer->second.end (); if (layer_has_hero) { layerToPart[std::make_pair (layer->first, heroView)] = partCount++; } // insert other layers which aren't the hero view for (std::set::const_iterator view = layer->second.begin (); view != layer->second.end (); view++) { if (*view != heroView) { layerToPart[std::make_pair (layer->first, *view)] = partCount++; } } } // step 3: update part number of each provided channel for (T i = begin; i != end; i++) { i->internal_name = i->name; i->part_number = layerToPart[std::make_pair (i->getLayer (), i->view)]; } // return number of parts created return partCount; } } // // populate the chans vector with a list of channels in the file // and their corresponding part number // template inline void GetChannelsInMultiPartFile (const MultiPartInputFile& file, T& chans) { bool has_multiview = false; StringVector mview; if (file.parts () == 1) { if (hasMultiView (file.header (0))) { mview = multiView (file.header (0)); has_multiview = true; } } for (int p = 0; p < file.parts (); p++) { const ChannelList& c = file.header (p).channels (); std::string view = ""; if (file.header (p).hasView ()) { view = file.header (p).view (); } for (ChannelList::ConstIterator i = c.begin (); i != c.end (); i++) { MultiViewChannelName m; m.name = std::string (i.name ()); m.internal_name = m.name; if (has_multiview) { m.view = viewFromChannelName (m.name, mview); m.name = removeViewName (m.internal_name, m.view); } else { m.view = view; } m.part_number = p; chans.push_back (m); } } } OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT #endif