Ë
    Ñwìiæ  ã                   ó   — d Z d„ Zd„ Zd„ Zy)z
Utilities.c                  óæ   ‡— | D �cg c]  }|j                   ‘Œ }}g }t        |Ž D ];  }|d   Št        ˆfd„|dd D «       «      r|j                  ‰«       Œ1 t	        |«      S  t	        |«      S c c}w )aQ  
    Determine common ancestors of `nodes`.

    >>> from anytree import Node, util
    >>> udo = Node("Udo")
    >>> marc = Node("Marc", parent=udo)
    >>> lian = Node("Lian", parent=marc)
    >>> dan = Node("Dan", parent=udo)
    >>> jet = Node("Jet", parent=dan)
    >>> jan = Node("Jan", parent=dan)
    >>> joe = Node("Joe", parent=dan)

    >>> util.commonancestors(jet, joe)
    (Node('/Udo'), Node('/Udo/Dan'))
    >>> util.commonancestors(jet, marc)
    (Node('/Udo'),)
    >>> util.commonancestors(jet)
    (Node('/Udo'), Node('/Udo/Dan'))
    >>> util.commonancestors()
    ()
    é    c              3   ó&   •K  — | ]  }‰|u –— Œ
 y ­w)N© )Ú.0ÚpÚ
parentnodes     €úf/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/anytree/util/__init__.pyÚ	<genexpr>z"commonancestors.<locals>.<genexpr>   s   øè ø€ Ð8© 1ˆz˜QŒ©ùs   ƒé   N)Ú	ancestorsÚzipÚallÚappendÚtuple)ÚnodesÚnoder   ÚcommonÚparentnodesr   s        @r	   Úcommonancestorsr      sw   ø€ ñ, -2Ó2©E D�—“¨E€IÐ2Ø€FÜ˜I“ˆØ  ‘^ˆ
ÜÓ8¨°A°B©Ó8Ô8Ø�M‰M˜*Õ%àÜ�‹=Ðð 'ô �‹=Ðùò 3s   †A.c                 ó~   — | j                   r1| j                   j                  }|j                  | «      }|r||dz
     S y)a¬  
    Return Left Sibling of `node`.

    >>> from anytree import Node, util
    >>> dan = Node("Dan")
    >>> jet = Node("Jet", parent=dan)
    >>> jan = Node("Jan", parent=dan)
    >>> joe = Node("Joe", parent=dan)
    >>> print(util.leftsibling(dan))
    None
    >>> print(util.leftsibling(jet))
    None
    >>> print(util.leftsibling(jan))
    Node('/Dan/Jet')
    >>> print(util.leftsibling(joe))
    Node('/Dan/Jan')
    r   N)ÚparentÚchildrenÚindex©r   Ú	pchildrenÚidxs      r	   Úleftsiblingr   %   s=   € ð$ ‡{‚{Ø—K‘K×(Ñ(ˆ	Ø�o‰o˜dÓ#ˆÙØ˜S 1™WÑ%Ð%Øó    c                 óš   — | j                   r0| j                   j                  }|j                  | «      }	 ||dz      S y# t        $ r Y yw xY w)a±  
    Return Right Sibling of `node`.

    >>> from anytree import Node, util
    >>> dan = Node("Dan")
    >>> jet = Node("Jet", parent=dan)
    >>> jan = Node("Jan", parent=dan)
    >>> joe = Node("Joe", parent=dan)
    >>> print(util.rightsibling(dan))
    None
    >>> print(util.rightsibling(jet))
    Node('/Dan/Jan')
    >>> print(util.rightsibling(jan))
    Node('/Dan/Joe')
    >>> print(util.rightsibling(joe))
    None
    r   N)r   r   r   Ú
IndexErrorr   s      r	   Úrightsiblingr!   ?   sU   € ð$ ‡{‚{Ø—K‘K×(Ñ(ˆ	Ø�o‰o˜dÓ#ˆð	Ø˜S 1™WÑ%Ð%ð øô ò 	Ùð	ús   µ> ¾	A
Á	A
N)Ú__doc__r   r   r!   r   r   r	   Ú<module>r#      s   ðÙ òòBó4r   