
    :h/-                    Z   d dl mZ d dlZd dlZd dlmZmZ ddlmZm	Z	m
Z
 ddlmZ dZdZd	Zd
ZdZdZdZdZdZed ed ed ed ed ed ed ed ed i	Zi ddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2Zd3D ]  Zd4d5e fed6e d7<   d4d5e fed8e d7<     d9D ]$  Zd:e d:e fed6e d7<   d:e d:e fed8e d7<   & d;D ]  Zd<d:e fed6e d7<   d<d:e fed8e d7<      ed=d>      D ]  Zd4d5e fed8e d7<     ej6                  d?      ZdPd@Z G dA dBe	j                        ZdCdDd+dEd-dFdGdHdIdJdd.dKd0dLdMZdQdNZ  ejB                  ejD                  e        ejF                  ejD                  e         ejH                  ejD                  dO       y)R    )annotationsN)IOAny   )Image	ImageFileImagePalette)DeferredErrorCommentDatezDigitalization equipmentzFile size (no of images)LutNamezScale (x,y)zImage size (x*y)z
Image typez	0 1 image)1r   z	L 1 imagezGreyscale image)Lr   zGrayscale imagez	RGB image)RGBRGB;Lz	RLB image)r   RLBz	RYB imagezB1 imagezB2 image)PzP;2zB4 image)r   zP;4z
X 24 image)r   r   zL 32 S image)IzI;32zL 32 F image)FzF;32z
RGB3 image)r   RGB;Tz
RYB3 image)r   RYB;TzLA image)LAzLA;LzPA image)r   PA;L)RGBAzRGBA;L)r   RGBX;L)CMYKzCMYK;L)YCbCrYCbCr;L)z
RGBA imagez
RGBX imagez
CMYK imagez	YCC image)88S1616S3232Fr   F;zL z imagezL*)r"   16L16BzI;)32Sr      !   s"   ^([A-Za-z][^:]*):[ \t]*(.*)[ \t]*$c                N    	 t        |       S # t        $ r t        |       cY S w xY wN)int
ValueErrorfloat)ss    O/var/www/urcfiles/bundle/venv/lib/python3.12/site-packages/PIL/ImImagePlugin.pynumberr3   l   s(    1v Qxs   
 $$c                  T    e Zd ZdZdZdZd
dZedd       Zedd       Z	ddZ
ddZy	)ImImageFileIMzIFUNC Image MemoryFc           
        d| j                   j                  d      vrd}t        |      | j                   j                  d       d}d| j                  t
        <   d| j                  t        <   d| j                  t        <   d| _        	 | j                   j                  d      }|dk(  r"|r
|d	k(  s|d
k(  rn|| j                   j                         z   }t        |      dkD  rd}t        |      |j                  d      r|d d }n|j                  d      r|d d }	 t        j                  |      }|r |j!                  dd      \  }}|j#                  dd      }|j#                  dd      }|t        t$        t        fv rN|j'                  dd      }t)        t+        t,        |j                  d                  }t        |      dk(  r(|d   }n"|t
        k(  r|t.        v rt.        |   \  }| _        |t0        k(  r>|| j                  v r| j                  |   j3                  |       n |g| j                  |<   n|| j                  |<   |t4        v r&|dz  }n d|j#                  dd       }t        |      |sd}t        |      | j                  t           | _        | j                  t
           | _        |r@|j;                  d
      s/| j                   j                  d      }|r|j;                  d
      s/|sd}t        |      t<        | j                  v r| j                   j                  d      }d}	d}
t?        d      D ]-  }||   ||dz      cxk(  r||dz      k(  rn n||   |k7  s)d}
,d}	/ | j@                  dv rm|	r|
stC        |d d       | _"        nx| j@                  dv rdx| _        | _        n| j@                  dv rd| _        d| _        tG        jH                  d |      | _%        n#| j@                  d!k(  r|	r|
stC        |      | _"        d| _&        | j                   jO                         x| _(        }| j                   | _)        | j                  j;                  d"      rO	 tU        | j                  dd        }|d#vr1tW        jX                  d$d%| jZ                  z   ||d&d'ddf      g| _.        y 	 | j                  d(v r| jZ                  d   | jZ                  d   z  }tW        jX                  d)d%| jZ                  z   |d*      tW        jX                  d)d%| jZ                  z   ||z   d+      tW        jX                  d)d%| jZ                  z   |d|z  z   d,      g| _.        y tW        jX                  d)d%| jZ                  z   || j                  ddf      g| _.        y # t        j                  $ r}d}t        |      |d }~ww xY w# t^        $ r Y w xY w)-N   
d   znot an IM filer   r   )   r:   r             s   
r*   zlatin-1replace*,zSyntax error in IM header: asciizNot an IM filezFile truncatedi      r:   )r   r   r   PA)r   r   r   )r   rE   rE   r   r   r   r&   )          bitr   r   rF      )r   r   raw)Gr   r?   )Rr   r?   )Br   r?   )0fpreadSyntaxErrorseekinfoMODESIZEFRAMESrawmodereadlinelenendswithsplitmatchreerrorgroupdecodeSCALEr@   tuplemapr3   OPENCOMMENTappendTAGS_size_mode
startswithLUTrangemodelistlutr	   rL   paletteframetell_ImImageFile__offset_fpr.   r   _Tilesizetiler/   )selfmsgnr1   mekvrq   	greyscalelinearioffsbitsrw   s                  r2   _openzImImageFile._open|   sH    S))"Cc""Q 		$$		$		&QA EzU
a7l DGG$$&&A1v|&!#&&zz'"crFE"crF.KKN
 wwq!}1 HHY	2HHY	2 --		#s+Ac&!''#,78A1v{aD$Y19&*1gOAt| <DII~		!++A.()s		!#$DIIaL9FA 4AHHWi4P3QR!#&&y | "Cc"" YYt_
YYt_
 W-QA W-"Cc""$))ggll3'GIF3Z1:S!1EWQW5EEqzQ!" !I   yy22!#'#6yyJ.477
T\l2%)
'-#/#3#3GW#EDLe# #G}DH
#ww||~-77<<""4(4<<+,{*!!6DII#5tdAq!R=P!DI
  + <<-- 99Q<$))A,.Dv		'94Nv		'94$;U6DII-ta$hDI v		'94$,,PQSUAVWDIc 88 .&!#&A-.B  s+   V 'AW V>+V99V>	WWc                (    | j                   t           S r-   rT   rW   ry   s    r2   n_frameszImImageFile.n_frames  s    yy      c                .    | j                   t           dkD  S )Nr   r   r   s    r2   is_animatedzImImageFile.is_animated  s    yy 1$$r   c                   | j                  |      sy t        | j                  t              r| j                  j                  || _        | j                  dk(  rd}ndt        | j                        z  }| j                  d   |z  dz   dz  | j                  d   z  }| j                  ||z  z   }| j                  | _
        t        j                  dd| j                  z   || j                  ddf      g| _        y )	Nr   r   rF   r      rL   rJ   r?   )_seek_check
isinstanceru   r
   exrr   rn   rZ   rw   rt   rP   r   rv   rX   rx   )ry   rr   r   rw   r   s        r2   rS   zImImageFile.seek#  s    &dhh.((++
99Ds499~%D1$q(Q.$))A,>}}ut|+(( OOE6DII#5tdllAr=RS
	r   c                    | j                   S r-   )rr   r   s    r2   rs   zImImageFile.tell9  s    zzr   N)returnNone)r   r.   )r   bool)rr   r.   r   r   )__name__
__module____qualname__formatformat_description!_close_exclusive_fp_after_loadingr   propertyr   r   rS   rs    r   r2   r5   r5   w   sL    F-(-%]~ ! ! % %
,r   r5   )z0 1r   )	Greyscaler   )r   r   )zL 32SzI;32S)zL 16I;16)zL 16LI;16L)zL 16BI;16B)zL 32FzF;32F)RGBXr   )YCCr   )r   r   r   r   rE   r   r   r   r   r   r   r   r   r   r   c                   	 t         | j                     \  }}| j                  j                  dd      }|j                  d| dj                  d             |rt        |t              r|j                  d      }t        j                  j                  t        j                  j                  |            \  }}	dj                  |d d	t!        |	      z
   |	g      }|j                  d
| dj                  d             |j                  d| j"                  d    d| j"                  d    dj                  d             |j                  d| dj                  d             | j                  dv r|j                  d       |j                  dd|j%                         z
  z  dz          | j                  dv ri| j&                  j)                  dd      }
t!        |
      dz  }d}t+        d      D ]  }||
||z  ||dz   z   z  }|dd|z
  z  z  }  |j                  |       t-        j.                  | |t-        j0                  dd| j"                  z   d|ddf      g       y # t        $ r!}d| j                   d}t        |      |d }~ww xY w)NzCannot save z images as IMframesr   zImage type: z image
rC    \   zName: z
zImage size (x*y): r   rA   zFile size (no of images): )r   rE   s   Lut: 1
r<   i  r=   r   r   rK   r   rD   rL   rJ   r?   )SAVErn   KeyErrorr/   encoderinfogetwriteencoder   bytesra   ospathsplitextbasenamejoinrZ   rw   rs   im
getpaletterm   r   _saverv   )r   rP   filename
image_typerX   r}   rz   r   nameext
im_palettecolorsrq   r   s                 r2   r   r   V  sN   %"277m
G
 ^^!,FHH|J<z299'BC
 h&w/HGG$$RWW%5%5h%?@	cww_rCH}-s34
6$t$++G45HH!"''!*Qrwwqzl$?FFwOPHH)&6==gFG	ww+
HHWbggi(723	ww+UU%%eW5
ZA%qAz&1*vQ/?@@Gw#,//G  	OO
B(8!gq"=MNO?  %RWWI]3o1$%s   I" "	J+JJz.im)r1   r   r   r0   )r   zImage.ImagerP   z	IO[bytes]r   zstr | bytesr   r   )%
__future__r   r   r^   typingr   r   r   r   r   r	   _utilr
   rf   DATE	EQUIPMENTrW   rl   NAMErb   rV   rU   rh   re   r   rm   jcompiler\   r3   r5   r   r   register_openr   register_saveregister_extensionr   r   r2   <module>r      s#  6 # 	 	  , ,  
 &		# Q!q
A!	1!!
  z	
 z !   
   . M M  "!" "#& '( )* %#$%18 
/A2aS?D2aS2aS?D2aS 
/ 
A H1#h/D2aS H1#h/D2aS 
 
A2aS?D2aS2aS?D2aS 
 
q"A2aS?D2aS 
 	

9:C)%% CZ 
	
	
		!($X   K&& 4   K&& .   ++U 3r   