Ë
    £ehDD  ã                   ó”  — 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  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                   ót   — e Zd ZdZ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.
    T©ÚrecalcBoundsc                óp  — || _         || _        d| j                  v r2| j                  d   j                  D �ci c]  }|j                  d“Œ c}ni | _        |�|ni | _        i | _        |�|ni | _        d| _        g | _	        g | _
        || _        |d   j                  | _        t        |j                  d«      dd «      | _        d | _        |reddlm} t        |j                  d«      dd «      | _        | j"                  �1 || j"                  j(                  |d   j                  |«      | _        y y y c c}w )	NÚfvarr   ÚhmtxÚvmtxÚmetrics©ÚVarStoreInstancerÚHVARÚtable)r   ÚfontÚaxesÚaxisTagÚdefaultLocationNormalizedÚlocationÚrawLocationÚoriginalLocationÚdepthÚlocationStackÚrawLocationStackÚglyphsMappingr   ÚhMetricsÚgetattrÚgetÚvMetricsÚ	hvarTableÚfontTools.varLib.varStorer   ÚVarStoreÚhvarInstancer)Úselfr"   r&   r,   r   Úaxisr   s          úX/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/fontTools/ttLib/ttGlyphSet.pyÚ__init__z_TTGlyphSet.__init__   s)  € Ø(ˆÔØˆŒ	ð ˜Ÿ™Ñ"ð *.¯©°6Ñ):×)?Ñ)?Ö@ ˆT�\‰\˜1‰_Ó@àð 	Ô&ð
 %-Ð$8™¸bˆŒØˆÔØ,4Ð,@¡ÀbˆÔØˆŒ
ØˆÔØ "ˆÔØ*ˆÔØ˜V™×,Ñ,ˆŒÜ §¡¨Ó 0°)¸TÓBˆŒØˆŒÙÝCä$ T§X¡X¨fÓ%5°wÀÓEˆDŒNØ�~‰~Ð)Ù%6Ø—N‘N×+Ñ+¨T°&©\×->Ñ->Àó&�Õ"ð *ð	 ùò As   ¸D3Úresetc              #   óæ  K  — | j                   j                  | j                  «       | j                  j                  | j                  «       |r?| j
                  j                  «       | _        | j                  j                  «       | _        n&| j                  j                  «       | _        i | _        | j                  j                  |«       | j                  j                  |«       	 d –— | j                   j                  «       | _        | j                  j                  «       | _        y # | j                   j                  «       | _        | j                  j                  «       | _        w xY w­w©N)
r*   Úappendr&   r+   r'   r(   r   r%   ÚupdateÚpop)r5   r&   r9   s      r7   ÚpushLocationz_TTGlyphSet.pushLocation5   s  è ø€ à×Ñ×!Ñ! $§-¡-Ô0Ø×Ñ×$Ñ$ T×%5Ñ%5Ô6ÙØ ×1Ñ1×6Ñ6Ó8ˆDŒMØ#×=Ñ=×BÑBÓDˆ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(E1Ã+D. Ã/?E1Ä.A E.Å.E1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)   )r5   r)   s     r7   Ú	pushDepthz_TTGlyphSet.pushDepthH   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 r;   ©r,   ©r5   Ú	glyphNames     r7   Ú__contains__z_TTGlyphSet.__contains__Q   s   € Ø˜D×.Ñ.Ð.Ð.ó    c                 óH   — t        | j                  j                  «       «      S r;   )Úiterr,   Úkeys©r5   s    r7   Ú__iter__z_TTGlyphSet.__iter__T   s   € Ü�D×&Ñ&×+Ñ+Ó-Ó.Ð.rH   c                 ó,   — t        | j                  «      S r;   )Úlenr,   rL   s    r7   Ú__len__z_TTGlyphSet.__len__W   s   € Ü�4×%Ñ%Ó&Ð&rH   z#use 'glyphName in glyphSet' instead)Úcategoryc                 ó   — || j                   v S r;   rD   rE   s     r7   Úhas_keyz_TTGlyphSet.has_keyZ   s   € ð ˜D×.Ñ.Ð.Ð.rH   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r8   r   Úboolr?   rB   rG   rM   rP   r   ÚDeprecationWarningrS   © rH   r7   r   r      sp   „ ñð GKô ð8 ð;¨Dò ;ó ð;ð$ ñó ðò/ò/ò'ñ Ø-Ð8Jôñ/óñ/rH   r   c                   ó&   ‡ — e Zd Zdˆ fd„	Zd„ Zˆ xZS )Ú_TTGlyphSetGlyfc                 ó€   •— |d   | _         t        ‰| �	  ||| j                   |¬«       |j                  d«      | _        y )NÚglyfr   Úgvar)Ú	glyfTableÚsuperr8   r/   Ú	gvarTable)r5   r"   r&   r   Ú	__class__s       €r7   r8   z_TTGlyphSetGlyf.__init__b   s8   ø€ Ø˜f™ˆŒÜ‰Ñ˜˜x¨¯©ÀlÐÔSØŸ™ &Ó)ˆ�rH   c                 ó2   — t        | || j                  ¬«      S )Nr   )Ú_TTGlyphGlyfr   rE   s     r7   Ú__getitem__z_TTGlyphSetGlyf.__getitem__g   s   € Ü˜D )¸$×:KÑ:KÔLÐLrH   )T©rT   rU   rV   r8   rf   Ú__classcell__©rc   s   @r7   r\   r\   a   s   ø„ õ*ö
MrH   r\   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                  «       | j                  |«       y )NÚCFF2zCFF r   )ÚlistÚcffÚvaluesÚCharStringsÚcharStringsra   r8   ÚsetLocation)r5   r"   r&   ÚtableTagrc   s       €r7   r8   z_TTGlyphSetCFF.__init__l   s`   ø€ Ø# t™^‘6°ˆÜ  X¡× 2Ñ 2× 9Ñ 9Ó ;Ó<¸QÑ?×KÑKˆÔÜ‰Ñ˜˜x¨×)9Ñ)9Ô:Ø×Ñ˜Õ"rH   c                 ó   — t        | |«      S r;   )Ú_TTGlyphCFFrE   s     r7   rf   z_TTGlyphSetCFF.__getitem__r   s   € Ü˜4 Ó+Ð+rH   c                 óÞ   — d | _         |r]ddlm} t        | j                  dd «      }|�= ||j
                  | j                  d   j                  |«      }|j                  | _         y y d | _         y )Nr   r   ÚvarStorer   )	Úblenderr2   r   r.   rr   Ú
otVarStorer"   r#   ÚinterpolateFromDeltas)r5   r&   r   rx   Ú	instancers        r7   rs   z_TTGlyphSetCFF.setLocationu   so   € ØˆŒÙõ Dä˜t×/Ñ/°¸TÓBˆHØÐ#Ù-Ø×'Ñ'¨¯©°6Ñ):×)?Ñ)?Àó�	ð  )×>Ñ>�•ð	 $ð  ˆD�LrH   r9   c              #   ó  K  — | j                  |«       t        j                  | ||«      5 }	 |–— | j                  | j                  «       	 d d d «       y # | j                  | j                  «       w xY w# 1 sw Y   y xY w­wr;   )rs   r   r?   r&   )r5   r&   r9   Úvalues       r7   r?   z_TTGlyphSetCFF.pushLocation…   ss   è ø€ à×Ñ˜Ô"Ü×%Ñ% d¨H°eÓ<ð 	0Àð0Ø’à× Ñ  §¡Õ/÷		0ð 	0øð × Ñ  §¡Õ/ú÷		0ð 	0üs2   ‚)B«A6­A±A6Á	BÁA3Á3A6Á6A?Á;B)
rT   rU   rV   r8   rf   rs   r   rX   r?   rh   ri   s   @r7   rk   rk   k   s-   ø„ ô#ò,ò ð  ð0¨Dò 0ó ô0rH   rk   c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )Ú_TTGlyphSetVARCc                 ó^   •— || _         t        ‰| �	  |||«       |d   j                  | _        y )NÚVARC)ÚglyphSetra   r8   r!   Ú	varcTable)r5   r"   r&   rƒ   rc   s       €r7   r8   z_TTGlyphSetVARC.__init__�   s,   ø€ Ø ˆŒÜ‰Ñ˜˜x¨Ô2Ø˜f™×+Ñ+ˆ�rH   c                 ó€   — | j                   }||j                  j                  vr| j                  |   S t	        | |«      S r;   )r„   ÚCoverageÚglyphsrƒ   Ú_TTGlyphVARC)r5   rF   Úvarcs      r7   rf   z_TTGlyphSetVARC.__getitem__•   s9   € Ø�~‰~ˆØ˜DŸM™M×0Ñ0Ñ0Ø—=‘= Ñ+Ð+Ü˜D )Ó,Ð,rH   rg   ri   s   @r7   r€   r€   �   s   ø„ ô,ö
-rH   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                  �w|j                  j                  €|j                  j                  |«      n"|j                  j                  j                  |   }| xj                  |j                  |   z  c_        y y y )N©NN)rƒ   Únamer   r-   ÚwidthÚlsbr0   ÚheightÚtsbr&   r1   ÚAdvWidthMapr"   Ú
getGlyphIDÚmappingr4   )r5   rƒ   rF   r   Úvaridxs        r7   r8   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ð ð
 �JŠJ˜(×0Ñ0°Ñ8Ñ8ŽJð "@ÐrH   c                 ó   — t         ‚)údDraw the glyph onto ``pen``. See fontTools.pens.basePen for details
        how that works.
        )ÚNotImplementedError©r5   Úpens     r7   Údrawz_TTGlyph.draw¸   s
   € ô
 "Ð!rH   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œ   )r5   r›   rŸ   s      r7   Ú
drawPointsz_TTGlyph.drawPoints¿   s   € õ 	>à�	‰	Ñ# CÓ(Õ)rH   N)rT   rU   rV   rW   r8   r   rœ   r¡   rZ   rH   r7   r‹   r‹   œ   s+   „ ñð =Aô 9ð$ ñ"ó ð"ó*rH   r‹   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)re   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ƒ   rB   rœ   r`   ©r5   r›   ÚglyphÚoffsetr)   s        r7   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ƒ   rB   r¡   r`   r¥   s        r7   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&   rb   Ú_getGlyphInstancer`   rŽ   Úhasattrr�   r«   )r5   r¦   r§   s      r7   r¤   z_TTGlyphGlyf._getGlyphAndOffsetá   sk   € Ø�=‰=×!Ò! d§m¡m×&=Ñ&=Ð&IØ×*Ñ*Ó,‰Eà—M‘M×+Ñ+¨D¯I©IÑ6ˆEä*1°%¸Ô*@�—‘˜EŸJ™JÒ&ÀaˆØ�fˆ}ÐrH   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                  €|| _        || _        |S )Nr   )Ú	iup_delta)ÚGlyphCoordinates)ÚsupportScalarr�   rA   r   )ÚfontTools.varLib.iupr¯   ÚfontTools.ttLib.tables._g_l_y_fr°   ÚfontTools.varLib.modelsr±   rƒ   r`   rb   Ú
variationsrŽ   r-   r0   Ú_getCoordinatesAndControlsr&   r#   Úcoordinatesrn   ÚrangerO   r   Ú_setCoordinatesr   r�   r’   r1   r�   r‘   )r5   r¯   r°   r±   rƒ   r`   rµ   r-   r0   r·   Ú_Ú
origCoordsÚendPtsÚvarÚscalarÚdeltaÚcontrolr¦   r�   r�   r‘   r’   s                         r7   r¬   z_TTGlyphGlyf._getGlyphInstanceê   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ØˆrH   N)rT   rU   rV   rœ   r¡   r¤   r¬   rZ   rH   r7   re   re   È   s   „ ò
=ò
Còó(rH   re   c                   ó   — e Zd Zd„ Zy)rv   c                 ó’   — | j                   j                  | j                     j                  || j                   j                  «       y)r˜   N)rƒ   rr   rŽ   rœ   ry   rš   s     r7   rœ   z_TTGlyphCFF.draw  s1   € ð 	�‰×!Ñ! $§)¡)Ñ,×1Ñ1°#°t·}±}×7LÑ7LÕMrH   N)rT   rU   rV   rœ   rZ   rH   r7   rv   rv     s   „ óNrH   rv   c                 óJ  — | j                   dk(  rU| j                  }||   j                  }|j                  |d«      }| j                  }| j
                  }||cxk  xr |k  S c S | j                   dk(  r&| j                  }	|	|| j                     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)	NrA   r   é   é   FTé   é   )ÚFormatÚ	AxisIndexr$   r/   ÚFilterRangeMinValueÚFilterRangeMaxValueÚDefaultValueÚVarIdxÚConditionTableÚ_evaluateConditionÚconditionTable)Ú	conditionÚfvarAxesr&   r|   Ú	axisIndexr$   Ú	axisValueÚminValueÚmaxValuer~   Úsubconditions              r7   rÏ   rÏ     sJ  € Ø×Ñ˜1Òà×'Ñ'ˆ	Ø˜9Ñ%×-Ñ-ˆØ—L‘L ¨!Ó,ˆ	Ø×0Ñ0ˆØ×0Ñ0ˆØ˜9Ö0¨Ñ0Ð0Ñ0Ð0Ø	×	Ñ	˜QÒ	à×&Ñ&ˆØ�˜9×+Ñ+Ñ,¨QÑ/Ñ/ˆØ�q‰yÐØ	×	Ñ	˜QÒ	à%×4Ñ4ò 	ˆLÜ% l°H¸hÈ	ÕRÙð	ð Ø	×	Ñ	˜QÒ	à%×4Ñ4ò 	ˆLÜ! ,°¸(ÀIÕNÙð	ð Ø	×	Ñ	˜QÒ	ä%Ø×$Ñ$ h°¸)ó
ð 
ð 	
ð rH   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                  d   j                   } |	|j"                  || j                  j$                  «      }|j&                  D �]À  }|j(                  |j*                  z  rF|j,                  j.                  |j0                     }t3        ||| j                  j$                  |«      sŒci }|j4                  �Á|j6                  j8                  |j4                     }t;        |j<                  «      }|j>                  |k7  r|tA        ||j>                     d«      z  }tC        |«      tC        |«      k(  sJ tC        |«      tC        |«      f«       ‚tE        ||«      D ��ci c]  \  }}||   jF                  |“Œ }}}|jH                  |k7  r+||jH                     }tK        |«      }|jM                  |«       |jN                  }|j(                  |jP                  z  }| j                  j                  jS                  ||«      5  | j                  jS                  ||«      5  | j                  |jT                  k(  }|s2	 |jW                  |jT                  || j                  jX                  «       |r�|j]                  «       }|jT                  | j                  k7  r| j                  n|j                  }||jT                     }|rt_        ||«      }|ja                  |«       ntc        ||«      }|je                  |«       ddd«       ddd«       �ŒÃ yc c}}w # tZ        $ r d}Y Œ¶w xY w# 1 sw Y   Œ,xY w# 1 sw Y   �ŒòxY w)	r˜   r   )ÚVarComponentFlagsÚNO_VARIATION_INDEX)ÚMultiVarStoreInstancerr   r   Né   T)3ÚfontTools.ttLib.tables.otTablesrÚ   rÛ   rƒ   r„   r†   r‡   ÚindexrŽ   ÚVarCompositeGlyphsÚVarCompositeGlyphÚfontTools.varLib.multiVarStorerÜ   r2   r   r"   r#   ÚMultiVarStorer&   Ú
componentsÚflagsÚHAVE_CONDITIONÚConditionListrÎ   ÚconditionIndexrÏ   ÚaxisIndicesIndexÚAxisIndicesListÚItemr
   Ú
axisValuesÚaxisValuesVarIndexÚfi2flrO   Úzipr$   ÚtransformVarIndexr   ÚapplyTransformDeltasÚ	transformÚRESET_UNSPECIFIED_AXESr?   rF   ÚaddVarComponentr'   ÚAttributeErrorÚtoTransformr   r¡   r   rœ   )r5   r›   Ú
isPointPenrÚ   rÛ   rƒ   r‰   Úidxr¦   rÜ   r   rÒ   r|   ÚcomprÑ   r&   ÚaxisIndicesrì   ÚiÚvÚdeltasrò   r9   ÚshouldDecomposeÚtÚcompGlyphSetÚgÚtPens                               r7   Ú_drawz_TTGlyphVARC._drawA  sI  € ÷	
ð
 —=‘=ˆØ×!Ñ!ˆØ�m‰m×"Ñ"×(Ñ(¨¯©Ó3ˆØ×'Ñ'×9Ñ9¸#Ñ>ˆåIÝ?à—=‘= Ñ(×-Ñ-ˆÙ*Ø×Ñ ¨$¯-©-×*@Ñ*@ó
ˆ	ð ×$Ñ$ó 6	)ˆDØ�z‰zÐ-×<Ñ<Ò<Ø ×.Ñ.×=Ñ=¸d×>QÑ>QÑR�	Ü)Ø˜x¨¯©×)?Ñ)?Àôð àˆHØ×$Ñ$Ð0Ø"×2Ñ2×7Ñ7¸×8MÑ8MÑN�Ü# D§O¡OÓ4�
Ø×*Ñ*Ð.@Ò@Ø¤%¨	°$×2IÑ2IÑ(JÈBÓ"OÑO�JÜ˜;Ó'¬3¨z«?Ò:ð Ü˜Ó$Ü˜
“Oð=ó Ð:ô
 8;¸;È
Ó7S÷Ù/3¨q°!�H˜Q‘K×'Ñ'¨Ñ*ð�ñ ð ×%Ñ%Ð);Ò;Ø" 4×#9Ñ#9Ñ:�Ü “~�Ø×)Ñ)¨&Ô1ØŸ™ˆIà—J‘JÐ!2×!IÑ!IÑIˆEØ—‘×'Ñ'×4Ñ4°X¸uÓEñ )Ø—]‘]×/Ñ/°¸%Ó@ñ )Ø&*§i¡i°4·>±>Ñ&A�Oá*ð3Ø×/Ñ/Ø $§¡°	¸4¿=¹=×;TÑ;Tôñ 'Ø%×1Ñ1Ó3˜ð  $Ÿ~™~°·±Ò:ð !ŸMšMà!)×!2Ñ!2ð %ð
 )¨¯©Ñ8˜Ù%Ü#4°S¸!Ó#<˜DØŸL™L¨Õ.ä#/°°QÓ#7˜DØŸF™F 4œL÷1)÷)ñ )ñ;6	)ùó$øô(  .ò 3Ø.2šOð3ú÷)ð )ú÷)ñ )úsO   ÇNÉ9N*ÊNÊ31NË$BNÍ3N*ÎN	ÎNÎN	ÎNÎN'Î#N*Î*N4	c                 ó(   — | j                  |d«       y )NF©r  rš   s     r7   rœ   z_TTGlyphVARC.draw�  s   € Ø�
‰
�3˜ÕrH   c                 ó(   — | j                  |d«       y )NTr  rš   s     r7   r¡   z_TTGlyphVARC.drawPoints’  s   € Ø�
‰
�3˜ÕrH   N)rT   rU   rV   r  rœ   r¡   rZ   rH   r7   rˆ   rˆ   @  s   „ òL)ò\órH   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   éýÿÿÿéþÿÿÿrA   éÿÿÿÿÚx)rO   r¸   ÚisCompositerä   r   rï   r­   r  ÚyÚnumberOfContoursr·   r   r   r«   ÚyMax)r¦   Úcoordr`   r   Ú	leftSideXÚ
rightSideXÚtopSideYÚbottomSideYrº   rù   ÚpÚhorizontalAdvanceWidthÚverticalAdvanceWidthÚleftSideBearingÚtopSideBearings                  r7   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 r;   )Ú	glyphset1Ú	glyphset2Úfactor)r5   r  r  r   s       r7   r8   zLerpGlyphSet.__init__Å  s   € Ø"ˆŒØ"ˆŒØˆ�rH   c                 óh   — || j                   v r|| j                  v rt        || «      S t        |«      ‚r;   )r  r  Ú	LerpGlyphÚKeyError©r5   Ú	glyphnames     r7   rf   zLerpGlyphSet.__getitem__Ê  s1   € Ø˜Ÿ™Ñ&¨9¸¿¹Ñ+FÜ˜Y¨Ó-Ð-Ü�yÓ!Ð!rH   c                 ó>   — || j                   v xr || j                  v S r;   )r  r  r$  s     r7   rG   zLerpGlyphSet.__contains__Ï  s   € Ø˜DŸN™NÐ*ÒJ¨y¸D¿N¹NÐ/JÐJrH   c                 óŠ   — t        | j                  «      }t        | j                  «      }t        |j	                  |«      «      S r;   )Úsetr  r  rJ   Úintersection©r5   Úset1Úset2s      r7   rM   zLerpGlyphSet.__iter__Ò  s4   € Ü�4—>‘>Ó"ˆÜ�4—>‘>Ó"ˆÜ�D×%Ñ% dÓ+Ó,Ð,rH   c                 óŠ   — t        | j                  «      }t        | j                  «      }t        |j	                  |«      «      S r;   )r(  r  r  rO   r)  r*  s      r7   rP   zLerpGlyphSet.__len__×  s4   € Ü�4—>‘>Ó"ˆÜ�4—>‘>Ó"ˆÜ�4×$Ñ$ TÓ*Ó+Ð+rH   N)g      à?)	rT   rU   rV   rW   r8   rf   rG   rM   rP   rZ   rH   r7   r  r  ¼  s!   „ ñóò
"ò
Kò-ó
,rH   r  c                   ó   — e Zd Zd„ Zd„ Zy)r"  c                 ó    — || _         || _        y r;   )Úglyphsetr%  )r5   r%  r0  s      r7   r8   zLerpGlyph.__init__Þ  s   € Ø ˆŒØ"ˆ�rH   c                 óÊ  — t        | j                  j                  «      }| j                  j                  | j                     j	                  |«       t        | j                  j
                  «      }| j                  j
                  | j                     j	                  |«       | j                  j                  }t        t        |j                  |j                  |«      |«       y r;   )
r   r0  r  r%  rœ   r  r   r   r   r~   )r5   r›   Ú
recording1Ú
recording2r   s        r7   rœ   zLerpGlyph.drawâ  s›   € Ü,¨T¯]©]×-DÑ-DÓEˆ
Ø�‰×Ñ §¡Ñ/×4Ñ4°ZÔ@Ü,¨T¯]©]×-DÑ-DÓEˆ
Ø�‰×Ñ §¡Ñ/×4Ñ4°ZÔ@à—‘×%Ñ%ˆäœ z×'7Ñ'7¸×9IÑ9IÈ6ÓRÐTWÕXrH   N)rT   rU   rV   r8   rœ   rZ   rH   r7   r"  r"  Ý  s   „ ò#óYrH   r"  N)*rW   Ú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\   rk   r€   r‹   re   rv   rÏ   rˆ   r¹   r  r"  rZ   rH   r7   ú<module>r>     sÊ   ðÙ %ç #Ý #Ý %ß Ý !Ý (ß DÝ 9ß Cß G÷ñ ôJ/�'ô J/ôZM�kô Mô!0�[ô !0ôH
-�kô 
-ô)*ˆsô )*ôXJ�8ô JôZN�(ô Nò ôFS�8ô Sðl >Bô #ôL,�7ô ,÷BYò YrH   