<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
U
    .e1                     @   s   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
 dd	l
mZ dd
lmZ edZdddZeeZdS )    )absolute_importdivisionunicode_literals)	text_typeN   )base   )	_ihatexml)	constants)
namespaces)moduleFactoryFactoryz{([^}]*)}(.*)Fc              	      s    djG fdddtjG fddd G fdddG fdd	d	G fd
ddfdd	fdd}G  	fdddtj}t S )NZasdc                       s   e Zd Zd$ fdd	Zdd Zdd Zdd	 ZeeeZd
d Z	dd Z
ee
e	Zdd Zdd ZeeeZdd Zdd ZeeeZdd Zdd Zdd Zdd Zd%ddZd d! Zd"d# ZdS )&z getETreeBuilder.<locals>.ElementNc                    s^   || _ || _ | ||| _|d kr:td | j f| _n| j| j f| _d | _g | _g | _	d S )Nhtml)
_name
_namespaceElement_getETreeTag_elementr   Z	nameTupleparent_childNodes_flags)selfname	namespaceElementTree K/usr/lib/python3.8/site-packages/pip/_vendor/html5lib/treebuilders/etree.py__init__   s    
z)getETreeBuilder.<locals>.Element.__init__c                 S   s   |d kr|}nd||f }|S )N{%s}%sr   )r   r   r   Z	etree_tagr   r   r   r   #   s    z-getETreeBuilder.<locals>.Element._getETreeTagc                 S   s   || _ | | j | j| j_d S N)r   r   r   r   tag)r   r   r   r   r   _setName*   s    z)getETreeBuilder.<locals>.Element._setNamec                 S   s   | j S r   )r   r   r   r   r   _getName.   s    z)getETreeBuilder.<locals>.Element._getNamec                 S   s   || _ | | j| j | j_d S r   )r   r   r   r   r    )r   r   r   r   r   _setNamespace3   s    z.getETreeBuilder.<locals>.Element._setNamespacec                 S   s   | j S r   )r   r"   r   r   r   _getNamespace7   s    z.getETreeBuilder.<locals>.Element._getNamespacec                 S   s   | j jS r   )r   attribr"   r   r   r   _getAttributes<   s    z/getETreeBuilder.<locals>.Element._getAttributesc                 S   sh   t | jj D ]}| jj|= q| D ]:\}}t|trPd|d |d f }n|}| j|| q(d S )Nr   r   r   )listr   r&   keysitems
isinstancetupleset)r   
attributeskeyvaluer   r   r   r   _setAttributes?   s    
z/getETreeBuilder.<locals>.Element._setAttributesc                 S   s   | j S r   )r   r"   r   r   r   _getChildNodesM   s    z/getETreeBuilder.<locals>.Element._getChildNodesc                 S   s*   | j d d = g | _|D ]}| | qd S r   )r   r   ZinsertChild)r   r0   elementr   r   r   _setChildNodesP   s    z/getETreeBuilder.<locals>.Element._setChildNodesc                 S   s   t | jjpt| jS )z,Return true if the node has children or text)boolr   textlenr"   r   r   r   
hasContentX   s    z+getETreeBuilder.<locals>.Element.hasContentc                 S   s$   | j | | j|j | |_d S r   )r   appendr   r   r   noder   r   r   appendChild\   s    z,getETreeBuilder.<locals>.Element.appendChildc                 S   s,   t | j|j}| j||j | |_d S r   )r(   r   indexinsertr   )r   r;   ZrefNoder=   r   r   r   insertBeforea   s    z-getETreeBuilder.<locals>.Element.insertBeforec                 S   s$   | j | | j|j d |_d S r   )r   remover   r   r:   r   r   r   removeChildf   s    z,getETreeBuilder.<locals>.Element.removeChildc                 S   s   t | js,| jjsd| j_| j j|7  _n|d krb| jd jsLd| jd _| jd  j|7  _nxt| j}||j}|dkr| j|d  jsd| j|d  _| j|d   j|7  _n | jjsd| j_| j j|7  _d S )N r   r   )r7   r   r6   tailr(   r=   )r   datar?   Zchildrenr=   r   r   r   
insertTextk   s"    

z+getETreeBuilder.<locals>.Element.insertTextc                 S   s4   t | | j| j}| j D ]\}}||j|< q|S r   )typer   r   r.   r*   )r   r3   r   r0   r   r   r   	cloneNode   s    z*getETreeBuilder.<locals>.Element.cloneNodec                 S   sl   |j r"|j d j j| jj7  _n0|jjs2d|j_| jjd k	rR|j j| jj7  _d| j_tj| | d S )NrC   rB   )
childNodesr   rD   r6   r   NodereparentChildren)r   Z	newParentr   r   r   rK      s    z1getETreeBuilder.<locals>.Element.reparentChildren)N)N)__name__
__module____qualname__r   r   r!   r#   propertyr   r$   r%   r   r'   r1   r.   r2   r4   rI   r8   r<   r?   rA   rF   rH   rK   r   r   r   r   r      s*   




r   c                       s2   e Zd Z fddZdd Zdd ZeeeZdS )z getETreeBuilder.<locals>.Commentc                    s"     || _d | _g | _g | _d S r   )Commentr   r   r   r   )r   rE   r   r   r   r      s    z)getETreeBuilder.<locals>.Comment.__init__c                 S   s   | j jS r   r   r6   r"   r   r   r   _getData   s    z)getETreeBuilder.<locals>.Comment._getDatac                 S   s   || j _d S r   rQ   r   r0   r   r   r   _setData   s    z)getETreeBuilder.<locals>.Comment._setDataN)rL   rM   rN   r   rR   rT   rO   rE   r   r   r   r   rP      s   rP   c                       sL   e Zd Z fddZdd Zdd ZeeeZdd Zd	d
 Z	eee	Z
dS )z%getETreeBuilder.<locals>.DocumentTypec                    s$     | d || j_|| _|| _d S )N
<!DOCTYPE>)r   r   r6   publicIdsystemId)r   r   rV   rW   r   r   r   r      s    z.getETreeBuilder.<locals>.DocumentType.__init__c                 S   s   | j ddS )NrV   rB   r   getr"   r   r   r   _getPublicId   s    z2getETreeBuilder.<locals>.DocumentType._getPublicIdc                 S   s   |d k	r| j d| d S )NrV   r   r-   rS   r   r   r   _setPublicId   s    z2getETreeBuilder.<locals>.DocumentType._setPublicIdc                 S   s   | j ddS )NrW   rB   rY   r"   r   r   r   _getSystemId   s    z2getETreeBuilder.<locals>.DocumentType._getSystemIdc                 S   s   |d k	r| j d| d S )NrW   r\   rS   r   r   r   _setSystemId   s    z2getETreeBuilder.<locals>.DocumentType._setSystemIdN)rL   rM   rN   r   r[   r]   rO   rV   r^   r_   rW   r   rX   r   r   DocumentType   s   
r`   c                       s   e Zd Z fddZdS )z!getETreeBuilder.<locals>.Documentc                    s     | d d S )NDOCUMENT_ROOTr   r"   rX   r   r   r      s    z*getETreeBuilder.<locals>.Document.__init__NrL   rM   rN   r   r   rX   r   r   Document   s   rd   c                       s   e Zd Z fddZdS )z)getETreeBuilder.<locals>.DocumentFragmentc                    s     | d d S )NZDOCUMENT_FRAGMENTrb   r"   rX   r   r   r      s    z2getETreeBuilder.<locals>.DocumentFragment.__init__Nrc   r   rX   r   r   DocumentFragment   s   re   c                    s*   g  d fdd	| d d  S )Nr   c                    s  t | ds|  } | jdkrz| ds0| drd| dp<d}| dpJd}d| j||f  nd| jf  n| jdkrd	 | jd k	rd
d|d  | jf  | jd k	rtdt | drt| j	rtdnh| j krdd| | jf  n@t
| jts4tdt| j| jf t| j}|d krR| j}n"| \}}tj| }d||f }dd| |f  t | dr*g }| j	 D ]T\}}	t|}|d k	r| \}}tj| }d||f }
n|}
||
|	f qt|D ]&\}}	dd|d  ||	f  q| jrNd
d|d  | jf  |d7 }| D ]}|| qZ| jrd
d|d  | jf  d S )Nr    rU   rV   rW   rB   z<!DOCTYPE %s "%s" "%s"><!DOCTYPE %s>ra   z	#documentz|%s"%s" r   Document node cannot have tailr&   $Document node cannot have attributesz|%s<!-- %s -->zExpected unicode, got %s, %sz%s %sz|%s<%s>z
|%s%s="%s")hasattrgetrootr    rZ   r9   r6   rD   	TypeErrorr7   r&   r+   r   AssertionErrorrG   
tag_regexpmatchgroupsr
   prefixesr*   sorted)r3   indentrV   rW   Znsmatchr   nsprefixr.   r0   Zattr_stringchild)ElementTreeCommentTypervserializeElementr   r   ry      sb    











 zAgetETreeBuilder.<locals>.testSerializer.<locals>.serializeElement
)r   )joinr3   )rw   )rx   ry   r   testSerializer   s    7
z'getETreeBuilder.<locals>.testSerializerc                    s2   g t    fdd|  dS )z4Serialize an element and its child nodes to a stringc                    s  t |  jr|  } | jdkr|| ds2| drf| dp>d}| dpLd}d| j||f  nd| jf  n| jdkr| jd k	r| j | jd k	rtdt	| d	rt
| jrtd
| D ]}| qn| jkrd| jf  n| jsd| jf  n2dfdd| j D }d| j|f  | jrd| j | D ]}| qhd| jf  | jr| j d S )NrU   rV   rW   rB   z<!DOCTYPE %s PUBLIC "%s" "%s">rf   ra   rh   r&   ri   z	<!--%s-->z<%s>rg   c                    s"   g | ]\}}d   ||f qS )z%s="%s")fromXmlName).0r   r0   )filterr   r   
<listcomp>&  s
    zOgetETreeBuilder.<locals>.tostring.<locals>.serializeElement.<locals>.<listcomp>z<%s %s>z</%s>)r+   r   rk   r    rZ   r9   r6   rD   rl   rj   r7   r&   r~   r{   r*   )r3   rV   rW   rv   attr)r   rw   r   rx   ry   r   r   ry     sD    





z;getETreeBuilder.<locals>.tostring.<locals>.serializeElementrB   )r	   ZInfosetFilterr{   r|   )r   rw   )r   rx   ry   r   tostring  s
    -z!getETreeBuilder.<locals>.tostringc                       sD   e Zd ZZZZ ZZZfddZ	fddZ
dd ZdS )z$getETreeBuilder.<locals>.TreeBuilderc                    s    |S r   r   )r   r3   )r}   r   r   r}   A  s    z3getETreeBuilder.<locals>.TreeBuilder.testSerializerc                    s<    r| j jS | jd k	r*| j jd| j S | j jdS d S )Nz{%s}htmlr   )Zdocumentr   ZdefaultNamespacefindr"   )fullTreer   r   getDocumentD  s    
z0getETreeBuilder.<locals>.TreeBuilder.getDocumentc                 S   s   t j| jS r   )r   TreeBuildergetFragmentr   r"   r   r   r   r   N  s    z0getETreeBuilder.<locals>.TreeBuilder.getFragmentN)rL   rM   rN   ZdocumentClassZdoctypeClassZelementClassZcommentClassZfragmentClassimplementationr}   r   r   r   )rP   rd   re   r`   r   ElementTreeImplementationr   r}   r   r   r   9  s   
r   )rP   r    r   rJ   r   locals)r   r   r   r   r   )
rP   rd   re   r`   r   r   rw   r   r   r}   r   getETreeBuilder   s    ~>6$r   )F)Z
__future__r   r   r   Zpip._vendor.sixr   rerB   r   r	   r
   r   Z_utilsr   compilern   r   ZgetETreeModuler   r   r   r   <module>   s   

  E