
    
3j|
                     4    S SK r SSKJr  S rS rS rSS jrg)	    N   )InvalidImageDataErrorc                 0   U SS S:w  a  [        S5      eSnS/n XUS-    S:X  a  UR                  XS 5         U$ [        R                  " SXS-   US-    5      S   nX-   S-   nXU nUR                  U5        UnU[	        U 5      :  a  [        S	5      eM}  )
=Slices JPEG meta data into a list from JPEG binary data.
    r         Given data isn't JPEG.s   N>H   zWrong JPEG data.)r   appendstructunpacklen)dataheadsegmentslengthendPointsegs         H/home/wildlama/miniconda3/lib/python3.13/site-packages/piexif/_common.pysplit_into_segmentsr      s     AayK#$<==D}H
dQh;.OODK( O ]]4Qhq)AB1EF}q(HX&COOC DCI'(:;;     c                    [        U S5      nUR                  S5      nUSS S:w  a  [        S5      eUSS nSnSn[        U5      U:X  a  [        R
                  " S	USS 5      S   nUSS S
:X  a5  UR                  US-
  5      nUSS S:w  a  UR                  U5      nMe  X7-   nOAUSS S:X  a&  UR                  US-
  5        UR                  U5      nOO[        U5      U:X  a  M  UR                  5         U$ )r   rb   r   r   r   r	   r   Nr
      s   Exifr      )openreadr   r   r   r   close)filenamefr   r   HEAD_LENGTHexifr   segment_datas           r   read_exif_from_filer&      s    	XtA66!9DAayK#$<==!9DKD
d){
"tT!QZ038{"66&1*-LBQ7*vvk*&D!AY'!FF6A:66+&D d){
"  GGIKr   c                 F    U  H  nUSS S:X  d  M  USS S:X  d  M  Us  $    g)z*Returns Exif from JPEG meta data list
    r   r   r   r   
      Exif  N )r   r   s     r   get_exif_segr+   <   s3     q8{"s1RyO'CJ  r   c                    U S   SS S:X  a\  U S   SS S:X  aP  U S   SS S:X  aD  U(       a  XS'   U R                  S5        OUc  U R                  S5        O|U R                  S5        OjU S   SS S:X  a  U(       a  XS'   ORU S   SS S:X  a-  U S   SS S:X  a!  U(       a  XS'   O.Uc  U R                  S5        OU(       a  U R                  SU5        S	R                  U 5      $ )
z2Merges Exif with APP0 and APP1 manipulations.
    r   r   r   s   r   r   r(   r)   r   )popinsertjoin)r   r$   s     r   merge_segmentsr0   E   s     {1Q;&{1Q;&{1RO+QKLLO\LLOLLO	!Qq	[	(QK	!Qq	[	(	!Qr	o	-QK\LLOOOAt$88Hr   )r   )r   _exceptionsr   r   r&   r+   r0   r*   r   r   <module>r2      s     ..>r   