Ë
    6Š·jH  ã                  óþ   — U d dl mZ d dlZddlmZmZ ddlmZ ddlmZ	 ddlm
Z ddlmZ dd	lmZ d
Zerd dl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dZd„ d„ d„ d„ gZde d<   dd„Z! G d„ dej                  «      Z"y) é    )ÚannotationsNé   )ÚFontFileÚImage)Úi8)Úi16be)Úi16le)Úi32be)Úi32leF)ÚCallable)ÚBinaryIOifcpé   é   é   é   é    é@   é€   é   c                ó   — | dz   dz	  S )Né   é   © ©Úbitss    úE/root/workspace/.venv/lib/python3.12/site-packages/PIL/PcfFontFile.pyú<lambda>r   2   s   € �4˜!‘8 ‘/€ ó    c                ó   — | dz   dz	  dz  S )Né   r   éþÿÿÿr   r   s    r   r   r   3   ó   € �4˜"‘9 Ñ" bÑ(€ r   c                ó   — | dz   dz	  dz  S )Né   r   éüÿÿÿr   r   s    r   r   r   4   r"   r   c                ó   — | dz   dz	  dz  S )Né?   r   iøÿÿÿr   r   s    r   r   r   5   r"   r   zlist[Callable[[int], int]]ÚBYTES_PER_ROWc                ó,   — | || j                  d|«       S )Nó    )Úindex)ÚsÚos     r   Úszr.   9   s   € ØˆQ�—‘˜ Ó"Ð#Ð#r   c                  ób   ‡ — e Zd ZdZdZd	d
ˆ fd„Z	 	 	 	 dd„Zdd„Zdd„Z	 	 	 	 dd„Z	dd„Z
ˆ xZS )ÚPcfFontFilez(Font file plugin for the X11 PCF format.Únamec           	     ó  •— || _         t        |j                  d«      «      }|t        k7  rd}t	        |«      ‚t
        ‰| �  «        t        |j                  d«      «      }i | _        t        |«      D ]v  }t        |j                  d«      «      }t        |j                  d«      «      t        |j                  d«      «      t        |j                  d«      «      f| j                  |<   Œx || _	        | j                  «       | _        | j                  «       }| j                  |«      }	| j                  «       }
t        |
«      D ]<  \  }}|€Œ	||   \  }}}}}}}}|df|||z
  ||z   |fdd||f|	|   f| j                   |<   Œ> y )Nr   znot a PCF filer   )Úcharset_encodingÚl32ÚreadÚ	PCF_MAGICÚSyntaxErrorÚsuperÚ__init__ÚtocÚrangeÚfpÚ_load_propertiesÚinfoÚ_load_metricsÚ_load_bitmapsÚ_load_encodingÚ	enumerateÚglyph)Úselfr<   r3   ÚmagicÚmsgÚcountÚiÚtypeÚmetricsÚbitmapsÚencodingÚchÚixÚxsizeÚysizeÚleftÚrightÚwidthÚascentÚdescentÚ
attributesÚ	__class__s                        €r   r9   zPcfFontFile.__init__B   s~  ø€ Ø 0ˆÔä�B—G‘G˜A“J“ˆØ”IÒØ"ˆCÜ˜cÓ"Ð"ä‰ÑÔä�B—G‘G˜A“J“ˆØˆŒÜ�u“ò 	OˆAÜ�r—w‘w˜q“z“?ˆDÜ  §¡¨£›_¬c°"·'±'¸!³*«o¼sÀ2Ç7Á7È1Ã:»ÐNˆD�H‰H�TŠNð	Oð ˆŒà×)Ñ)Ó+ˆŒ	à×$Ñ$Ó&ˆØ×$Ñ$ WÓ-ˆØ×&Ñ&Ó(ˆô
   Ó)ò 	‰FˆB�Ø‰~ð ˜B‘Kñ	ØØØØØØØØð ˜A�JØ˜7 U™?¨E°D©L¸'ÐBØ˜˜5 %Ð(Ø˜B‘Kð	"�—
‘
˜2’ñ	r   c                óÞ   — | j                   |   \  }}}| j                  }|j                  |«       t        |j	                  d«      «      }|dz  rt
        t        }}nt        t        }}||||fS )Nr   )r:   r<   Úseekr4   r5   Úb16Úb32Úl16)rD   ÚtagÚformatÚsizeÚoffsetr<   Úi16Úi32s           r   Ú
_getformatzPcfFontFile._getformatp   se   € ð  $Ÿx™x¨™}Ñˆ��fà�W‰WˆØ
�‰�Œä�R—W‘W˜Q“Z“ˆà�AŠ:ÜœC�‰CäœC�ˆCà�6˜3 Ð#Ð#r   c           
     ó&  — i }| j                  t        «      \  }}}} ||j                  d«      «      }t        |«      D �cg c]I  } ||j                  d«      «      t	        |j                  d«      «       ||j                  d«      «      f‘ŒK }}|dz  r&|j                  d|dz  z
  t        j                  «       |j                   ||j                  d«      «      «      }	|D ]%  \  }
}}|rt        |	|«      n|}||t        |	|
«      <   Œ' |S c c}w )Nr   r   r   )	rc   ÚPCF_PROPERTIESr5   r;   r   rY   ÚioÚSEEK_CURr.   )rD   Ú
propertiesr<   r^   ra   rb   ÚnpropsÚ_ÚpÚdataÚkr,   ÚvÚproperty_values                 r   r=   zPcfFontFile._load_properties�   sõ   € ð ˆ
à#Ÿ™¬~Ó>ÑˆˆF�C˜á�R—W‘W˜Q“Z“ˆô JOÈvËÖWÀA‰c�"—'‘'˜!“*‹oœr "§'¡'¨!£*›~©s°2·7±7¸1³:«Ò?ÐWˆÐWà�AŠ:Ø�G‰G�A˜ !™Ñ$¤b§k¡kÔ2à�w‰w‘s˜2Ÿ7™7 1›:“Ó'ˆàò 	5‰GˆAˆq�!Ù9:¬"¨T°1¬+ÀˆNØ&4ˆJ”r˜$ “{Ò#ð	5ð Ðùò Xs   ÁADc                ót  ‡‡‡— g Š| j                  t        «      \  Š}Š}	 d
	 	 	 	 	 	 	 	 	 	 	 	 	 dˆfd„}|dz  dk(  r>t         ‰‰j                  d«      «      «      D ]  } |ˆfd„t        d«      D «       Ž  Œ ‰S t         |‰j                  d«      «      «      D ]  } |ˆˆfd„t        d	«      D «       Ž  Œ ‰S )Nc           
     óz   •— || z
  }||z   }t        j                  ||f«       ‰j                  ||| |||||f«       y )N)r   Ú_decompression_bomb_checkÚappend)	rQ   rR   rS   rT   rU   rV   rO   rP   rJ   s	           €r   rs   z)PcfFontFile._load_metrics.<locals>.append¡   sJ   ø€ ð ˜D‘LˆEØ˜WÑ$ˆEÜ×+Ñ+¨U°E¨NÔ;Ø�N‰NØ˜˜t U¨E°6¸7ÀJÐOõr   i ÿ  r   r   c              3  óX   •K  — | ]!  }t        ‰j                  d «      «      dz
  –— Œ# y­w)r   r   N)r   r5   )Ú.0rj   r<   s     €r   ú	<genexpr>z,PcfFontFile._load_metrics.<locals>.<genexpr>³   s"   øè ø€ Ò@°!œ˜BŸG™G A›J›¨#Õ-Ñ@ùs   ƒ'*é   r   c              3  óL   •K  — | ]  } ‰‰j                  d «      «      –— Œ y­w)r   N)r5   )ru   rj   r<   ra   s     €€r   rv   z,PcfFontFile._load_metrics.<locals>.<genexpr>¸   s   øè ø€ Ò;¨Q™˜RŸW™W Q›ZŸÑ;ùs   ƒ!$é   )r   )rQ   ÚintrR   rz   rS   rz   rT   rz   rU   rz   rV   rz   ÚreturnÚNone)rc   ÚPCF_METRICSr;   r5   )rD   r^   rb   rs   rH   r<   ra   rJ   s        @@@r   r?   zPcfFontFile._load_metrics™   só   ú€ ð HJˆà#Ÿ™¬{Ó;ÑˆˆF�C˜ð  ð	Øð	àð	ð ð	ð ð		ð
 ð	ð ð	ð õ	ð �V‰O Ò%ä™3˜rŸw™w q›z›?Ó+ò B�ÙÓ@´u¸Q³xÔ@ÒAðBð ˆô ™3˜rŸw™w q›z›?Ó+ò =�ÙÔ;´%¸³(Ô;Ò<ð=ð ˆr   c                óž  — | j                  t        «      \  }}}} ||j                  d«      «      }|t        |«      k7  rd}t	        |«      ‚t        |«      D �cg c]  } ||j                  d«      «      ‘Œ }	}t        d«      D �cg c]  } ||j                  d«      «      ‘Œ }
}|dz  }|dz  }|
|   }|	j                  |«       |j                  |«      }t        |   }d}|rd}g }t        |«      D ]L  }||   d d \  }}|	||dz    \  }}|j                  t        j                  d||f||| d| ||«      «      «       ŒN |S c c}w c c}w )	Nr   zWrong number of bitmapsr   r   z1;RÚ1r   Úraw)
rc   ÚPCF_BITMAPSr5   ÚlenÚOSErrorr;   rs   r(   r   Ú	frombytes)rD   rJ   r<   r^   ra   rb   ÚnbitmapsrF   rj   ÚoffsetsÚbitmap_sizesÚbitorderÚpadindexÚ
bitmapsizerl   ÚpadÚmoderK   rH   rO   rP   ÚbÚes                          r   r@   zPcfFontFile._load_bitmaps¼   s[  € ð  $Ÿ™¬{Ó;ÑˆˆF�C˜á�r—w‘w˜q“z“?ˆà”s˜7“|Ò#Ø+ˆCÜ˜#“,Ðä,1°(«OÖ< q‘3�r—w‘w˜q“z•?Ð<ˆÐ<ä16°q³Ö:¨A™˜BŸG™G A›J�Ð:ˆÐ:ð ˜A‘:ˆØ˜A‘:ˆà! (Ñ+ˆ
Ø�‰�zÔ"à�w‰w�zÓ"ˆä˜HÑ%ˆØˆÙØˆDàˆÜ�x“ò 	ˆAØ" 1™: b q˜>‰LˆE�5Ø˜1˜q 1™uÐ%‰DˆAˆqØ�N‰NÜ—‘  e¨U ^°T¸!¸A°YÀÀtÉSÐQVËZÓXõð	ð ˆùò5 =ùâ:s   ÁEÂE
c                ó�  — | j                  t        «      \  }}}} ||j                  d«      «       ||j                  d«      «      }} ||j                  d«      «       ||j                  d«      «      }} ||j                  d«      «       ||z
  dz   ||z
  dz   z  }	d gt        d|	«      z  }
t	        |	«      D �cg c]  } ||j                  d«      «      ‘Œ }}t	        |t        |
«      «      D ]>  }	 |t        t        |g«      j                  | j                  «      «         }|dk7  r||
|<   Œ@ |
S c c}w # t        $ r Y ŒSw xY w)Nr   r   r   iÿÿ  )rc   ÚPCF_BDF_ENCODINGSr5   Úminr;   r‚   ÚordÚ	bytearrayÚdecoder3   ÚUnicodeDecodeError)rD   r<   r^   ra   rb   Ú	first_colÚlast_colÚ	first_rowÚlast_rowÚ	nencodingrL   rj   Úencoding_offsetsrH   Úencoding_offsets                  r   rA   zPcfFontFile._load_encodingæ   s@  € Ø#Ÿ™Ô/@ÓAÑˆˆF�C˜á! "§'¡'¨!£*›o©s°2·7±7¸1³:«�8ˆ	Ù! "§'¡'¨!£*›o©s°2·7±7¸1³:«�8ˆ	áˆB�G‰G�A‹JŒà 	Ñ)¨AÑ-°(¸YÑ2FÈÑ2JÑKˆ	ð '+ V¬c°#°yÓ.AÑ%Aˆä5:¸9Ó5EÖF°™C §¡¨£
�OÐFÐÐFä�y¤# h£-Ó0ò 		ˆAðØ"2Üœ	 1 #›×-Ñ-¨d×.CÑ.CÓDÓEñ#�ð # fÒ,Ø"1�H˜Q‘Køð		ð ˆùò Gøô &ò áðús   Â<D4Ã5;D9Ä9	EÅE)z	iso8859-1)r<   r   r3   Ústr)r]   rz   r{   zDtuple[BinaryIO, int, Callable[[bytes], int], Callable[[bytes], int]])r{   zdict[bytes, bytes | int])r{   ú3list[tuple[int, int, int, int, int, int, int, int]])rJ   rž   r{   zlist[Image.Image])r{   zlist[int | None])Ú__name__Ú
__module__Ú__qualname__Ú__doc__r1   r9   rc   r=   r?   r@   rA   Ú__classcell__)rW   s   @r   r0   r0   =   sL   ø„ Ù2à€Dö,ð\$Øð$à	Mó$ó"ó0!ðF(ØJð(à	ó(÷Tr   r0   )r,   Úbytesr-   rz   r{   r¤   )#Ú
__future__r   rf   Ú r   r   Ú_binaryr   r   rZ   r	   r\   r
   r[   r   r4   ÚTYPE_CHECKINGÚcollections.abcr   Útypingr   r6   re   ÚPCF_ACCELERATORSr}   r�   ÚPCF_INK_METRICSr�   ÚPCF_SWIDTHSÚPCF_GLYPH_NAMESÚPCF_BDF_ACCELERATORSr(   Ú__annotations__r.   r0   r   r   r   ú<module>r±      sš   ðö$ #ã 	ç Ý Ý !Ý !Ý !Ý !à€ÙÝ(Ýð
 €	à€ØÐ Ø€Ø€Ø€ØÐ Ø€Ø€ØÐ ñ #Ù(Ù(Ù(ð	-€Ð)ó ó$ôC�(×#Ñ#õ Cr   