
    '	4j17                    N   d Z ddlZddlZddlZddlmZ ddlmZ ddlm	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mZmZmZmZmZmZ ddlmZ ddlmZ ddlm Z  	 ddl!Z" G d de"jF                        Z$ddl&m'Z' ddl(m)Z)m*Z*m+Z+m,Z, ddl-m.Z.m/Z/m0Z0 ddl1m2Z2 ddl3m4Z4m5Z5 ddl6m7Z7 er'ddl8m9Z9  G d de      Z: G d de      Z; G d de      Z< ejz                  e>      Z?e G d d             Z@ G d  d!e@      ZA G d" d#eA      ZBd#d$iZC G d% d&      ZD G d' d(      ZE G d) d*e5      ZF ed+,       G d- d.             ZG G d/ d0      ZHd1d2d3d4d5d6d7d8d9d:d;d<d=d>d?ZI eJd@      D  ci c]  }  eK|       dA c} ZLeLeLeLeLdBZMi dCdDdEdDdFdDdGdDdHdDdIdDdJdDdKdDdLdDdMdDdNdDdOdDdPdDdQdDdRdDdSdDdTdDi dUdDdVdDdWdDdXdDdYdDdZdDd[dDd\dDd]dDd^dDd_dDd`dDdadDdbdDdcdDdddDdedDi dfdgdhdidjdidkdldmdndodpdqdrdsdrdtdudvdwdxdDdydrdzdDd{dDd|did}did~dii ddiddiddiddiddiddiddiddDddDddwddwddwddiddddnddnddi ddddnddddddddDddddnddiddddddddnddddddnddi ddddnddddnddnddddDddDddDddddiddrddiddiddddiddii ddDddiddiddddddddddddiddiddiddiddrddddDddiddi ddddddddddѓddӓddѓddwddדddiddדddddiddrddޓddiddii ddrddޓddnddrddޓddדddddדddדddddddrddrddדddiddޓddri ddޓddddrddddדddddnddDddrddiddiddiddiddӓd diddrddi ddddiddwddrd	dd
drddddwddrddrddrddiddddDddrddrddi ddiddddddddddnd dnd!dnd"dnd#dnd$dnd%dޓd&dd'dnd(dnd)dnd*dni d+dDd,dDd-dDd.dDd/dd0dd1dd2dd3dd4dd5dd6dwd7dd8dd9dd:dd;di d<dnd=dnd>dd?did@didAdidBdidCdidDdidEdldFddGdidHdidIdidJdidKdDdLdDi dMdDdNdDdOdidPdidQdidRdidSdidTdidUdidVdwdWddXdidYdidZdid[did\dd]did^dieMd_<   i dCdDdEdDdFdDdGdDdHdDdIdDdJdDdKdDdLdDdMdDdNdDdOdDdPdDdQdDdRdDdSdDdTdDi dUdDdVdDdWdDdXdDdYdDdZdDd[dDd\dDd]dDd^dDd_dDd`dDdadDdbdDdcdDdddDdedri dfd`dhdidjdidkdldmddodadqdrdsdrdtdudvdwdxdDdydrdzdDd{dDd|did}did~dii ddiddiddiddiddiddiddiddrddrddwddwddwddddbddddddi ddddnddddddddDddiddddddddddddnddddddnddi ddddnddddnddnddddrddDddrddwddiddrddiddddiddddii ddrddddddDddDddiddDddldddddddddduddiddrddddii ddddiddiddddudҐdcdduddwddדddiddדddDddiddddޓddiddii ddrddޓddnddrddޓddדddddדddדddDddDddddddדddiddޓddri ddޓddiddrddddדddddnddDddrddiddiddiddiddcd diddrddi ddddiddwddrd	dd
drddddwddrddrddrddddiddDddrddrddi ddiddddddddddd dd!dd"dd#dd$dd%dޓd&dd'dnd(dnd)dnd*dni d+dDd,dDd-dDd.dDd/dd0dd1dd2dd3dd4dd5dd6dwd7dd8dd9dd:dd;di d<dnd=dnd>dd?did@didAdidBdidCdidDdidEdldFdidGdidHdidIdidJdidKdDdLdDi dMdDdNdDdOddPddQddRddSddTddUddVdwdWddXddYddZdd[dd\did]dd^diieMdd<   i dCdDdEdDdFdDdGdDdHdDdIdDdJdDdKdDdLdDdMdDdNdDdOdDdPdDdQdDdRdDdSdDdTdDi dUdDdVdDdWdDdXdDdYdDdZdDd[dDd\dDd]dDd^dDd_dDd`dDdadDdbdDdcdDdddDdedri dfd`dhdidjdidkdldmddodadqdrdsdrdtdudvdwdxdDdydrdzdDd{dDd|did}did~dii ddiddiddiddiddiddiddiddrddrddwddwddwddddbddddddi ddddnddddddddDddiddddddddddddnddddddnddi ddddnddddnddnddddrddDddrddwddiddrddiddddiddddii ddrddddddDddDddiddDddldddddddddduddiddrddddii ddddiddiddddudҐdcdduddwddדddiddדddDddiddddޓddiddii ddrddޓddnddrddޓddדddddדddדddDddDddddddדddiddޓddri ddޓddiddrddddדddddnddDddrddiddiddiddiddcd diddrddi ddddiddwddrd	dd
drddddwddrddrddrddddiddDddrddrddi ddiddddddddddd dd!dd"dd#dd$dd%dޓd&dd'dnd(dnd)dnd*dni d+dDd,dDd-dDd.dDd/dd0dd1dd2dd3dd4dd5dd6dwd7dd8dd9dd:dd;di d<dnd=dnd>dd?did@didAdidBdidCdidDdidEdldFdidGdidHdidIdidJdidKdDdLdDi dMdDdNdDdOddPddQddRddSddTddUddVdwdWddXddYddZdd[dd\did]dd^diieMde<   i dCdDdEdDdFdDdGdDdHdDdIdDdJdDdKdDdLdDdMdDdNdDdOdDdPdDdQdDdRdDdSdDdTdDi dUdDdVdDdWdDdXdDdYdDdZdDd[dDd\dDd]dDd^dDd_dDd`dDdadDdbdDdcdDdddDdedDi dfdgdhdidjdidkdldmdndodpdqdrdsdrdtdudvdwdxdDdydrdzdDd{dDd|did}did~dii ddiddiddiddiddiddiddiddDddDddwddwddwddiddddnddnddi ddddnddddddddDddddnddiddddddddnddddddnddi ddddnddddnddnddddDddDddDddddiddrddiddiddddiddii ddDddiddiddddddddddddiddiddiddiddrddddDddiddi ddddddddddѓddӓddѓddwddדddiddדddddiddrddޓddiddii ddrddޓddnddrddޓddדddddדddדddddddrddrddדddiddޓddri ddޓddddrddddדddddnddDddrddiddiddiddiddӓd diddrddi ddddiddwddrd	dd
drddddwddrddrddrddiddddDddrddrddi ddiddddddddddnd dnd!dnd"dnd#dnd$dnd%dޓd&dd'dnd(dnd)dnd*dni d+dDd,dDd-dDd.dDd/dd0dd1dd2dd3dd4dd5dd6dwd7dd8dd9dd:dd;di d<dnd=dnd>dd?did@didAdidBdidCdidDdidEdldFddGdidHdidIdidJdidKdDdLdDi dMdDdNdDdOdidPdidQdidRdidSdidTdidUdidVdwdWddXdidYdidZdid[did\dd]did^dieMdf<   i dCdgdEdgdFdgdGdgdHdgdIdgdJdgdKdgdLdgdMdgdNdgdOdgdPdgdQdgdRdgdSdgdTdgi dUdgdVdgdWdgdXdgdYdgdZdgd[dgd\dgd]dgd^dgd_dgd`dgdadgdbdgdcdgdddgdedri dfdhdhddjdidkddmddodjdqdrdsdrdtddvdidxdgdydidzdgd{dDd|dd}dd~di ddddddddddddddddDddDddiddiddiddkddiddddnddi ddlddddmddnddddrddoddddpddlddddddqddrddiddsddi ddtddjddqdduddvddddrddwddrddxddddddoddiddiddyddji ddzdd{ddndd|ddnddiddidd}dÐdzdĐdidŐdidƐdzdǐdidȐdndɐdjdʐd}dːdhi d̐dpd͐d~dΐdpdϐdydАddҐddԐddՐdiddddddddddddddddddi ddddddddddddddddddddddddddddddddddi ddddddddddddddddddddddiddddhddd dddddi ddddddddnd	dd
dnddddidd{ddiddiddhddyddddiddiddii ddiddޓddnddޓddxddd dpd!dvd"dd#dqd$dqd%dd&dqd'dqd(dhd)dhd*dhi d+dhd,dhd-dhd.dhd/dqd0dhd1dd2dd3dd4dd5did6dgd7dhd8dnd9dnd:dd;di d<dnd=dd>dnd?dyd@d|dAddBddCddDdhdEddFddGddHddIddJddKdydLdyi dMdydNdydOddPd|dQddRdpdSdpdTdpdUddVddWddXddYddZdd[dyd\dyd]dyd^dieMd<   i dCdgdEdgdFdgdGdgdHdgdIdgdJdgdKdgdLdgdMdgdNdgdOdgdPdgdQdgdRdgdSdgdTdgi dUdgdVdgdWdgdXdgdYdgdZdgd[dgd\dgd]dgd^dgd_dgd`dgdadgdbdgdcdgdddgdedri dfddhddjddkddmddoddqdrdsdrdtddvddxdgdydrdzdgd{dDd|dd}dd~di ddddddddddddddddDddDddddddddkddddddnddni ddddddiddddddrdduddddddlddddddiddddnddiddi ddddddddddddddrddDddrddddddrddkddddkddddki ddrddddddDddDddddDddddddddddddrdduddDddddi dddddddϐdkdАddҐddԐddՐdddדddddדddrdddܐdkddޓddddi ddrddޓddiddrddlddדddddדddדddrddrddkddkddדddddޓddri dddduddrddddדddkddddgddrddddddddddd dddrddi ddddddddrd	dd
drddddddddddrddddddgddrddddi ddddddddddkddd dd!dd"dd#dd$dd%dld&dnd'dd(dd)dd*di d+drd,drd-drd.drd/dd0dd1dd2dd3dd4dd5dd6dd7dd8dd9dd:dd;di d<dd=did>dd?dkd@dkdAdkdBdkdCdkdDdkdEdndFdkdGdkdHdkdIdkdJdkdKdDdLdDi dMdDdNdDdOddPddQddRddSddTddUddVddWddXddYddZdd[dd\dd]dd^dieMd<   i dCdgdEdgdFdgdGdgdHdgdIdgdJdgdKdgdLdgdMdgdNdgdOdgdPdgdQdgdRdgdSdgdTdgi dUdgdVdgdWdgdXdgdYdgdZdgd[dgd\dgd]dgd^dgd_dgd`dgdadgdbdgdcdgdddgdedri dfddhddjddkdޓdmddodDdqdrdsdrdtddvddxdgdydrdzdgd{dDd|dd}dd~di ddddddddddddddddrddrddddddddddddddnddi ddddndddddddduddddddnddddddddddddddiddni ddddddޓddddddnddrddDddrddddddrddddiddkddiddki ddrddddiddDddrddiddDddddiddddiddidǐdkdduddrddiddi dddddddϐdkdАddҐddԐddՐdddדddddדddrddddddޓddddi ddrddޓddiddrddޓddדddnddדddדddrddrddddddדddddޓddri ddޓdduddrddddדddkddddgddrddddddddddd dddrddi ddddddddrd	dd
drddddddddddrddiddddgddrddddi ddddddddddddd dd!dd"dd#dd$dd%dޓd&dd'dnd(dnd)dnd*dni d+dud,dud-dud.dud/dd0dd1dd2dd3dd4dd5dd6dd7dd8dd9dd:dd;di d<dd=dd>did?dd@ddAddBddCddDddEddFdkdGdkdHdkdIdkdJdkdKdDdLdDi dMdDdNdDdOddPdidQddRddSddTddUddVddWddXdidYdidZdid[did\dd]did^dieMd<   i dCdgdEdgdFdgdGdgdHdgdIdgdJdgdKdgdLdgdMdgdNdgdOdgdPdgdQdgdRdgdSdgdTdgi dUdgdVdgdWdgdXdgdYdgdZdgd[dgd\dgd]dgd^dgd_dgd`dgdadgdbdgdcdgdddgdedui dfddhddjddkddmddodDdqdrdsdrdtddvddxdgdydrdzdgd{dDd|dd}dd~di ddddddddddddddddrddrddddddddddddnddnddni ddddnddndddddduddddnddddlddddddddddnddiddi ddddnddlddnddddddrddDddrddddddrddddddkddddki ddrddddiddDddDddddDddddiddddddddudduddDddidːdki ddndddΐdkddudАddҐddԐddՐdddדddddדddrddddddޓddddi ddrddޓddiddrddddדddddדddדddrddrddddddדddddޓddri ddޓdduddrddddדdduddddgdduddddddddddd dddrddi ddddddddrd	dd
drddddddddddrdd}ddddgddrddddi ddddddddddddnd dnd!dnd"dnd#dnd$dnd%dd&dnd'dnd(dnd)dnd*dni d+dud,dud-dud.dud/dd0dd1dd2dd3dd4dd5dd6dd7dd8dd9dd:dd;di d<dd=dd>dd?dd@ddAddBddCddDddEddFdkdGdkdHdkdIdkdJdkdKdDdLdDi dMdDdNdDdOddPdidQddRddSddTddUddVddWddXdidYdidZdid[did\dkd]dd^dkieMd<   i dCdgdEdgdFdgdGdgdHdgdIdgdJdgdKdgdLdgdMdgdNdgdOdgdPdgdQdgdRdgdSdgdTdgi dUdgdVdgdWdgdXdgdYdgdZdgd[dgd\dgd]dgd^dgd_dgd`dgdadgdbdgdcdgdddgdedri dfddhddjddkddmddoddqdrdsdrdtddvddxdgdydrdzdgd{dDd|dd}dd~di ddddddddddddddddrddrddddddddddddddddni ddddddddddddrddkddnddiddddnddddddddddddii ddddddddddiddidduddDdduddddddrddddddkddddki ddDddddddDddDddkddDddddddddddddudduddDdddːdki ddnd͐dkdΐdkddudАddҐddԐddՐdddדddddדddrddddiddlddddi ddrddޓddddrddddדddiddדddדddrddrddiddiddדddddlddri dddduddrddnddדdduddiddgdduddddddddddd dddrddi ddddddddrd	dd
drddddddddddrddddddgddrddddi ddddddddddddd dd!dd"dd#dd$dd%dld&dnd'dd(dd)dd*di d+drd,drd-drd.drd/dd0dnd1dd2dd3dd4dd5dd6dd7dd8dd9dd:dd;di d<did=dd>dd?dd@ddAddBddCddDddEdndFdkdGdkdHdkdIdkdJdkdKdDdLdDi dMdDdNdDdOddPddQddRddSddTddUddVddWddXddYddZdd[dd\dkd]dd^dkieMd<   i dCddEddFddGddHddIddJddKddLddMddNddOddPddQddRddSddTdi dUddVddWddXddYddZdd[dd\dd]dd^dd_dd`ddaddbddcddddDdedi dfddhddjddkddmddoddqddsdtdtddvddxdidyddzdd{dd|dd}dd~di ddddddddddÓddēddmddddœddƓddyddǓddddȓddɓddddʓi ddʓdddd˓dd̓dd͓ddddddΓdddddd͓ddϓddГddѓddғddӓddi ddԓddՓdd֓ddqddԓddœddדddؓddٓddړddۓddܓddddddדddݓddޓi ddߓddddddhdddddddddÐddĐddŐddƐdœdǐdœdȐddɐddʐdʓdːdi d̐dd͐ddΐddϐddАddҐddԐddՐddddؐddِddڐddېddܐddݐddߐdddi ddddddddddѓddѓddddddddddddddddddddddi ddddddddddddddddddddddddddnddd ddd֓ddi ddddddʓddʓd	dʓd
dʓddʓddʓddʓddʓddʓddʓddʓddʓddʓddʓddʓi ddʓddʓddʓddʓddʓddʓd dʓd!dʓd"dʓd#dʓd$dʓd%dʓd&dʓd'dʓd(dʓd)dʓd*dʓi d+dʓd,dʓd-dʓd.dʓd/dʓd0dʓd1dʓd2dʓd3dd4dd5dd6dd7dd8dd9dd:dd;di d<dd=dd>dd?dd@ddAddBddCd dDddEddFddGddHddIddJddKddLdޓi dMdޓdNddOddPddQddRddSddTd	dUddVd
dWddXd
dYdϓdZdd[dd\dd]dd^dieMd<   y# e%$ r dZ"Y &w xY wc c} w (  aw  
Font-related classes & constants.
Includes the definition of the character widths of all PDF standard fonts.

The contents of this module are internal to fpdf2, and not part of the public API.
They may change at any time without prior warning or any deprecation period,
in non-backward-compatible ways.

Usage documentation at: <https://py-pdf.github.io/fpdf2/Unicode.html>
    N)bisect_left)defaultdict)deepcopy)	dataclassreplace)cache)BytesIO)Path)TYPE_CHECKINGAnyIteratorOptionalProtocolSequenceUnion)ttLib)
TTGlyphPen)	instancerc                   :    e Zd ZU dZeed<   dd deeef   dd fdZ	y)HarfBuzzFontz%uharfbuzz.Font than can be deepcopiedptemselfmemoreturnc                     | S N )r   r   s     7/DATA/.local/lib/python3.12/site-packages/fpdf/fonts.py__deepcopy__zHarfBuzzFont.__deepcopy__1   s    K    N)
__name__
__module____qualname____doc__float__annotations__dictintr   r   r   r    r   r   r   +   s,    /	~ 	T#s(^ 	 	r    r      )get_stack_level)
DeviceCMYK
DeviceGray	DeviceRGBconvert_to_device_color)AlignFontDescriptorFlagsTextEmphasis)get_color_font_object)Name	PDFObjectescape_parens)FPDFc                   ,    e Zd ZU eed<   eed<   eed<   y)HBGlyphInfo	codepointclusterflagsN)r!   r"   r#   r(   r&   r   r   r    r   r9   r9   F   s    
r    r9   c                   N    e Zd ZU eeeeef   ed<   eed<   eed<   eed<   eed<   y)HBGlyphPositionposition	x_advance	y_advancex_offsety_offsetN)r!   r"   r#   tupler(   r&   r   r    r   r>   r>   K   s*    S#s*++r    r>   c            	       z    e Zd ZU eed<   ee   ed<   ee   ed<   eed<   eed<   eed<   	 ddeded	ed
dfdZ	ddZ
y)HBBuffer	directionglyph_infosglyph_positionslanguagescriptcluster_leveltextitem_offsetitem_lengthr   Nc                      y r   r   )r   rM   rN   rO   s       r   add_strzHBBuffer.add_strZ   s    r    c                      y r   r   r   s    r   guess_segment_propertiesz!HBBuffer.guess_segment_properties]   s    Cr    )r   r   N)r!   r"   r#   strr&   listr9   r>   r(   rQ   rT   r   r    r   rF   rF   R   s^    +&&o.. GI		*-	@C		 	8r    rF   c                   l   e Zd ZU dZdZee   ed<   ee   ed<   ee	   ed<   ee
eeef      ed<   ee
eeef      ed<   	 	 	 	 	 ddee   deeez  ez     dee	   deeez  ez  ez  e	z  ee	   z     deeez  ez  ez  e	z  ee	   z     f
d	ZeZ	 ed
ededefd       Zeded    ded    ded    fd       Zy)FontFacez
    Represent basic font styling properties.
    This is a subset of `fpdf.graphics_state.GraphicsStateMixin` properties.
    familyemphasissize_ptcolor
fill_colorr\   r]   r^   r_   r`   Nc                     || _         |d nt        j                  |      | _        || _        |d n
t        |      | _        |d | _        y t        |      | _        y r   )r\   r1   coercer]   r^   r.   r_   r`   )r   r\   r]   r^   r_   r`   s         r   __init__zFontFace.__init__z   s\      ( 0l6I6I(6S"]T0G0N
&D 	,CJ,O 	r    current_valueoverride_valuer   c                     || S |S )z;Override the current value if an override value is providedr   )rd   re   s     r   	_overridezFontFace._override   s     !/ 6}JNJr    default_styleoverride_stylec           
      ^   || S | |S t        |t              st        dt        |             t        | t              st        dt        |              t        t        j	                  | j
                  |j
                        t        j	                  | j                  |j                        t        j	                  | j                  |j                        t        j	                  | j                  |j                        t        j	                  | j                  |j                              S )a  
        Create a combined FontFace with all the supplied features of the two styles. When both
        the default and override styles provide a feature, prefer the override style.
        Override specified FontFace style features
        Override this FontFace's values with the values of `other`.
        Values of `other` that are None in this FontFace will be kept unchanged.
        zCannot combine FontFace with r[   )

isinstancerZ   	TypeErrortyperg   r\   r]   r^   r_   r`   )rh   ri   s     r   combinezFontFace.combine   s    !   !!.(3;D<P;QRSS-2;D<O;PQRR%%m&:&:N<Q<QR''&&'' &&}'<'<n>T>TU$$]%8%8.:N:NO))((.*C*C
 	
r    )NNNNN)r!   r"   r#   r$   	__slots__r   rW   r&   r1   r%   r   r,   r-   r+   r(   r   rc   r   staticmethodr   rg   rn   r   r    r   rZ   rZ   c   s   
I SM|$$ e_E*i;<==z9j@ABB !%7;#'  

 <#-34
 %	

 
"Z/#5=O

 
"Z/#5=O

( G
 K Kc Kc K K 

+
=Ej=Q
	*	
 
r    rZ   c                   l    e Zd ZdZ	 	 	 	 	 	 	 	 	 ddee   deeez     dee   deeeee	e   e
eef      deeee	e   e
eef      ded	ee   d
eeez  ez     dee   ddf fdZdef fdZ	 	 	 	 	 	 	 	 ddee   dee   dee   dee
ez  ez     dee
ez  ez     d	ee   d
eeez     dee   dd fdZ xZS )	TextStylezU
    Subclass of `FontFace` that allows to specify vertical & horizontal spacing
    Nfont_family
font_stylefont_size_ptr_   r`   	underlinet_marginl_marginb_marginr   c
                 <   t        |t              r|j                  }t        
|   ||r	|xs ddz   n||||       |xs d| _        t        |t        t        f      rt        |      | _        n$|rt        j                  |      | _        nd| _        |	xs d| _        y )N Ur   )rk   r1   stylesuperrc   rw   r(   r%   rx   r/   rb   ry   )r   rs   rt   ru   r_   r`   rv   rw   rx   ry   	__class__s             r   rc   zTextStyle.__init__   s    " j,/#))J*3jB#%	
 !Ahe-5:8_DM!LL2DMDM Ar    c                 |    t         |          d d d| j                   d| j                   d| j                   dz   S )NrU   z, t_margin=z, l_margin=z, b_margin=))r~   __repr__rw   rx   ry   )r   r   s    r   r   zTextStyle.__repr__   sH    Gs#DMM?+dmm_KPTP]P]^_`a	
r    r]   c	          
      &   t        |xs | j                  || j                  n|j                  |xs | j                  |xs | j
                  |xs | j                  || j                  n||| j                  n||| j                        S |      S )z
        Create a new TextStyle instance, with new values for some attributes.
        Same as `dataclasses.replace()`
        )rs   rt   ru   r_   r`   rw   rx   ry   )
rr   r\   r]   r}   r^   r_   r`   rw   rx   ry   )	r   rs   r]   ru   r_   r`   rw   rx   ry   s	            r   r   zTextStyle.replace   s      #2t{{(0(8t}}hnn%5%4::!4T__&.&6T]]H&.&6T]]H&.&6T]]	
 		
 =E	
 		
r    )	NNNNNFNNN)NNNNNNNN)r!   r"   r#   r$   r   rW   r1   r%   r   r   r,   r-   r+   boolr/   rc   r   r   __classcell__r   s   @r   rr   rr      s    &*37(,  $(26$(#&c]#& S</0	#&
 uo#& #uhuoz9jPQ
#& %%*iKL
#& #& 5/#& 55=3./#& 5/#&  
!#&J
# 
 &*+/(,?CDH$(,0$(
 c]
 <(	

 uo
 
Y.;<
 Z)3j@A
 5/
 55=)
 5/
 

r    rr   c                   ,     e Zd Zdededdf fdZ xZS )
TitleStyleargskwargsr   Nc                 l    t        j                  dt        t                      t	        |   |i | y )NzRfpdf.TitleStyle is deprecated since 2.8.0. It has been replaced by fpdf.TextStyle.)
stacklevel)warningswarnDeprecationWarningr*   r~   rc   )r   r   r   r   s      r   rc   zTitleStyle.__init__  s3    ; &(	
 	$)&)r    )r!   r"   r#   r   rc   r   r   s   @r   r   r     s"    	*c 	*S 	*T 	* 	*r    r   Fc            
       v    e Zd ZdZdedededdfdZded	ed
ee	ee
f      deeef   fdZdedefdZdefdZy)CoreFont)
irm   namespssuputcwfontkeyr]   r   r   r}   r   Nc                     || _         d| _        t        |   | _        d| _        d| _        d| _        d| _        t        |   | _	        || _
        t        j                  |      | _        y )Ncore   2   i)r   rm   
CORE_FONTSr   r   r   r   r   CORE_FONTS_CHARWIDTHSr   r   r1   rb   r]   )r   r   r   r}   s       r   rc   zCoreFont.__init__&  s]    	w'	'0$++E2r    rM   ru   _c                 N     t        |      t         fd|D              |z  dz  fS )Nc              3   <   K   | ]  }j                   |     y wr   )r   .0cr   s     r   	<genexpr>z*CoreFont.get_text_width.<locals>.<genexpr>5  s     84atwwqz4s   MbP?)lensum)r   rM   ru   r   s   `   r   get_text_widthzCoreFont.get_text_width2  s)     D	38488<G%OPPr    c                      dt        |       dS )N() Tjr5   )r   rM   s     r   encode_textzCoreFont.encode_text9  s    =&'t,,r    c                 <    d| j                    d| j                   dS )NzCoreFont(i=
, fontkey=r   r   r   rS   s    r   r   zCoreFont.__repr__<  s    TVVHJt||nA>>r    )r!   r"   r#   ro   r(   rW   rc   r%   r   r'   r   rD   r   r   r   r   r    r   r   r     s    I
3# 
3 
3C 
3D 
3QQ',Q19$sCx.1IQ	sEz	Q- - -?# ?r    r   c                      e Zd ZdZ	 	 	 	 d!dddedededeee      d	ee	ee
f      d
ee   defdZed"d       ZdefdZdd de	eef   dd fdZd#dZde	eef   fdZdedefdZdedefdZdede
dee	eef      deee
f   fdZdede
dee	eef      deee
f   fdZdede
dee	eef      deed   ed   f   fdZdedefdZdede
dee	eef      dee	eef      fd Zy)$TTFFont)r   rm   r   desc	glyph_ids_hbfontr   r   r   r   r   ttffiler   r]   scalesubsetcmapttfontmissing_glyphsbiggest_size_pt
color_fontunicode_rangepalette_indexis_compressedis_cffis_cid_keyed	is_symbolcff_roscollection_font_numberNfpdfr7   font_file_pathr   r}   r   	axes_dictr   r   c	                    t        |j                        dz   | _        d| _        || _        t        | j                        j                         j                  d      | _        d | _	        || _
        d| _        || _        	 t        j                  | j                  d|d      | _        |Id
| j                  vrt%        | j                   d      t'        j(                  | j                  |dd       | j                  rd | j                  _        d| j                  v xs d| j                  v | _        d| _        d| _        d | _        | j,                  r	 d| j                  v rdnd}| j                  |   j4                  j6                  d   }t9        |dd       }|d u| _        |.t        |d         t        |d         t;        |d         f| _        tC        | j                  d   jD                        }d|z  | _#        d| j                  v rd| j                  d   vrtH        jK                  d| j                         | j                  d   jL                  | j                  d   jN                  | j                  d   jP                  | j                  d   jR                  f\  }}}}tU        | j                  d         }|jW                  ||f       |jY                  ||f       |jY                  ||f       |jY                  ||f       |j[                          |jW                  ||f       |jY                  ||f       |j[                          |jW                  ||f       |jY                  ||f       |j[                          |j]                         | j                  d   d<   ||z
  ||z
  f| j                  d   d<   t_        | jF                  | j                  d   j`                  d   d   z        | j                  d   }| j                  d   }	 |jb                  }tf        jh                  }|jj                  r|tf        jl                  z  }|jn                  dk7  r|tf        jp                  z  }|jr                  dk\  r|tf        jt                  z  }tw        t_        | j                  d   jd                  | jF                  z        t_        | j                  d   jx                  | jF                  z        t_        || jF                  z        |d| j                  d   jL                  | jF                  z  dd| j                  d   jP                  | jF                  z  dd| j                  d   jN                  | jF                  z  dd| j                  d   jR                  | jF                  z  dd	t;        |jn                        t_        dt;        t{        |jr                  d z  d            z         !      | _>        t        fd"      | _@        | j                  j                         | _B        | j                  s4| j                         | _B        | j                  rd| _        nt        d#      |Et        |      dk7  r7| j                  j                         D ci c]  \  }}||v r|| c}}| _B        i | _F        | j                  D ]  }| j                  |   }| j                  d   j`                  |   d   }|d$k(  rd}t_        | jF                  |z  d%z         | j                  |<   | j                  j                  |      | j                  |<    g | _H        t        j                  d&d'| j                  d(   j                               | _L        t_        |j                  | jF                  z        | _N        t_        |j                  | jF                  z        | _P        t_        |j                  | jF                  z        | _R        t_        |j                  | jF                  z        | _T        t        j                  |      | _W        t        |       | _Y        ||nd| _Z        |j                  rt        || | j                        | _]        y d | _]        y # t         t"        f$ rI}	t        | j                        j                         }
|
j                  d      rt#        d	|	      |	 d }	~	ww xY w# t<        t$        t>        t@        f$ r d| _        Y =w xY w# t$        $ r | j                  d   jd                  }Y w xY wc c}}w ))Nr)   TTF)z.woff.woff2r   FT)recalcTimestamp
fontNumberlazyr   zCould not open WOFF2 font. WOFF2 support requires an external Brotli library (install 'brotli' or 'brotlicffi'). Original error: fvarz is not a variable font)inplacestaticzCFF CFF2ROS   head  glyf.notdefzSTrueType Font '%s' is missing the '.notdef' glyph. Fallback glyph will be provided.hmtxzOS/2posthheaX  [z.0f ]r   A   )ascentdescent
cap_heightr<   
font_b_boxitalic_anglestem_vmissing_widthc                       S r   r   )default_widths   r   <lambda>z"TTFFont.__init__.<locals>.<lambda>   s    r    zQFont not supported. No unicode cmap and no support for this non-standard charset.i  r   z[ ()]r{   r   )^r   fontsr   rm   r   rW   lowerendswithr   r   r   r   r   r   TTFontr   ImportErrorRuntimeErrorAttributeErrorr   instantiateVariableFontflavorr   r   r   r   cfftopDictIndexgetattrr(   KeyError
IndexErrorrl   r%   
unitsPerEmr   LOGGERwarningxMinxMaxyMinyMaxr   moveTolineTo	closePathglyphroundmetrics
sCapHeightr   r0   SYMBOLICisFixedPitchFIXED_PITCHitalicAngleITALICusWeightClass
FORCE_BOLDPDFFontDescriptorr   powr   r   r   getBestCmapr   _build_symbol_cmapNotImplementedErroritemsr   
getGlyphIDr   resubgetBestFullNamer   underlinePositionr   underlineThicknessr   yStrikeoutPositionr   yStrikeoutSizer   r1   rb   r]   	SubsetMapr   r   render_color_fontsr2   r   )r   r   r   r   r}   r   r   r   r   exc	fname_str	cff_tabletop_dictrosupemr   r   r   r   pen	os2_table
post_tabler   r<   r:   glyph_idcharr  wr   s                                @r   rc   zTTFFont.__init__a  s<    TZZ1$	% .446??@ST15&'&<#	,, %1	DK.  T[[($~5L%MNN--	 !%DKK+Dv/D!7;;;*&,&;F	;;y155BB1Eht4$'tO!?$'AKSVc#a&k#JDL DKK/::; 4K

 dkk!;;v&' NN7  F#((F#((F#((F#((	&"D$d T[[01CJJd|$JJd|$JJd|$JJd|$MMOJJd|$JJd|$MMOJJd|$JJd|$MMO 		 KK tt.DKK	*
  %JJV,44Y?BB 
 KK'	[[(
	4"--J
 $,,""(444E!!Q&(///E""c)(333E%V,33djj@A$++f-55

BCZ$**45DKK',,tzz9#>aF@S@X@X[_[e[e@efi?jDKK',,tzz9#>aF@S@X@X[_[e[e@efi?jjkm Z334c#y'>'>'Ca"HIIJ'
	 %00E$F
 %)KK$;$;$=	yy//1DIyy!%)g  $]);q)@ ,099??+<+<'Ix- 8#+<DI IIDIIdOE F#++E215A Ez!$**q.5"89DGGDM#';;#9#9%#@DNN4   *,FF7BF(;(K(K(MN	
44tzzAB
55

BC	44tzzAB	004::=>$++E2o.;.G]Q && "$d.@.@A 	  	k 
 	 DLL)//1I!!(+"Sg 	
 	V 	 * %*!*z  	4V,33J	4VsD   (b A>c. d d>c+"Ac&&c+. dd"d;:d;r   c           	         | j                   s| j                  rt               }| j                  j	                  |       |j                  d       |j                         }	 t        j                  j                  |      }t        j                  || j                        }t3        |      | _         | j                   S t3        t        j                  t        j                  j)                  | j4                        | j                              | _         | j                   S # t        t        f$ r, dd l}dd l}d }	 |j!                  dd      5 }|j"                  }|j%                  |       |j'                          d d d        n# 1 sw Y   nxY wt        j                  t        j                  j)                  |      | j                        }|r	 |j+                  |       nt# t,        $ r!}	t.        j1                  d||	       Y d }	~	nOd }	~	ww xY w# |r@	 |j+                  |       w # t,        $ r!}	t.        j1                  d||	       Y d }	~	w d }	~	ww xY ww xY wY w xY w)Nr   )blobindexz.ttfF)suffixdeletezYFailed to clean up temporary font file '%s': %s. This may leave an orphaned file on disk.)r   r   r	   r   saveseekreadhbBlob
from_bytesFacer   r   r   tempfileosNamedTemporaryFiler   writeflushfrom_file_pathunlinkOSErrorr   r   r   r   )
r   bufttfont_bytesr,  facer7  r8  tmp_nametmpcleanup_errors
             r   hbfontzTTFFont.hbfont;  s   ||!! i  %"xxz"77--l;D77D4O4OPD8  ,D1 ||  ,GGWW33DLLA"99  ||K '5 "'#H"%88#)% 9  '*xxHIIl3IIK    "ww!#!7!7!A"&"="= 
 $" "		( 3#* " &$$,$1!" !"" $" "		( 3#* " &$$,$1!" !"" $!"s   !A D I:H.F;	HF		AHIG#"I#	H,HIHIIH&%I&	I	/I	II	IIIc                 <    d| j                    d| j                   dS )Nz
TTFFont(i=r   r   r   rS   s    r   r   zTTFFont.__repr__s  s    DFF8:dll^1==r    r   r   c                 ,   t         j                  t               }| j                  |_        d|_        | j                  |_        | j
                  |_        | j                  |_        | j                  |_        | j                  |_        | j                  |_	        | j                  |_
        | j                  |_        | j                  |_        | j                  |_        | j                  |_        | j                  |_        | j                   |_        | j"                  |_        | j$                  |_        | j&                  |_        | j(                  |_        | j*                  |_        t-        | j.                  |      |_        t-        | j0                  |      |_        t-        | j2                  |      |_        t-        | j4                  |      |_        | j6                  |_        | j8                  |_        | j:                  |_        | j<                  |_        |S )a)  
        The aim here is that FPDFRecorder.__init__() does NOT deepcopy all fonts attributes
        but instead share references to immutable objects
        between the original FPDF instance and the FPDFRecorder instances
        to avoid performances issues as spotted in issue #1444.
        r   )r   __new__r   rm   r   r   r   r   r   r   r   r   r]   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   copys      r   r   zTTFFont.__deepcopy__v  su    w'	||||ZZ
II	''''''''!//kk --||&*&A&A#kkII	II	477D)!$..$7&t':':DAt{{D1#33||//!//r    c                 F    | j                   j                          d | _        y r   )r   closer   rS   s    r   rK  zTTFFont.close  s    r    c                 *   	 | j                   d   }d}|j                  D ]%  }|j                  dk(  s|j                  dk(  s#|} n |si S i }|j
                  j                         D ]  \  }}|dk  r	||d|z   <   |||<    |S # t        $ r i cY S w xY w)z
        Build a Unicode cmap from a Microsoft Non-Standard Symbol cmap.
        Maps bytes 0x00-0xFF to the PUA range U+F000-U+F0FF.
        Reference: https://learn.microsoft.com/en-us/typography/opentype/otspec160/recom
        r   N   r         )r   r   tables
platformID	platEncIDr   r  )r   
cmap_tablesymbol_tabletablemappingcoder  s          r   r  zTTFFont._build_symbol_cmap  s    	V,J &&E1$A)=$ ' I"$',,224KD%t|).& %	 5
   	I	s   B BBrM   c                 ,   | j                   s|S g }|D ]o  }t        |      }d|cxk  rdk  rn n|j                  |       .d|cxk  rdk  r&n n#|dk7  r|j                  t        d|z                _|j                  |       q dj	                  |      S )NrO  i      rN     r{   )r   ordappendchrjoin)r   rM   mapped_charschrW  s        r   _map_symbol_textzTTFFont._map_symbol_text  s    ~~KBr7D''##B'%%$$,##C$67##B'  ww|$$r    c                     | j                   r/|j                  dd      }t        |j                  dd            S t        |j                  d      j                  d            S )Nzlatin-1r   )errorsignorez	utf-16-be)r   encoder6   decode)r   rM   encodeds      r   escape_textzTTFFont.escape_text  sR    ??kk)Ik>G 	(!KLLT[[5<<YGHHr    ru   text_shaping_paramsc                      | j                   kD  r| _          j                  |      }|r j                  |||      S t        |      t	         fd|D              |z  dz  fS )Nc              3   N   K   | ]  }j                   t        |           y wr   )r   r[  r   s     r   r   z)TTFFont.get_text_width.<locals>.<genexpr>  s     5AAs   "%r   )r   ra  shaped_text_widthr   r   )r   rM   ru   ri  mapped_texts   `    r   r   zTTFFont.get_text_width  su     $...#/D ++D1))\+>  555DuL
 	
r    c                     | j                  |||      \  }}|yd}|D ]0  }|t        | j                  |j                  z  dz         |z  dz  z  }2 t	        |      |fS )aF  
        When texts are shaped, the length of a string is not always the sum of all individual character widths
        This method will invoke harfbuzz to perform the text shaping and return the sum of "x_advance"
        and "x_offset" for each glyph. This method works for "left to right" or "right to left" texts.
        )r   r   r   r   )perform_harfbuzz_shapingr  r   r@   r   )r   rM   ru   ri  r   rI   
text_widthposs           r   rl  zTTFFont.shaped_text_width  s{     "::, 3
?
 "
"Cdjj3==0589LH5PJ # O$j11r    r9   r>   c                    | j                  |      }|| j                  _        t        r t	        j
                         }d|_        |j                  dj                  |             |j                          ||d   ni }|i }d|v r|d   |d   j                  |_        d|v r|d   
|d   |_        d|v r|d   
|d   |_        t	        j                  | j                  ||       |j                  |j                   fS )zZ
        This method invokes Harfbuzz to perform text shaping of the input string
        r)   r{   featuresfragment_directionrK   rJ   )ra  rE  r   r   r3  BufferrL   rQ   r^  rT   valuerG   rK   rJ   shaperH   rI   )r   rM   ru   ri  r?  rs  s         r   ro  z TTFFont.perform_harfbuzz_shaping  s    $$T*'iikBGGDM"$$&/B/N
+TV 	 &"$ $77#$89E/0DEKKCM++#H-9,X6CJ--#J/;.z:CL
c8, 3 333r    c                     | j                  |      }d}|D ]9  }t        |      }| j                  j                  |      }|,|t	        |      z  }; d| j                  |       dS )Nr{   r   r   )ra  r[  r   pickr]  rh  )r   rM   
txt_mappedr)  unimapped_chars         r   r   zTTFFont.encode_text&  sr    $$T*
Dd)C *.)9)9#)>K&c+..
  4##J/055r    c           
         t        |      dk(  rg S | j                  |||      \  }}g }dt        t           dt        dt        fd}t	        t        d |D                    }i }	t        t        |            D ]*  }
 |||
      }||	v r|	|   j                  |
       %|
g|	|<   , t        |      D ]  \  }}g }|j                  |	v rC|	|j                     D 
cg c]  }
t        ||
          }}
|	j                  |j                         | j                  j                  |j                        }t        | j                   | j                  d   j"                  |   d   z        }| j$                  j'                  |j                  t)        |      ||      }|d	}|||   j*                  k7  s6||   j,                  dk7  s$||   j.                  dk7  s||   j0                  dk7  rd
}|j                  | j$                  j3                  |      ||   j*                  ||   j0                  ||   j,                  ||   j.                  |d        |S c c}
w )z
        This method will invoke harfbuzz for text shaping, include the mapping code
        of the glyphs on the subset and map input characters to the cluster codes
        r   cluster_listr-  r   c                 t    t        | |      }|dk(  r| d   S |t        |       k(  s| |   |k7  r| |dz
     S | |   S )Nr   r)   )r   r   )r~  r-  rq  s      r   get_cluster_from_text_indexz7TTFFont.shape_text.<locals>.get_cluster_from_text_indexI  sR    lE2Cax#A&c,''<+<+E#C!G,,$$r    c              3   F   K   | ]  }t        |j                          y wr   )r(   r;   )r   gis     r   r   z%TTFFont.shape_text.<locals>.<genexpr>Q  s     "I[r3rzz?[s   !r   )r  unicode
glyph_nameglyph_widthFT)r|  r@   rA   rB   rC   force_positioning)r   ro  r   r(   rX   sortedranger\  	enumerater;   r[  popr   getGlyphNamer:   r  r   r  r   	get_glyphrD   r@   rB   rC   rA   
pick_glyph)r   rM   ru   ri  rH   rI   	text_infor  r~  cluster_mappingr   clcluster_seqr  r  gnamegwidthr  r  s                      r   
shape_textzTTFFont.shape_text2  sZ    t9>I'+'D'D, 3(
$_ 		%hsm 	%C 	%TW 	% F"I["IIJ02s4y!A,\1=B_$#**1-'(c# "  )5OKGzz_,1@1LM1LA3tAw<1LM##BJJ/KK,,R\\:E4::F(;(C(CE(J1(MMNFKK))llg "	 * E } %/+6@@@";/88A=";/88A=";/99Q>$(!#';;#9#9%#@!0!=!G!G!0!=!G!G / < E E / < E E):	1  6D ? Ns   I)NNNr   )r   r   rV   )r!   r"   r#   ro   r
   rW   r   setr(   r'   r%   rc   propertyrE  r   r   r   rK  r  ra  rh  rD   r   rl  r   ro  r   r  r   r    r   r   r   @  sC   IL -104'+&'W
W
 W
 	W

 W
  C)W
 De,-W
  }W
 !$W
t 5 5n># >'9 'DcN 'y 'RDcN 2%S %S %I I I

 
 &d38n5	

 
sEz	
$22 2 &d38n5	2
 
sEz	28&4&4 &4 &d38n5	&4
 
x&1B(CC	D&4P
6 
6 
6JJ J &d38n5	J
 
$sCx.	!Jr    r   c                   @     e Zd Zdedededededededef fd	Z xZS )
r  r   r   r   r<   r   r   r   r   c	                     t         	|           t        d      | _        || _        || _        || _        || _        || _        || _	        || _
        || _        d | _        y )NFontDescriptor)r~   rc   r3   rm   r   r   r   r<   r   r   r   r   	font_name)
r   r   r   r   r<   r   r   r   r   r   s
            r   rc   zPDFFontDescriptor.__init__  s^     	)*	$
$(*(,r    )	r!   r"   r#   r%   r0   rW   r(   rc   r   r   s   @r   r  r    s[    -- - 	-
 #- - - - - -r    r  T)orderc                   Z    e Zd ZU dZdZeed<   eeedf   z  ed<   eed<   eed<   defd	Z	y
)Glyphz
    This represents one glyph on the font
    Unicode is a tuple because ligatures or character substitution
    can map a sequence of unicode characters to a single glyph
    )r(  r  r  r  r(  .r  r  r  r   c                     | j                   S r   )r(  rS   s    r   __hash__zGlyph.__hash__  s    }}r    N)
r!   r"   r#   r$   ro   r(   r&   rD   rW   r  r   r    r   r  r    s>     EIM5c?""O# r    r  c                       e Zd ZdZdeddf fdZdefdZdefdZ	de
eee   ef      fdZed	edee   fd
       Zdee   dee   fdZe	 	 	 	 ddee   d	eeeedf   z     dee   dee   dee   f
d       Zdee   fdZ xZS )r  a  
    Holds a mapping of used characters and their position in the font's subset

    Characters that must be mapped on their actual unicode must be part of the
    `identities` list during object instantiation. These non-negative values should
    only appear once in the list. `pick()` can be used to get the characters
    corresponding position in the subset. If it's not yet part of the object, a new
    position is acquired automatically. This implementation always tries to return
    the lowest possible representation.
    fontr   Nc                     t         |           || _        d| _        ddg| _        i | _        | j                  D ]/  }| j                  |      }|st        |      | j
                  |<   1 y )Nr   rY  r  )r~   rc   r  _next	_reserved_char_id_per_glyphr  r(   )r   r  xr  r   s       r   rc   zSubsetMap.__init__  si    	
  ?AANN1N-E14Q''.  r    c           	      p    d| j                    d| j                   d| j                   d| j                   d	S )NzSubsetMap(font=z, _next=z, _reserved=z, _char_id_per_glyph=r   )r  r  r  r  rS   s    r   r   zSubsetMap.__repr__  sB    dii[ =..))>t?V?V>WWXZ	
r    c                 ,    t        | j                        S r   )r   r  rS   s    r   __len__zSubsetMap.__len__  s    4**++r    c              #   \   K   | j                   j                         D ]  \  }}||f  y wr   )r  r  r   r  char_ids      r   r  zSubsetMap.items  s-     "55;;=NE7.  >s   *,r  c                     | j                  |      }|=|| j                  j                  vr%| j                  j                  j                  |       | j	                  |      S )Nr  )r  r  r   r\  r  )r   r  r  s      r   ry  zSubsetMap.pick  sO    w/=WDII,D,DDII$$++G4u%%r    r  c                    | j                   j                  |d       }||| j                  | j                  v rW| xj                  dz  c_        | j                  | j                  d   kD  r| j                  d= | j                  | j                  v rW| j                  }|| j                   |<   | xj                  dz  c_        |S )Nr)   r   )r  getr  r  r  s      r   r  zSubsetMap.pick_glyph  s    ))--eT:**.

a
::q 11q) **. jjG-4D##E*JJ!OJr    .r  r  c           	      B   |r|||t        ||||      S |t        |t              sy | j                  j                  rd|cxk  rdk  rn n
|dk7  rd|z   }| j                  j
                  j                  |      }t        |t              rH|Ft        ||f| j                  j                  |   t        | j                  j                  |               S |dk(  r6t        t        | j                  j                              }t        |ddd      S |dk(  r
d| j                  j                  v rf| j                  j                  d   }| j                  j
                  j                  dt        t        | j                  j                                    }n^t        t        | j                  j                  j                                     }t        t        | j                  j                              }t        |d|t        | j                  j                  d               S y )	NrY  rN  rZ  rO  r   )r   r   )rY  )r  rk   r(   r  r   r   r  r   r   nextitervalues)r   r  r  r  r  r(  s         r   r  zSubsetMap.get_glyph  s    #&'[AA?*Wc":9947#:d#:w$w&G99&&**73gs#(<
		w'DIILL)*	  d?D01H7Iq99d?tyy~~%!YY^^D1
99..224d499>>>R9ST!$tyy~~'<'<'>"?@
TYY^^ 457JDIILL<N8OPPr    c                 Z    | j                   D cg c]  }||j                   c}S c c}w r   )r  r  )r   r  s     r   get_all_glyph_nameszSubsetMap.get_all_glyph_names  s5    *.*A*A
*AUEVE*A
 	
 
s   (()NNNN)r!   r"   r#   r$   r   rc   rW   r   r(   r  r   rD   r   r  r  r   ry  r  r  r   r  r   r   s   @r   r  r    s   	8W 8 8
# 
, ,!xhuos&: ;< !
 &C &HSM & &
 
HSM 
   $37$(%)%}% #c3h/0% SM	%
 c]% 
%% %N
Xc] 
r    r  CourierzCourier-BoldzCourier-ObliquezCourier-BoldOblique	HelveticazHelvetica-BoldzHelvetica-ObliquezHelvetica-BoldObliquezTimes-Romanz
Times-BoldzTimes-ItaliczTimes-BoldItalicSymbolZapfDingbats)couriercourierBcourierI	courierBI	helvetica
helveticaB
helveticaIhelveticaBItimestimesBtimesItimesBIsymbolzapfdingbats   r   )r  r  r  r   i  	
r   !"ic  #i,  $%iy  &i  '   r   iM  r   *i  +iH  ,-./0123456789:;<=>?@i  ABCi  DEFic  Gi
  HIJi  KLMiA  NOPQRSTr|   VWi  XYZr   \r   ^i  r   `abr   defghr      jklmnopqrstuvr*  r  yz{iN  |i  }~i^                    r                                                                                        ¡   ¢   £   ¤   ¥   ¦   §   ¨   ©i     ªir     «   ¬   ­   ®   ¯   °i     ±   ²   ³   ´   µ   ¶i     ·   ¸   ¹   ºim     »   ¼iB     ½   ¾   ¿   À   Á   Â   Ã   Ä   Å   Æ   Ç   È   É   Ê   Ë   Ì   Í   Î   Ï   Ð   Ñ   Ò   Ó   Ô   Õ   Ö   ×   Ø   Ù   Ú   Û   Ü   Ý   Þ   ß   à   á   â   ã   ä   å   æ   ç   è   é   ê   ë   ì   í   î   ï   ð   ñ   ò   ó   ô   õ   ö   ÷   ø   ù   ú   û   ü   ý   þ   ÿr  i     i  i  r  r  r  r   i  i%  i  i  id  i  i[  iw  i  i   i  iP  i  i  i  i_  i  i  i	  i  iI  i@  i  i     i  il        i  i  i  i  i7  i  iz  i  i  i  r  i     i4  i  i  i  i  i  i,  i  i6  r  i+  i:  i  iE  i     i  i  i  iJ  r  i@  i\  i
  i^  r  i     i  i  i  i  i  r  i  i  i  i  i  i  i  iW  i  i  i  i  iN  i  i  i;  i  i  i  i(  iA  i  i  i  i  i0  iI  i?  i  i  i  i  i  i  i  i  i  i  i  i:  i/  i  i  i  i  i  ii  i|  i  i     i  i  i  i  i  i=  i  i     i  i   i  iS  i  ir  i~  iF  i  i  i  i  i  i  i  i<  i  i  i  is  iD  ic  ij  i  i  ia  ix  i  i  r  )Nr$   loggingr  r   bisectr   collectionsr   rI  r   dataclassesr   r   	functoolsr   ior	   pathlibr
   typingr   r   r   r   r   r   r   	fontToolsr   fontTools.pens.ttGlyphPenr   fontTools.varLibr   	uharfbuzzr3  Fontr   r   deprecationr*   drawing_primitivesr+   r,   r-   r.   enumsr/   r0   r1   font_type_3r2   syntaxr3   r4   utilr6   r   r7   r9   r>   rF   	getLoggerr!   r   rZ   rr   r   __pdoc__r   r   r  r  r  r   r  r]  COURIER_FONTr   )r   s   0r   <module>r     sԕ  	  	   #  *       0 &rww  )  < ; . # h 
( 88 8 
		8	$ S
 S
 S
lJ
 J
Z
* 
* % &? &?R| |~-	 -2   $h
 h
Z !&"%*!"
" &+3Z0ZAZ0	 A&
CA&
CA& CA& C	A&
 CA& CA& CA& CA& CA& 	#A& 	#A& CA& CA& 	#A& CA&  C!A&" C#A&$ C%A&& C'A&( C)A&* C+A&, C-A&. C/A&0 C1A&2 C3A&4 C5A&6 C7A&8 C9A&: C;A&< C=A&> C?A&@ CAA&B CA&D EA&F GA&H IA&J KA&L MA&N OA&P QA&R SA&T UA&V WA&X YA&Z [A&\ ]A&^ _A&` aA&b cA&d eA&f gA&h iA&j kA&l mA&n oA&p qA&r sA&t uA&v wA&x yA&z {A&| }A&~ A&@ AA&B CA&D EA&F GA&H IA&J KA&L MA&N OA&P QA&R SA&T UA&V WA&X YA&Z [A&\ ]A&^ _A&` aA&b cA&d eA&f gA&h iA&j kA&l mA&n oA&p qA&r sA&t uA&v wA&x yA&z 	#{A&| }A&~ A&@ AA&B CA&D EA&F GA&H IA&J KA&L MA&N OA&P QA&R SA&T UA&V WA&X YA&Z [A&\ ]A&^ _A&` aA&b cA&d eA&f gA&h iA&j kA&l mA&n oA&p qA&r sA&t uA&v wA&x yA&z {A&| }A&~ A&@ CAA&B CCA&D CEA&F CGA&H CIA&J CKA&L DMA&N COA&P CQA&R CSA&T DUA&V CWA&X CYA&Z D[A&\ C]A&^ C_A&` CaA&b CcA&d CeA&f CgA&h CiA&j CkA&l CmA&n CoA&p DqA&r CsA&t DuA&v CwA&x CyA&z C{A&| C}A&~ CA&@ CAA&B CCA&D CEA&F CGA&H CIA&J CKA&L CMA&N COA&P CQA&R CSA&T CUA&V CWA&X CYA&Z C[A&\ C]A&^ C_A&` CaA&b CcA&d CeA&f CgA&h CiA&j CkA&l CmA&n CoA&p CqA&r CsA&t CuA&v CwA&x CyA&z C{A&| C}A&~ CA&@ CAA&B CCA&D CEA&F CGA&H CIA&J CKA&L CMA&N DOA&P CQA&R CSA&T CUA&V CWA&X CYA&Z C[A&\ C]A&^ C_A&` CaA&b CcA&d CeA&f CgA&h CiA&j CkA&l CmA&n CoA&p CqA&r CsA&t CuA&v CwA&x CyA&z C{A&| C}A&~ CA&@ CAA&B CCA&D CEA&F CGA&H CIA&J CKA&L CMA&N COA&P CQA&R CSA&T CUA&V CWA&X CYA&Z C[A&\ C]A&^ C_A&` CaA&b CcA&d CeA&f CgA&h CiA&j CkA&l CmA&n CoA&p CqA&r CsA&t CuA&v CwA&x CyA&z C{A&| C}A&~ CA&@ CAA& k "FA'
CA'
CA' CA' C	A'
 CA' CA' CA' CA' CA' 	#A' 	#A' CA' CA' 	#A' CA'  C!A'" C#A'$ C%A'& C'A'( C)A'* C+A', C-A'. C/A'0 C1A'2 C3A'4 C5A'6 C7A'8 C9A': C;A'< C=A'> C?A'@ CAA'B CA'D EA'F GA'H IA'J KA'L MA'N OA'P QA'R SA'T UA'V WA'X YA'Z [A'\ ]A'^ _A'` aA'b cA'd eA'f gA'h iA'j kA'l mA'n oA'p qA'r sA't uA'v wA'x yA'z {A'| }A'~ A'@ AA'B CA'D EA'F GA'H IA'J KA'L MA'N OA'P QA'R SA'T UA'V WA'X YA'Z [A'\ ]A'^ _A'` aA'b cA'd eA'f gA'h iA'j kA'l mA'n oA'p qA'r sA't uA'v wA'x yA'z 	#{A'| }A'~ A'@ AA'B CA'D EA'F GA'H IA'J KA'L MA'N OA'P QA'R SA'T UA'V WA'X YA'Z [A'\ ]A'^ _A'` aA'b cA'd eA'f gA'h iA'j kA'l mA'n oA'p qA'r sA't uA'v wA'x yA'z {A'| }A'~ A'@ CAA'B CCA'D CEA'F CGA'H CIA'J CKA'L DMA'N COA'P CQA'R CSA'T DUA'V CWA'X CYA'Z D[A'\ C]A'^ C_A'` CaA'b CcA'd CeA'f CgA'h CiA'j CkA'l CmA'n CoA'p DqA'r CsA't DuA'v CwA'x CyA'z C{A'| C}A'~ CA'@ CAA'B CCA'D CEA'F CGA'H CIA'J CKA'L CMA'N COA'P CQA'R CSA'T CUA'V CWA'X CYA'Z C[A'\ C]A'^ C_A'` CaA'b CcA'd CeA'f CgA'h CiA'j CkA'l CmA'n CoA'p CqA'r CsA't CuA'v CwA'x CyA'z C{A'| C}A'~ CA'@ CAA'B CCA'D CEA'F CGA'H CIA'J CKA'L CMA'N DOA'P CQA'R CSA'T CUA'V CWA'X CYA'Z C[A'\ C]A'^ C_A'` CaA'b CcA'd CeA'f CgA'h CiA'j CkA'l CmA'n CoA'p CqA'r CsA't CuA'v CwA'x CyA'z C{A'| C}A'~ CA'@ CAA'B CCA'D CEA'F CGA'H CIA'J CKA'L CMA'N COA'P CQA'R CSA'T CUA'V CWA'X CYA'Z C[A'\ C]A'^ C_A'` CaA'b CcA'd CeA'f CgA'h CiA'j CkA'l CmA'n CoA'p CqA'r CsA't CuA'v CwA'x CyA'z C{A'| C}A'~ CA'@ CAA' l #FA(
CA(
CA( CA( C	A(
 CA( CA( CA( CA( CA( 	#A( 	#A( CA( CA( 	#A( CA(  C!A(" C#A($ C%A(& C'A(( C)A(* C+A(, C-A(. C/A(0 C1A(2 C3A(4 C5A(6 C7A(8 C9A(: C;A(< C=A(> C?A(@ CAA(B CA(D EA(F GA(H IA(J KA(L MA(N OA(P QA(R SA(T UA(V WA(X YA(Z [A(\ ]A(^ _A(` aA(b cA(d eA(f gA(h iA(j kA(l mA(n oA(p qA(r sA(t uA(v wA(x yA(z {A(| }A(~ A(@ AA(B CA(D EA(F GA(H IA(J KA(L MA(N OA(P QA(R SA(T UA(V WA(X YA(Z [A(\ ]A(^ _A(` aA(b cA(d eA(f gA(h iA(j kA(l mA(n oA(p qA(r sA(t uA(v wA(x yA(z 	#{A(| }A(~ A(@ AA(B CA(D EA(F GA(H IA(J KA(L MA(N OA(P QA(R SA(T UA(V WA(X YA(Z [A(\ ]A(^ _A(` aA(b cA(d eA(f gA(h iA(j kA(l mA(n oA(p qA(r sA(t uA(v wA(x yA(z {A(| }A(~ A(@ CAA(B CCA(D CEA(F CGA(H CIA(J CKA(L DMA(N COA(P CQA(R CSA(T DUA(V CWA(X CYA(Z D[A(\ C]A(^ C_A(` CaA(b CcA(d CeA(f CgA(h CiA(j CkA(l CmA(n CoA(p DqA(r CsA(t DuA(v CwA(x CyA(z C{A(| C}A(~ CA(@ CAA(B CCA(D CEA(F CGA(H CIA(J CKA(L CMA(N COA(P CQA(R CSA(T CUA(V CWA(X CYA(Z C[A(\ C]A(^ C_A(` CaA(b CcA(d CeA(f CgA(h CiA(j CkA(l CmA(n CoA(p CqA(r CsA(t CuA(v CwA(x CyA(z C{A(| C}A(~ CA(@ CAA(B CCA(D CEA(F CGA(H CIA(J CKA(L CMA(N DOA(P CQA(R CSA(T CUA(V CWA(X CYA(Z C[A(\ C]A(^ C_A(` CaA(b CcA(d CeA(f CgA(h CiA(j CkA(l CmA(n CoA(p CqA(r CsA(t CuA(v CwA(x CyA(z C{A(| C}A(~ CA(@ CAA(B CCA(D CEA(F CGA(H CIA(J CKA(L CMA(N COA(P CQA(R CSA(T CUA(V CWA(X CYA(Z C[A(\ C]A(^ C_A(` CaA(b CcA(d CeA(f CgA(h CiA(j CkA(l CmA(n CoA(p CqA(r CsA(t CuA(v CwA(x CyA(z C{A(| C}A(~ CA(@ CAA( m $FA'
CA'
CA' CA' C	A'
 CA' CA' CA' CA' CA' 	#A' 	#A' CA' CA' 	#A' CA'  C!A'" C#A'$ C%A'& C'A'( C)A'* C+A', C-A'. C/A'0 C1A'2 C3A'4 C5A'6 C7A'8 C9A': C;A'< C=A'> C?A'@ CAA'B CA'D EA'F GA'H IA'J KA'L MA'N OA'P QA'R SA'T UA'V WA'X YA'Z [A'\ ]A'^ _A'` aA'b cA'd eA'f gA'h iA'j kA'l mA'n oA'p qA'r sA't uA'v wA'x yA'z {A'| }A'~ A'@ AA'B CA'D EA'F GA'H IA'J KA'L MA'N OA'P QA'R SA'T UA'V WA'X YA'Z [A'\ ]A'^ _A'` aA'b cA'd eA'f gA'h iA'j kA'l mA'n oA'p qA'r sA't uA'v wA'x yA'z 	#{A'| }A'~ A'@ AA'B CA'D EA'F GA'H IA'J KA'L MA'N OA'P QA'R SA'T UA'V WA'X YA'Z [A'\ ]A'^ _A'` aA'b cA'd eA'f gA'h iA'j kA'l mA'n oA'p qA'r sA't uA'v wA'x yA'z {A'| }A'~ A'@ CAA'B CCA'D CEA'F CGA'H CIA'J CKA'L DMA'N COA'P CQA'R CSA'T DUA'V CWA'X CYA'Z D[A'\ C]A'^ C_A'` CaA'b CcA'd CeA'f CgA'h CiA'j CkA'l CmA'n CoA'p DqA'r CsA't DuA'v CwA'x CyA'z C{A'| C}A'~ CA'@ CAA'B CCA'D CEA'F CGA'H CIA'J CKA'L CMA'N COA'P CQA'R CSA'T CUA'V CWA'X CYA'Z C[A'\ C]A'^ C_A'` CaA'b CcA'd CeA'f CgA'h CiA'j CkA'l CmA'n CoA'p CqA'r CsA't CuA'v CwA'x CyA'z C{A'| C}A'~ CA'@ CAA'B CCA'D CEA'F CGA'H CIA'J CKA'L CMA'N DOA'P CQA'R CSA'T CUA'V CWA'X CYA'Z C[A'\ C]A'^ C_A'` CaA'b CcA'd CeA'f CgA'h CiA'j CkA'l CmA'n CoA'p CqA'r CsA't CuA'v CwA'x CyA'z C{A'| C}A'~ CA'@ CAA'B CCA'D CEA'F CGA'H CIA'J CKA'L CMA'N COA'P CQA'R CSA'T CUA'V CWA'X CYA'Z C[A'\ C]A'^ C_A'` CaA'b CcA'd CeA'f CgA'h CiA'j CkA'l CmA'n CoA'p CqA'r CsA't CuA'v CwA'x CyA'z C{A'| C}A'~ CA'@ CAA' l #FA#
CA#
CA# CA# C	A#
 CA# CA# CA# CA# CA# 	#A# 	#A# CA# CA# 	#A# CA#  C!A#" C#A#$ C%A#& C'A#( C)A#* C+A#, C-A#. C/A#0 C1A#2 C3A#4 C5A#6 C7A#8 C9A#: C;A#< C=A#> C?A#@ CAA#B CA#D EA#F GA#H IA#J KA#L MA#N OA#P QA#R SA#T UA#V WA#X YA#Z [A#\ ]A#^ _A#` aA#b cA#d eA#f gA#h iA#j kA#l mA#n oA#p qA#r sA#t uA#v wA#x yA#z {A#| }A#~ A#@ AA#B CA#D EA#F GA#H IA#J KA#L MA#N OA#P QA#R SA#T UA#V WA#X YA#Z [A#\ ]A#^ _A#` aA#b cA#d eA#f gA#h iA#j kA#l mA#n oA#p qA#r sA#t uA#v wA#x yA#z 	#{A#| }A#~ A#@ AA#B CA#D EA#F GA#H IA#J KA#L MA#N OA#P QA#R SA#T UA#V WA#X YA#Z [A#\ ]A#^ _A#` aA#b cA#d eA#f gA#h iA#j kA#l mA#n oA#p qA#r sA#t uA#v wA#x yA#z {A#| }A#~ A#@ AAA#B ACA#D AEA#F AGA#H AIA#J AKA#L AMA#N AOA#P AQA#R ASA#T AUA#V AWA#X AYA#Z A[A#\ A]A#^ A_A#` AaA#b AcA#d AeA#f AgA#h AiA#j AkA#l AmA#n AoA#p AqA#r AsA#t AuA#v AwA#x AyA#z A{A#| A}A#~ AA#@ AAA#B CCA#D CEA#F CGA#H CIA#J CKA#L CMA#N COA#P CQA#R CSA#T CUA#V CWA#X DYA#Z C[A#\ C]A#^ C_A#` CaA#b CcA#d CeA#f CgA#h CiA#j CkA#l CmA#n CoA#p CqA#r CsA#t CuA#v CwA#x CyA#z D{A#| C}A#~ DA#@ CAA#B CCA#D CEA#F CGA#H CIA#J CKA#L CMA#N COA#P CQA#R CSA#T CUA#V CWA#X CYA#Z C[A#\ C]A#^ C_A#` CaA#b CcA#d CeA#f CgA#h CiA#j CkA#l CmA#n CoA#p CqA#r CsA#t CuA#v CwA#x DyA#z C{A#| C}A#~ CA#@ CAA#B CCA#D CEA#F CGA#H CIA#J CKA#L CMA#N COA#P CQA#R CSA#T CUA#V CWA#X CYA#Z C[A#\ C]A#^ C_A#` CaA#b AcA#d CeA#f CgA#h CiA#j CkA#l CmA#n CoA#p CqA#r CsA#t CuA#v CwA#x CyA#z C{A#| C}A#~ CA#@ AAA# h FA"
CA"
CA" CA" C	A"
 CA" CA" CA" CA" CA" 	#A" 	#A" CA" CA" 	#A" CA"  C!A"" C#A"$ C%A"& C'A"( C)A"* C+A", C-A". C/A"0 C1A"2 C3A"4 C5A"6 C7A"8 C9A": C;A"< C=A"> C?A"@ CAA"B CA"D EA"F GA"H IA"J KA"L MA"N OA"P QA"R SA"T UA"V WA"X YA"Z [A"\ ]A"^ _A"` aA"b cA"d eA"f gA"h iA"j kA"l mA"n oA"p qA"r sA"t uA"v wA"x yA"z {A"| }A"~ A"@ AA"B CA"D EA"F GA"H IA"J KA"L MA"N OA"P QA"R SA"T UA"V WA"X YA"Z [A"\ ]A"^ _A"` aA"b cA"d eA"f gA"h iA"j kA"l mA"n oA"p qA"r sA"t uA"v wA"x yA"z 	#{A"| }A"~ A"@ AA"B CA"D EA"F GA"H IA"J KA"L MA"N OA"P QA"R SA"T UA"V WA"X YA"Z [A"\ ]A"^ _A"` aA"b cA"d eA"f gA"h iA"j kA"l mA"n oA"p qA"r sA"t uA"v wA"x yA"z {A"| }A"~ A"@ CAA"B CCA"D CEA"F CGA"H CIA"J CKA"L DMA"N COA"P CQA"R CSA"T DUA"V CWA"X CYA"Z C[A"\ C]A"^ C_A"` CaA"b CcA"d CeA"f CgA"h CiA"j CkA"l CmA"n CoA"p DqA"r CsA"t CuA"v CwA"x CyA"z C{A"| C}A"~ CA"@ CAA"B CCA"D CEA"F CGA"H CIA"J CKA"L CMA"N COA"P CQA"R CSA"T CUA"V CWA"X CYA"Z C[A"\ C]A"^ C_A"` CaA"b CcA"d CeA"f CgA"h CiA"j CkA"l CmA"n CoA"p CqA"r CsA"t CuA"v CwA"x CyA"z C{A"| C}A"~ CA"@ CAA"B CCA"D CEA"F CGA"H CIA"J CKA"L CMA"N COA"P CQA"R CSA"T CUA"V CWA"X CYA"Z C[A"\ C]A"^ C_A"` CaA"b CcA"d CeA"f CgA"h CiA"j CkA"l CmA"n CoA"p CqA"r CsA"t CuA"v CwA"x CyA"z C{A"| C}A"~ CA"@ CAA"B CCA"D CEA"F CGA"H CIA"J CKA"L CMA"N COA"P CQA"R CSA"T CUA"V CWA"X CYA"Z C[A"\ C]A"^ C_A"` CaA"b CcA"d CeA"f CgA"h CiA"j CkA"l CmA"n CoA"p CqA"r CsA"t CuA"v CwA"x CyA"z C{A"| C}A"~ CA"@ CAA" g FA#
CA#
CA# CA# C	A#
 CA# CA# CA# CA# CA# 	#A# 	#A# CA# CA# 	#A# CA#  C!A#" C#A#$ C%A#& C'A#( C)A#* C+A#, C-A#. C/A#0 C1A#2 C3A#4 C5A#6 C7A#8 C9A#: C;A#< C=A#> C?A#@ CAA#B CA#D EA#F GA#H IA#J KA#L MA#N OA#P QA#R SA#T UA#V WA#X YA#Z [A#\ ]A#^ _A#` aA#b cA#d eA#f gA#h iA#j kA#l mA#n oA#p qA#r sA#t uA#v wA#x yA#z {A#| }A#~ A#@ AA#B CA#D EA#F GA#H IA#J KA#L MA#N OA#P QA#R SA#T UA#V WA#X YA#Z [A#\ ]A#^ _A#` aA#b cA#d eA#f gA#h iA#j kA#l mA#n oA#p qA#r sA#t uA#v wA#x yA#z 	#{A#| }A#~ A#@ AA#B CA#D EA#F GA#H IA#J KA#L MA#N OA#P QA#R SA#T UA#V WA#X YA#Z [A#\ ]A#^ _A#` aA#b cA#d eA#f gA#h iA#j kA#l mA#n oA#p qA#r sA#t uA#v wA#x yA#z {A#| }A#~ A#@ CAA#B CCA#D CEA#F CGA#H CIA#J CKA#L DMA#N COA#P CQA#R CSA#T DUA#V CWA#X CYA#Z D[A#\ C]A#^ C_A#` CaA#b CcA#d CeA#f CgA#h CiA#j CkA#l CmA#n CoA#p DqA#r CsA#t DuA#v CwA#x CyA#z C{A#| C}A#~ CA#@ CAA#B CCA#D CEA#F CGA#H CIA#J CKA#L CMA#N COA#P CQA#R CSA#T CUA#V CWA#X CYA#Z C[A#\ C]A#^ C_A#` CaA#b CcA#d CeA#f CgA#h CiA#j CkA#l CmA#n CoA#p CqA#r CsA#t CuA#v CwA#x CyA#z C{A#| C}A#~ CA#@ CAA#B CCA#D CEA#F CGA#H CIA#J CKA#L CMA#N DOA#P CQA#R CSA#T CUA#V CWA#X CYA#Z C[A#\ C]A#^ C_A#` CaA#b CcA#d CeA#f CgA#h CiA#j CkA#l CmA#n CoA#p CqA#r CsA#t CuA#v CwA#x CyA#z C{A#| C}A#~ CA#@ CAA#B CCA#D CEA#F CGA#H CIA#J CKA#L CMA#N COA#P CQA#R CSA#T CUA#V CWA#X CYA#Z C[A#\ C]A#^ C_A#` CaA#b CcA#d CeA#f CgA#h CiA#j CkA#l CmA#n CoA#p CqA#r CsA#t CuA#v CwA#x CyA#z C{A#| C}A#~ CA#@ CAA# h FA$
CA$
CA$ CA$ C	A$
 CA$ CA$ CA$ CA$ CA$ 	#A$ 	#A$ CA$ CA$ 	#A$ CA$  C!A$" C#A$$ C%A$& C'A$( C)A$* C+A$, C-A$. C/A$0 C1A$2 C3A$4 C5A$6 C7A$8 C9A$: C;A$< C=A$> C?A$@ CAA$B CA$D EA$F GA$H IA$J KA$L MA$N OA$P QA$R SA$T UA$V WA$X YA$Z [A$\ ]A$^ _A$` aA$b cA$d eA$f gA$h iA$j kA$l mA$n oA$p qA$r sA$t uA$v wA$x yA$z {A$| }A$~ A$@ AA$B CA$D EA$F GA$H IA$J KA$L MA$N OA$P QA$R SA$T UA$V WA$X YA$Z [A$\ ]A$^ _A$` aA$b cA$d eA$f gA$h iA$j kA$l mA$n oA$p qA$r sA$t uA$v wA$x yA$z 	#{A$| }A$~ A$@ AA$B CA$D EA$F GA$H IA$J KA$L MA$N OA$P QA$R SA$T UA$V WA$X YA$Z [A$\ ]A$^ _A$` aA$b cA$d eA$f gA$h iA$j kA$l mA$n oA$p qA$r sA$t uA$v wA$x yA$z {A$| }A$~ A$@ CAA$B CCA$D CEA$F CGA$H CIA$J CKA$L DMA$N COA$P CQA$R CSA$T DUA$V CWA$X CYA$Z C[A$\ C]A$^ C_A$` CaA$b CcA$d CeA$f CgA$h CiA$j CkA$l CmA$n CoA$p DqA$r CsA$t DuA$v CwA$x CyA$z C{A$| C}A$~ CA$@ CAA$B CCA$D CEA$F CGA$H CIA$J CKA$L CMA$N COA$P CQA$R CSA$T CUA$V CWA$X CYA$Z C[A$\ C]A$^ C_A$` CaA$b CcA$d CeA$f CgA$h CiA$j CkA$l CmA$n CoA$p CqA$r CsA$t CuA$v CwA$x CyA$z C{A$| C}A$~ CA$@ CAA$B CCA$D CEA$F CGA$H CIA$J CKA$L CMA$N COA$P CQA$R CSA$T CUA$V CWA$X CYA$Z C[A$\ C]A$^ C_A$` CaA$b CcA$d CeA$f CgA$h CiA$j CkA$l CmA$n CoA$p CqA$r CsA$t CuA$v CwA$x CyA$z C{A$| C}A$~ CA$@ CAA$B CCA$D CEA$F CGA$H CIA$J CKA$L CMA$N COA$P CQA$R CSA$T CUA$V CWA$X CYA$Z C[A$\ C]A$^ C_A$` CaA$b CcA$d CeA$f CgA$h CiA$j CkA$l CmA$n CoA$p CqA$r CsA$t CuA$v CwA$x CyA$z C{A$| C}A$~ CA$@ CAA$ i  FA#
CA#
CA# CA# C	A#
 CA# CA# CA# CA# CA# 	#A# 	#A# CA# CA# 	#A# CA#  C!A#" C#A#$ C%A#& C'A#( C)A#* C+A#, C-A#. C/A#0 C1A#2 C3A#4 C5A#6 C7A#8 C9A#: C;A#< C=A#> C?A#@ CAA#B CA#D EA#F GA#H IA#J KA#L MA#N OA#P QA#R SA#T UA#V WA#X YA#Z [A#\ ]A#^ _A#` aA#b cA#d eA#f gA#h iA#j kA#l mA#n oA#p qA#r sA#t uA#v wA#x yA#z {A#| }A#~ A#@ AA#B CA#D EA#F GA#H IA#J KA#L MA#N OA#P QA#R SA#T UA#V WA#X YA#Z [A#\ ]A#^ _A#` aA#b cA#d eA#f gA#h iA#j kA#l mA#n oA#p qA#r sA#t uA#v wA#x yA#z 	#{A#| }A#~ A#@ AA#B CA#D EA#F GA#H IA#J KA#L MA#N OA#P QA#R SA#T UA#V WA#X YA#Z [A#\ ]A#^ _A#` aA#b cA#d eA#f gA#h iA#j kA#l mA#n oA#p qA#r sA#t uA#v wA#x yA#z {A#| }A#~ A#@ CAA#B CCA#D CEA#F CGA#H CIA#J CKA#L CMA#N COA#P CQA#R CSA#T DUA#V CWA#X CYA#Z C[A#\ C]A#^ C_A#` CaA#b CcA#d CeA#f CgA#h CiA#j CkA#l CmA#n CoA#p CqA#r CsA#t CuA#v CwA#x CyA#z C{A#| C}A#~ CA#@ CAA#B CCA#D CEA#F CGA#H CIA#J CKA#L CMA#N COA#P CQA#R CSA#T CUA#V CWA#X CYA#Z C[A#\ C]A#^ C_A#` CaA#b CcA#d CeA#f CgA#h CiA#j CkA#l CmA#n CoA#p CqA#r CsA#t CuA#v CwA#x CyA#z C{A#| C}A#~ CA#@ CAA#B CCA#D CEA#F CGA#H CIA#J CKA#L CMA#N COA#P CQA#R CSA#T CUA#V CWA#X CYA#Z C[A#\ C]A#^ C_A#` CaA#b CcA#d CeA#f CgA#h CiA#j CkA#l CmA#n CoA#p CqA#r CsA#t CuA#v CwA#x CyA#z C{A#| C}A#~ CA#@ CAA#B CCA#D CEA#F CGA#H CIA#J CKA#L CMA#N COA#P CQA#R CSA#T CUA#V CWA#X CYA#Z C[A#\ C]A#^ C_A#` CaA#b CcA#d CeA#f CgA#h CiA#j CkA#l CmA#n CoA#p CqA#r CsA#t CuA#v CwA#x CyA#z C{A#| C}A#~ CA#@ CAA# h FA)
AA)
AA) AA) A	A)
 AA) AA) AA) AA) AA) 	!A) 	!A) AA) AA) 	!A) AA)  A!A)" A#A)$ A%A)& A'A)( A)A)* A+A), A-A). A/A)0 A1A)2 A3A)4 A5A)6 A7A)8 A9A): A;A)< A=A)> A?A)@ AAA)B CA)D EA)F GA)H IA)J KA)L MA)N OA)P QA)R SA)T UA)V WA)X YA)Z [A)\ ]A)^ _A)` aA)b cA)d eA)f gA)h iA)j kA)l mA)n oA)p qA)r sA)t uA)v wA)x yA)z {A)| }A)~ A)@ AA)B CA)D EA)F GA)H IA)J KA)L MA)N OA)P QA)R SA)T UA)V WA)X YA)Z [A)\ ]A)^ _A)` aA)b cA)d eA)f gA)h iA)j kA)l mA)n oA)p qA)r sA)t uA)v wA)x yA)z 	#{A)| }A)~ A)@ AA)B CA)D EA)F GA)H IA)J KA)L MA)N OA)P QA)R SA)T UA)V WA)X YA)Z [A)\ ]A)^ _A)` aA)b cA)d eA)f gA)h iA)j kA)l mA)n oA)p qA)r sA)t uA)v wA)x yA)z {A)| }A)~ A)@ AAA)B CCA)D CEA)F CGA)H CIA)J CKA)L CMA)N COA)P CQA)R CSA)T CUA)V CWA)X CYA)Z C[A)\ C]A)^ A_A)` AaA)b AcA)d AeA)f AgA)h AiA)j AkA)l AmA)n AoA)p AqA)r AsA)t AuA)v AwA)x AyA)z A{A)| A}A)~ AA)@ AAA)B ACA)D CEA)F CGA)H CIA)J CKA)L CMA)N COA)P CQA)R CSA)T CUA)V CWA)X CYA)Z C[A)\ C]A)^ C_A)` CaA)b CcA)d CeA)f CgA)h CiA)j CkA)l CmA)n CoA)p CqA)r CsA)t CuA)v CwA)x CyA)z C{A)| C}A)~ CA)@ CAA)B CCA)D CEA)F CGA)H CIA)J CKA)L CMA)N COA)P CQA)R CSA)T CUA)V CWA)X CYA)Z C[A)\ C]A)^ C_A)` CaA)b CcA)d CeA)f CgA)h CiA)j CkA)l CmA)n DoA)p CqA)r CsA)t CuA)v CwA)x CyA)z C{A)| C}A)~ CA)@ CAA)B CCA)D CEA)F CGA)H CIA)J CKA)L CMA)N COA)P CQA)R CSA)T CUA)V CWA)X CYA)Z C[A)\ C]A)^ C_A)` CaA)b AcA)d CeA)f CgA)h CiA)j CkA)l CmA)n CoA)p CqA)r CsA)t CuA)v CwA)x CyA)z C{A)| C}A)~ CA)@ AAA) n %oh  	Bh 1s    B\? 'B]\?B]
]	B]
