ó
    jñ:iÈÇ  ã                  ó´  • S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SKJ	r	  S SK
JrJrJr  SSKJrJrJrJrJr  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSK J!r!  Sr"\"(       a  S SK#J$r$  S SK
J%r%J&r&  SSKJ'r'  \RP                  " \)5      r*\RV                  " S5      RX                  r-Sr.SSSSSSSSSSSSS S!S"S#.r/\RV                  " S$5      r0\Rb                  r2 S%\2-  r3  " S& S'\	5      r4 " S( S)\	5      r5SUS* jr6SVSWS+ jjr7 " S, S-5      r8 " S. S/\95      r: " S0 S15      r; " S2 S3\5      r< " S4 S5\85      r=SXS6 jr> " S7 S8\R"                  5      r?S9S:S;S<S=S>S?S?S?S@SASBSCSDSESF.r@SYSG jrA " SH SI5      rB " SJ SK5      rC " SL SM\5      rD                SZSN jrES[SO jrF\AS4           S\SP jjrGS]SQ jrH\R’                  " \?R”                  \?\>5        \R–                  " \?R”                  \G5        \R˜                  " \?R”                  \F5        \Rš                  " \?R”                  SRSS/5        \Rœ                  " \?R”                  ST5        g)^é    )ÚannotationsN)ÚIntEnum)ÚIOÚ
NamedTupleÚcasté   )ÚImageÚ
ImageChopsÚ	ImageFileÚImagePaletteÚImageSequence)Úi16be)Úi32be)Úo8)Úo16be)Úo32be)Ú	deprecate)ÚDeferredErrorF)ÚCallable)ÚAnyÚNoReturn)Ú_imagings   \w\w\w\ws   ‰PNG

)Ú1r   )ÚLúL;2)r   úL;4)r   r   )úI;16úI;16B)ÚRGBr   )r   zRGB;16B)ÚPúP;1)r    úP;2)r    úP;4)r    r    )ÚLAr$   )ÚRGBAzLA;16B)r%   r%   )r%   zRGBA;16B))r   r   )é   r   )é   r   )é   r   )é   r   )r(   r&   )r)   r&   )r   é   )r&   r*   )r'   r*   )r(   r*   )r(   r'   )r)   r'   )r(   é   )r)   r+   s   ^ÿ* ÿ*$é@   c                  ó$   • \ rS rSrSr Sr SrSrg)ÚDisposalém   r   r   r&   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚOP_NONEÚOP_BACKGROUNDÚOP_PREVIOUSÚ__static_attributes__r0   ó    ÚU/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/PIL/PngImagePlugin.pyr.   r.   m   s$   † Ø€Gðð €Mðð
 €Kòr9   r.   c                  ó   • \ rS rSrSr SrSrg)ÚBlendé‚   r   r   r0   N)r1   r2   r3   r4   Ú	OP_SOURCEÚOP_OVERr8   r0   r9   r:   r<   r<   ‚   s   † Ø€Iðð
 €Gòr9   r<   c                ó˜   • [         R                  " 5       nUR                  U [        5      nUR                  (       a  Sn[        U5      eU$ )Nz=Decompressed data too large for PngImagePlugin.MAX_TEXT_CHUNK)ÚzlibÚdecompressobjÚ
decompressÚMAX_TEXT_CHUNKÚunconsumed_tailÚ
ValueError)ÚsÚdobjÚ	plaintextÚmsgs       r:   Ú_safe_zlib_decompressrK   �   s>   € Ü×ÒÓ€DØ—‘ ¤>Ó2€IØ××ØMˆÜ˜‹oÐØÐr9   c                ó4   • [         R                  " X5      S-  $ )Nl   ÿÿ )rA   Úcrc32)ÚdataÚseeds     r:   Ú_crc32rP   ™   s   € Ü�:Š:�dÓ! JÑ.Ð.r9   c                  ó|   • \ rS rSrSS jrSS jrSS jrSS jrSS jrSS jr	SS jr
SS	 jrSS
 jrSSS jjrSrg)ÚChunkStreamé¡   c                ó   • Xl         / U l        g ©N©ÚfpÚqueue)ÚselfrW   s     r:   Ú__init__ÚChunkStream.__init__¢   s   € Ø$&ŒØ:<ˆ�
r9   c                óÈ  • SnU R                   c   eU R                  (       a9  U R                  R                  5       u  pnU R                   R                  U5        OEU R                   R	                  S5      nUSS nU R                   R                  5       n[        U5      n[        U5      (       d/  [        R                  (       d  S[        U5       S3n[        U5      eXU4$ )z.Fetch a new chunk. Returns header information.Nr(   r'   zbroken PNG file (chunk Ú))rW   rX   ÚpopÚseekÚreadÚtellÚi32Úis_cidr   ÚLOAD_TRUNCATED_IMAGESÚreprÚSyntaxError)rY   ÚcidÚposÚlengthrG   rJ   s         r:   r`   ÚChunkStream.read¦   s±   € àˆà�w‰wÑ"Ð"Ð"Ø�:�:Ø#Ÿz™zŸ~™~Ó/ÑˆC�fØ�G‰G�L‰L˜Õà—‘—‘˜Q“ˆAØ�A�B�%ˆCØ—'‘'—,‘,“.ˆCÜ˜“VˆFä�c�{‰{Ü×2×2Ø/´°S³	¨{¸!Ð<�Ü! #Ó&Ð&à˜ÐÐr9   c                ó   • U $ rU   r0   ©rY   s    r:   Ú	__enter__ÚChunkStream.__enter__»   s   € Øˆr9   c                ó$   • U R                  5         g rU   )Úclose)rY   Úargss     r:   Ú__exit__ÚChunkStream.__exit__¾   s   € Ø�
‰
�r9   c                ó    • S =U l         U l        g rU   )rX   rW   rl   s    r:   rp   ÚChunkStream.closeÁ   s   € Ø#Ð#ˆŒ
�T•Wr9   c                ó\   • U R                   c   eU R                   R                  XU45        g rU   )rX   Úappend©rY   rg   rh   ri   s       r:   ÚpushÚChunkStream.pushÄ   s)   € Ø�z‰zÑ%Ð%Ð%Ø�
‰
×Ñ˜3 VÐ,Õ-r9   c                óx   • [         R                  SXU5        [        U SUR                  S5       35      " X#5      $ )z"Call the appropriate chunk handlerzSTREAM %r %s %sÚchunk_Úascii)ÚloggerÚdebugÚgetattrÚdecoderx   s       r:   ÚcallÚChunkStream.callÈ   s8   € ô 	�‰Ð&¨°&Ô9Ü�t˜v c§j¡j°Ó&9Ð%:Ð;Ô<¸SÓIÐIr9   c                ó°  • [         R                  (       a"  US   S-	  S-  (       a  U R                  X5        gU R                  c   e [	        U[	        U5      5      n[        U R                  R                  S5      5      nX4:w  a  S[        U5       S3n[        U5      eg! [        R                   a   nS[        U5       S3n[        U5      UeSnAff = f)	zRead and verify checksumr   é   r   Nr'   z(broken PNG file (bad header checksum in r]   z(broken PNG file (incomplete checksum in )r   rd   Úcrc_skiprW   rP   rb   r`   re   rf   ÚstructÚerror)rY   rg   rN   Úcrc1Úcrc2rJ   Úes          r:   ÚcrcÚChunkStream.crcÎ   sÁ   € ô ×*×*°°A±¸!±¸a·Ø�M‰M˜#Ô$Øà�w‰wÑ"Ð"Ð"ð	*Ü˜$¤ s£Ó,ˆDÜ�t—w‘w—|‘| A“Ó'ˆDØ‹|Ø@ÄÀcÃÀÈ1ÐM�Ü! #Ó&Ð&ð øô �|‰|ó 	*Ø<¼TÀ#»Y¸KÀqÐIˆCÜ˜cÓ"¨Ð)ûð	*ús   ÁAB! Â!CÂ5CÃCc                óX   • U R                   c   eU R                   R                  S5        g)zRead checksumNr'   )rW   r`   )rY   rg   rN   s      r:   r†   ÚChunkStream.crc_skipã   s#   € ð �w‰wÑ"Ð"Ð"Ø�‰�‰�Q�r9   c                ó:  • / nU R                   c   e  U R                  5       u  p4nX1:X  a   U$ U R                  U[        R                  " U R                   U5      5        UR                  U5        M`  ! [        R                   a  nSn[	        U5      UeS nAff = f)Nztruncated PNG file)	rW   r`   r‡   rˆ   ÚOSErrorrŒ   r   Ú
_safe_readrw   )rY   ÚendchunkÚcidsrg   rh   ri   r‹   rJ   s           r:   ÚverifyÚChunkStream.verifyé   s›   € ð ˆà�w‰wÑ"Ð"Ð"Øð*Ø#'§9¡9£;Ñ �˜&ð
 ‹Øð ˆð �H‰H�Sœ)×.Ò.¨t¯w©w¸Ó?Ô@Ø�K‰K˜Ôñ øô —<‘<ó *Ø*�Ü˜c“l¨Ð)ûð*ús   ”A3 Á3BÂBÂBrV   N©rW   ú	IO[bytes]ÚreturnÚNone)r™   ztuple[bytes, int, int])r™   rR   )rq   Úobjectr™   rš   ©r™   rš   )rg   Úbytesrh   Úintri   rž   r™   rš   )rg   r�   rh   rž   ri   rž   r™   r�   )rg   r�   rN   r�   r™   rš   )ó   IEND)r“   r�   r™   zlist[bytes])r1   r2   r3   r4   rZ   r`   rm   rr   rp   ry   r‚   rŒ   r†   r•   r8   r0   r9   r:   rR   rR   ¡   s:   † ô=ô ô*ôô$ô.ôJô*ô*÷ñ r9   rR   c                  óV   • \ rS rSr% SrS\S'   S\S'   \ S	       S
S jj5       rSrg)ÚiTXtéÿ   ze
Subclass of string to allow iTXt chunks to look like strings while
keeping their extra information

zstr | bytes | NoneÚlangÚtkeyNc                óH   • [         R                  X5      nX$l        X4l        U$ )zŸ
:param cls: the class to use when creating the instance
:param text: value for this key
:param lang: language code
:param tkey: UTF-8 version of the key name
)ÚstrÚ__new__r£   r¤   )ÚclsÚtextr£   r¤   rY   s        r:   r§   ÚiTXt.__new__	  s!   € ô �{‰{˜3Ó%ˆØŒ	ØŒ	Øˆr9   )r£   r¤   )NN)r©   r¦   r£   ú
str | Noner¤   r«   r™   r¡   )	r1   r2   r3   r4   Ú__doc__Ú__annotations__Ústaticmethodr§   r8   r0   r9   r:   r¡   r¡   ÿ   sJ   ‡ ñð ÓØ
ÓààDHðØðØ(ðØ7Aðà	ôó ór9   r¡   c                  óx   • \ rS rSrSrS	S jrS
SS jjr   S           SS jjr S
       SS jjrSr	g)ÚPngInfoi  z4
PNG chunk container (for use with save(pnginfo=))

c                ó   • / U l         g rU   ©Úchunksrl   s    r:   rZ   ÚPngInfo.__init__   s	   € Ø79ˆ�r9   c                ó>   • U R                   R                  XU45        g)zúAppends an arbitrary chunk. Use with caution.

:param cid: a byte string, 4 bytes long.
:param data: a byte string of the encoded data
:param after_idat: for use with private chunks. Whether the chunk
                   should be written after IDAT

N)r³   rw   )rY   rg   rN   Ú
after_idats       r:   ÚaddÚPngInfo.add#  s   € ð 	�‰×Ñ˜C zÐ2Õ3r9   c                ó  • [        U[        5      (       d  UR                  SS5      n[        U[        5      (       d  UR                  SS5      n[        U[        5      (       d  UR                  SS5      n[        U[        5      (       d  UR                  SS5      nU(       a9  U R                  SUS-   U-   S-   U-   S-   [        R
                  " U5      -   5        gU R                  SUS-   U-   S-   U-   S-   U-   5        g)	zÉAppends an iTXt chunk.

:param key: latin-1 encodable text key name
:param value: value for this key
:param lang: language code
:param tkey: UTF-8 version of the key name
:param zip: compression flag

úlatin-1Ústrictúutf-8ó   iTXts     ó    s      N)Ú
isinstancer�   Úencoder·   rA   Úcompress)rY   ÚkeyÚvaluer£   r¤   Úzips         r:   Úadd_itxtÚPngInfo.add_itxt/  sâ   € ô$ ˜#œu×%Ñ%Ø—*‘*˜Y¨Ó1ˆCÜ˜%¤×'Ñ'Ø—L‘L ¨(Ó3ˆEÜ˜$¤×&Ñ&Ø—;‘;˜w¨Ó1ˆDÜ˜$¤×&Ñ&Ø—;‘;˜w¨Ó1ˆDæØ�H‰HØØ�kÑ! DÑ(¨5Ñ0°4Ñ7¸%Ñ?Ä$Ç-Â-ÐPUÓBVÑVõð
 �H‰H�W˜c I™o°Ñ4°uÑ<¸tÑCÀeÑKÈeÑSÕTr9   c                ó4  • [        U[        5      (       aH  U R                  UUUR                  b  UR                  OSUR                  b  UR                  US9$ SUS9$ [        U[
        5      (       d   UR                  SS5      n[        U[
        5      (       d  UR                  SS5      nU(       a-  U R                  SUS-   [        R                  " U5      -   5        gU R                  SUS	-   U-   5        g! [         a    U R                  XUS9s $ f = f)
z¾Appends a text chunk.

:param key: latin-1 encodable text key name
:param value: value for this key, text or an
   :py:class:`PIL.PngImagePlugin.iTXt` instance
:param zip: compression flag

Nr9   )rÄ   rº   r»   ó   zTXtó     ó   tEXtr¾   )r¿   r¡   rÅ   r£   r¤   r�   rÀ   ÚUnicodeErrorr·   rA   rÁ   )rY   rÂ   rÃ   rÄ   s       r:   Úadd_textÚPngInfo.add_textR  s
  € ô �eœT×"Ñ"Ø—=‘=ØØØ#Ÿj™jÑ4�—
’
¸#Ø#Ÿj™jÑ4�—
‘
Øð !ð ð ð ;>Øð !ð ð ô ˜%¤×'Ñ'ð:ØŸ™ Y°Ó9�ô ˜#œu×%Ñ%Ø—*‘*˜Y¨Ó1ˆCæØ�H‰H�W˜c G™m¬d¯mªm¸EÓ.BÑBÕCà�H‰H�W˜c E™k¨EÑ1Õ2øô  ó :Ø—}‘} S°S�}Ð9Ò9ð:ús   Á4C: Ã:DÄDr²   Nrœ   ©F)rg   r�   rN   r�   r¶   Úboolr™   rš   )Ú rÐ   F)rÂ   ústr | bytesrÃ   rÑ   r£   rÑ   r¤   rÑ   rÄ   rÏ   r™   rš   )rÂ   rÑ   rÃ   zstr | bytes | iTXtrÄ   rÏ   r™   rš   )
r1   r2   r3   r4   r¬   rZ   r·   rÅ   rÌ   r8   r0   r9   r:   r°   r°     s”   † ñô
:ö
4ð  ØØð!Uàð!Uð ð!Uð ð	!Uð
 ð!Uð ð!Uð 
õ!UðH HMð!3Øð!3Ø'9ð!3Ø@Dð!3à	÷!3ð !3r9   r°   c                  ó4   • \ rS rSr% S\S'   S\S'   S\S'   Srg	)
Ú_RewindStateiz  z dict[str | tuple[int, int], Any]Úinfozlist[ImageFile._Tile]Útilez
int | NoneÚseq_numr0   N©r1   r2   r3   r4   r­   r8   r0   r9   r:   rÓ   rÓ   z  s   ‡ Ø
*Ó*Ø
ÓØÖr9   rÓ   c                  óô   ^ • \ rS rSrSU 4S jjrSS jrSS jrSS jrSS jrSS jr	SS jr
SS	 jrSS
 jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSrU =r$ )Ú	PngStreami€  c                óÔ   >• [         TU ]  U5        0 U l        0 U l        SU l        SU l        / U l        S U l        S U l        S U l	        S U l
        [        0 / S 5      U l        SU l        g )N©r   r   rÐ   r   )ÚsuperrZ   Úim_infoÚim_textÚim_sizeÚim_modeÚim_tileÚ
im_paletteÚim_custom_mimetypeÚim_n_framesÚ_seq_numrÓ   Úrewind_stateÚtext_memory)rY   rW   Ú	__class__s     €r:   rZ   ÚPngStream.__init__�  sl   ø€ Ü‰Ñ˜Ôð :<ˆŒØ.0ˆŒØˆŒØˆŒØ.0ˆŒØ48ˆŒØ.2ˆÔØ'+ˆÔØ$(ˆŒÜ(¨¨R°Ó6ˆÔàˆÕr9   c                óŒ   • U =R                   U-  sl         U R                   [        :”  a  SU R                    S3n[        U5      eg )Nz%Too much memory used in text chunks: z>MAX_TEXT_MEMORY)rç   ÚMAX_TEXT_MEMORYrF   )rY   ÚchunklenrJ   s      r:   Úcheck_text_memoryÚPngStream.check_text_memory’  sN   € Ø×Ò˜HÑ$ÕØ×ÑœoÓ-à7Ø×#Ñ#Ð$Ð$4ð6ð ô ˜S“/Ð!ð .r9   c                ó€   • [        U R                  R                  5       U R                  U R                  5      U l        g rU   )rÓ   rÝ   Úcopyrá   rå   ræ   rl   s    r:   Úsave_rewindÚPngStream.save_rewind›  s-   € Ü(Ø�L‰L×ÑÓØ�L‰LØ�M‰Mó
ˆÕr9   c                óÂ   • U R                   R                  R                  5       U l        U R                   R                  U l        U R                   R                  U l        g rU   )ræ   rÔ   rð   rÝ   rÕ   rá   rÖ   rå   rl   s    r:   ÚrewindÚPngStream.rewind¢  sD   € Ø×(Ñ(×-Ñ-×2Ñ2Ó4ˆŒØ×(Ñ(×-Ñ-ˆŒØ×)Ñ)×1Ñ1ˆ�r9   c                óÞ  • U R                   c   e[        R                  " U R                   U5      nUR                  S5      n[        R                  SUS U 5        X4S-      n[        R                  SU5        US:w  a  SU S3n[        U5      e [        X4S-   S  5      nXpR                  S	'   U$ ! [         a    [        R                  (       a  S n N3e [        R                   a    S n NKf = f)
Nr¾   ziCCP profile name %rr   zCompression method %sr   úUnknown compression method z in iCCP chunkr&   Úicc_profile)rW   r   r’   Úfindr~   r   rf   rK   rF   rd   rA   rˆ   rÝ   )rY   rh   ri   rG   ÚiÚcomp_methodrJ   rø   s           r:   Ú
chunk_iCCPÚPngStream.chunk_iCCP§  sä   € à�w‰wÑ"Ð"Ð"Ü× Ò  §¡¨&Ó1ˆð �F‰F�5‹MˆÜ�‰Ð+¨Q¨r°¨UÔ3Ø˜A™‘hˆÜ�‰Ð,¨kÔ:Ø˜!ÓØ/°¨}¸NÐKˆCÜ˜cÓ"Ð"ð	Ü/°°a±%°'°
Ó;ˆKð '2�‰�]Ñ#Øˆøô ó 	Ü×.×.Ø"’àÜ�z‰zó 	ØŠKð	ús   ÂB0 Â0!C,ÃC,Ã+C,c                ó²  • U R                   c   e[        R                  " U R                   U5      nUS:  a$  [        R                  (       a  U$ Sn[	        U5      e[        US5      [        US5      4U l         [        US   US   4   u  U l        U l	        US   (       a  SU R                  S	'   US
   (       a  Sn[        U5      eU$ ! [         a     N>f = f)Né   zTruncated IHDR chunkr   r'   r(   é	   é   r   Ú	interlaceé   zunknown filter category)rW   r   r’   rd   rF   rb   rß   Ú_MODESrà   Ú
im_rawmodeÚ	ExceptionrÝ   rf   ©rY   rh   ri   rG   rJ   s        r:   Ú
chunk_IHDRÚPngStream.chunk_IHDRÃ  sÏ   € à�w‰wÑ"Ð"Ð"Ü× Ò  §¡¨&Ó1ˆØ�B‹;Ü×.×.Ø�Ø(ˆCÜ˜S“/Ð!Ü˜1˜a“y¤# a¨£)Ð+ˆŒð	Ü,2°A°a±D¸!¸A¹$°<Ñ,@Ñ)ˆDŒL˜$œ/ð ˆR�5Ø()ˆD�L‰L˜Ñ%ØˆR�5Ø+ˆCÜ˜cÓ"Ð"Øˆøô ó 	Ùð	ús   Á9C	 Ã	
CÃCc                óN  • SU R                   ;   a1  [        R                  " SU R                   S   XR                  5      /nOLU R                  b  SU R                   S'   [        R                  " SSU R
                  -   XR                  5      /nX0l        X l        Sn[        U5      e)NÚbboxrÄ   TÚdefault_imagerÛ   zimage data found)	rÝ   r   Ú_Tiler  rä   rß   rá   Úim_idatÚEOFError)rY   rh   ri   rÕ   rJ   s        r:   Ú
chunk_IDATÚPngStream.chunk_IDATØ  s…   € à�T—\‘\Ó!Ü—O’O E¨4¯<©<¸Ñ+?ÀÇoÁoÓVÐW‰Dà×ÑÑ+Ø04�—‘˜_Ñ-Ü—O’O E¨6°D·L±LÑ+@À#ÇÁÓWÐXˆDØŒØŒØ ˆÜ�s‹mÐr9   c                ó   • Sn[        U5      e)Nzend of PNG image)r  )rY   rh   ri   rJ   s       r:   Ú
chunk_IENDÚPngStream.chunk_IENDå  s   € Ø ˆÜ�s‹mÐr9   c                ó˜   • U R                   c   e[        R                  " U R                   U5      nU R                  S:X  a	  SU4U l        U$ )Nr    r   )rW   r   r’   rà   râ   ©rY   rh   ri   rG   s       r:   Ú
chunk_PLTEÚPngStream.chunk_PLTEé  sD   € à�w‰wÑ"Ð"Ð"Ü× Ò  §¡¨&Ó1ˆØ�<‰<˜3ÓØ# Q˜hˆDŒOØˆr9   c                óü  • U R                   c   e[        R                  " U R                   U5      nU R                  S:X  aR  [        R                  U5      (       a'  UR                  S5      nUS:¼  a  X@R                  S'   U$ X0R                  S'    U$ U R                  S;   a  [        U5      U R                  S'   U$ U R                  S:X  a/  [        U5      [        US5      [        US5      4U R                  S'   U$ )	Nr    r¾   r   Útransparency)r   r   r   r   r&   r'   )	rW   r   r’   rà   Ú_simple_paletteÚmatchrù   rÝ   Úi16)rY   rh   ri   rG   rú   s        r:   Ú
chunk_tRNSÚPngStream.chunk_tRNSñ  sã   € à�w‰wÑ"Ð"Ð"Ü× Ò  §¡¨&Ó1ˆØ�<‰<˜3ÓÜ×$Ñ$ Q×'Ñ'ð —F‘F˜5“M�Ø˜“6Ø34—L‘L Ñ0ð ˆð 01—‘˜^Ò,ð
 ˆð	 �\‰\Ð/Ó/Ü+.¨q«6ˆD�L‰L˜Ñ(ð ˆð �\‰\˜UÓ"Ü+.¨q«6´3°q¸!³9¼cÀ!ÀQ»iÐ+GˆD�L‰L˜Ñ(Øˆr9   c                óœ   • U R                   c   e[        R                  " U R                   U5      n[        U5      S-  U R                  S'   U$ )Nç     jø@Úgamma)rW   r   r’   rb   rÝ   r  s       r:   Ú
chunk_gAMAÚPngStream.chunk_gAMA  sD   € à�w‰wÑ"Ð"Ð"Ü× Ò  §¡¨&Ó1ˆÜ # A£¨Ñ 1ˆ�‰�WÑØˆr9   c                óò   • U R                   c   e[        R                  " U R                   U5      n[        R                  " S[        U5      S-   S3U5      n[        S U 5       5      U R                  S'   U$ )NÚ>r'   ÚIc              3  ó*   #   • U  H	  oS -  v •  M     g7f)r!  Nr0   )Ú.0Úelts     r:   Ú	<genexpr>Ú'PngStream.chunk_cHRM.<locals>.<genexpr>  s   é € Ð,PÂxÀ°8®^Âxùs   ‚Úchromaticity)rW   r   r’   r‡   ÚunpackÚlenÚtuplerÝ   )rY   rh   ri   rG   Úraw_valss        r:   Ú
chunk_cHRMÚPngStream.chunk_cHRM  si   € ð �w‰wÑ"Ð"Ð"Ü× Ò  §¡¨&Ó1ˆÜ—=’= 1¤S¨£V¨q¡[ M°Ð!3°QÓ7ˆÜ',Ñ,PÁxÓ,PÓ'Pˆ�‰�^Ñ$Øˆr9   c                óÞ   • U R                   c   e[        R                  " U R                   U5      nUS:  a$  [        R                  (       a  U$ Sn[	        U5      eUS   U R
                  S'   U$ )Nr   zTruncated sRGB chunkr   Úsrgb)rW   r   r’   rd   rF   rÝ   r  s        r:   Ú
chunk_sRGBÚPngStream.chunk_sRGB  se   € ð �w‰wÑ"Ð"Ð"Ü× Ò  §¡¨&Ó1ˆØ�A‹:Ü×.×.Ø�Ø(ˆCÜ˜S“/Ð!Ø  ™tˆ�‰�VÑØˆr9   c                ó^  • U R                   c   e[        R                  " U R                   U5      nUS:  a$  [        R                  (       a  U$ Sn[	        U5      e[        US5      [        US5      peUS   nUS:X  a  US-  US-  4nX€R                  S'   U$ US:X  a  XV4U R                  S	'   U$ )
Nr   zTruncated pHYs chunkr   r'   r(   r   ç¦
F%uš?ÚdpiÚaspect)rW   r   r’   rd   rF   rb   rÝ   )	rY   rh   ri   rG   rJ   ÚpxÚpyÚunitr:  s	            r:   Ú
chunk_pHYsÚPngStream.chunk_pHYs(  s²   € à�w‰wÑ"Ð"Ð"Ü× Ò  §¡¨&Ó1ˆØ�A‹:Ü×.×.Ø�Ø(ˆCÜ˜S“/Ð!Ü�Q˜“œC  1›IˆBØ�‰tˆØ�1‹9Ø�v‘+˜r F™{Ð*ˆCØ"%�L‰L˜Ñð ˆð �Q‹YØ%' VˆD�L‰L˜Ñ"Øˆr9   c                óŒ  • U R                   c   e[        R                  " U R                   U5      n UR                  SS5      u  pEU(       ac  UR                  SS5      nUR                  SS5      nUS:X  a  UOUU R                  U'   XpR                  U'   U R                  [        U5      5        U$ ! [         a    UnSn N|f = f)Nr¾   r   r9   rº   r»   Úreplaces   exif)
rW   r   r’   ÚsplitrF   r�   rÝ   rÞ   rí   r/  )rY   rh   ri   rG   ÚkÚvÚk_strÚv_strs           r:   Ú
chunk_tEXtÚPngStream.chunk_tEXt:  s¸   € à�w‰wÑ"Ð"Ð"Ü× Ò  §¡¨&Ó1ˆð	Ø—7‘7˜5 !Ó$‰DˆAö
 Ø—H‘H˜Y¨Ó1ˆEØ—H‘H˜Y¨	Ó2ˆEà'(¨G£|¡!¸ˆD�L‰L˜ÑØ"'�L‰L˜ÑØ×"Ñ"¤3 u£:Ô.àˆøô ó 	àˆAØŠAð	ús   ²B2 Â2CÃCc                óf  • U R                   c   e[        R                  " U R                   U5      n UR                  SS5      u  pEU(       a  US   nOSnUS:w  a  SU S3n[        U5      e [        USS  5      nU(       a\  UR                  SS5      nUR                  SS	5      n	U	=U R                  U'   U R                  U'   U R                  [        U	5      5        U$ ! [         a    UnSn Nªf = f! [         a    [        R                  (       a  Sn Nœe [        R                   a    Sn N´f = f)
Nr¾   r   r9   r   r÷   z in zTXt chunkrº   r»   rB  )rW   r   r’   rC  rF   rf   rK   rd   rA   rˆ   r�   rÝ   rÞ   rí   r/  )
rY   rh   ri   rG   rD  rE  rû   rJ   rF  rG  s
             r:   Ú
chunk_zTXtÚPngStream.chunk_zTXtN  s-  € à�w‰wÑ"Ð"Ð"Ü× Ò  §¡¨&Ó1ˆð	Ø—7‘7˜5 !Ó$‰DˆAö Ø˜A™$‰KàˆKØ˜!ÓØ/°¨}¸NÐKˆCÜ˜cÓ"Ð"ð	Ü% a¨¨ eÓ,ˆAö Ø—H‘H˜Y¨Ó1ˆEØ—H‘H˜Y¨	Ó2ˆEà8=Ð=ˆD�L‰L˜Ñ $§,¡,¨uÑ"5Ø×"Ñ"¤3 u£:Ô.àˆøô7 ó 	ØˆAØŠAð	ûô ó 	Ü×.×.Ø’àÜ�z‰zó 	ØŠAð	ús)   ²C  Á-C4 Ã C1Ã0C1Ã4!D0ÄD0Ä/D0c                óZ  • U R                   c   e[        R                  " U R                   U5      =p4 UR                  SS5      u  pS[        U5      S:  a  U$ US   US   USS  p7n UR                  SS5      u  p‰n
US:w  a  US:X  a   [        U
5      n
OU$ US:X  a  X R                  S'    UR                  SS5      nUR                  S	S5      nU	R                  S	S5      nU
R                  S	S5      n[        XìU5      =U R                  U'   U R                  U'   U R                  [        U5      5        U$ ! [         a    Us $ f = f! [         a    Us $ f = f! [         a    [        R                  (       a  Us $ e [        R                   a    Us $ f = f! [         a    Us $ f = f)
Nr¾   r   r&   r   s   XML:com.adobe.xmpÚxmprº   r»   r¼   )rW   r   r’   rC  rF   r/  rK   rd   rA   rˆ   rÝ   r�   rË   r¡   rÞ   rí   )rY   rh   ri   ÚrrG   rD  ÚcfÚcmr£   ÚtkrE  rF  Úlang_strÚtk_strrG  s                  r:   Ú
chunk_iTXtÚPngStream.chunk_iTXtq  sµ  € à�w‰wÑ"Ð"Ð"Ü×$Ò$ T§W¡W¨fÓ5Ð5ˆð	Ø—7‘7˜5 !Ó$‰DˆAô ˆq‹6�A‹:ØˆHØ�a‘D˜!˜A™$  ! " �ˆð	ØŸ'™' %¨Ó+‰KˆD�að �‹7Ø�Q‹wðÜ-¨aÓ0‘Að �ØÐ$Ó$Ø"#�L‰L˜Ñð	Ø—H‘H˜Y¨Ó1ˆEØ—{‘{ 7¨HÓ5ˆHØ—Y‘Y˜w¨Ó1ˆFØ—H‘H˜W hÓ/ˆEô 59¸È&Ó4QÐQˆ�‰�UÑ˜dŸl™l¨5Ñ1Ø×Ñœs 5›zÔ*àˆøôG ó 	ØŠHð	ûô ó 	ØŠHð	ûô "ó Ü ×6×6Ø šàÜ—z‘zó Ø’Hðûô ó 	ØŠHð	úsN   ³D8 Á'E
 Â	E Â,AF Ä8EÅEÅ
EÅEÅ!FÅ?FÆFÆF*Æ)F*c                óŠ   • U R                   c   e[        R                  " U R                   U5      nSU-   U R                  S'   U$ )Nó   Exif  Úexif)rW   r   r’   rÝ   r  s       r:   Ú
chunk_eXIfÚPngStream.chunk_eXIfœ  s@   € Ø�w‰wÑ"Ð"Ð"Ü× Ò  §¡¨&Ó1ˆØ.°Ñ2ˆ�‰�VÑØˆr9   c                ó¼  • U R                   c   e[        R                  " U R                   U5      nUS:  a$  [        R                  (       a  U$ Sn[	        U5      eU R
                  b  S U l        [        R                  " S5        U$ [        U5      nUS:X  d  US:”  a  [        R                  " S5        U$ XPl        [        US5      U R                  S'   SU l
        U$ )	Nr(   z"APNG contains truncated acTL chunkz4Invalid APNG, will use default PNG image if possibler   l        r'   Úloopz
image/apng)rW   r   r’   rd   rF   rä   ÚwarningsÚwarnrb   rÝ   rã   )rY   rh   ri   rG   rJ   Ún_framess         r:   Ú
chunk_acTLÚPngStream.chunk_acTL£  sÂ   € Ø�w‰wÑ"Ð"Ð"Ü× Ò  §¡¨&Ó1ˆØ�A‹:Ü×.×.Ø�Ø6ˆCÜ˜S“/Ð!Ø×ÑÑ'Ø#ˆDÔÜ�MŠMÐPÔQØˆHÜ�q“6ˆØ�q‹=˜H zÓ1Ü�MŠMÐPÔQØˆHØ#ÔÜ" 1 a›yˆ�‰�VÑØ".ˆÔØˆr9   c                ó  • U R                   c   e[        R                  " U R                   U5      nUS:  a$  [        R                  (       a  U$ Sn[	        U5      e[        U5      nU R                  c  US:w  d   U R                  b   U R                  US-
  :w  a  Sn[        U5      eXPl        [        US5      [        US5      pv[        US5      [        US	5      p˜U R                  u  p«X†-   U
:”  d  X—-   U:”  a  S
n[        U5      eX‰X†-   X—-   4U R                  S'   [        US5      [        US5      pÜUS:X  a  Sn[        U5      [        U5      -  S-  U R                  S'   US   U R                  S'   US   U R                  S'   U$ )Né   z"APNG contains truncated fcTL chunkr   r   ú#APNG contains frame sequence errorsr'   r(   r  r)   zAPNG contains invalid framesr  é   é   éd   éè  Údurationé   Údisposalé   Úblend)rW   r   r’   rd   rF   rb   rå   rf   rß   rÝ   r  Úfloat)rY   rh   ri   rG   rJ   ÚseqÚwidthÚheightr<  r=  Úim_wÚim_hÚ	delay_numÚ	delay_dens                 r:   Ú
chunk_fcTLÚPngStream.chunk_fcTL¸  sj  € Ø�w‰wÑ"Ð"Ð"Ü× Ò  §¡¨&Ó1ˆØ�B‹;Ü×.×.Ø�Ø6ˆCÜ˜S“/Ð!Ü�!‹fˆØ�M‰MÑ! c¨Q£hØ�M‰MÑ%¨$¯-©-¸3À¹7Ó*Bà7ˆCÜ˜cÓ"Ð"ØŒÜ˜A˜q›	¤3 q¨!£9ˆvÜ�Q˜“œS  B›ZˆBØ—\‘\‰
ˆØ‰:˜Ó ¡¨dÓ 2Ø0ˆCÜ˜cÓ"Ð"Ø "¨©
°B±KÐ@ˆ�‰�VÑÜ" 1 b›z¬3¨q°"«:�9Ø˜‹>ØˆIÜ#(¨Ó#3´e¸IÓ6FÑ#FÈÑ#Mˆ�‰�ZÑ Ø#$ R¡5ˆ�‰�ZÑ Ø ! "¡ˆ�‰�WÑØˆr9   c                óŠ  • U R                   c   eUS:  aE  [        R                  (       a#  [        R                  " U R                   U5      nU$ Sn[	        U5      e[        R                  " U R                   S5      n[        U5      nU R                  US-
  :w  a  Sn[        U5      eXPl        U R                  US-   US-
  5      $ )Nr'   z"APNG contains truncated fDAT chunkr   re  )	rW   r   rd   r’   rF   rb   rå   rf   r  )rY   rh   ri   rG   rJ   rp  s         r:   Ú
chunk_fdATÚPngStream.chunk_fdATÖ  s©   € Ø�w‰wÑ"Ð"Ð"Ø�A‹:Ü×.×.Ü×(Ò(¨¯©°&Ó9�Ø�Ø6ˆCÜ˜S“/Ð!Ü× Ò  §¡¨!Ó,ˆÜ�!‹fˆØ�=‰=˜C !™GÓ#Ø7ˆCÜ˜cÓ"Ð"ØŒØ�‰˜s Q™w¨°©
Ó3Ð3r9   )rå   rã   r  rÝ   rà   rä   râ   r  rß   rÞ   rá   ræ   rç   r—   )rì   rž   r™   rš   rœ   )rh   rž   ri   rž   r™   r�   )rh   rž   ri   rž   r™   r   )r1   r2   r3   r4   rZ   rí   rñ   rô   rü   r  r  r  r  r  r#  r2  r6  r?  rH  rK  rU  rZ  ra  rw  rz  r8   Ú__classcell__©rè   s   @r:   rÙ   rÙ   €  ss   ø† ÷ô""ô
ô2ô
ô8ô*ôôôô*ôôô"ô$ô(!ôF)ôVôô*÷<4ò 4r9   rÙ   c                ó,   • U R                  [        5      $ rU   )Ú
startswithÚ_MAGIC)Úprefixs    r:   Ú_acceptr‚  ë  s   € Ø×ÑœVÓ$Ð$r9   c                  ó¦   ^ • \ rS rSrSrSrSS jr\SS j5       rSS jr	SS jr
SSS jjrSS	 jrSS
 jrSS jrSS jrSS jrSU 4S jjrSrU =r$ )ÚPngImageFileió  ÚPNGzPortable network graphicsc                óv  • [        U R                  R                  S5      5      (       d  Sn[        U5      eU R                  U l        SU l        / U l        [        U R                  5      U l         U R                  R                  5       u  p#n U R                  R                  X#U5      nU R                  R%                  X%5        MW  ! [         a     O{[         ao    [        R                  SX#U5        [        R                  " U R                  U5      nUSS R!                  5       (       a  U R                  R#                  X%45         N f = fU R                  R&                  U l        U R                  R*                  U l        U R                  R.                  U l        S U l        U R                  R4                  U l        U R                  R8                  U l        U R                  R<                  =(       d    SU l        U R0                  RA                  SS5      U l!        U R                  RD                  (       a3  U R                  RD                  u  pg[F        RH                  " Xg5      U l%        US	:X  a  US
-
  U l&        OX@l&        U R                  R<                  bˆ  SU l'        U R                  RQ                  5         U RL                  U l)        U R                  RU                  5       U l+        U RB                  (       a  U =R>                  S-  sl        U RY                  S5        U R>                  S:„  U l-        g )Nr(   znot a PNG filer   ú%r %s %s (unknown)r   r&   r  Fó   fdATr'   ).r‚  rW   r`   rf   Ú_fpÚ_PngImageFile__frameÚprivate_chunksrÙ   Úpngr‚   r  ÚAttributeErrorr~   r   r   r’   Úislowerrw   rŒ   rà   Ú_moderß   Ú_sizerÝ   rÔ   Ú_textrá   rÕ   rã   Úcustom_mimetyperä   r`  Úgetr  râ   r   ÚrawÚpaletteÚ_PngImageFile__prepare_idatÚ!_close_exclusive_fp_after_loadingrñ   Ú_PngImageFile__rewind_idatra   Ú_PngImageFile__rewindÚ_seekÚis_animated)rY   rJ   rg   rh   ri   rG   ÚrawmoderN   s           r:   Ú_openÚPngImageFile._open÷  s^  € Ü�t—w‘w—|‘| A“×'Ñ'Ø"ˆCÜ˜cÓ"Ð"Ø—7‘7ˆŒØˆŒð
 VXˆÔÜ%.¨t¯w©wÓ%7ˆŒàð  $Ÿx™xŸ}™}›ÑˆC�fð9Ø—H‘H—M‘M #¨FÓ3�ð �H‰H�L‰L˜Ô ñ! øô ó ÙÜ!ó 9Ü—‘Ð1°3¸VÔDÜ×(Ò(¨¯©°&Ó9�Ø�q˜�8×#Ñ#×%Ñ%Ø×'Ñ'×.Ñ.°¨xÔ8ùð	9úð —X‘X×%Ñ%ˆŒ
Ø—X‘X×%Ñ%ˆŒ
Ø—H‘H×$Ñ$ˆŒ	Ø37ˆŒ
Ø—H‘H×$Ñ$ˆŒ	Ø#Ÿx™x×:Ñ:ˆÔØŸ™×,Ñ,×1°ˆŒØ!ŸY™YŸ]™]¨?¸EÓBˆÔà�8‰8××Ø ŸH™H×/Ñ/‰MˆGÜ'×+Ò+¨GÓ:ˆDŒLà�'‹>Ø"(¨1¡*ˆDÕà"(Ôà�8‰8×ÑÑ+Ø5:ˆDÔ2Ø�H‰H× Ñ Ô"Ø!%×!4Ñ!4ˆDÔØ ŸH™HŸM™M›OˆDŒMØ×!×!à—’ Ñ"•Ø�J‰J�qŒMØŸ=™=¨1Ñ,ˆÕs   ÂC Ã
EÃA5EÅEc                ó,  • U R                   cm  U R                  (       a*  U R                  nU R                  U R                  S-
  5        U R                  5         U R                  (       a  U R                  W5        U R                   c   eU R                   $ )Nr   )r‘  r›  rŠ  r_   r`  Úload)rY   Úframes     r:   r©   ÚPngImageFile.text:  so   € ð �:‰:Ñð ××ØŸ™�à—	‘	˜$Ÿ-™-¨!Ñ+Ô,Ø�I‰IŒKØ××Ø—	‘	˜%Ô Ø�z‰zÑ%Ð%Ð%Ø�z‰zÐr9   c                ó~  • U R                   c  Sn[        U5      eU R                   R                  U R                  S   S   S-
  5        U R                  c   eU R                  R                  5         U R                  R                  5         U R                  (       a  U R                   R                  5         SU l         g)zVerify PNG fileNz)verify must be called directly after openr   r&   r(   )rW   ÚRuntimeErrorr_   rÕ   rŒ  r•   rp   Ú_exclusive_fp)rY   rJ   s     r:   r•   ÚPngImageFile.verifyJ  s‰   € ð �7‰7‰?Ø=ˆCÜ˜sÓ#Ð#ð 	�‰�‰�T—Y‘Y˜q‘\ !‘_ qÑ(Ô)à�x‰xÑ#Ð#Ð#Ø�‰�‰ÔØ�‰�‰Ôà××Ø�G‰G�M‰MŒOØˆ�r9   c                óX  • U R                  U5      (       d  g XR                  :  a  U R                  SS5        U R                  n[        U R                  S-   US-   5       H  n U R                  U5        M     g ! [         a$  nU R                  U5        Sn[	        U5      UeS nAff = f)Nr   Tr   zno more images in APNG file)Ú_seek_checkrŠ  rš  Úranger  r_   )rY   r¡  Ú
last_frameÚfr‹   rJ   s         r:   r_   ÚPngImageFile.seek\  s”   € Ø×Ñ ×&Ñ&ØØ—<‘<ÓØ�J‰J�q˜$Ôà—\‘\ˆ
Ü�t—|‘| aÑ'¨°©Ö3ˆAð+Ø—
‘
˜1–ò 4øô ó +Ø—	‘	˜*Ô%Ø3�Ü˜s“m¨Ð*ûð+ús   Á%A;Á;
B)ÂB$Â$B)c                óF  • U R                   c   e[        U R                  [        5      (       a  U R                  R                  eU   S nUS:X  Ga8  U(       až  U R                  R                  U R                  5        U R                   R                  5         U R                  U l	        S U l
        U R                   R                  U l        U R                   R                  U l        U R                  U l        S U l        S U l        U R                  R%                  SS5      U l        U R                  R%                  S5      U l        U R                  R%                  S5      U l        U R                  R%                  S5      nSU l        GOpXR,                  S-   :w  a  SU 3n[/        U5      eU R1                  5         U R"                  (       a0  U R2                  R5                  U R"                  U R6                  5        U R2                  R9                  5       U l        U R                  U l        U R                  (       a2  [:        R<                  " U R                  U R                  5        SU l	        Sn U R                  R?                  S
5         U R                   R?                  5       u  pgnUS:X  a  Sn[G        U5      eUS:X  a  U(       a  Sn[E        U5      eS	n U R                   RI                  XgU5        M‡  U(       a  X0l        U R                   c3  U R(                  [R        RT                  :X  a  [R        RV                  U l        S U l        U R(                  [R        RT                  :X  a]  U R                   (       aK  U R                   R9                  5       U l        U RY                  U R"                  U R6                  5      U l        g g U R(                  [R        RV                  :X  ae  [Z        R\                  R_                  U R`                  U Rb                  5      U l        U RY                  U R"                  U R6                  5      U l        g g ! [@        RB                  [D        4 a     OŸf = f! [J         a     O�[F         a?    US:X  a  US
-  nU(       a  X€l	         Ol[:        R<                  " U R                  U5         GNÈ[L         a<    [N        RQ                  SXgU5        [:        R<                  " U R                  U5         GNf = fXl        U R                   R                  U l        U R                  R%                  S5      U l        U R                  R%                  S5      U l        U R                  R%                  S5      nU R                  (       a  GMž  Sn[G        U5      e)Nr   r  Frl  rn  r  r   zcannot seek to frame Tr'   rŸ   zNo more images in APNG fileó   fcTLzAPNG missing frame datarˆ  r‡  zimage not found in APNG frame)2rŒ  r¿   r‰  r   Úexr_   r™  rô   r˜  r–  Ú_imrÝ   rÔ   rá   rÕ   rW   Ú_prev_imÚdisposer“  r  Ú
dispose_opÚblend_oprŠ  rF   r   ÚimÚpasteÚdispose_extentrð   r   r’   r`   r‡   rˆ   rf   r  r‚   ÚUnicodeDecodeErrorr�  r~   r   r.   r7   r6   Ú_cropr	   ÚcoreÚfillÚmodeÚsize)	rY   r¡  rô   r·  rJ   Úframe_startrg   rh   ri   s	            r:   rš  ÚPngImageFile._seekk  s
  € Ø�x‰xÑ#Ð#Ð#Ü�d—h‘h¤×.Ñ.Ø—(‘(—+‘+ÐáØˆØ�AŒ:ÞØ—‘—‘˜dŸm™mÔ,Ø—‘—‘Ô!Ø&*×&8Ñ&8�Ô#Ø�”Ø ŸH™H×,Ñ,�”	Ø ŸH™H×,Ñ,�”	ØŸ(™(�”Ø ˆDŒMØˆDŒLØ!%§¡§¡¨ÀÓ!FˆDÔØ"Ÿi™iŸm™m¨JÓ7ˆDŒOØ ŸI™IŸM™M¨'Ó2ˆDŒMØ!ŸY™YŸ]™]¨6Ó2ˆNØˆDŽLàŸ™ qÑ(Ó(Ø-¨e¨WÐ5�Ü  “oÐ%ð �I‰IŒKà�|�|Ø—‘—‘˜dŸl™l¨D×,?Ñ,?Ô@Ø ŸG™GŸL™L›NˆDŒMà—h‘hˆDŒGð ×"×"Ü×$Ò$ T§W¡W¨d×.AÑ.AÔBØ&'�Ô#ØˆKØØ—‘—‘˜Q”ðØ'+§x¡x§}¡}£Ñ$�C˜fð ˜'“>Ø7�CÜ" 3›-Ð'Ø˜'“>Þ"à7˜Ü)¨#Ó.Ð.Ø"&�Kð:Ø—H‘H—M‘M #¨FÔ3ñ' öT ØESÔð �=‰=Ñ  T§_¡_¼×8LÑ8LÓ%LÜ&×4Ñ4ˆDŒOàˆŒØ�?‰?œh×2Ñ2Ó2Ø�}�}Ø#Ÿ}™}×1Ñ1Ó3�”Ø#Ÿz™z¨$¯,©,¸×8KÑ8KÓL�•ð ð �_‰_¤× 6Ñ 6Ó6Ü Ÿ:™:Ÿ?™?¨4¯9©9°d·i±iÓ@ˆDŒLØŸ:™: d§l¡l°D×4GÑ4GÓHˆD�Lð 7øôc Ÿ™¤kÐ2ó Ùðûô *ó ÙÜó :Ø˜g“~Ø !™˜Þ&Ø28Ô/Ù!Ü×(Ò(¨¯©°&×9Ü%ó :Ü—L‘LÐ!5°sÀÔHÜ×(Ò(¨¯©°&×9ð:úð !ŒLØŸ™×(Ñ(ˆDŒIØ"Ÿi™iŸm™m¨JÓ7ˆDŒOØ ŸI™IŸM™M¨'Ó2ˆDŒMØ!ŸY™YŸ]™]¨6Ó2ˆNà—9—9’9Ø5�Ü˜s“mÐ#s7   ÊQ ËQ+ ÑQ(Ñ'Q(Ñ+
TÑ7!TÒ!TÒ>ATÔTc                ó   • U R                   $ rU   )rŠ  rl   s    r:   ra   ÚPngImageFile.tellÏ  s   € Ø�|‰|Ðr9   c                óÌ   • U R                   R                  S5      (       a  U R                  S-   U l        U R                  U l        [
        R
                  R                  U 5        g)z"internal: prepare to read PNG filer  )r   N)rÔ   r“  Údecoderconfigr–  Ú_PngImageFile__idatr   Úload_preparerl   s    r:   rÅ  ÚPngImageFile.load_prepareÒ  sK   € ð �9‰9�=‰=˜×%Ñ%Ø!%×!3Ñ!3°dÑ!:ˆDÔà×)Ñ)ˆŒÜ×Ñ×(Ñ(¨Õ.r9   c                óP  • U R                   c   eU R                  S:X  a¡  U R                  R                  S5        U R                   R                  5       u  p#nUS;  a  U R                   R	                  X#U5        gUS:X  a(   U R                   R                  X#U5        US-
  U l        OX@l        U R                  S:X  a  M¡  US::  a  U R                  nO[        XR                  5      nU R                  U-
  U l        U R                  R                  U5      $ ! [         a     N†f = f)zinternal: read more image datar   r'   )ó   IDATs   DDATrˆ  r9   rˆ  )rŒ  rÄ  rW   r`   ry   r‚   r  Úmin)rY   Ú
read_bytesrg   rh   ri   s        r:   Ú	load_readÚPngImageFile.load_readÛ  sø   € ð �x‰xÑ#Ð#Ð#Ø�k‰k˜QÓð �G‰G�L‰L˜ŒOà#Ÿx™xŸ}™}›ÑˆC�fàÐ5Ó5Ø—‘—‘˜c¨Ô/Øà�g‹~ðØ—H‘H—M‘M #¨FÔ3ð % q™j�•à$”ð% �k‰k˜QÕð* ˜‹?ØŸ™‰Jä˜Z¯©Ó5ˆJà—k‘k JÑ.ˆŒà�w‰w�|‰|˜JÓ'Ð'øô  ó Ùðús   ÂD Ä
D%Ä$D%c                ón  • U R                   c   eU R                  S:w  a%  U R                  R                  U R                  5         U R                  R                  S5         U R                   R                  5       u  pnUS:X  a  OZUS:X  a5  U R                  (       a$  SU l        U R                   R                  XU5        O U R                   R                  XU5        Mš  U R                   R.                  U l        U R                  (       d"  U R                   R3                  5         SU l         gU R4                  (       Ga_  U R6                  [8        R:                  :X  Ga?  U R=                  U R>                  U R@                  5      nU R>                  RB                  S:X  a0  SU RD                  ;   a   URG                  SU RD                  S   5      nO—U R>                  RB                  S:X  al  SU RD                  ;   a\  U RD                  S   n[I        U[J        5      (       a  URM                  U5        O&[I        U[N        5      (       a  URQ                  U5        URS                  S5      nU R4                  RU                  X`R@                  U5        U R4                  U l        ggg! [        R
                  [        4 a     GMÞ  f = f! [         a     GMð  [         ab    US:X  a  US-  n [        R                  " U R                  U5         GN+! [         a$  n[        R                   (       a   SnA GMP  UeSnAff = f["         aq    [$        R'                  SXU5        [        R                  " U R                  U5      nUS	S
 R)                  5       (       a  U R*                  R-                  XS45         GNÕf = f)z%internal: finished reading image dataNr   Tr'   rŸ   r®  rˆ  r‡  r   r&   r   r  r%   r    )+rŒ  rÄ  rW   r`   r‡   rˆ   rf   r›  r–  ry   r‚   r¸  r  r   r’   r‘   rd   r�  r~   r   rŽ  r‹  rw   rÞ   r‘  rp   r±  r´  r<   r?   r¹  rµ  r·  r¼  rÔ   Úconvert_transparentr¿   r�   Úputpalettealphasrž   ÚputpalettealphaÚconvertr¶  )	rY   rg   rh   ri   r‹   rG   ÚupdatedÚmaskÚts	            r:   Úload_endÚPngImageFile.load_endý  sÌ  € à�x‰xÑ#Ð#Ð#Ø�;‰;˜!ÓØ�G‰G�L‰L˜Ÿ™Ô%ØØ�G‰G�L‰L˜ŒOðØ#'§8¡8§=¡=£?Ñ �˜&ð �g‹~ØØ˜“ D×$4×$4à&'�Ô#Ø—‘—‘˜c¨Ô/Øð?Ø—‘—‘˜c¨Ô/ñ# ðF —X‘X×%Ñ%ˆŒ
Ø××Ø�H‰H�N‰NÔØˆD�Hà�}�}ˆ} §¡´%·-±-Ô!?ØŸ*™* T§W¡W¨d×.AÑ.AÓB�Ø—7‘7—<‘< 5Ó(¨^¸t¿y¹yÓ-HØ"×6Ñ6Ø §	¡	¨.Ñ 9ó‘Dð —w‘w—|‘| sÓ*¨~ÀÇÁÓ/JØ ŸI™I nÑ5˜Ü% a¬×/Ñ/Ø#×4Ñ4°QÕ7Ü'¨¬3×/Ñ/Ø#×3Ñ3°AÔ6Ø"Ÿ?™?¨6Ó2�DØ—‘×#Ñ# G×-@Ñ-@À$ÔGØŸ-™-�•ð "@ˆ}øôG —L‘L¤+Ð.ó Ûðûô &ó ÛÜó 	 Ø˜'“>Ø˜a‘K�Fð Ü×(Ò(¨¯©°&×9øÜó  Ü ×6×6ßà˜ûð	 úô
 "ó ?Ü—‘Ð1°3¸VÔDÜ×(Ò(¨¯©°&Ó9�Ø�q˜�8×#Ñ#×%Ñ%Ø×'Ñ'×.Ñ.°¸¨~Ô>úð	?úsU   Á"J  ÃK Ê J?Ê>J?Ë
N4ËN4Ë%!L	Ì	
L7ÌL2Ì(N4Ì0L2Ì2L7Ì7A9N4Î3N4c                óÀ   • SU R                   ;  a  U R                  5         SU R                   ;  a  SU R                   ;  a  g U R                  5       R                  5       $ )NrY  zRaw profile type exif)rÔ   r   ÚgetexifÚ_get_merged_dictrl   s    r:   Ú_getexifÚPngImageFile._getexif;  sG   € Ø˜Ÿ™Ó"Ø�I‰IŒKØ˜Ÿ™Ó"Ð'>ÀdÇiÁiÓ'OØØ�|‰|‹~×.Ñ.Ó0Ð0r9   c                ó`   >• SU R                   ;  a  U R                  5         [        TU ]  5       $ )NrY  )rÔ   r   rÜ   rØ  )rY   rè   s    €r:   rØ  ÚPngImageFile.getexifB  s%   ø€ Ø˜Ÿ™Ó"Ø�I‰IŒKä‰w‰Ó Ð r9   )Ú__frameÚ__idatÚ__prepare_idatÚ__rewindÚ__rewind_idatr—  r‰  r°  r�  r±  r�  r‘  r´  r’  rÃ  r  r²  r·  r³  rW   rµ  rÔ   r›  r`  r•  rŒ  r‹  rÕ   rœ   )r™   zdict[str, str | iTXt])r¡  rž   r™   rš   rÎ   )r¡  rž   rô   rÏ   r™   rš   )r™   rž   )rÊ  rž   r™   r�   )r™   zdict[int, Any] | None)r™   z
Image.Exif)r1   r2   r3   r4   ÚformatÚformat_descriptionr�  Úpropertyr©   r•   r_   rš  ra   rÅ  rË  rÕ  rÚ  rØ  r8   r|  r}  s   @r:   r„  r„  ó  s`   ø† Ø€FØ4ÐôA-ðF óó ðôô$+öbIôHô/ô (ôD<(ô|1÷!õ !r9   r„  )r   ó   r¾   )úL;1ræ  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   r$   r'  r   r   r!   r"   r#   r    r   r%   c                óò   • SR                  U5      nU R                  [        [        U5      5      U-   5        U R                  U5        [	        U[	        U5      5      nU R                  [        U5      5        g)z'Write a PNG chunk (including CRC field)r9   N)ÚjoinÚwriteÚo32r/  rP   )rW   rg   rN   Ú	byte_datarŒ   s        r:   Úputchunkró  `  sW   € ð —‘˜“€Ià‡H�HŒS”�Y“Ó  3Ñ&Ô'Ø‡H�HˆYÔÜ
�œF 3›KÓ
(€CØ‡H�HŒS�‹XÕr9   c                  ó(   • \ rS rSrSS jrSS jrSrg)Ú_idatik  c                ó   • Xl         X l        g rU   )rW   Úchunk)rY   rW   r÷  s      r:   rZ   Ú_idat.__init__n  s   € ØŒØ�
r9   c                ó>   • U R                  U R                  SU5        g )NrÈ  ©r÷  rW   ©rY   rN   s     r:   rð  Ú_idat.writer  s   € Ø�
‰
�4—7‘7˜G TÕ*r9   rú  N)rW   r˜   r÷  úCallable[..., None]r™   rš   ©rN   r�   r™   rš   ©r1   r2   r3   r4   rZ   rð  r8   r0   r9   r:   rõ  rõ  k  s   † ô÷+r9   rõ  c                  ó(   • \ rS rSrSS jrSS jrSrg)Ú_fdativ  c                ó(   • Xl         X l        X0l        g rU   )rW   r÷  rÖ   )rY   rW   r÷  rÖ   s       r:   rZ   Ú_fdat.__init__y  s   € ØŒØŒ
Ø�r9   c                ó�   • U R                  U R                  S[        U R                  5      U5        U =R                  S-  sl        g )Nrˆ  r   )r÷  rW   rñ  rÖ   rû  s     r:   rð  Ú_fdat.write~  s/   € Ø�
‰
�4—7‘7˜G¤S¨¯©Ó%6¸Ô=Ø�Š˜ÑŽr9   )r÷  rW   rÖ   N)rW   r˜   r÷  rý  rÖ   rž   r™   rš   rþ  rÿ  r0   r9   r:   r  r  v  s   † ô÷
r9   r  c                  ó4   • \ rS rSr% S\S'   S\S'   S\S'   Srg	)
Ú_Frameiƒ  úImage.Imagerµ  z tuple[int, int, int, int] | Noner  zdict[str, Any]Úencoderinfor0   Nr×   r0   r9   r:   r  r  ƒ  s   ‡ ØƒOØ
*Ó*ØÖr9   r  c                óæ  • U R                   R                  S5      nU R                   R                  SU R                  R                  SS5      5      nU R                   R                  SU R                  R                  S[        R                  5      5      n	U R                   R                  SU R                  R                  S[
        R                  5      5      n
U(       a  [        R                  " U5      nO[        R                  " U /U5      n/ nSnU GHý  n[        R                  " U5       GHÞ  nUR                  U:X  a  UR                  5       nOUR                  U5      nU R                   R                  5       n[        U[        [         45      (       a  X}   US'   O%Uc"  SUR                  ;   a  UR                  S   US'   [        U	[        [         45      (       a  X�   US'   [        U
[        [         45      (       a  X­   US'   US-  nU(       Ga×  US   nUR                   R                  S5      nUR                   R                  S5      nU[        R"                  :X  a  [%        U5      S:  a  [        R&                  nU[        R&                  :X  aŒ  UR(                  R                  5       n[*        R,                  R/                  S	U R0                  S
5      nUR2                  nU(       a  UR5                  U5      nOSU R0                  -   nUR7                  UU5        O0U[        R"                  :X  a  US   R(                  nOUR(                  n[8        R:                  " UR                  S	5      UR                  S	5      5      nUR=                  SS9nU(       dM  UUR                  S5      :X  a8  UUR                  S5      :X  a#  SU;   a  UR                   S==   US   -  ss'   GM¿  OS nUR?                  [A        UUU5      5        GMá     GM      [%        U5      S:X  a  U(       d  US   R(                  $ U" US[C        [%        U5      5      [C        U5      5        U(       a|  U R                  U:w  a  U R                  U5      n [D        RF                  " U [I        [J        [L           [O        X5      5      [D        RP                  " SSU R0                  -   SU5      /5        Sn[S        U5       GHú  u  nnUR(                  nUR2                  (       d  SUR0                  -   nOUR2                  nUR5                  U5      nUR0                  nUR                   n[U        [W        UR                  SS5      5      5      nUR                  SU	5      nUR                  SU
5      nU" US[C        U5      [C        US   5      [C        US   5      [C        US   5      [C        US   5      [Y        U5      [Y        S5      [[        U5      [[        U5      5        US-  nUS:X  ae  U(       d^  [D        RF                  " U[I        [J        [L           [O        X5      5      [D        RP                  " SSUR0                  -   SU5      /5        GM�  []        XU5      n[D        RF                  " U[I        [J        [L           U5      [D        RP                  " SSUR0                  -   SU5      /5        UR^                  nGMý     g )Nrj  r]  r   rl  rn  r   éÿÿÿÿr&   r%   )r   r   r   r   rÛ   éþÿÿÿF)Ú
alpha_onlys   acTLrÄ   r®  ri  )0r	  r“  rÔ   r.   r5   r<   r>   Ú	itertoolsÚchainr   ÚIteratorr¼  rð   rÑ  r¿   Úlistr0  r7   r/  r6   rµ  r	   rº  r»  r½  r  Úcropr¶  r
   Úsubtract_moduloÚgetbboxrw   r  rñ  r   Ú_saver   r   r�   rõ  r  Ú	enumeraterž   ÚroundÚo16r   r  rÖ   ) rµ  rW   r÷  r¼  rœ  r  Úappend_imagesrj  r]  rl  rn  r  Ú	im_framesÚframe_countÚim_seqÚim_framer	  ÚpreviousÚprev_disposalÚ
prev_blendÚbase_imr²  r  ÚdeltarÖ   r¡  Ú
frame_datar½  Úframe_durationÚframe_disposalÚframe_blendÚfdat_chunkss                                    r:   Ú_write_multiple_framesr(  ‰  s‚  € ð �~‰~×!Ñ! *Ó-€HØ�>‰>×Ñ˜f b§g¡g§k¡k°&¸!Ó&<Ó=€DØ�~‰~×!Ñ! *¨b¯g©g¯k©k¸*Äh×FVÑFVÓ.WÓX€HØ�N‰N×Ñ˜w¨¯©¯©°G¼U¿_¹_Ó(MÓN€EæÜ—’ Ó.‰ä—’   mÓ4ˆà €IØ€KÜˆÜ%×.Ò.¨v×6ˆHØ�}‰} Ó$Ø#Ÿ=™=›?‘à#×+Ñ+¨DÓ1�ØŸ.™.×-Ñ-Ó/ˆKÜ˜(¤T¬5 M×2Ñ2Ø*2Ñ*?�˜JÒ'ØÑ! j°H·M±MÓ&AØ*2¯-©-¸
Ñ*C�˜JÑ'Ü˜(¤T¬5 M×2Ñ2Ø*2Ñ*?�˜JÑ'Ü˜%¤$¬ ×/Ñ/Ø',Ñ'9�˜GÑ$Ø˜1ÑˆKçØ$ R™=�Ø (× 4Ñ 4× 8Ñ 8¸Ó D�Ø%×1Ñ1×5Ñ5°gÓ>�
Ø ¤H×$8Ñ$8Ó8¼SÀ»^ÈaÓ=OÜ$,×$:Ñ$:�Mà ¤H×$:Ñ$:Ó:Ø&Ÿk™k×.Ñ.Ó0�GÜ#Ÿj™jŸo™o¨f°b·g±g¸|ÓL�GØ#Ÿ=™=�DÞØ")§,¡,¨tÓ"4™à%¨¯©Ñ/˜Ø—M‘M '¨4Õ0Ø"¤h×&:Ñ&:Ó:Ø'¨™m×.Ñ.‘Gà&Ÿk™k�GÜ"×2Ò2Ø×$Ñ$ VÓ,¨g¯o©o¸fÓ.Eó�ð —}‘}°�}Ð6�æØ%¨¯©¸Ó)DÓDØ" k§o¡o°gÓ&>Ó>Ø" kÓ1à×(Ñ(¨Ó4¸ÀJÑ8OÑOÓ4Úøà�Ø×ÑœV H¨d°KÓ@×Aôe 7ñ ôj ˆ9ƒ~˜Ó¦=Ø˜‰|�‰Ðñ 
Ø
ØÜŒC�	‹NÓÜˆD‹	ô	ö Ø�7‰7�d‹?Ø—‘˜DÓ!ˆBÜ�ŠØÜ””E‘œE "Ó,Ó-Ü�_Š_˜U F¨R¯W©WÑ$4°a¸ÓAÐBô	
ð €GÜ& y×1ÑˆˆzØ—=‘=ˆØ��Ø˜HŸM™MÑ)‰Dà—?‘?ˆDØ—}‘} TÓ*ˆHØ�}‰}ˆØ ×,Ñ,ˆÜœU ;§?¡?°:¸qÓ#AÓBÓCˆØ$Ÿ™¨°XÓ>ˆØ!—o‘o g¨uÓ5ˆáØØÜ�‹LÜ��Q‘‹LÜ��Q‘‹LÜ��Q‘‹LÜ��Q‘‹LÜ�ÓÜ�‹IÜˆ~ÓÜˆ{‹Oô	
ð 	�1‰ˆà�A‹:žmä�OŠOØÜ”Rœ‘Y¤ bÓ 0Ó1Ü—’ ¨°·±Ñ(>ÀÀ7ÓKÐL÷ô   ¨7Ó3ˆKÜ�OŠOØÜ”Rœ‘Y Ó,Ü—’ ¨°·±Ñ(>ÀÀ7ÓKÐLôð
 "×)Ñ)‹GñU 2ðV r9   c                ó   • [        XUSS9  g )NT)Úsave_all)r  )rµ  rW   Úfilenames      r:   Ú	_save_allr,    s   € Ü	ˆ"�( TÓ*r9   c                ón  ^(• U(       Ga  U R                   R                  SU R                  R                  S5      5      n[        5       n[        5       m(U R                   R                  S/ 5      n[        R
                  " U /U5       HV  n[        R                  " U5       H9  n	UR                  U	R                  5        T(R                  U	R                  5        M;     MX     S H
  n
X¦;   d  M
    O   UR                  5       n
[        U(4S j[        S5       5       5      nOU R                  nU R                  n
U
nU
S:X  a   SU R                   ;   a  [        SU R                   S   -  S	5      nOQU R                  (       a>  [!        [        [#        U R                  R%                  5       S   5      S
-  S	5      S5      nOS	nUS::  a  US::  a  SnOUS::  a  SnOSnUSU 3-  nU R                   R                  SS5      U R                   R                  SS5      U R                   R                  SS5      U R                   R                  SS5      4U l         [(        U   u  nnnUS:X  a  [/        SSSS9  UR1                  [2        5        U" US[5        US   5      [5        US   5      UUSSS5	        / SQnU R                   R                  SU R                  R                  S5      5      nU(       a9  S nUS!-   [6        R8                  " U5      -   nU" US"U5        UR;                  S#5        U R                   R                  S$5      nU(       a›  / S%QnUR<                   H‡  nUS S u  nnUU;   a  UR;                  U5        U" UUU5        M.  UU;   a  U" UUU5        M@  USS R?                  5       (       d  MZ  [#        U5      S
:H  =(       a    US   nU(       a  M}  U" UUU5        M‰     U R                  S:X  aR  WS
-  nU R@                  RC                  S&5      S U n[#        U5      U:  a  US-  n[#        U5      U:  a  M  U" US'U5        U R                   R                  S(U R                  R                  S(S 5      5      nU(       d  US:X  aü  U R                  S:X  aR  Wn [E        U[F        5      (       a  U" US)US U  5        GO[!        S[        S*U5      5      nS+U-  S-   n!U" US)U!S U  5        OóU R                  S,;   a*  [!        S[        S-U5      5      nU" US)[I        U5      5        O¹U R                  S&:X  a2  Uu  n"n#n$U" US)[I        U"5      [I        U#5      -   [I        U$5      -   5        OwS(U R                   ;   a  S.n[-        U5      eOYU R                  S:X  aI  U R@                  RK                  5       S/:X  a+  U R@                  RC                  S/S05      n!Wn U" US)U!S U  5        U R                   R                  S15      n%U%(       aB  U" US2[5        [M        U%S   S3-  S4-   5      5      [5        [M        U%S   S3-  S4-   5      5      S55        U(       aB  S6S7/nUR<                   H.  nUS S u  nnUU;   d  M  UR;                  U5        U" UUU5        M0     U R                   R                  S85      n&U&(       aU  [E        U&[N        RP                  5      (       a  U&RS                  S95      n&U&RU                  S:5      (       a  U&S;S  n&U" US<U&5        U n'U(       a  [W        XX:UWW5      n'U'(       a[  [X        RZ                  " U'[]        [^        [F           [a        X5      5      [X        Rb                  " S=S>U'R                  -   SU5      /5        U(       ab  UR<                   HR  nUS S u  nnUSS R?                  5       (       d  M%  [#        U5      S
:H  =(       a    US   nU(       d  MH  U" UUU5        MT     U" US?S5        [e        US@5      (       a  URg                  5         g g ! [*         a  nSU
 S3n[-        U5      UeS nAff = f)ANr  r  )r%   r   r    c              3  óP   >^#   • U  H  m[        U4S  jT 5       5      v •  M     g7f)c              3  ó,   >#   • U  H	  oT   v •  M     g 7frU   r0   )r)  Ú
frame_sizerú   s     €r:   r+  Ú"_save.<locals>.<genexpr>.<genexpr>4  s   øé € Ð?º¨: Ažºùs   ƒN)Úmax)r)  rú   Úsizess    @€r:   r+  Ú_save.<locals>.<genexpr>4  s   ùé € ÐRÊÀA”SÔ?¹Ó?×?Ð?Êùs   „"&r&   r    Úbitsr   é   r*   r)   r'   Ú;ÚoptimizeFÚcompress_levelr  Úcompress_typeÚ
dictionaryr9   zcannot write mode z as PNGr'  zSaving I mode images as PNGrÿ   )Ú
stacklevels   IHDRr   r¾   )s   cHRMs   cICPs   gAMAs   sBITó   sRGBs   tIMErø   s   ICC ProfilerÉ   s   iCCPr=  Úpnginfo)s   sPLTr½   rÊ   rÈ   r   s   PLTEr  s   tRNSr¢   ó   ÿ)r   r   r'  r   iÿÿ  z%cannot use transparency for this moder%   ÚAr:  s   pHYsr9  g      à?ræ  s   bKGDs   hISTrY  r(   rX  r+   s   eXIfrÄ   rÛ   rŸ   Úflush)4r	  r“  rÔ   Úsetr  r  r   r  r·   r¼  r½  r^   r0  r©  rÉ  r•  r2  r/  ÚgetdataÚencoderconfigÚ	_OUTMODESÚKeyErrorr‘   r   rð  r€  rñ  rA   rÁ   Úremover³   rŽ  rµ  Ú
getpaletter¿   r�   r  Úgetpalettemoderž   r	   ÚExifÚtobytesr  r(  r   r  r   r   rõ  r  ÚhasattrrA  ))rµ  rW   r+  r÷  r*  r  Úmodesr  r  r  r¼  r½  ÚoutmodeÚcolorsr5  rœ  Ú	bit_depthÚ
color_typer‹   rJ   r³   ÚiccÚnamerN   rÔ   Úchunks_multiple_allowedÚ
info_chunkrg   r¶   Úpalette_byte_numberÚpalette_bytesr  Úalpha_bytesÚalphaÚredÚgreenÚbluer:  rY  Ú	single_imr3  s)                                           @r:   r  r    s[  ø€ ÷ ØŸ™×*Ñ*Ø˜RŸW™WŸ[™[¨Ó9ó
ˆô “ˆÜ“ˆØŸ™×*Ñ*¨?¸BÓ?ˆÜ—o’o r d¨MÖ:ˆFÜ)×2Ò2°6Ö:�Ø—	‘	˜(Ÿ-™-Ô(Ø—	‘	˜(Ÿ-™-Ö(ó ;ñ ;ó )ˆDØ�}Ùñ )ð —9‘9“;ˆDÜÔRÌÈqÌÓRÓR‰à�w‰wˆØ�w‰wˆà€GØˆsƒ{ð �R—^‘^Ó#ä˜˜bŸn™n¨VÑ4Ñ4°cÓ:‰Fð �z�zÜœS¤ R§Z¡Z×%7Ñ%7Ó%9¸!Ñ%<Ó!=ÀÑ!BÀCÓHÈ!ÓL‘à�à�R‹<Ø˜‹{Ø‘Ø˜1“Ø‘à�Ø˜˜4˜&�zÑ!ˆGð 	�‰×Ñ˜: uÓ-Ø
�‰×ÑÐ+¨RÓ0Ø
�‰×Ñ˜?¨BÓ/Ø
�‰×Ñ˜<¨Ó-ð	€BÔð"Ü)2°7Ñ);Ñ&ˆ�˜Jð �#ƒ~ÜÐ/°ÀÒBð
 ‡H�HŒVÔá	Ø
ØÜˆD�‰G‹ÜˆD�‰G‹ØØØØØô
ò D€Fà
�.‰.×
Ñ
˜]¨B¯G©G¯K©K¸Ó,FÓ
G€CÞ
ð ˆØ�g‰~¤§¢¨cÓ 2Ñ2ˆÙˆb�'˜4Ô ð 	�‰�gÔà�>‰>×Ñ˜iÓ(€DÞÚ"FÐØŸ+œ+ˆJØ" 2 A˜‰IˆC�Ø�f‹}Ø—‘˜cÔ"Ù�b˜#˜tÖ$ØÐ/Ó/Ù�b˜#˜tÖ$Ø�Q�q�×!Ñ!×#Ó#ä  ›_°Ñ1×C°jÀ±m�
ß!�zÙ˜"˜c 4Ö(ñ &ð 
‡w�w�#ƒ~Ø$ q™jÐØŸ™×(Ñ(¨Ó/Ð0DÐ1DÐEˆÜ�-Ó Ð#6Ó6Ø˜UÑ"ˆMô �-Ó Ð#6Õ6áˆb�'˜=Ô)à—>‘>×%Ñ% n°b·g±g·k±kÀ.ÐRVÓ6WÓX€Læ�| qÓ(Ø�7‰7�c‹>à ˆKÜ˜,¬×.Ñ.Ù�b˜' <°°Ð#=Ö>ä" 1¤c¨#¨|Ó&<Ó=�Ø ,Ñ.°Ñ6�Ù�b˜' 5¨¨+Ð#6Õ7Ø�W‰WÐ/Ó/Ü˜q¤# e¨\Ó":Ó;ˆLÙ�"�gœs <Ó0Õ1Ø�W‰W˜ÓØ+ÑˆC�˜Ù�"�gœs 3›x¬#¨e«*Ñ4´s¸4³yÑ@ÕAà §¡Ó/ð >�Ü˜c“lÐ"ð	 0ð �7‰7�c‹>˜bŸe™e×2Ñ2Ó4¸Ó>Ø—E‘E×$Ñ$ V¨SÓ1ˆEØ ˆKÙ�"�g˜u \ kÐ2Ô3à
�.‰.×
Ñ
˜UÓ
#€CÞ
ÙØØÜ”�C˜‘F˜V‘O cÑ)Ó*Ó+Ü”�C˜‘F˜V‘O cÑ)Ó*Ó+Øô	
ö Ø˜7Ð#ˆØŸ+œ+ˆJØ" 2 A˜‰IˆC�Ø�f�}Ø—‘˜cÔ"Ù�b˜#˜tÖ$ñ	 &ð �>‰>×Ñ˜fÓ%€DÞÜ�dœEŸJ™J×'Ñ'Ø—<‘< “?ˆDØ�?‰?˜?×+Ñ+Ø˜˜�8ˆDÙˆb�'˜4Ô à$&€IÞÜ*Ø�E ¨-¸ó
ˆ	ö Ü�ŠØÜ””E‘œE "Ó,Ó-Ü�_Š_˜U F¨Y¯^©^Ñ$;¸QÀÓHÐIô	
ö ØŸ+œ+ˆJØ" 2 A˜‰IˆC�Ø�1�Qˆx×Ñ×!Ó!ä  ›_°Ñ1×C°jÀ±m�
ß�:Ù˜"˜c 4Ö(ñ &ñ 
ˆ"ˆg�sÔäˆr�7×ÑØ
�‰�
ð øô_ ó "Ø" 4 &¨Ð0ˆÜ�c‹l Ð!ûð"ús   É` à
`4à`/à/`4c                óp   ^• SSK Jn  / mSU4S jjnU" 5       n Xl        [        XSU5        U ?T$ ! U ?f = f)z4Return a list of PNG chunks representing this image.r   )ÚBytesIOc                óŠ   >• SR                  U5      n[        [        U[        U5      5      5      nTR                  XU45        g )Nr9   )rï  rñ  rP   rw   )rW   rg   rN   rò  rŒ   r³   s        €r:   rw   Úgetchunks.<locals>.appendø  s6   ø€ Ø—H‘H˜T“Nˆ	Ü”&˜¤F¨3£KÓ0Ó1ˆØ�‰�s sÐ+Õ,r9   rÐ   ©rW   r˜   rg   r�   rN   r�   r™   rš   )Úior_  r	  r  )rµ  Úparamsr_  rw   rW   r³   s        @r:   Ú	getchunksre  ò  sB   ø€ åà€F÷-ñ
 
‹€BðØŒÜˆb�b˜&Ô!àˆNà€Møð ‰Nús   š1 ±5z.pngz.apngz	image/png)rG   r�   r™   r�   )r   )rN   r�   rO   rž   r™   rž   )r�  r�   r™   rÏ   rb  )rµ  r  rW   r˜   r÷  rý  r¼  r¦   rœ  r¦   r  úImage.Image | Noner  zlist[Image.Image]r™   rf  )rµ  r  rW   r˜   r+  rÑ   r™   rš   )rµ  r  rW   r˜   r+  rÑ   r÷  rý  r*  rÏ   r™   rš   )rµ  r  rd  r   r™   z list[tuple[bytes, bytes, bytes]])OÚ
__future__r   r  ÚloggingÚrer‡   r^  rA   Úenumr   Útypingr   r   r   rÐ   r	   r
   r   r   r   Ú_binaryr   r  r   rb   r   r   r  r   rñ  Ú
_deprecater   Ú_utilr   ÚTYPE_CHECKINGÚcollections.abcr   r   r   r   Ú	getLoggerr1   r~   Úcompiler  rc   r€  r  r  Ú	SAFEBLOCKrD   rë   r.   r<   rK   rP   rR   r¦   r¡   r°   rÓ   rÙ   r‚  r„  rE  ró  rõ  r  r  r(  r,  r  re  Úregister_openrã  Úregister_saveÚregister_save_allÚregister_extensionsÚregister_mimer0   r9   r:   Ú<module>ry     sæ  ðõB #ã Û Û 	Û Û Û Ý ß 'Ñ 'ç GÕ GÝ !Ý !Ý Ý !Ý !Ý !Ý  à€ÞÝ(ß$åà	×	Ò	˜8Ó	$€à	�Š�LÓ	!×	'Ñ	'€ð 
€ð ØØØØàØàØØØàØàØ!ñ+
€ð2 —*’*Ð0Ó1€à×$Ñ$€ðð
 �~Ñ%€ðôˆwô ô*ˆGô ôö/÷[ñ [ô|ˆ3ô ÷6Y3ñ Y3ô@�:ô ôd4�ô d4ôV%ôS!�9×&Ñ&ô S!ðv
 
!Ø$Ø$Ø$Ø	 Ø
"Ø	$Ø'Ø(Ø$Ø$Ø$Ø	 Ø$Ø&ñ!€	ô(÷+ñ +÷
ñ 
ô ˆZô  ðKØðKàðKð ðKð ð	Kð
 ðKð &ðKð %ðKð ôKô\+ð "*ØðPØðPàðPð ðPð ð	Pð
 ðPð 
õPônð2 × Ò �L×'Ñ'¨°wÔ ?Ø × Ò �L×'Ñ'¨Ô /Ø × Ò ˜×+Ñ+¨YÔ 7à × Ò ˜,×-Ñ-°¸Ð/@Ô Aà × Ò �L×'Ñ'¨Õ 5r9   