Ë
    ™2Úi‘  ã                   ór  — d dl Z d dlZd dlZddlmZmZmZmZmZm	Z	 ddl
mZ ddl
mZ d„ Zd„ Z G d„ d	ej                   «      Z ej$                  ej&                  e«        ej(                  ej&                  e«        ej*                  ej&                  d
«        ej,                  ej&                  d«       y)é    Né   )ÚExifTagsÚImageÚ	ImageFileÚImageSequenceÚJpegImagePluginÚTiffImagePlugin)Úi16be)Úo32lec                 ó2   — t        j                  | ||«       y ©N)r   Ú_save)ÚimÚfpÚfilenames      úI/var/www/html/acx/venv/lib/python3.12/site-packages/PIL/MpoImagePlugin.pyr   r   (   s   € Ü×Ñ˜"˜b (Õ+ó    c           
      óÒ  — | j                   j                  dg «      }|s	 | j                  }|st	        | ||«       y d}g }t        j                  | g|«      D �]"  }t        j                  |«      D �]  }|sÊdt        j                  dd«      z   dz   dz   |j                   d	<   |j                   j                  d
«      }	t        |	t        j                  «      r|	j                  «       }	|	|j                   d
<   |	r|dt        |	«      z   z  }t!        j                  |||«       |j#                  |j%                  «       «       ŒÐ|j'                  |d«       |j#                  |j%                  «       |d   z
  «       �Œ	 �Œ% t)        j*                  «       }
d|
d<   t        |«      |
d<   d}d}t-        |«      D ];  \  }}|dk(  rd}nd}|t        j                  d|||dd«      z  }|dk(  r||z  }||z  }Œ= ||
d<   |j/                  |«       |j1                  dt3        d«      z   |
j                  d«      z   «       |j/                  dt4        j6                  «       y # t        $ r d}Y �Œ9w xY w)NÚappend_imagesFé   s   ÿâz>HéX   s   MPF sR                                                                                     ÚextraÚexifé   ÚJPEGéÿÿÿÿs   0100i °  é°  r   r   i   z<LLLHHé°  s   II* é   )ÚencoderinfoÚgetÚis_animatedÚAttributeErrorr   Ú	itertoolsÚchainr   ÚIteratorÚstructÚpackÚ
isinstancer   ÚExifÚtobytesÚlenr   ÚappendÚtellÚsaver	   ÚImageFileDirectory_v2Ú	enumerateÚseekÚwriter   ÚosÚSEEK_END)r   r   r   r   ÚanimatedÚ
mpf_offsetÚoffsetsÚ
imSequenceÚim_framer   ÚifdÚ	mpentriesÚdata_offsetÚiÚsizeÚmptypes                   r   Ú	_save_allrA   ,   sE  € Ø—N‘N×&Ñ& ¸Ó;€MÙð	Ø—~‘~ˆHñ Ü�"�b˜(Ô#Øà€JØ€GÜ—o‘o r d¨MÓ:ó 8ˆ
Ü%×.Ñ.¨zÓ:ó 	8ˆHÙð  ¤&§+¡+¨d°FÓ";Ñ;¸hÑFÈÑRð ×$Ñ$ WÑ-ð  ×+Ñ+×/Ñ/°Ó7�Ü˜d¤E§J¡JÔ/ØŸ<™<›>�DØ37�H×(Ñ(¨Ñ0ÙØ !¤c¨$£i¡-Ñ/�Jä×%Ñ% h°°HÔ=Ø—‘˜rŸw™w›yÕ)à—‘˜b &Ô)Ø—‘˜rŸw™w›y¨7°2©;Ñ6Ö7ò#	8ð8ô( ×
/Ñ
/Ó
1€CØ€Cˆ�KÜ�g“,€Cˆ�Kà€IØ€KÜ˜WÓ%ò ‰ˆˆ4Ø�Š6Ø‰FàˆFØ”V—[‘[ ¨6°4¸ÀaÈÓKÑKˆ	Ø�Š6Ø˜:Ñ%ˆKØ�tÑ‰ðð €Cˆ�Kà‡G�GˆJÔØ‡H�Hˆ]œU 1›XÑ%¨¯©°A«Ñ6Ô7Ø‡G�GˆAŒr�{‰{Õøô_ ò 	Ø‹Hð	ús    I ÉI&É%I&c                   óJ   — e Zd ZdZdZdZd„ Zdd„Zd„ Zd„ Z	d	„ Z
edd
„«       Zy)ÚMpoImageFileÚMPOzMPO (CIPA DC-007)Fc                 ó˜   — | j                   j                  d«       t        j                  j	                  | «       | j                  «        y )Nr   )r   r2   r   ÚJpegImageFileÚ_openÚ_after_jpeg_open©Úselfs    r   rG   zMpoImageFile._openl   s1   € Ø�‰�‰�QŒÜ×%Ñ%×+Ñ+¨DÔ1Ø×ÑÕr   Nc                 ó8  — | j                   | _        |�|n| j                  «       | _        | j                  d   | _        | j                  d   D �cg c]  }|d   | j
                  d   z   ‘Œ c}| _        d| j                  d<   | j                  t        | j                  «      k(  sJ ‚| j
                  d= | j                  dkD  | _        | j                  | _
        | j                  j                  | j                  d   «       d| _        d| _        d| _        y c c}w )Nr   r   Ú
DataOffsetÚmpoffsetr   r   )r?   Ú_initial_sizeÚ_getmpÚmpinfoÚn_framesÚinfoÚ_MpoImageFile__mpoffsetsr,   r"   r   Ú_fpr2   Ú_MpoImageFile__frameÚoffsetÚreadonly)rJ   ÚmpheaderÚmpents      r   rH   zMpoImageFile._after_jpeg_openq   sõ   € Ø!ŸY™YˆÔØ"*Ð"6‘h¸D¿K¹K»MˆŒØŸ™ FÑ+ˆŒàEIÇ[Á[ÐQWÑEXö
Ø<AˆE�,Ñ $§)¡)¨JÑ"7Ó7ò
ˆÔð  ˆ×Ñ˜Ñð �}‰}¤ D×$4Ñ$4Ó 5Ò5Ð5Ð5Ø�I‰I�jÐ!ØŸ=™=¨1Ñ,ˆÔØ—7‘7ˆŒØ�‰�‰�d×&Ñ& qÑ)Ô*ØˆŒØˆŒàˆ�ùò
s   ÁDc                 ó:   — | j                   j                  |«       y r   )rT   r2   )rJ   Úposs     r   Ú	load_seekzMpoImageFile.load_seek…   s   € Ø�‰�‰�cÕr   c                 óÎ  — | j                  |«      sy | j                  | _        | j                  |   | _        | j                  j                  | j                  dz   «       | j                  j                  d«      }|sd}t        |«      ‚| j                  | _	        t        |«      dk(  rÜt        | j                  j                  d«      «      dz
  }t        j                  | j                  |«      | j                  d<   | j                  «        | j                  d   |   d   d   }|j!                  d«      rz| j#                  «       j%                  t&        j(                  j*                  «      }d	|v r?d
|v r;|d	   |d
   f| _	        n+d| j                  v r| j                  d= | j                  «        dd| j,                  z   | j                  | j.                  dffg| _        || _        y )Né   zNo data found for frameiáÿ  r   r   Ú	AttributeÚMPTypezLarge Thumbnaili   i   Újpeg)r   r   Ú )Ú_seek_checkrT   r   rS   rV   r2   ÚreadÚ
ValueErrorrN   Ú_sizeÚi16r   Ú
_safe_readrR   Ú_reload_exifrP   Ú
startswithÚgetexifÚget_ifdr   ÚIFDr*   r?   ÚmodeÚtilerU   )rJ   ÚframeÚsegmentÚmsgÚnr@   r   s          r   r2   zMpoImageFile.seekˆ   sŠ  € Ø×Ñ Ô&ØØ—(‘(ˆŒØ×&Ñ& uÑ-ˆŒà�‰�‰�T—[‘[ 1‘_Ô%Ø—'‘'—,‘,˜q“/ˆÙØ+ˆCÜ˜S“/Ð!Ø×'Ñ'ˆŒ
Üˆw‹<˜6Ò!Ü�D—G‘G—L‘L “OÓ$ qÑ(ˆAÜ )× 4Ñ 4°T·W±W¸aÓ @ˆD�I‰I�fÑØ×ÑÔà—[‘[ Ñ(¨Ñ/°Ñ<¸XÑFˆFØ× Ñ Ð!2Ô3Ø—|‘|“~×-Ñ-¬h¯l©l×.?Ñ.?Ó@�Ø˜D‘= U¨d¡]Ø"& u¡+¨t°E©{Ð!;�D•JØ�t—y‘yÑ Ø—	‘	˜&Ð!Ø×ÑÔà˜f t§y¡yÑ0°$·+±+ÀÇ	Á	È2¸ÐOÐPˆŒ	Øˆ�r   c                 ó   — | j                   S r   )rU   rI   s    r   r.   zMpoImageFile.tell¥   s   € Ø�|‰|Ðr   c                 ó>   — t         | _        | j                  |«       | S )aC  
        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.
        )rC   Ú	__class__rH   )Újpeg_instancerX   s     r   ÚadoptzMpoImageFile.adopt¨   s    € ô #/ˆÔØ×&Ñ& xÔ0ØÐr   r   )Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionÚ!_close_exclusive_fp_after_loadingrG   rH   r\   r2   r.   Ústaticmethodrx   © r   r   rC   rC   g   s@   „ Ø€FØ,ÐØ(-Ð%ò ó
ò(òò:ð òó ñr   rC   z.mpoz	image/mpo)r$   r4   r'   rb   r   r   r   r   r   r	   Ú_binaryr
   rg   r   r   rA   rF   rC   Úregister_saver|   Úregister_save_allÚregister_extensionÚregister_mimer€   r   r   ú<module>r†      s¤   ðó* Û 	Û ÷÷ õ "Ý ò,ò4ôvO�?×0Ñ0ô Oðr €× Ñ �L×'Ñ'¨Ô /Ø €× Ñ ˜×+Ñ+¨YÔ 7à €× Ñ ˜×,Ñ,¨fÔ 5à €× Ñ �L×'Ñ'¨Õ 5r   