L ig $dgZdZdZddZdZy) maxCtxFontc d}dD]g}||vr||j}|js$|jjD]+}|jD]}t |||j |}-i|S)z4Calculate the usMaxContext value for an entire font.)GSUBGPOS)table LookupListLookupSubTablemaxCtxSubtable LookupType)fontmaxCtxtagrlookupsts e/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/fontTools/otlLib/maxContextCalc.pyrrsFL d? S  &&-- LFoo L'V5F5FK L L L Mc\|dk(r|dk(s |dk(r|dvrt|d}|S|dk(r|dk(rt|d}|S|dk(rC|dk(r>|jjD]}|D]}t||j}!|S|dk(r|dk(s |dk(r!|dk(rt |||dk(rd }|Sd }|S|dk(r|d k(s |dk(r|d k(rt |||dk(rd nd d }|S|dk(r|dk(s |dk(r)|dk(r$t |||j |j}|S|dk(r|d k(r t||d}|S)z[Calculate usMaxContext based on a single lookup table (and an existing max value). rr)rrPosSubChain Reverse) max ligaturesvalues CompCountmaxCtxContextualSubtabler ExtensionLookupType ExtSubTablemaxCtxContextualRule)rr lookupTyperr#ligatures rr r s v */ v * 1VQ< M7 :?VQ4 M/ :?,,. 9I% 9VX%7%78 9 9, M# -J!O:QR?)&"sf}eX M!SXX M -J!O:QR?) BE7  M -J!O:QR?R-C-CR^^T M :?%fb)< Mrc~|jdk(rAt|||dD]+}|t|||dD]}|t|||}-|S|jdk(rAt|||dD]+}|t|||dD]}|t|||}-|S|jdk(r t|||}|S)z>Calculate usMaxContext based on a contextual feature subtable.rRuleSetRulerClassSet ClassRuler)Formatgetattrr))rrruleTypechainrulesetrules rr&r&>s yyA~rE8#DE CGuh)GH C<-fdEB C C( M arUH#EF CGE8)LM C<-fdEB C C M a%fb%8 Mrc|st||jS|dk(rt|d|jzSt||j|jzS)z:Calculate usMaxContext based on a contextual feature rule.r!r)r" GlyphCountLookAheadGlyphCountInputGlyphCount)rrr4s rr)r)YsV 62==)) ) 61r55566 vr))B,B,BB CCrN))__all__rr r&r)rrr>s" .  'T6Dr