Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.12/site-packages/PIL/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.12/site-packages/PIL/__pycache__/JpegImagePlugin.cpython-312.pyc

�

&ٜg8|���ddlmZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZm
Z
mZddlmZmZddlmZddlmZddlmZdd	lmZdd
lmZddlmZe
rddlmZd�d�Z d�d�Z!d�d�Z"d�d�Z#d�d�Z$iddde#f�ddde#f�ddde#f�ddde#f�dd d!e f�d"d#d$e#f�d%d&d'e#f�d(d)d*e#f�d+d,�d-d.d/e#f�d0d1d2e#f�d3d4d5e#f�d6d7d8e f�d9d:d;e#f�d<d=d>e#f�d?d@dAe#f�dBdC�idDdE�dFdG�dHdI�dJdK�dLdM�dNdO�dPdQ�dRdS�dTdU�dVdWdXe f�dYdZd[e$f�d\d]d^e f�d_d`dae f�dbdcdde#f�dedfdge f�dhdidje!f�dkdldme!f��idndodpe!f�dqdrdse!f�dtdudve!f�dwdxdye!f�dzd{d|e!f�d}d~de!f�d�d�d�e!f�d�d�d�e!f�d�d�d�e!f�d�d�d�e!f�d�d�d�e!f�d�d�d�e!f�d�d�d�e!f�d�d�d�e!f�d�d��d�d��d�d���d�d�d�d�d�d�d�d�d�d�d�d�d�e"fd���Z%d�d��Z&Gd��d
ej"�Z'd�d��Z(d�d��Z)d�d�d�d�d�d�d��Z*d�Z+ddd�d��Z,d�d��Z-d�d��Z.d�d��Z/	d�					d�d��Z0ejbe'jde0e&�ejfe'jde.�ejhe'jdgd���ejje'jdd��y)��)�annotationsN)�IO�
TYPE_CHECKING�Any�)�Image�	ImageFile)�i16be)�i32be)�o8)�o16be)�	deprecate)�presets��MpoImageFile�
JpegImageFilec��t|jjd��dz
}tj|j|�y)N�)�i16�fp�readr	�
_safe_read)�self�marker�ns   �>/usr/local/lib/python3.12/site-packages/PIL/JpegImagePlugin.py�Skipr>s1���D�G�G�L�L��O��q� �A�
������!�$�c�^�t|jjd��dz
}tj|j|�}d|dz��}||j
|<|jj||f�|dk(r�|dddk(r�t|d�x|jd<}t|d	�|jd
<	|d}t|d�t|d
�f}|dk(r||jd<n$|dk(rtd�|D��|jd<||jd<||jd<y|dk(rf|dddk(r^d|jvr|jdxx|ddz
cc<y||jd<|jj�|z
dz|_
y|dk(r+|dddk(r#|jdd�d|jd<y|dk(r|dddk(r||jd<y|dk(r$|dddk(r|jj|�y|d k(r�|dd!d"k(r�d!}|jj!d#i�}	|||dzd$k(r�	|dz
}t||�}
|dz
}||}|d|zz
}||dzz
}t#||�}|dz
}||||z}
|
d%k(r9t#|
d&�d'zt|
d�t#|
d�d'zt|
d�d(�|	|
<n|
|	|
<||z
}||dzz
}|||dzd$k(r��yy|d)k(r7|ddd*k(r/t|d�|jd+<	|d,}||jd-<y|dk(rI|ddd.k(r@|dd|jd/<|jj�|z
dz|jd0<yyy#t$rYywxYw#t$j&$rYywxYw#t($rYywxYw)1Nr�APP����sJFIF��jfif��jfif_version���
r�dpic3�&K�|]	}|dz���y�w)�R���Q@N�)�.0�ds  r�	<genexpr>zAPP.<locals>.<genexpr>_s����(H�<�a��T��<�s��	jfif_unit�jfif_density���sExif�exif��http://ns.adobe.com/xap/1.0/��xmp��sFPXR�flashpix��ICC_PROFILE���sPhotoshop 3.0�	photoshops8BIMi�ri)�XResolution�DisplayedUnitsX�YResolution�DisplayedUnitsY��sAdobe�adobe��adobe_transformsMPF�mp�mpoffset)rrrr	r�app�applist�append�info�divmod�tuple�	Exception�tell�_exif_offset�split�icclist�
setdefault�i32�struct�error�
IndexError)rrr�srL�versionr2r3�offsetrA�code�name_len�size�datarIs               rr r Cs��
	�D�G�G�L�L��O��q� �A����T�W�W�a�(�A�����}�
�C��D�H�H�S�M��L�L����a��!�
���A�b�q�E�W�,�&)�!�Q�i�/��	�	�&��G�$*�7�C�$8��	�	�.�!�	5��!��I��q�!�9�c�!�R�j�0�L��A�~�#/��	�	�%� ��a��#(�(H�<�(H�#H��	�	�%� �%.�D�I�I�k�"�(4�D�I�I�n�%�	�6�	�a���e�{�2��T�Y�Y���I�I�f���1�2��&�� !�D�I�I�f�� $������� 2�Q� 6�D��	�6�	�a���f�(K�K��7�7�7�A�.�q�1��	�	�%��	�6�	�a���e�y�0� !��	�	�*��	�6�	�a���f�(8�8�	
�����A��	�6�	�a���f�(<�<����I�I�(�(��b�9�	����!��$��/�
��!����1�f�~���!����V�9���!�h�,�&���&�1�*�$���1�f�~���!�����&�4�-�0���6�>�'*�4��|�e�';�+.�t�Q�<�'*�4��|�e�';�+.�t�R�=�	'�I�d�O�'+�I�d�O��$����&�1�*�$��3���!��$��/�:
�6�	�a���e�x�/� ��A�Y��	�	�'��	;���e�O�,;�D�I�I�'�(�	�6�	�a���e�x�/��A�B�%��	�	�$��!%������� 2�Q� 6��	�	�*��0�	��[�	��	��B�<�<�
��
���	��	�s7�>M8�BN�N �8	N�N�N�N� 	N,�+N,c��t|jjd��dz
}tj|j|�}||j
d<||jd<|jjd|f�y)Nr�comment�COM)	rrrr	rrOrLrMrN)rrrr\s    rrere�sf��	�D�G�G�L�L��O��q� �A����T�W�W�a�(�A��D�I�I�i���D�H�H�U�O��L�L�����
�#rc�&�t|jjd��dz
}tj|j|�}t|d�t|d�f|_|d|_|jdk7rd|j�d�}t|��|d|_|jdk(rd	|_	nI|jdk(rd
|_	n2|jdk(rd|_	nd|j�d
�}t|��|dvrdx|jd<|jd<|jr�|jj�|jddt|j�k(r.|jD�cgc]}|dd��	}}dj|�}nd}||jd<g|_tdt|�d�D];}|||dz}	|j j#|	d|	ddz|	ddz|	df��=ycc}w)Nr�rrr)zcannot handle z-bit layersr$�L�RGBr#�CMYKz
-layer images)���������progressive�progression�
r@r�icc_profiler5�r!)rrrr	r�_size�bits�SyntaxError�layers�_moderOrV�sort�len�join�range�layerrN)
rrrr\�msg�p�profilerr�i�ts
          r�SOFr��s���	�D�G�G�L�L��O��q� �A����T�W�W�a�(�A��Q���C��1�I�%�D�J��!��D�I��y�y�A�~��t�y�y�k��5���#����A�$�D�K��{�{�a����
�	
����	���
�	
����	���
��t�{�{�m�=�9���#���
�1�1�>?�?��	�	�-� �4�9�9�]�#;��|�|��������<�<��?�2��#�d�l�l�"3�3�'+�|�|�4�|�!�q���v�|�G�4��(�(�7�+�K��K�#.��	�	�-� ����
�1�c�!�f�a�
 ��
�a�!�a�%�L���
�
���1�Q�4��1����Q�q�T�B�Y��!��=�>�!��5s�Hc��t|jjd��dz
}tj|j|�}t|�r�|d}|dzdk(rdnd}d|dzz}t|�|kr
d}t
|��tj|dk(rdnd|d|�}tjd	k(r|dkDr|j�tD�	cgc]}	||	��	c}	|j|d
z<||d}t|�r��yycc}	w)Nrrrsr�@zbad quantization table marker�B�H�littler!)
rrrr	rrzrv�array�sys�	byteorder�byteswap�zigzag_index�quantization)
rrrr\�v�	precision�	qt_lengthr~rbr�s
          r�DQTr��s���	�D�G�G�L�L��O��q� �A����T�W�W�a�(�A�

�a�&�
�a�D���r�'�Q�,�A�Q�	��	�B��&�	��q�6�I��1�C��c�"�"��{�{�)�q�.�3�c�1�Q�y�>�J���=�=�H�$��Q���M�M�O�6B�$C�l��T�!�W�l�$C����!�b�&�!�
�i�j�M���a�&��%Ds�D	i���SOF0zBaseline DCTi���SOF1zExtended Sequential DCTrk�SOF2zProgressive DCTi��SOF3zSpatial losslessi��DHTzDefine Huffman tablei��SOF5zDifferential sequential DCTrl�SOF6zDifferential progressive DCTi��SOF7zDifferential spatiali�)�JPG�	ExtensionNi��SOF9zExtended sequential DCT (AC)rm�SOF10zProgressive DCT (AC)i��SOF11zSpatial lossless DCT (AC)i��DACz%Define arithmetic coding conditioningi��SOF13z Differential sequential DCT (AC)rn�SOF14z!Differential progressive DCT (AC)i��SOF15zDifferential spatial (AC)i�)�RST0z	Restart 0Ni�)�RST1z	Restart 1Ni�)�RST2z	Restart 2Ni�)�RST3z	Restart 3Ni�)�RST4z	Restart 4Ni�)�RST5z	Restart 5Ni�)�RST6z	Restart 6Ni�)�RST7z	Restart 7Ni�)�SOIzStart of imageNi�)�EOIzEnd of imageN���SOSz
Start of scani�r�zDefine quantization tablei��DNLzDefine number of linesi��DRIzDefine restart intervali��DHPzDefine hierarchical progressioni��EXPzExpand reference componentr"�APP0zApplication segment 0r4�APP1zApplication segment 1r;�APP2zApplication segment 2i��APP3zApplication segment 3i��APP4zApplication segment 4i��APP5zApplication segment 5i��APP6zApplication segment 6i��APP7zApplication segment 7i��APP8zApplication segment 8i��APP9zApplication segment 9i��APP10zApplication segment 10i��APP11zApplication segment 11i��APP12zApplication segment 12r?�APP13zApplication segment 13rF�APP14zApplication segment 14i��APP15zApplication segment 15i�)�JPG0zExtension 0Ni�)�JPG1zExtension 1Ni�)�JPG2zExtension 2N)�JPG3zExtension 3N)�JPG4zExtension 4N)�JPG5zExtension 5N)�JPG6zExtension 6N)�JPG7zExtension 7N)�JPG8zExtension 8N)�JPG9zExtension 9N)�JPG10zExtension 10N)�JPG11zExtension 11N)�JPG12zExtension 12N)�JPG13zExtension 13Nre�Comment)i�i�i��i��i��i��i��i��i��i���i��c��|dddk(S)Nrgs��r.)�prefixs r�_acceptr�Fs���"�1�:��(�(rc���eZdZdZdZd
d�Zdd�Zd�fd�Zd�fd�Zdd�Z							dd�Z
d
d	�Zdd
�Zd
d�Z
dd�Z�xZS)r�JPEGzJPEG (ISO 10918)c�B�|jjd�}t|�s
d}t|��d}dx|_|_d|_g|_i|_i|_	i|_
i|_g|_g|_
	|d}|dk(r*||jjd�z}t|�}n|jjd�}�Q|tvr�t|\}}}|�	|||�|dk(rK|j }|j dk(rd	}t#j$d
d|j&zd|df�g|_nS|jjd�}n5|d
vrd}n.|dk(r|jjd�}n
d}t|����|j+�y)Nrgznot a JPEG file��r�rr�rj�CMYK;I�jpeg�rr�>�ri�zno marker found)rrr�rvrurwrTr}�_huffman_dc�_huffman_acr�rLrMrVr�MARKER�moder	�_Tilera�tile�_read_dpi_from_exif)rr\r~r��name�description�handler�rawmodes        r�_openzJpegImageFile._openSs����G�G�L�L��O���q�z�#�C��c�"�"���#$�#��	�D�K����79��
�+-���+-���24���%'���02���$&�����!��A��D�y�������Q��'����F���G�G�L�L��O����F�{�-3�A�Y�*��k�7��&��D�!�$���;�"�i�i�G��y�y�F�*�"*��!��������0B�A��QS�}�U�!�D�I���G�G�L�L��O���k�!����f���G�G�L�L��O��'��!�#�&�&�?�B	
� � �"rc�V�|dvrt|d�t|d|z�St|��)N)�
huffman_ac�
huffman_dcr=�_)r�getattr�AttributeError)rr�s  r�__getattr__zJpegImageFile.__getattr__�s1���/�/��d�B���4��t��,�,��T�"�"rc�R��t�|��|j|jgzS�N)�super�__getstate__rwr})r�	__class__s �rr�zJpegImageFile.__getstate__�s#����w�#�%����d�j�j�(A�A�Arc�H��t�|�|�|dd\|_|_y)Nr$)r��__setstate__rwr})r�stater�s  �rr�zJpegImageFile.__setstate__�s$���
���U�#�"'���)����T�Zrc��|jj|�}|s$tjrt	|d�sd|_y|S)z�
        internal: read more image data
        For premature EOF and LOAD_TRUNCATED_IMAGES adds EOI marker
        so libjpeg can finish decoding
        �_endedTs��)rrr	�LOAD_TRUNCATED_IMAGES�hasattrr�)r�
read_bytesr\s   r�	load_readzJpegImageFile.load_read�s;��
�G�G�L�L��$���Y�4�4�W�T�8�=T��D�K���rc���t|j�dk7ry|jry|jd\}}}}d}|j}t	|t
�sJ�|ddk(r|dvr||_|df}|r�t|jd|dz|jd|dz�}dD]	}	||	k\s�	n|�J�|d|d|d|dz
	zdz
|	z|dz|d|dz
|	zdz
|	z|dzf}|jd|	zdz
|	z|jd|	zdz
|	zf|_|	}tj||||�g|_|df|_dd|d|z|d|zf}
|j|
fS)	Nrrri)rh�YCbCrr�)r)r#rrrrg)rzr��
decoderconfigra�
isinstancerQrx�minrtr	r�r�)rr�rar0�e�o�a�scale�
original_sizer\�boxs           r�draftzJpegImageFile.draft�s����t�y�y�>�Q��������Y�Y�q�\�
��1�a�����	�	�
��!�U�#�#�#��Q�4�5�=�T�^�3��D�J��b��A����	�	�!���Q��/����1���a��1H�I�E�!���A�:��"��=� �=��!���!���1���!���q��1�$��*�Q�q�T�1��1���!���q��1�$��*�Q�q�T�1�	�A� �9�9�Q�<�!�+�a�/�A�5��	�	�!��q�8H�1�8L�QR�7R�S�D�J��E��_�_�Q��1�a�0�1��	�#�Q�Z����!�]�1�%��-�}�Q�/?�%�/G�H���y�y�#�~�rc�
�tj�\}}tj|�tjj|j�r$tjdd||jg�n#	tj|�d}t|��	tj|�5}|j�|j|_ddd�	tj|�|jj |_|jj$|_g|_y#t$rY��wxYw#1swY�lxYw#t$rY�dwxYw#	tj|�w#t$rYwwxYwxYw)N�djpeg�-outfilezInvalid Filename)�tempfile�mkstemp�os�close�path�exists�filename�
subprocess�
check_call�unlink�OSError�
ValueErrorr�open�load�imr�rxrartr�)r�frr~�_ims     r�
load_djpegzJpegImageFile.load_djpeg�s&���"�"�$���4�
�����
�7�7�>�>�$�-�-�(��!�!�7�J��d�m�m�"L�M�
��	�	�$��%�C��S�/�!�	����D�!�S����
��&�&���"�
��	�	�$���W�W�\�\��
��W�W�\�\��
���	��'�
��
��"�!���
��
��
��	�	�$����
��
�sl�;D1�E�3"E�E�E�1	D=�<D=�E	�E�	E�E�F�E3�2F�3	E?�<F�>E?�?Fc��t|�Sr�)�_getexif�rs rr$zJpegImageFile._getexif�s����~�rc��d|jvsd|jvry	|j�}|d}|d}	t|d�|dz}t	j
|�r
d}t
|��|dk(r|d	z}||f|jd<y#t$r|}Y�KwxYw#tjtttttf$rd
|jd<YywxYw)Nr+r6i(irrzDPI is not a numberrgr-)�Hr')rO�getexif�float�	TypeError�math�isnanrrYrZ�KeyErrorrv�ZeroDivisionError)rr6�resolution_unit�x_resolutionr+r~s      rr�z!JpegImageFile._read_dpi_from_exif�s����D�I�I���t�y�y�!8��	&��<�<�>�D�"�6�l�O���<�L�
#��L��O�,�|�A��>���z�z�#��+�� ��o�%��!�#��t���"�C�x�D�I�I�e����
#�"��
#��
�L�L������

�	&� &�D�I�I�e��	&�s4�B�B�=B�B�B�B�B�<C�Cc��t|�Sr�)�_getmpr%s rr2zJpegImageFile._getmps���d�|�r)�return�None)r��strr3r)r3�	list[Any])r�r6r3r4)r�intr3�bytes)r�z
str | Noneraztuple[int, int] | Noner3z0tuple[str, tuple[int, int, float, float]] | None)r3�dict[int, Any] | None)�__name__�
__module__�__qualname__�format�format_descriptionr�r�r�r�rr
r"r$r�r2�
__classcell__)r�s@rrrOs[���
�F�+��6#�p#�B�,�� &��&�&<�&�	9�&�P�>�&�:rc�\�d|jvry|j�j�S)Nr6)rOr(�_get_merged_dictr%s rr$r$s&��
�T�Y�Y����<�<�>�*�*�,�,rc	���	|jd}tj|�}|j	d�}|dddk(rdnd}ddlm}	|j|�}|j|j�|j|�t|�}	|d
}
g}	|d}td
|
�D]�}
tj |�d�||
dz�}d}tt#||��}t%|ddz�t%|ddz�t%|ddz�|ddzdz	|ddzdz	|ddzd�}|dd
k(rd|d<n
d}	t|	��ddd d!d"d#d$d%�}|j'|d&d'�|d&<||d<|j)|���||d<|S#t$rYywxYw#t$r}d	}	t|	�|�d}~wwxYw#t$r}d}	t|	�|�d}~wwxYw#t$r}d(}	t|	�|�d}~wwxYw))NrJr)r#sMM*�>�<r)�TiffImagePluginz)malformed MP Index (unreadable directory)��z(malformed MP Index (no number of images)i�r�LLLHHrs)�	Attribute�Size�
DataOffset�EntryNo1�EntryNo2rHli@i i�i�i���)�DependentParentImageFlag�DependentChildImageFlag�RepresentativeImageFlag�Reserved�ImageDataFormat�MPTyperSr�z!unsupported picture format in MPO�	Undefinedz Large Thumbnail (VGA Equivalent)z$Large Thumbnail (Full HD Equivalent)zMulti-Frame Image (Panorama)zMulti-Frame Image: (Disparity)z Multi-Frame Image: (Multi-Angle)zBaseline MP Primary Image)riiiiiirT�Unknownz!malformed MP Index (bad MP Entry))rOr-�io�BytesIOrr�rE�ImageFileDirectory_v2�seek�nextr�dictrRrvr|rY�unpack_from�zip�bool�getrN)rrb�
file_contents�head�
endiannessrErOrJrr~�quant�	mpentries�rawmpentries�entrynum�
unpackedentry�labels�mpentry�mpentryattr�	mptypemaps                   rr2r2sp����y�y�����J�J�t�$�M����a� �D��R�a��$7�7��S�J�!�&��4�4�T�:�����4�9�9�%��	�	�-� �
�$�Z��
&��6�
��
�I�$&��&�z���a���H�"�.�.��,�e�$�l�H�r�M��M�Q�F��3�v�}�5�6�G�,0���1E��1Q�,R�+/���0D��0P�+Q�+/���0D��0P�+Q�$�[�1�W�=�"�D�$+�K�$8�G�$D��#K�!�+�.��;�
�K��,�-��2�17��-�.�9��!�#�&�&�%�<�@�8�:�<�5��I�%.�M�M�+�h�2G��$S�K��!�#.�G�K� ����W�%�=(�>��6�
��I��A������&�9���#��A�%��&���&�8���#��A�%��&��N�&�1���#��A�%��&�s[�F
�
AF�F;�C0G�
	F�F�	F8�%F3�3F8�;	G�G�G�	G6�#G1�1G6rhrir�r)�1rhri�RGBXrjr)@rrr$r5r@r!rM�rr#r(rqrs�r7�*rgr)r=����)�+�	rH�rN��(�,�5r*��� �'�-�4�6���!�&�.�3�7�<��"�%�/�2�8�;�=�#�$�0�1�9�:�>�?r))rrrrrr)rrrrrr)rrrrrrc���t|t�r|jdvry|jddd|jdddz|jdddz}tj|d�S)N)rr#���rrrgr)rrrwr}�	samplingsr`)r�samplings  r�get_samplingr��si���b�-�(�B�I�I��,?���x�x��{�1�Q��"�(�(�1�+�a��"2�2�R�X�X�a�[��1�5E�E�H��=�=��2�&�&rc�
�|jdk(s|jdk(r
d}t|��	t|j}|j}|jdd�D�cgc]
}t|���}}|jdd�}	|jd	d�}
|jd
�}|	dk(rd}	d}
d}n�|	tvr/t|	}d}	|jd	d�}
|jd�}nnt|	t�s
d
}t|��|
tvrt|
jd	d�}
t|t�r |tvrt|jd�}|
dk(rd}
nD|
dk(rd}
n<|
dk(rd}
n4|
dk(rd}
n,|
dk(r'|jdk7r
d}t|��t|�}
				d4d�}
|dk(r)|jdk7r
d}t|��t!|dd�}|
|�}|jdd�}d}|jd�}|rJd}||z
}t#|�|kDr
d}t|��t%d|zt#|�z�}|d|zdz|zz
}|jd�}|r~d }||z
}g}|r|j'|d|�||d}|r�d}|D]P}t%d|zt#|�z�}|d!|zd"zt)|�zt)t#|��z|zz
}|dz
}�R|jd#|j*jd#��}|jd$d%�xs|jd&d%�}|jd'd%�}|jd(d�}t|t,j.�r|j1�}t#|�|kDr
d)}t|��|	||jd*d�||jd+d%�|jd,d�|d|d|
|jd-d�|jd.d�||||f|_d}|s|r�|jd/k(r#d0|j4dz|j4dz}nL|	d1k\s|	dk(r#d|j4dz|j4dz}n|j4d|j4dz}|r|t#|�d2zz
}|r7|t#|�dzz
}n%t7|t#|�d2zt#|�dz�}t9j:||t9j<d3d|j4zd|�g|�y#t
$r!}d|j�d�}t
|�|�d}~wwxYwcc}w)5Nrz cannot write empty image as JPEGzcannot write mode z as JPEGr+r��qualityr��subsampling�qtables�keepr�zInvalid quality settingz4:4:4z4:2:2rz4:2:0rz4:1:1r�z3Cannot use 'keep' when original image is not a JPEGc��|�|St|t�rz	|j�D��cgc]5}|jdd�dj�D]
}t	|����7}}}tdt
|�d�D�cgc]
}|||dz��}}t|tttf�r�t|t�r*tt
|��D�cgc]}||vs�||��}}nt|t�rt|�}dt
|�cxkrdksnd}t|��t|�D]E\}}		t
|	�dk7r
d}t|��tjd|	�}
t|
�||<�G|Sycc}}wcc}w#t$r}d}t|�|�d}~wwxYwcc}w#t$r}d}t|�|�d}~wwxYw)	N�#rrr�zInvalid quantization tabler$z$None or too many quantization tablesr�)rr5�
splitlinesrUr7r|rzrrQ�listr\�	enumerater*r�)r��line�num�linesr\rr~�key�idx�table�table_arrays           r�validate_qtablesz_save.<locals>.validate_qtables�s���
�?��N��g�s�#�

P�!(� 2� 2� 4�� 4��#�z�z�#�q�1�!�4�:�:�<����H�<�� 4���7<�A�s�5�z�2�6N�O�6N��5��Q��V�,�6N��O��g��t�T�2�3��'�4�(�,1�#�g�,�,?��,?�S�3�'�>�G�C�L�,?����G�U�+��w�-����G��(�q�(�<�� ��o�%�'��0�
��U�	5��5�z�R�'�:��'��n�,�"'�+�+�c�5�"9�K�
$(��#4�G�C�L�1��N�+4����P��	�
-�2�� ��o�1�,��
-����!�1�6�C�$�S�/�q�0��1�sR�F�:E8�#F�>E>�	F"�F"�41F'�8F�	F�F�F�'	G�0F>�>G�extrarr�r:r7zXMP data is too longs��r8rrr@s��r>rdroFrp�optimizer6zEXIF data is too long�smooth�keep_rgb�
streamtype�restart_marker_blocks�restart_marker_rowsrjr#�_r$r�)r�zKstr | tuple[list[int], ...] | list[list[int]] | dict[int, list[int]] | Noner3zlist[list[int]] | None)�width�heightr�RAWMODEr�r-r�encoderinfor`�roundrrr7r5r=r�r�rz�o16rNrrOr�Exif�tobytes�
encoderconfigra�maxr	�_saver�)rrrr~r�rrO�xr+r�r�r��presetr�r��MAX_BYTES_IN_MARKERr:�overhead_len�max_data_bytes_in_markerrarr�markersr�rrdror�r6�bufsizes                             rr�r��s���	�x�x�1�}��	�	�Q��0����o��"��"�'�'�"��
�>�>�D�!�X�X�e�V�4�
5�4��5��8�4�C�
5��h�h�y�"�%�G��(�(�=�"�-�K��h�h�y�!�G��&��������	�G�	���!�����j�j���3���*�*�^�,��
���
%�'����o���'�!�!�+�.�2�2�=�"�E�K��g�s�#��7�(:��g�&�*�*�>�:�G��g����	��	���	��	���	��	���	��	�
�9�9���G�C��S�/�!�"�2�&��(�W�(�
 �	(�T�&��
�9�9���G�C��S�/�!��"�n�d�3���w�'�G��H�H�W�c�"�E���
�(�(�5�/�C�
���#6��#E� ��s�8�.�.�(�C��S�/�!��1�|�#�c�#�h�.�/��
��t�#�&I�I�C�O�O���(�(�=�)�K����#6��#E� �����N�N�;�'@�(@�A�B�%�&>�&?�@�K��
���F��q�<�'�#�f�+�5�6�D�����"�#��Q�%���S��\�"�	#�
��
�E�
��F�A���h�h�y�"�'�'�+�+�i�"8�9�G�
�(�(�=�%�0�R�D�H�H�]�E�4R�K��x�x�
�E�*�H��8�8�F�C� �D��$��
�
�#��|�|�~��
�4�y�&�&�%����o��	������1�������U�#�����q�!��A���A������(�!�,����&��*���
���B��,�G��;�
�7�7�f���"�'�'�!�*�n�r�w�w�q�z�1�G�
��]�g��m��"�'�'�!�*�n�r�w�w�q�z�1�G��g�g�a�j�2�7�7�1�:�-�G���s�4�y�1�}�$�G���s�5�z�A�~�%�G��g�s�4�y�1�}�c�%�j�1�n�=��
�O�O�
�B������"�'�'�)9�1�g�F�G����w�"�"�2�7�7�)�8�4���c�l��!��"��6s�T� U�	U�"T>�>Uc��|j�}tjdd||g�	tj|�y#t
$rYywxYw)N�cjpegr)�_dumprrrrr)rrrrs    r�_save_cjpegr�ZsG���x�x�z�H����7�J��(�C�D�
�
�	�	�(����
��
�s�A�	A
�A
c�6�t||�}	|j�}|�C|ddkDr;|jD]\}}|dk(s�d|vs�|cSddlm}|j
||�}|S#ttf$rY|St$rtjd�Y|SwxYw)NrFrr�s hdrgm:Version="rzTImage appears to be a malformed MPO file, it will be interpreted as a base JPEG file)rr2rM�MpoImagePluginr�adoptr*r[rv�warnings�warn)rrr�mpheader�segment�contentrs       r�jpeg_factoryr�fs���
�r�8�	$�B�
��9�9�;����H�U�O�a�$7�$&�J�J� ����f�$�)<��)G��I�%/�

5�$��#�#�B��1�B��I��
�z�"�
���I��
��
�
�
.�	
��I�
�s)�1A%�A%�A%�	A%�%B�7B�B)z.jfifz.jpez.jpgz.jpegz
image/jpeg)rrrr7r3r4)r�r8r3r_)rrr3r9)r�Image.Imager3r7)rr�r�	IO[bytes]rzstr | bytesr3r4r�)rr�rzstr | bytes | Noner3zJpegImageFile | MpoImageFile)6�
__future__rr�rWr+rrYrr�rr��typingrrrr�rr	�_binaryr
rrrXrr
r��
_deprecater�JpegPresetsrr�rrr rer�r�r�r�rr$r2r�r�r�r�r�r�r��
register_openr=�
register_save�register_extensions�
register_mimer.rr�<module>r�s���D#��	��	�
��
���)�)��!�!��!�!� ��,�%�
g7�T$�-?�`�6@
�
�V�^�S�)�@
�
�V�.��4�@
��V�&��,�@
��V�'��-�	@
�
�U�*�D�1�@
��V�2�C�8�
@
��V�3�S�9�@
��V�+�S�1�@
��&�@
��V�3�S�9�@
��W�,�c�2�@
��W�1�3�7�@
��U�;�T�B�@
��W�8�#�>�@
��W�9�3�?�@
� �W�1�3�7�!@
�"�'�#@
�$�'�%@
�&�'�'@
�(�'�)@
�*�'�+@
�,�'�-@
�.�'�/@
�0�'�1@
�2�+�3@
�4�)�5@
�6�U�O�T�*�7@
�8�U�/��5�9@
�:�U�,�d�3�;@
�<�U�-�t�4�=@
�>�U�5�s�;�?@
�@�U�0�$�7�A@
�B�V�,�c�2�C@
�D�V�,�c�2�E@
�F�V�,�c�2�G@
�H�V�,�c�2�I@
�J�V�,�c�2�K@
�L�V�,�c�2�M@
�N�V�,�c�2�O@
�P�V�,�c�2�Q@
�R�V�,�c�2�S@
�T�V�,�c�2�U@
�V�W�.��4�W@
�X�W�.��4�Y@
�Z�W�.��4�[@
�\�W�.��4�]@
�^�W�.��4�_@
�`�W�.��4�a@
�b�)�c@
�d�)�e@
�f�)�g@
�h
*�)�)�)�)�)�)�+�+�+�+�
�I�s�#�@
��F)�A�I�'�'�A�H-�I�`

�	����
�
��	�����
�	�'�D�N
�37����/��!��<����M�(�(�,��@�����M�(�(�%�0�����-�.�.�0R�S�����M�(�(�,�7r

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists