ó
ÊLºVc           @€  sÕ   d  d l  m Z d  d l m Z m Z m Z d  d l Z d  d l Z d d l m	 Z	 m
 Z
 m Z m Z m Z m Z d d l m Z m Z e Z d Z d Z d Z d Z d Z d „  Z d „  Z d d d „  ƒ  YZ d S(   iÿÿÿÿ(   t   with_statement(   t   packt   unpackt   unpack_fromNi   (   t   diet   substrt
   str_repeatt   str_padt   strlent   count(   t   bt   ordi    i   i   i   i   c         C€  sŒ   |  d } |  d } | d } | d } | | k rK | d 7} | d 7} n  | | } | | k rn | d 7} n  | | } | d @} | | f S(   Ni   i    i   iÿÿ  i   i   (    (   t   xt   yt   xlot   xhit   ylot   yhit   reslot   reshi(    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyt   sub32,   s    







c         C€  sí   t  |  ƒ d r: |  t t d ƒ d t |  ƒ d ƒ 7}  n  d } d } xš t d t |  ƒ d ƒ D]€ } | t |  | ƒ d >t |  | d ƒ 7} | t |  | d ƒ d >t |  | d ƒ 7} | | d ?7} | d	 @} | d	 @} q_ W| | f S(
   Ni   t    i    i   i   i   i   i   iÿÿ  (   R   R   R
   t   lent   rangeR   (   t   datat   hit   lot   i(    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyt   calcChecksum;   s    **.
t
   TTFontFilec           B€  s"  e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d d „ Z d „  Z	 d	 „  Z
 d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z  RS(    c         C€  s   d |  _  d  S(   Ni@ (   t   maxStrLenRead(   t   self(    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyt   __init__K   s    c         C€  sõ   | |  _  t | d ƒ �× |  _ d |  _ g  |  _ i  |  _ i  |  _ i  |  _ i  |  _ d |  _	 d |  _
 i  |  _ |  j ƒ  |  _ } | d k r› t d ƒ n  | d k r´ t d ƒ n  | d
 k r× t d	 t | ƒ ƒ n  |  j ƒ  |  j ƒ  Wd  QXd  S(   Nt   rbi    iOTTOs%   Postscript outlines are not supportedifctts0   ERROR - TrueType Fonts Collections not supportedi   ieurts   Not a TrueType font: version=(   i   ieurt(   t   filenamet   opent   fht   _post
   charWidthst   glyphPost   charToGlypht   tablest   otablest   ascentt   descentt   TTCFontst
   read_ulongt   versionR   t   strt   readTableDirectoryt   extractInfo(   R   t   fileR/   (    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyt
   getMetricsN   s(    										
c         C€  sÆ   |  j  ƒ  |  _ |  j  ƒ  |  _ |  j  ƒ  |  _ |  j  ƒ  |  _ i  |  _ xz t |  j ƒ D]i } i  } |  j ƒ  | d <|  j  ƒ  |  j  ƒ  f | d <|  j ƒ  | d <|  j ƒ  | d <| |  j | d <qU Wd  S(   Nt   tagt   checksumt   offsett   length(	   t   read_ushortt	   numTablest   searchRanget   entrySelectort
   rangeShiftR)   R   t   read_tagR.   (   R   R   t   record(    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyR1   d   s    	c         C€  s,   |  j  | d } |  j  | d } | | f S(   NR7   R8   (   R)   (   R   R5   R7   R8   (    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyt   get_table_posr   s    c         C€  s    | |  _  |  j j |  j  ƒ d  S(   N(   R%   R$   t   seek(   R   t   pos(    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyRA   w   s    	c         C€  s'   |  j  | |  _  |  j j |  j  ƒ d  S(   N(   R%   R$   RA   (   R   t   delta(    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyt   skip{   s    i    c         C€  s:   |  j  | ƒ } | d | |  _ |  j j |  j ƒ |  j S(   Ni    (   R@   R%   R$   RA   (   R   R5   t   offset_in_tablet   tpos(    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyt
   seek_table   s    c         C€  s(   |  j  d 7_  |  j j d ƒ j d ƒ S(   Ni   t   latin1(   R%   R$   t   readt   decode(   R   (    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyR>   …   s    c         C€  s^   |  j  d 7_  |  j j d ƒ } t | d ƒ d >t | d ƒ } | d @rZ | d } n  | S(	   Ni   i    i   i   i   i   i €  i   (   R%   R$   RI   R   (   R   t   st   a(    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyt
   read_short‰   s    "
c         C€  s=   t  | d ƒ d >t  | d ƒ } | d @r9 | d } n  | S(   Ni    i   i   i   i   i €  i   (   R   (   R   RK   RL   (    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyt   unpack_short‘   s    "
c         C€  sA   |  j  d 7_  |  j j d ƒ } t | d ƒ d >t | d ƒ S(   Ni   i    i   i   (   R%   R$   RI   R   (   R   RK   (    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyR9   —   s    c         C€  se   |  j  d 7_  |  j j d ƒ } t | d ƒ d t | d ƒ d >t | d ƒ d >t | d ƒ S(	   Ni   i    i   i   i   i   i   i   (   R%   R$   RI   R   (   R   RK   (    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyR.   œ   s    c         C€  sB   |  j  j | ƒ |  j  j d ƒ } t | d ƒ d >t | d ƒ S(   Ni   i    i   i   (   R$   RA   RI   R   (   R   RB   RK   (    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyt
   get_ushort¢   s    c         C€  sf   |  j  j | ƒ |  j  j d ƒ } t | d ƒ d t | d ƒ d >t | d ƒ d >t | d ƒ S(	   Ni   i    i   i   i   i   i   i   (   R$   RA   RI   R   (   R   RB   RK   (    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyt	   get_ulong§   s    c         C€  s9   | d k  r, t  | ƒ } | } | d 7} n  t d | ƒ S(   Ni    i   s   >H(   t   absR   (   R   t   val(    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyt
   pack_short­   s
    c         C€  s+   t  | d | ƒ | t  | | t | ƒ ƒ S(   Ni    (   R   R   (   R   t   streamR7   t   value(    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyt   splice´   s    c         C€  s"   t  d | ƒ } |  j | | | ƒ S(   Ns   >H(   R   RV   (   R   RT   R7   RU   t   up(    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyt   _set_ushort·   s    c         C€  sN   | d k  r, t  | ƒ } | } | d 7} n  t d | ƒ } |  j | | | ƒ S(   Ni    i   s   >H(   RQ   R   RV   (   R   RT   R7   RR   RW   (    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyt
   _set_short»   s    c         C€  s0   |  j  j | ƒ | d k  r  d S|  j  j | ƒ S(   Ni   t    (   R$   RA   RI   (   R   RB   R8   (    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyt	   get_chunkÃ   s     c         C€  s]   |  j  | ƒ \ } } | d k r= t d |  j d | ƒ n  |  j j | ƒ |  j j | ƒ S(   Ni    s   Truetype font (s   ): error reading table: (   R@   R   R"   R$   RA   RI   (   R   R5   RB   R8   (    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyt	   get_tableÈ   s
    c         C€  s;   | d k r* |  j  | d t d ƒ ƒ } n  | |  j | <d  S(   Nt   headi   t       (   RV   R
   R*   (   R   R5   R   (    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyt   addÏ   s    c   2      C€  sÞ	  d |  _  d |  _ |  j d ƒ } |  j ƒ  } | d k rJ t d | ƒ n  |  j ƒ  } | |  j ƒ  } i d d 6d d 6d d 6d d 6d d	 6} t | j ƒ  ƒ } t | ƒ } xÓt | ƒ D]Å} |  j ƒ  }	 |  j ƒ  }
 |  j ƒ  } |  j ƒ  } |  j ƒ  } |  j ƒ  } | | k rqº n  d } |	 d k rÝ|
 d k rÝ| d
 k rÝ|  j	 } |  j
 | | ƒ | d d k r{t d ƒ n  | d } d } x6 | d k rÃ|  j ƒ  } | t | ƒ 7} | d 8} qŽW| |  _	 |  j
 | ƒ ne |	 d k rB|
 d k rB| d k rB|  j	 } |  j | | | ƒ j d ƒ } | |  _	 |  j
 | ƒ n  | rº | | d k rº | | | <| d 8} | d k rPqqº qº W| d	 rš| d	 } nR | d rÀt j d d | d ƒ } n, | d ræt j d d | d ƒ } n d } | sÿt d ƒ n  | |  _ | d r"| d |  _ n	 | |  _ | d rE| d |  _ n	 d |  _ | d rh| d |  _ n	 | |  _ | d r‹| d |  _ n	 | |  _ | d	 r®| d	 |  _ n  |  j d ƒ |  j d ƒ |  j ƒ  |  _ } d t | ƒ } |  j d ƒ |  j ƒ  } |  j ƒ  } |  j ƒ  } |  j ƒ  } | | | | | | | | g |  _ |  j d0 ƒ |  j ƒ  } |  j ƒ  } | d k r�t d | ƒ n  d |  j k rí|  j d ƒ |  j d ƒ |  j ƒ  } |  j ƒ  } | | |  _ | | |  _ n  d |  j k rs|  j d ƒ |  j ƒ  } |  j d ƒ |  j ƒ  } |  j d ƒ |  j ƒ  } | d k sc| d @d k r„t d |  j d ƒ t |  _ n  |  j d ƒ |  j ƒ  }  |  d ?|  _  |  d @|  _ |  j	 d 7_	 |  j  j! d ƒ }! |  j d ƒ |  j ƒ  }" |  j ƒ  }# |  j s|" | |  _ n  |  j s/|# | |  _ n  | d k rd|  j d ƒ |  j ƒ  }$ |$ | |  _" q·|  j |  _" nD d  } |  j s’| | |  _ n  |  j s«| | |  _ n  |  j |  _" d! t# t$ | d" d ƒ ƒ |  _% |  j d# ƒ |  j d ƒ |  j ƒ  |  j ƒ  d$ |  _& |  j ƒ  | |  _' |  j ƒ  | |  _( |  j) ƒ  }% d |  _* |  j& d k rk|  j* d% B|  _* n  | d& k rŠ|  j* d' B|  _* n  |% r£|  j* d B|  _* n  |  j d ƒ |  j d( ƒ |  j ƒ  }& |& d k råt d) j+ ƒ n  |  j ƒ  }' |' d k r
t d* ƒ n  |  j d+ ƒ |  j d ƒ |  j ƒ  }( |  j d, ƒ }) |  j d ƒ |  j ƒ  }* d }+ d }, xü t |* ƒ D]î } |  j ƒ  }- |  j ƒ  }. |  j) ƒ  } |  j	 }/ |- d k rõ|. d k rõ|  j, |) | ƒ } | d- k rõ|, sî|) | }, n  Pqõn  |- d k r	|. d k s	|- d k rR	|  j, |) | ƒ } | d k rR	|+ sK	|) | }+ n  PqR	n  |  j
 |/ ƒ qqW|+ r‰	|, r‰	t d. |  j d/ ƒ n  i  }0 i  }1 |, r±	|  j- |, |0 |1 ƒ n |  j. |+ |0 |1 ƒ |  j/ |' |( |0 | ƒ d  S(1   Ni    t   names   Unknown name table format RZ   i   i   i   i   i   i	  s0   PostScript name is UTF-16BE string of odd lengthRH   t    t   -s#   Could not find PostScript font namet   RegularR]   i   iè  i   s   Unknown glyph data format t   hheas   OS/2i   s   ERROR - Font file s2    cannot be embedded due to copyright restrictions.i   i   iÿ   i
   i   iô  i2   g     @P@t   postg      ð@i@   iX  i   i    s&   Unknown horizontal metric data format s!   Number of horizontal metrics is 0t   maxpt   cmapi   s   Font (s‘   ) does not have cmap for Unicode (platform 3, encoding 1, format 4, or platform 3, encoding 10, format 12, or platform 0, any encoding, format 4)i   (0   t   sFamilyClasst   sFamilySubClassRG   R9   R   t   listt   keysR   R   R%   RA   t   chrR[   RJ   t   ret   subR`   t
   familyNamet	   styleNamet   fullNamet   uniqueFontIDRD   t
   unitsPerEmt   floatRM   t   bboxR)   R+   R,   R"   t   Truet   restrictedUseR$   RI   t	   capHeightt   intt   powt   stemVt   italicAnglet   underlinePositiont   underlineThicknessR.   t   flagst   metricDataFormatRO   t	   getCMAP12t   getCMAP4t   getHMTX(2   R   t   name_offsett   formatt
   numRecordst   string_data_offsett   namest   Kt	   nameCountR   t
   platformIdt
   encodingIdt
   languageIdt   nameIdR8   R7   t   Nt   opost   chart   psNameRs   t   scalet   xMint   yMint   xMaxt   yMaxt   indexToLocFormatt   glyphDataFormatt   hheaAscendert   hheaDescenderR/   t   usWeightClasst   fsTypet   sFt   panoset   sTypoAscendert   sTypoDescendert
   sCapHeightt   isFixedPitchR€   t   numberOfHMetricst	   numGlyphst   cmap_offsett   cmapTableCountt   unicode_cmap_offsett   unicode_cmap_offset12t
   platformIDt
   encodingIDt   save_post   glyphToCharR(   (    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyR2   Ù   sh   		) $	
	$		

 


	
	
	
	
	
%			 	  		$c   \      C€  s‰  | |  _  t | d ƒ �\|  _ d |  _ g  |  _ i  |  _ i  |  _ i  |  _ i  |  _ d |  _	 d |  _
 |  j d ƒ d |  _ |  j ƒ  |  j d ƒ |  j d ƒ |  j ƒ  } |  j ƒ  } |  j d ƒ |  j d ƒ |  j ƒ  } |  j ƒ  } } |  j d ƒ |  j d ƒ |  j ƒ  } |  j d	 ƒ }	 |  j d
 ƒ |  j ƒ  }
 d } d } xó t |
 ƒ D]å } |  j ƒ  } |  j ƒ  } |  j ƒ  } |  j } | d k rÙ| d k rÙ|  j |	 | ƒ } | d k rÙ| sÒ|	 | } n  PqÙn  | d k rñ| d k sý| d k r-|  j |	 | ƒ } | d k r-|	 | } Pq-n  |  j | ƒ qUW| rd| rdt d |  j  d ƒ n  i  } i  } | rŒ|  j | | | ƒ n |  j | | | ƒ | |  _ d } |  j | | | | ƒ |  j | | ƒ d0 g } i  } x| | D]t } | |  j k rI|  j | | f | k r5| j |  j | | f ƒ n  |  j | | | <n  t |  j | ƒ |  _ qêW|  j d ƒ \ } } | j ƒ  i  } d } d } x7 | D]/ \ } } t | | ƒ } | | | <| d 7} qšWi  }  x. t | j ƒ  ƒ D] \ } } | | |  | <qæW|  |  _ x? | D]7 \ } } i | d 6| d 6| d 6}! |  j  | |! ƒ qWt! | ƒ } } d g }" x' |" D] }# |  j" |# |  j# |# ƒ ƒ qoWd d d d g }" x9 |" D]1 }# |# |  j k r«|  j" |# |  j# |# ƒ ƒ q«q«W|  j# d ƒ }$ t$ d ƒ t% |$ d d ƒ t$ d ƒ }% |  j" d |% ƒ d |  k r;|  d =n  d }& i  }' d }( d }) x� t |  j ƒ  ƒ D]m \ }* }+ |* |( d k r¦|+ |) d k r¦|' |& j |+ ƒ n! |* }& g  |' |& <|' |& j |+ ƒ |* }( |+ }) qfWt! |' ƒ d }, d }- d }. x( |- d
 |, k r|- d
 }- |. d }. qöW|- d
 }- |, d
 |- }/ d d  |, | d }0 d d d d d d d |0 d |, d
 |- |. |/ g }1 t |' j ƒ  ƒ }' x5 |' D]- \ } }2 | t! |2 ƒ d }3 |1 j |3 ƒ q–W|1 j d! ƒ |1 j d ƒ x! |' D] \ } }2 |1 j | ƒ qèW|1 j d! ƒ x@ |' D]8 \ } }2 | |2 d }4 | t& |2 ƒ 7} |1 j |4 ƒ qW|1 j d ƒ x |' D] }2 |1 j d ƒ qiW|1 j d ƒ x! |' D] \ }2 }+ |1 j' |+ ƒ q”W|1 j d ƒ t$ d" ƒ }5 xv |1 D]n }6 |6 d k rù|5 t( d# |6 ƒ 7}5 qÑy |5 t( d$ |6 ƒ 7}5 WqÑt) j* d% |6 ƒ |5 t( d# |6 ƒ 7}5 qÑXqÑW|  j" d	 |5 ƒ |  j d ƒ \ }7 }8 |8 |  j+ k  r‰|  j# d ƒ }9 n  g  }: t$ d" ƒ }; d }< t$ d" ƒ }= d }> d }? d }@ d }A d }B d }C d }D d }E d }F d }G d }H d }I d }J d }K i  |  _, xð| D]è\ } } |  j- | | ƒ }L |= |L 7}= |: j |< ƒ y& |  j | }M |  j | d |M }N Wn( t. k
 r–	t) j* d& | ƒ d }N n X|8 |  j+ k  r»	t% |9 |M |N ƒ }O n1 |N d k rà	|  j/ |7 |M |N ƒ }O n t$ d" ƒ }O |N d k r
t0 d# t% |O d d
 ƒ ƒ d }P n  |N d
 k r¡|P d1 @r¡d }Q t1 }R d }S xJ|R t1 @rŽ|S d 7}S t0 d# t% |O |Q d
 ƒ ƒ }P |P d }R t0 d# t% |O |Q d
 d
 ƒ ƒ }P |P d }T |  j, j2 | i  ƒ j2 d( g  ƒ j |T ƒ y! |  j3 |O |Q d
 | |T ƒ }O Wn( t4 k
 rd }O t) j* d) |T ƒ n X|Q d 7}Q |R t5 @r<|Q d 7}Q n
 |Q d
 7}Q |R t6 @r]|Q d
 7}Q qE
|R t7 @rt|Q d 7}Q qE
|R t8 @rE
|Q d  7}Q qE
qE
Wt |J |S ƒ }J n  |; |O 7}; |< |N 7}< |< d d k r	d |< d }U |; t9 t$ d* ƒ |U ƒ 7}; |< |U 7}< q	q	W|: j |< ƒ |  j" d |; ƒ |  j" d+ |= ƒ t$ d" ƒ }V |< d d ?d! k rwd } xR |: D] } |V t( d, | ƒ 7}V qWWn. d } x% |: D] } |V t( d# | d
 ƒ 7}V q„W|  j" d- |V ƒ |  j# d ƒ }W |  j3 |W d | ƒ }W |  j" d |W ƒ |  j# d ƒ }X |  j3 |X d. | ƒ }X |  j" d |X ƒ |  j# d ƒ }Y |  j3 |Y d | ƒ }Y |  j" d |Y ƒ |  j# d/ ƒ }Z |  j" d/ |Z ƒ Wd  QX|  j: d" ƒ }[ |[ S(2   NR!   i    i   R]   i2   Rd   i    Rf   Rg   i   i   i
   i   i   s   Font (s‘   ) does not have cmap for Unicode (platform 3, encoding 1, format 4, or platform 3, encoding 10, format 12, or platform 0, any encoding, format 4)t   glyft   startt   glyphSett   subsetglyphsR`   s   cvt t   fpgmt   prept   gaspRe   t      t                   iþÿÿÿiÿÿÿÿi   i   iÿÿ  RZ   s   >Hs   >hs   cmap value too big/small: %ss   missing glyph %si   t
   compGlyphss   missing glyph data %sR   t   hmtxs   >Lt   locai"   s   OS/2(   i    i    i €  (;   R"   R#   R$   R%   R&   R'   R(   R)   R*   R+   R,   RD   t   maxUniR1   RG   R9   R   R.   RO   RA   R   R�   R‚   Rƒ   t   getLOCAt   appendt   maxR@   t   sortt   sortedt   itemst   codeToGlypht	   getGlyphsR   R_   R\   R
   R   R	   t   extendR   t   warningst   warnR   t	   glyphdatat
   getHMetrict
   IndexErrorR[   R   t   GF_MOREt
   setdefaultRX   t   KeyErrort   GF_WORDSt   GF_SCALEt
   GF_XYSCALEt   GF_TWOBYTWOR   t	   endTTFile(\   R   R3   t   subsetR˜   R™   R€   t   orignHmetricsR¤   R¥   R¦   R§   R¨   R©   R   Rª   R«   R7   R¬   R…   R­   R(   R“   R±   t   subsetCharToGlypht   codeR¯   t   dummyR°   t   nt   fsLastCharIndext   originalGlyphIdxt   uniRÁ   t	   nonlocalst   tagsR5   t   opostRe   t   rangeidt   range_t   prevcidt	   prevglidxt   cidt   glidxt   segCountR;   R<   R=   R8   Rg   t   subranget   endCodet   idDeltat   cmapstrt   cmt
   glyfOffsett
   glyfLengtht	   glyphDatat   offsetsR®   RB   t   hmtxstrt   xMinTt   yMinTt   xMaxTt   yMaxTt   advanceWidthMaxt   minLeftSideBearingt   minRightSideBearingt
   xMaxExtentt	   maxPointst   maxContourst   maxComponentPointst   maxComponentContourst   maxComponentElementst   maxComponentDeptht   hmR'   t   glyphLenR   RW   t   pos_in_glyphR   t   nComponentElementst   glyphIdxt   paddingt   locastrR]   Rd   Rf   t   os2t   stm(    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyt
   makeSubsetÊ  sö   										
	$
		

	
	 &
 



			

"


(!







c         C€  sÙ   | d c d 7<t  | d | d ƒ | d <t |  j | d ƒ rq x€ |  j | d D] } |  j | | ƒ qT WnT |  j | d d k rÅ | d d k rÅ | |  j | d 7} | |  j | d 7} n  | d c d 8<d  S(   Nt   depthi   t   maxdepthR·   t	   nContoursi    t   nPoints(   R½   R   RÆ   t   getGlyphData(   R   RØ   RÚ   R   t   contourst   points(    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyR
  &  s    'c   	      C€  s©  y& |  j  | } |  j  | d | } Wn# t k
 rK t j d | ƒ d  SX| sV d  S|  j | d | ƒ |  j ƒ  } | d k  r¥|  j d ƒ t } x| t @r¡|  j ƒ  } |  j ƒ  } | | d k rý t	 | d ƒ | d | <| d j
 | d f ƒ n  |  j j ƒ  } |  j | | ƒ |  j | ƒ | t @rC|  j d ƒ n |  j d	 ƒ | t @rj|  j d	 ƒ q™ | t @r„|  j d ƒ q™ | t @r™ |  j d ƒ q™ q™ Wn  d  S(
   Ni   s   missing glyph %sR¯   i    i   R°   R±   i   i   (   R'   RÈ   RÄ   RÅ   RA   RM   RD   RÉ   R9   R   R¼   R$   t   tellRÂ   RÌ   RÍ   RÎ   RÏ   (	   R   RØ   RÚ   R'   Rý   t   numberOfContoursR   R   t   savepos(    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyRÂ   7  s>    



c         €  s  ˆ  j  d ƒ } d } g  ˆ  _ ‡  f d †  } d } | d ˆ  j k  r| ˆ  j | | d ƒ }	 t d t |	 ƒ d |	 ƒ }
 n ˆ  j | ƒ xLt | ƒ D]>} | d ˆ  j k  rÀ |
 | d } n ˆ  j ƒ  } ˆ  j ƒ  } | | k sð | d k r– | d k rd } n  | d k r$| | ˆ  _	 q– n  x­ | | D]ž } | d k r/| d	 k r/t
 t | | d
 ƒ ƒ } | d k r|d	 } n  | d k  rÍ| t ˆ  j ƒ k r°| | ˆ  j	 ƒ n  | ˆ  j | <| d 7} qÍq/q/Wq– q– Wˆ  j | | d | d ƒ }	 t d t |	 ƒ d |	 ƒ }
 | | } xÚ t | ƒ D]Ì } | | } | | k r*x­ | | D]ž } | d k rQ| d	 k rQt
 t | | d
 ƒ ƒ } | d k ržd	 } n  | d k  rï| t ˆ  j ƒ k rÒ| | ˆ  j	 ƒ n  | ˆ  j | <| d 7} qïqQqQWq*q*W| ˆ  j d <d  S(   NR¸   i    c         €  sR   |  d d d d }  |  t  ˆ  j ƒ } | d k rN ˆ  j | g | 7_ n  d  S(   Ni   i   i    (   R   R&   (   t   sizet   defaultRC   (   R   (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyt	   resize_cwd  s    i   s   >%dHi   i   i   iÿÿ  gü©ñÒMbP?i   i €  (   RG   R&   R   R[   R   R   RA   R   R9   t   defaultWidthRy   t   round(   R   R¤   R¥   R­   R“   R¯   t   awR  t   nCharWidthsR   t   arrt   glypht   lsbR‘   t   wt   diffRB   (    (   R   s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyRƒ   `  s^    	 	 	

 	c         C€  s§   |  j  d ƒ } | | k  rE |  j | | d ƒ |  j j d ƒ } n^ |  j | | d d ƒ |  j j d ƒ } |  j | | d | d ƒ | |  j j d ƒ 7} | S(   NR¸   i   i   i   (   RG   RA   R$   RI   (   R   R¤   t   gidR¯   Rü   (    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyRÇ   Ÿ  s    c         C€  s  |  j  d ƒ } g  |  _ | d k r� |  j | | d d ƒ } t d t | ƒ d | ƒ } x® t | ƒ D] } |  j j | | d ƒ qh Wn | d k rþ |  j | | d d ƒ } t d t | ƒ d | ƒ } x9 t | ƒ D] } |  j j | | ƒ qÝ Wn t d | ƒ d  S(	   NR¹   i    i   s   >%dHi   i   s   >%dLs   Unknown location table format (   RG   R'   R[   R   R   R   R¼   R   (   R   R˜   R¥   R¯   R   R  RÖ   (    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyR»   ¬  s    	c         C€  sW  d |  _  |  j | d ƒ |  j ƒ  } | | } |  j d ƒ |  j ƒ  d } |  j d ƒ g  } x' t | ƒ D] } | j |  j ƒ  ƒ qm W|  j d ƒ g  }	 x' t | ƒ D] } |	 j |  j ƒ  ƒ qª Wg  }
 x' t | ƒ D] } |
 j |  j ƒ  ƒ qÚ W|  j } g  } x' t | ƒ D] } | j |  j ƒ  ƒ qWx t | ƒ D]} | | d } xû t |	 | | d ƒ D]ã } | | d k r“| |
 | d @} nq | |	 | d | | } | d | | } | | k rÔd } n0 |  j | ƒ } | d k r| |
 | d @} n  | | | <| d k  r2t	 | |  j  ƒ |  _  n  | j
 | g  ƒ j | ƒ qhWq=Wd  S(   Ni    i   i   i   iÿÿ  i   (   t
   maxUniCharRA   R9   RD   R   R¼   RM   R%   RO   R½   RÊ   (   R   R¨   R­   R(   R8   t   limitRã   t   endCountR   t
   startCountRæ   t   idRangeOffset_startt   idRangeOffsetRÖ   t   endpointt   unicharR  R7   (    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyR‚   ½  sJ    	
		
c         C€  s  d |  _  |  j | d ƒ |  j d ƒ |  j ƒ  } |  j d ƒ |  j ƒ  } d | d d | k rq t d ƒ n  x§ t | ƒ D]™ } |  j ƒ  } |  j ƒ  } |  j ƒ  }	 xl t | | d ƒ D]W }
 |	 | |
 <|
 d k  rð t |
 |  j  ƒ |  _  n  | j |	 g  ƒ j |
 ƒ |	 d 7}	 q¼ Wq~ Wd  S(   Ni    i   i   i   s"   TTF format 12 cmap table too smalli   i   i   i   i   i   (	   R  RA   RD   R.   R   R   R½   RÊ   R¼   (   R   R¨   R­   R(   R8   t   grpCountRÖ   t   startCharCodet   endCharCodeR  R$  (    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyR�   ê  s$    	
c         C€  s  t  d ƒ } t |  j ƒ } d } d } x( | d | k rQ | d } | d } q* W| d } | d | } t r’ | t d d | | | | ƒ 7} n | t d d | | | | ƒ 7} |  j } d	 | d } t | j ƒ  ƒ } x  | D]˜ \ }	 }
 |	 d
 k r| } n  | |	 j d ƒ 7} t |
 ƒ } | t d | d | d ƒ 7} | t d | t	 |
 ƒ ƒ 7} t	 |
 ƒ d d @} | | } qá WxD | D]< \ }	 }
 |
 t  d ƒ 7}
 | t
 |
 d t	 |
 ƒ d @ƒ 7} q„Wt | ƒ } t d | ƒ } t d | d | d ƒ } |  j | | d | ƒ } | S(   NRZ   i   i    i   i   s   >LHHHHieurti   i   R]   RH   s   >HHs   >LLi   t      i°±  iº¯  i   iüÿÿÿiüÿÿÿ(   i°±  iº¯  (   R
   R	   R*   t   _TTF_MAC_HEADERR   R¿   RÀ   t   encodeR   R   R   R   RV   (   R   R  R:   R;   R<   R=   R)   R7   t   sorted_tablesR5   R   t
   head_startR6   t   paddedLengtht   chk(    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyRÐ     s@    

"		$(!   t   __name__t
   __module__R    R4   R1   R@   RA   RD   RG   R>   RM   RN   R9   R.   RO   RP   RS   RV   RX   RY   R[   R\   R_   R2   R  R
  RÂ   Rƒ   RÇ   R»   R‚   R�   RÐ   (    (    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyR   I   s@   																				
	ñ	ÿ ]		)	?			-	i   i   i    i@   i€   (    (   t
   __future__R    t   structR   R   R   Rm   RÄ   t   phpR   R   R   R   R   R	   t   py3kR
   R   t   FalseR)  RÌ   RÍ   RÉ   RÎ   RÏ   R   R   R   (    (    (    s)   /var/www/ficnx/bin/pyfpdf/fpdf/ttfonts.pyt   <module>   s   .		