K iVzddlmZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl m Z m Z ddlmZddlmZddlmZddlmZdd lmZd Zerdd lmZmZdd lmZddZddZddZ ddZ!ddZ"iddde!fddde!fddde!fddde!fdd d!efd"d#d$e!fd%d&d'e!fd(d)d*e!fd+d,d-d.d/e!fd0d1d2e!fd3d4d5e!fd6d7d8efd9d:d;e!fde!fd?d@dAe!fdBdCidDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXefdYdZd[e"fd\d]d^efd_d`daefdbdcdde!fdedfdgefdhdidjefdkdldmefidndodpefdqdrdsefdtdudvefdwdxdyefdzd{d|efd}d~defdddefdddefdddefdddefdddefdddefdddefdddefddddddddddddddddddde fd Z#ddZ$Gdd e jZ%ddZ&ddZ'dddddddZ(dZ)ddddZ*ddZ+ddZ, d ddZ-e j\e%j^e-e$e j`e%j^e,e jbe%j^gde jde%j^dy)) annotationsN)Image ImageFile)i16be)i32be)o8)o16be)presetsF)IOAny MpoImageFile JpegImageFilect|jjddz }tj|j|y)N)i16fpreadr _safe_read)selfmarkerns Y/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/PIL/JpegImagePlugin.pySkipr?s1 DGGLLOq A !$ct|jjddz }tj|j|}d|dz}||j |<|j j||f|dk(r|jdrt|dx|jd<}t|d|jd < |d }t|d t|d f}|d k(r||jd<n$|dk(rtd|D|jd<||jd<||jd<y|dk(ro|jdr^d|jvr|jdxx|ddz cc<y||jd<|jj|z dz|_y|dk(r4|jdr#|jdd d |jd<y|dk(r!|jdr||jd<y|dk(r-|jdr|j j|y|dk(r|jdrd}|jj#d i} |||d!zd"k(r |d!z }t||} |dz }||} |d | zz }||d zz }t%||} |d!z }|||| z} | d#k(r9t%| d$d%z t| d!t%| d d%z t| d&d'| | <n| | | <|| z }||d zz }|||d!zd"k(ryy|d(k(r@|jd)r/t|d|jd*< |d+}||jd,<y|dk(rR|jd-r@|d!d|jd.<|jj|z d!z|jd/<yyy#t$rYywxYw#t&j($rYywxYw#t*$rYywxYw)0NrAPPsJFIFjfif jfif_version rdpic3&K|] }|dz yw)RQ@N).0ds r zAPP..`s(HaT(Hs jfif_unit jfif_densitysExifexifhttp://ns.adobe.com/xap/1.0/xmpsFPXRflashpix ICC_PROFILEsPhotoshop 3.0 photoshops8BIMiri ) XResolutionDisplayedUnitsX YResolutionDisplayedUnitsYsAdobeadobe adobe_transformsMPFmpmpoffset)rrrrrappapplistappend startswithinfodivmodtuple Exceptiontell _exif_offsetspliticclist setdefaulti32structerror IndexError)rrrsrIversionr/r0offsetr<codename_lensizedatarFs rrrDs DGGLLOq ATWWa(A  } CDHHSMLLa! ALL1&)!Qi/ &G$*7C$8 .! 5!Iq!9c!Rj0LA~#/ % a#((H<(H#H % %.DIIk "(4DIIn % 6 all;7 TYY  IIf 12 &  !DIIf  $  2Q 6D  6 all+NO777A.q1 % 6 all95 ! * 6 all+;< A 6 all+?@II((b9 !$/ ! 1f~! V9!h,&&1*$1f~! &4-06>'*4|e';+.tQ<'*4|e';+.tR= 'IdO'+IdO$&1*$3!$/: 6 all84 AY ' ;eO,;DII' ( 6 all84AB% $!%  2Q 6 * 5 [   B<<     s7OBOO( O  O O%$O%( O43O4ct|jjddz }tj|j|}||j d<||j d<|jjd|fy)NrcommentCOM) rrrrrrMrIrJrK)rrrrZs rrcrcsf DGGLLOq ATWWa(ADIIiDHHUOLL #rct|jjddz }tj|j|}t|dt|df|_|j *|j|jjk7rd|_|d|_ |jdk7rd|jd}t||d|_ |jdk(rd |_ nI|jdk(rd |_ n2|jd k(rd |_ nd|jd }t||dvrdx|jd<|jd<|jr|jj|jddt!|jk(r.|jDcgc]}|dd }}dj#|}nd}||jd<g|_t%dt!|dD];}|||dz} |j&j)| d| ddz| ddz| df=ycc}w)Nrrrr&zcannot handle z -bit layersr!LRGBr=CMYKz -layer images) progressive progression r;r icc_profiler3r)rrrrr_size_imr_imbits SyntaxErrorlayers_moderMrTsortlenjoinrangelayerrK) rrrrZmsgpprofilerpits rSOFrs DGGLLOq ATWWa(AQC1I%DJ xx TWW\\ 9!DI yyA~tyyk5#A$DK {{a     t{{m=9# 11>?? - 499]#; ||  <<?2 #dll"3 3'+||4!qv4G4((7+KK#. -  1c!fa ? a!a%L 1Q41QqTBY!=>?5s7 Ict|jjddz }tj|j|}t |r|d}|dzdk(rdnd}d|dzz}t ||kr d}t |tj|dk(rdnd|d|}tjd k(r|dkDr|jtD cgc]} ||  c} |j|d z<||d}t |ryycc} w) Nrrrqr@zbad quantization table markerBHlittler) rrrrrrzrvarraysys byteorderbyteswap zigzag_index quantization) rrrrZv precision qt_lengthr~r`rs rDQTrs DGGLLOq ATWWa(A a& aDr'Q,AQ  B& q6I 1Cc" "{{)q.3c1Qy>J ==H $Q MMO6B$CT!W$C!b&! ijM a&%Ds D iSOF0z Baseline DCTiSOF1zExtended Sequential DCTriSOF2zProgressive DCTiSOF3zSpatial losslessiDHTzDefine Huffman tableiSOF5zDifferential sequential DCTrjSOF6zDifferential progressive DCTiSOF7zDifferential spatiali)JPG ExtensionNiSOF9zExtended sequential DCT (AC)rkSOF10zProgressive DCT (AC)iSOF11zSpatial lossless DCT (AC)iDACz%Define arithmetic coding conditioningiSOF13z Differential sequential DCT (AC)rlSOF14z!Differential progressive DCT (AC)iSOF15zDifferential spatial (AC)i)RST0z Restart 0Ni)RST1z Restart 1Ni)RST2z Restart 2Ni)RST3z Restart 3Ni)RST4z Restart 4Ni)RST5z Restart 5Ni)RST6z Restart 6Ni)RST7z Restart 7Ni)SOIzStart of imageNi)EOIz End of imageNSOSz Start of scanirzDefine quantization tableiDNLzDefine number of linesiDRIzDefine restart intervaliDHPzDefine hierarchical progressioniEXPzExpand reference componentr APP0zApplication segment 0r1APP1zApplication segment 1r7APP2zApplication segment 2iAPP3zApplication segment 3iAPP4zApplication segment 4iAPP5zApplication segment 5iAPP6zApplication segment 6iAPP7zApplication segment 7iAPP8zApplication segment 8iAPP9zApplication segment 9iAPP10zApplication segment 10iAPP11zApplication segment 11iAPP12zApplication segment 12r:APP13zApplication segment 13rCAPP14zApplication segment 14iAPP15zApplication segment 15i)JPG0z Extension 0Ni)JPG1z Extension 1Ni)JPG2z Extension 2N)JPG3z Extension 3N)JPG4z Extension 4N)JPG5z Extension 5N)JPG6z Extension 6N)JPG7z Extension 7N)JPG8z Extension 8N)JPG9z Extension 9N)JPG10z Extension 10N)JPG11z Extension 11N)JPG12z Extension 12N)JPG13z Extension 13NrcComment) iiiiiiiiiiic$|jdS)Ns)rL)prefixs r_acceptrIs   _ --rcxeZdZdZdZd dZd fd Zdfd ZddZ ddZ d dZ dd Z d d Z dd Z xZS)rJPEGzJPEG (ISO 10918)cB|jjd}t|s d}t|d}dx|_|_d|_g|_i|_i|_ i|_ i|_ g|_ g|_ |d}|dk(r*||jjdz}t|}n|jjd}Q|tvrt|\}}}| ||||dk(rK|j }|j dk(rd }t#j$d d |j&zd|d fg|_nS|jjd}n5|d vrd}n.|dk(r|jjd}n d}t||j+y)Nreznot a JPEG filerrrrhCMYK;Ijpegrr>rizno marker found)rrrrvrurwrRr} _huffman_dc _huffman_acrrIrJrTrMARKERmoder_Tiler_tile_read_dpi_from_exif)rrZr~rname descriptionhandlerrawmodes r_openzJpegImageFile._openVs GGLLOqz#Cc" " #$# DK79 +-+-24%'02 $& !ADy Q'FGGLLOF{-3AY*k7&D!$;"iiGyyF*"*!0BAQS}U!DIGGLLOk!fGGLLO'!#&&?B   "rcRt||j|jgzSN)super __getstate__rwr})r __class__s rrzJpegImageFile.__getstate__s#w#%djj(AAArcH|dd\|_|_t| |y)Nr3)rwr}r __setstate__)rstaters rrzJpegImageFile.__setstate__s$"') TZ U#rc|jj|}|s$tjrt |dsd|_y|S)z internal: read more image data For premature EOF and LOAD_TRUNCATED_IMAGES adds EOI marker so libjpeg can finish decoding _endedTs)rrrLOAD_TRUNCATED_IMAGEShasattrr)r read_bytesrZs r load_readzJpegImageFile.load_reads; GGLL $Y44WT8=TDKrct|jdk7ry|jry|jd\}}}}d}|j}t |t sJ|ddk(r|dvr ||_|df}|rt|jd|dz|jd|dz}dD] } || k\s n|J|d|d|d|dz  zdz | z|dz|d|dz | zdz | z|dzf}|jd| zdz | z|jd| zdz | zf|_| }tj||||g|_|df|_dd|d|z |d|z f} |j| fS) Nrrrg)rfYCbCrr)r&r=rrrre) rzr decoderconfigr_ isinstancerOrxminrrrrr) rrr_r-eoascale original_sizerZboxs rdraftzJpegImageFile.drafts tyy>Q    YYq\ 1a !U### Q45=T^3DJbA  ! Q/1a1HIE! A: = =!!1!q1$*QqT11!q1$*QqT1 A  99Q>$-- (  ! !7Jdmm"L M  $%CS/ ! D! !S && !  $WW\\ WW\\  '   ! !     $  sl;D1E3"EEE 1 D=<D=E E EEFE32F3 E?<F>E??Fct|Sr)_getexifrs rrzJpegImageFile._getexifs ~rcd|jvsd|jvry |j}|d}|d} t|d|dz }t j |r d}t ||dk(r|d z}||f|jd<y#t$r|}YKwxYw#tjtttt tf$rd |jd<YywxYw) Nr(r2i(irrzDPI is not a numberrer*)Hr) rMgetexiffloat TypeErrormathisnanrrWrXKeyErrorrvZeroDivisionError)rr2resolution_unit x_resolutionr(r~s rrz!JpegImageFile._read_dpi_from_exifs DII tyy!8  &<<>D"6lOzz#+ o%!#t "CxDIIe  #" # LL        & &DIIe  &s4BB =B BBBB&:rc\d|jvry|jjS)Nr2)rMr_get_merged_dictrs rrrs& TYY <<> * * ,,rc  |jd}tj|}|j d}|j drdnd}ddlm} |j|}|j|j|j|t|} |d } g} |d } t| D]} t!j"|d | | d z}d}tt%||}t'|ddzt'|ddzt'|ddz|ddzdz |ddzdz |ddzd}|ddk(rd|d<n d} t| dddd d!d"d#d$}|j)|d%d&|d%<||d<| j+|| |d <|S#t$rYywxYw#t$r}d} t| |d}~wwxYw#t$r}d } t| |d}~wwxYw#t$r}d'} t| |d}~wwxYw)(NrGr&sMM*>+G99G>rfrgrr)1rfrgRGBXrhr)@rrr!r3r;rrBrr=r%rorq*rer&r>)+ rErC(,5r' '-46!&.37<"%/28;=#$019:>?r))rrrrrr)rrrrrr)rrrrrrct|tr|jdvry|jddd|jdddz|jdddz}tj |dS)N)rr=rrrer)rrrwr} samplingsrU)rtsamplings r get_samplingrsi b- (BII,?xx{1Q"((1+a"22RXXa[15EEH ==2 &&rc |jdk(s|jdk(r d}t| t|j}|j}|jddDcgc] }t|}}|jdd} |jd d} |jd } | d k(rd} d } d } n| tvr/t| } d} | jd d} | jd } nnt| ts d }t|| tvrt| jd d} t| tr | tvrt| jd } | dk(rd} nD| dk(rd} n<| dk(rd} n4| dk(rd} n,| d k(r'|jdk7r d}t|t|} d4d} | d k(r)|jdk7r d}t|t!|d d} | | } |jdd}d}|jdx}rJd}||z }t#||kDr d}t|t%d|zt#|z}|d|zdz|zz }|jdx}r~d }||z }g}|r|j'|d|||d}|rd}|D]P}t%d|zt#|z}|d!|zd"zt)|zt)t#|z|zz }|dz }R|jd#|j*jd#}|jd$d%xs|jd&d%}|jd'd%}|jd(d}t|t,j.r|j1}t#||kDr d)}t|| ||jd*d||jd+d%|jd,d|| |jd-d|jd.d| |||f|_|s|r|jd/k(r#d0|j4dz|j4dz}nL| d1k\s| dk(r#d|j4dz|j4dz}n|j4d|j4dz}|r|t#|d2zz }|r6|t#|dzz }n$t7t#|d2zt#|dz}t9j:||t9j<d3d|j4zd|g|y#t $r!}d|jd}t ||d}~wwxYwcc}w)5Nrz cannot write empty image as JPEGzcannot write mode z as JPEGr(rqualityr subsamplingqtableskeeprzInvalid quality settingz4:4:4z4:2:2rz4:2:0rz4:1:1rz3Cannot use 'keep' when original image is not a JPEGc||St|trz |jDcgc]5}|jdddjD] }t |7}}}t dt |dDcgc] }|||dz }}t|tttfrt|tr*t t |Dcgc] }||vs||}}nt|tr t|}dt |cxkrdksnd}t|t|D]E\}} t | dk7r d}t|tjd| } t| ||<G|Sycc}}wcc}w#t$r}d}t||d}~wwxYwcc}w#t$r}d}t||d}~wwxYw) N#rrrzInvalid quantization tabler!z$None or too many quantization tablesr)rstr splitlinesrSr,r|rzrrOlistrQ enumerater r) rlinenumlinesrZrr~keyidxtable table_arrays rvalidate_qtablesz_save..validate_qtabless ?N gs # P!( 2 2 4#zz#q1!4::<H7GCLGU+w-G (q(< o%'0 5 U 55zR':'n,"'++c5"9K $( #4GCL 5N+ 4P  -2 o1, -!16C$S/q01sRF:E8#F>E> F"F"41F'8F F FF' G0F>>Gextrarrr6rfzXMP data is too longsr4rpr;sr9rbrmFrnoptimizer2zEXIF data is too longsmoothkeep_rgb streamtyperestart_marker_blocksrestart_marker_rowsrhr=_r!r)rzKstr | tuple[list[int], ...] | list[list[int]] | dict[int, list[int]] | Noner)zlist[list[int]] | None)widthheightrRAWMODErr#r encoderinforUroundr rr,rr2rgetattrrzo16rKr rMrExiftobytes encoderconfigr_maxr_saver)rtrrr~rrrMxr(rrrpresetrrMAX_BYTES_IN_MARKERr6 overhead_lenmax_data_bytes_in_markerr_rpmarkersrrrbrmrr2bufsizes rrrsz xx1} Q0o""''" >>D!XXeV4 558 5C 5hhy"%G((="-Khhy!G&  G !jj3 **^,  %'o ' !!+.22="EK gs #7(:g&**>:Gg         99 GCS/ !"2& ( W( (T& 99 GCS/ !"nd3w'G HHWc "Ehhuos #6#E s8. .(CS/ !1|#c#h./ t#&IICOOhh}--{- #6#E  NN;'@(@A B%&>&?@K  Fq<'#f+56D "#Q%S\" #   E FA hhy"''++i"89G ((=%0RDHH]E4RKxx E*H 88FC D$ #||~ 4y&&%o  1 U# q!  (!, &*  B*; 77f "''!*nrwwqz1G ]gm"''!*nrwwqz1Gggaj2771:-G  s4y1} $G  s5zA~ %Gc$i!mSZ!^4 OO B"'')91gFGo ""277)84cl!" 6sT T< T9T44T9c6t||} |j}|C|ddkDr;|jD]\}}|dk(s d|vs|cSddlm}|j ||}|S#t tf$rY|St$rtjdY|SwxYw)Nr;rrs hdrgm:Version="rzTImage appears to be a malformed MPO file, it will be interpreted as a base JPEG file) rr(rJMpoImagePluginradoptr rYrvwarningswarn)rrrtmpheadersegmentcontentrs r jpeg_factoryrUs r8 $B 99;  HUOa$7$&JJ  f$)<)GI  5$##B1B I z "  I    .  I  s)1A%A%A% A%%B7BB)z.jfifz.jpez.jpgz.jpegz image/jpeg)rrrr,r)r*)rr-r)rT)rrr)r.)rt Image.Imager)r,)rtrr IO[bytes]rz str | bytesr)r*r)rrrzstr | bytes | Noner)zJpegImageFile | MpoImageFile)3 __future__rrrLr!r rWrrr rrrr_binaryrrrrVr r r JpegPresetsr TYPE_CHECKINGtypingr r rrrrrcrrrrrrr(rrrrrr register_openr2 register_saveregister_extensions register_mimer+rrrs|D#  !!!  , % g7T$/?d6@  V^S )@  V. 4@  V& ,@  V' - @   U*D 1 @   V2C 8 @  V3S 9@  V+S 1@  &@  V3S 9@  W,c 2@  W13 7@  U;T B@  W8# >@  W93 ?@   W13 7!@ " '#@ $ '%@ & ''@ ( ')@ * '+@ , '-@ . '/@ 0 '1@ 2 +3@ 4 )5@ 6 UOT *7@ 8 U/ 59@ : U,d 3;@ < U-t 4=@ > U5s ;?@ @ U0$ 7A@ B V,c 2C@ D V,c 2E@ F V,c 2G@ H V,c 2I@ J V,c 2K@ L V,c 2M@ N V,c 2O@ P V,c 2Q@ R V,c 2S@ T V,c 2U@ V W. 4W@ X W. 4Y@ Z W. 4[@ \ W. 4]@ ^ W. 4_@ ` W. 4a@ b )c@ d )e@ f )g@ h * ) ) ) ) ) ) + + + + Is #@ F.{I''{|- I`           '@L37/!<M((,@M((%0-..0RSM((,7r