§
    ¢”j€  ã                  óP  — d dl mZ d dlZd dlZd dlmZmZmZ ddlm	Z	m
Z
mZmZmZ ddlmZ ddlmZ dd„Zd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¦  «         dS )é    )ÚannotationsN)ÚIOÚAnyÚcasté   )ÚImageÚ	ImageFileÚImageSequenceÚJpegImagePluginÚTiffImagePlugin)Úo32le)ÚDeferredErrorÚimúImage.ImageÚfpú	IO[bytes]Úfilenameústr | bytesÚreturnÚNonec                ó2   — t          j        | ||¦  «         d S ©N)r   Ú_save)r   r   r   s      úa/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/PIL/MpoImagePlugin.pyr   r   %   s   € ÝÔ˜"˜b (Ñ+Ô+Ð+Ð+Ð+ó    c           
     óh  — | j                              dg ¦  «        }|s$t          | dd¦  «        st          | ||¦  «         d S d}g }| g|¢}t	          d„ |D ¦   «         ¦  «        }|D �][}t          j        |¦  «        D �]B}	|sÛdd|z  z   }
dt          j        d	d
|
z   ¦  «        z   dz   d|
z  z   |	j         d<   |	j                              d¦  «        x}rMt          |t          j        ¦  «        r|                     ¦   «         }||	j         d<   |dt          |¦  «        z   z  }t          j        |	||¦  «         |                     |                     ¦   «         ¦  «         Œà|	                     | ¦  «        }|	                     |d¦  «         ||	_         |                     |                     ¦   «         |d         z
  ¦  «         �ŒD�Œ]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<   |                     |¦  «         |                     dt1          d¦  «        z   |                     d¦  «        z   ¦  «         |                     dt2          j        ¦  «         d S )NÚappend_imagesÚis_animatedFé   c              3  ó8   K  — | ]}t          |d d¦  «        V — ŒdS )Ún_framesr   N)Úgetattr)Ú.0Úseqs     r   ú	<genexpr>z_save_all.<locals>.<genexpr>2   s.   è è € ÐDÐD°•˜˜Z¨Ñ+Ô+ÐDÐDÐDÐDÐDÐDr   é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+   r2   ÚifdÚ	mpentriesÚdata_offsetÚiÚsizeÚmptypes                      r   Ú	_save_allrS   )   së  € Ø”N×&Ò& ¸Ñ;Ô;€MØð ¥¨¨]¸EÑ!BÔ!Bð Ýˆb�"�hÑÔÐØˆà€JØ€GØÐ'˜Ð'€LÝÐDÐD°|ÐDÑDÔDÑDÔD€EØ#ð 8ñ 8ˆÝ%Ô.¨{Ñ;Ô;ð 	8ñ 	8ˆHØð 8à " u¡*™_�
àÝ”k $¨¨J©Ñ7Ô7ñ8àñð ˜ZÑ'ñ(ð Ô$ WÑ-ð $Ô/×3Ò3°FÑ;Ô;Ð;�4ð 0Ý! $­¬
Ñ3Ô3ð <Ø#Ÿ|š|™~œ~˜Ø7;˜Ô,¨VÑ4Ø !¥c¨$¡i¤i¡-Ñ/�JåÔ% h°°HÑ=Ô=Ð=Ø—’˜rŸwšw™yœyÑ)Ô)Ð)Ð)à&×BÒBÀ2ÑFÔF�Ø—’˜b &Ñ)Ô)Ð)Ø'2�Ô$Ø—’˜rŸwšw™yœy¨7°2¬;Ñ6Ñ7Ô7Ð7Ñ7ñ-	8õ0 Ô
/Ñ
1Ô
1€CØ€Cˆ�KÝ�g‘,”,€Cˆ�Kà€IØ€KÝ˜WÑ%Ô%ð ð ‰ˆˆ4Ø�Š6ˆ6ØˆFˆFàˆFØ•V”[ ¨6°4¸ÀaÈÑKÔKÑKˆ	Ø�Š6ˆ6Ø˜:Ñ%ˆKØ�tÑˆˆØ€Cˆ�Kà‡G‚GˆJÑÔÐØ‡H‚Hˆ]�U 1™XœXÑ%¨¯ª°A©¬Ñ6Ñ7Ô7Ð7Ø‡G‚GˆA�rŒ{ÑÔÐÐÐr   c                  ó`   — e Zd ZdZdZdZdd„Zddd
„Zdd„Zdd„Z	dd„Z
e	 ddd„¦   «         ZdS )ÚMpoImageFileÚMPOzMPO (CIPA DC-007)Fr   r   c                ó²   — | j         €J ‚| j                              d¦  «         t          j                             | ¦  «         |                      ¦   «          d S )Nr   )r   rB   r   ÚJpegImageFileÚ_openÚ_after_jpeg_open©Úselfs    r   rY   zMpoImageFile._openk   sP   € ØŒwÐ"Ð"Ð"ØŒ�Š�Q‰ŒˆÝÔ%×+Ò+¨DÑ1Ô1Ð1Ø×ÒÑÔÐÐÐr   NÚmpheaderúdict[int, Any] | Nonec                óò  ‡ — |�|n‰                       ¦   «         ‰ _        ‰ j        €d}t          |¦  «        ‚‰ j        d         ‰ _        ˆ fd„‰ j        d         D ¦   «         ‰ _        d‰ j        d<   ‰ j        t          ‰ j        ¦  «        k    sJ ‚‰ j        d= ‰ j        dk    ‰ _        ‰ j        €J ‚‰ j        ‰ _	        ‰ j	         
                    ‰ j        d         ¦  «         d‰ _        d‰ _        d‰ _        d S )Nz(Image appears to be a malformed MPO filer/   c                ó<   •— g | ]}|d          ‰j         d         z   ‘ŒS )Ú
DataOffsetÚmpoffset)Úinfo)r#   Úmpentr\   s     €r   ú
<listcomp>z1MpoImageFile._after_jpeg_open.<locals>.<listcomp>w   s7   ø€ ð 
ð 
ð 
Ø<AˆE�,Ô $¤)¨JÔ"7Ñ7ð
ð 
ð 
r   r0   r   rb   r   )Ú_getmpÚmpinfoÚ
ValueErrorr!   Ú_MpoImageFile__mpoffsetsr;   rc   r   r   Ú_fprB   Ú_MpoImageFile__frameÚoffsetÚreadonly)r\   r]   Úmsgs   `  r   rZ   zMpoImageFile._after_jpeg_openq   s	  ø€ Ø"*Ð"6�h�h¸D¿KºK¹M¼MˆŒØŒ;ÐØ<ˆCÝ˜S‘/”/Ð!Øœ FÔ+ˆŒð
ð 
ð 
ð 
ØEIÄ[ÐQWÔEXð
ñ 
ô 
ˆÔð  ˆÔ˜Ñð Œ}¥ DÔ$4Ñ 5Ô 5Ò5Ð5Ð5Ð5ØŒI�jÐ!Øœ=¨1Ò,ˆÔØŒwÐ"Ð"Ð"Ø”7ˆŒØŒ�Š�dÔ& qÔ)Ñ*Ô*Ð*ØˆŒØˆŒàˆŒˆˆr   ÚposÚintc                ó†   — t          | j        t          ¦  «        r| j        j        ‚| j                             |¦  «         d S r   )r8   rj   r   ÚexrB   )r\   ro   s     r   Ú	load_seekzMpoImageFile.load_seekˆ   s:   € Ý�d”h¥Ñ.Ô.ð 	Ø”(”+ÐØŒ�Š�cÑÔÐÐÐr   Úframec                ó  — |                       |¦  «        sd S t          | j        t          ¦  «        r| j        j        ‚| j        | _        | j        |         | _        | j         	                    d¦  «        }d| j        v r| j        d= | j         
                    | j        dz   ¦  «         | j                             d¦  «        sd}t          |¦  «        ‚| j         
                    | j        ¦  «         t          j                             | ¦  «         | j         	                    d¦  «        |k    r|                      ¦   «          t#          j        dd| j        z   | j        | j        d         d         ¦  «        g| _        || _        d S )Nr+   é   zNo data found for frameÚjpeg)r   r   r   r.   )Ú_seek_checkr8   rj   r   rr   r   ri   rl   rc   r3   rB   Úreadrh   r   rX   rY   Ú_reload_exifr	   Ú_TilerQ   Útilerk   )r\   rt   Úoriginal_exifrn   s       r   rB   zMpoImageFile.seek�   sT  € Ø×Ò Ñ&Ô&ð 	ØˆFÝ�d”h¥Ñ.Ô.ð 	Ø”(”+ÐØ”(ˆŒØÔ& uÔ-ˆŒàœ	Ÿš fÑ-Ô-ˆØ�T”YÐÐØ”	˜&Ð!àŒ�Š�T”[ 1‘_Ñ%Ô%Ð%ØŒw�|Š|˜A‰Œð 	"Ø+ˆCÝ˜S‘/”/Ð!ØŒ�Š�T”[Ñ!Ô!Ð!ÝÔ%×+Ò+¨DÑ1Ô1Ð1ØŒ9�=Š=˜Ñ Ô  MÒ1Ð1Ø×ÒÑÔÐõ ŒO˜F F¨T¬YÑ$6¸¼ÀTÄYÈqÄ\ÐRTÔEUÑVÔVð
ˆŒ	ð ˆŒˆˆr   c                ó   — | j         S r   )rk   r[   s    r   r=   zMpoImageFile.tell§   s
   € ØŒ|Ðr   Újpeg_instanceúJpegImagePlugin.JpegImageFilec                ór   — t           | _        t          t           | ¦  «        }|                     |¦  «         |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.
        )rU   Ú	__class__r   rZ   )r   r]   Úmpo_instances      r   ÚadoptzMpoImageFile.adoptª   s5   € õ #/ˆÔÝ�L¨-Ñ8Ô8ˆØ×%Ò% hÑ/Ô/Ð/ØÐr   )r   r   r   )r]   r^   r   r   )ro   rp   r   r   )rt   rp   r   r   )r   rp   )r   r€   r]   r^   r   rU   )Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionÚ!_close_exclusive_fp_after_loadingrY   rZ   rs   rB   r=   Ústaticmethodr„   © r   r   rU   rU   f   s¸   € € € € € Ø€FØ,ÐØ(-Ð%ð ð  ð  ð  ðð ð ð ð ð.ð ð ð ð
ð ð ð ð4ð ð ð ð ð +/ðð ð ð ñ „\ðð ð r   rU   z.mpoz	image/mpo)r   r   r   r   r   r   r   r   )Ú
__future__r   rD   r6   Útypingr   r   r   Ú r   r	   r
   r   r   Ú_binaryr   Ú_utilr   r   rS   rX   rU   Úregister_saverˆ   Úregister_save_allÚregister_extensionÚregister_mimerŒ   r   r   ú<module>r–      s|  ðð( #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø €€€Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ð  ðð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  ð,ð ,ð ,ð ,ð6ð 6ð 6ð 6ðzVð Vð Vð Vð V�?Ô0ñ Vô Vð Vð@ €Ô �LÔ'¨Ñ /Ô /Ð /Ø €Ô ˜Ô+¨YÑ 7Ô 7Ð 7à €Ô ˜Ô,¨fÑ 5Ô 5Ð 5à €Ô �LÔ'¨Ñ 5Ô 5Ð 5Ð 5Ð 5r   