ó
    Eñi  ã                  ó’  • S SK Jr  S SKrS SKrS SKJr  SSKJrJr  SSK	J
r  SSK	Jr  SS jr " S	 S
\R                  5      r " S S\R                   5      r\R$                  " S\5        SS jr\R(                  " \R*                  \\5        \R,                  " \R*                  \5        \R.                  " \R*                  S5        g)é    )ÚannotationsN)ÚIOé   )ÚImageÚ	ImageFile)Úi16le)Úo16lec                ó$   • U R                  S5      $ )N)ó   DanMs   LinS)Ú
startswith)Úprefixs    ÚO/home/mande/repo/quber/.venv/lib/python3.13/site-packages/PIL/MspImagePlugin.pyÚ_acceptr   '   s   € Ø×ÑÐ/Ó0Ð0ó    c                  ó&   • \ rS rSrSrSrSS jrSrg)ÚMspImageFileé0   ÚMSPzWindows Paintc                ó$  • U R                   c   eU R                   R                  S5      n[        U5      (       d  Sn[        U5      eSn[	        SSS5       H  nU[        X5      -  nM     US:w  a  Sn[        U5      eSU l        [        US5      [        US5      4U l        UR                  S	5      (       a-  [        R                  " S
SU R                  -   SS5      /U l        g [        R                  " SSU R                  -   S5      /U l        g )Né    znot an MSP filer   é   zbad MSP checksumÚ1é   é   r   Úraw©r   r   r   )ÚfpÚreadr   ÚSyntaxErrorÚrangeÚi16Ú_modeÚ_sizer   r   Ú_TileÚsizeÚtile)ÚselfÚsÚmsgÚchecksumÚis        r   Ú_openÚMspImageFile._open4   së   € à�w‰wÑ"Ð"Ð"à�G‰G�L‰L˜ÓˆÜ�q�z‰zØ#ˆCÜ˜cÓ"Ð"ð ˆÜ�q˜"˜a–ˆAØ¤# a£)Ñ+ŠHñ !à�q‹=Ø$ˆCÜ˜cÓ"Ð"àˆŒ
Ü˜˜A“Y¤ A q£	Ð)ˆŒ
à�<‰<˜× Ñ Ü"Ÿš¨°¸¿¹Ñ0BÀBÈÓLÐMˆD�Iä"Ÿš¨°¸¿¹Ñ0BÀBÓGÐHˆD�Ir   )r"   r#   r&   N)ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚformatÚformat_descriptionr,   Ú__static_attributes__© r   r   r   r   0   s   † Ø€FØ(Ð÷Ir   r   c                  ó"   • \ rS rSrSrSS jrSrg)Ú
MspDecoderéN   Tc                ó.  • U R                   c   e[        R                  " 5       n[        SU R                  R
                  S-   S-  -  5      n U R                   R                  S5        [        R                  " SU R                  R                   S3U R                   R                  U R                  R                  S-  5      5      n[        U5       HÈ  u  px US	:X  a  UR                  U5        M  U R                   R                  U5      n	[        U	5      U:w  a  S
U SU 3n[        U5      eS	n
X¨:  ae  Xš   nU
S-  n
US	:X  a2  [        R                  " SXš5      u  pÍUR                  XÜ-  5        U
S-  n
OUnUR                  XšX¬-    5        X¬-  n
X¨:  a  Mc  MÈ  MÊ     U R!                  UR#                  5       S5        g! [        R                   a  nSn[        U5      UeS nAff = f! [        R                   a  nSU 3n[        U5      UeS nAff = f)N)éÿ   é   é   r   Ú<ÚHr   zTruncated MSP file in row mapr   zTruncated MSP file, expected z bytes on row r   ÚBczCorrupted MSP file in row r   )éÿÿÿÿr   )ÚfdÚioÚBytesIOÚ	bytearrayÚstateÚxsizeÚseekÚstructÚunpack_fromÚysizer   ÚerrorÚOSErrorÚ	enumerateÚwriteÚlenÚ
set_as_rawÚgetvalue)r'   ÚbufferÚimgÚ
blank_lineÚrowmapÚer)   ÚxÚrowlenÚrowÚidxÚruntypeÚruncountÚrunvals                 r   ÚdecodeÚMspDecoder.decodes   sç  € Ø�w‰wÑ"Ð"Ð"ä�jŠj‹lˆÜ˜w¨4¯:©:×+;Ñ+;¸aÑ+?ÀAÑ*EÑFÓGˆ
ð	&Ø�G‰G�L‰L˜ÔÜ×'Ò'Ø�D—J‘J×$Ñ$Ð% QÐ'¨¯©¯©°d·j±j×6FÑ6FÈÑ6JÓ)KóˆFô # 6Ö*‰IˆAð*Ø˜Q“;Ø—I‘I˜jÔ)ÙØ—g‘g—l‘l 6Ó*�Ü�s“8˜vÓ%Ø9¸&¸ÀÐPQÈsÐS�CÜ! #›,Ð&Ø�Ø“lØ!™h�GØ˜1‘H�CØ !“|Ü+1×+=Ò+=¸dÀCÓ+MÑ(˜ØŸ	™	 &Ñ"3Ô4Ø˜q™™à#*˜ØŸ	™	 #¨C©NÐ";Ô<Ø™˜ð —l‘lñ +ð4 	�‰˜Ÿ™›¨Ô,àøôA �|‰|ó 	&Ø1ˆCÜ˜#“, AÐ%ûð	&ûô4 —<‘<ó *Ø2°1°#Ð6�Ü˜c“l¨Ð)ûð*ús8   ÁA:G  ÃG*Ã2B%G*Ç G'ÇG"Ç"G'Ç*HÇ>HÈHr7   N)rT   z$bytes | Image.SupportsArrayInterfacer.   ztuple[int, int])r0   r1   r2   r3   Ú	_pulls_fdr`   r6   r7   r   r   r9   r9   N   s   † ðF €I÷*r   r9   r   c           
     ó  • U R                   S:w  a  SU R                    S3n[        U5      eS/S-  n[        S5      [        S5      sUS'   US'   U R                  u  US	'   US
'   Su  US'   US'   Su  US'   US'   U R                  u  US'   US'   SnU H  nXV-  nM	     XTS'   U H  nUR	                  [        U5      5        M     [        R                  " X[        R                  " SSU R                  -   SS5      /5        g )Nr   zcannot write mode z as MSPr   é   s   Das   nMr   r   é   )r   r   r   é   r   r=   r>   é	   é   r   r   r   )	ÚmoderN   r!   r%   rP   Úo16r   Ú_saver$   )Úimr   Úfilenamer)   Úheaderr*   Úhs          r   rk   rk   §   s  € Ø	‡w�w�#ƒ~Ø" 2§7¡7 )¨7Ð3ˆÜ�c‹lÐð ˆS�2‰X€Fä˜u›:¤s¨5£zÐ€Fˆ1�Iˆv�a‰yØŸ7™7Ñ€Fˆ1�Iˆv�a‰yØÑ€Fˆ1�Iˆv�a‰yØÑ€Fˆ1�Iˆv�a‰yØŸ7™7Ñ€Fˆ1�Iˆv�a‰yà€HÛˆØ‘<Šñ àˆ2�Jó ˆØ
�‰”�Q“Öñ ô ‡O‚O�BœYŸ_š_¨U°F¸R¿W¹WÑ4DÀbÈ#ÓNÐOÕPr   z.msp)r   Úbytesr.   Úbool)rl   zImage.Imager   z	IO[bytes]rm   zstr | bytesr.   r/   )Ú
__future__r   rD   rJ   Útypingr   Ú r   r   Ú_binaryr   r!   r	   rj   r   r   Ú	PyDecoderr9   Úregister_decoderrk   Úregister_openr4   Úregister_saveÚregister_extensionr7   r   r   Ú<module>r{      s¨   ðõ2 #ã 	Û Ý ç Ý !Ý !ô1ôI�9×&Ñ&ô Iô<O�×$Ñ$ô Oðd × Ò �u˜jÔ )ôQð< × Ò �L×'Ñ'¨°wÔ ?Ø × Ò �L×'Ñ'¨Ô /à × Ò ˜×,Ñ,¨fÕ 5r   