Ë
    ^ãjqR  ã                   óš  — d Z ddlmZmZ ddlmZ ddlmZ ddlmZm	Z	 ddl
mZ ddlmZ ddlmZmZ dd	lmZ dd
lmZmZ ddlmZmZ ddlmZmZmZ d„ Z G d„ de«      Z G d„ de«      Z  G d„ de«      Z! G d„ de«      Z" G d„ de«      Z# G d„ de#«      Z$ G d„ de#«      Z%d„ Z& G d„ de#«      Z'dd œd!„Z( G d"„ d#e«      Z) G d$„ d%«      Z*y&)'zGlyphSets returned by a TTFont.é    )ÚABCÚabstractmethod)ÚMapping)Úcontextmanager)ÚcopyÚdeepcopy)ÚSimpleNamespace)ÚVector)ÚotRoundÚfixedToFloat)ÚdeprecateFunction)Ú	TransformÚDecomposedTransform)ÚTransformPenÚTransformPointPen)ÚDecomposingRecordingPenÚlerpRecordingsÚreplayRecordingc                 ó²  — d| v r| d   j                   S d}| j                  d| v rdnd«      }|�|j                  }d| v rrt        t	        | d   j
                  j                  «       «      «      }t        |j                  dd «      }|�*t        ||j                  j                  j                  «      }t        |«      D �cg c]  }t        |¬«      ‘Œ c}S c c}w )NÚfvarr   ÚGVARÚgvarÚCFF2ÚvarStore)ÚaxisTag)ÚaxesÚgetÚ	axisCountÚnextÚiterÚcffÚvaluesÚgetattrÚCharStringsÚmaxÚ
otVarStoreÚVarRegionListÚRegionAxisCountÚranger	   )Úfontr   r   r!   r   Úis         ú\/var/www/html/metafoliadorv2/venv/lib/python3.12/site-packages/fontTools/ttLib/ttGlyphSet.pyÚ_getVariationAxesr-      sÇ   € Ø��~Ø�F‰|× Ñ Ð ð €IØ�8‰8˜f¨™n‘F°&Ó9€DØÐØ—N‘Nˆ	Ø��~Ü”4˜˜V™×(Ñ(×/Ñ/Ó1Ó2Ó3ˆÜ˜3Ÿ?™?¨J¸Ó=ˆØÐÜØ˜8×.Ñ.×<Ñ<×LÑLóˆIô 16°iÓ0@ÖA¨1ŒO AÖ&ÒAÐAùÒAs   Â>Cc                   óx   — e Zd ZdZddddœd„Zedefd„«       Zed	„ «       Zd
„ Z	d„ Z
d„ Z ede¬«      d„ «       Zy)Ú_TTGlyphSetzlGeneric dict-like GlyphSet class that pulls metrics from hmtx and
    glyph shape from TrueType or CFF.
    ÚhmtxÚvmtxT©ÚhMetricsTagÚvMetricsTagÚrecalcBoundsc                óÐ  — || _         || _        t        |«      | _        |�|ni | _        i | _        |�|ni | _        d| _        g | _        g | _	        || _
        || _        || _        ||   j                  | _        t        |j!                  |«      dd «      | _        d | _        d | _        |r¼ddlm} t        |j!                  d«      dd «      | _        | j$                  �- || j$                  j,                  | j                  |«      | _        t        |j!                  d«      dd «      | _        | j&                  �. || j&                  j,                  | j                  |«      | _        y y y )Nr   Úmetrics©ÚVarStoreInstancerÚHVARÚtableÚVVAR)r5   r*   r-   r   ÚlocationÚrawLocationÚoriginalLocationÚdepthÚlocationStackÚrawLocationStackÚglyphsMappingÚ_hMetricsTagÚ_vMetricsTagr7   ÚhMetricsr#   r   ÚvMetricsÚ	hvarTableÚ	vvarTableÚfontTools.varLib.varStorer9   ÚVarStoreÚhvarInstancerÚvvarInstancer)Úselfr*   r=   rC   r3   r4   r5   r9   s           r,   Ú__init__z_TTGlyphSet.__init__-   sH  € ð )ˆÔØˆŒ	Ü% dÓ+ˆŒ	Ø$,Ð$8™¸bˆŒØˆÔØ,4Ð,@¡ÀbˆÔØˆŒ
ØˆÔØ "ˆÔØ*ˆÔØ'ˆÔØ'ˆÔØ˜[Ñ)×1Ñ1ˆŒÜ §¡¨Ó 5°yÀ$ÓGˆŒØˆŒØˆŒÙÝCä$ T§X¡X¨fÓ%5°wÀÓEˆDŒNØ�~‰~Ð)Ù%6Ø—N‘N×+Ñ+¨T¯Y©Y¸ó&�Ô"ô % T§X¡X¨fÓ%5°wÀÓEˆDŒNØ�~‰~Ð)Ù%6Ø—N‘N×+Ñ+¨T¯Y©Y¸ó&�Õ"ð *ð ó    Úresetc              #   ó¶  K  — | j                   j                  | j                  «       | j                  j                  | j                  «       |r'| j
                  j                  «       | _        i | _        n&| j                  j                  «       | _        i | _        | j                  j                  |«       | j                  j                  |«       	 d –— | j                   j                  «       | _        | j                  j                  «       | _        y # | j                   j                  «       | _        | j                  j                  «       | _        w xY w­w©N)	rA   Úappendr=   rB   r>   r?   r   ÚupdateÚpop)rN   r=   rQ   s      r,   ÚpushLocationz_TTGlyphSet.pushLocationV   s  è ø€ à×Ñ×!Ñ! $§-¡-Ô0Ø×Ñ×$Ñ$ T×%5Ñ%5Ô6ÙØ ×1Ñ1×6Ñ6Ó8ˆDŒMØ!ˆDÕà ŸM™M×.Ñ.Ó0ˆDŒMØ!ˆDÔØ�‰×Ñ˜XÔ&Ø×Ñ×Ñ Ô)ð	;ØŠJà ×.Ñ.×2Ñ2Ó4ˆDŒMØ#×4Ñ4×8Ñ8Ó:ˆDÕøð !×.Ñ.×2Ñ2Ó4ˆDŒMØ#×4Ñ4×8Ñ8Ó:ˆDÕüs   ‚CEÃD Ã?EÄA EÅEc              #   ó¶   K  — 	 | j                   }| xj                   dz  c_         |–— | xj                   dz  c_         y # | xj                   dz  c_         w xY w­w)Né   )r@   )rN   r@   s     r,   Ú	pushDepthz_TTGlyphSet.pushDepthi   s@   è ø€ ð	Ø—J‘JˆEØ�JŠJ˜!‰O�JØŠKà�JŠJ˜!‰OŽJøˆD�JŠJ˜!‰OŽJüs   ‚A„%? ©A¿AÁAc                 ó   — || j                   v S rS   ©rC   ©rN   Ú	glyphNames     r,   Ú__contains__z_TTGlyphSet.__contains__r   s   € Ø˜D×.Ñ.Ð.Ð.rP   c                 óH   — t        | j                  j                  «       «      S rS   )r    rC   Úkeys©rN   s    r,   Ú__iter__z_TTGlyphSet.__iter__u   s   € Ü�D×&Ñ&×+Ñ+Ó-Ó.Ð.rP   c                 ó,   — t        | j                  «      S rS   )ÚlenrC   rb   s    r,   Ú__len__z_TTGlyphSet.__len__x   s   € Ü�4×%Ñ%Ó&Ð&rP   z#use 'glyphName in glyphSet' instead)Úcategoryc                 ó   — || j                   v S rS   r\   r]   s     r,   Úhas_keyz_TTGlyphSet.has_key{   s   € ð ˜D×.Ñ.Ð.Ð.rP   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rO   r   ÚboolrW   rZ   r_   rc   rf   r   ÚDeprecationWarningri   © rP   r,   r/   r/   (   su   „ ñð ØØô&ðR ð;¨Dò ;ó ð;ð$ ñó ðò/ò/ò'ñ Ø-Ð8Jôñ/óñ/rP   r/   c                   ó&   ‡ — e Zd Zdˆ fd„	Zd„ Zˆ xZS )Ú_TTGlyphSetGlyfc                 óü   •— ||   | _         t        ‰| �	  ||| j                   | j                   j                  | j                   j                  |¬«       |j                  | j                   j                  «      | _        y )Nr2   )Ú	glyfTableÚsuperrO   ÚhmtxTagÚvmtxTagr   ÚgvarTagÚ	gvarTable)rN   r*   r=   ÚglyfTagr5   Ú	__class__s        €r,   rO   z_TTGlyphSetGlyf.__init__ƒ   sf   ø€ Ø˜g™ˆŒÜ‰ÑØØØ�N‰NØŸ™×.Ñ.ØŸ™×.Ñ.Ø%ð 	ô 	
ð Ÿ™ $§.¡.×"8Ñ"8Ó9ˆ�rP   c                 ó2   — t        | || j                  ¬«      S ©N©r5   )Ú_TTGlyphGlyfr5   r]   s     r,   Ú__getitem__z_TTGlyphSetGlyf.__getitem__�   s   € Ü˜D )¸$×:KÑ:KÔLÐLrP   )T©rj   rk   rl   rO   r€   Ú__classcell__©r{   s   @r,   rr   rr   ‚   s   ø„ õ
:öMrP   rr   c                   ó@   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zedefd„«       Zˆ xZ	S )Ú_TTGlyphSetCFFc                 óü   •— d|v rdnd}t        ||   j                  j                  «       «      d   j                  | _        t
        ‰| �  ||| j                  d|v rdndd|v rdnd¬«       | j                  |«       y )	Nr   zCFF r   ÚHMTXr0   ÚVMTXr1   ©r3   r4   )Úlistr!   r"   r$   ÚcharStringsru   rO   ÚsetLocation)rN   r*   r=   ÚtableTagr{   s       €r,   rO   z_TTGlyphSetCFF.__init__”   s‚   ø€ Ø# t™^‘6°ˆÜ  X¡× 2Ñ 2× 9Ñ 9Ó ;Ó<¸QÑ?×KÑKˆÔÜ‰ÑØØØ×ÑØ"(¨D¡.™°fØ"(¨D¡.™°fð 	ô 	
ð 	×Ñ˜Õ"rP   c                 ó   — t        | |«      S rS   )Ú_TTGlyphCFFr]   s     r,   r€   z_TTGlyphSetCFF.__getitem__    s   € Ü˜4 Ó+Ð+rP   c                 óÄ   — d | _         |rPddlm} t        | j                  dd «      }|�0 ||j
                  | j                  |«      }|j                  | _         y y d | _         y )Nr   r8   r   )ÚblenderrJ   r9   r#   r‹   r&   r   ÚinterpolateFromDeltas)rN   r=   r9   r   Ú	instancers        r,   rŒ   z_TTGlyphSetCFF.setLocation£   s_   € ØˆŒÙõ Dä˜t×/Ñ/°¸TÓBˆHØÐ#Ù-¨h×.AÑ.AÀ4Ç9Á9ÈhÓW�	Ø(×>Ñ>�•ð $ð  ˆD�LrP   rQ   c              #   ó  K  — 	 t         j                  | ||«      5 }| j                  | j                  «       |–— d d d «       | j                  | j                  «       y # 1 sw Y   Œ%xY w# | j                  | j                  «       w xY w­wrS   )r/   rW   rŒ   r=   )rN   r=   rQ   Úvalues       r,   rW   z_TTGlyphSetCFF.pushLocation±   ss   è ø€ ð	,Ü×)Ñ)¨$°¸%Ó@ð ÀEØ× Ñ  §¡Ô/Ø’÷ð
 ×Ñ˜TŸ]™]Õ+÷ð ûð
 ×Ñ˜TŸ]™]Õ+üs2   ‚B„A+ › A»A+ ÁBÁA(Á$A+ Á+BÂB)
rj   rk   rl   rO   r€   rŒ   r   rn   rW   r‚   rƒ   s   @r,   r…   r…   “   s-   ø„ ô
#ò,ò ð ð,¨Dò ,ó ô,rP   r…   c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )Ú_TTGlyphSetVARCc                 óÎ   •— || _         t        ‰| �	  ||t        j	                  |j                  «       «      |j                  |j                  ¬«       |d   j                  | _	        y )Nr‰   ÚVARC)
ÚglyphSetru   rO   ÚdictÚfromkeysÚgetGlyphOrderrD   rE   r;   Ú	varcTable)rN   r*   r=   rš   r{   s       €r,   rO   z_TTGlyphSetVARC.__init__½   s\   ø€ Ø ˆŒÜ‰ÑØØÜ�M‰M˜$×,Ñ,Ó.Ó/Ø ×-Ñ-Ø ×-Ñ-ð 	ô 	
ð ˜f™×+Ñ+ˆ�rP   c                 ó€   — | j                   }||j                  j                  vr| j                  |   S t	        | |«      S rS   )rž   ÚCoverageÚglyphsrš   Ú_TTGlyphVARC)rN   r^   Úvarcs      r,   r€   z_TTGlyphSetVARC.__getitem__È   s9   € Ø�~‰~ˆØ˜DŸM™M×0Ñ0Ñ0Ø—=‘= Ñ+Ð+Ü˜D )Ó,Ð,rP   r�   rƒ   s   @r,   r—   r—   ¼   s   ø„ ô	,ö-rP   r—   c                   ó2   — e Zd ZdZddœd„Zed„ «       Zd„ Zy)Ú_TTGlyphaS  Glyph object that supports the Pen protocol, meaning that it has
    .draw() and .drawPoints() methods that take a pen object as their only
    argument. Additionally there are 'width' and 'lsb' attributes, read from
    the 'hmtx' table.

    If the font contains a 'vmtx' table, there will also be 'height' and 'tsb'
    attributes.
    Tr~   c                ó€  — || _         || _        || _        |j                  |   \  | _        | _        |j                  �|j                  |   \  | _        | _        nd\  | _        | _        |j                  r�|j                  �‘|j                  j                  €|j                  j                  |«      n"|j                  j                  j                  |   }|j                  j                  €|dk  r"| xj                  |j                  |   z  c_        | j                  � |j                   �“|j                   j"                  €|j                  j                  |«      n"|j                   j"                  j                  |   }|j                   j"                  €|dk  r#| xj                  |j$                  |   z  c_        y y y y )N©NNiÿÿ  )rš   Únamer5   rF   ÚwidthÚlsbrG   ÚheightÚtsbr=   rH   ÚAdvWidthMapr*   Ú
getGlyphIDÚmappingrL   rI   ÚAdvHeightMaprM   )rN   rš   r^   r5   Úvaridxs        r,   rO   z_TTGlyph.__init__Ù   s’  € Ø ˆŒØˆŒ	Ø(ˆÔØ'×0Ñ0°Ñ;ÑˆŒ
�D”HØ×ÑÐ(Ø$,×$5Ñ$5°iÑ$@Ñ!ˆDŒK˜�à$.Ñ!ˆDŒK˜œØ×Ò ×!3Ñ!3Ð!?ð ×%Ñ%×1Ñ1Ð9ð —‘×(Ñ(¨Ô3à×'Ñ'×3Ñ3×;Ñ;¸IÑFð ð ×!Ñ!×-Ñ-Ð9¸VÀvÒ=MØ—
’
˜h×4Ñ4°VÑ<Ñ<•
Ø�;‰;Ð" x×'9Ñ'9Ð'Eð ×%Ñ%×2Ñ2Ð:ð —‘×(Ñ(¨Ô3à×'Ñ'×4Ñ4×<Ñ<¸YÑGð ð
 ×!Ñ!×.Ñ.Ð:¸fÈÒ>NØ—’˜x×5Ñ5°fÑ=Ñ=–ð ?Oð (FÐ"rP   c                 ó   — t         ‚)údDraw the glyph onto ``pen``. See fontTools.pens.basePen for details
        how that works.
        )ÚNotImplementedError©rN   Úpens     r,   Údrawz_TTGlyph.drawö   s
   € ô
 "Ð!rP   c                 ó>   — ddl m} | j                   ||«      «       y)úeDraw the glyph onto ``pen``. See fontTools.pens.pointPen for details
        how that works.
        r   )ÚSegmentToPointPenN)ÚfontTools.pens.pointPenrº   r·   )rN   r¶   rº   s      r,   Ú
drawPointsz_TTGlyph.drawPointsý   s   € õ 	>à�	‰	Ñ# CÓ(Õ)rP   N)rj   rk   rl   rm   rO   r   r·   r¼   rp   rP   r,   r¥   r¥   Ï   s+   „ ñð =Aô >ð: ñ"ó ð"ó*rP   r¥   c                   óp   ‡ — e Zd Zddœˆ fd„
Zed„ «       Zej                  d„ «       Zd„ Zd„ Zd„ Z	d	„ Z
ˆ xZS )
r   Tr~   c                ó†   •— t         ‰| �  |||¬«       |j                  r"|j                  €|j                  �d | _        y y y y r}   )ru   rO   r=   rH   ry   Ú_width)rN   rš   r^   r5   r{   s       €r,   rO   z_TTGlyphGlyf.__init__  sP   ø€ Ü‰Ñ˜ 9¸<ÐÔHð ×ÒØ×"Ñ"Ð*Ø×"Ñ"Ð.àˆD�Kð /ð +ð rP   c                 ó  — | j                   €s| j                  | j                  j                  j                  v r| j                  «        | j                   S | j                  j                  | j                     d   | _         | j                   S )Nr   )r¿   r¨   rš   ry   Ú
variationsÚ_getGlyphInstancerF   rb   s    r,   r©   z_TTGlyphGlyf.width  sk   € à�;‰;ÐØ�y‰y˜DŸM™M×3Ñ3×>Ñ>Ñ>à×&Ñ&Ô(ð �{‰{Ðð #Ÿm™m×4Ñ4°T·Y±YÑ?ÀÑB�”Ø�{‰{ÐrP   c                 ó   — || _         y rS   )r¿   )rN   r•   s     r,   r©   z_TTGlyphGlyf.width  s	   € àˆ�rP   c                 óÞ   — | j                  «       \  }}| j                  j                  «       5 }|rd}|j                  || j                  j                  |«       ddd«       y# 1 sw Y   yxY w)r³   r   N)Ú_getGlyphAndOffsetrš   rZ   r·   rt   ©rN   r¶   ÚglyphÚoffsetr@   s        r,   r·   z_TTGlyphGlyf.draw!  s_   € ð ×/Ñ/Ó1‰ˆˆvà�]‰]×$Ñ$Ó&ð 	=¨%ÙØ�à�J‰J�s˜DŸM™M×3Ñ3°VÔ<÷		=÷ 	=ñ 	=úó   ®,A#Á#A,c                 óÞ   — | j                  «       \  }}| j                  j                  «       5 }|rd}|j                  || j                  j                  |«       ddd«       y# 1 sw Y   yxY w)r¹   r   N)rÅ   rš   rZ   r¼   rt   rÆ   s        r,   r¼   z_TTGlyphGlyf.drawPoints-  se   € ð ×/Ñ/Ó1‰ˆˆvà�]‰]×$Ñ$Ó&ð 	C¨%ÙØ�à×Ñ˜S $§-¡-×"9Ñ"9¸6ÔB÷		C÷ 	Cñ 	CúrÉ   c                 ó  — | j                   j                  r'| j                   j                  �| j                  «       }n#| j                   j                  | j
                     }t        |d«      r| j                  |j                  z
  nd}||fS )NÚxMinr   )	rš   r=   ry   rÂ   rt   r¨   Úhasattrrª   rÌ   )rN   rÇ   rÈ   s      r,   rÅ   z_TTGlyphGlyf._getGlyphAndOffset9  sk   € Ø�=‰=×!Ò! d§m¡m×&=Ñ&=Ð&IØ×*Ñ*Ó,‰Eà—M‘M×+Ñ+¨D¯I©IÑ6ˆEä*1°%¸Ô*@�—‘˜EŸJ™JÒ&ÀaˆØ�fˆ}ÐrP   c           	      ó*  — ddl m} ddlm} ddlm} | j                  }|j                  }|j                  j                  | j                     }|j                  }|j                  }|j                  | j                  ||«      \  }	}
d\  }}|D ]™  } ||j                  |j                  «      }|sŒ#|j                   }d |v rY|€M|j                  | j                  ||«      \  }}|d   dk\  r|d   nt#        t%        t'        |d   «      «      «      } ||||«      }|	 ||«      |z  z  }	Œ› t)        || j                     «      }t+        ||	|| j,                  ¬«      \  }}}}|| _        || _        |j2                  €|| _        |j6                  €|| _        |S )Nr   )Ú	iup_delta)ÚGlyphCoordinates)ÚsupportScalarr§   rY   r~   )ÚfontTools.varLib.iuprÏ   ÚfontTools.ttLib.tables._g_l_y_frÐ   ÚfontTools.varLib.modelsrÑ   rš   rt   ry   rÁ   r¨   rF   rG   Ú_getCoordinatesAndControlsr=   r   ÚcoordinatesrŠ   r)   re   r   Ú_setCoordinatesr5   rª   r¬   rH   r©   rI   r«   )rN   rÏ   rÐ   rÑ   rš   rt   rÁ   rF   rG   rÖ   Ú_Ú
origCoordsÚendPtsÚvarÚscalarÚdeltaÚcontrolrÇ   r©   rª   r«   r¬   s                         r,   rÂ   z_TTGlyphGlyf._getGlyphInstanceB  sŸ  € Ý2ÝDÝ9à—=‘=ˆØ×&Ñ&ˆ	Ø×'Ñ'×2Ñ2°4·9±9Ñ=ˆ
Ø×$Ñ$ˆØ×$Ñ$ˆØ"×=Ñ=Ø�I‰I�x ó
‰ˆ�Qð (Ñˆ
�FØò 	<ˆCÙ" 8×#4Ñ#4°c·h±hÓ?ˆFÙØØ—O‘OˆEØ�u‰}ØÐ%Ø*3×*NÑ*NØŸ	™	 8¨Xó+Ñ'�J ð '.¨a¡j°A¢o˜ š
¼4ÄÄcÈ'ÐRSÉ*ÃoÓ@VÓ;Wð ñ " %¨°VÓ<�ØÑ+¨EÓ2°VÑ;Ñ;‰Kð	<ô  �Y˜tŸy™yÑ)Ó*ˆÜ"1Ø�; 	¸×8IÑ8Iô#
Ñˆˆs�F˜Cð ˆŒØˆŒØ×ÑÐ%àˆDŒJØ×ÑÐ%Ø ˆDŒKØˆrP   )rj   rk   rl   rO   Úpropertyr©   Úsetterr·   r¼   rÅ   rÂ   r‚   rƒ   s   @r,   r   r     sL   ø„ Ø<@ö 	ð ñó ðð ‡\�\ñó ðò
=ò
Còö)rP   r   c                   ó   — e Zd Zd„ Zy)r�   c                 ó’   — | j                   j                  | j                     j                  || j                   j                  «       y)r³   N)rš   r‹   r¨   r·   r‘   rµ   s     r,   r·   z_TTGlyphCFF.drawo  s1   € ð 	�‰×!Ñ! $§)¡)Ñ,×1Ñ1°#°t·}±}×7LÑ7LÕMrP   N)rj   rk   rl   r·   rp   rP   r,   r�   r�   n  s   „ óNrP   r�   c                 ó‚  — | €y| j                   dk(  rU| j                  }||   j                  }|j                  |d«      }| j                  }| j
                  }||cxk  xr |k  S c S | j                   dk(  r?ddlm}	 | j                  }
| j                  |	k7  r|| j                     }|r|
|d   z  }
|
dkD  S | j                   dk(  r"| j                  D ]  }t        ||||«      rŒ y y| j                   dk(  r"| j                  D ]  }t        ||||«      sŒ y y| j                   d	k(  rt        | j                  |||«       S y)
NTrY   r   é   )ÚNO_VARIATION_INDEXé   Fé   é   )ÚFormatÚ	AxisIndexr   r   ÚFilterRangeMinValueÚFilterRangeMaxValueÚfontTools.ttLib.tables.otTablesrå   ÚDefaultValueÚVarIdxÚConditionTableÚ_evaluateCondition)Ú	conditionr   r=   r“   Ú	axisIndexr   Ú	axisValueÚminValueÚmaxValuerå   r•   ÚdeltasÚsubconditions                r,   rñ   rñ   v  sk  € ØÐàà×Ñ˜1Òà×'Ñ'ˆ	Ø�y‘/×)Ñ)ˆØ—L‘L ¨!Ó,ˆ	Ø×0Ñ0ˆØ×0Ñ0ˆØ˜9Ö0¨Ñ0Ð0Ñ0Ð0Ø	×	Ñ	˜QÒ	åFà×&Ñ&ˆØ×ÑÐ1Ò1Ø˜y×/Ñ/Ñ0ˆFÙØ˜ ™Ñ"�Ø�q‰yÐØ	×	Ñ	˜QÒ	à%×4Ñ4ò 	ˆLÜ% l°D¸(ÀIÕNÙð	ð Ø	×	Ñ	˜QÒ	à%×4Ñ4ò 	ˆLÜ! ,°°hÀ	ÕJÙð	ð Ø	×	Ñ	˜QÒ	ä%Ø×$Ñ$ d¨H°ió
ð 
ð 	
ð rP   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)r¢   c                 óN  — ddl m}m} | j                  }|j                  }|j
                  j                  j                  | j                  «      }|j                  j                  |   }ddlm}	 ddlm}
 |j                  } |	|j                   || j                  j"                  «      }|j$                  D �]½  }|j&                  �F|j(                  j*                  |j&                     }t-        ||| j                  j"                  |«      sŒVi }|j.                  �Á|j0                  j2                  |j.                     }t5        |j6                  «      }|j8                  |k7  r|t;        ||j8                     d«      z  }t=        |«      t=        |«      k(  sJ t=        |«      t=        |«      f«       ‚t?        ||«      D ��ci c]  \  }}||   j@                  |“Œ }}}|jB                  |k7  r+||jB                     }tE        |«      }|jG                  |«       |jH                  }|jJ                  |jL                  z  }| j                  j                  jO                  ||«      5  | j                  jO                  ||«      5  | j                  |jP                  k(  }|s<	 |rddini } |jR                  |jP                  || j                  jT                  fi |¤Ž |r�|jY                  «       }|jP                  | j                  k7  r| j                  n|j                  }||jP                     }|rt[        ||«      }|j]                  |«       nt_        ||«      }|ja                  |«       ddd«       ddd«       �ŒÀ yc c}}w # tV        $ r d}Y Œ¶w xY w# 1 sw Y   Œ,xY w# 1 sw Y   �ŒïxY w)	r³   r   )ÚVarComponentFlagsrå   )ÚMultiVarStoreInstancerr8   Né   ÚresetUnspecifiedAxesT)1rí   rû   rå   rš   rž   r    r¡   Úindexr¨   ÚVarCompositeGlyphsÚVarCompositeGlyphÚfontTools.varLib.multiVarStorerü   rJ   r9   r   ÚMultiVarStorer=   Ú
componentsÚconditionIndexÚConditionListrð   rñ   ÚaxisIndicesIndexÚAxisIndicesListÚItemr
   Ú
axisValuesÚaxisValuesVarIndexÚfi2flre   Úzipr   ÚtransformVarIndexr   ÚapplyTransformDeltasÚ	transformÚflagsÚRESET_UNSPECIFIED_AXESrW   r^   ÚaddVarComponentr>   ÚAttributeErrorÚtoTransformr   r¼   r   r·   )rN   r¶   Ú
isPointPenrû   rå   rš   r£   ÚidxrÇ   rü   r9   r   r“   Úcomprò   r=   ÚaxisIndicesr
  r+   Úvr÷   r  rQ   ÚshouldDecomposeÚkwargsÚtÚcompGlyphSetÚgÚtPens                                r,   Ú_drawz_TTGlyphVARC._draw£  sK  € ÷	
ð
 —=‘=ˆØ×!Ñ!ˆØ�m‰m×"Ñ"×(Ñ(¨¯©Ó3ˆØ×'Ñ'×9Ñ9¸#Ñ>ˆåIÝ?à�}‰}ˆÙ*Ø×Ñ  d§m¡m×&<Ñ&<ó
ˆ	ð ×$Ñ$ó 8	)ˆDØ×"Ñ"Ð.Ø ×.Ñ.×=Ñ=¸d×>QÑ>QÑR�	Ü)Ø˜t T§]¡]×%;Ñ%;¸Yôð àˆHØ×$Ñ$Ð0Ø"×2Ñ2×7Ñ7¸×8MÑ8MÑN�Ü# D§O¡OÓ4�
Ø×*Ñ*Ð.@Ò@Ø¤%¨	°$×2IÑ2IÑ(JÈBÓ"OÑO�JÜ˜;Ó'¬3¨z«?Ò:ð Ü˜Ó$Ü˜
“Oð=ó Ð:ô <?¸{ÈJÓ;W×X±4°1°a˜D ™GŸO™O¨QÑ.ÐX�ÑXà×%Ñ%Ð);Ò;Ø" 4×#9Ñ#9Ñ:�Ü “~�Ø×)Ñ)¨&Ô1ØŸ™ˆIà—J‘JÐ!2×!IÑ!IÑIˆEØ—‘×'Ñ'×4Ñ4°X¸uÓEñ )Ø—]‘]×/Ñ/°¸%Ó@ñ )Ø&*§i¡i°4·>±>Ñ&A�Oá*ð	3ÙGLÐ&<¸dÑ%CÐRT˜FØ/˜C×/Ñ/Ø $§¡Ø )Ø $§¡× 9Ñ 9ñð #)ò	ñ 'Ø%×1Ñ1Ó3˜ð  $Ÿ~™~°·±Ò:ð !ŸMšMà!)×!2Ñ!2ð %ð
 )¨¯©Ñ8˜Ù%Ü#4°S¸!Ó#<˜DØŸL™L¨Õ.ä#/°°QÓ#7˜DØŸF™F 4œL÷9)÷)ñ )ñ78	)ùó$ Yøô,  .ò 3Ø.2šOð3ú÷)ð )ú÷)ñ )úsO   Æ=M7ÉNÉ<NÊ;M=ËBNÍ#NÍ=N	ÎNÎ
N	ÎNÎNÎNÎN$	c                 ó(   — | j                  |d«       y )NF©r!  rµ   s     r,   r·   z_TTGlyphVARC.drawó  s   € Ø�
‰
�3˜ÕrP   c                 ó(   — | j                  |d«       y )NTr#  rµ   s     r,   r¼   z_TTGlyphVARC.drawPointsö  s   € Ø�
‰
�3˜ÕrP   N)rj   rk   rl   r!  r·   r¼   rp   rP   r,   r¢   r¢   ¢  s   „ òN)ò`órP   r¢   Tr~   c                ó  — t        |«      dk\  sJ ‚|d   d   }|d   d   }|d   d   }|d   d   }t        d«      D ]  }|d= Œ | j                  «       r†t        |«      t        | j                  «      k(  sJ ‚| j                  D �	cg c]  }	t	        |	«      ‘Œ c}	| _        t        || j                  «      D ]!  \  }
}	t        |	d«      sŒ|
\  |	_        |	_        Œ# nI| j                  dk(  rt        |«      dk(  s,J ‚t        |«      t        | j                  «      k(  sJ ‚|| _
        |r| j                  |«       t        ||z
  «      }t        ||z
  «      }t        | j                  |z
  «      }t        || j                  z
  «      }||||fS c c}	w )	Nrç   éüÿÿÿr   éýÿÿÿéþÿÿÿrY   éÿÿÿÿÚx)re   r)   ÚisCompositer  r   r  rÍ   r*  ÚyÚnumberOfContoursrÖ   r5   r   rÌ   ÚyMax)rÇ   Úcoordrt   r5   Ú	leftSideXÚ
rightSideXÚtopSideYÚbottomSideYrØ   r  ÚpÚhorizontalAdvanceWidthÚverticalAdvanceWidthÚleftSideBearingÚtopSideBearings                  r,   r×   r×   ú  s—  € äˆu‹:˜Š?Ðˆ?Ø�b‘	˜!‘€IØ�r‘˜1‘€JØ�R‰y˜‰|€HØ˜‘)˜A‘,€Kä�1‹Xò ˆØ�"‰Iðð ×ÑÔÜ�5‹zœS ×!1Ñ!1Ó2Ò2Ð2Ð2Ø38×3CÑ3CÖD¨4œD �JÒDˆÔÜ˜5 %×"2Ñ"2Ó3ò 	#‰GˆAˆtÜ�t˜SÕ!Ø!"‘�”˜�ñ	#ð 
×	Ñ	 1Ò	$Ü�5‹z˜QŠÐˆä�5‹zœS ×!2Ñ!2Ó3Ò3Ð3Ð3Ø!ˆÔáØ×Ñ˜9Ô%ä$ Z°)Ñ%;Ó<ÐÜ" 8¨kÑ#9Ó:ÐÜ˜eŸj™j¨9Ñ4Ó5€OÜ˜X¨¯
©
Ñ2Ó3€NàØØØð	ð ùò# Es   ÂFc                   ó0   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zd„ Zy)	ÚLerpGlyphSeta+  A glyphset that interpolates between two other glyphsets.

    Factor is typically between 0 and 1. 0 means the first glyphset,
    1 means the second glyphset, and 0.5 means the average of the
    two glyphsets. Other values are possible, and can be useful to
    extrapolate. Defaults to 0.5.
    c                 ó.   — || _         || _        || _        y rS   )Ú	glyphset1Ú	glyphset2Úfactor)rN   r<  r=  r>  s       r,   rO   zLerpGlyphSet.__init__)  s   € Ø"ˆŒØ"ˆŒØˆ�rP   c                 óh   — || j                   v r|| j                  v rt        || «      S t        |«      ‚rS   )r<  r=  Ú	LerpGlyphÚKeyError©rN   Ú	glyphnames     r,   r€   zLerpGlyphSet.__getitem__.  s1   € Ø˜Ÿ™Ñ&¨9¸¿¹Ñ+FÜ˜Y¨Ó-Ð-Ü�yÓ!Ð!rP   c                 ó>   — || j                   v xr || j                  v S rS   )r<  r=  rB  s     r,   r_   zLerpGlyphSet.__contains__3  s   € Ø˜DŸN™NÐ*ÒJ¨y¸D¿N¹NÐ/JÐJrP   c                 óŠ   — t        | j                  «      }t        | j                  «      }t        |j	                  |«      «      S rS   )Úsetr<  r=  r    Úintersection©rN   Úset1Úset2s      r,   rc   zLerpGlyphSet.__iter__6  s4   € Ü�4—>‘>Ó"ˆÜ�4—>‘>Ó"ˆÜ�D×%Ñ% dÓ+Ó,Ð,rP   c                 óŠ   — t        | j                  «      }t        | j                  «      }t        |j	                  |«      «      S rS   )rF  r<  r=  re   rG  rH  s      r,   rf   zLerpGlyphSet.__len__;  s4   € Ü�4—>‘>Ó"ˆÜ�4—>‘>Ó"ˆÜ�4×$Ñ$ TÓ*Ó+Ð+rP   N)g      à?)	rj   rk   rl   rm   rO   r€   r_   rc   rf   rp   rP   r,   r:  r:     s!   „ ñóò
"ò
Kò-ó
,rP   r:  c                   ó   — e Zd Zd„ Zd„ Zy)r@  c                 ó    — || _         || _        y rS   )ÚglyphsetrC  )rN   rC  rN  s      r,   rO   zLerpGlyph.__init__B  s   € Ø ˆŒØ"ˆ�rP   c                 óÊ  — t        | j                  j                  «      }| j                  j                  | j                     j	                  |«       t        | j                  j
                  «      }| j                  j
                  | j                     j	                  |«       | j                  j                  }t        t        |j                  |j                  |«      |«       y rS   )
r   rN  r<  rC  r·   r=  r>  r   r   r•   )rN   r¶   Ú
recording1Ú
recording2r>  s        r,   r·   zLerpGlyph.drawF  s›   € Ü,¨T¯]©]×-DÑ-DÓEˆ
Ø�‰×Ñ §¡Ñ/×4Ñ4°ZÔ@Ü,¨T¯]©]×-DÑ-DÓEˆ
Ø�‰×Ñ §¡Ñ/×4Ñ4°ZÔ@à—‘×%Ñ%ˆäœ z×'7Ñ'7¸×9IÑ9IÈ6ÓRÐTWÕXrP   N)rj   rk   rl   rO   r·   rp   rP   r,   r@  r@  A  s   „ ò#óYrP   r@  N)+rm   Úabcr   r   Úcollections.abcr   Ú
contextlibr   r   r   Útypesr	   ÚfontTools.misc.vectorr
   ÚfontTools.misc.fixedToolsr   r   r  ÚfontTools.misc.loggingToolsr   ÚfontTools.misc.transformr   r   ÚfontTools.pens.transformPenr   r   ÚfontTools.pens.recordingPenr   r   r   r-   r/   rr   r…   r—   r¥   r   r�   rñ   r¢   r×   r:  r@  rp   rP   r,   ú<module>r\     sÐ   ðÙ %ç #Ý #Ý %ß Ý !Ý (ß DÝ 9ß Cß G÷ñ òBô(W/�'ô W/ôtM�kô Mô"&,�[ô &,ôR-�kô -ô&4*ˆsô 4*ône�8ô eôPN�(ô Nò)ôXU�8ô Uðp >Bô #ôL,�7ô ,÷BYò YrP   