
    }f                     L   d Z ddlZddlmZ ddlmZ ddlmZmZ ddl	m
Z
mZmZ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mZmZ d
dlmZmZ d
dlmZmZ d
dlm Z  e G d d                      Z! G d d          Z" G d d          Z# G d de          Z$ ed           G d d                      Z% G d d          Z&dddd d!d"d#d$d%d&d'd(d)d*d+Z'd,  e(d-          D             Z)e)e)e)e)d.Z*i d/d0d1d0d2d0d3d0d4d0d5d0d6d0d7d0d8d0d9d0d:d0d;d0d<d0d=d0d>d0d?d0d@d0i dAd0dBd0dCd0dDd0dEd0dFd0dGd0dHd0dId0dJd0dKd0dLd0dMd0dNd0dOd0dPd0dQd0i dRdSdTdUdVdUdWdXdYdZd[d\d]d^d_d^d`dadbdcddd0ded^dfd0dgd0dhdUdidUdjdUi dkdUdldUdmdUdndUdodUdpdUdqdUdrd0dsd0dtdcdudcdvdcdwdUdxdydzdZd{dZd|d}i d~d}ddZdddddd}dd0ddddZddUdddd}ddddZdddd}ddZddi dd}ddZddddZddZdddd0dd0dd0ddddUdd^ddUddUddddUddUi dd0ddUddUddddddddddddUddUddUddUdd^dddd0ddUddi dd}ddddddddddddddcddÓddUddÓddddUdd^ddʓddUddUi dd^ddʓddZdd^ddʓddÓddddÓddÓdddddd^dd^ddÓddUddʓdd^i ddʓdddd^ddddÓddddZdd0dd^ddUddUddUddUddddUdd^ddi ddddUddcdd^dddd^ddddcdd^dd^dd^ddUddd d0dd^dd^ddi ddUddddd	dd
dddZddZddZddZddZddZddʓdd}ddZddZddZddZi dd0dd0dd0dd0dd}dd}ddddddd dd!dd"dcd#dd$d}d%d}d&d}d'd}i d(dZd)dZd*dd+dUd,dUd-dUd.dUd/dUd0dUd1dXd2dd3dUd4dUd5dUd6dUd7d0d8d0i d9d0d:d0d;dUd<dUd=dUd>dUd?dUd@dUdAdUdBdcdCddDdUdEdUdFdUdGdUdHddIdUdJdie*dK<   i d/d0d1d0d2d0d3d0d4d0d5d0d6d0d7d0d8d0d9d0d:d0d;d0d<d0d=d0d>d0d?d0d@d0i dAd0dBd0dCd0dDd0dEd0dFd0dGd0dHd0dId0dJd0dKd0dLd0dMd0dNd0dOd0dPd0dQd^i dRdLdTdUdVdUdWdXdYd}d[dMd]d^d_d^d`dadbdcddd0ded^dfd0dgd0dhdUdidUdjdUi dkdUdldUdmdUdndUdodUdpdUdqdUdrd^dsd^dtdcdudcdvdcdwddxdNdzd}d{d}d|d}i d~d}ddZdddddd}dd0ddUdd}dddddd}ddddZdddd}ddZddi dd}ddZddddZddZdddd^dd0dd^ddcddUdd^ddUddddUddddUi dd^dddddd0dd0ddUdd0ddXddddddddddaddUdd^ddddUi ddddUddUddddaddOddaddcddÓddUddÓdd0ddUddddʓddUddUi dd^ddʓddZdd^ddʓddÓddddÓddÓdd0dd0ddddddÓddUddʓdd^i ddʓddUdd^ddddÓddddZdd0dd^ddUddUddUddUddOddUdd^ddi ddddUddcdd^dddd^ddddcdd^dd^dd^ddddUd d0dd^dd^ddi ddU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dZddZddZddZi dd0dd0dd0dd0dd}dd}ddddddd dd!dd"dcd#dd$d}d%d}d&d}d'd}i d(dZd)dZd*dd+dUd,dUd-dUd.dUd/dUd0dUd1dXd2dUd3dUd4dUd5dUd6dUd7d0d8d0i d9d0d:d0d;dd<dd=dd>dd?dd@ddAddBdcdCddDddEddFddGddHdUdIddJdUie*dP<   i d/d0d1d0d2d0d3d0d4d0d5d0d6d0d7d0d8d0d9d0d:d0d;d0d<d0d=d0d>d0d?d0d@d0i dAd0dBd0dCd0dDd0dEd0dFd0dGd0dHd0dId0dJd0dKd0dLd0dMd0dNd0dOd0dPd0dQd^i dRdLdTdUdVdUdWdXdYd}d[dMd]d^d_d^d`dadbdcddd0ded^dfd0dgd0dhdUdidUdjdUi dkdUdldUdmdUdndUdodUdpdUdqdUdrd^dsd^dtdcdudcdvdcdwddxdNdzd}d{d}d|d}i d~d}ddZdddddd}dd0ddUdd}dddddd}ddddZdddd}ddZddi dd}ddZddddZddZdddd^dd0dd^ddcddUdd^ddUddddUddddUi dd^dddddd0dd0ddUdd0ddXddddddddddaddUdd^ddddUi ddddUddUddddaddOddaddcddÓddUddÓdd0ddUddddʓddUddUi dd^ddʓddZdd^ddʓddÓddddÓddÓdd0dd0ddddddÓddUddʓdd^i ddʓddUdd^ddddÓddddZdd0dd^ddUddUddUddUddOddUdd^ddi ddddUddcdd^dddd^ddddcdd^dd^dd^ddddUd d0dd^dd^ddi ddU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dZddZddZddZi dd0dd0dd0dd0dd}dd}ddddddd dd!dd"dcd#dd$d}d%d}d&d}d'd}i d(dZd)dZd*dd+dUd,dUd-dUd.dUd/dUd0dUd1dXd2dUd3dUd4dUd5dUd6dUd7d0d8d0i d9d0d:d0d;dd<dd=dd>dd?dd@ddAddBdcdCddDddEddFddGddHdUdIddJdUie*dQ<   i d/d0d1d0d2d0d3d0d4d0d5d0d6d0d7d0d8d0d9d0d:d0d;d0d<d0d=d0d>d0d?d0d@d0i dAd0dBd0dCd0dDd0dEd0dFd0dGd0dHd0dId0dJd0dKd0dLd0dMd0dNd0dOd0dPd0dQd0i dRdSdTdUdVdUdWdXdYdZd[d\d]d^d_d^d`dadbdcddd0ded^dfd0dgd0dhdUdidUdjdUi dkdUdldUdmdUdndUdodUdpdUdqdUdrd0dsd0dtdcdudcdvdcdwdUdxdydzdZd{dZd|d}i d~d}ddZdddddd}dd0ddddZddUdddd}ddddZdddd}ddZddi dd}ddZddddZddZdddd0dd0dd0ddddUdd^ddUddUddddUddUi dd0ddUddUddddddddddddUddUddUddUdd^dddd0ddUddi dd}ddddddddddddddcddÓddUddÓddddUdd^ddʓddUddUi dd^ddʓddZdd^ddʓddÓddddÓddÓdddddd^dd^ddÓddUddʓdd^i ddʓdddd^ddddÓddddZdd0dd^ddUddUddUddUddddUdd^ddi ddddUddcdd^dddd^ddddcdd^dd^dd^ddUddd d0dd^dd^ddi ddUddddd	dd
dddZddZddZddZddZddZddʓdd}ddZddZddZddZi dd0dd0dd0dd0dd}dd}ddddddd dd!dd"dcd#dd$d}d%d}d&d}d'd}i d(dZd)dZd*dd+dUd,dUd-dUd.dUd/dUd0dUd1dXd2dd3dUd4dUd5dUd6dUd7d0d8d0i d9d0d:d0d;dUd<dUd=dUd>dUd?dUd@dUdAdUdBdcdCddDdUdEdUdFdUdGdUdHddIdUdJdie*dR<   i d/dSd1dSd2dSd3dSd4dSd5dSd6dSd7dSd8dSd9dSd:dSd;dSd<dSd=dSd>dSd?dSd@dSi dAdSdBdSdCdSdDdSdEdSdFdSdGdSdHdSdIdSdJdSdKdSdLdSdMdSdNdSdOdSdPdSdQd^i dRdTdTddVdUdWddYdd[dVd]d^d_d^d`ddbdUdddSdedUdfdSdgd0dhddiddjdi dkddlddmddnddoddpddqddrd0dsd0dtdUdudUdvdUdwdWdxdUdzd}d{dZd|d}i d~dXddddYddZdd}dd^dd[dd}dd\ddXdd}dd}dd]dd^ddUdd_ddi dd`ddVdd]ddaddbdddd^ddcdd^ddddddddd[ddUddUddeddVi ddfddgddZddhddZddUddUddiddfddUddUddfddUddZddVddiddTi dd\ddjdd\ddeddkddlddkddU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dmddnddoddUddpddTddddqddqddqi ddqddrddsddZddsddZddddUddgddUddUddTdded dtddUddUddUi ddUddʓddZd	dʓd
ddddudd\ddbddsdd]dd]ddudd]dd]ddTddTddTi ddTddTddTddTdd]ddTddvddvddwd dud!dUd"dSd#dTd$dZd%dZd&drd'dsi d(dZd)dsd*dZd+ded,dhd-dvd.dvd/dxd0dTd1dyd2dyd3dyd4dyd5dyd6dyd7ded8dei d9ded:ded;dd<dhd=dzd>d\d?d\d@d\dAdydBdydCdydDdydEdydFdydGdedHdedIdedJdie*d{<   i d/dSd1dSd2dSd3dSd4dSd5dSd6dSd7dSd8dSd9dSd:dSd;dSd<dSd=dSd>dSd?dSd@dSi dAdSdBdSdCdSdDdSdEdSdFdSdGdSdHdSdIdSdJdSdKdSdLdSdMdSdNdSdOdSdPdSdQd^i dRd|dTddVddWddYdd[d}d]d^d_d^d`ddbd~dddSded^dfdSdgd0dhddiddjdi dkddlddmddnddoddpddqddrd0dsd0dtd~dud~dvd~dwdWdxddzd}d{dZd|dZi d~d}ddddUdd}dd}dd^ddadd}ddddXdd}dd}ddUdd}ddZddUddi dd}dd}dddd}dd}dddd^dd0dd^dddddd^ddWddddWddddWi dd^dddddd0dd0dddd0dddddddddddd^ddadd0ddddi dd}ddddddWddkddlddkddddÓddddÓdd^dddȐdWddʓddddi dd^ddʓddUdd^ddXddÓddddÓddÓdd^dd^dؐdWdِdWddÓddddʓdd^i dސdddadd^dd}ddÓddWdd}ddSdd^ddddddddddldddd^ddi dddddd~dd^dddd^dddd~dddddd^ddddd dSdd^ddddi ddddmddmd	dmd
dWdd}dd}dd}dd}dd}dd}ddXddZ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)dUd*dd+dWd,dWd-dWd.dWd/dWd0dWd1dZd2dWd3dWd4dWd5dWd6dWd7d0d8d0i d9d0d:d0d;dd<dd=dd>dd?dd@ddAddBd~dCddDddEddFddGddHddIddJdie*d<   i d/dSd1dSd2dSd3dSd4dSd5dSd6dSd7dSd8dSd9dSd:dSd;dSd<dSd=dSd>dSd?dSd@dSi dAdSdBdSdCdSdDdSdEdSdFdSdGdSdHdSdIdSdJdSdKdSdLdSdMdSdNdSdOdSdPdSdQd^i dRddTddVddWdʓdYdd[d0d]d^d_d^d`ddbddddSded^dfdSdgd0dhddiddjdi dkddlddmddnddoddpddqddrd^dsd^dtdduddvddwddxddzd}d{dZd|d}i d~d}ddZddddddddaddddddZdddd}dddddddd}ddUddZi dd}dd}ddʓdd}dd}ddZdd^dd0dd^dddddd^ddddUddWddUddWi dd^ddddUdd0dd^ddUdd0ddddUddddUddUddWddadd^ddUddi dd}ddddddWddddddddddÓddddÓdd^ddddddʓddddi dd^ddʓddUdd^ddʓddÓddZddÓddÓdd^dd^ddddddÓddddʓdd^i ddʓddadd^dd}ddÓddWdd}ddSdd^dddddddddddddd^ddi dddddddd^dddd^dddddddddd^ddUddd dSdd^ddddi ddddmddmd	dmd
ddd}dd}dd}dd}dd}dd}ddʓdd}ddZddZddZddZi ddaddaddadda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*dUd+dd,dd-dd.dd/dd0dd1d}d2dWd3dWd4dWd5dWd6dWd7d0d8d0i d9d0d:d0d;dd<dUd=dd>dd?dd@ddAddBddCddDdUdEdUdFdUdGdUdHddIdUdJdie*d<   i d/dSd1dSd2dSd3dSd4dSd5dSd6dSd7dSd8dSd9dSd:dSd;dSd<dSd=dSd>dSd?dSd@dSi dAdSdBdSdCdSdDdSdEdSdFdSdGdSdHdSdIdSdJdSdKdSdLdSdMdSdNdSdOdSdPdSdQdai dRddTddVddWddYdd[d0d]d^d_d^d`ddbddddSded^dfdSdgd0dhddiddjdi dkddlddmddnddoddpddqddrd^dsd^dtdduddvddwddxddzdZd{dZd|dZi d~d}ddZddZdd}ddddaddddZddddXdd}dd}dddd}ddZddUddi dd}ddZddXddZdddddd^dd0dd^dddddd^ddddddWddddWi dd^ddddUdd0dd0dddd0ddddUddddddddaddadd0ddUddWi ddZddddWddaddddddddddÓddddÓdd^ddddddʓddddi dd^ddʓddUdd^ddddÓddddÓddÓdd^dd^ddddddÓddddʓdd^i ddʓddadd^dd}ddÓddaddddSddadddddddddddddd^ddi dddddddd^dddd^dddddddddd^ddiddd dSdd^ddddi ddddmddmd	dmd
dddZddZddZddZddZddZddddZddZddZddZddZi ddaddaddadda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d0dd1d}d2dWd3dWd4dWd5dWd6dWd7d0d8d0i d9d0d:d0d;dd<dUd=dd>dd?dd@ddAddBddCddDdUdEdUdFdUdGdUdHdWdIddJdWie*d<   i d/dSd1dSd2dSd3dSd4dSd5dSd6dSd7dSd8dSd9dSd:dSd;dSd<dSd=dSd>dSd?dSd@dSi dAdSdBdSdCdSdDdSdEdSdFdSdGdSdHdSdIdSdJdSdKdSdLdSdMdSdNdSdOdSdPdSdQd^i dRddTddVddWddYdd[dd]d^d_d^d`ddbddddSded^dfdSdgd0dhddiddjdi dkddlddmddnddoddpddqddrd^dsd^dtdduddvddwddxddzdd{dd|dZi d~d}dddddd}dd}dd^ddWddZddUddddZdd}dddd}ddddddUi dd}ddddddddUddUddadd0ddadddddd^ddddddWddddWi dd0dddddd0dd0ddWdd0dd}ddddddddddaddadd0ddddWi ddZddWddWddaddddddddddÓddddÓdd^ddddUddXddddi dd^ddʓdddd^ddddÓddUddÓddÓdd^dd^ddUddUddÓddddXdd^i dސdddadd^ddZddÓddaddUddSddadddddddddddddd^ddi dddddddd^dddd^dddddddddd^ddddd dSdd^ddddi ddddmddmd	dmd
dddddddddddddddXddZddddddddi dd^dd^dd^dd^dd}ddZdd}dd}dd}d d}d!d}d"dd#d}d$d}d%d}d&d}d'd}i d(dUd)dd*dd+dd,dd-dd.dd/dd0dd1dZd2dWd3dWd4dWd5dWd6dWd7d0d8d0i d9d0d:d0d;dd<dd=dd>dd?dd@ddAddBddCddDddEddFddGddHdWdIddJdWie*d<   i d/dd1dd2dd3dd4dd5dd6dd7dd8dd9dd:dd;dd<dd=dd>dd?dd@di dAddBddCddDddEddFddGddHddIddJddKddLddMddNddOddPd0dQdi dRddTddVddWddYdd[dvd]dd_d`d`ddbddddUdeddfddgddhddiddjdi dkddlddmddnddoddpddqdYdrddsddtddudedvddwddxddzdd{dxd|di d~dddvddddddddudddddduddddddddddddddddv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dxdd̓ddT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ޓddZ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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d0dd1dd2dd3dd4dd5dd6dd7dd8dʓi d9dʓd:dd;d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dJdie*d<   dS (  a0  
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.
    N)bisect_left)defaultdict)	dataclassreplace)ListOptionalTupleUnion)ttLibc                       e Zd ZdZd ZdS )HarfBuzzFontz%uharfbuzz.Font than can be deepcopiedc                     | S N )self_memos     C/var/www/rtfcompare/venv/lib/python3.11/site-packages/fpdf/fonts.py__deepcopy__zHarfBuzzFont.__deepcopy__   s    K    N)__name__
__module____qualname____doc__r   r   r   r   r   r      s)        //	 	 	 	 	r   r      )convert_to_device_color
DeviceGray	DeviceRGB)FontDescriptorFlagsTextEmphasis)Name	PDFObjectescape_parensc                       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f                  ed<   ee
eef                  ed<   	 dd	ZeZed
             Ze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'   r   coercer(   r)   r   r*   r+   )r   r'   r(   r)   r*   r+   s         r   __init__zFontFace.__init__>   se      ( 0l6I(6S6S"]TT0G0N0N
&DD,CJ,O,O 	r   c                     || n|S )z;Override the current value if an override value is providedr   )current_valueoverride_values     r   	_overridezFontFace._overrideK   s     !/ 6}}NJr   c           
      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&   )

isinstancer%   	TypeErrortyper2   r'   r(   r)   r*   r+   )default_styleoverride_styles     r   combinezFontFace.combineP   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   str__annotations__r   intr
   r   r   r.   r   staticmethodr2   r9   r   r   r   r%   r%   '   s          
I SM|$$$$ c]E*i/01111z9456666 PT	
 	
 	
 	
 GK K \K 
 
 \
 
 
r   r%   c                   *    e Zd ZdZd Zd Zd Zd ZdS )CoreFont)ir6   nameuputcwfontkeyr(   c                     t          |j                  dz   | _        d| _        t          |         | _        d| _        d| _        t          |         | _	        || _
        t          j        |          | _        d S )Nr   corei2   )lenfontsrA   r6   
CORE_FONTSrB   rC   rD   CORE_FONTS_CHARWIDTHSrE   rF   r   r-   r(   )r   fpdfrF   styles       r   r.   zCoreFont.__init__s   s`    TZ1$	w'	'0$+E22r   c                 d     t          |          t           fd|D                       |z  dz  fS )Nc              3   2   K   | ]}j         |         V  d S r   )rE   .0cr   s     r   	<genexpr>z*CoreFont.get_text_width.<locals>.<genexpr>~   s)      88atwqz888888r   MbP?)rJ   sum)r   textfont_size_pt_s   `   r   get_text_widthzCoreFont.get_text_width}   s;    D		38888488888<G%OPPr   c                 (    dt          |           dS )N() Tjr"   )r   rX   s     r   encode_textzCoreFont.encode_text   s    ,=&&,,,,r   c                 (    d| j          d| j         dS )NzCoreFont(i=
, fontkey=)rA   rF   r   s    r   __repr__zCoreFont.__repr__   s    >TV>>t|>>>>r   N)r   r   r   r:   r.   r[   r_   re   r   r   r   r@   r@   o   sX        NI3 3 3Q Q Q
- - -? ? ? ? ?r   r@   c                   B    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TTFFont)rA   r6   rB   desc	glyph_idshbfontrC   rD   rE   ttffilerF   r(   scalesubsetcmapttfontmissing_glyphsc                 x   t          |j                  dz   | _        d| _        || _        || _        t          j        | j        ddd          | _        d| j        d         j	        z  | _
        t          | j
        | j        d	         j        d
         d         z            	 | j        d         j        }n"# t          $ r | j        d         j        }Y nw xY wt           j        }| j        d         j        r|t           j        z  }| j        d         j        dk    r|t           j        z  }| j        d         j        dk    r|t           j        z  }t1          t          | j        d         j        | 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=          | j        d         j                  t          dt=          t?          | j        d         j        dz  d                    z                       | _         tC          fd          | _"        | j        #                                | _$        i | _%        | j$        D ]y}| j$        |         }| j        d	         j        |         d         }	|	dk    rd}	t          | j
        |	z  dz             | j"        |<   | j        &                    |          | j%        |<   zg | _'        d}
|j(        r|
dz  }
|
|j(        z  }
tS          j*        dd| j        d         +                                          | _,        t          | j        d         j-        | j
        z            | _.        t          | j        d         j/        | j
        z            | _0        tc          j2        |          | _3        ti          | d |
D                       | _5        d S ) Nr   TTFFr   T)recalcTimestamp
fontNumberlazy  headhmtx.notdefzOS/2hheapostX  [z.0f ]rI   A      )ascentdescent
cap_heightflags
font_b_boxitalic_anglestem_vmissing_widthc                       S r   r   )default_widths   r   <lambda>z"TTFFont.__init__.<locals>.<lambda>   s    m r   i  rV   z  

0123456789z[ ()] rB   c                 ,    g | ]}t          |          S r   ord)rS   chars     r   
<listcomp>z$TTFFont.__init__.<locals>.<listcomp>   s    &C&C&CTs4yy&C&C&Cr   )6rJ   rK   rA   r6   rk   rF   r   TTFontro   
unitsPerEmrl   roundmetrics
sCapHeightAttributeErrorr   r   SYMBOLICisFixedPitchFIXED_PITCHitalicAngleITALICusWeightClass
FORCE_BOLDPDFFontDescriptorr   xMinyMinxMaxyMaxr=   powrh   r   rE   getBestCmaprn   ri   
getGlyphIDrp   str_alias_nb_pagesresubgetBestFullNamerB   underlinePositionrC   underlineThicknessrD   r   r-   r(   	SubsetMaprm   )r   rN   font_file_pathrF   rO   r   r   r   glyphwsbarrr   s              @r   r.   zTTFFont.__init__   s   TZ1$	% lL%AD
 
 
 DK/::
dj4;v+>+Fy+QRS+TTUU	4V,7JJ 	4 	4 	4V,3JJJ	4 $,;v+ 	5(44E;v*a//(//E;v,33(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 T[0<==c#t{6':'H2'MPQ"R"RSSSTT'
 
 
	 333344
 K++--	
 I 	A 	ADIdOE F#+E215A Ezz!$*q.5"899DGDM#';#9#9%#@#@DN4    " 	-\!ET,,EF7BF(;(K(K(M(MNN	F+=
JKKF+>KLL$+E22&C&CU&C&C&CDDs   #B6 6CCc                 (    d| j          d| j         dS )Nz
TTFFont(i=ra   rb   rc   rd   s    r   re   zTTFFont.__repr__   s    =DF==dl====r   c                 F    | j                                          d | _        d S r   )ro   closerj   rd   s    r   r   zTTFFont.close   s!    r   c                      |r                      |||          S t          |          t           fd|D                       |z  dz  fS )Nc              3   L   K   | ]}j         t          |                   V  d S r   )rE   r   rR   s     r   rU   z)TTFFont.get_text_width.<locals>.<genexpr>   s/      ==1tws1vv======r   rV   )shaped_text_widthrJ   rW   )r   rX   rY   text_shaping_parmss   `   r   r[   zTTFFont.get_text_width   s]     	R))$>PQQQD		3=========LuTUUr   c                     |                      |||          \  }}|dS d}|D ]2}|t          | j        |j        |j        z   z  dz             |z  dz  z  }3t          |          |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   rV   )perform_harfbuzz_shapingr   rl   	x_advancex_offsetrJ   )r   rX   rY   r   rZ   glyph_positions
text_widthposs           r   r   zTTFFont.shaped_text_width   s     "::, 2
 
?
 "6
" 	 	CdjCMCL$@AEIJJJJ
 O$$j11r   c                 `   t          | d          sHt          t          j        t          j                            | j                                      | _        || j        _        t          j	                    }d|_
        |                    d                    |                     |                                 |d         }|d         r|d         j        |_        |d         r|d         |_        |d         r|d         |_        t          j        | j        ||           |j        |j        fS )zZ
        This method invokes Harfbuzz to perform text shaping of the input string
        rj   r   r   featuresfragment_directionscriptlanguage)hasattrr   hbFaceBlobfrom_file_pathrk   rj   ptemBuffercluster_leveladd_strjoinguess_segment_propertiesvalue	directionr   r   shapeglyph_infosr   )r   rX   rY   r   bufr   s         r   r   z TTFFont.perform_harfbuzz_shaping  s    tX&& 	V&rwrw/E/Edl/S/S'T'TUUDK'ikkBGGDMM"""$$&&&%j123 	K./CDJCMh' 	6+H5CJj) 	:-j9CL
c8,,, 333r   c                     d}|D ];}t          |          }|t          | j                            |                    z  }<dt	          |                    d                              d                     dS )Nr   r]   z	utf-16-bezlatin-1r^   )r   chrrm   pickr#   encodedecode)r   rX   
txt_mappedr   unis        r   r_   zTTFFont.encode_text.  s|    
 	5 	5Dd))C #dk..s33444JJX=!2!2;!?!?!F!Fy!Q!QRRXXXXr   c           
      `   t                    dk    rg S |                     ||          \  }}g }d }t          t          d |D                                 }i }	t	          t                              D ]4}
 |||
          }||	v r|	|                             |
           .|
g|	|<   5t          |          D ]n\  }}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	           p|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   c                     t          | |          }|dk    r| d         S |t          |           k    s| |         |k    r| |dz
           S | |         S )Nr   r   )r   rJ   )cluster_listindexr   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=   cluster)rS   gis     r   rU   z%TTFFont.shape_text.<locals>.<genexpr>Q  s*      "I"Ir3rz??"I"I"I"I"I"Ir   c                 :    g | ]}t          |                   S r   r   )rS   rA   rX   s     r   r   z&TTFFont.shape_text.<locals>.<listcomp>]  s#    MMMA3tAw<<MMMr   rx   )r   unicode
glyph_nameglyph_widthFT)mapped_charr   	y_advancer   y_offsetforce_positioning)rJ   r   listsortedrangeappend	enumerater   popro   getGlyphName	codepointr   rl   r   rm   	get_glyphtupler   r   r   r   
pick_glyph)r   rX   rY   r   r   r   	text_infor   r   cluster_mappingrA   clcluster_seqr   r   gnamegwidthr   r   s    `                 r   
shape_textzTTFFont.shape_text7  s~   
 t99>>I'+'D'D, 2(
 (
$_ 		% 	% 	% F"I"I["I"I"IIIJJ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   N)r   r   r   r:   r.   re   r   r[   r   r   r_   r   r   r   r   rg   rg      s        I(TE TE TEl> > >  V V V
2 2 224 4 4*Y Y YC C C C Cr   rg   c                        e Zd Z fdZ xZS )r   c	                     t                                                       t          d          | _        || _        || _        || _        || _        || _        || _	        || _
        || _        d | _        d S )NFontDescriptor)superr.   r    r6   r   r   r   r   r   r   r   r   	font_name)
r   r   r   r   r   r   r   r   r   	__class__s
            r   r.   zPDFFontDescriptor.__init__~  sp     	)**	$
$(*r   )r   r   r   r.   __classcell__r  s   @r   r   r   }  s8                r   r   T)orderc                   F    e Zd ZU dZdZeed<   eed<   eed<   eed<   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
    )glyph_idr   r   r   r  r   r   r   c                     | j         S r   )r  rd   s    r   __hash__zGlyph.__hash__  s
    }r   N)
r   r   r   r   r:   r=   r<   r	   r;   r  r   r   r   r
  r
    s^           EIMMMNNNOOO    r   r
  c                   r     e Zd ZdZdedee         f fdZd Zd Z	d Z
defd	Zd
 Z	 ddefdZ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 instanciation. 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.
    font
identitiesc                    t                                                       || _        d| _        t	          |          | _        i | _        | j        D ]1}|                     |          }|rt          |          | j        |<   2i | _	        d S )Nr   r   )
r  r.   r  _nextr   	_reserved_char_id_per_glyphr   r=   _char_id_per_unicode)r   r  r  xr   r  s        r   r.   zSubsetMap.__init__  s    	
  
++ #% 	8 	8ANN1N--E 814Q'.$&!!!r   c           	      H    d| j          d| j         d| j         d| j         d	S )NzSubsetMap(font=z, _next=z, _reserved=z, _char_id_per_glyph=rb   )r  r  r  r  rd   s    r   re   zSubsetMap.__repr__  sV    Zdi Z Z Z Z.Z Z?C?VZ Z Z	
r   c                 *    t          | j                  S r   )rJ   r  rd   s    r   __len__zSubsetMap.__len__  s    4*+++r   c              #   T   K   | j                                         D ]\  }}||fV  d S r   )r  itemsr   r   char_ids      r   r  zSubsetMap.items  sE      "5;;== 	! 	!NE7.    	! 	!r   r   c                     | j                             |          }|r|S |                     |          }|-|| j        j        vr| j        j                            |           |                     |          S )Nr  )r  getr   r  rp   r   r   )r   r   	cache_hitr   s       r   r   zSubsetMap.pick  sx    -11'::	 	w//=WDI,DDDI$++G444u%%%r   c                 6   | j                             |          }|r||z| 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_        || j        |j        <   |S )Nr   r   )r  r   r  r  r  r   r  s      r   r   zSubsetMap.pick_glyph  s    )--e44 		?W_*..

a

:q 111q) *.. jG-4D#E*JJ!OJJ7>D%em4r   Nreturnc                    |rt          |t          |          ||          S | j        j                            |          }t          |t                    r5|3t          ||f| j        j        |         | j        j        |                   S |dk    r8t          t          | j        j                            }t          |ddd          S d S )Nr   )r   ry   )r
  r   r  ri   r   r4   r=   rn   rE   nextiter)r   r   r   r   r   r  s         r   r   zSubsetMap.get_glyph  s      	Ig
KHHH9&**733gs## 	(<
	w'	W%	   d??D0011H7Iq999tr   c                 $    d | j         D             S )Nc                     g | ]	}|j         
S r   )r   )rS   r   s     r   r   z1SubsetMap.get_all_glyph_names.<locals>.<listcomp>  s    FFFU FFFr   )r  rd   s    r   get_all_glyph_nameszSubsetMap.get_all_glyph_names  s    FFd.EFFFFr   )NNNN)r   r   r   r   rg   r   r=   r.   re   r  r  r   r   r
  r   r)  r  r  s   @r   r   r     s        	 	'W '$s) ' ' ' ' ' '$
 
 
, , ,! ! !&C & & & &   FJ 	   $G G G G G G G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   )rS   rA   s     r   
<dictcomp>r=    s     000A000r      )r.  r/  r0  r1   i  	
r~   !"ic  #i,  $%iy  &i  '   r]   iM  rb   *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TUVWi  XYZr}   \r   ^i  rZ   `abrT   defghrA      jklmnopqrstuvr   r  yz{iN  |i  }~i^                    rv                                                                                        ¡   ¢   £   ¤   ¥   ¦   §   ¨   ©i     ªir     «   ¬   ­   ®   ¯   °i     ±   ²   ³   ´   µ   ¶i     ·   ¸   ¹   ºim     »   ¼iB     ½   ¾   ¿   À   Á   Â   Ã   Ä   Å   Æ   Ç   È   É   Ê   Ë   Ì   Í   Î   Ï   Ð   Ñ   Ò   Ó   Ô   Õ   Ö   ×   Ø   Ù   Ú   Û   Ü   Ý   Þ   ß   à   á   â   ã   ä   å   æ   ç   è   é   ê   ë   ì   í   î   ï   ð   ñ   ò   ó   ô   õ   ö   ÷   ø   ù   ú   û   ü   ý   þ   ÿr2  i     i  i  r3  r5  r4     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  r6  i+  i:  i  iE  i     i  i  i  iJ  r7  i@  i\  i
  i^  r9  i     i  i  i  i  i  r8  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;  )+r   r   bisectr   collectionsr   dataclassesr   r   typingr   r   r	   r
   	fontToolsr   	uharfbuzzr   Fontr   ImportErrordrawingr   r   r   enumsr   r   syntaxr    r!   utilr#   r%   r@   rg   r   r
  r   rL   r   COURIER_FONTrM   r   r   r   <module>rN     sӝ    
			       # # # # # # * * * * * * * * / / / / / / / / / / / /          rw        	BBB D C C C C C C C C C 4 4 4 4 4 4 4 4 # # # # # # # #       D
 D
 D
 D
 D
 D
 D
 D
N? ? ? ? ? ? ? ?4q q q q q q q qh    	   2        $UG UG UG UG UG UG UG UGt !&"%*!" 
" 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   A AA