+
    UBiM                    J   ^ RI Ht ^ RIt^ RIHtHt ^RIHtHtH	t	 ^RI
Ht ^RI
Ht ^RI
Ht ^RI
Ht ^R	I
Ht ^R"^R#^R$^R%^R&^ R'/tRtR R ltR R lt ! R R]P                  4      t ! R R]P2                  4      t ! R R]4      tRR(RR)R
R*RR+RR,/tR R ltR-R R llt]P>                  ! ]P@                  ]]4       ]PB                  ! ]P@                  ]4       ]PD                  ! ]P@                  R4       ]PF                  ! ]P@                  R4       ]PH                  ! R ]4       ]P>                  ! ]P@                  ]]4       ]PB                  ! ]P@                  ]4       ]PD                  ! ]P@                  R!4       ]PF                  ! ]P@                  R4       R# ).    )annotationsN)IOAny)Image	ImageFileImagePalette)i16le)i32leo8)o16le)o32lePRGBFc                    V ^8  d   QhRRRR/#    prefixbytesreturnbool )formats   "7/usr/lib/python3.14/site-packages/PIL/BmpImagePlugin.py__annotate__r   6   s     $ $E $d $    c                $    V P                  R 4      # )   BM)
startswithr   s   &r   _acceptr!   6   s    U##r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r   :   s     9 9 9$ 9r   c                    \        V 4      R9   # )   )r$   (   4   8   @   l   |   )i32r    s   &r   _dib_acceptr,   :   s    v;888r   c                      ] tR t^AtRtRtRtR^ R^R^R^R^R	^/t]P                  4        F  w  t	t
]
]! 4       ]	&   K  	  RR
 R lltR R ltRtR# )BmpImageFilez0Image plugin for the Windows Bitmap format (BMP)Windows BitmapBMPRAWRLE8RLE4	BITFIELDSJPEGPNGc               $    V ^8  d   QhRRRRRR/# )r   headerintoffsetr   Noner   )r   s   "r   r   BmpImageFile.__annotate__M   s&     h
 h
c h
s h
4 h
r   c                   V P                   P                  V P                   P                  rCV'       d	   V! V4       R\        V! ^4      4      RR3/p\	        VR,          \
        4      '       g   Q h\        P                  ! V P                   VR,          ^,
          4      pVR,          ^8X  dZ   \        V^ 4      VR&   \        V^4      VR&   \        V^4      VR&   \        V^4      VR&   V P                  R,          VR&   ^VR	&   EMVR,          R49   Ed   V^,          ^8H  VR
&   VR
,          '       d   ^MR3VR&   \        V^ 4      VR&   VR
,          '       g   \        V^4      MR5\        V^4      ,
          VR&   \        V^4      VR&   \        V^
4      VR&   \        V^4      VR&   \        V^4      VR&   \        V^4      \        V^4      3VR&   \        V^4      VR&   ^VR	&   \	        VR,          \        4      '       g   Q h\        ;QJ d    . R VR,           4       F  NK  	  5M! R VR,           4       4      V P                  R&   VR,          V P                  R,          8X  EdL   . R6Op\        V4      ^08  dY   \        V4      ^48  d   VP                  R4       M^ VR&   \        V4       F!  w  r\        V^$V^,          ,           4      WY&   K#  	  M!^ VR&   V F  p	\        V! ^4      4      WY&   K  	  \	        VR,          \
        4      '       g   Q h\	        VR,          \
        4      '       g   Q h\	        VR,          \
        4      '       g   Q h\	        VR,          \
        4      '       g   Q hVR,          VR,          VR,          3VR&   VR,          VR,          VR,          VR,          3VR&   MRVR,           R2p
\        V
4      h\	        VR,          \
        4      '       g   Q h\	        VR,          \
        4      '       g   Q hVR,          VR,          3V n        \	        VR,          \
        4      '       g   Q hVP#                  R^ 4      '       d
   VR,          M^VR,          ,          VR&   \	        VR,          \
        4      '       g   Q hV^VR,          ,           8X  d&   VR,          ^8:  d   V^VR,          ,          ,          p\$        P#                  VR,          R74      w  V n        pV P(                  '       g   RVR,           R2p
\        V
4      hRpVR,          V P                  R,          8X  Ed+   ^ . R8O^R9.^R:R;./pR<RR=RR>RR?RR@RRAR RBR!RCR RDR"RER#RFR$/pVR,          V9   d   VR,          ^ 8X  do   VR,          WR,          ,          9   dT   \	        VR,          \        4      '       g   Q hWR,          VR,          3,          pR%V9   d   RMV P(                  V n        EMVR,          RG9   dT   VR,          WR,          ,          9   d9   \	        VR,          \        4      '       g   Q hWR,          VR,          3,          pMR&p
\        V
4      hR&p
\        V
4      hVR,          V P                  R,          8X  d,   VR,          ^ 8X  d   V^8X  g   \*        '       d
   R Ruqn        MMVR,          V P                  R',          V P                  R(,          39   d   R)pMR*VR,           R2p
\        V
4      hV P(                  R+8X  Ed=   ^ VR,          u;8  d   R,8:  g   M R-VR,           R2p
\        V
4      h\	        VR	,          \
        4      '       g   Q hVR	,          pV! WR,          ,          4      pR.pVR,          ^8X  d   RHM\-        \/        VR,          4      4      p\        V4       F;  w  ppVVV,          VV,          ^,            pV\1        V4      ^,          8w  g   K9  R/pK=  	  V'       d%   VR,          ^8X  d   R0MR1V n        V P(                  pM,R+V n        \2        P4                  ! V^8X  d   RMR"V4      V n        VR,          V P                  R&   V.pVR)8X  d.   VP                  VR,          V P                  R(,          8H  4       MZ\	        VR,          \
        4      '       g   Q hVP                  VR,          VR,          ,          ^,           ^,	          RI,          4       VP                  VR,          4       \        P8                  ! T^ ^ VR,          VR,          3T;'       g    V P                   P;                  4       \        V4      4      .V n        R2# )Jz Read relevant info about the BMPheader_size	directionwidthheightplanesbitsr1   compressionpalette_paddingy_flip	data_sizepixels_per_metercolorsc              3  2   "   T F  qR ,          x  K  	  R# 5i)o_C@Nr   .0xs   & r   	<genexpr>'BmpImageFile._bitmap.<locals>.<genexpr>   s     $X:WQ[[:Ws   dpir4   r_maskg_maskb_maska_maskrgb_mask	rgba_maskzUnsupported BMP header type ()zUnsupported BMP pixel depth (rawBGRXXBGRBGXRABGRRGBABGRABGARBGRzBGR;16BGR;15Az Unsupported BMP bitfields layoutr2   r3   bmp_rlezUnsupported BMP compression (r   i   zUnsupported BMP Palette size (TF1LN)r%   r&   r'   r(   r)   r*   l        )rR   rS   rT   ) rh   )         r         ~ rj   rk   r   rn   rk   rl   r   rn   rj   rk   rl   rl   rk   rj   rn   rj   rk   rl   rn   rn   rk   rl   rj   r   r   r   r   rj   rk   rl   i   i     i |  i  rw   )    ri   )ry   rm   )ry   ro   )ry   rp   )ry   rq   )ry   rr   )ry   rs   )ry   rt   )   ru   )   rv   )r{   rx   )rz   r{   r   rl   )fpreadseekr+   
isinstancer9   r   
_safe_readi16COMPRESSIONStupleinfolenappend	enumerateOSError_sizegetBIT2MODE_modemodeUSE_RAW_ALPHAlistranger   r   rY   palette_Tiletelltile)selfr8   r:   r   r   	file_infoheader_datamasksidxmaskmsgraw_modedecoder_name	SUPPORTED
MASK_MODESpaddingr   	grayscaleindicesindvalrgbargss   &&&                    r   _bitmapBmpImageFile._bitmapM   s   WW\\477<<dL 3tAw<>
	 )M2C8888**477Im4Lq4PQ
 ]#r)!$[!!4Ig"%k1"5Ih"%k1"5Ih #K 3If'+'8'8'?Im$+,I'( }%)CC"-a.D"8Ih*3H*=*=Q2Ik"!$[!!4Ig !** K#Sa00 h
 #&k1"5Ih #K 4If'*;';Im$%(b%9Ik"K$K$-I() #&k2"6Ih+,I'(i(:;UCCCC$u$X)DV:W$Xuu$X)DV:W$XXDIIe'4+<+<[+II6{#r);'2-X..1	(+%.u%5	*-k2a<*H	 &6 +.Ih' %*-d1g,	 !&!)H"5s;;;;!)H"5s;;;;!)H"5s;;;;!)H"5s;;;;h'h'h')	*% h'h'h'h'	*	+& 2)M2J1K1MC#, )G,c2222)H-s3333w'8)<<
 )F+S1111 }}Xq)) hy(( 	(
 )H-s3333R)M222y7HA7Ma)H---F  (||If,=xH
Hyyy1)F2C1DAFC#, ]#t'8'8'EE 	 -.*,AB;I 4V965v:F:F:F:F*F.+X+XJ  I-f%+!+.)f<M2NN%i&<eDDDD)V+<i>T*UVH+.(?		DJf%1!*-V;L1MM%i
&;UCCCC)V+<i
>S*TUH<C!#,&8cl"}%):):5)AA B&"'-v$*}%f%f%*
 
 %L1)M2J1K1MC#, 99	(+4u46y7J6K1Mcl"!),=">DDDD#$56w8)<<= 	 !*a/ eIh$789  !*' 2HC!#-#-!2CDCbgk)$)	 !3 (1((;q(@cDJ#yyH!$DJ#/#3#3")Q,E7$DL
 $-]#;		- #*9$KK	-0D4E4Ef4MMNi0#6666KK)G,y/@@2E!KPRSTIk*+OOAy)9X+>?(($'',,.d	
	r   c                   V ^8  d   QhRR/# r   r   r;   r   )r   s   "r   r   r<   7  s     $ $t $r   c                    V P                   P                  ^4      p\        V4      '       g   Rp\        V4      h\	        V^
4      pV P                  VR7       R# )z-Open file, check magic number and read headerzNot a BMP file)r:   N)r~   r   r!   SyntaxErrorr+   r   )r   	head_datar   r:   s   &   r   _openBmpImageFile._open7  sK     GGLL$	y!!"Cc""Y#F#r   )r   r   r   r   Nr   r   )__name__
__module____qualname____firstlineno____doc__format_descriptionr   r   itemskvvarsr   r   __static_attributes__r   r   r   r.   r.   A   sf    : *F 1faKFAuVWXL""$1q	 %h
T$ $r   r.   c                  &    ] tR tRtRtR R ltRtR# )BmpRleDecoderiE  Tc                    V ^8  d   QhRRRR/# )r   bufferz$bytes | Image.SupportsArrayInterfacer   ztuple[int, int]r   )r   s   "r   r   BmpRleDecoder.__annotate__H  s     C CA Co Cr   c                	   V P                   f   Q hV P                  ^,          p\        4       p^ pV P                  P                  V P                  P
                  ,          p\        V4      V8  EdE   V P                   P                  ^4      pV P                   P                  ^4      pV'       d	   V'       g   EMV^ ,          pV'       d   WH,           V P                  P                  8  d(   \        ^ V P                  P                  V,
          4      pV'       df   \        V^ ,          ^,	          4      p	\        V^ ,          ^,          4      p
\        V4       F#  pV^,          ^ 8X  d   W9,          pK  W:,          pK%  	  MW7V,          ,          pWH,          pEK9  V^ ,          ^ 8X  d<   \        V4      V P                  P                  ,          ^ 8w  d   VR,          pK6  ^ pEK  V^ ,          ^8X  d   EMV^ ,          ^8X  d   V P                   P                  ^4      p\        V4      ^8  d   EMV P                   P                  ^4      w  rVRWV P                  P                  ,          ,           ,          ,          p\        V4      V P                  P                  ,          pEKD  V'       dh   V^ ,          ^,          pV P                   P                  V4      pV F5  pV\        V^,	          4      ,          pV\        V^,          4      ,          pK7  	  M,V^ ,          pV P                   P                  V4      pW<,          p\        V4      V8  d   MeWG^ ,          ,          pV P                   P                  4       ^,          ^ 8w  g   EK(  V P                   P                  ^\        P                  4       EKU  V P                  R8X  d   RMRpV P!                  \#        V4      V^ V P                  R,          34       R# )N    rf   r   rg   )rg   r   )fdr   	bytearraystatexsizeysizer   r   maxr   r   r   r   osSEEK_CURr   
set_as_rawr   )r   r   rle4datarN   dest_lengthpixelsbyte
num_pixelsfirst_pixelsecond_pixelindex
bytes_readrightup
byte_count	byte_readrawmodes   &&                r   decodeBmpRleDecoder.decodeH  s   ww"""yy|{jj&&)9)99$i+%WW\\!_F77<<?DJ>DJJ$4$44!$Q

(8(81(<!=J"$T!W\"2K#%d1gn#5L!&z!2 19> /D 0D	 "3 :--D7a<d)djj&6&66!;A!W\!W\!%aJ:* $QIEGuDJJ4D4D/D'DEEDD	DJJ$4$44A %)!W\
%)WW\\*%=
)3I ByA~$66D By4'7$88D *4 &*!W
%)WW\\*%=
*:3aLA ww||~)Q.Q4c)#sdWq$))B-.@Ar   r   N)r   r   r   r   	_pulls_fdr   r   r   r   r   r   r   E  s    IC Cr   r   c                  *    ] tR tRtRtRtR R ltRtR# )DibImageFilei  DIBr/   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   DibImageFile.__annotate__  s      t r   c                	&    V P                  4        R # )N)r   )r   s   &r   r   DibImageFile._open  s    r   r   N)r   r   r   r   r   r   r   r   r   r   r   r   r     s    F) r   r   re   rf   r^   c               (    V ^8  d   QhRRRRRRRR/# )	r   imImage.Imager~   	IO[bytes]filenamestr | bytesr   r;   r   )r   s   "r   r   r     s(     # #+ #9 # # #r   c                     \        WVR 4       R# )FN)_save)r   r~   r   s   &&&r   	_dib_saver     s    	"(E"r   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   r   r   r~   r   r   r   bitmap_headerr   r   r;   r   )r   s   "r   r   r     s;     B BB"B.9BJNB	Br   c                    \         V P                  ,          w  rEpT P                  p	T	P                  RR4      p
\        ;QJ d    . R T
 4       F  NK  	  5M! R T
 4       4      pT P                  ^ ,          T,          ^,           ^,          ^,           R,          p^(pYP                  ^,          ,          pT P                  R8X  d   RP                  R R 4       4      pMuT P                  R8X  d#   RP                  R	 \        R
4       4       4      pMBT P                  R8X  d0   T P                  P                  RR4      p\        T4      ^,          pMRpT'       dv   ^T,           T^,          ,           pTT,           pTR8  d   Rp\        T4      hTP                  R\        T4      ,           \        ^ 4      ,           \        T4      ,           4       TP                  \        T4      \        T P                  ^ ,          4      ,           \        T P                  ^,          4      ,           \!        ^4      ,           \!        T4      ,           \        ^ 4      ,           \        T4      ,           \        T^ ,          4      ,           \        T^,          4      ,           \        T4      ,           \        T4      ,           4       TP                  RT^(,
          ,          4       T'       d   TP                  T4       \"        P$                  ! Y\"        P&                  ! RRT P                  ,           ^ YLR34      .4       R#   \         d"   pR T P                   R2p\        T4      ThRp?ii ; i)zcannot write mode z as BMPNrQ   c              3  T   "   T F  p\        VR ,          R,           4      x  K   	  R# 5i)rK   g      ?N)r9   rL   s   & r   rO   _save.<locals>.<genexpr>  s!     41AK#%&&   &(re   r   c              3  T   "   T F  p\        V4      ^,          R,           x  K   	  R# 5i   r   Nr   rM   is   & r   rO   r     s      A12a519w..r   rf   c              3  T   "   T F  p\        V4      ^,          R,           x  K   	  R# 5ir   r   r   s   & r   rO   r     s      C
12a519w..
r      r   r   rZ   z)File size is too large for the BMP formatr   r   rY   )`   r   r}   r|   l    r   rg   )SAVEr   KeyErrorr   encoderinfor   r   sizejoinr   r   
getpaletter   
ValueErrorwriteo32o16r   r   r   )r   r~   r   r   r   rC   rI   er   r   rQ   ppmstrider8   imager   r:   	file_sizes   &&&&              r   r   r     s   " $RWWv
 >>D
((5(
#C %44%%44
4CwwqzD 1$*Q.26FFWWQZE	ww#~((AAA	C((Cc
CC	C%%""5&1W" fvz)UN	y =CS/!
)n!f &k	
 HHF
bggaj/	
bggaj/	 a&	 d)		
 a&	 e*	 c!f+	 c!f+	 f+		 f+
	 HHUfrk"#
OO
(8!gr=RSTw  ""277)73cl!"s   L9 9M%M  M%z.bmpz	image/bmprd   z.dib)r   zP;1)r   zP;4)r   r   )r   rb   )r   ra   )r   rZ   )re      r   )rf      r   )r   r  r   )ra   rz   r   )r_   ry   r   )T)%
__future__r   r   typingr   r   rh   r   r   r   _binaryr	   r   r
   r+   r   r   r  r   r  r   r   r!   r,   r.   	PyDecoderr   r   r   r   r   register_openr   register_saveregister_extensionregister_mimeregister_decoderr   r   r   <module>r     s  2 # 	  , , ! !  ! ! ||z $9A$9&& A$HFI'' FX<  	>
O#BT   L''w ?   L'' /   ,,f 5   L'' 5   y- 0   L''{ C   L'' 3   ,,f 5   L'' 5r   