§
    yØj&}  ã                  óp  — d dl mZ h d£Zd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
ddlmZmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ dZerd dlmZmZ ddlmZ dÐd„Z dÐd„Z!dÐd„Z"dÐd„Z#dÐd„Z$i 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/d0d1e#f“d2d3“d4d5d6e#f“d7d8d9e#f“d:d;d<e#f“d=d>d?e f“d@dAdBe#f“dCdDdEe#f“dFdGdHe#f“dIdJ“i dKdL“dMdN“dOdP“dQdR“dSdT“dUdV“dWdX“dYdZ“d[d\“d]d^d_e f“d`dadbe$f“dcdddee f“dfdgdhe f“didjdke#f“dldmdne f“dodpdqe!f“drdsdte!f“¥i dudvdwe!f“dxdydze!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•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"fd²œ¥Z%dÑd¶„Z& G d·„ dej        ¦  «        Z'dÒd¹„Z(dÒdº„Z)d»d»d¼d¼d½d¾d¿œZ*dÀZ+d ddÁdÂœZ,dÓdÅ„Z-dÔdÊ„Z.	 dÕdÖdÍ„Z/ ej0        e'j1        e/e&¦  «          ej2        e'j1        e.¦  «          ej3        e'j1        g dÎ¢¦  «          ej4        e'j1        dÏ¦  «         dS )×é    )Úannotations>   úPIL._binaryúPIL.JpegPresetsÚioÚmathÚarrayÚstructÚwarningsÚ
subprocessNé   )ÚImageÚ	ImageFile)Úi16be)Úi32be)Úo8)Úo16be)Ú	deprecate)ÚpresetsF)ÚIOÚAny©ÚMpoImageFileÚselfÚJpegImageFileÚmarkerÚintÚreturnÚNonec                ó    — | j         €J ‚t          | j                              d¦  «        ¦  «        dz
  }t          j        | j         |¦  «         d S )Né   )ÚfpÚi16Úreadr   Ú
_safe_read)r   r   Úns      úˆ/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/PIL/JpegImagePlugin.pyÚSkipr'   J   sI   € ØŒ7ÐÐÐÝˆDŒG�LŠL˜‰OŒOÑÔ˜qÑ €AÝÔ˜œ !Ñ$Ô$Ð$Ð$Ð$ó    c                ó„  — | j         €J ‚t          | j                              d¦  «        ¦  «        dz
  }t          j        | j         |¦  «        }d|dz  › �}|| j        |<   | j                             ||f¦  «         |dk    rÏ|                     d¦  «        rºt          |d¦  «        x| j	        d<   }t          |d¦  «        | j	        d	<   	 |d
         }t          |d¦  «        t          |d¦  «        f}|dk    r|| j	        d<   n'|dk    r!t          d„ |D ¦   «         ¦  «        | j	        d<   || j	        d<   || j	        d<   d S # t          $ r Y d S w xY w|dk    rm|                     d¦  «        rXd| j	        v r| j	        dxx         |dd …         z  cc<   d S || j	        d<   | j                              ¦   «         |z
  dz   | _        d S |dk    r;|                     d¦  «        r&|                     dd¦  «        d         | j	        d<   d S |dk    r!|                     d¦  «        r|| j	        d<   d S |dk    r1|                     d¦  «        r| j                             |¦  «         d S |dk    �r%|                     d¦  «        �rd}| j	                             d i ¦  «        }		 |||d!z   …         d"k    rÈ|d!z  }t          ||¦  «        }
|dz  }||         }|d|z   z  }||dz  z  }t%          ||¦  «        }|d!z  }||||z   …         }|
d#k    rIt%          |d$¦  «        d%z  t          |d!¦  «        t%          |d¦  «        d%z  t          |d&¦  «        d'œ|	|
<   n||	|
<   ||z  }||dz  z  }|||d!z   …         d"k    °Æd S d S # t&          j        $ r Y d S w xY w|d(k    rS|                     d)¦  «        r>t          |d¦  «        | j	        d*<   	 |d+         }|| j	        d,<   d S # t*          $ r Y d S w xY w|dk    rP|                     d-¦  «        r=|d!d …         | j	        d.<   | j                              ¦   «         |z
  d!z   | j	        d/<   d S d S d S )0Nr    ÚAPPé   éàÿ  s   JFIFé   Újfifé   Újfif_versioné   é   é
   r   Údpic              3  ó    K  — | ]	}|d z  V — Œ
dS )çR¸…ëQ@N© )Ú.0Úds     r&   ú	<genexpr>zAPP.<locals>.<genexpr>m   s&   è è € Ð(HÐ(H°a¨¨T©Ð(HÐ(HÐ(HÐ(HÐ(HÐ(Hr(   Ú	jfif_unitÚjfif_densityéáÿ  s   Exif  Úexifé   ó   http://ns.adobe.com/xap/1.0/ ó    Úxmpéâÿ  s   FPXR Úflashpixó   ICC_PROFILE éíÿ  s   Photoshop 3.0 é   Ú	photoshopé   s   8BIMií  r   i   é   )ÚXResolutionÚDisplayedUnitsXÚYResolutionÚDisplayedUnitsYéîÿ  s   AdobeÚadobeé   Úadobe_transforms   MPF ÚmpÚmpoffset)r!   r"   r#   r   r$   ÚappÚapplistÚappendÚ
startswithÚinfoÚdivmodÚtupleÚ	ExceptionÚtellÚ_exif_offsetÚsplitÚicclistÚ
setdefaultÚi32r	   ÚerrorÚ
IndexError)r   r   r%   ÚsrU   Úversionr;   r<   ÚoffsetrH   ÚcodeÚname_lenÚsizeÚdatarR   s                  r&   r*   r*   P   s	  € ð
 Œ7ÐÐÐÝˆDŒG�LŠL˜‰OŒOÑÔ˜qÑ €AÝÔ˜TœW aÑ(Ô(€Aà
�˜‘Ð
Ð
€Cà€D„HˆS�MØ„L×Ò˜˜a˜Ñ!Ô!Ð!à�ÒÐ˜AŸLšL¨Ñ1Ô1Ðå&)¨!¨Q¡i¤iÐ/ˆŒ	�&Ñ˜GÝ$*¨7°CÑ$8Ô$8ˆŒ	�.Ñ!ð	5Ø˜!œˆIÝ˜q !™9œ9¥c¨!¨R¡j¤jÐ0ˆLð ˜AŠ~ˆ~Ø#/�”	˜%Ñ Ð Ø˜a’�å#(Ð(HÐ(H¸<Ð(HÑ(HÔ(HÑ#HÔ#H�”	˜%Ñ Ø%.ˆDŒI�kÑ"Ø(4ˆDŒI�nÑ%Ð%Ð%øõ ð 	ð 	ð 	ØˆDˆDð	øøøð 
�6Ò	Ð	˜aŸlšl¨;Ñ7Ô7Ð	à�T”YÐÐØŒI�fÐÐÔ  1 2 2¤Ñ&ÐÐÑÐÐà !ˆDŒI�fÑØ $¤§¢¡¤°Ñ 2°QÑ 6ˆDÔÐÐØ	�6Ò	Ð	˜aŸlšlÐ+NÑOÔOÐ	ØŸ7š7 7¨AÑ.Ô.¨qÔ1ˆŒ	�%ÑÐÐØ	�6Ò	Ð	˜aŸlšl¨9Ñ5Ô5Ð	à !ˆŒ	�*ÑÐÐØ	�6Ò	Ð	˜aŸlšlÐ+;Ñ<Ô<Ð	ð 	Œ×Ò˜AÑÔÐÐÐØ	�6Ò	Ñ	˜aŸlšlÐ+?Ñ@Ô@Ñ	àˆØ”I×(Ò(¨°bÑ9Ô9ˆ	ð	Ø�F˜V a™ZÐ'Ô(¨GÒ3Ð3Ø˜!‘�å˜1˜f‘~”~�Ø˜!‘�à˜Vœ9�à˜!˜h™,Ñ&�Ø˜& 1™*Ñ$�å˜1˜f‘~”~�Ø˜!‘�Ø˜ &¨4¡-Ð/Ô0�Ø˜6’>�>å'*¨4°¡|¤|°eÑ';Ý+.¨t°Q©<¬<Ý'*¨4°¡|¤|°eÑ';Ý+.¨t°R©=¬=ð	'ð '�I˜d‘O�Oð '+�I˜d‘OØ˜$‘�Ø˜& 1™*Ñ$�ð1 �F˜V a™ZÐ'Ô(¨GÒ3Ð3Ð3Ð3Ð3Ð3øõ2 Œ|ð 	ð 	ð 	ØˆDˆDð	øøøð 
�6Ò	Ð	˜aŸlšl¨8Ñ4Ô4Ð	Ý   A™YœYˆŒ	�'Ñð	;Ø œeˆOð ,;ˆDŒIÐ'Ñ(Ð(Ð(øõ ð 	ð 	ð 	ØˆDˆDð	øøøð 
�6Ò	Ð	˜aŸlšl¨8Ñ4Ô4Ð	à˜A˜B˜Bœ%ˆŒ	�$‰ð !%¤§¢¡¤°Ñ 2°QÑ 6ˆŒ	�*ÑÐÐð 
Ð	Ð	Ð	s7   Ã
(E  Å 
EÅEÊCM9 Í9NÎNÏO Ï
O%Ï$O%c                ó   — | j         €J ‚t          | j                              d¦  «        ¦  «        dz
  }t          j        | j         |¦  «        }|| j        d<   || j        d<   | j                             d|f¦  «         d S )Nr    ÚcommentÚCOM)	r!   r"   r#   r   r$   rY   rU   rV   rW   )r   r   r%   re   s       r&   rn   rn   »   s{   € ð Œ7ÐÐÐÝˆDŒG�LŠL˜‰OŒOÑÔ˜qÑ €AÝÔ˜TœW aÑ(Ô(€Aà€D„IˆiÑØ€D„HˆU�OØ„L×Ò˜ ˜
Ñ#Ô#Ð#Ð#Ð#r(   c                ó  — | j         €J ‚t          | j                              d¦  «        ¦  «        dz
  }t          j        | j         |¦  «        }t          |d¦  «        t          |d¦  «        f| _        |d         | _        | j        dk    rd| j        › d�}t          |¦  «        ‚|d         | _        | j        dk    rd	| _	        n@| j        dk    rd
| _	        n-| j        dk    rd| _	        nd| j        › d�}t          |¦  «        ‚|dv rdx| j
        d<   | j
        d<   | j        r|| j                             ¦   «          | j        d         d         t          | j        ¦  «        k    r'd„ | j        D ¦   «         }d                     |¦  «        }nd }|| j
        d<   g | _        t          dt          |¦  «        d¦  «        D ]K}|||dz   …         }| j                             |d         |d         dz  |d         dz  |d         f¦  «         ŒLd S )Nr    é   r   r   r2   zcannot handle z-bit layersr-   ÚLÚRGBrI   ÚCMYKz-layer images)éÂÿ  éÆÿ  éÊÿ  éÎÿ  ÚprogressiveÚprogressioné   c                ó"   — g | ]}|d d…         ‘ŒS )rG   Nr7   )r8   Úps     r&   ú
<listcomp>zSOF.<locals>.<listcomp>ë   s    € Ð4Ð4Ð4 !�q˜˜˜”vÐ4Ð4Ð4r(   r(   Úicc_profiler?   é   r+   )r!   r"   r#   r   r$   Ú_sizeÚbitsÚSyntaxErrorÚlayersÚ_moderY   r`   ÚsortÚlenÚjoinÚrangeÚlayerrW   )	r   r   r%   re   ÚmsgÚprofiler~   ÚiÚts	            r&   ÚSOFrŽ   Ç   s  € ð Œ7ÐÐÐÝˆDŒG�LŠL˜‰OŒOÑÔ˜qÑ €AÝÔ˜TœW aÑ(Ô(€AÝ�Q˜‘”�C  1™IœIÐ%€D„Jà�!”€D„IØ„y�A‚~€~Ø5˜tœyÐ5Ð5Ð5ˆÝ˜#ÑÔÐà�A”$€D„KØ„{�aÒÐØˆŒ
ˆ
Ø	Œ˜Ò	Ð	ØˆŒ
ˆ
Ø	Œ˜Ò	Ð	ØˆŒ
ˆ
à9˜tœ{Ð9Ð9Ð9ˆÝ˜#ÑÔÐàÐ1Ð1Ð1Ø>?Ð?ˆŒ	�-Ñ  4¤9¨]Ñ#;à„|ð 	àŒ×ÒÑÔÐØŒ<˜Œ?˜2Ô¥# d¤lÑ"3Ô"3Ò3Ð3Ø4Ð4 t¤|Ð4Ñ4Ô4ˆGØŸ(š( 7Ñ+Ô+ˆKˆKàˆKØ#.ˆŒ	�-Ñ ØˆŒå�1•c˜!‘f”f˜aÑ Ô ð ?ð ?ˆØˆa�!�a‘%ˆiŒLˆàŒ
×Ò˜1˜Qœ4  1¤¨¡¨Q¨q¬T°B©Y¸¸!¼Ð=Ñ>Ô>Ð>Ð>ð?ð ?r(   c                óR  ‡— | j         €J ‚t          | j                              d¦  «        ¦  «        dz
  }t          j        | j         |¦  «        }t          |¦  «        rÉ|d         }|dz  dk    rdnd}d|dz  z   }t          |¦  «        |k     rd}t          |¦  «        ‚t          j        |dk    rdnd|d|…         ¦  «        Št          j	        d	k    r|dk    r‰ 
                    ¦   «          ˆfd
„t          D ¦   «         | j        |dz  <   ||d …         }t          |¦  «        °Çd S d S )Nr    r   r   r   é@   zbad quantization table markerÚBÚHÚlittlec                ó    •— g | ]
}‰|         ‘ŒS r7   r7   )r8   rŒ   rk   s     €r&   r}   zDQT.<locals>.<listcomp>  s   ø€ Ð$CÐ$CÐ$C° T¨!¤WÐ$CÐ$CÐ$Cr(   r+   )r!   r"   r#   r   r$   r†   r‚   r   ÚsysÚ	byteorderÚbyteswapÚzigzag_indexÚquantization)	r   r   r%   re   ÚvÚ	precisionÚ	qt_lengthrŠ   rk   s	           @r&   ÚDQTr�   ø   s@  ø€ ð Œ7ÐÐÐÝˆDŒG�LŠL˜‰OŒOÑÔ˜qÑ €AÝÔ˜TœW aÑ(Ô(€AÝ
ˆa‰&Œ&ð ØˆaŒDˆØ˜r™' Qš,˜,�A�A¨Qˆ	Ø˜	 B™Ñ&ˆ	Ýˆq‰6Œ6�IÒÐØ1ˆCÝ˜cÑ"Ô"Ð"ÝŒ{ )¨q¢. .˜3˜3°c¸1¸Q¸y¸[¼>ÑJÔJˆÝŒ=˜HÒ$Ð$¨°Qª¨Ø�MŠM‰OŒOˆOØ$CÐ$CÐ$CÐ$CµlÐ$CÑ$CÔ$CˆÔ˜!˜b™&Ñ!ØˆiˆjˆjŒMˆõ ˆa‰&Œ&ð ð ð ð ð r(   iÀÿ  ÚSOF0zBaseline DCTiÁÿ  ÚSOF1zExtended Sequential DCTrt   ÚSOF2zProgressive DCTiÃÿ  ÚSOF3zSpatial losslessiÄÿ  ÚDHTzDefine Huffman tableiÅÿ  ÚSOF5zDifferential sequential DCTru   ÚSOF6zDifferential progressive DCTiÇÿ  ÚSOF7zDifferential spatialiÈÿ  )ÚJPGÚ	ExtensionNiÉÿ  ÚSOF9zExtended sequential DCT (AC)rv   ÚSOF10zProgressive DCT (AC)iËÿ  ÚSOF11zSpatial lossless DCT (AC)iÌÿ  ÚDACz%Define arithmetic coding conditioningiÍÿ  ÚSOF13z Differential sequential DCT (AC)rw   ÚSOF14z!Differential progressive DCT (AC)iÏÿ  ÚSOF15zDifferential 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Øÿ  )ÚSOIzStart of imageNiÙÿ  )ÚEOIzEnd of imageNéÚÿ  ÚSOSzStart of scaniÛÿ  r�   zDefine quantization tableiÜÿ  ÚDNLzDefine number of linesiÝÿ  ÚDRIzDefine restart intervaliÞÿ  ÚDHPzDefine hierarchical progressionißÿ  ÚEXPzExpand reference componentr,   ÚAPP0zApplication segment 0r=   ÚAPP1zApplication segment 1rC   ÚAPP2zApplication segment 2iãÿ  ÚAPP3zApplication segment 3iäÿ  ÚAPP4zApplication segment 4iåÿ  ÚAPP5zApplication segment 5iæÿ  ÚAPP6zApplication segment 6içÿ  ÚAPP7zApplication segment 7ièÿ  ÚAPP8zApplication segment 8iéÿ  ÚAPP9zApplication segment 9iêÿ  ÚAPP10zApplication segment 10iëÿ  ÚAPP11zApplication segment 11iìÿ  ÚAPP12zApplication segment 12rF   ÚAPP13zApplication segment 13rO   ÚAPP14zApplication segment 14iïÿ  ÚAPP15zApplication segment 15iðÿ  )ÚJPG0zExtension 0Niñÿ  )ÚJPG1zExtension 1Niòÿ  )ÚJPG2zExtension 2N)ÚJPG3zExtension 3N)ÚJPG4zExtension 4N)ÚJPG5zExtension 5N)ÚJPG6zExtension 6N)ÚJPG7zExtension 7N)ÚJPG8zExtension 8N)ÚJPG9zExtension 9N)ÚJPG10zExtension 10N)ÚJPG11zExtension 11N)ÚJPG12zExtension 12N)ÚJPG13zExtension 13Nrn   ÚComment)ióÿ  iôÿ  iõÿ  iöÿ  i÷ÿ  iøÿ  iùÿ  iúÿ  iûÿ  iüÿ  éýÿ  iþÿ  ÚprefixÚbytesÚboolc                ó,   — |                       d¦  «        S )Ns   ÿØÿ)rX   )rß   s    r&   Ú_acceptrã   W  s   € à×Ò˜_Ñ-Ô-Ð-r(   c                  ól   ‡ — e Zd ZdZdZdd„Zdˆ fd„Zdˆ fd	„Zdd„Zdd„Z	dd„Z
dd„Zdd„Zdd„Zˆ xZS )r   ÚJPEGzJPEG (ISO 10918)r   r   c                ó¤  — | j         €J ‚| j                              d¦  «        }t          |¦  «        sd}t          |¦  «        ‚d}dx| _        | _        d| _        g | _        i | _        i | _	        i | _
        i | _        g | _        g | _        |�r-|d         }|dk    rA|| j                              d¦  «        z  }t          |¦  «        dk     rnît          |¦  «        }n| j                              d¦  «        }Œm|t           v r~t           |         \  }}}|� || |¦  «         |dk    r>| j        }| j        d	k    rd
}t%          j        dddg| j        ¢R d|df¦  «        g| _        nW| j                              d¦  «        }n9|dv rd}n2|dk    r| j                              d¦  «        }nd}t          |¦  «        ‚|�°-|                      ¦   «          d S )Nrp   znot a JPEG fileó   ÿr   éÿ   r   r    r¹   rs   úCMYK;IÚjpegÚ >   éÿÿ  r   i ÿ  zno marker found)r!   r#   rã   r‚   r�   rƒ   r^   r‰   Ú_huffman_dcÚ_huffman_acr™   rU   rV   r`   r†   r"   ÚMARKERÚmoder   Ú_Tilerj   ÚtileÚ_read_dpi_from_exif)r   re   rŠ   rŒ   ÚnameÚdescriptionÚhandlerÚrawmodes           r&   Ú_openzJpegImageFile._opend  sü  € ØŒwÐ"Ð"Ð"ØŒG�LŠL˜‰OŒOˆå�q‰zŒzð 	#Ø#ˆCÝ˜cÑ"Ô"Ð"Øˆð #$Ð#ˆŒ	�D”KØˆÔð 79ˆŒ
Ø+-ˆÔØ+-ˆÔØ24ˆÔØ%'ˆŒØ02ˆŒØ$&ˆŒàñ !	'Ø�!”ˆAØ�DŠyˆyØ�T”W—\’\ !‘_”_Ñ$�Ý�q‘6”6˜A’:�:ØÝ˜‘F”F��ð ”G—L’L ‘O”O�Øà•Fˆ{ˆ{Ý-3°A¬YÑ*��k 7ØÐ&Ø�G˜D !Ñ$Ô$Ð$Ø˜’;�;Ø"œi�GØ”y FÒ*Ð*Ø"*˜å!œ¨°°AÐ0B¸¼	Ð0BÐ0BÀAÈÐQSÀ}ÑUÔUð!�D”Ið Ø”G—L’L ‘O”O��Ø�kÐ!Ð!à��Ø�f’�Ø”G—L’L ‘O”O��à'�Ý! #Ñ&Ô&Ð&ðC ñ !	'ðF 	× Ò Ñ"Ô"Ð"Ð"Ð"r(   ú	list[Any]c                ób   •— t          ¦   «                              ¦   «         | j        | j        gz   S ©N)ÚsuperÚ__getstate__rƒ   r‰   )r   Ú	__class__s    €r&   rý   zJpegImageFile.__getstate__Ÿ  s'   ø€ Ý‰wŒw×#Ò#Ñ%Ô%¨¬°d´jÐ(AÑAÐAr(   Ústatec                óx   •— |dd …         \  | _         | _        t          ¦   «                              |¦  «         d S )Nr?   )rƒ   r‰   rü   Ú__setstate__)r   rÿ   rþ   s     €r&   r  zJpegImageFile.__setstate__¢  s7   ø€ Ø"'¨¨¨¤)ÑˆŒ�T”ZÝ‰Œ×Ò˜UÑ#Ô#Ð#Ð#Ð#r(   Ú
read_bytesr   rà   c                óš   — | j         €J ‚| j                              |¦  «        }|s%t          j        rt	          | d¦  «        s	d| _        dS |S )z›
        internal: read more image data
        For premature EOF and LOAD_TRUNCATED_IMAGES adds EOI marker
        so libjpeg can finish decoding
        NÚ_endedTs   ÿÙ)r!   r#   r   ÚLOAD_TRUNCATED_IMAGESÚhasattrr  )r   r  re   s      r&   Ú	load_readzJpegImageFile.load_read¦  s[   € ð ŒwÐ"Ð"Ð"ØŒG�LŠL˜Ñ$Ô$ˆàð 	•YÔ4ð 	½WÀTÈ8Ñ=TÔ=Tð 	ð ˆDŒKØ�;àˆr(   rð   ú
str | Nonerj   útuple[int, int] | Noneú0tuple[str, tuple[int, int, float, float]] | Nonec                ó  — t          | j        ¦  «        dk    rd S | j        rd S | j        d         \  }}}}d}| j        }t	          |t
          ¦  «        sJ ‚|d         dk    r|dv r|| _        |df}|rÐt          | j        d         |d         z  | j        d         |d         z  ¦  «        }dD ]
}	||	k    r nŒ|€J ‚|d         |d         |d         |d         z
  |	z   dz
  |	z  |d         z   |d         |d         z
  |	z   dz
  |	z  |d         z   f}| j        d         |	z   dz
  |	z  | j        d         |	z   dz
  |	z  f| _        |	}t          j
        ||||¦  «        g| _        |df| _        dd|d         |z  |d         |z  f}
| j        |
fS )	Nr   r   rr   )rq   ÚYCbCrrë   )r2   rI   r    r   r    rp   )r†   rò   Údecoderconfigrj   Ú
isinstancer[   r„   Úminr€   r   rñ   rð   )r   rð   rj   r9   ÚeÚoÚaÚscaleÚoriginal_sizere   Úboxs              r&   ÚdraftzJpegImageFile.draft·  sÝ  € õ ˆtŒy‰>Œ>˜QÒÐØ�4ð Ôð 	Ø�4à”Y˜q”\‰
ˆˆ1ˆa�ØˆØœ	ˆå˜!�UÑ#Ô#Ð#Ð#Ð#ØˆQŒ4�5Š=ˆ=˜T ^Ð3Ð3ØˆDŒJØ�b�ˆAàð 	Ý˜œ	 !œ¨¨Q¬Ñ/°´¸1´ÀÀaÄÑ1HÑIÔIˆEØ!ð ð �Ø˜A’:�:Ø�Eð à�=�=�=à�!”Ø�!”Ø�1”˜˜!œ‘˜q‘ 1Ñ$¨Ñ*¨Q¨q¬TÑ1Ø�1”˜˜!œ‘˜q‘ 1Ñ$¨Ñ*¨Q¨q¬TÑ1ð	ˆAð  œ9 Qœ<¨!Ñ+¨aÑ/°AÑ5¸¼	À!¼ÀqÑ8HÈ1Ñ8LÐQRÑ7RÐSˆDŒJØˆEå”_ Q¨¨1¨aÑ0Ô0Ð1ˆŒ	Ø# Q˜ZˆÔà�!�] 1Ô%¨Ñ-¨}¸QÔ/?À%Ñ/GÐHˆØŒy˜#ˆ~Ðr(   c                ó  — dd l }t          ddd¬¦  «         |                     ¦   «         \  }}t          j        |¦  «         t          j                             | j        ¦  «        rt          j	        dd|| j        g¦  «         n7	 t          j
        |¦  «         n# t          $ r Y nw xY wd}t          |¦  «        ‚	 t          j        |¦  «        5 }|                     ¦   «          |j        | _        d d d ¦  «         n# 1 swxY w Y   	 t          j
        |¦  «         n:# t          $ r Y n.w xY w# 	 t          j
        |¦  «         w # t          $ r Y w w xY wxY w| j        j        | _        | j        j        | _        g | _        d S )	Nr   Ú
load_djpegrG   z>Use the built-in JPEG decoder instead, or call djpeg yourself.)ÚactionÚdjpegz-outfilezInvalid Filename)Útempfiler   ÚmkstempÚosÚcloseÚpathÚexistsÚfilenamer   Ú
check_callÚunlinkÚOSErrorÚ
ValueErrorr   ÚopenÚloadÚimrð   r„   rj   r€   rò   )r   r  Úfr  rŠ   Ú_ims         r&   r  zJpegImageFile.load_djpegß  sÙ  € àˆˆˆåØØØSð	
ñ 	
ô 	
ð 	
ð ×"Ò"Ñ$Ô$‰ˆˆ4Ý
Œ�‰ŒˆÝŒ7�>Š>˜$œ-Ñ(Ô(ð 		"ÝÔ! 7¨J¸¸d¼mÐ"LÑMÔMÐMÐMðÝ”	˜$‘”��øÝð ð ð Ø�ðøøøð %ˆCÝ˜S‘/”/Ð!ð	Ý”˜DÑ!Ô!ð ! SØ—’‘
”
�
Øœ&�”ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ðÝ”	˜$‘”��øÝð ð ð Ø�ðøøøøðÝ”	˜$‘”��øÝð ð ð Ø�ðøøøøøøð ”W”\ˆŒ
Ø”W”\ˆŒ
àˆŒ	ˆ	ˆ	sx   ÂB Â
B'Â&B'Â<D. Ã!C=Ã1D. Ã=DÄD. ÄDÄD. Ä	D Ä
D+Ä*D+Ä.EÄ0EÅEÅ
EÅEÅEÅEúdict[int, Any] | Nonec                ó    — t          | ¦  «        S rû   )Ú_getexif©r   s    r&   r-  zJpegImageFile._getexif  s   € Ý˜‰~Œ~Ðr(   c                óÒ  — d| j         v s	d| j         vrd S 	 |                      ¦   «         }|d         }|d         }	 t          |d         ¦  «        |d         z  }n# t          $ r |}Y nw xY wt	          j        |¦  «        rd}t          |¦  «        ‚|dk    r|d	z  }||f| j         d<   d S # t          j        t          t          t          t          t          f$ r d
| j         d<   Y d S w xY w)Nr4   r>   i(  i  r   r   zDPI is not a numberrp   r6   )éH   r0  )rY   ÚgetexifÚfloatÚ	TypeErrorr   Úisnanr%  r	   rc   ÚKeyErrorr‚   ÚZeroDivisionError)r   r>   Úresolution_unitÚx_resolutionr4   rŠ   s         r&   ró   z!JpegImageFile._read_dpi_from_exif  s  € à�D”IÐÐ ¨t¬yÐ!8Ð!8ØˆFð	&Ø—<’<‘>”>ˆDØ" 6œlˆOØ œ<ˆLð#Ý˜L¨œOÑ,Ô,¨|¸A¬Ñ>��øÝð #ð #ð #Ø"���ð#øøøåŒz˜#‰Œð &Ø+�Ý  ‘o”oÐ%Ø !Ò#Ð#à�t‘�Ø" C˜xˆDŒI�eÑÐÐøåŒLÝÝÝÝÝð
ð 	&ð 	&ð 	&ð  &ˆDŒI�eÑÐÐÐð	&øøøs4   –$B* »A ÁB* ÁA)Á&B* Á(A)Á)?B* Â*8C&Ã%C&c                ó    — t          | ¦  «        S rû   )Ú_getmpr.  s    r&   r:  zJpegImageFile._getmp%  s   € Ý�d‰|Œ|Ðr(   )r   r   )r   rù   )rÿ   rù   r   r   )r  r   r   rà   )rð   r  rj   r	  r   r
  )r   r+  )Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionrø   rý   r  r  r  r  r-  ró   r:  Ú__classcell__)rþ   s   @r&   r   r   `  sû   ø€ € € € € Ø€FØ+Ðð9#ð 9#ð 9#ð 9#ðvBð Bð Bð Bð Bð Bð$ð $ð $ð $ð $ð $ðð ð ð ð"&ð &ð &ð &ðP$ð $ð $ð $ðLð ð ð ð&ð &ð &ð &ð:ð ð ð ð ð ð ð r(   r+  c                ód   — d| j         vrd S |                      ¦   «                              ¦   «         S )Nr>   )rY   r1  Ú_get_merged_dictr.  s    r&   r-  r-  )  s.   € Ø�T”YÐÐØˆtØ�<Š<‰>Œ>×*Ò*Ñ,Ô,Ð,r(   c           	     óè  — 	 | j         d         }n# t          $ r Y d S w xY wt          j        |¦  «        }|                     d¦  «        }|                     d¦  «        rdnd}ddlm} 	 |                     |¦  «        }| 	                    |j
        ¦  «         |                     |¦  «         t          |¦  «        }n$# t          $ r}d}	t          |	¦  «        |‚d }~ww xY w	 |d	         }
n$# t          $ r}d
}	t          |	¦  «        |‚d }~ww xY wg }	 |d         }t          |
¦  «        D �]}t!          j        |› d�||dz  ¦  «        }d}t          t%          ||¦  «        ¦  «        }t'          |d         dz  ¦  «        t'          |d         dz  ¦  «        t'          |d         dz  ¦  «        |d         dz  dz	  |d         dz  dz	  |d         dz  dœ}|d         dk    rd|d<   nd}	t          |	¦  «        ‚dddd d!d"d#d$œ}|                     |d%         d&¦  «        |d%<   ||d<   |                     |¦  «         �Œ||d<   n0# t          t           j        f$ r}d'}	t          |	¦  «        |‚d }~ww xY w|S )(NrS   r2   s   MM *ú>ú<r   )ÚTiffImagePluginz)malformed MP Index (unreadable directory)é°  z(malformed MP Index (no number of images)i°  ÚLLLHHr   )Ú	AttributeÚSizeÚ
DataOffsetÚEntryNo1ÚEntryNo2rI  l        i   @i    i   é   i   é   iÿÿÿ )ÚDependentParentImageFlagÚDependentChildImageFlagÚRepresentativeImageFlagÚReservedÚImageDataFormatÚMPTyperT  r   rå   z!unsupported picture format in MPOÚ	Undefinedz Large Thumbnail (VGA Equivalent)z$Large Thumbnail (Full HD Equivalent)zMulti-Frame Image (Panorama)zMulti-Frame Image: (Disparity)z Multi-Frame Image: (Multi-Angle)zBaseline MP Primary Image)r   i  i  i  i  i  i   rU  ÚUnknownz!malformed MP Index (bad MP Entry))rY   r5  r   ÚBytesIOr#   rX   rë   rF  ÚImageFileDirectory_v2ÚseekÚnextr'  Údictr\   r‚   rˆ   r	   Úunpack_fromÚziprá   ÚgetrW   rc   )r   rk   Úfile_contentsÚheadÚ
endiannessrF  rY   rS   r  rŠ   ÚquantÚ	mpentriesÚrawmpentriesÚentrynumÚunpackedentryÚlabelsÚmpentryÚmpentryattrÚ	mptypemaps                      r&   r:  r:  /  s  € ðØŒy˜ŒˆˆøÝð ð ð Øˆtˆtðøøøå”J˜tÑ$Ô$€MØ×Ò˜aÑ Ô €DØŸšÐ(;Ñ<Ô<ÐE��À#€Jà!Ð!Ð!Ð!Ð!Ð!ð&Ø×4Ò4°TÑ:Ô:ˆØ×Ò˜4œ9Ñ%Ô%Ð%Ø�	Š	�-Ñ Ô Ð Ý�$‰ZŒZˆˆøÝð &ð &ð &Ø9ˆÝ˜#ÑÔ AÐ%øøøøð&øøøð&Ø�6”
ˆˆøÝð &ð &ð &Ø8ˆÝ˜#ÑÔ AÐ%øøøøð&øøøð €Ið$&Ø˜&”zˆÝ˜e™œð 	&ñ 	&ˆHÝ"Ô.ØÐ$Ð$Ð$ l°H¸r±Mñô ˆMð QˆFÝ�3˜v }Ñ5Ô5Ñ6Ô6ˆGå,0°¸Ô1EÈÑ1QÑ,RÔ,RÝ+/°¸Ô0DÈÑ0PÑ+QÔ+QÝ+/°¸Ô0DÈÑ0PÑ+QÔ+QØ$ [Ô1°WÑ=À"ÑDØ$+¨KÔ$8¸GÑ$DÈÑ#KØ! +Ô.°Ñ;ðð ˆKð Ð,Ô-°Ò2Ð2Ø17�Ð-Ñ.Ð.à9�Ý! #Ñ&Ô&Ð&à%Ø<Ø@Ø8Ø:Ø<Ø5ðð ˆIð %.§M¢M°+¸hÔ2GÈÑ$SÔ$SˆK˜Ñ!Ø#.ˆG�KÑ Ø×Ò˜WÑ%Ô%Ð%Ñ%Øˆˆ6‰
ˆ
øÝ•f”lÐ#ð &ð &ð &Ø1ˆÝ˜#ÑÔ AÐ%øøøøð&øøøð €IsV   ‚ �
�Á*AB> Â>
CÃCÃCÃ#C, Ã,
DÃ6DÄDÄD.I ÉI/ÉI*É*I/rq   rr   ré   r  )Ú1rq   rr   ÚRGBXrs   r  )@r   r   r-   r?   rG   r+   rN  é   r    rI   r1   rz   r   é   é   é*   rp   r2   rJ   é   é   é   é)   é+   é	   rQ   é   rO  é   é(   é,   é5   r3   é   é   é    é'   é-   é4   é6   é   é   é!   é&   é.   é3   é7   é<   é   é"   é%   é/   é2   é8   é;   é=   é#   é$   é0   é1   é9   é:   é>   é?   r    ))r   r   r   r   r   r   )r    r   r   r   r   r   )r    r    r   r   r   r   r(  úImage.Imagec                óú   — t          | t          ¦  «        r	| j        dv rdS | j        d         dd…         | j        d         dd…         z   | j        d         dd…         z   }t                               |d¦  «        S )N)r   rI   éÿÿÿÿr   r   rp   r    )r  r   rƒ   r‰   Ú	samplingsr_  )r(  Úsamplings     r&   Úget_samplingr¡  ™  sw   € õ �b�-Ñ(Ô(ð ¨B¬I¸Ð,?Ð,?ØˆrØŒx˜Œ{˜1˜Q˜3Ô "¤(¨1¤+¨a°¨cÔ"2Ñ2°R´X¸a´[ÀÀ1ÀÔ5EÑE€HÝ�=Š=˜ 2Ñ&Ô&Ð&r(   r!   ú	IO[bytes]r!  ústr | bytesc                ó
  — 	 t           | j                 }n-# t          $ r }d| j        › d�}t          |¦  «        |‚d }~ww xY w| j        }d„ |                     dd¦  «        D ¦   «         }|                     dd¦  «        }|                     dd¦  «        }	|                     d	¦  «        }
|d
k    rd}d
}	d
}
nÒ|t          v r;t          |         }d}|                     dd¦  «        }	|                     d¦  «        }
nŽt          |t          ¦  «        sd}t          |¦  «        ‚|	t          v r!t          |	                              dd¦  «        }	t          |
t          ¦  «        r)|
t          v r t          |
                              d¦  «        }
|	dk    rd}	nL|	dk    rd}	nC|	dk    rd}	n:|	dk    rd}	n1|	d
k    r+| j        dk    rd}t          |¦  «        ‚t          | ¦  «        }	d8d„}|
d
k    r-| j        dk    rd}t          |¦  «        ‚t          | dd ¦  «        }
 ||
¦  «        }
|                     dd¦  «        }d}|                     d¦  «        x}r[d}||z
  }t          |¦  «        |k    rd}t          |¦  «        ‚t          d|z   t          |¦  «        z   ¦  «        }|d |z   d!z   |z   z  }|                     d"¦  «        x}r�d#}||z
  }g }|r)|                     |d |…         ¦  «         ||d …         }|°)d}|D ]d}t          d|z   t          |¦  «        z   ¦  «        }|d$|z   d%z   t#          |¦  «        z   t#          t          |¦  «        ¦  «        z   |z   z  }|dz  }Œe|                     d&| j                             d&¦  «        ¦  «        }|r$t          |¦  «        |k    rd'}t          |¦  «        ‚|                     d(d)¦  «        p|                     d*d)¦  «        }|                     d+d)¦  «        }|                     d,d¦  «        }t          |t&          j        ¦  «        r|                     ¦   «         }t          |¦  «        |k    rd-}t          |¦  «        ‚|||                     d.d¦  «        ||                     d/d)¦  «        |                     d0d¦  «        ||	|                     d1d¦  «        |                     d2d¦  «        |
|||f| _        |s|r³| j        d3k    rd4| j        d         z  | j        d         z  }nF|d5k    s|dk    rd| j        d         z  | j        d         z  }n| j        d         | j        d         z  }|r|t          |¦  «        d6z   z  }|r|t          |¦  «        z  }|r|t          |¦  «        d6z   z  }n@t1          t          |¦  «        d6z   t          |¦  «        t          |pd¦  «        d6z   ¦  «        }t3          j        | |t3          j        d7ddg| j        ¢R d|¦  «        g|¦  «         d S )9Nzcannot write mode z as JPEGc                ó,   — g | ]}t          |¦  «        ‘ŒS r7   )Úround)r8   Úxs     r&   r}   z_save.<locals>.<listcomp>°  s   € Ð
5Ð
5Ð
5˜�5�‰8Œ8Ð
5Ð
5Ð
5r(   r4   )r   r   Úqualityrž  ÚsubsamplingÚqtablesÚkeepr™   zInvalid quality settingz4:4:4r   z4:2:2r   z4:2:0r    z4:1:1rå   z3Cannot use 'keep' when original image is not a JPEGúKstr | tuple[list[int], ...] | list[list[int]] | dict[int, list[int]] | Noner   úlist[list[int]] | Nonec                ó^  ‡ ‡— ‰ €‰ S t          ‰ t          ¦  «        rn	 d„ ‰                      ¦   «         D ¦   «         Šˆfd„t          dt	          ‰¦  «        d¦  «        D ¦   «         Š n$# t
          $ r}d}t          |¦  «        |‚d }~ww xY wt          ‰ t          t          t          f¦  «        �r t          ‰ t          ¦  «        r)ˆ fd„t          t	          ‰ ¦  «        ¦  «        D ¦   «         Š nt          ‰ ¦  «        Š dt	          ‰ ¦  «        cxk     rdk     sn d}t          |¦  «        ‚	 t          ‰ ¦  «        D ]N\  }}t	          |¦  «        dk    rd}t          |¦  «        ‚t          t          j        d	|¦  «        ¦  «        ‰ |<   ŒOn$# t          $ r}d}t          |¦  «        |‚d }~ww xY w‰ S d S )
Nc                óŽ   — g | ]B}|                      d d¦  «        d                               ¦   «         D ]}t          |¦  «        ‘ŒŒCS )ú#r   r   )r_   r   )r8   ÚlineÚnums      r&   r}   z3_save.<locals>.validate_qtables.<locals>.<listcomp>á  sd   € ð ð ð àØ#Ÿzšz¨#¨qÑ1Ô1°!Ô4×:Ò:Ñ<Ô<ðð ð õ ˜‘H”Hðð ð ð r(   c                ó*   •— g | ]}‰||d z   …         ‘ŒS )r�   r7   )r8   re   Úliness     €r&   r}   z3_save.<locals>.validate_qtables.<locals>.<listcomp>ê  s&   ø€ ÐOÐOÐO°˜5  Q¨¡V Ô,ÐOÐOÐOr(   r   r�   zInvalid quantization tablec                ó(   •— g | ]}|‰v ¯‰|         ‘ŒS r7   r7   )r8   Úkeyrª  s     €r&   r}   z3_save.<locals>.validate_qtables.<locals>.<listcomp>í  s)   ø€ ð ð ð Ø%(À3È'À>À>�G˜C”LÀ>À>À>r(   r-   z$None or too many quantization tablesr’   )r  ÚstrÚ
splitlinesrˆ   r†   r%  r[   Úlistr\  Ú	enumerater3  r   )rª  r  rŠ   ÚidxÚtabler´  s   `    @r&   Úvalidate_qtablesz_save.<locals>.validate_qtablesØ  s  øø€ ð
 ˆ?ØˆNÝ�g�sÑ#Ô#ð 	Pð
Pðð à '× 2Ò 2Ñ 4Ô 4ðñ ô �ð PÐOÐOÐOµe¸A½sÀ5¹z¼zÈ2Ñ6NÔ6NÐOÑOÔO��øõ	 ð -ð -ð -Ø2�Ý  ‘o”o¨1Ð,øøøøð-øøøõ
 �g¥¥t­TÐ2Ñ3Ô3ñ 	Ý˜'¥4Ñ(Ô(ð (ðð ð ð Ý,1µ#°g±,´,Ñ,?Ô,?ðñ ô ��õ
 ˜w™-œ-�Ø�˜G™œÐ(Ð(Ò(Ð( qÒ(Ð(Ð(Ð(Ø<�Ý  ‘o”oÐ%ð-Ý"+¨GÑ"4Ô"4ð Að A‘J�C˜Ý˜5‘z”z RÒ'Ð'Ø:˜Ý'¨™nœnÐ,Ý#'­¬°C¸Ñ(?Ô(?Ñ#@Ô#@�G˜C‘L�Lð	Aøõ
 ð -ð -ð -Ø2�Ý  ‘o”o¨1Ð,øøøøð-øøøð ˆNð)	ð 	s0   �A& Á&
BÁ0BÂBÄ(AF Æ
F(ÆF#Æ#F(Úextrar(   rÞ   rB   rp  zXMP data is too longs   ÿár@   r~   rG   s   ÿârE   rm   zComment is too longrx   Fry   Úoptimizer>   zEXIF data is too longÚsmoothÚkeep_rgbÚ
streamtypeÚrestart_marker_blocksÚrestart_marker_rowsrs   rI   é_   r-   rê   )rª  r¬  r   r­  )ÚRAWMODErð   r5  r$  Úencoderinfor_  r   r  r   r%  r·  r>  r¡  Úgetattrr†   Úo16rW   r   rY   r   ÚExifÚtobytesÚencoderconfigrj   Úmaxr   Ú_saverñ   )r(  r!   r!  r÷   r  rŠ   rY   r4   r¨  r©  rª  Úpresetr½  r¾  ÚMAX_BYTES_IN_MARKERrB   Úoverhead_lenÚmax_data_bytes_in_markerrj   r~   ÚmarkersrŒ   r   rm   rx   r¿  r>   Úbufsizes                               r&   rÎ  rÎ  §  s²  € ð"Ý˜"œ'Ô"ˆˆøÝð "ð "ð "Ø4 2¤7Ð4Ð4Ð4ˆÝ�c‰lŒl Ð!øøøøð"øøøð Œ>€Dà
5Ð
5˜TŸXšX e¨VÑ4Ô4Ð
5Ñ
5Ô
5€Cà�hŠh�y "Ñ%Ô%€GØ—(’(˜=¨"Ñ-Ô-€KØ�hŠh�yÑ!Ô!€Gà�&ÒÐØˆØˆØˆˆØ	•GÐ	Ð	Ý˜Ô!ˆØˆØ—j’j °Ñ3Ô3ˆØ—*’*˜^Ñ,Ô,ˆˆÝ˜¥Ñ%Ô%ð ;Ø'ˆÝ˜‰oŒoÐà�'Ð!Ð!Ý! +Ô.×2Ò2°=À"ÑEÔEˆKÝ�g�sÑ#Ô#ð 	;¨µ7Ð(:Ð(:Ý˜gÔ&×*Ò*¨>Ñ:Ô:ˆGà�gÒÐØˆˆØ	˜Ò	Ð	ØˆˆØ	˜Ò	Ð	ØˆˆØ	˜Ò	Ð	ð ˆˆØ	˜Ò	Ð	ØŒ9˜ÒÐØGˆCÝ˜S‘/”/Ð!Ý" 2Ñ&Ô&ˆð'ð 'ð 'ð 'ðR �&ÒÐØŒ9˜ÒÐØGˆCÝ˜S‘/”/Ð!Ý˜"˜n¨dÑ3Ô3ˆØÐ˜wÑ'Ô'€Gà�HŠH�W˜cÑ"Ô"€EàÐØ�hŠh�u‰oŒoÐ€sð PØˆØ#6¸Ñ#EÐ Ýˆs‰8Œ8Ð.Ò.Ð.Ø(ˆCÝ˜S‘/”/Ð!Ý�1�|Ñ#¥c¨#¡h¤hÑ.Ñ/Ô/ˆØ�˜tÑ#Ð&IÑIÈCÑOÑOˆà—h’h˜}Ñ-Ô-Ð-€{ð ØˆØ#6¸Ñ#EÐ ØˆØð 	AØ�NŠN˜;Ð'@Ð(@Ð'@ÔAÑBÔBÐBØ%Ð&>Ð&?Ð&?Ô@ˆKð ð 	Að ˆØð 
	ð 
	ˆFÝ�q˜<Ñ'­#¨f©+¬+Ñ5Ñ6Ô6ˆDØØØñà"ñ#õ �Q‘%”%ñõ •S˜‘\”\Ñ"Ô"ñ	#ð
 ññˆEð �‰FˆAˆAà�hŠh�y "¤'§+¢+¨iÑ"8Ô"8Ñ9Ô9€GØð •3�w‘<”<Ð"5Ò5Ð5Ø#ˆÝ˜‰oŒoÐð
 —(’(˜=¨%Ñ0Ô0ÐR°D·H²H¸]ÈEÑ4RÔ4R€Kà�xŠx˜
 EÑ*Ô*€Hà�8Š8�F˜CÑ Ô €DÝ�$�œ
Ñ#Ô#ð Ø�|Š|‰~Œ~ˆÝ
ˆ4�y„yÐ&Ò&Ð&Ø%ˆÝ˜‰oŒoÐð 	ØØ�Š�˜1ÑÔØØ�Š�˜UÑ#Ô#Ø�Š�˜qÑ!Ô!ØØØ�ŠÐ(¨!Ñ,Ô,Ø�ŠÐ&¨Ñ*Ô*ØØØØð€BÔð* ð J�;ð JàŒ7�fÒÐØ˜"œ' !œ*‘n r¤w¨q¤zÑ1ˆGˆGà˜Š]ˆ]˜g¨šm˜mØ˜"œ' !œ*‘n r¤w¨q¤zÑ1ˆGˆGà”g˜a”j 2¤7¨1¤:Ñ-ˆGØð 	%Ø•s˜4‘y”y 1‘}Ñ$ˆGØð 	"Ø•s˜5‘z”zÑ!ˆGØð 	(Ø•s˜7‘|”| aÑ'Ñ'ˆGøõ •c˜$‘i”i !‘m¥S¨¡Z¤Zµ°W°^ÀÑ1DÔ1DÀqÑ1HÑIÔIˆå„OØ
ˆB•” ¨!¨QÐ)9°´Ð)9Ð)9¸1¸gÑFÔFÐGÈñô ð ð ð s   ‚ •
?Ÿ:º?ústr | bytes | NoneúJpegImageFile | MpoImageFilec                ó>  — t          | |¦  «        }	 |                     ¦   «         }|�>|d         dk    r2|j        D ]\  }}|dk    rd|v r|c S Œddlm}  |j        ||¦  «        }n6# t          t          f$ r Y n#t          $ r t          j
        d¦  «         Y nw xY w|S )NrG  r   rÀ   s    hdrgm:Version="r   zTImage appears to be a malformed MPO file, it will be interpreted as a base JPEG file)r   r:  rV   ÚMpoImagePluginr   Úadoptr3  rd   r‚   r
   Úwarn)r!   r!  r(  ÚmpheaderÚsegmentÚcontentr   s          r&   Újpeg_factoryrÞ  n  sù   € õ 
�r˜8Ñ	$Ô	$€Bð
Ø—9’9‘;”;ˆØÐ H¨U¤O°aÒ$7Ð$7Ø$&¤Jð ð Ñ �˜Ø˜fÒ$Ð$Ð)<ÀÐ)GÐ)Gà�I�I�Iøà4Ð4Ð4Ð4Ð4Ð4ð $�Ô# B¨Ñ1Ô1ˆBøøÝ•zÐ"ð ð ð àˆÝð 
ð 
ð 
ÝŒð.ñ	
ô 	
ð 	
ð 	
ð 	
ð
øøøð
 €Is   ’;A' ÁA' Á'BÁ:BÂB)z.jfifz.jpez.jpgz.jpegz
image/jpeg)r   r   r   r   r   r   )rß   rà   r   rá   )r   r   r   r+  )r(  rœ  r   r   )r(  rœ  r!   r¢  r!  r£  r   r   rû   )r!   r¢  r!  rÕ  r   rÖ  )5Ú
__future__r   Ú__lazy_modules__r   r   r   r  r	   r   r•   r
   rë   r   r   Ú_binaryr   r"   r   rb   r   r   rÉ  Ú
_deprecater   ÚJpegPresetsr   ÚTYPE_CHECKINGÚtypingr   r   rØ  r   r'   r*   rn   rŽ   r�   rï   rã   r   r-  r:  rÆ  r˜   rŸ  r¡  rÎ  rÞ  Úregister_openr>  Úregister_saveÚregister_extensionsÚregister_mimer7   r(   r&   ú<module>rê     s`  ððD #Ð "Ð "Ð "Ð "Ð "ð	ð 	ð 	Ð ð €€€Ø 	€	€	€	Ø €€€Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ø 
€
€
€
Ø €€€à Ð Ð Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø !Ð !Ð !Ð !Ð !Ð !Ø  Ð  Ð  Ð  Ð  Ð  à€Øð -ØÐÐÐÐÐÐÐà,Ð,Ð,Ð,Ð,Ð,ð%ð %ð %ð %ðh7ð h7ð h7ð h7ðV	$ð 	$ð 	$ð 	$ð.?ð .?ð .?ð .?ðbð ð ð ð8@
Ø
ˆ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.ð .ð .ð .ðFð Fð Fð Fð F�IÔ'ñ Fô Fð FðR-ð -ð -ð -ðIð Ið Ið Ið` 
Ø	ØØØØðð €ð	€ð ØØðð €	ð'ð 'ð 'ð 'ðBð Bð Bð BðP 37ðð ð ð ð ð< €Ô �MÔ(¨,¸Ñ @Ô @Ð @Ø €Ô �MÔ(¨%Ñ 0Ô 0Ð 0à €Ô ˜-Ô.Ð0RÐ0RÐ0RÑ SÔ SÐ Sà €Ô �MÔ(¨,Ñ 7Ô 7Ð 7Ð 7Ð 7r(   