ó
    oñ:iŽ  ã                   ó   • S r SSKJr  SSKJrJrJrJrJrJ	r	  SSK
Jr  / SQr " S S\	\R                  S	4   5      r\\\   \\   /S
4   r    SS\S\\   S\S\\\/\4      S\\\/\\R                     4      S\\   4S jjr    SS\S\\   S\S\\\/\4      S\\\/\\R                     4      S\\   4S jjr SS\S\\   S\S\\\/\4      S\S\\\/\\R                     4      S\\   4S jjrg
)z>Methods for traversing trees of otData-driven OpenType tables.é    )Údeque)ÚCallableÚDequeÚIterableÚListÚOptionalÚTupleé   )Ú	BaseTable)Úbfs_base_tableÚdfs_base_tableÚSubTablePathc                   ó"   • \ rS rSrS\4S jrSrg)r   é   Úreturnc                 ó´   • / nU  H@  nUR                   nUR                  b  USUR                   S3-  nUR                  U5        MB     SR                  U5      $ )NÚ[Ú]Ú.)ÚnameÚindexÚappendÚjoin)ÚselfÚ
path_partsÚentryÚ	path_parts       Úd/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/fontTools/ttLib/tables/otTraverse.pyÚ__str__ÚSubTablePath.__str__   sZ   € Øˆ
ÛˆEØŸ
™
ˆIØ�{‰{Ñ&Ø˜q §¡ ¨QÐ/Ñ/�	Ø×Ñ˜iÖ(ñ	 ð
 �x‰x˜
Ó#Ð#ó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ústrr   Ú__static_attributes__r"   r!   r   r   r      s   † ð$˜÷ $r!   r   .NÚrootÚroot_accessorÚ	skip_rootÚ	predicateÚiter_subtables_fnr   c              #   óB   #   • [        U UUUS U5       Sh  v•N   g N7f)a  Depth-first search tree of BaseTables.

Args:
    root (BaseTable): the root of the tree.
    root_accessor (Optional[str]): attribute name for the root table, if any (mostly
        useful for debugging).
    skip_root (Optional[bool]): if True, the root itself is not visited, only its
        children.
    predicate (Optional[Callable[[SubTablePath], bool]]): function to filter out
        paths. If True, the path is yielded and its subtables are added to the
        queue. If False, the path is skipped and its subtables are not traversed.
    iter_subtables_fn (Optional[Callable[[BaseTable], Iterable[BaseTable.SubTableEntry]]]):
        function to iterate over subtables of a table. If None, the default
        BaseTable.iterSubTables() is used.

Yields:
    SubTablePath: tuples of BaseTable.SubTableEntry(name, table, index) namedtuples
    for each of the nodes in the tree. The last entry in a path is the current
    subtable, whereas preceding ones refer to its parent tables all the way up to
    the root.
c                 ó6   • U R                  [        U5      5      $ ©N)Ú
extendleftÚreversed©ÚfrontierÚnews     r   Ú<lambda>Ú dfs_base_table.<locals>.<lambda>A   s   € ˜h×1Ñ1´(¸3³-Ô@r!   N©Ú_traverse_ot_data©r)   r*   r+   r,   r-   s        r   r   r      s+   é € ô< !ØØØØÙ@Øó÷ ó ùó   ‚—˜c              #   óB   #   • [        U UUUS U5       Sh  v•N   g N7f)a   Breadth-first search tree of BaseTables.

Args:
    root
        the root of the tree.
    root_accessor (Optional[str]): attribute name for the root table, if any (mostly
        useful for debugging).
    skip_root (Optional[bool]): if True, the root itself is not visited, only its
        children.
    predicate (Optional[Callable[[SubTablePath], bool]]): function to filter out
        paths. If True, the path is yielded and its subtables are added to the
        queue. If False, the path is skipped and its subtables are not traversed.
    iter_subtables_fn (Optional[Callable[[BaseTable], Iterable[BaseTable.SubTableEntry]]]):
        function to iterate over subtables of a table. If None, the default
        BaseTable.iterSubTables() is used.

Yields:
    SubTablePath: tuples of BaseTable.SubTableEntry(name, table, index) namedtuples
    for each of the nodes in the tree. The last entry in a path is the current
    subtable, whereas preceding ones refer to its parent tables all the way up to
    the root.
c                 ó$   • U R                  U5      $ r0   )Úextendr3   s     r   r6   Ú bfs_base_table.<locals>.<lambda>j   s   € ˜hŸo™o¨cÔ2r!   Nr8   r:   s        r   r   r   F   s+   é € ô> !ØØØØÙ2Øó÷ ó ùr;   Úadd_to_frontier_fnc              #   óü  #   • Uc  [        U 5      R                  nUc  S nUc  S n[        5       n[        R                  " X5      nU(       d  UR                  U45        O!U" UU" U 5       Vs/ s H  nXx4PM     sn5        U(       ah  UR                  5       n	U	S   R                  n
U" U	5      (       d  M5  [        U	5      v •  U" U
5       Vs/ s H  o‰U4-   PM
     nnU" Xk5        U(       a  Mg  g g s  snf s  snf 7f)Nc                 ó   • g)NTr"   )Úpaths    r   r,   Ú$_traverse_ot_data.<locals>.predicate   s   € Ør!   c                 ó"   • U R                  5       $ r0   )ÚiterSubTables)Útables    r   r-   Ú,_traverse_ot_data.<locals>.iter_subtables_fn„   s   € Ø×&Ñ&Ó(Ð(r!   éÿÿÿÿ)	Útyper#   r   r   ÚSubTableEntryr   ÚpopleftÚvaluer   )r)   r*   r+   r,   r@   r-   r4   Ú
root_entryÚsubtable_entryrC   ÚcurrentÚnew_entriess               r   r9   r9   o   s  é € ð ÑÜ˜T›
×+Ñ+ˆàÑò	ð Ñ ò	)ô %*£G€Hä×(Ò(¨Ó=€JÞØ�‰˜˜Õ&áØñ '8¸Ô&=óâ&=�Nð Ó,Ù&=ñô	
ö à×ÑÓ!ˆØ�r‘(—.‘.ˆá˜�‰Ùä˜4Ó Ò ñ <MÈWÔ;Uó
Ú;U¨�NÐ$Ô$Ñ;Uð 	ð 
ñ 	˜8Ô1÷ Š(ùòùò 
ùs%   ‚A,C<Á.C2
Á;AC<ÃC7ÃC<Ã0C<)NFNNr0   )Ú__doc__Úcollectionsr   Útypingr   r   r   r   r   r	   ÚotBaser   Ú__all__rK   r   ÚAddToFrontierFnr'   Úboolr   r   r9   r"   r!   r   Ú<module>rY      sê  ðÙ Då ß C× CÝ ò€ô$�5˜×0Ñ0°#Ð5Ñ6ô $ð ˜E ,Ñ/°°lÑ1CÐDÀdÐJÑK€ð
 $(ØØ:>ð 	ñ%Ø
ð%à˜C‘=ð%ð ð%ð ˜ , °Ð!5Ñ6Ñ7ð	%ð
  Ø�)�˜h y×'>Ñ'>Ñ?Ð?Ñ@ñð%ð ˆlÑõ%ðT $(ØØ:>ð 	ñ&Ø
ð&à˜C‘=ð&ð ð&ð ˜ , °Ð!5Ñ6Ñ7ð	&ð
  Ø�)�˜h y×'>Ñ'>Ñ?Ð?Ñ@ñð&ð ˆlÑõ&ðb 	ñ42Ø
ð42à˜C‘=ð42ð ð42ð ˜ , °Ð!5Ñ6Ñ7ð	42ð
 (ð42ð  Ø�)�˜h y×'>Ñ'>Ñ?Ð?Ñ@ñð42ð ˆlÑö42r!   