
    ii                        S SK r S SKrS SKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r
  SS	K	Jr  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ r   SSKJ!r!  SSKJ"r"  SSKJ#r#  S r$S r% " S  S!5      r& " S" S#\5      r'S$r(S% r) " S& S'5      r* " S( S)5      r+ " S* S+\5      r, " S, S-\,5      r-\" S.5      r.\" S/5      r/ " S0 S15      r0 " S2 S3\05      r1 " S4 S5\15      r2 " S6 S7\25      r3 " S8 S9\15      r4 " S: S;\05      r5S< r6\7S=:X  a#  \ Rp                  " \6" \ Rr                  5      5        gg)>    N)BytesIO   )CMapDB)
CMapParser)FileUnicodeMap)CMap)
EncodingDB)name2unicode)PSStackParser)PSEOF)LIT)KWD)STRICT)	PSLiteral)literal_name)PDFException)resolve1)	int_value)	num_value)bytes_value)
list_value)
dict_value)stream_valueFONT_METRICS)apply_matrix_norm)nunpack)choplist)isnumberc                 J   0 n/ nU  H  n[        U[        5      (       a,  U(       a#  US   n[        U5       H  u  pVXaXE-   '   M     / nMB  MD  [        U5      (       d  MV  UR	                  U5        [        U5      S:X  d  Mx  Uu  pGn[        XGS-   5       H  nXaU'   M	     / nM     U$ )N   r   )
isinstancelist	enumerater   appendlenrange)seqwidthsrvchar1iwchar2s           C/home/kodi/my-venv/lib/python3.13/site-packages/pdfminer/pdffont.py
get_widthsr2   !   s    F
Aa"'lFQ&'57O +	 
 a[[HHQK1v{$%!quAg.A !1I /  M    c                 v   0 n/ nU  H  n[        U[        5      (       a>  U(       a5  US   n[        [        SU5      5       H  u  nu  pgnXgU44XU-   '   M     / nMT  MV  [	        U5      (       d  Mh  UR                  U5        [        U5      S:X  d  M  Uu  pIpgn[        XIS-   5       H
  nXgU44X'   M     / nM     U$ )Nr!   r"      r   )r#   r$   r%   r   r   r&   r'   r(   )
r)   r*   r+   r,   r-   r.   r/   vxvyr0   s
             r1   get_widths2r8   8   s    F
Aa"(1(1a.(A$Q'(r(mF7O )B	 
 a[[HHQK1v{,-)qbuAg.A!"HFI /  Mr3   c                   $    \ rS rSr\S 5       rSrg)FontMetricsDBQ   c                     [         U   $ Nr   )klassfontnames     r1   get_metricsFontMetricsDB.get_metricsS   s    H%%r3    N)__name__
__module____qualname____firstlineno__classmethodr@   __static_attributes__rB   r3   r1   r:   r:   Q   s    & &r3   r:   c                       \ rS rSr\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r	\" S5      r
\" S5      r\" S	5      r\" S	5      rS
 rS rS rSrg)Type1FontHeaderParserZ   s   begins   ends   defs   puts   dicts   arrays   readonlys   forc                 >    [         R                  " X5        0 U l        g r=   )r   __init___cid2unicodeselfdatas     r1   rM   Type1FontHeaderParser.__init__f   s    t*r3   c                       U R                  5       u  p [        U5      U R                  U'   M.  ! [         a     U R                  $ f = f! [         a     N)f = fr=   )
nextobjectr   r
   rN   KeyError)rP   cidnames      r1   get_encoding"Type1FontHeaderParser.get_encodingk   sl    "oo/)5d);!!#&   
      s    0 A 
AA
AAc                     X R                   L a^  U R                  S5      u  u  p4u  p5[        U[        5      (       a1  [        U[        5      (       a  U R                  U[        U5      45        g )N   )KEYWORD_PUTpopr#   intr   add_resultsr   )rP   postoken_keyvalues         r1   
do_keyword Type1FontHeaderParser.do_keywordw   sY    $$$%)XXa["Xaz3$$5),,  #|E':!;<r3   )rN   N)rC   rD   rE   rF   r   KEYWORD_BEGINKEYWORD_ENDKEYWORD_DEFr\   KEYWORD_DICTKEYWORD_ARRAYKEYWORD_READONLYKEYWORD_FORrM   rX   re   rH   rB   r3   r1   rJ   rJ   Z   sd    MMf+Kf+Kf+Kw<LMM;'f+Kf+K

!r3   rJ   )0123456789.eze-N-c                    0 n[        U 5      n/ n UR                  S5      nU(       d   U$ [        U5      nUS::  a  X1U'   / nM5  US:X  aa  SnSnU(       aJ  [        UR                  S5      5      nUS-	  US-  4 H  n	U	S:X  a  SnM  U[        U	   -  nM     U(       a  MJ  [	        U5      n
OS	U::  a  US
::  a  US-
  n
O[        UR                  S5      5      nSU::  a  US::  a  US-
  S-  U-   S-   n
OSU::  a  US::  a  US-
  S-  * U-
  S-
  n
Oi[        UR                  S5      5      nSU::  a  US-  nUS:X  a	  US-  U-  n
O5US-  US-  -  [
        R                  " SUR                  S5      5      S   -  n
UR                  U
5        GM{  )Nr          T      F                   l                        >Hr[   r   )r   readordNIBBLESfloatstructunpackr&   )rQ   dfpstackcb0sloopbnrd   b1b2s                r1   getdictr      s   
A	BE
GGAJD HC V8bEE8AD
Oq&!b&)ABw$WQZ	 * $ !HE2X")sFERWWQZBbyR3YS&Q*3.rSyc6a-(+C/_"9#IB8!GbLE"HrRx/&--bggaj2QRS2TTEUI r3   c                   8    \ rS rSrSr " S S5      rS rS rSrg)	CFFFont   (  z.notdefspaceexclamquotedbl
numbersigndollarpercent	ampersand
quoteright	parenleft
parenrightasteriskpluscommahyphenperiodslashzeroonetwothreefourfivesixseveneightninecolon	semicolonlessequalgreaterquestionatABCDEFGHIJKLMNOPQRSTUVWXYZbracketleft	backslashbracketrightasciicircum
underscore	quoteleftar   r   r   ry   fghr.   jklmr   opqr+   r   tur,   r/   xyz	braceleftbar
braceright
asciitilde
exclamdowncentsterlingfractionyenflorinsectioncurrencyquotesinglequotedblleftguillemotleftguilsinglleftguilsinglrightfiflendashdagger	daggerdblperiodcentered	paragraphbulletquotesinglbasequotedblbasequotedblrightguillemotrightellipsisperthousandquestiondowngraveacute
circumflextildemacronbreve	dotaccentdieresisringcedillahungarumlautogonekcaronemdashAEordfeminineLslashOslashOEordmasculineaedotlessilslashoslashoe
germandblsonesuperior
logicalnotmu	trademarkEthonehalf	plusminusThorn
onequarterdivide	brokenbardegreethornthreequarterstwosuperior
registeredminusethmultiplythreesuperior	copyrightAacuteAcircumflex	AdieresisAgraveAringAtildeCcedillaEacuteEcircumflex	EdieresisEgraveIacuteIcircumflex	IdieresisIgraveNtildeOacuteOcircumflex	OdieresisOgraveOtildeScaronUacuteUcircumflex	UdieresisUgraveYacute	YdieresisZcaronaacuteacircumflex	adieresisagravearingatildeccedillaeacuteecircumflex	edieresisegraveiacuteicircumflex	idieresisigraventildeoacuteocircumflex	odieresisograveotildescaronuacuteucircumflex	udieresisugraveyacute	ydieresiszcaronexclamsmallHungarumlautsmalldollaroldstyledollarsuperiorampersandsmall
Acutesmallparenleftsuperiorparenrightsuperiortwodotenleaderonedotenleaderzerooldstyleoneoldstyletwooldstylethreeoldstylefouroldstylefiveoldstylesixoldstylesevenoldstyleeightoldstylenineoldstylecommasuperiorthreequartersemdashperiodsuperiorquestionsmall	asuperior	bsuperiorcentsuperior	dsuperior	esuperior	isuperior	lsuperior	msuperior	nsuperior	osuperior	rsuperior	ssuperior	tsuperiorffffifflparenleftinferiorparenrightinferiorCircumflexsmallhyphensuperior
GravesmallAsmallBsmallCsmallDsmallEsmallFsmallGsmallHsmallIsmallJsmallKsmallLsmallMsmallNsmallOsmallPsmallQsmallRsmallSsmallTsmallUsmallVsmallWsmallXsmallYsmallZsmallcolonmonetary	onefittedrupiah
TildesmallexclamdownsmallcentoldstyleLslashsmallScaronsmallZcaronsmallDieresissmall
Brevesmall
CaronsmallDotaccentsmallMacronsmall
figuredashhypheninferiorOgoneksmall	RingsmallCedillasmallquestiondownsmall	oneeighththreeeighthsfiveeighthsseveneighthsonethird	twothirdszerosuperiorfoursuperiorfivesuperiorsixsuperiorsevensuperioreightsuperiorninesuperiorzeroinferioroneinferiortwoinferiorthreeinferiorfourinferiorfiveinferiorsixinferiorseveninferioreightinferiornineinferiorcentinferiordollarinferiorperiodinferiorcommainferiorAgravesmallAacutesmallAcircumflexsmallAtildesmallAdieresissmall
AringsmallAEsmallCcedillasmallEgravesmallEacutesmallEcircumflexsmallEdieresissmallIgravesmallIacutesmallIcircumflexsmallIdieresissmallEthsmallNtildesmallOgravesmallOacutesmallOcircumflexsmallOtildesmallOdieresissmallOEsmallOslashsmallUgravesmallUacutesmallUcircumflexsmallUdieresissmallYacutesmall
ThornsmallYdieresissmallz001.000z001.001z001.002z001.003BlackBoldBookLightMediumRegularRomanSemiboldc                   2    \ rS rSrS rS rS rS rS rSr	g)	CFFFont.INDEXi  c                    Xl         / U l        [        R                  " SU R                   R	                  S5      5      u  p#[        US-   5       H@  nU R                  R                  [        U R                   R	                  U5      5      5        MB     U R                   R                  5       S-
  U l	        U R                   R                  U R                  U R                  S   -   5        g )Nz>HBr"   r   r!   )r   offsetsr   r   r   r(   r&   r   tellbaseseek)rP   r   countoffsizer.   s        r1   rM   CFFFont.INDEX.__init__  s    GDL%}}UDGGLLODU57^##GDGGLL,A$BC $q(DIGGLL4<<#334r3   c                     S[        U 5      -  $ )Nz<INDEX: size=%d>)r'   rP   s    r1   __repr__CFFFont.INDEX.__repr__  s    %D	11r3   c                 2    [        U R                  5      S-
  $ Nr   )r'   r   r(  s    r1   __len__CFFFont.INDEX.__len__  s    t||$Q&&r3   c                     U R                   R                  U R                  U R                  U   -   5        U R                   R	                  U R                  US-      U R                  U   -
  5      $ r,  )r   r#  r"  r   r   )rP   r.   s     r1   __getitem__CFFFont.INDEX.__getitem__  sP    GGLL4<<?2377<<QqS 1$,,q/ ABBr3   c                 R   ^  [        U 4S j[        [        T 5      5       5       5      $ )Nc              3   .   >#    U  H
  nTU   v   M     g 7fr=   rB   ).0r.   rP   s     r1   	<genexpr>)CFFFont.INDEX.__iter__.<locals>.<genexpr>  s     :)9AQ)9s   )iterr(   r'   r(  s   `r1   __iter__CFFFont.INDEX.__iter__  s    :s4y)9:::r3   )r"  r   r   N)
rC   rD   rE   rF   rM   r)  r-  r0  r8  rH   rB   r3   r1   INDEXr    s    		2	'	C	;r3   r:  c           	      
   Xl         X l        [        R                  " SU R                  R	                  S5      5      u  p4pVU R                  R	                  US-
  5        U R                  U R                  5      U l        U R                  U R                  5      U l        U R                  U R                  5      U l        U R                  U R                  5      U l	        [        U R                  S   5      U l        U R                  R                  SS/5      u  nU R                  R                  SS/5      u  nU R                  R                  SS/5      u  n	U R                  R                  U	5        U R                  U R                  5      U l        [        U R                  5      U l        0 U l        0 U l        U R                  R                  U5        U R                  R	                  S5      n
U
S:X  a  [        R                  " S	U R                  R	                  S5      5      u  n['        [        R                  " S	U-  U R                  R	                  U5      5      5       H!  u  pXR"                  U'   XR$                  U'   M#     OU
S
:X  a  [        R                  " S	U R                  R	                  S5      5      u  nSn[)        U5       Ho  n[        R                  " SU R                  R	                  S5      5      u  nn[)        XU-   S-   5       H$  nXR"                  U'   XR$                  U'   US-  nM&     Mq     O[+        SU
-  5      e0 U l        0 U l        U R                  R                  U5        U R                  R	                  S5      n
U
S:X  a  U R                   S-
  n['        [        R                  " SSU-  -   U R                  R	                  SU-  5      5      5       H8  u  nnUS-  nU R1                  U5      nXR,                  U'   XR.                  U'   M:     g U
S
:X  a  [        R                  " S	U R                  R	                  S5      5      u  nSn[)        U5       H  n[        R                  " SU R                  R	                  S5      5      u  nn[)        XU-   S-   5       H5  nU R1                  U5      nXR,                  U'   XR.                  U'   US-  nM7     M     g U
S:X  a   e[+        SU
-  5      e)NBBBBr   r   r   r      r       r      BBr[   zunsupported encoding format: %r>r      zunsupported charset format: %r)rW   r   r   r   r   r:  
name_index
dict_indexstring_index
subr_indexr   top_dictgetr#  
charstringr'   nglyphscode2gidgid2coder%   r(   
ValueErrorname2gidgid2namegetstr)rP   rW   r   _major_minorhdrsizer%  charset_posencoding_poscharstring_posformatr   codegidr.   firstnleftsids                     r1   rM   CFFFont.__init__  s   	-3]]6477<<PQ?-S*WQY**TWW-**TWW- JJtww/**TWW- 23**2s3--++B4 MM--b1#6^$**TWW-4??+\"aW==dggll1o6DQ(s1udggll1o)NO&)d#%)c"  P w==dggll1o6DQD1X!'tTWW\\!_!E eA6C*-MM$')-MM#&AID 7  >GHH[!aWQA'c#a%iaPQcAR(ST
cq{{3'&)d#%)c"	 U0 	' w==dggll1o6DQC1X!'tTWW\\!_!E eA6C;;s+D*-MM$')-MM#&1HC	 7  	 w1=FGGr3   c                     U[        U R                  5      :  a  U R                  U   $ U R                  U[        U R                  5      -
     $ r=   )r'   STANDARD_STRINGSrE  )rP   r\  s     r1   rP  CFFFont.getstro  sG    T**++((--  S)>)>%?!?@@r3   )rI  rK  rD  r   rL  rO  rW   rN  rC  rJ  rE  rF  rG  N)	rC   rD   rE   rF   r_  r:  rM   rP  rH   rB   r3   r1   r   r      s#    Ob; ;2N`Ar3   r   c                   6    \ rS rSr " S S\5      rS rS rSrg)TrueTypeFontiw  c                       \ rS rSrSrg)TrueTypeFont.CMapNotFoundiy  rB   NrC   rD   rE   rF   rH   rB   r3   r1   CMapNotFoundrd  y  s    r3   rf  c                 >   Xl         X l        0 U l        UR                  S5      U l        [
        R                  " SUR                  S5      5      u  p4pV[        U5       H<  n[
        R                  " SUR                  S5      5      u  ppX4U R                  U'   M>     g )Nr   >HHHHr   z>4sLLLr   )rW   r   tablesr   fonttyper   r   r(   )rP   rW   r   ntables_1_2_3rb   tsumoffsetlengths              r1   rM   TrueTypeFont.__init__|  s    	
 &grwwqz BbwA+1==2772;+O(T!' 0DKK   	r3   c                  	   SU R                   ;  a  [        R                  eU R                   S   u  pU R                  nUR	                  U5        [
        R                  " SUR                  S5      5      u  pE/ n[        U5       H8  nUR                  [
        R                  " SUR                  S5      5      5        M:     0 nU GH  u  pnUR	                  X-   5        [
        R                  " SUR                  S5      5      u  pnUS:X  a@  UR                  [        [
        R                  " S	UR                  S
5      5      5      5        M  US:X  GaF  [
        R                  " SUR                  S5      5      nS/S-  n[        U5       H  u  nnUUUS-  '   M     [        U5      S-  S-   n/ n[        U5       HX  n[
        R                  " SUR                  S5      5      u  nnnnUR                  UUUUUR                  5       S-
  U-   45        MZ     U Hz  u  nnnnnU(       d  M  UUU   S-  -   nUR	                  U5        [        U5       H=  n[
        R                  " SUR                  S5      5      nU(       a  UU-  nUUUU-   '   M?     M|     GM  US:X  Ga  [
        R                  " SUR                  S5      5      u  npnUS-  n[
        R                  " SU-  UR                  SU-  5      5      nUR                  S5        [
        R                  " SU-  UR                  SU-  5      5      n[
        R                  " SU-  UR                  SU-  5      5      n UR                  5       n[
        R                  " SU-  UR                  SU-  5      5      n![        UUU U!5       H  u  n"n#n$n%U%(       a^  UR	                  UU%-   5        [        U#U"S-   5       H5  n[
        R                  " SUR                  S5      5      S   U$-   S-  UU'   M7     Mm  [        U#U"S-   5       H  nUU$-   S-  UU'   M     M     GM   e   [        5       n&UR!                  5        H  u  n'nU&R#                  UU'5        M     U&$ )Ncmapz>HHr   z>HHLr   z>HHH   r   z>256Br   r[   z>256Hi   i    r   z>HHhHr   rh  z>%dHz>%dhi  )ri  rb  rf  r   r#  r   r   r   r(   r&   updater%   maxr!  zipr   itemsadd_cid2unichr)(rP   base_offsetrq  r   version
nsubtables	subtablesr.   char2gidrl  rm  	st_offsetfmttypefmtlenfmtlangsubheaderkeys
firstbytesr   nhdrshdrs	firstcodeentcountdeltarp  r`   rZ  r   rY  segcountrn  ecsscsiddsidrsecsciddidrunicode_mapchars(                                           r1   create_unicode_mapTrueTypeFont.create_unicode_map  s   $+++ $F 3WW
 &eRWWQZ @	z"AV]]62771:>? ##,RYGGK)*)/vrwwqz)J&Wg!|	&--*N OPA &grwws| DSX
'6FQ'(Jq!t$ 7M*A-1uA;A==RTRYRYZ[R\;]8Y%KKIx	!F@R ST & =A8Q	8UC# %A!);<EGGCL"8_$mmD"''!*=5LC,/q)	 - =A A)/w
)K&22QmmFX$5rwwqz7JK
mmFX$5rwwqz7JK}}Vh%6(
8KLggi}}Vh%6(
8KL*-c3d*C&RS#C(!&r2a4A+1==rwwqz+J1+MPS+SW]*]HQK "1 "'r2a4A+,s7f*<HQK "1 +D qW $-Z %&#>>+KT3&&sD1 ,r3   )rj  r   rW   ri  N)	rC   rD   rE   rF   	Exceptionrf  rM   r  rH   rB   r3   r1   rb  rb  w  s    y 	<r3   rb  c                       \ rS rSrSrg)PDFFontErrori  rB   Nre  rB   r3   r1   r  r        r3   r  c                       \ rS rSrSrg)PDFUnicodeNotDefinedi  rB   Nre  rB   r3   r1   r  r    r  r3   r  StandardEncodingType1Cc                   `    \ rS rSrSS jrS rS rS rS rS r	S	 r
S
 rS rS rS rS rSrg)PDFFonti  Nc                    Xl         X l        [        UR                  SS5      5      U l        [        U R                  [        5      (       a  [        U R                  5      U l        [        UR                  SS5      5      U l	        [        UR                  SS5      5      U l        [        UR                  SS5      5      U l        [        UR                  SS5      5      U l        U=(       d    [        UR                  SS5      5      U l        [        UR                  S	S5      5      U l        [!        UR                  S
S5      5      U l        S=U l        U l        g )NFontNameunknownFlagsr   AscentDescentItalicAngleMissingWidthLeadingFontBBox)r   r   r   r   gMbP?)
descriptorr*   r   rH  r?   r#   r   r   r   flagsr   ascentdescentitalic_angledefault_widthleadingr   bboxhscalevscale)rP   r  r*   r  s       r1   rM   PDFFont.__init__  s    $ 
I!FGdmmY//(7DMz~~gq9:

x ;< 	1!=>%jnn]A&FG*Zi
~WX8Y.Z 	1!=>z~~j,GH	$((dkr3   c                     g)Nz	<PDFFont>rB   r(  s    r1   r)  PDFFont.__repr__  s    r3   c                     gNFrB   r(  s    r1   is_verticalPDFFont.is_vertical      r3   c                     gr  rB   r(  s    r1   is_multibytePDFFont.is_multibyte  r  r3   c                     [        U5      $ r=   )r$   rO   s     r1   decodePDFFont.decode  s    Dzr3   c                 4    U R                   U R                  -  $ r=   )r  r  r(  s    r1   
get_ascentPDFFont.get_ascent  s    {{T[[((r3   c                 4    U R                   U R                  -  $ r=   )r  r  r(  s    r1   get_descentPDFFont.get_descent  s    ||dkk))r3   c                     U R                   S   U R                   S   -
  nUS:X  a  U R                  * nXR                  -  $ )Nr[   r   )r  r  r  )rP   r/   s     r1   	get_widthPDFFont.get_width  s=    IIaL1%6###A;;r3   c                     U R                   S   U R                   S   -
  nUS:X  a  U R                  U R                  -
  nXR                  -  $ )Nr"   r   r   )r  r  r  r  )rP   r   s     r1   
get_heightPDFFont.get_height  sA    IIaL1%6dll*A;;r3   c                     U R                   U   U R                  -  $ ! [         a`     U R                   U R                  U5         U R                  -  s $ ! [        [        4 a    U R
                  U R                  -  s s $ f = ff = fr=   )r*   r  rU   	to_unichrr  r  rP   rV   s     r1   
char_widthPDFFont.char_width  s~    	8;;s#dkk11 	88{{4>>##67$++EE23 8))DKK778	8s,    
B*AB)B?BBBc                     g)Nr   rB   r  s     r1   	char_dispPDFFont.char_disp  s    r3   c                 L   ^  [        U 4S jT R                  U5       5       5      $ )Nc              3   F   >#    U  H  nTR                  U5      v   M     g 7fr=   )r  )r4  rV   rP   s     r1   r5  'PDFFont.string_width.<locals>.<genexpr>  s     B>C4??3''>s   !)sumr  )rP   r   s   ` r1   string_widthPDFFont.string_width  s    B4;;q>BBBr3   )r  r  r  r  r  r  r?   r  r  r  r  r*   r=   )rC   rD   rE   rF   rM   r)  r  r  r  r  r  r  r  r  r  r  rH   rB   r3   r1   r  r    s?     )*8Cr3   r  c                        \ rS rSrS rS rSrg)PDFSimpleFonti  c                 N   SU;   a  [        US   5      nO[        n[        U[        5      (       aV  [	        UR                  S[        5      5      n[        UR                  SS 5      5      n[        R                  " XV5      U l	        O$[        R                  " [	        U5      5      U l	        S U l
        SU;   aX  [        US   5      n[        5       U l
        [        U R                  [        UR                  5       5      5      R!                  5         ["        R%                  XU5        g )NEncodingBaseEncodingDifferences	ToUnicode)r   LITERAL_STANDARD_ENCODINGr#   dictr   rH  r   r	   rX   cid2unicoder  r   r   r   r   get_datarunr  rM   )rP   r  r*   specencodingrW   diffstrms           r1   rM   PDFSimpleFont.__init__  s     Z 01H0Hh%%^=V WXDhll=$?@D)66tBD)66|H7MND$[ 12D-/Dt'')ABFFH62r3   c                     U R                   (       a   U R                   R                  U5      $  U R                  U   $ ! [         a     Nf = f! [         a    [	        S U5      ef = fr=   )r  
get_unichrrU   r  r  r  s     r1   r  PDFSimpleFont.to_unichr-  sn    ''22377	2##C((    	2&tS11	2s   > A 
A
AA%)r  r  N)rC   rD   rE   rF   rM   r  rH   rB   r3   r1   r  r    s    ,	2r3   r  c                        \ rS rSrS rS rSrg)PDFType1Fonti:  c                   ^  [        US   5      U l         [
        R                  U R                  5      u  p4[        R                  XXB5        S
U;  a  SU;   a}  [        UR                  S5      5      U l        [        U R                   S   5      nU R                   R#                  5       S U n[%        ['        U5      5      nUR)                  5       U l        g ! [         a     [        (       a  [	        S5      eSU l         Nf = f! [         aw    [        UR                  S0 5      5      n[        UR                  SS5      5      m[        UR                  SS/S-  5      5      n[        U4S	 j[        U5       5       5      n GNMf = f)NBaseFontBaseFont is missingr  FontDescriptor	FirstCharr   Widthsr   c              3   6   >#    U  H  u  pUT-   U4v   M     g 7fr=   rB   r4  r.   r/   	firstchars      r1   r5  (PDFType1Font.__init__.<locals>.<genexpr>J  s     K9Jv1Y;*9J   r  FontFileLength1)r   basefontrU   r   r  r:   r@   r   rH  r   r   r  r%   r  rM   r   fontfiler  rJ   r   rX   r  )	rP   rsrcmgrr  r  r*   length1rQ   parserr  s	           @r1   rM   PDFType1Font.__init__<  sP   	&(j)9:DM
	L#0#<#<T]]#K Z 	t>T!jJ&>(
)CDDMi 89G==))+HW5D*74=9F%224D)  	&v"#899%DM	&  	L#DHH-=r$BCJ!$((;":;IA3s7 ;<FK69JKKF	Ls#   C !D 'DDA=FFc                      SU R                   -  $ )Nz<PDFType1Font: basefont=%r>r  r(  s    r1   r)  PDFType1Font.__repr__U  s    ,t}}<<r3   )r  r  r  NrC   rD   rE   rF   rM   r)  rH   rB   r3   r1   r  r  :  s    2=r3   r  c                       \ rS rSrS rSrg)PDFTrueTypeFontiZ  c                      SU R                   -  $ )Nz<PDFTrueTypeFont: basefont=%r>r  r(  s    r1   r)  PDFTrueTypeFont.__repr__\  s    /$--??r3   rB   N)rC   rD   rE   rF   r)  rH   rB   r3   r1   r  r  Z  s    @r3   r  c                        \ rS rSrS rS rSrg)PDFType3Fontia  c                   ^ [        UR                  SS5      5      m[        UR                  SS/S-  5      5      n[        U4S j[	        U5       5       5      nSU;   a  [        US   5      nO	SSUS   S.n[        R                  XX25        [        [        UR                  S	5      5      5      U l	        U R                  u  oPl        oPl        [        U R                  S
5      u  U l        U l        g )Nr  r   r  r   c              3   6   >#    U  H  u  pUT-   U4v   M     g 7fr=   rB   r  s      r1   r5  (PDFType3Font.__init__.<locals>.<genexpr>g  s     G5F6Aq{A&5Fr  r  r  )r  r  r  
FontMatrix)r   r   )r   rH  r   r  r%   r   r  rM   tuplematrixr  r  r  r   r  r  )rP   r  r  r*   r  rb   r  s         @r1   rM   PDFType3Font.__init__c  s    dhh{A67	DHHXs3w78GYv5FGGt##D)9$:;J$%!&*:&68Jt>Jtxx'=>?,0II)L![%6t{{F%K"dkr3   c                     g)Nz<PDFType3Font>rB   r(  s    r1   r)  PDFType3Font.__repr__s  s    r3   )r  r  r  r  r  Nr
  rB   r3   r1   r  r  a  s      r3   r  c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)
PDFCIDFontix  c                 >    [        US   5      U l        [        UR                  S0 5      5      U l        [        U R                  R                  SS5      5      n[        U R                  R                  SS5      5      nUS-   U-   R                  S	5      U l
         [        US
   5      n [        R                  " U5      U l         [        US   5      nS nSU;   aV  [!        UR                  S5      5      U l        [%        U R                  ['        U R"                  R)                  5       5      5      nS U l        SU;   aY  [!        US   5      n	[-        5       U l        [/        U R*                  ['        U	R)                  5       5      5      R1                  5         OnU R                  S;   a  U(       a   UR3                  5       U l        O@O? [        R4                  " U R                  U R                  R7                  5       5      U l        U R                  R7                  5       U l        U R8                  (       a  [;        [=        UR                  S/ 5      5      5      n
[?        S U
RA                  5        5       5      U l!        UR                  SSS/5      u  pS U4U l"        [?        S U
RA                  5        5       5      n
UnOD0 U l!        SU l"        [G        [=        UR                  S/ 5      5      5      n
UR                  SS5      n[H        RK                  XXS9  g ! [         a!    [        (       a  [	        S5      eSU l         GN0f = f! [         a    [        (       a  [	        S5      eSn GNf = f! [        R                   a0  n[        (       a  [	        U5      e[        5       U l         S nAGNS nAff = f! [         a    [        (       a  [	        S5      e0 n GN	f = f! [$        R                   a     GNf = f! [        R                   a  n S nAGNS nAff = f)Nr  r  r  CIDSystemInfoRegistrys   unknownOrdering   -asciir  zEncoding is unspecifiedr  zFontDescriptor is missing	FontFile2r  )zAdobe-Identityz	Adobe-UCSW2c              3   <   #    U  H  u  nu  nu  p4XU44v   M     g 7fr=   rB   )r4  rV   rb   r6   r7   s        r1   r5  &PDFCIDFont.__init__.<locals>.<genexpr>  s!     Y.2F3HRsHo.s   DW2ip  ic              3   2   #    U  H  u  nu  p#X4v   M     g 7fr=   rB   )r4  rV   r/   rb   s       r1   r5  r%    s     G}Va3(s   r   r   DWi  )r  )&r   r  rU   r   r  r   rH  cidsysteminfor   r  	cidcodingr   get_cmaprt  rf  r   r   r  rb  r   r  r  r   r   r  r  get_unicode_mapr  verticalr8   r   r  ry  dispsdefault_dispr2   r  rM   )rP   r  r  registryorderingrW   ry   r  ttfr  r*   r7   r/   r  s                 r1   rM   PDFCIDFont.__init__z  sj   	&(j)9:DM
 ("(EFt1155j*MNt1155j*MN"T/H4<<WE	Z 01D
	-DI
	#D)9$:;J
 *$()DEDMt}}&t}}'='='?@BC$[ 12D-/Dt'')ABFFH^^>>'*'='='?D$ #)#9#9$..$))J_J_Ja#b  		--/== DHHT2,>!?@FY&,,.YYDJhhusEl3GR!%r
DGGGFM DJ !D
488C+< =>F HHT40M6OA  	&v"#899%DM	&  	v"#<==D	 "" 	v"1o%DII	  	v"#>??J	$ $00 
 && sq   L M	 +M2 N9 1O" 	>O= 'MM	"M/.M/2N6%N11N69"OO"O:9O:=PPc                 @    SU R                   < SU R                  < S3$ )Nz<PDFCIDFont: basefont=z, cidcoding=rA  )r  r*  r(  s    r1   r)  PDFCIDFont.__repr__  s    <@MM4>>ZZr3   c                     U R                   $ r=   )r-  r(  s    r1   r  PDFCIDFont.is_vertical  s    }}r3   c                     g)NTrB   r(  s    r1   r  PDFCIDFont.is_multibyte  s    r3   c                 8    U R                   R                  U5      $ r=   )rt  r  rO   s     r1   r  PDFCIDFont.decode  s    yy%%r3   c                 L    U R                   R                  XR                  5      $ )zDReturns an integer for horizontal fonts, a tuple for vertical fonts.)r.  rH  r/  r  s     r1   r  PDFCIDFont.char_disp  s    zz~~c#4#455r3   c                      U R                   (       d  [        U5      eU R                   R                  U5      $ ! [         a    [        U R                  U5      ef = fr=   )r  rU   r  r  r*  r  s     r1   r  PDFCIDFont.to_unichr  sQ    	<##sm###..s33 	<&t~~s;;	<s	   69 !A)	r  r*  r)  rt  r/  r.  r  r  r-  N)rC   rD   rE   rF   rM   r)  r  r  r  r  r  rH   rB   r3   r1   r  r  x  s(    CJ[&6<r3   r  c                     U SS   H.  n[        US5       n[        X5      n[        U5        S S S 5        M0     g ! , (       d  f       MB  = f)Nr   rb)openr   print)argvfnamer   fonts       r1   mainrG    sE    ab%"5%D$K  
 	 s	   9
A	__main__):sysr   ior   cmapdbr   r   r   r   
encodingdbr	   r
   psparserr   r   r   r   r   r   r   pdftypesr   r   r   r   r   r   r   r   fontmetricsr   utilsr   r   r   r   r2   r8   r:   rJ   r   r   r   rb  r  r  r  LITERAL_TYPE1Cr  r  r  r  r  r  rG  rC   exitrD  rB   r3   r1   <module>rS     sN   
     "  " $ #      " "    !     " % $   .2& &#M #L X)XA AHL Lb	< 		< 	   23 X=C =CB!2G !2J== =@@l @ =  .]< ]<B zHHT#((^ r3   