ó
    "%vgM'  ã                  óü  • S SK Jr  S SKJr  S SKJrJr  SSKJrJ	r	   SSKJ
r
  SrS	S
S
S.rSS jr " S S\	R                  5      rSS jrSS jrSS jr\R&                  " \R(                  \\5        \(       au  \R*                  " \R(                  \5        \R,                  " \R(                  \5        \R.                  " \R(                  S5        \R0                  " \R(                  S5        gg! \ a    Sr NÔf = f)é    )Úannotations)ÚBytesIO)ÚIOÚAnyé   )ÚImageÚ	ImageFile)Ú_webpTFÚRGBÚRGBA)s   VP8 s   VP8Xs   VP8Lc                ó‚   • U S S S:H  nU SS S:H  nU SS [         ;   nU(       a  U(       a  U(       a  [        (       d   ggg	)
Né   s   RIFFé   é   s   WEBPé   zEimage file could not be identified because WEBP support not installedTF)Ú_VP8_MODES_BY_IDENTIFIERÚ	SUPPORTED)ÚprefixÚis_riff_file_formatÚis_webp_fileÚis_valid_vp8_modes       Ú5/usr/lib/python3/dist-packages/PIL/WebPImagePlugin.pyÚ_acceptr      sR   € Ø   !˜*¨Ñ/ÐØ˜!˜B�< 7Ñ*€LØ˜r "˜Ô)AÑAÐæž|Ö0AßŠyàWðð Øó    c                  ó�   ^ • \ rS rSrSrSrSrSrSS jrSS jr	SS jr
SSS jjrSS	 jrSS
 jrSU 4S jjrSS jrSS jrSrU =r$ )ÚWebPImageFileé%   ÚWEBPz
WebP imager   c                óÌ  • [         R                  " U R                  R                  5       5      U l        U R                  R                  5       u  pp4pVX4U l        X0R                  S'   US-	  S-  US-	  S-  US-	  S-  US-  4u  pxpšX‰X§4U R                  S'   XPl        U R                  S:„  U l	        US:X  a  S	OUU l
        X`l        U R                  R                  S
5      nU R                  R                  S5      nU R                  R                  S5      nU(       a  X°R                  S'   U(       a  XÀR                  S'   U(       a  XÐR                  S'   U R                  SS9  g )NÚloopé   éÿ   r   r   Ú
backgroundr   ÚRGBXr   ÚICCPÚEXIFzXMP Úicc_profileÚexifÚxmpF)Úreset)r
   ÚWebPAnimDecoderÚfpÚreadÚ_decoderÚget_infoÚ_sizeÚinfoÚn_framesÚis_animatedÚ_modeÚrawmodeÚ	get_chunkÚ_reset)ÚselfÚwidthÚheightÚ
loop_countÚbgcolorÚframe_countÚmodeÚbg_aÚbg_rÚbg_gÚbg_br'   r(   r)   s                 r   Ú_openÚWebPImageFile._open+   sC  € ô ×-Ò-¨d¯g©g¯l©l«nÓ=ˆŒð AEÇÁ×@VÑ@VÓ@XÑ=ˆ�z¨KØ�]ˆŒ
Ø&�	‰	�&Ñà˜‰]˜dÑ"Ø˜‰]˜dÑ"Ø˜‰\˜TÑ!Ø�d‰Nð	"
Ñˆ�Dð $(¨tÐ":ˆ�	‰	�,ÑØ#ŒØŸ=™=¨1Ñ,ˆÔØ" f›n‘U°$ˆŒ
ØŒð —m‘m×-Ñ-¨fÓ5ˆØ�}‰}×&Ñ& vÓ.ˆØ�m‰m×%Ñ% fÓ-ˆÞØ'2�I‰I�mÑ$ÞØ $�I‰I�fÑÞØ"�I‰I�eÑð 	�‰˜%ˆÒ r   c                ó`   • SU R                   ;  a  g U R                  5       R                  5       $ )Nr(   )r1   ÚgetexifÚ_get_merged_dict©r8   s    r   Ú_getexifÚWebPImageFile._getexifN   s&   € Ø˜Ÿ™Ó"ØØ�|‰|‹~×.Ñ.Ó0Ð0r   c                ó>   • U R                  U5      (       d  g Xl        g ©N)Ú_seek_checkÚ_WebPImageFile__logical_frame©r8   Úframes     r   ÚseekÚWebPImageFile.seekS   s   € Ø×Ñ ×&Ñ&Øð  %Õr   c                óp   • U(       a  U R                   R                  5         SU l        SU l        SU l        g )Nr   éÿÿÿÿ)r.   r*   Ú_WebPImageFile__physical_frameÚ_WebPImageFile__loadedÚ_WebPImageFile__timestamp)r8   r*   s     r   r7   ÚWebPImageFile._resetZ   s,   € ÞØ�M‰M×ÑÔ!Ø !ˆÔØˆŒØˆÕr   c                ó  • U R                   R                  5       nU =R                  S-  sl        Uc.  U R                  5         U R	                  S5        Sn[        U5      eUu  p4X@R                  -
  nX@l        XE-  nX4U4$ )Nr   r   z(failed to decode next frame in WebP file)r.   Úget_nextrU   r7   rQ   ÚEOFErrorrW   )r8   ÚretÚmsgÚdataÚ	timestampÚdurations         r   Ú	_get_nextÚWebPImageFile._get_nexta   s�   € à�m‰m×$Ñ$Ó&ˆØ×Ò Ñ"Õð ‰;Ø�K‰KŒMØ�I‰I�aŒLØ<ˆCÜ˜3“-Ðð ‰ˆØ×/Ñ/Ñ/ˆØ$Ôð 	Ñˆ	Ø Ð(Ð(r   c                óÊ   • U R                   U:X  a  g XR                   :  a  U R                  5         U R                   U:  a#  U R                  5         U R                   U:  a  M"  g g rL   )rU   r7   ra   rO   s     r   Ú_seekÚWebPImageFile._seekv   sP   € Ø× Ñ  EÓ)ØØ×(Ñ(Ó(Ø�K‰KŒMØ×#Ñ# eÓ+Ø�N‰NÔð ×#Ñ# e×+r   c                ó  >• U R                   U R                  :w  aÝ  U R                  U R                  5        U R                  5       u  pnX R                  S'   X0R                  S'   U R                  U l         U R
                  (       a+  U R                  (       a  U R
                  R                  5         [        U5      U l        [        R                  " SSU R                  -   SU R                  5      /U l        [        TU ]=  5       $ )Nr_   r`   Úraw)r   r   r   )rV   rN   rd   ra   r1   r,   Ú_exclusive_fpÚcloser   r	   Ú_TileÚsizer5   ÚtileÚsuperÚload)r8   r^   r_   r`   Ú	__class__s       €r   rn   ÚWebPImageFile.load~   sº   ø€ Ø�=‰=˜D×0Ñ0Ó0Ø�J‰J�t×+Ñ+Ô,ð )-¯©Ó(8Ñ%ˆD˜XØ%.�I‰I�kÑ"Ø$,�I‰I�jÑ!Ø ×0Ñ0ˆDŒMð �w�w˜4×-×-Ø—‘—‘”Ü˜d“mˆDŒGÜ"Ÿš¨°¸¿¹Ñ0BÀAÀtÇ|Á|ÓTÐUˆDŒIä‰w‰|‹~Ðr   c                ó   • g rL   © )r8   Úposs     r   Ú	load_seekÚWebPImageFile.load_seek�   s   € Ør   c                ó   • U R                   $ rL   )rN   rH   s    r   ÚtellÚWebPImageFile.tell“   s   € Ø×#Ñ#Ð#r   )Ú__loadedÚ__logical_frameÚ__physical_frameÚ__timestampr.   r4   r0   r,   r3   r2   r5   rl   )ÚreturnÚNone)r}   zdict[int, Any] | None)rP   Úintr}   r~   )T)r*   Úboolr}   r~   )r}   ztuple[bytes, int, int])r}   zImage.core.PixelAccess | None)rs   r   r}   r~   )r}   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚformatÚformat_descriptionrV   rN   rC   rI   rQ   r7   ra   rd   rn   rt   rw   Ú__static_attributes__Ú__classcell__)ro   s   @r   r   r   %   sK   ø† Ø€FØ%ÐØ€HØ€Oô!!ôF1ô
%öô)ô*÷ô$÷$ò $r   r   c                ón   • U R                   S;  a$  U R                  U R                  (       a  SOS5      n U $ )N)r$   r   r   r   r   )r>   ÚconvertÚhas_transparency_data)Úims    r   Ú_convert_framer�   —   s,   € à	‡w�wÐ-Ó-Ø�Z‰Z "×":×":™ÀÓFˆØ€Ir   c                ó4	  • U R                   R                  5       n[        UR                  S/ 5      5      nSnU /U-    H  nU[	        USS5      -  nM     US:X  a  [        XU5        g SnSU;   a  US   nOfSU R                  ;   aV  U R                  S   n[        U[        5      (       a2  U R                  5       nU(       a  X‡S-  US-   S-   u  pšnXšUS4nOXwUS4nU R                   R                  S	U R                  R                  S	S5      5      nU R                   R                  S
S5      nU R                   R                  SS5      nU R                   R                  SS 5      nU R                   R                  SS 5      nU R                   R                  SS5      nSnU R                   R                  SS5      nU R                   R                  SS5      nU R                   R                  SS5      nU R                   R                  SS5      nU R                   R                  S5      =(       d    SnU R                   R                  SS5      n[        U[        R                  5      (       a  UR                  5       nU R                   R                  SS5      nU(       a  SnUc  U(       a  SOSnUc  U(       a  SOSn[        U[        [        45      (       a&  [        U5      S:w  d  [        S U 5       5      (       d  SU 3n[!        U5      eUu  nnnnUS -  US!-  -  US"-  -  US-  -  n["        R$                  " U R&                  S   U R&                  S   UUUUUUU5	      nSn Sn!U R)                  5       n" U /U-    H™  n[	        USS5      n#[+        U#5       Hz  n$UR-                  U$5        [/        U5      n%UR1                  U%R3                  5       [5        U!5      UUUU5        [        U[        [        45      (       a	  U!UU    -  n!OU!U-  n!U S-  n M|     M›     U R-                  U"5        UR1                  S [5        U!5      UUUS5        UR7                  UUU5      n&U&c  S#n[!        U5      eUR9                  U&5        g ! U R-                  U"5        f = f)$NÚappend_imagesr   r2   r   )r   r   r   r   r#   é   r"   r`   r    Úminimize_sizeFÚkminÚkmaxÚallow_mixedÚlosslessÚqualityéP   Úalpha_qualityéd   Úmethodr'   Ú r(   r)   é	   é   é   r   c              3  óL   #   • U  H  nS Us=:*  =(       a    S:  Os  v •  M     g7f)r   é   Nrr   )Ú.0Úvs     r   Ú	<genexpr>Ú_save_all.<locals>.<genexpr>×   s   é € Ð4ª A�1˜—<“<˜C—<‘<ªùs   ‚"$z:Background color is not an RGBA tuple clamped to (0-255): r!   r   r   ú1cannot write file as WebP (encoder returned None))ÚencoderinfoÚcopyÚlistÚgetÚgetattrÚ_saver1   Ú
isinstancer   Ú
getpaletter   ÚExifÚtobytesÚtupleÚlenÚallÚOSErrorr
   ÚWebPAnimEncoderrk   rw   ÚrangerQ   r�   ÚaddÚgetimÚroundÚassembleÚwrite)'rŒ   r,   Úfilenamer¦   r�   ÚtotalÚimsr#   ÚpaletteÚrÚgÚbr`   r    r‘   r’   r“   r”   Úverboser•   r–   r˜   rš   r'   r(   r)   r]   r@   rA   rB   r?   ÚencÚ	frame_idxr_   Úcur_idxÚnfrÚidxrP   r^   s'                                          r   Ú	_save_allrÈ   ž   sB  € Ø—.‘.×%Ñ%Ó'€KÜ˜Ÿ™¨¸"Ó=Ó>€Mð €EØˆt�mÔ#ˆØ”˜˜j¨!Ó,Ñ,Šñ $à�ƒzÜˆb�hÔØà(4€JØ�{Ó"Ø  Ñ.‰
Ø	˜Ÿ™Ó	 Ø—W‘W˜\Ñ*ˆ
Ü�j¤#×&Ñ&ð —m‘m“oˆGÞØ!¨q¡.°JÀ±NÀaÑ3GÐH‘��aØ A s˜^‘
à(°jÀ#ÐF�
à�~‰~×!Ñ! *¨b¯g©g¯k©k¸*ÀaÓ.HÓI€HØ�>‰>×Ñ˜f aÓ(€DØ—N‘N×&Ñ& ¸Ó>€MØ�>‰>×Ñ˜f dÓ+€DØ�>‰>×Ñ˜f dÓ+€DØ—.‘.×$Ñ$ ]°EÓ:€KØ€GØ�~‰~×!Ñ! *¨eÓ4€HØ�n‰n× Ñ  ¨BÓ/€GØ—N‘N×&Ñ& ¸Ó<€MØ�^‰^×Ñ ¨!Ó,€FØ—.‘.×$Ñ$ ]Ó3×9°r€KØ�>‰>×Ñ˜f bÓ)€DÜ�$œŸ
™
×#Ñ#Ø�|‰|‹~ˆØ
�.‰.×
Ñ
˜U BÓ
'€CÞØˆð �|Þ‰q !ˆØ�|Þ‰r 1ˆô �z¤D¬% =×1Ñ1Üˆz‹?˜aÓÜÑ4©Ó4×4Ñ4àJÈ:È,ÐWˆÜ�c‹lÐð (Ñ€Dˆ$��dØ˜"‘* ¨¡Ñ,°¸±	Ñ:¸dÀa¹iÑH€Jô ×
Ò
Ø
�‰�‰
Ø
�‰�‰
ØØØØØØØó
€Cð €IØ€IØ�g‰g‹i€GðØ�4˜-Ô'ˆCä˜#˜z¨1Ó-ˆCä˜S–z�Ø—‘˜”ä& sÓ+�ð —‘Ø—K‘K“MÜ˜)Ó$ØØØ!Øôô ˜h¬¬u¨×6Ñ6Ø ¨)Ñ!4Ñ4‘Ià Ñ)�IØ˜Q‘’	ó) "ñ	 (ð6 	�‰�Ôð ‡G�GˆD”%˜	Ó" H¨g°}ÀaÔHð �<‰<˜ T¨3Ó/€DØ�|ØAˆÜ�c‹lÐà‡H�HˆT…Nøð 	�‰�Õús   Í<B#R ÒRc                óL  • U R                   R                  SS5      nU R                   R                  SS5      nU R                   R                  SS5      nU R                   R                  S5      =(       d    SnU R                   R                  S	S
5      n[        U[        R                  5      (       a  UR                  5       nUR                  S5      (       a  USS  nU R                   R                  SS5      nU R                   R                  SS5      n	U R                   R                  S5      (       a  SOSn
[        U 5      n [        R                  " U R                  5       U[        U5      [        U5      UU	U
UU5	      nUc  Sn[        U5      eUR                  U5        g )Nr•   Fr–   r—   r˜   r™   r'   r›   r(   r   s   Exif  é   r)   rš   r   Úexactr   r   r¥   )r¦   r©   r¬   r   r®   r¯   Ú
startswithr�   r
   Ú
WebPEncoder·   Úfloatr³   rº   )rŒ   r,   r»   r•   r–   r˜   r'   r(   r)   rš   rË   r^   r]   s                r   r«   r«     sU  € Ø�~‰~×!Ñ! *¨eÓ4€HØ�n‰n× Ñ  ¨BÓ/€GØ—N‘N×&Ñ& ¸Ó<€MØ—.‘.×$Ñ$ ]Ó3×9°r€KØ�>‰>×Ñ˜f cÓ*€DÜ�$œŸ
™
×#Ñ#Ø�|‰|‹~ˆØ‡��×'Ñ'Ø�A�BˆxˆØ
�.‰.×
Ñ
˜U BÓ
'€CØ�^‰^×Ñ ¨!Ó,€FØ—‘×#Ñ# G×,Ñ,‰A°!€Eä	˜Ó	€Bä×ÒØ
�‰‹
ØÜˆg‹ÜˆmÓØØØØØó
€Dð �|ØAˆÜ�c‹lÐà‡H�HˆT…Nr   z.webpz
image/webpN)r   Úbytesr}   z
bool | str)rŒ   úImage.Imager}   rÐ   )rŒ   rÐ   r,   z	IO[bytes]r»   zstr | bytesr}   r~   )Ú
__future__r   Úior   Útypingr   r   r›   r   r	   r
   r   ÚImportErrorr   r   r   r�   rÈ   r«   Úregister_openr…   Úregister_saveÚregister_save_allÚregister_extensionÚregister_mimerr   r   r   Ú<module>rÚ      sî   ðÝ "å ß ç ðÝà€Ið ØØñÐ ôôo$�I×'Ñ'ô o$ôdôzôzðD × Ò �M×(Ñ(¨-¸Ô AÞØ	×Ò˜×,Ñ,¨eÔ4Ø	×Ò˜M×0Ñ0°)Ô<Ø	×Ò˜]×1Ñ1°7Ô;Ø	×Ò˜×,Ñ,¨lÕ;ð	 øðe	 ó Ø‚Iðús   žC0 Ã0C;Ã:C;