
    Rj17                    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"j#                  Z$n# e%$ r dZ"Y nw xY w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r0ddl8m9Z9  G d de          Z: G d de          Z; G d de          Z< ej=        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?ZId@  eJdA          D             ZKeKeKeKeKdBZLi 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eL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eL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eL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eL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eL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eL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eL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eL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eL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eLd<   dS (  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                   B    e Zd ZU dZeed<   dd deeef         dd fdZ	dS )HarfBuzzFontz%uharfbuzz.Font than can be deepcopiedptemselfmemoreturnc                     | S N )r   r   s     K/usr/local/lib/hermes-agent/venv/lib/python3.11/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   +   sV         //	~ 	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<   dS )HBGlyphInfo	codepointclusterflagsN)r!   r"   r#   r(   r&   r   r   r    r   r9   r9   F   s+         




r    r9   c                   V    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<   dS )HBGlyphPositionposition	x_advance	y_advancex_offsety_offsetN)r!   r"   r#   tupler(   r&   r   r    r   r>   r>   K   sN         S#s*++++r    r>   c            	           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
dS )HBBuffer	directionglyph_infosglyph_positionslanguagescriptcluster_levelr   textitem_offsetitem_lengthr   Nc                     d S r   r   )r   rN   rO   rP   s       r   add_strzHBBuffer.add_strZ   s    3r    c                     d S r   r   r   s    r   guess_segment_propertiesz!HBBuffer.guess_segment_properties]   s      r    )r   rM   r   N)r!   r"   r#   strr&   listr9   r>   r(   rR   rU   r   r    r   rF   rF   R   s         +&&&&o.... GI	 		*-	@C		 	 	 	 	877777r    rF   c                      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dS )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 nt          |          | _        d S r   )r\   r1   coercer]   r^   r.   r_   r`   )r   r\   r]   r^   r_   r`   s         r   __init__zFontFace.__init__z   se      ( 0l6I(6S6S"]TT0G0N0N
&DD,CJ,O,O 	r    current_valueoverride_valuer   c                     || n|S )z;Override the current value if an override value is providedr   )rd   re   s     r   	_overridezFontFace._override   s     !/ 6}}NJr    default_styleoverride_stylec           
      h   || S | |S t          |t                    st          dt          |                     t          | t                    st          dt          |                      t          t                              | j        |j                  t                              | j        |j                  t                              | j        |j                  t                              | j        |j                  t                              | 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.
        NzCannot combine FontFace with r[   )

isinstancerZ   	TypeErrortyperg   r\   r]   r^   r_   r`   )rh   ri   s     r   combinezFontFace.combine   s!    !   !!.(33 	TRD<P<PRRSSS-22 	SQD<O<OQQRRR%%m&:N<QRR''&'  &&}'<n>TUU$$]%8.:NOO))(.*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BB !%7;#'  
 

 <#-34
 %	

 
"Z/#5=O

 
"Z/#5=O

 
 
 
( G
 K Kc Kc K K K \K 

+
=Ej=Q
	*	
 
 
 \
 
 
r    rZ   c                       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
    NFfont_family
font_stylefont_size_ptr_   r`   	underlinet_marginl_marginb_marginr   c
                 h   t          |t                    r|j        }t                                          ||r|pddz   n||||           |pd| _        t          |t          t          f          rt          |          | _        n#|rt          j
        |          | _        nd| _        |	pd| _        d S )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*3CjB#%%	
 	
 	
 !Ahe-- 	5:8__DMM 	!L22DMMDM Ar    c                     t                                                      d d         d| j         d| j         d| j         dz   S )NrM   z, t_margin=z, l_margin=z, b_margin=))r~   __repr__rw   rx   ry   )r   r   s    r   r   zTextStyle.__repr__   sP    GGss#`DM``dm``PTP]```a	
r    r]   c	          
          t          |p| j        || j        n|j        |p| j        |p| j        |p| j        || j        n||| j        n||| j	        n|          S )z
        Create a new TextStyle instance, with new values for some attributes.
        Same as `dataclasses.replace()`
        N)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}}hn%5%4:!4T_&.&6T]]H&.&6T]]H&.&6T]]H	
 	
 	
 		
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                     t          j        dt          t                                  t	                      j        |i | d S )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__  sS    ; &((	
 	
 	
 	
 	$)&)))))r    )r!   r"   r#   r   rc   r   r   s   @r   r   r     sR        	*c 	*S 	*T 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*r    r   Fc            
           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dS )CoreFont)
irm   namespssuputcwfontkeyr]   r   r   r}   r   Nc                     || _         d| _        t          |         | _        d| _        d| _        d| _        d| _        t          |         | _	        || _
        t          j        |          | _        d S )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__&  sa    	w'	'0$+E22r    rN   ru   _c                 d     t          |          t           fd|D                       |z  dz  fS )Nc              3   2   K   | ]}j         |         V  d S r   )r   .0cr   s     r   	<genexpr>z*CoreFont.get_text_width.<locals>.<genexpr>5  s)      88atwqz888888r    MbP?)lensum)r   rN   ru   r   s   `   r   get_text_widthzCoreFont.get_text_width2  s=     D		38888488888<G%OPPr    c                 (    dt          |           dS )N() Tjr5   )r   rN   s     r   encode_textzCoreFont.encode_text9  s    ,=&&,,,,r    c                 (    d| j          d| j         dS )NzCoreFont(i=
, fontkey=r   r   r   rT   s    r   r   zCoreFont.__repr__<  s    >TV>>t|>>>>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 
3 
3 
3QQ',Q19$sCx.1IQ	sEz	Q Q Q Q- - - - - -?# ? ? ? ? ? ?r    r   c                   T   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dS )&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_numberNr   fpdfr7   font_file_pathr   r}   r   	axes_dictr   r   c	                 :   t          |j                  dz   | _        d| _        || _        t          | j                                                                      d          | _        d | _	        || _
        d| _        || _        	 t          j        | j        d|d          | _        nh# t           t"          f$ rT}	t          | j                                                  }
|
                    d          rt#          d	|	          |	 d }	~	ww xY w|=d
| j        vrt%          | j         d          t'          j        | j        |dd           | j        rd | j        _        d| j        v pd| j        v | _        d| _        d| _        d | _        | j        r	 d| j        v rdnd}| j        |         j        j        d         }t9          |dd           }|d u| _        |Ct          |d                   t          |d                   t;          |d                   f| _        n*# t<          t$          t>          t@          f$ r
 d| _        Y nw xY wtC          | j        d         j"                  }d|z  | _#        d| j        v rd| j        d         vrtH          %                    d| j
                   | j        d         j&        | j        d         j'        | j        d         j(        | j        d         j)        f\  }}}}tU          | j        d                   }|+                    ||f           |,                    ||f           |,                    ||f           |,                    ||f           |-                                 |+                    ||f           |,                    ||f           |-                                 |+                    ||f           |,                    ||f           |-                                 |.                                | j        d         d<   ||z
  ||z
  f| j        d         d<   t_          | j#        | j        d         j0        d         d         z            | j        d         }| j        d         }	 |j1        }n"# t$          $ r | j        d         j2        }Y nw xY wtf          j4        }|j5        r|tf          j6        z  }|j7        dk    r|tf          j8        z  }|j9        dk    r|tf          j:        z  }tw          t_          | j        d         j2        | j#        z            t_          | j        d         j<        | j#        z            t_          || j#        z            |d| j        d         j&        | j#        z  dd| j        d         j(        | j#        z  dd| j        d         j'        | j#        z  dd| j        d         j)        | j#        z  dd	t;          |j7                  t_          dt;          t{          |j9        d z  d                    z             !          | _>        t          fd"          | _@        | j        A                                | _B        | jB        s7| C                                | _B        | jB        rd| _        nt          d#          =t                    dk    r*fd$| jB        E                                D             | _B        i | _F        | jB        D ]y}| jB        |         }| j        d         j0        |         d         }|d%k    rd}t_          | j#        |z  d&z             | j@        |<   | j        G                    |          | jF        |<   zg | _H        t          jJ        d'd(| j        d)         K                                          | _L        t_          |jM        | j#        z            | _N        t_          |jO        | j#        z            | _P        t_          |jQ        | j#        z            | _R        t_          |jS        | j#        z            | _T        t          jV        |          | _W        t          |           | _Y        ||nd| _Z        |j[        rt          || | jZ                  nd | _]        d S )*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.c                 $    i | ]\  }}|v 	||S r   r   )r   r:   glyph_idr   s      r   
<dictcomp>z$TTFFont.__init__.<locals>.<dictcomp>  s4       'Ix-- 8---r    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<   charr  wr   s        `                     @r   rc   zTTFFont.__init__a  s    TZ1$	% ..4466??@STT15&'&<#	, %1	  DKK 
 	 	 	 DL))//11I!!(++ "   	
 	"  T[(($%M%M%MNNN-	     	&!%DK+Dv/D!7;; 	**&,&;&;FF	;y15B1Eht44$'tO!?$'AKKSVc#a&kk#JDL	 * * * %*!!!* DK/:;; 4K

 dk!!;v&' ' NN7    F#(F#(F#(F#(	&"D$d T[011CJJd|$$$JJd|$$$JJd|$$$JJd|$$$MMOOOJJd|$$$JJd|$$$MMOOOJJd|$$$JJd|$$$MMOOO 		 K tt.DK	*
  %JV,4Y?BB 
  
 K'	[(
	4"-JJ 	4 	4 	4V,3JJJ	4 $," 	5(44E!Q&&(//E"c))(33E%V,3dj@AA$+f-5
BCCZ$*455mDK',tz9k m mF@S@X[_[e@ek m mK',tz9lm m@DF@S@X[_[e@elm m m Z344c#y'>'Ca"H"HIIIJJ'
 
 
	 %00E0E0E0E$F$F
 %)K$;$;$=$=	y 	//11DIy !%)g   $]););q)@)@   +/9??+<+<  DI I 	A 	ADIdOE F#+E215A Ezz!$*q.5"899DGDM#';#9#9%#@#@DN4  )+F7BF(;(K(K(M(MNN	
4tzABB
5
BCC	4tzABB	04:=>>$+E22oo.;.G]]Q &!$d.@AAA 	s>   "B+ +D<ADDB	H# #$I
	I
R R87R8r   r   c           	         | j         sR| j        rt                      }| j                            |           |                    d           |                                }	 t          j        	                    |          }t          j
        || j                  }nX# t          t          f$ rC dd l}dd l}d }	 |                    dd          5 }|j        }|                    |           |                                 d d d            n# 1 swxY w Y   t          j
        t          j                            |          | j                  }|rJ	 |                    |           n# t,          $ r&}	t.                              d||	           Y d }	~	nZd }	~	ww xY wnQ# |rJ	 |                    |           w # t,          $ r&}	t.                              d||	           Y d }	~	w d }	~	ww xY ww xY wY nw xY wt3          |          | _         nOt3          t          j
        t          j                            | j                  | j                            | _         | j         S )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.  facer9  r:  tmp_nametmpcleanup_errors
             r   hbfontzTTFFont.hbfont;  s   | 2	! 0 ii  %%%"xxzz"7--l;;D7D4OPPPDD&5 " " "''''''''#H"%88#)% 9   ( '*xHIIl333IIKKK( ( ( ( ( ( ( ( ( ( ( ( ( ( (  "w!#!7!7!A!A"&"=     
 $ 	"" "		( 3 3 3 3#* " " " &$$,$1!" !" !" !" !" !" !" !""	"8 	"" "		( 3 3 3 3#* " " " &$$,$1!" !" !" !" !" !" !" !""	"!"6  ,D11  ,GW33DLAA"9      |s   #:B G4<F 1DF D	F D	;F G4E,+G4,
F6FG4FG4 G.$F:9G.:
G*	G%	 G.%G*	*G..G43G4c                 (    d| j          d| j         dS )Nz
TTFFont(i=r   r   r   rT   s    r   r   zTTFFont.__repr__s  s    =DF==dl====r    r   r   c                 J   t                               t                     }| j        |_        d|_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j	        |_	        | j
        |_
        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        t-          | j        |          |_        t-          | j        |          |_        t-          | j        |          |_        t-          | j        |          |_        | j        |_        | j        |_        | 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  sH    w''	||Z
I	''''!/k -|&*&A#kI	I	47D))!$.$77&t':DAAt{D11#3|/!/r    c                 F    | j                                          d | _        d S r   )r   closer   rT   s    r   rM  zTTFFont.close  s!    r    c                    	 | j         d         }n# t          $ r i cY S w xY wd}|j        D ]}|j        dk    r|j        dk    r|} n|si S i }|j                                        D ]\  }}|dk    r	||d|z   <   |||<   |S )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,JJ 	 	 	III	& 	 	E1$$A)=)=$ 	I"$',2244 	& 	&KD%t||).&& %s    rN   c                 X   | j         s|S g }|D ]}t          |          }d|cxk    rdk    rn n|                    |           7d|cxk    rdk    r/n n,|dk    r&|                    t          d|z                        s|                    |           d                    |          S )NrQ  i      rP     r{   )r   ordappendchrjoin)r   rN   mapped_charschrY  s        r   _map_symbol_textzTTFFont._map_symbol_text  s    ~ 	K 	( 	(Br77D'''''''''##B''''%%%%%%%%%$$,,##C$6$67777##B''''ww|$$$r    c                     | j         r;|                    dd          }t          |                    dd                    S t          |                    d                              d                    S )Nzlatin-1r   )errorsignorez	utf-16-be)r   encoder6   decode)r   rN   encodeds      r   escape_textzTTFFont.escape_text  sh    ? 	Mkk)Ik>>G 	(!K!KLLLT[[55<<YGGHHHr    ru   text_shaping_paramsc                      | j         k    r| _                              |          }|r                     |||          S t          |          t	           fd|D                       |z  dz  fS )Nc              3   L   K   | ]}j         t          |                   V  d S r   )r   r]  r   s     r   r   z)TTFFont.get_text_width.<locals>.<genexpr>  s/      55AA555555r    r   )r   rc  shaped_text_widthr   r   )r   rN   ru   rk  mapped_texts   `    r   r   zTTFFont.get_text_width  s     $...#/D ++D11 	))\+>   555555555DuL
 	
r    c                     |                      |||          \  }}|dS d}|D ]*}|t          | j        |j        z  dz             |z  dz  z  }+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.
        N)r   r   r   r   )perform_harfbuzz_shapingr  r   r@   r   )r   rN   ru   rk  r   rI   
text_widthposs           r   rn  zTTFFont.shaped_text_width  s     "::, 3
 
?
 "6
" 	 	Cdj3=05899LH5PJJ O$$j11r    r9   r>   c                    |                      |          }|| j        _        t          r t	          j                    }d|_        |                    d                    |                     |	                                 ||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{   Nfeaturesfragment_directionrK   rJ   )rc  rG  r   r   r5  BufferrL   rR   r`  rU   valuerG   rK   rJ   shaperH   rI   )r   rN   ru   rk  rA  ru  s         r   rq  z TTFFont.perform_harfbuzz_shaping  s%    $$T**' 	ikkBGGDMM"""$$&&&/B/N
++TV 	 &"$ $777#$89E/0DEKCM+++#H-9,X6CJ---#J/;.z:CL
c8,,, 333r    c                     |                      |          }d}|D ]?}t          |          }| j                            |          }||t	          |          z  }@d|                     |           dS )Nr{   r   r   )rc  r]  r   pickr_  rj  )r   rN   
txt_mappedr+  unimapped_chars         r   r   zTTFFont.encode_text&  s    $$T**
 	/ 	/Dd))C *.)9)9#)>)>K&c+...
54##J//5555r    c           
         t                    dk    rg S |                     ||          \  }}g }dt          t                   dt          dt          fd}t	          t          d |D                                 }i }	t          t                              D ]4}
 |||
          }||	v r|	|                             |
           .|
g|	|<   5t          |          D ]q\  }}g }|j	        |	v r3fd|	|j	                 D             }|	
                    |j	                   | j                            |j                  }t          | j        | j        d         j        |         d         z            }| j                            |j        t'          |          ||	          }|d}|||         j        k    s3||         j        dk    s"||         j        dk    s||         j        dk    rd}|                    | j                            |          ||         j        ||         j        ||         j        ||         j        |d           s|S )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          | |          }|dk    r| d         S |t          |           k    s| |         |k    r| |dz
           S | |         S )Nr   r)   )r   r   )r  r/  rs  s      r   get_cluster_from_text_indexz7TTFFont.shape_text.<locals>.get_cluster_from_text_indexI  s`    lE22Caxx#A&c,''''<+<+E+E#C!G,,$$r    c              3   >   K   | ]}t          |j                  V  d S r   )r(   r;   )r   gis     r   r   z%TTFFont.shape_text.<locals>.<genexpr>Q  s*      "I"Ir3rz??"I"I"I"I"I"Ir    c                 :    g | ]}t          |                   S r   )r]  )r   r   rN   s     r   
<listcomp>z&TTFFont.shape_text.<locals>.<listcomp>]  s#    MMMA3tAw<<MMMr    r   )r  unicode
glyph_nameglyph_widthNFT)r~  r@   rA   rB   rC   force_positioning)r   rq  r   r(   rX   sortedranger^  	enumerater;   popr   getGlyphNamer:   r  r   r	  r   	get_glyphrD   r@   rB   rC   rA   
pick_glyph)r   rN   ru   rk  rH   rI   	text_infor  r  cluster_mappingr   clcluster_seqr  r  gnamegwidthr  r  s    `                 r   
shape_textzTTFFont.shape_text2  s    t99>>I'+'D'D, 3(
 (
$_ 		%hsm 	%C 	%TW 	% 	% 	% 	% F"I"I["I"I"IIIJJ02s4yy!! 	* 	*A,,\1==B_$$#**1----'(c##(55 !	 !	OKGz_,,MMMM1LMMM##BJ///K,,R\::E4:F(;(CE(J1(MMNNFK))lg "	 *  E } %/+6@@@";/8A==";/8A==";/9Q>>$(!#';#9#9%#@#@!0!=!G!0!=!G / < E / < E): 	 	 	 	 r    )NNNr   )r   r   rV   )r!   r"   r#   ro   r
   rW   r   setr(   r'   r%   rc   propertyrG  r   r   r   rM  r  rc  rj  rD   r   rn  r   rq  r   r  r   r    r   r   r   @  s&       IL -104'+&'W
 W
W
 W
 	W

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

 
sEz	
 
 
 
$22 2 &d38n5	2
 
sEz	2 2 2 28&4&4 &4 &d38n5	&4
 
x&1B(CC	D&4 &4 &4 &4P
6 
6 
6 
6 
6 
6JJ J &d38n5	J
 
$sCx.	!J J J J J 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 | _        d S )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__  sp     	)**	$
$(*(,r    )	r!   r"   r#   r%   r0   rW   r(   rc   r   r   s   @r   r  r    s        -- - 	-
 #- - - - - - - - - - - - - -r    r  T)orderc                   b    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	d
S )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   rT   s    r   __hash__zGlyph.__hash__  s
    }r    N)
r!   r"   r#   r$   ro   r(   r&   rD   rW   r  r   r    r   r  r    sz           EIMMM5c?""""OOO#      r    r  c                   l    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 ]1}|                     |          }|rt          |          | j        |<   2d S )Nr   r[  r  )r~   rc   r  _next	_reserved_char_id_per_glyphr  r(   )r   r  xr  r   s       r   rc   zSubsetMap.__init__  s    	
  ?A 	8 	8ANN1N--E 814Q'.	8 	8r    c           	      H    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  rT   s    r   r   zSubsetMap.__repr__  sV    Zdi Z Z Z Z.Z Z?C?VZ Z Z	
r    c                 *    t          | j                  S r   )r   r  rT   s    r   __len__zSubsetMap.__len__  s    4*+++r    c              #   T   K   | j                                         D ]\  }}||fV  d S r   )r  r  r   r  char_ids      r   r  zSubsetMap.items  sE      "5;;== 	! 	!NE7.    	! 	!r    r  c                     |                      |          }|-|| j        j        vr| j        j                            |           |                     |          S )Nr  )r  r  r   r^  r  )r   r  r  s      r   r{  zSubsetMap.pick  sT    w//=WDI,DDDI$++G444u%%%r    r  c                    | j                             |d           }|m|k| j        | j        v r<| xj        dz  c_        | j        | j        d         k    r| j        d= | j        | j        v <| 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1q) *.. jG-4D#E*JJ!OJJr    .r  r  c           	         |r|||t          ||||          S |t          |t                    sd S | j        j        rd|cxk    rdk    rn n|dk    rd|z   }| j        j                            |          }t          |t                    rB|@t          ||f| j        j        |         t          | j        j        |                             S |dk    r8t          t          | j        j                            }t          |ddd          S |dk    rd| j        j        v rW| j        j        d         }| j        j                            dt          t          | j        j                                      }n^t          t          | j        j                                                            }t          t          | j        j                            }t          |d|t          | j        j        d                             S d S )	Nr[  rP  r\  rQ  r   )r   r   )r[  )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    	B#&'[AAA?*Wc":":?49 	'47#:#:#:#:d#:#:#:#:#:w$w&G9&**733gs## 	(<
	w'DIL)**	   d??D0011H7Iq999d??ty~%%!Y^D1
9.224d49>>R>R9S9STT!$ty~'<'<'>'>"?"?@@
TY^ 4 4557JDIL<N8O8OPPPtr    c                 $    d | j         D             S )Nc                      g | ]}||j         S r   )r  )r   r  s     r   r  z1SubsetMap.get_all_glyph_names.<locals>.<listcomp>  s'     
 
 
!&UEVEEVEVEVr    )r  rT   s    r   get_all_glyph_nameszSubsetMap.get_all_glyph_names  s&    
 
*.*A
 
 
 	
r    )NNNN)r!   r"   r#   r$   r   rc   rW   r   r(   r  r   rD   r   r  r  r   r{  r  r  r   r  r   r   s   @r   r   r     s       	 	8W 8 8 8 8 8 8 8
# 
 
 
 
, , , , ,!xhuos&: ;< ! ! ! !
 &C &HSM & & & U&
 
HSM 
 
 
 
   $37$(%)% %}% #c3h/0% SM	%
 c]% 
%% % % U%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zapfdingbatsc                 .    i | ]}t          |          d S )r   )r_  )r   r   s     r   r   r   (  s     000A000r       )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  )Mr$   loggingr  r   bisectr   collectionsr   rK  r   dataclassesr   r   	functoolsr   ior	   pathlibr
   typingr   r   r   r   r   r   r   	fontToolsr   fontTools.pens.ttGlyphPenr   fontTools.varLibr   	uharfbuzzr5  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  COURIER_FONTr   r   r    r   <module>r     s  	 	  				        # # # # # #       * * * * * * * *                                          0 0 0 0 0 0 & & & & & &    rw        	BBB ) ( ( ( ( (            < ; ; ; ; ; ; ; ; ; . . . . . . # # # # # # # #       8    h   
    (   8 8 8 8 88 8 8 8 
	8	$	$ S
 S
 S
 S
 S
 S
 S
 S
lJ
 J
 J
 J
 J
 J
 J
 J
Z
* 
* 
* 
* 
* 
* 
* 
* % &? &? &? &? &? &? &? &?R| | | | | | | |~- - - - -	 - - -2        $h
 h
 h
 h
 h
 h
 h
 h
Z !&"%*!" 
" 10UU3ZZ00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& 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& A& 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& A& 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& A& 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& A& 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& A& 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& A& 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& A& 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& A& 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& A& 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& A& 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& A& 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& A& 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& A& 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& A&@ CAA& 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' 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' A' 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' A' 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' A' 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' A' 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' A' 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' A' 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' A' 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' A' 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' A' 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' A' 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' A' 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' A' 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' A' 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' A'@ CAA' 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( 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( A( 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( A( 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( A( 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( A( 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( A( 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( A( 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( A( 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( A( 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( A( 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( A( 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( A( 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( A( 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( A( 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( A(@ CAA( 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' 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' A' 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' A' 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' A' 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' A' 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' A' 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' A' 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' A' 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' A' 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' A' 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' A' 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' A' 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' A' 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' A' 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' A'@ CAA' 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# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A#@ AAA# 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" 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" A" 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" A" 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" A" 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" A" 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" A" 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" A" 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" A" 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" A" 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" A" 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" A" 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" A" 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" A" 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" A" 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" A"@ CAA" 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# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A#@ CAA# 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$ 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$ A$ 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$ A$ 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$ A$ 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$ A$ 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$ A$ 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$ A$ 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$ A$ 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$ A$ 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$ A$ 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$ A$ 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$ A$ 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$ A$ 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$ A$ 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$ A$@ CAA$ 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# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A# 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# A#@ CAA# 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/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) A) 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) A) 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) A) 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) A) 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) A) 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) A) 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) A) 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) A) 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) A) 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) A) 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) A) 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) A) 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) A) 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) A)@ AAA) A) n % % %s    A8 8BB