Ë
    ¤2Úi»  ã                   óŠ   — d dl mZmZmZ d dlmZ d dlZd dlmZ ddl	m
Z
 ddlmZ  ej                  d	«      Zd
„ Z ee«      Zy)é    )Úabsolute_importÚdivisionÚunicode_literals)ÚOrderedDictN)Ústring_typesé   )Úbaseé   )ÚmoduleFactoryFactoryz{([^}]*)}(.*)c                 óˆ   ‡— | }|j                  d«      j                  Š G ˆfd„dt        j                  «      }t	        «       S )NÚasdc                   ó.   •— e Zd ZdZˆ fd„Zd„ Zd„ Zd„ Zy)ú#getETreeBuilder.<locals>.TreeWalkeraË  Given the particular ElementTree representation, this implementation,
        to avoid using recursion, returns "nodes" as tuples with the following
        content:

        1. The current element

        2. The index of the element relative to its parent

        3. A stack of ancestor elements

        4. A flag "text", "tail" or None to indicate if the current node is a
           text node; either the text or tail of the current element (1)
        c                 ó  •— t        |t        «      r)|\  }}}}|dv rt        j                  t	        ||«      fS |}t        |d«      s|j                  «       }|j                  dv rt        j                  fS |j                  dk(  r<t        j                  |j                  |j                  d«      |j                  d«      fS |j                  ‰k(  rt        j                  |j                  fS t        |j                  t        «      sJ t        |j                  «      «       ‚t        j!                  |j                  «      }|r|j#                  «       \  }}nd }|j                  }t%        «       }t'        |j(                  j+                  «       «      D ]I  \  }	}
t        j!                  |	«      }|r&|
||j-                  d«      |j-                  d«      f<   ŒC|
|d |	f<   ŒK t        j.                  |||t1        |«      xs |j                  fS )	N©ÚtextÚtailÚtag)ÚDOCUMENT_ROOTÚDOCUMENT_FRAGMENTz
<!DOCTYPE>ÚpublicIdÚsystemIdr   r
   )Ú
isinstanceÚtupler	   ÚTEXTÚgetattrÚhasattrÚgetrootr   ÚDOCUMENTÚDOCTYPEr   ÚgetÚCOMMENTr   ÚtypeÚ
tag_regexpÚmatchÚgroupsr   ÚlistÚattribÚitemsÚgroupÚELEMENTÚlen)ÚselfÚnodeÚeltÚ_Úflagr%   Ú	namespacer   ÚattrsÚnameÚvalueÚElementTreeCommentTypes              €úQ/var/www/html/acx/venv/lib/python3.12/site-packages/html5lib/treewalkers/etree.pyÚgetNodeDetailsz2getETreeBuilder.<locals>.TreeWalker.getNodeDetails    s·  ø€ Ü˜$¤Ô&Ø"&‘��Q˜˜4ØÐ+Ñ+ÜŸ9™9¤g¨c°4Ó&8Ð8Ð8à�Dä˜4 Ô'Ø—|‘|“~�à�x‰xÐAÑAÜŸ™Ð'Ð'à—‘˜\Ò)ÜŸ™ d§i¡iØŸ™ Ó,¨d¯h©h°zÓ.BðDð Dð —‘Ð3Ò3Ü—|‘| T§Y¡YÐ.Ð.ô " $§(¡(¬LÔ9ÐI¼4ÀÇÁ»>ÓIÐ9ä"×(Ñ(¨¯©Ó2�ÙØ%*§\¡\£^‘N�I™sà $�IØŸ(™(�CÜ#›�Ü#'¨¯©×(9Ñ(9Ó(;Ó#<ò 4‘K�D˜%Ü&×,Ñ,¨TÓ2�EÙØBG˜˜uŸ{™{¨1›~¨u¯{©{¸1«~Ð>Ò?à.3˜˜t T˜lÒ+ð4ô Ÿ™ i°Øœs 4›yÒ5¨D¯I©Ið7ð 7ó    c                 óÂ   — t        |t        «      r|\  }}}}n|d g d f\  }}}}|dv ry |j                  r|||dfS t        |«      r|j	                  |«       |d   d|d fS y )Nr   r   r   )r   r   r   r,   Úappend©r-   r.   ÚelementÚkeyÚparentsr1   s         r7   ÚgetFirstChildz1getETreeBuilder.<locals>.TreeWalker.getFirstChildH   s|   € Ü˜$¤Ô&Ø.2Ñ+�˜˜g¡tà.2°D¸"¸dÐ.BÑ+�˜˜g tàÐ'Ñ'Øà—<’<Ø" C¨°&Ð8Ð8Ü˜”\Ø—N‘N 7Ô+Ø" 1™: q¨'°4Ð7Ð7àr9   c                 ó  — t        |t        «      r|\  }}}}ny |dk(  r&t        |«      r|j                  |«       |d   d|d fS y |j                  r|dk7  r|||dfS |t        |d   «      dz
  k  r|d   |dz      |dz   |d fS y )Nr   r   r   éÿÿÿÿr   )r   r   r,   r;   r   r<   s         r7   ÚgetNextSiblingz2getETreeBuilder.<locals>.TreeWalker.getNextSiblingY   s¢   € Ü˜$¤Ô&Ø.2Ñ+�˜˜g¡tàà�vŠ~Ü�w”<Ø—N‘N 7Ô+Ø" 1™: q¨'°4Ð7Ð7àà—<’< D¨F¢NØ" C¨°&Ð8Ð8Øœ3˜w r™{Ó+¨aÑ/Ò/Ø" 2™; s¨Q¡wÑ/°°q±¸'À4ÐGÐGàr9   c                 ó   — t        |t        «      r|\  }}}}ny |dk(  r
|s|S |||d fS |j                  «       }|s|S t        |d   «      j	                  |«      dk(  sJ ‚|t        |d   «      j                  |«      |d fS )Nr   rB   r   )r   r   Úpopr'   ÚcountÚindex)r-   r.   r=   r>   r?   r1   Úparents          r7   ÚgetParentNodez1getETreeBuilder.<locals>.TreeWalker.getParentNodem   s“   € Ü˜$¤Ô&Ø.2Ñ+�˜˜g¡tàà�vŠ~ÙØ"�Nà" C¨°$Ð6Ð6à Ÿ™›�ÙØ!�Mä ¨¡Ó,×2Ñ2°6Ó:¸aÒ?Ð?Ð?Ø!¤4¨°©Ó#4×#:Ñ#:¸6Ó#BÀGÈTÐQÐQr9   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r8   r@   rC   rI   )r6   s   €r7   Ú
TreeWalkerr      s   ø„ ñ	ô&	7òP	 ò"	 ó(	Rr9   rN   )ÚCommentr   r	   ÚNonRecursiveTreeWalkerÚlocals)ÚElementTreeImplementationÚElementTreerN   r6   s      @r7   ÚgetETreeBuilderrT      s?   ø€ Ø+€KØ(×0Ñ0°Ó7×;Ñ;ÐölR”T×0Ñ0ô lRô\ ‹8€Or9   )Ú
__future__r   r   r   Úcollectionsr   ÚreÚsixr   Ú r	   Ú_utilsr   Úcompiler$   rT   ÚgetETreeModule© r9   r7   ú<module>r^      s=   ðß BÑ Bå #Û 	å å Ý )àˆR�Z‰Z˜Ó(€
òrñj & oÓ6�r9   