+
    Ĝi9                        R t ^ RIHtHtHt ^ RIt^ RIt^ RIt ^ RIH	t	 ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^ RIHt ^ R	IHtHt R
t]P0                  ! R4      t]P4                  ! R4      P6                  t ! R R]4      t ! R R]4      tR t R t! ! R R]PD                  4      t"R#   ]
 d
    ^ RIH	t	  Li ; i)a  Module for supporting the lxml.etree library. The idea here is to use as much
of the native library as possible, without using fragile hacks like custom element
names that break between releases. The downside of this is that we cannot represent
all possible trees; specifically the following are known to cause problems:

Text or comments as siblings of the root element
Docypes with no name

When any of these things occur, we emit a DataLossWarning
)absolute_importdivisionunicode_literalsN)MutableMapping)base)DataLossWarning)	constants)etree)	_ihatexml)PY3binary_typeTz{([^}]*)}(.*)asdc                   &   a  ] tR t^(t o R tRtV tR# )DocumentTypec                *    Wn         W n        W0n        R # NnamepublicIdsystemId)selfr   r   r   s   &&&&i/Users/mibo/.openclaw/workspace/.venv-ak/lib/python3.14/site-packages/html5lib/treebuilders/etree_lxml.py__init__DocumentType.__init__)   s    	      r   N)__name__
__module____qualname____firstlineno__r   __static_attributes____classdictcell____classdict__s   @r   r   r   (   s     ! !r   r   c                   B   a  ] tR t^/t o R tR tR t]! ]4      tRt	V t
R# )Documentc                "    R V n         . V n        R # r   )_elementTree_childNodesr   s   &r   r   Document.__init__0   s     r   c                    V P                   P                  4       pV P                   P                  4       P                  4        F  pK  	  VP                  VP                  4       R # r   )r&   getrootitersiblingsaddnext_element)r   elementlasts   && r   appendChildDocument.appendChild4   sO      ((*%%--/<<>D ? 	W%%&r   c                    V P                   # r   )r'   r(   s   &r   _getChildNodesDocument._getChildNodes;   s    r   )r'   r&   N)r   r   r   r   r   r1   r4   property
childNodesr   r    r!   s   @r   r$   r$   /   s      '  .)Jr   r$   c                    aaa . o\         P                  ! R R7      oRVVV3R lloS! V ^ 4       RP                  S4      # )TpreventDoubleDashCommentsc           
      
  < \        V R 4      '       Eg   \        V R4      '       EdP   SP                  R4       V P                  P                  '       d   V P                  P                  '       g;   V P                  P
                  '       g   RV P                  P                  ,          pMKRV P                  P                  : RV P                  P                  : RV P                  P
                  : R2pSP                  RR	V^,           ,          : V: 24       V P                  4       pVP                  4       e   VP                  4       pK$  Ve"   S! W1^,           4       VP                  4       pK%  R
# \        V \        4      '       g   \        V \        4      '       dX   \        V \        4      '       g   \        P                  ^ ,          ^8X  g   Q hSP                  RR	V,          : RV : R24       R
# SP                  R4       V  F  pS! W1^,           4       K  	  R
# V P                  \         8X  d   SP                  RR	V,          : RV P"                  : R24       \        V R4      '       dB   V P$                  '       d.   SP                  RR	V,          : RV P$                  : R24       R
# R
# R
# \        V \&        P(                  4      '       g   Q h\*        P,                  P/                  V P                  4      pVeo   VP1                  ^4      pVP1                  ^4      p\2        P4                  V,          pSP                  RR	V,          : RV: R	SP7                  V4      : R24       M:SP                  RR	V,          : RSP7                  V P                  4      : R24       \        V R4      '       d   . pV P8                  P;                  4        F  w  r\,        P/                  V	4      pVeE   VP=                  4       w  rYSP7                  V	4      p	\2        P4                  V,          pV: R	V	: 2pMSP7                  V	4      pVP                  W34       K  	  \?        V4       F0  w  rSP                  RR	V^,           ,          : V	: RV
: R24       K2  	  V P"                  '       d3   SP                  RR	V^,           ,          : RV P"                  : R24       V^,          pV  F  pS! W4       K  	  \        V R4      '       dI   V P$                  '       d5   SP                  RR	V^,
          ,          : RV P$                  : R24       R
# R
# R
# )tagr+   z	#document<!DOCTYPE %s>z
<!DOCTYPE z "z" "z">| N"z#document-fragmentz<!-- z -->tail<>attrib=") hasattrappenddocinfointernalDTD	public_id
system_url	root_namer+   getpreviousgetnext
isinstancestrbytessysversion_infor<   comment_typetextrA   r	   _Elementetree_builders
tag_regexpmatchgroupr   prefixesfromXmlNamerD   itemsgroupssorted)r/   indentdtd_strnext_elementnsmatchnsr<   prefix
attributesr   valueattr_stringchildinfosetFilterrvserializeElements   &&           r   rl   (testSerializer.<locals>.serializeElementE   s   w&&w	**		+&??...#OO555#OO666"1GOO4M4M"M $OO55#OO55#OO66#8 II
);WEF&0"..0<#/#;#;#=L".$\A:>#/#7#7#9L / GS))Z-G-G!'3//33C3CA3F!3KKK		vw?@ 		./$+L$\A:> %,[[L(II#,,EFw''GLLL		vw||DE -9' gu~~6666$//55gkkBG"]]1%mmA&"++B/		#,,*7*C*CC*HJ K 		sV||'4'@'@'MO P w))
#*>>#7#7#9KD(..t4G*#*>>#3,88>!*!3!3B!717&>&3&?&?&E%%{&:; $: $**#5KDIIcVaZ.@$NO $6 |||		
););W\\JKaKF  / !w''GLLL		
););W\\JK -9'r   
    )r
   InfosetFilterjoin)r/   rj   rk   rl   s   &@@@r   testSerializerrs   A   sA    	B++dKMEL ELL Wa 99R=r   c                J   aa . oVV3R loS! V 4       RP                  S4      # )z4Serialize an element and its child nodes to a stringc           
      H  < \        V R 4      '       g   V P                  P                  '       db   V P                  P                  '       d   V P                  P                  pMRV P                  P                  ,          pSP                  V4       S! V P                  4       4       EM0V P                  \        8X  d"   SP                  RV P                  : R24       MV P                  '       g"   SP                  RV P                  : R24       MiRP                  V P                  P                  4        UUu. uF  w  r#V: RV: R2NK  	  upp4      pSP                  RV P                  : RV: R24       V P                  '       d   SP                  V P                  4       V  F  pS! V4       K  	  SP                  R	V P                  : R24       \        V R
4      '       d2   V P                  '       d   SP                  V P                  4       R# R# R# u uppi )r<   r=   z<!--z-->rB   rC   r?   rE   r@   z</rA   N)rF   rH   rI   doctyperL   rG   r+   r<   rT   rU   rD   rr   r]   rA   )r/   ra   r   rg   attrri   rk   rl   s   &     r   rl   "tostring.<locals>.serializeElement   ss   w&&***??***%oo55G-0I0IIG		'"W__./[[L(IIW\\34 >>>		GKK12xx4;NN4H4H4J!L4J[T 15e!<4J!L M		w{{D9:|||		',,'  ' ! II./7F##IIgll# )5#!Ls   :H
 )rr   )r/   rk   rl   s   &@@r   tostringrz      s&    	B$@ W772;r   c                      a a ] tR t^t o]t]tRtRt	]t
]tRR ltR tR tR tR tR tRR ltRV 3R	 lltR
 tRtVtV ;t# )TreeBuilderNc                l  aaa \         P                  ! \        VR 7      o\        P                  ! RR7      ;oV n        Wn         ! V3R lR\        4      o ! VVV3R lRSP                  4      p ! VV3R lRSP                  4      pW0n
        W@n        \        P                  P                  W4       R	# )
)fullTreeTr9   c                   X   <a  ] tR t^t o R tV3R ltR tR tR tR t	R t
R tR	tV tR
# )(TreeBuilder.__init__.<locals>.Attributesc                    Wn         R # r   r.   r   r/   s   &&r   r   1TreeBuilder.__init__.<locals>.Attributes.__init__   s     'r   c                   < \        V\        4      '       d*   R V^,          : RSP                  V^,          4      : 2pV# SP                  V4      pV# ){})rO   tuplecoerceAttribute)r   keyr   rj   s   && r   
_coerceKey3TreeBuilder.__init__.<locals>.Attributes._coerceKey   sN    c5))'*1vv}/L/LSQRV/TUD  )88=Dr   c                    V P                   P                   P                  V P                  V4      ,          p\        '       g(   \	        V\
        4      '       d   VP                  R 4      pV# )ascii)r.   rD   r   r   rO   r   decoder   r   rg   s   && r   __getitem__4TreeBuilder.__init__.<locals>.Attributes.__getitem__   sI    ..55dooc6JKsz%==!LL1Er   c                h    W P                   P                   P                  V P                  V4      &   R # r   r.   rD   r   r   s   &&&r   __setitem__4TreeBuilder.__init__.<locals>.Attributes.__setitem__   s#    FK&&--dooc.BCr   c                f    V P                   P                   P                  V P                  V4       R # r   r   )r   r   s   &&r   __delitem__4TreeBuilder.__init__.<locals>.Attributes.__delitem__   s#    MM**11$//#2FGr   c                T    \        V P                  P                  P                  4      # r   )iterr.   rD   r(   s   &r   __iter__1TreeBuilder.__init__.<locals>.Attributes.__iter__   s    DMM2299::r   c                T    \        V P                  P                  P                  4      # r   )lenr.   rD   r(   s   &r   __len__0TreeBuilder.__init__.<locals>.Attributes.__len__   s    4==118899r   c                ^    V P                   P                   P                  P                  4       # r   )r.   rD   clearr(   s   &r   r   .TreeBuilder.__init__.<locals>.Attributes.clear   s!    }}--44::<<r   r   N)r   r   r   r   r   r   r   r   r   r   r   r   r   r    )r"   rj   s   @r   
Attributesr      s4     (LH;:= =r   r   c                      <a  ] tR t^t o VVV3R ltV3R ltV3R lt]! ]]4      tR t	R t
]! ]	]
4      tR
VV3R lltR tR	tV tR# )%TreeBuilder.__init__.<locals>.Elementc                ~   < SP                  V4      pSP                  P                  WVR 7       S! V 4      V n        R# ))	namespaceN)coerceElementElementr   _attributes)r   r   r   r   builderrj   s   &&&r   r   .TreeBuilder.__init__.<locals>.Element.__init__   s7    $2248((y(I#-d#3 r   c                   < SP                  V4      V n        V P                  V P                  V P                  4      V P                  n        R # r   )r   _name_getETreeTag
_namespacer.   r<   )r   r   rj   s   &&r   _setName.TreeBuilder.__init__.<locals>.Element._setName   s9    *88>
$($5$5JJ%1!r   c                :   < SP                  V P                  4      # r   )r\   r   )r   rj   s   &r   _getName.TreeBuilder.__init__.<locals>.Element._getName   s    $00<<r   c                    V P                   # r   )r   r(   s   &r   _getAttributes4TreeBuilder.__init__.<locals>.Element._getAttributes   s    '''r   c                `    V P                   pVP                  4        VP                  V4       R # r   )rf   r   update)r   rg   rf   s   && r   _setAttributes4TreeBuilder.__init__.<locals>.Element._setAttributes   s%    !__
  "!!%(r   Nc                b   < SP                  V4      pSP                  P                  WV4       R # r   )coerceCharactersr   
insertText)r   datainsertBeforer   rj   s   &&&r   r   0TreeBuilder.__init__.<locals>.Element.insertText   s'    $55d;**4|Dr   c                    \        V 4      ! V P                  V P                  4      pV P                  P                  '       d:   VP                  P                  P                  V P                  P                  4       V# r   )typer   r   r.   rD   r   r   s   & r   	cloneNode/TreeBuilder.__init__.<locals>.Element.cloneNode  sS    t*TYY?=='''$$++224==3G3GHr   )r   r   r   )r   r   r   r   r   r   r   r6   r   r   r   rf   r   r   r   r    )r"   r   r   rj   s   @r   r   r      sP     4
1
= Hh/D()
 "..AJE E r   r   c                   T   <a  ] tR tRt o VV3R ltV3R ltR t]! ]]4      tRt	V t
R# )%TreeBuilder.__init__.<locals>.Commenti
  c                `   < SP                  V4      pSP                  P                  W4       R # r   )coerceCommentCommentr   )r   r   r   rj   s   &&r   r   .TreeBuilder.__init__.<locals>.Comment.__init__  s%    $2248((4r   c                J   < SP                  V4      pWP                  n        R # r   )r   r.   rU   )r   r   rj   s   &&r   _setData.TreeBuilder.__init__.<locals>.Comment._setData  s    $2248%)"r   c                .    V P                   P                  # r   )r.   rU   r(   s   &r   _getData.TreeBuilder.__init__.<locals>.Comment._getData  s    }})))r    N)r   r   r   r   r   r   r   r6   r   r   r    )r"   r   rj   s   @r   r   r   
  s"     5** Hh/Dr   r   N)rW   getETreeModuler	   r
   rq   rj   namespaceHTMLElementsr   r   r   elementClasscommentClassr   r|   r   )r   r   r~   r   r   r   r   rj   s   &&&  @@@r   r   TreeBuilder.__init__   s     //I-6-D-D_c-dd*%:"	= 	=@"	 "	goo "	H	0 	0goo 	0 $#!!$>r   c                    \         P                  P                  V 4       V P                  V n        . V n        R V n        R # r   )r   r|   resetinsertCommentInitialinsertCommentinitial_commentsrv   r(   s   &r   r   TreeBuilder.reset  s3    t$!66 "r   c                    \        V4      # r   )rs   r   s   &&r   rs   TreeBuilder.testSerializer#  s    g&&r   c                    \         '       d   V P                  P                  # V P                  P                  P                  4       # r   )r~   documentr&   r+   r(   s   &r   getDocumentTreeBuilder.getDocument&  s0    8==---==--5577r   c                ,   . pV P                   ^ ,          P                  pVP                  '       d   VP                  VP                  4       VP	                  \        V4      4       VP                  '       d   VP                  VP                  4       V# ro   )openElementsr.   rU   rG   extendlistrA   )r   fragmentr/   s   &  r   getFragmentTreeBuilder.getFragment,  sd    ##A&//<<<OOGLL)W&<<<OOGLL)r   c                <   VR ,          pVR,          pVR,          pV'       g%   \         P                  ! R\        4       RV n        R# V P                  P                  V4      pWR8w  d   \         P                  ! R\        4       V P                  WSV4      pW`n        R# )r   r   r   z#lxml cannot represent empty doctypeNz%lxml cannot represent non-xml doctype)warningswarnr   rv   rj   r   doctypeClass)r   tokenr   r   r   coercedNamerv   s   &&     r   insertDoctypeTreeBuilder.insertDoctype6  sz    V}$$MM?QDL,,::4@K"EW''xHG"Lr   c                    Ve   W P                   J g   Q hV P                   P                  e   Q hV P                  P                  V4       R # r   )r   r&   r   rG   )r   r   parents   &&&r   r    TreeBuilder.insertCommentInitialF  s@    ~==!888}}))111$$T*r   c                   < W P                   8X  dZ   V P                   P                  P                  4       R,          P                  \        8X  d   \
        P                  ! R\        4       \        \        V `+  W4       R# )   z@lxml cannot represent adjacent comments beyond the root elementsN)r   r&   r+   r<   rT   r   r   r   superr|   r   )r   r   r   	__class__s   &&&r   insertCommentMainTreeBuilder.insertCommentMainK  sR    mm#**224R8<<LMM\^mnk4.t<r   c                B   R pV P                   '       Ed   V P                   P                  '       g   Q hVRV P                   P                  ,          ,          pV P                   P                  f   V P                   P                  Ee   TRV P                  P                  V P                   P                  ;'       g    R 4      ,          ,          pV P                   P                  '       d   V P                   P                  pVP                  R4      ^ 8  dD   VP                  R4      ^ 8  d.   \        P                  ! R\        4       VP                  RR4      pVP                  R4      ^ 8  d   VRV,          ,          pMVR	V,          ,          pM	VR
,          pVR,          pV P                   P                  VR,          8w  d   \        P                  ! R\        4       VR,          p\        P                  ! V4      pV P                   F6  pV P                  VR,          4      pVP                  VP                   4       K8  	  V P#                  4       V n        VP'                  4       V P$                  n        VR,          pVP+                  RV P,                  4      pVf   Tp	M
RV: RV: 2p	Wn        V P1                  Wx4      p
WJn        V P$                  P2                  P5                  V
4       V P6                  P5                  V
4       V P8                  V n        R# )ry   z<!DOCTYPE %sNz PUBLIC "%s" 'r@   z6DOCTYPE system cannot contain single and double quotesU00027z"%s"z'%s'z''rC   r   zGlxml cannot represent doctype with a different name to the root elementz$<THIS_SHOULD_NEVER_APPEAR_PUBLICLY/>r   r   r   r   )rv   r   r   r   rj   coercePubidfindr   r   r   replacer	   
fromstringr   r   addpreviousr.   documentClassr   getroottreer&   getdefaultNamespacer<   r   r'   rG   r   r   r   )r   r   docStrsysidrootcomment_tokencommentr   r   	etree_tagroot_elements   &&         r   
insertRootTreeBuilder.insertRootQ  sp   
 <<<<<$$$$$nt||'8'888F%%1LL))5? ..::4<<;P;P;V;VTVWY Z<<((( LL11Ezz#!+

310D &^`op %c8 <zz#!+&5.0&5.0dNFcMF||  E&M1gixy88' "22M''f(=>GW--. 3
 **,%)%5%5%7" V}IIk4+@+@A	I  %.t4I ((9 $!!((6  . "33r   )r   rv   r   r   rj   r   r   r   )Fr   )r   r   r   r   r$   r  r   r   r   r   fragmentClassr	   implementationr   r   rs   r   r   r   r   r   r  r   r    __classcell__)r   r"   s   @@r   r|   r|      sW     MLLLMNZ?x'8# +
=74 74r   r|   )#__doc__
__future__r   r   r   r   rerR   collections.abcr   ImportErrorcollectionsry   r   r   r   r	   rW   r
   
lxml.etreesixr   r   r~   compilerX   r   r<   rT   objectr   r$   rs   rz   r|   r   r   r   <module>r"     s   	 C B  	 
+.  '  %     ZZ(
}}U#''!6 !*v *$L^&RO4$"" O4I  +*+s   B/ /B?>B?