§
    œ"²c  ã                   óÂ   — 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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„ Z G d„ dej        ¦  «        ZdS )é    Né   )ÚFontFileÚImage)Úi8)Úi16be)Úi16le)Úi32be)Úi32leifcpé   é   é   é   é    é@   é€   é   c                 ó   — | dz   dz	  S )Né   é   © ©Úbitss    ú1/usr/lib/python3/dist-packages/PIL/PcfFontFile.pyú<lambda>r   ,   s   € �4˜!‘8 ‘/€ ó    c                 ó   — | dz   dz	  dz  S )Né   r   éþÿÿÿr   r   s    r   r   r   -   ó   € �4˜"‘9 Ñ" bÑ(€ r   c                 ó   — | dz   dz	  dz  S )Né   r   éüÿÿÿr   r   s    r   r   r   .   r   r   c                 ó   — | dz   dz	  dz  S )Né?   r   iøÿÿÿr   r   s    r   r   r   /   r   r   c                 ó>   — | ||                       d|¦  «        …         S )Nó    )Úindex)ÚsÚos     r   Úszr*   3   s    € ØˆQ�—’˜ Ñ"Ô"Ð"Ô#Ð#r   c                   óF   ‡ — e Zd ZdZdZd
ˆ fd„	Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
ˆ xZS )ÚPcfFontFilez(Font file plugin for the X11 PCF format.Únameú	iso8859-1c           	      ó¼  •— || _         t          |                     d¦  «        ¦  «        }|t          k    rd}t	          |¦  «        ‚t          ¦   «                              ¦   «          t          |                     d¦  «        ¦  «        }i | _        t          |¦  «        D ]‘}t          |                     d¦  «        ¦  «        }t          |                     d¦  «        ¦  «        t          |                     d¦  «        ¦  «        t          |                     d¦  «        ¦  «        f| j        |<   Œ’|| _	        |  
                    ¦   «         | _        |                      ¦   «         }|                      |¦  «        }	|                      ¦   «         }
t          |
¦  «        D ]>\  }}|�7||         \  }}}}}}}}|df|||z
  ||z   |fdd||f|	|         f}|| j        |<   Œ?d S )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)Úselfr9   r0   ÚmagicÚmsgÚcountÚiÚtypeÚmetricsÚbitmapsÚencodingÚchÚixÚxÚyÚlÚrÚwÚaÚdÚfr@   Ú	__class__s                         €r   r6   zPcfFontFile.__init__<   s°  ø€ à 0ˆÔå�B—G’G˜A‘J”J‘”ˆØ•IÒÐØ"ˆCÝ˜cÑ"Ô"Ð"å‰Œ×ÒÑÔÐå�B—G’G˜A‘J”J‘”ˆØˆŒÝ�u‘”ð 	Oð 	OˆAÝ�r—w’w˜q‘z”z‘?”?ˆDÝ  §¢¨¡¤™_œ_­c°"·'²'¸!±*´*©o¬o½sÀ2Ç7Â7È1Á:Ä:¹¼ÐNˆDŒH�T‰NˆNàˆŒà×)Ò)Ñ+Ô+ˆŒ	à×$Ò$Ñ&Ô&ˆØ×$Ò$ WÑ-Ô-ˆØ×&Ò&Ñ(Ô(ˆõ
   Ñ)Ô)ð 	'ð 	'‰FˆB�Øˆ~Ø)0°¬Ñ&��1�a˜˜A˜q ! QØ˜A˜  A¨¡E¨1¨q©5°!Ð 4°q¸!¸QÀ°lÀGÈBÄKÐO�Ø!&�”
˜2‘øð		'ð 	'r   c                 óð   — | j         |         \  }}}| j        }|                     |¦  «         t          |                     d¦  «        ¦  «        }|dz  rt
          t          }}nt          t          }}||||fS )Nr   )r7   r9   Úseekr1   r2   Úb16Úb32Úl16)rA   ÚtagÚformatÚsizeÚoffsetr9   Úi16Úi32s           r   Ú
_getformatzPcfFontFile._getformat^   sn   € à#œx¨œ}Ñˆ��fàŒWˆØ
�Š�‰Œˆå�R—W’W˜Q‘Z”Z‘”ˆà�A‰:ð 	 Ý�C�ˆCˆCå�C�ˆCà�6˜3 Ð#Ð#r   c           
      ó¤  — i }|                       t          ¦  «        \  }}}} ||                     d¦  «        ¦  «        }g }t          |¦  «        D ]r}|                      ||                     d¦  «        ¦  «        t          |                     d¦  «        ¦  «         ||                     d¦  «        ¦  «        f¦  «         Œs|dz  r&|                     d|dz  z
  t          j        ¦  «         |                      ||                     d¦  «        ¦  «        ¦  «        }	|D ]-\  }
}}t          |	|
¦  «        }
|rt          |	|¦  «        }|||
<   Œ.|S )Nr   r   r   )
r`   ÚPCF_PROPERTIESr2   r8   Úappendr   rV   ÚioÚSEEK_CURr*   )rA   Ú
propertiesr9   r[   r^   r_   ÚnpropsÚprE   ÚdataÚkr(   Úvs                r   r:   zPcfFontFile._load_propertiesn   s>  € ð
 ˆ
à#Ÿš­~Ñ>Ô>ÑˆˆF�C˜à��R—W’W˜Q‘Z”Z‘”ˆð ˆÝ�v‘”ð 	Ið 	IˆAØ�HŠH�c�c˜"Ÿ'š' !™*œ*‘o”o¥r¨"¯'ª'°!©*¬*¡~¤~°s°s¸2¿7º7À1¹:¼:±´ÐGÑHÔHÐHÐHØ�A‰:ð 	3Ø�GŠG�A˜ !™Ñ$¥b¤kÑ2Ô2Ð2à�wŠw�s�s˜2Ÿ7š7 1™:œ:‘”Ñ'Ô'ˆàð 	ð 	‰GˆAˆq�!Ý�4˜‘”ˆAØð  Ý�t˜Q‘K”K�ØˆJ�q‰MˆMàÐr   c                 ór  — g }|                       t          ¦  «        \  }}}}|j        }|dz  dk    �rt           ||                     d¦  «        ¦  «        ¦  «        D ]Ø}t          |                     d¦  «        ¦  «        dz
  }t          |                     d¦  «        ¦  «        dz
  }	t          |                     d¦  «        ¦  «        dz
  }
t          |                     d¦  «        ¦  «        dz
  }t          |                     d¦  «        ¦  «        dz
  }|	|z
  }||z   } |||||	|
||df¦  «         ŒÙnÿt           ||                     d¦  «        ¦  «        ¦  «        D ]Ó} ||                     d¦  «        ¦  «        } ||                     d¦  «        ¦  «        }	 ||                     d¦  «        ¦  «        }
 ||                     d¦  «        ¦  «        } ||                     d¦  «        ¦  «        } ||                     d¦  «        ¦  «        }|	|z
  }||z   } |||||	|
|||f¦  «         ŒÔ|S )Ni ÿ  r   r   r   r   r   r   )r`   ÚPCF_METRICSrc   r8   r2   r   )rA   rG   r9   r[   r^   r_   rc   rE   ÚleftÚrightÚwidthÚascentÚdescentÚxsizeÚysizeÚ
attributess                   r   r<   zPcfFontFile._load_metricsŠ   s  € ð
 ˆà#Ÿš­{Ñ;Ô;ÑˆˆF�C˜à”ˆà�V‰O Ò%Ñ%õ ˜3˜3˜rŸwšw q™zœz™?œ?Ñ+Ô+ð Oð O�Ý˜"Ÿ'š' !™*œ*‘~”~¨Ñ+�Ý˜2Ÿ7š7 1™:œ:™œ¨Ñ,�Ý˜2Ÿ7š7 1™:œ:™œ¨Ñ,�Ý˜BŸGšG A™JœJ™œ¨#Ñ-�Ý˜RŸWšW Q™ZœZ™.œ.¨3Ñ.�Ø ™�Ø Ñ(�Ø�˜˜u d¨E°5¸&À'È1ÐMÑNÔNÐNÐNðOõ ˜3˜3˜rŸwšw q™zœz™?œ?Ñ+Ô+ð 	Xð 	X�Ø�s˜2Ÿ7š7 1™:œ:‘”�Ø˜˜BŸGšG A™JœJ™œ�Ø˜˜BŸGšG A™JœJ™œ�Ø˜˜RŸWšW Q™ZœZ™œ�Ø˜#˜bŸgšg a™jœj™/œ/�Ø ˜S §¢¨¡¤™_œ_�
Ø ™�Ø Ñ(�Ø�˜˜u d¨E°5¸&À'È:ÐVÑWÔWÐWÐWàˆr   c                 óh  — g }|                       t          ¦  «        \  }}}} ||                     d¦  «        ¦  «        }|t          |¦  «        k    rd}t	          |¦  «        ‚g }	t          |¦  «        D ]3}
|	                      ||                     d¦  «        ¦  «        ¦  «         Œ4g }t          d¦  «        D ]3}
|                      ||                     d¦  «        ¦  «        ¦  «         Œ4|dz  }|dz  }||         }|	                     |¦  «         |                     |¦  «        }t          |         }d}|rd}t          |¦  «        D ]e}
||
         \  }}}}}}}}|	|
         |	|
dz            }}|                     t          j	        d||f|||…         d| ||¦  «        ¦  «        ¦  «         Œf|S )	Nr   zWrong number of bitmapsr   r   z1;RÚ1r   Úraw)
r`   ÚPCF_BITMAPSr2   ÚlenÚOSErrorr8   rc   ÚBYTES_PER_ROWr   Ú	frombytes)rA   rG   rH   r9   r[   r^   r_   ÚnbitmapsrC   ÚoffsetsrE   Úbitmap_sizesÚbitorderÚpadindexÚ
bitmapsizeri   ÚpadÚmoderL   rM   rN   rO   rP   rQ   rR   rS   ÚbÚes                               r   r=   zPcfFontFile._load_bitmaps²   sÊ  € ð
 ˆà#Ÿš­{Ñ;Ô;ÑˆˆF�C˜à�3�r—w’w˜q‘z”z‘?”?ˆà•s˜7‘|”|Ò#Ð#Ø+ˆCÝ˜#‘,”,ÐàˆÝ�x‘”ð 	,ð 	,ˆAØ�NŠN˜3˜3˜rŸwšw q™zœz™?œ?Ñ+Ô+Ð+Ð+àˆÝ�q‘”ð 	1ð 	1ˆAØ×Ò   B§G¢G¨A¡J¤J¡¤Ñ0Ô0Ð0Ð0ð ˜A‘:ˆØ˜A‘:ˆà! (Ô+ˆ
Ø�Š�zÑ"Ô"Ð"à�wŠw�zÑ"Ô"ˆå˜HÔ%ˆØˆØð 	ØˆDå�x‘”ð 	Yð 	YˆAØ%,¨Q¤ZÑ"ˆAˆq�!�Q˜˜1˜a Ø˜1”:˜w q¨1¡uœ~ˆqˆAØ�NŠN�5œ?¨3°°A°¸¸Q¸q¸S¼	À5È$ÐPSÐPSÐTUÑPVÔPVÑWÔWÑXÔXÐXÐXàˆr   c                 óä  ‡‡— |                       t          ¦  «        \  Š}Š} ‰‰                     d¦  «        ¦  «         ‰‰                     d¦  «        ¦  «        }} ‰‰                     d¦  «        ¦  «         ‰‰                     d¦  «        ¦  «        }} ‰‰                     d¦  «        ¦  «         ||z
  dz   ||z
  dz   z  }d gt          d|¦  «        z  }ˆˆfd„t	          |¦  «        D ¦   «         }	t	          |t          |¦  «        ¦  «        D ]Y}
	 |	t          t          |
g¦  «                             | j	        ¦  «        ¦  «                 }|dk    r|||
<   ŒJ# t          $ r Y ŒVw xY w|S )Nr   r   r   c                 óL   •— g | ] } ‰‰                      d ¦  «        ¦  «        ‘Œ!S )r   )r2   )Ú.0Ú_r9   r^   s     €€r   ú
<listcomp>z.PcfFontFile._load_encoding.<locals>.<listcomp>ë   s+   ø€ ÐFÐFÐF°˜C˜C §¢¨¡
¤
™OœOÐFÐFÐFr   iÿÿ  )r`   ÚPCF_BDF_ENCODINGSr2   Úminr8   rz   ÚordÚ	bytearrayÚdecoder0   ÚUnicodeDecodeError)rA   r[   r_   Ú	first_colÚlast_colÚ	first_rowÚlast_rowÚ	nencodingrI   Úencoding_offsetsrE   Úencoding_offsetr9   r^   s               @@r   r>   zPcfFontFile._load_encodingÞ   s{  øø€ Ø#ŸšÕ/@ÑAÔAÑˆˆF�C˜à!˜c "§'¢'¨!¡*¤*™oœo¨s¨s°2·7²7¸1±:´:©¬�8ˆ	Ø!˜c "§'¢'¨!¡*¤*™oœo¨s¨s°2·7²7¸1±:´:©¬�8ˆ	àˆˆB�GŠG�A‰JŒJ‰Œˆà 	Ñ)¨AÑ-°(¸YÑ2FÈÑ2JÑKˆ	ð �6�C  YÑ/Ô/Ñ/ˆàFÐFÐFÐFÐFµU¸9Ñ5EÔ5EÐFÑFÔFÐå�y¥# h¡-¤-Ñ0Ô0ð 		ð 		ˆAðØ"2Ý�	 1 #™œ×-Ò-¨dÔ.CÑDÔDÑEÔEô#�ð # fÒ,Ð,Ø"1�H˜Q‘KøøÝ%ð ð ð à�ðøøøð ˆs   ÄAE Å 
E-Å,E-)r.   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r-   r6   r`   r:   r<   r=   r>   Ú__classcell__)rT   s   @r   r,   r,   7   s–   ø€ € € € € Ø2Ð2à€Dð 'ð  'ð  'ð  'ð  'ð  'ðD$ð $ð $ð ð ð ð8&ð &ð &ðP*ð *ð *ðXð ð ð ð ð ð r   r,   )rd   Ú r   r   Ú_binaryr   r   rW   r   rY   r	   rX   r
   r1   r3   rb   ÚPCF_ACCELERATORSrm   ry   ÚPCF_INK_METRICSr�   ÚPCF_SWIDTHSÚPCF_GLYPH_NAMESÚPCF_BDF_ACCELERATORSr|   r*   r,   r   r   r   ú<module>r¦      s*  ðð& 
€	€	€	à Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø !Ð !Ð !Ð !Ð !Ð !Ø !Ð !Ð !Ð !Ð !Ð !Ø !Ð !Ð !Ð !Ð !Ð !ð
 €	à€ØÐ Ø€Ø€Ø€ØÐ Ø€Ø€ØÐ ð #Ð"Ø(Ð(Ø(Ð(Ø(Ð(ð	€ð$ð $ð $ðAð Að Að Að A�(Ô#ñ Aô Að Að Að Ar   