
    Rh6                         d dl Z  e j                  d      ZddZd Zd Zd Zd Zd Zd	 Z	d
 Z
d Zd Zeee	ee
edZi Z G d d      ZddZddZddZddZy)    Nz`('[^']*'|\"[^\"]*\"|::|//?|\.\.|\(\)|!=|[/.*:\[\]\(\)@=])|((?:\{[^}]+\})?[^/\[\]\(\)@!=\s]+)|\s+c              #   j  K   |r|j                  d      nd }d}t        j                  |       D ]d  }|\  }}|rR|d   dk7  rJd|v r.|j                  dd      \  }}	 |st        |d||   d|f n|r|s|d|d|f n| d}\| |d	k(  }f y # t        $ r t        d|z        d w xY ww)
N Fr   {:   }z!prefix %r not found in prefix map@)getxpath_tokenizer_refindallsplitKeyErrorSyntaxError)	pattern
namespacesdefault_namespaceparsing_attributetokenttypetagprefixuris	            ,/usr/lib/python3.12/xml/etree/ElementPath.pyxpath_tokenizerr   J   s     .8
r*d#++G4 -
s3q6S=cz!iiQ/^%&Z-?!EEE #+<):C@@@ %K %%-   ^%&IF&RSY]]^s   AB3B2%B3B00B3c                     | j                   }|4i x| _         }| j                  j                         D ]  }|D ]  }|||<   	  |S N)
parent_maprootiter)contextr   pes       r   get_parent_mapr#   b   s\    ##J*,,Z""$ 	"A " !
1"	"     c                 &    | d d dk(  xs | dd  dk(  S )N   {*}}* r   s    r   _is_wildcard_tagr,   l   s#    r7e/s23x4//r$   c                 8    t         t        c dk(  rfd}|S  dk(  rfd}|S  d d dk(  r+ dd  t        t               d        dd    fd}|S  d	d  d
k(  r$ d d t        d t                    fd}|S t	        d        )Nz{*}*c              3   L   K   |D ]  } |j                         s|  y wr   r+   )r    resultelem_isinstance_strs      r   selectz_prepare_tag.<locals>.selectv   s)      txx.Js   $$z{}*c              3   b   K   |D ]%  }|j                   } |      s|d   dk7  s"| ' y w)Nr   r   r+   )r    r/   r0   el_tagr1   r2   s       r   r3   z_prepare_tag.<locals>.select|   s9      vt,c1AJ   ///r&   r'      c              3   l   K   |D ]*  }|j                   }|k(  s |      s|   k(  s'| , y wr   r+   )	r    r/   r0   r5   r1   r2   no_nssuffixr   s	       r   r3   z_prepare_tag.<locals>.select   s@      S=K$=&-SYBYJs    444r(   r)   c              3   b   K   |D ]%  }|j                   } |      s|   k(  s"| ' y wr   r+   )r    r/   r0   r5   r1   r2   nsns_onlys       r   r3   z_prepare_tag.<locals>.select   s9      vt,B1FJr6   zinternal parser error, got )
isinstancestrslicelenRuntimeError)r   r3   r1   r2   r9   r=   r>   r:   s   ` @@@@@@r   _prepare_tagrD   p   s    "CK
f}	@ M9 
	4 M+ 
RaE	QRs6{lD)!"g	 	  M 
RST	"Xc"g&	 M 8>??r$   c                 r    |d   t              rt              fd}|S d d dk(  rdd  fd}|S )Nr   c                 (    d } |  ||            S )Nc              3   2   K   | D ]  }|E d {     y 7 wr   r*   )r/   r0   s     r   select_childz3prepare_child.<locals>.select.<locals>.select_child   s     " $D#OO$#   r*   r    r/   rH   
select_tags      r   r3   zprepare_child.<locals>.select   s    $ g|F';<<r$   r7   {}c              3   R   K   |D ]  }|D ]  }|j                   k(  s|   y wr   r+   r    r/   r0   r"   r   s       r   r3   zprepare_child.<locals>.select   s5         Auu|  s   '	')r,   rD   nextr   r3   rK   r   s      @@r   prepare_childrQ      sP    
(C!#&
	= M r7d?ab'C	 
 Mr$   c                     d }|S )Nc              3   2   K   |D ]  }|E d {     y 7 wr   r*   )r    r/   r0   s      r   r3   zprepare_star.<locals>.select   s      	DOO	rI   r*   rP   r   r3   s      r   prepare_starrU      s     Mr$   c                     d }|S )Nc              3   $   K   |E d {    y 7 wr   r*   )r    r/   s     r   r3   zprepare_self.<locals>.select   s     s   r*   rT   s      r   prepare_selfrX      s    Mr$   c                     	  |        }|d   dk(  rdn|d   s|d   nt        d      t              rt              fd}|S d d dk(  rdd  fd}|S # t         $ r Y y w xY w)	Nr   *r   zinvalid descendantc                 (    d } |  ||            S )Nc              3   V   K   | D ]   }|j                         D ]  }||us|  " y wr   r   )r/   r0   r"   s      r   rH   z8prepare_descendant.<locals>.select.<locals>.select_child   s6     " $D!YY[ $D="#G$$s   )	)r*   rJ   s      r   r3   z"prepare_descendant.<locals>.select   s    $
 g|F';<<r$   r7   rL   c              3   Z   K   |D ]!  }|j                        D ]  }||us|  # y wr   r]   rN   s       r   r3   z"prepare_descendant.<locals>.select   s9       3  A}  s   +	+)StopIterationr   r,   rD   rO   s      @@r   prepare_descendantr`      s     Qx31XAh.//!#&
	= M r7d?ab'C	 
 M5  s   A 	A)(A)c                     d }|S )Nc              3   d   K   t        |       }i }|D ]  }||v s||   }||vsd ||<   |  y wr   )r#   )r    r/   r   
result_mapr0   parents         r   r3   zprepare_parent.<locals>.select   sM     #G,

 	!Dz!#D)+)-Jv& L	!s   0	00r*   rT   s      r   prepare_parentre      s    	! Mr$   c                   	 g }g }	 	  |        }|d   dk(  rnL|dk(  r|d   r|d   d d dv r
d|d   dd f}|j                  |d   xs d       |j                  |d          ]d	j                  |      }|d
k(  r|d   fd}|S |dk(  s|dk(  r|d   |d   		fd}	fd}d|v r|S |S |dk(  r%t        j                  d|d         s|d   fd}|S |dk(  s(|dk(  s#|dk(  s|dk(  rDt        j                  d|d         s+|d   |d   	r	fd}	fd}n
	fd}	fd}d|v r|S |S |dk(  s
|dk(  s|dk(  ri|dk(  r!t        |d         dz
  dk  rGt        d      |d   dk7  rt        d      |dk(  r"	 t        |d          dz
  d"kD  rt        d#      dfd$}|S t        d%      # t         $ r Y y w xY w# t        $ r t        d!      w xY w)&Nr   r   ])r   r   z'"'r;   -r   z@-c              3   H   K   |D ]  }|j                        |  y wr   r
   )r    r/   r0   keys      r   r3   z!prepare_predicate.<locals>.select   s)      88C=,J   ""z@-='z@-!='c              3   N   K   |D ]  }|j                        k(  s|  y wr   rk   )r    r/   r0   rl   values      r   r3   z!prepare_predicate.<locals>.select  s+      88C=E)Js   %%c              3   X   K   |D ]   }|j                        x}|k7  s| " y wr   rk   )r    r/   r0   
attr_valuerl   ro   s       r   select_negatedz)prepare_predicate.<locals>.select_negated  s5      "&((3-/J<uATJs   ***z!=z\-?\d+$c              3   H   K   |D ]  }|j                        |  y wr   )find)r    r/   r0   r   s      r   r3   z!prepare_predicate.<locals>.select  s)      99S>-Jrm   z.='z.!='z-='z-!='c              3      K   |D ]@  }|j                        D ]*  }dj                  |j                               k(  s&|  @ B y wNr   )r   joinitertextr    r/   r0   r"   r   ro   s       r   r3   z!prepare_predicate.<locals>.select  sM     " "D!\\#. "771::<0E9"&J!""   <A
 
A
c              3      K   |D ]@  }|j                        D ]*  }dj                  |j                               k7  s&|  @ B y wrv   )iterfindrw   rx   ry   s       r   rr   z)prepare_predicate.<locals>.select_negated"  sM     " "D!]]3/ "771::<0E9"&J!""rz   c              3   j   K   |D ])  }dj                  |j                               k(  s&| + y wrv   rw   rx   r    r/   r0   ro   s      r   r3   z!prepare_predicate.<locals>.select)  2     " #Dwwt}}/58"
#   (33c              3   j   K   |D ])  }dj                  |j                               k7  s&| + y wrv   r~   r   s      r   rr   z)prepare_predicate.<locals>.select_negated-  r   r   z-()z-()-zXPath position >= 1 expectedlastzunsupported functionr7   zunsupported expressionr(   z)XPath offset from last() must be negativec              3      K   t        |       }|D ]7  }	 ||   }t        |j                  |j                              }|   |u r| 9 y # t        t
        f$ r Y Lw xY wwr   )r#   listr   r   
IndexErrorr   )r    r/   r   r0   rd   elemsindexs         r   r3   z!prepare_predicate.<locals>.selectE  sp     '0J '-F !9:EU|t+"
 #H- s(   A!4A	A!AA!AA!zinvalid predicate)r_   appendrw   rematchintr   
ValueError)
rP   r   	signature	predicater3   rr   r   rl   r   ro   s
         @@@@r   prepare_predicater      s|    II
	FE 8s?H8a!-q!B'EqS)q"  	"IDl	 Fi72l"		 "&!2~>>CYq\ Bl	 EY&0%9#6HHZ16l"""## "&!2~>>C9-f1D	!%)Eqy!"@AA|v%!"899F"@	!-1E 2:%&QRR
	 
)
**M  		h " @%&>??@s   F6 G 6	GGG)r   rZ   .z..z//[c                       e Zd ZdZd Zy)_SelectorContextNc                     || _         y r   )r   )selfr   s     r   __init__z_SelectorContext.__init__`  s	    	r$   )__name__
__module____qualname__r   r   r*   r$   r   r   r   ^  s    Jr$   r   c                    |dd  dk(  r|dz   }|f}|r%|t        t        |j                                     z  }	 t        |   }| g}t        |       }|D ]  }	 |	||      } |S # t        $ r t        t              dkD  rt        j                          |d d dk(  rt        d      t        t        ||            j                  }	  |       }n# t        $ r Y Y y w xY wg }	 	 |j                  t        |d      ||             n# t        $ r t        d      d w xY w	  |       }|d   dk(  r |       }n# t        $ r Y nw xY wd|t        |<   Y w xY w)	Nr;   /rZ   d   r   z#cannot use absolute path on elementr   zinvalid path)tuplesorteditems_cacher   rB   clearr   r   r   __next__r_   r   opsr   )
r0   pathr   	cache_keyselectorrP   r   r/   r    r3   s
             r   r|   r|   h  s{   BCyCczIU6*"2"2"4566	%)$2 VFt$G )()M9  %v;LLN8s?CDDOD*56??	FE 		<E!HdE :;  <!.1t;<8s? FE    %y-%sr   	A" "A!ECE	CECE !DEDED32E3	D?<E>D??EEc                 0    t        t        | ||      d       S r   )rP   r|   r0   r   r   s      r   rt   rt     s    tZ0$77r$   c                 .    t        t        | ||            S r   )r   r|   r   s      r   r   r     s    tZ011r$   c                     	 t        t        | ||            } | j                  y| j                  S # t        $ r |cY S w xY wrv   )rP   r|   textr_   )r0   r   defaultr   s       r   findtextr     sE    HT44599yy s   "1 1 ??r   )NN)r   compiler   r   r#   r,   rD   rQ   rU   rX   r`   re   r   r   r   r   r|   rt   r   r   r*   r$   r   <module>r      s   v 
RZZ	 -00&R&
>n+b 			

	 
 'X82r$   