ó
    Eñi€  ã                  óŽ  • S SK Jr  S SKrS SK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 jrSS	 jr " S
 S\R(                  5      r\	R,                  " \R.                  \5        \	R0                  " \R.                  \5        \	R2                  " \R.                  S5        \	R4                  " \R.                  S5        g)é    )ÚannotationsN)ÚIOÚAnyÚcasté   )ÚImageÚ	ImageFileÚImageSequenceÚJpegImagePluginÚTiffImagePlugin)Úo32le)ÚDeferredErrorc                ó2   • [         R                  " XU5        g ©N)r   Ú_save)ÚimÚfpÚfilenames      ÚO/home/mande/repo/quber/.venv/lib/python3.13/site-packages/PIL/MpoImagePlugin.pyr   r   %   s   € Ü×Ò˜" (Õ+ó    c           
     ó<  • U R                   R                  S/ 5      nU(       d  [        U SS5      (       d  [        XU5        g Sn/ nU /UQn[	        S U 5       5      nU GH[  n[
        R                  " U5       GH<  n	U(       dã  SSU-  -   n
S[        R                  " S	S
U
-   5      -   S-   SU
-  -   U	R                   S'   U	R                   R                  S5      =n(       aN  [        U[        R                  5      (       a  UR                  5       nX¹R                   S'   US[        U5      -   -  n[        R                  " X‘U5        UR                  UR!                  5       5        Mî  U	R#                  U 5      nU	R%                  US5        XÉl         UR                  UR!                  5       US   -
  5        GM?     GM^     [&        R(                  " 5       nSUS'   [        U5      US'   SnSn[+        U5       H>  u  nnUS:X  a  SnOSnU[        R                  " SUUUSS5      -  nUS:X  a  Xô-  nUU-  nM@     XíS'   UR-                  U5        UR/                  S[1        S5      -   UR                  S5      -   5        UR-                  S[2        R4                  5        g )NÚappend_imagesÚis_animatedFé   c              3  ó<   #   • U  H  n[        US S5      v •  M     g7f)Ún_framesr   N)Úgetattr)Ú.0Úseqs     r   Ú	<genexpr>Ú_save_all.<locals>.<genexpr>2   s   é € ÐD²|°”˜˜Z¨×+Ð+²|ùs   ‚éB   é   s   ÿâz>Hé   s   MPF ó    ÚextraÚexifé   ÚJPEGéÿÿÿÿs   0100i °  é°  r   r   i   z<LLLHHé°  s   II* é   )ÚencoderinfoÚgetr   r   Úsumr
   ÚIteratorÚstructÚpackÚ
isinstancer   ÚExifÚtobytesÚlenr   ÚappendÚtellÚ_attach_default_encoderinfoÚsaver   ÚImageFileDirectory_v2Ú	enumerateÚseekÚwriter   ÚosÚSEEK_END)r   r   r   r   Ú
mpf_offsetÚoffsetsÚim_sequencesÚtotalÚim_sequenceÚim_frameÚ
ifd_lengthr'   r.   ÚifdÚ	mpentriesÚdata_offsetÚiÚsizeÚmptypes                      r   Ú	_save_allrO   )   s[  € Ø—N‘N×&Ñ& ¸Ó;€MÞ¤¨¨]¸E×!BÑ!BÜˆb�hÔØà€JØ€GØÐ'˜Ð'€LÜÑD±|ÓDÓD€EÜ#ˆÜ%×.Ò.¨{×;ˆHÞà " u¡*™_�
àÜ—k’k $¨¨J©Ó7ñ8àñð ˜ZÑ'ñ(ð ×$Ñ$ WÑ-ð $×/Ñ/×3Ñ3°FÓ;Ð;�4Õ;Ü! $¬¯
©
×3Ñ3Ø#Ÿ|™|›~˜Ø7;×,Ñ,¨VÑ4Ø !¤c¨$£i¡-Ñ/�Jä×%Ò% h°HÔ=Ø—‘˜rŸw™w›yÖ)à&×BÑBÀ2ÓF�Ø—‘˜b &Ô)Ø'2Ô$Ø—‘˜rŸw™w›y¨7°2©;Ñ6×7ô- <ñ $ô2 ×
/Ò
/Ó
1€CØ€Cˆ�KÜ�g“,€Cˆ�Kà€IØ€KÜ˜WÖ%‰ˆˆ4Ø�‹6Ø‰FàˆFØ”V—[’[ ¨6°4¸ÀaÈÓKÑKˆ	Ø�‹6ØÑ%ˆKØ�tÑŠñ &ð ˆ�Kà‡G�GˆJÔØ‡H�Hˆ]œU 1›XÑ%¨¯©°A«Ñ6Ô7Ø‡G�GˆAŒr�{‰{Õr   c                  óz   • \ rS rSrSrSrS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S jj5       rSrg)ÚMpoImageFileéf   ÚMPOzMPO (CIPA DC-007)Fc                ó¶   • U R                   c   eU R                   R                  S5        [        R                  R	                  U 5        U R                  5         g )Nr   )r   r>   r   ÚJpegImageFileÚ_openÚ_after_jpeg_open©Úselfs    r   rV   ÚMpoImageFile._openk   sA   € Ø�w‰wÑ"Ð"Ð"Ø�‰�‰�QŒÜ×%Ñ%×+Ñ+¨DÔ1Ø×ÑÕr   Nc                óp  • Ub  UOU R                  5       U l        U R                  c  Sn[        U5      eU R                  S   U l        U R                  S    Vs/ s H  o3S   U R                  S   -   PM     snU l        SU R
                  S'   U R                  [        U R
                  5      :X  d   eU R                  S	 U R                  S:„  U l        U R                  c   eU R                  U l	        U R                  R                  U R
                  S   5        SU l        SU l        SU l        g s  snf )Nz(Image appears to be a malformed MPO filer+   r,   Ú
DataOffsetÚmpoffsetr   r   )Ú_getmpÚmpinfoÚ
ValueErrorr   ÚinfoÚ_MpoImageFile__mpoffsetsr7   r   r   Ú_fpr>   Ú_MpoImageFile__frameÚoffsetÚreadonly)rY   ÚmpheaderÚmsgÚmpents       r   rW   ÚMpoImageFile._after_jpeg_openq   s  € Ø"*Ñ"6‘h¸D¿K¹K»MˆŒØ�;‰;ÑØ<ˆCÜ˜S“/Ð!ØŸ™ FÑ+ˆŒàEIÇ[Á[ÐQWÒEXó
ÚEX¸E�,Ñ $§)¡)¨JÑ"7Ô7ÑEXñ
ˆÔð  ˆ×Ñ˜Ñð �}‰}¤ D×$4Ñ$4Ó 5Ó5Ð5Ð5Ø�I‰I�jÐ!ØŸ=™=¨1Ñ,ˆÔØ�w‰wÑ"Ð"Ð"Ø—7‘7ˆŒØ�‰�‰�d×&Ñ& qÑ)Ô*ØˆŒØˆŒàˆ�ùò
s   ÁD3c                ó¤   • [        U R                  [        5      (       a  U R                  R                  eU R                  R	                  U5        g r   )r4   rc   r   Úexr>   )rY   Úposs     r   Ú	load_seekÚMpoImageFile.load_seekˆ   s1   € Ü�d—h‘h¤×.Ñ.Ø—(‘(—+‘+ÐØ�‰�‰�cÕr   c                ó~  • U R                  U5      (       d  g [        U R                  [        5      (       a  U R                  R                  eU R                  U l        U R                  U   U l        U R                  R                  S5      nSU R                  ;   a  U R                  S	 U R
                  R                  U R                  S-   5        U R
                  R                  S5      (       d  Sn[        U5      eU R
                  R                  U R                  5        [        R                  R                  U 5        U R                  R                  S5      U:w  a  U R!                  5         ["        R$                  " SSU R&                  -   U R                  U R(                  S   S   5      /U l        Xl        g )Nr'   é   zNo data found for frameÚjpeg)r   r   r   r*   )Ú_seek_checkr4   rc   r   rl   r   rb   re   ra   r/   r>   Úreadr`   r   rU   rV   Ú_reload_exifr	   Ú_TilerM   Útilerd   )rY   ÚframeÚoriginal_exifrh   s       r   r>   ÚMpoImageFile.seek�   s<  € Ø×Ñ ×&Ñ&ØÜ�d—h‘h¤×.Ñ.Ø—(‘(—+‘+ÐØ—(‘(ˆŒØ×&Ñ& uÑ-ˆŒàŸ	™	Ÿ™ fÓ-ˆØ�T—Y‘YÓØ—	‘	˜&Ð!à�‰�‰�T—[‘[ 1‘_Ô%Ø�w‰w�|‰|˜A�‰Ø+ˆCÜ˜S“/Ð!Ø�‰�‰�T—[‘[Ô!Ü×%Ñ%×+Ñ+¨DÔ1Ø�9‰9�=‰=˜Ó  MÓ1Ø×ÑÔô �OŠO˜F F¨T¯Y©YÑ$6¸¿¹ÀTÇYÁYÈqÁ\ÐRTÑEUÓVð
ˆŒ	ð �r   c                ó   • U R                   $ r   )rd   rX   s    r   r9   ÚMpoImageFile.tell§   s   € Ø�|‰|Ðr   c                ó^   • [         U l        [        [         U 5      nUR                  U5        U$ )a  
Transform the instance of JpegImageFile into
an instance of MpoImageFile.
After the call, the JpegImageFile is extended
to be an MpoImageFile.

This is essentially useful when opening a JPEG
file that reveals itself as an MPO, to avoid
double call to _open.
)rQ   Ú	__class__r   rW   )Újpeg_instancerg   Úmpo_instances      r   ÚadoptÚMpoImageFile.adoptª   s,   € ô #/ˆÔÜœL¨-Ó8ˆØ×%Ñ% hÔ/ØÐr   )
Ú__frameÚ__mpoffsetsrc   r   r   r_   r   re   rf   rw   )ÚreturnÚNoner   )rg   údict[int, Any] | Noner…   r†   )rm   Úintr…   r†   )rx   rˆ   r…   r†   )r…   rˆ   )r   zJpegImagePlugin.JpegImageFilerg   r‡   r…   rQ   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚformatÚformat_descriptionÚ!_close_exclusive_fp_after_loadingrV   rW   rn   r>   r9   Ústaticmethodr�   Ú__static_attributes__© r   r   rQ   rQ   f   s_   † Ø€FØ,ÐØ(-Ð%ô öô.ô
ô4ð ð +/ðØ4ðà'ðð 
ôó ór   rQ   z.mpoz	image/mpo)r   zImage.Imager   z	IO[bytes]r   zstr | bytesr…   r†   )Ú
__future__r   r@   r2   Útypingr   r   r   Ú r   r	   r
   r   r   Ú_binaryr   Ú_utilr   r   rO   rU   rQ   Úregister_saver�   Úregister_save_allÚregister_extensionÚregister_mimer’   r   r   Ú<module>rœ      s¢   ðõ( #ã 	Û ß  Ñ  ÷õ õ Ý  ô,ô6ôzV�?×0Ñ0ô Vð@ × Ò �L×'Ñ'¨Ô /Ø × Ò ˜×+Ñ+¨YÔ 7à × Ò ˜×,Ñ,¨fÔ 5à × Ò �L×'Ñ'¨Õ 5r   