§
    ¢”j/D  ã                   óÆ   — d dl mZmZmZ d„ Z G d„ de¦  «        Z G d„ de¦  «        Zd„ Zd„ Z	 G d	„ d
e¦  «        Z
 G d„ de¦  «        Zd„ Zd„ Zddœdefd„Zd„ Zd„ ZdS )é    )ÚSimpleT2DecompilerÚT2WidthExtractorÚcalcSubrBiasc                 ó:   — t          t          | ¦  «        ¦  «        S ©N)ÚsortedÚset)Úls    új/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/fontTools/cffLib/transforms.pyÚ
_uniq_sortr      s   € Ý•#�a‘&”&‰>Œ>Ðó    c                   ó   — e Zd ZdS )ÚStopHintCountEventN)Ú__name__Ú
__module__Ú__qualname__© r   r   r   r      s   € € € € € Ø€Dr   r   c                   ó>   — e Zd ZdZd
d„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
dS )Ú_DesubroutinizingT2Decompiler)Úop_hintmaskÚop_cntrmaskÚ
op_rmovetoÚ
op_hmovetoÚ
op_vmovetoNc                 ó4   — t          j        | |||¦  «         d S r   )r   Ú__init__)ÚselfÚ
localSubrsÚglobalSubrsÚprivates       r   r   z&_DesubroutinizingT2Decompiler.__init__   s   € ÝÔ# D¨*°kÀ7ÑKÔKÐKÐKÐKr   c                 óÄ  — d| _         | j        D ]}t          | || j        ¦  «         Œt	          |d¦  «        r?| j         r6| j        r/	 t          j        | |¦  «         n# t          $ r | j        d= Y nw xY wd S g |_	        t          j        | |¦  «         |j
        d d …         }t          |j	        ¦  «        D ]p\  }}|dk    sJ ‚||dz
           dv sJ ||dz
           ¦   «         ‚t          ||dz
           ¦  «        t          k    sJ ‚|d         dk    r
|d d…         }|||dz
  |…<   Œq| j        j        s$d|v r |d |                     d¦  «        dz   …         }||_        |`	d S )	NTÚ_desubroutinizedéÿÿÿÿé   é   )ÚcallsubrÚ	callgsubrÚreturnÚendchar)Úneed_hintcountÚstop_hintcount_opsÚsetattrÚstop_hint_countÚhasattrÚcallingStackr   Úexecuter   Ú_patchesÚprogramÚreversedÚtypeÚintr    Úin_cff2Úindexr"   )r   Ú
charStringÚop_nameÚdesubroutinizedÚidxÚ	expansions         r   r0   z%_DesubroutinizingT2Decompiler.execute   sæ  € Ø"ˆÔØÔ.ð 	9ð 	9ˆGÝ�D˜' 4Ô#7Ñ8Ô8Ð8Ð8å�:Ð1Ñ2Ô2ð 
	ð
 Ô"ð . tÔ'8ð .ð.Ý&Ô.¨t°ZÑ@Ô@Ð@Ð@øÝ)ð .ð .ð .ØÔ)¨"Ð-Ð-Ð-ð.øøøàˆFà ˆ
ÔÝÔ" 4¨Ñ4Ô4Ð4Ø$Ô,¨Q¨Q¨QÔ/ˆÝ& zÔ':Ñ;Ô;ð 		7ð 		7‰NˆC�Ø˜!’8�8�8�8Ø" 3¨¡7Ô+ð 0ð ð ð ð ˜s Q™wÔ'ñô ð õ ˜¨¨a©Ô0Ñ1Ô1µSÒ8Ð8Ð8Ð8Ø˜Œ} Ò(Ð(Ø% c r cœN�	Ø-6ˆO˜C !™G c˜MÑ*Ð*ØŒ|Ô#ð 	Ø˜OÐ+Ð+à"1Ø:�o×+Ò+¨IÑ6Ô6¸Ñ:Ð:ô#�ð '6ˆ
Ô#ØÐÐÐs   ÁA ÁA2Á1A2c                 óœ   — | j         | j        d         | j        z            }t          j        | |¦  «         |                      ||¦  «         d S ©Nr#   )r   ÚoperandStackÚ	localBiasr   Úop_callsubrÚprocessSubr©r   r7   Úsubrs      r   rA   z)_DesubroutinizingT2Decompiler.op_callsubrD   sL   € ØŒ˜tÔ0°Ô4°t´~ÑEÔFˆÝÔ& t¨UÑ3Ô3Ð3Ø×Ò˜ Ñ%Ô%Ð%Ð%Ð%r   c                 óœ   — | j         | j        d         | j        z            }t          j        | |¦  «         |                      ||¦  «         d S r>   )r   r?   Ú
globalBiasr   Úop_callgsubrrB   rC   s      r   rG   z*_DesubroutinizingT2Decompiler.op_callgsubrI   sM   € ØÔ Ô 1°"Ô 5¸¼Ñ GÔHˆÝÔ'¨¨eÑ4Ô4Ð4Ø×Ò˜ Ñ%Ô%Ð%Ð%Ð%r   c                 ó    — d| _         | j        D ]}t          | |d ¦  «         Œ| j        d         }t	          |d¦  «        rt          ¦   «         ‚d S )NFr#   r"   )r*   r+   r,   r/   r.   r   )r   Úargsr9   Úcss       r   r-   z-_DesubroutinizingT2Decompiler.stop_hint_countN   sg   € Ø#ˆÔØÔ.ð 	)ð 	)ˆGÝ�D˜' 4Ñ(Ô(Ð(Ð(ØÔ˜rÔ"ˆÝ�2Ð)Ñ*Ô*ð 	'Ý$Ñ&Ô&Ð&ð	'ð 	'r   c                 ój   — t          j        | |¦  «         | j        r|                      ¦   «          d S d S r   )r   r   r*   r-   ©r   r7   s     r   r   z)_DesubroutinizingT2Decompiler.op_hintmaskV   sB   € ÝÔ& t¨UÑ3Ô3Ð3ØÔð 	#Ø× Ò Ñ"Ô"Ð"Ð"Ð"ð	#ð 	#r   c                 ó†   — | j         d         }t          |d¦  «        s#|j                             ||j        f¦  «         d S d S )Nr#   r"   )r/   r.   r1   Úappendr"   )r   r7   rD   rJ   s       r   rB   z)_DesubroutinizingT2Decompiler.processSubr[   sP   € ØÔ˜rÔ"ˆÝ�rÐ-Ñ.Ô.ð 	?ØŒK×Ò  tÔ'<Ð=Ñ>Ô>Ð>Ð>Ð>ð	?ð 	?r   r   )r   r   r   r+   r   r0   rA   rG   r-   r   rB   r   r   r   r   r      s�   € € € € € ðÐðLð Lð Lð Lð& ð & ð & ðP&ð &ð &ð
&ð &ð &ð
'ð 'ð 'ð#ð #ð #ð
?ð ?ð ?ð ?ð ?r   r   c                 óÖ   — |                       ¦   «          t          | j        dg ¦  «        }t          || j        | j        ¦  «        }|                     | ¦  «         | j        | _        | `dS )z%Desubroutinize a charstring in-place.ÚSubrsN)Ú	decompileÚgetattrr    r   r   r0   r"   r2   )rJ   ÚsubrsÚ
decompilers      r   ÚdesubroutinizeCharStringrU   a   sa   € à‡L‚L�N„N€NÝ�B”J ¨Ñ,Ô,€EÝ.¨u°b´nÀbÄjÑQÔQ€JØ×Ò�rÑÔÐØÔ$€B„JØ
ÐÐÐr   c                 ó”  — | j         D ]¦}| |         }|j        }|                     ¦   «         D ]}t          |¦  «         Œt	          |d¦  «        r5|j        D ],}|j        }t	          |d¦  «        r|`d|j        v r|j        d= Œ-Œ||j        }t	          |d¦  «        r|`d|j        v r|j        d= Œ§| j	         
                    ¦   «          d S )NÚFDArrayrP   )Ú	fontNamesÚCharStringsÚvaluesrU   r.   rW   ÚPrivaterP   ÚrawDictÚGlobalSubrsÚclear)ÚcffÚfontNameÚfontrJ   ÚcÚfdÚpds          r   Údesubroutinizere   k   sü   € Ø”Mð (ð (ˆØ�8Œ}ˆØÔˆØ—’‘”ð 	(ð 	(ˆAÝ$ QÑ'Ô'Ð'Ð'å�4˜Ñ#Ô#ð 	(Ø”lð ,ð ,�Ø”Z�Ý˜2˜wÑ'Ô'ð !Ø˜Ø˜bœjÐ(Ð(Øœ
 7Ð+øð,ð ”ˆBÝ�r˜7Ñ#Ô#ð Ø�HØ˜"œ*Ð$Ð$Ø”J˜wÐ'øà„O×ÒÑÔÐÐÐr   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )Ú_MarkingT2Decompilerc                 óŒ   — t          j        | |||¦  «         ||fD ]'}|r#t          |d¦  «        st          ¦   «         |_        Œ(d S )NÚ_used)r   r   r.   r	   ri   )r   r   r   r    rS   s        r   r   z_MarkingT2Decompiler.__init__„   s\   € ÝÔ# D¨*°kÀ7ÑKÔKÐKØ  +Ð.ð 	$ð 	$ˆEØð $�W U¨GÑ4Ô4ð $Ý!™eœe�”øð	$ð 	$r   c                 ó”   — | j         j                             | j        d         | j        z   ¦  «         t          j        | |¦  «         d S r>   )r   ri   Úaddr?   r@   r   rA   rL   s     r   rA   z _MarkingT2Decompiler.op_callsubrŠ   sC   € ØŒÔ×!Ò! $Ô"3°BÔ"7¸$¼.Ñ"HÑIÔIÐIÝÔ& t¨UÑ3Ô3Ð3Ð3Ð3r   c                 ó”   — | j         j                             | j        d         | j        z   ¦  «         t          j        | |¦  «         d S r>   )r   ri   rk   r?   rF   r   rG   rL   s     r   rG   z!_MarkingT2Decompiler.op_callgsubrŽ   sD   € ØÔÔ×"Ò" 4Ô#4°RÔ#8¸4¼?Ñ#JÑKÔKÐKÝÔ'¨¨eÑ4Ô4Ð4Ð4Ð4r   N)r   r   r   r   rA   rG   r   r   r   rg   rg   ƒ   sA   € € € € € ð$ð $ð $ð4ð 4ð 4ð5ð 5ð 5ð 5ð 5r   rg   c                   ó|   — e Zd Z G d„ de¦  «        Z	 dd„Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )Ú_DehintingT2Decompilerc                   ó   — e Zd Zd„ ZdS )ú_DehintingT2Decompiler.Hintsc                 óZ   — d| _         d| _        d| _        d| _        d| _        g | _        d S )NFr   )Úhas_hintÚ	last_hintÚlast_checkedÚstatusÚhas_hintmaskÚ	deletions)r   s    r   r   z%_DehintingT2Decompiler.Hints.__init__•   s8   € ð
 "ˆDŒMàˆDŒNð !"ˆDÔð ˆDŒKà %ˆDÔàˆDŒNˆNˆNr   N)r   r   r   r   r   r   r   ÚHintsrp   ”   s    € € € € € ð	 ð 	 ð 	 ð. 	ˆr   rx   Nc                 óR   — || _         t          j        | ||||¦  «         || _        d S r   )Ú_cssr   r   r    )r   Úcssr   r   ÚnominalWidthXÚdefaultWidthXr    s          r   r   z_DehintingT2Decompiler.__init__®   s8   € ð ˆŒ	ÝÔ!Ø�*˜k¨=¸-ñ	
ô 	
ð 	
ð ˆŒˆˆr   c                 ó   — t          |d¦  «        r|j        nd }|                      ¦   «         |_        t          j        | |¦  «         |j        }|j        s|j        r| j                             |¦  «         |j	        dk    rvt          |j        t          |j        ¦  «        dz
  ¦  «        D ]2}t          |j        |         t          ¦  «        r	d|_	         nd|_	        Œ3t          |j        ¦  «        |_        |r|j        |j        k    sJ ‚d S d S )NÚ_hintsr$   r%   )r.   r   rx   r   r0   rr   rv   rz   rk   ru   Úrangert   Úlenr2   Ú
isinstanceÚstrÚ__dict__)r   r8   Ú	old_hintsÚhintsÚis        r   r0   z_DehintingT2Decompiler.execute·   s  € Ý)0°¸XÑ)FÔ)FÐP�JÔ%Ð%ÈDˆ	Ø ŸJšJ™LœLˆ
ÔåÔ   zÑ2Ô2Ð2àÔ!ˆàŒ>ð 	&˜UÔ/ð 	&ØŒI�MŠM˜*Ñ%Ô%Ð%àŒ<˜1ÒÐå˜5Ô-­s°:Ô3EÑ/FÔ/FÈÑ/JÑKÔKð %ð %�Ý˜jÔ0°Ô3µSÑ9Ô9ð %Ø#$�E”LØ�Eà#$�E”L�LÝ!$ ZÔ%7Ñ!8Ô!8ˆEÔàð 	8Ø”> YÔ%7Ò7Ð7Ð7Ð7ð	8ð 	8Ø7Ð7r   c                 óœ   — | j         | j        d         | j        z            }t          j        | |¦  «         |                      ||¦  «         d S r>   )r   r?   r@   r   rA   rB   rC   s      r   rA   z"_DehintingT2Decompiler.op_callsubrÏ   sL   € ØŒ˜tÔ0°Ô4°t´~ÑEÔFˆÝÔ$ T¨5Ñ1Ô1Ð1Ø×Ò˜ Ñ%Ô%Ð%Ð%Ð%r   c                 óœ   — | j         | j        d         | j        z            }t          j        | |¦  «         |                      ||¦  «         d S r>   )r   r?   rF   r   rG   rB   rC   s      r   rG   z#_DehintingT2Decompiler.op_callgsubrÔ   sM   € ØÔ Ô 1°"Ô 5¸¼Ñ GÔHˆÝÔ% d¨EÑ2Ô2Ð2Ø×Ò˜ Ñ%Ô%Ð%Ð%Ð%r   c                 óZ   — t          j        | |¦  «         |                      |¦  «         d S r   )r   Úop_hstemÚprocessHintrL   s     r   r‹   z_DehintingT2Decompiler.op_hstemÙ   ó/   € ÝÔ! $¨Ñ.Ô.Ð.Ø×Ò˜ÑÔÐÐÐr   c                 óZ   — t          j        | |¦  «         |                      |¦  «         d S r   )r   Úop_vstemrŒ   rL   s     r   r�   z_DehintingT2Decompiler.op_vstemÝ   r�   r   c                 óZ   — t          j        | |¦  «         |                      |¦  «         d S r   )r   Ú
op_hstemhmrŒ   rL   s     r   r‘   z!_DehintingT2Decompiler.op_hstemhmá   ó/   € ÝÔ# D¨%Ñ0Ô0Ð0Ø×Ò˜ÑÔÐÐÐr   c                 óZ   — t          j        | |¦  «         |                      |¦  «         d S r   )r   Ú
op_vstemhmrŒ   rL   s     r   r”   z!_DehintingT2Decompiler.op_vstemhmå   r’   r   c                 óZ   — t          j        | |¦  «        }|                      |¦  «         |S r   )r   r   ÚprocessHintmask©r   r7   Úrvs      r   r   z"_DehintingT2Decompiler.op_hintmaské   ó-   € ÝÔ)¨$°Ñ6Ô6ˆØ×Ò˜UÑ#Ô#Ð#Øˆ	r   c                 óZ   — t          j        | |¦  «        }|                      |¦  «         |S r   )r   r   r–   r—   s      r   r   z"_DehintingT2Decompiler.op_cntrmaskî   r™   r   c                 ó  — | j         d         }|j        }d|_        |j        dk    r\t	          |j        |dz
  ¦  «        D ]+}t          |j        |         t          ¦  «        r	d|_         nŒ,d|_	        |dz   |_
        d|_        |dz   |_        d S )Nr#   Tr$   r%   r   )r/   r   rv   ru   r€   rt   r‚   r2   rƒ   rr   rs   )r   r7   rJ   r†   r‡   s        r   r–   z&_DehintingT2Decompiler.processHintmaskó   s¡   € ØÔ˜rÔ"ˆØ”	ˆØ!ˆÔØŒ<˜1ÒÐå˜5Ô-¨u°q©yÑ9Ô9ð !ð !�Ý˜bœj¨œm­SÑ1Ô1ð Ø#$�E”LØ�Eðð
 "&�”Ø"'¨!¡)�”Ø �”Ø" Q™YˆÔÐÐr   c                 óX   — | j         d         }|j        }d|_        ||_        ||_        d S )Nr#   T)r/   r   rr   rs   rt   )r   r7   rJ   r†   s       r   rŒ   z"_DehintingT2Decompiler.processHint  s2   € ØÔ˜rÔ"ˆØ”	ˆØˆŒØˆŒØ"ˆÔÐÐr   c                 óÞ  — | j         d         }|j        }|j        }|j        dk    rKt          |j        |dz
  ¦  «        D ]+}t          |j        |         t          ¦  «        r	d|_         nŒ,||_        |j        dk    r,|j        r$d|_        |j        dk    r||_	        n0|dz
  |_	        n%|j        dk    r|j
                             |¦  «         t          |j        |j        ¦  «        |_        d S )Nr#   r$   r%   Tr   )r/   r   ru   r€   rt   r‚   r2   rƒ   rr   rs   rw   rN   Úmax)r   r7   rD   rJ   r†   Ú
subr_hintsr‡   s          r   rB   z"_DehintingT2Decompiler.processSubr  s  € ØÔ˜rÔ"ˆØ”	ˆØ”[ˆ
ð Œ<˜1ÒÐÝ˜5Ô-¨u°q©yÑ9Ô9ð ð �Ý˜bœj¨œm­SÑ1Ô1ð Ø#$�E”LØ�Eðð "'ˆEÔàŒ<˜1ÒÐØÔ"ð 0Ø!%�”ð Ô$¨Ò)Ð)Ø&+�E”O�Oà&+¨a¡i�E”OøàÔ !Ò#Ð#ØŒO×"Ò" 5Ñ)Ô)Ð)å˜5œ<¨Ô):Ñ;Ô;ˆŒˆˆr   r   )r   r   r   Úobjectrx   r   r0   rA   rG   r‹   r�   r‘   r”   r   r   r–   rŒ   rB   r   r   r   rn   rn   “   s  € € € € € ðð ð ð ð �ñ ô ð ð6 SWðð ð ð ð8ð 8ð 8ð0&ð &ð &ð
&ð &ð &ð
 ð  ð  ð ð  ð  ð ð  ð  ð ð  ð  ðð ð ð
ð ð ð
'ð 'ð 'ð"#ð #ð #ð<ð <ð <ð <ð <r   rn   c                 óê  — | j         }t          dt          |¦  «        ¦  «        D ]Í}||         dk    rZt          ||dz
           t          ¦  «        sJ ‚|j                             ||dz
           |j        z   ¦  «        |j        z
  ||dz
  <   Œh||         dk    rYt          ||dz
           t          ¦  «        sJ ‚|j                             ||dz
           |j        z   ¦  «        |j        z
  ||dz
  <   ŒÎd S )Nr%   r&   r'   )	r2   r€   r�   r‚   r5   ri   r7   Ú	_old_biasÚ	_new_bias)Ú
charstringrS   ÚgsubrsÚpr‡   s        r   Ú_cs_subset_subroutinesr§   )  sû   € ØÔ€AÝ�1•c˜!‘f”fÑÔð ð ˆØˆQŒ4�:ÒÐÝ˜a  A¡œh­Ñ,Ô,Ð,Ð,Ð,Ø”{×(Ò(¨¨1¨q©5¬°E´OÑ)CÑDÔDÀuÄÑVˆAˆa�!‰e‰HˆHØˆqŒT�[Ò Ð Ý˜a  A¡œh­Ñ,Ô,Ð,Ð,Ð,à”×"Ò" 1 Q¨¡U¤8¨fÔ.>Ñ#>Ñ?Ô?À&ÔBRÑRð ˆa�!‰e‰Høðð r   c                 óú  — | j         }|j        r&| j        }t          |j        ¦  «        D ]
}||dz
  |…= Œ|j        rÁ|j        r|j        |j        d         k    sJ ‚| j        |j        d …         | _        | j        s| j                             d¦  «         t          | d¦  «        rX| j        | j	        j
        k    rC| j	        j
        €
J d¦   «         ‚| j                             d| j        | j	        j        z
  ¦  «         |j        r_d}| j        }|t          |¦  «        k     rC||         dv r!|dz   t          |¦  «        k    sJ ‚|||dz   …= Œ>|dz  }|t          |¦  «        k     °Ct          | j        ¦  «        sJ ‚| ` d S )Nr$   r   r)   Úwidthz5CFF2 CharStrings must not have an initial width value)ÚhintmaskÚcntrmaskr%   )r   rw   r2   r3   rr   rs   rN   r.   r©   r    r}   Úinsertr|   rv   r�   )r¤   r†   r¦   r;   r‡   s        r   Ú_cs_drop_hintsr­   6  sÂ  € ØÔ€Eà„ð !ØÔˆÝ˜EœOÑ,Ô,ð 	!ð 	!ˆCØ�#˜‘'˜C�-Ð Ð à„~ð Ø”?ÐK e¤o¸¼ÈÔ9KÒ&KÐ&KÐ&KÐ&KØ'Ô/°´Ð0AÐ0AÔBˆ
ÔØÔ!ð 	1àÔ×%Ò% iÑ0Ô0Ð0Ý�:˜wÑ'Ô'ð 		àÔ :Ô#5Ô#CÒCÐCð Ô&Ô4Ð@Ð@ØJñ AÔ@Ð@àÔ"×)Ò)Ø�zÔ'¨*Ô*<Ô*JÑJñô ð ð Ôð ØˆØÔˆØ•#�a‘&”&ŠjˆjØ�ŒtÐ/Ð/Ð/Ø˜1‘u¥ A¡¤’���Ø�a˜!˜a™%�i�LØØ�‰FˆAð •#�a‘&”&Šjˆjõ ˆzÔ!Ñ"Ô"Ð"Ð"Ð"àÐÐÐr   T)ÚremoveUnusedSubrsr®   c          
      óâ  — |                       ¦   «         D �]E}| |         }|j        }t          ¦   «         }|                     ¦   «         D ]}|                     ¦   «          t          |j        dg ¦  «        }t          |||j        |j        j	        |j        j
        |j        ¦  «        }|                     |¦  «         |j        |_        Œ€|D ]}	t          |	¦  «         Œ~g }
t          |d¦  «        r%|
                     d„ |j        D ¦   «         ¦  «         n|
                     |j        ¦  «         |
D ](}dD ]#}t          ||¦  «        rt'          ||d ¦  «         Œ$Œ)�ŒG|rt)          | ¦  «         d S d S )NrP   rW   c              3   ó$   K  — | ]}|j         V — Œd S r   )r[   ©Ú.0rc   s     r   ú	<genexpr>zremove_hints.<locals>.<genexpr>†  s$   è è € Ð?Ð?¨B˜RœZÐ?Ð?Ð?Ð?Ð?Ð?r   )Ú
BlueValuesÚ
OtherBluesÚFamilyBluesÚFamilyOtherBluesÚ	BlueScaleÚ	BlueShiftÚBlueFuzzÚ	StemSnapHÚ	StemSnapVÚStdHWÚStdVWÚ	ForceBoldÚLanguageGroupÚExpansionFactor)ÚkeysrY   r	   rZ   rQ   rR   r    rn   r   r|   r}   r0   r©   r­   r.   ÚextendrW   rN   r[   r,   Úremove_unused_subroutines)r_   r®   Úfontnamera   rJ   r{   rb   rS   rT   r¤   Ú	all_privsÚprivÚks                r   Úremove_hintsrÉ   ^  s°  € Ø—H’H‘J”Jð <+ñ <+ˆØ�8Œ}ˆØÔˆõ  ‰eŒeˆØ—’‘”ð 	'ð 	'ˆAØ�KŠK‰MŒMˆMÝ˜AœI w°Ñ3Ô3ˆEÝ/ØØØ”Ø”	Ô'Ø”	Ô'Ø”	ñô ˆJð ×Ò˜qÑ!Ô!Ð!Ø Ô&ˆAŒGˆGØð 	'ð 	'ˆJÝ˜:Ñ&Ô&Ð&Ð&Øð ˆ	Ý�4˜Ñ#Ô#ð 	+Ø×ÒÐ?Ð?°$´,Ð?Ñ?Ô?Ñ?Ô?Ð?Ð?à×Ò˜Tœ\Ñ*Ô*Ð*Øð 	+ð 	+ˆDðð +ð +�õ  ˜4 Ñ#Ô#ð +Ý˜D ! TÑ*Ô*Ð*øð#+ñ	+ð& ð 'Ý! #Ñ&Ô&Ð&Ð&Ð&ð'ð 'r   c                 ób   — t          | d¦  «        r| j        sd| j        v r| j        d= | `d S d S d S )NrP   )r.   rP   r\   )Úprivate_dicts    r   Ú_pd_delete_empty_subrsrÌ      sW   € Ýˆ|˜WÑ%Ô%ð ¨lÔ.@ð Ø�lÔ*Ð*Ð*ØÔ$ WÐ-ØÐÐÐðð ð ð r   c                 ó2  ‡
— |                       ¦   «         D �]ÿ}| |         }|j        }|                     ¦   «         D ]H}t          |j        dg ¦  «        Š
t          ‰
|j        |j        ¦  «        }|                     |¦  «         ŒI|j        g}t          |d¦  «        r%| 
                    d„ |j        D ¦   «         ¦  «         n@t          |j        d¦  «        r+|j        j        r|                     |j        j        ¦  «         t          ‰
¦  «        Š
|D ]kŠ
t          ‰
d¦  «        st          ¦   «         ‰
_        t#          ‰
j        ¦  «        ‰
_        t%          ‰
¦  «        ‰
_        t%          ‰
j        ¦  «        ‰
_        Œl|                     ¦   «         D ].}t          |j        dd ¦  «        Š
t+          |‰
|j        ¦  «         Œ/|D �]Š
‰
|j        k    r•t          |d¦  «        s"t          |j        d¦  «        r|j        j        }net          |d¦  «        rPt-          |j        ¦  «        dk    r8t          |j        d         j        d¦  «        r|j        d         j        j        }nd }n‰
}ˆ
fd„‰
j        D ¦   «         ‰
_        t          ‰
d¦  «        r‰
`t          ‰
d	¦  «        r‰
`‰
j        D ]}t+          |||j        ¦  «         Œ�Œt          |d¦  «        r|j        D ]}	t5          |	j        ¦  «         Œnt5          |j        ¦  «         |D ]Š
‰
`‰
`‰
`Œ	�Œd S )
NrP   rW   c              3   óp   K  — | ]1}t          |j        d ¦  «        ¯|j        j        ¯#|j        j        V — Œ2dS )rP   N)r.   r[   rP   r±   s     r   r³   z,remove_unused_subroutines.<locals>.<genexpr>µ  s\   è è € ð ð àÝ˜2œ: wÑ/Ô/ðð 57´JÔ4DðØ”
Ô ðð ð ð ð ð r   ri   r%   r   c                 ó*   •— g | ]}‰j         |         ‘ŒS r   )Úitems)r²   r‡   rS   s     €r   ú
<listcomp>z-remove_unused_subroutines.<locals>.<listcomp>Ý  s   ø€ Ð?Ð?Ð?¨a˜5œ; qœ>Ð?Ð?Ð?r   ÚfileÚoffsets)rÂ   rY   rZ   rR   r    rg   r   r0   r]   r.   rÃ   rW   r[   rP   rN   r	   ri   r   r   r¢   r£   r§   r�   rÐ   rÒ   rÓ   rÌ   )r_   rÅ   ra   rJ   rb   rT   Ú	all_subrsÚlocal_subrsrD   rc   rS   s             @r   rÄ   rÄ   §  sz  ø€ Ø—H’H‘J”Jð G>ñ G>ˆØ�8Œ}ˆØÔˆð —’‘”ð 	"ð 	"ˆAÝ˜AœI w°Ñ3Ô3ˆEÝ-¨e°Q´]ÀAÄIÑNÔNˆJØ×Ò˜qÑ!Ô!Ð!Ð!àÔ%Ð&ˆ	Ý�4˜Ñ#Ô#ð 	1Ø×Òð ð àœ,ðñ ô ñ ô ð ð õ
 �T”\ 7Ñ+Ô+ð 	1°´Ô0Bð 	1Ø×Ò˜Tœ\Ô/Ñ0Ô0Ð0å�E‘
”
ˆð ð 	8ð 	8ˆEÝ˜5 'Ñ*Ô*ð $Ý!™eœe�”Ý$ U¤[Ñ1Ô1ˆEŒKÝ*¨5Ñ1Ô1ˆEŒOÝ*¨5¬;Ñ7Ô7ˆEŒOˆOð —’‘”ð 	?ð 	?ˆAÝ˜AœI w°Ñ5Ô5ˆEÝ" 1 e¨TÔ-=Ñ>Ô>Ð>Ð>ð ð 	Lñ 	LˆEØ˜Ô(Ò(Ð(Ý˜t YÑ/Ô/ð 
'µG¸D¼LÈ'Ñ4RÔ4Rð 
'Ø"&¤,Ô"4�K�Kå˜D )Ñ,Ô,ð'å˜DœLÑ)Ô)¨QÒ.Ð.Ý ¤¨Q¤Ô 7¸ÑAÔAð /ð #'¤,¨q¤/Ô"9Ô"?�K�Kà"&�K�Kà#�à?Ð?Ð?Ð?°5´;Ð?Ñ?Ô?ˆEŒKÝ�u˜fÑ%Ô%ð Ø�JÝ�u˜iÑ(Ô(ð "Ø�Màœð Lð L�Ý& t¨[¸$Ô:JÑKÔKÐKÐKñLõ �4˜Ñ#Ô#ð 	1Ø”lð 3ð 3�Ý& r¤zÑ2Ô2Ð2Ð2ð3õ # 4¤<Ñ0Ô0Ð0ð ð 	>ð 	>ˆEØ�˜U˜_¨e¨o¨oñ	>ðMG>ð G>r   N)ÚfontTools.misc.psCharStringsr   r   r   r   Ú	Exceptionr   r   rU   re   rg   rn   r§   r­   ÚboolrÉ   rÌ   rÄ   r   r   r   ú<module>rÙ      s˜  ððð ð ð ð ð ð ð ð ð ðð ð ð	ð 	ð 	ð 	ð 	˜ñ 	ô 	ð 	ðN?ð N?ð N?ð N?ð N?Ð$6ñ N?ô N?ð N?ðbð ð ðð ð ð05ð 5ð 5ð 5ð 5Ð-ñ 5ô 5ð 5ð S<ð S<ð S<ð S<ð S<Ð-ñ S<ô S<ð S<ðl
ð 
ð 
ð%ð %ð %ðP 48ð ?'ð ?'ð ?'¨Dð ?'ð ?'ð ?'ð ?'ðDð ð ðH>ð H>ð H>ð H>ð H>r   