o
     JAf                     @   s  	 g d Z ddl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 ddlmZ dd	lmZ dd
lmZ zddlmZ W n	 eyN   Y nw eje zddlmZ W n	 eyf   Y nw G dd dejZ G dd dej!Z"G dd dej#Z$G dd de%Z&G dd de'Z(zddlm(Z( W n	 ey   Y nw zddlm)Z) W n ey   dd Z)Y nw ddddddZ*dd  Z+zdd!lm+Z+ W n	 ey   Y nw G d"d# d#e'Z,G d$d% d%ej-Z.G d&d' d'ej-Z/G d(d) d)ejZ0G d*d+ d+ej1Z2dS ),)	ChainMapCounterOrderedDictUserDictUserList
UserStringdefaultdictdeque
namedtuple    N)chain)repeat)starmap)	iskeyword)eq)
itemgetter)recursive_repr)proxy)r   )r   c                   @      e Zd Zdd ZdS )_OrderedDictKeysViewc                 c   s    t | jE d H  d S Nreversed_mappingself r   +/usr/lib/python3.10/collections/__init__.py__reversed__<   s   z!_OrderedDictKeysView.__reversed__N__name__
__module____qualname__r   r   r   r   r   r   :       r   c                   @   r   )_OrderedDictItemsViewc                 c   s&    t | jD ]
}|| j| fV  qd S r   r   r   keyr   r   r   r   A   s   z"_OrderedDictItemsView.__reversed__Nr   r   r   r   r   r#   ?   r"   r#   c                   @   r   )_OrderedDictValuesViewc                 c   s"    t | jD ]}| j| V  qd S r   r   r$   r   r   r   r   G   s   z#_OrderedDictValuesView.__reversed__Nr   r   r   r   r   r&   E   r"   r&   c                   @   s   e Zd ZdZdS )_Link)prevnextr%   __weakref__N)r   r    r!   	__slots__r   r   r   r   r'   K   s    r'   c                   @   s   e Zd Z	 d0ddZejeefddZejfddZdd	 Z	d
d Z
dd Zd1ddZd1ddZdd Zejj ZZdd Zdd Zdd ZejjZe ZefddZd2ddZe d d! Zd"d# Zd$d% Zed2d&d'Z d(d) Z!d*d+ Z"d,d- Z#d.d/ Z$dS )3r   r   c                K   s`   	 z| j  W n ty$   t | _t| j | _ }| |_|_i | _Y nw | j|fi | d S r   )	_OrderedDict__rootAttributeErrorr'   _OrderedDict__hardroot_proxyr(   r)   _OrderedDict__map_OrderedDict__update)r   otherkwdsrootr   r   r   __init__]   s   

zOrderedDict.__init__c           	      C   s\   	 || vr&|  | j |< }| j}|j}||||_|_|_||_|||_|| || d S r   )r0   r,   r(   r)   r%   )	r   r%   valueZdict_setitemr   ZLinklinkr4   lastr   r   r   __setitem__j   s   
zOrderedDict.__setitem__c                 C   s@   	 || | | j |}|j}|j}||_||_d |_d |_d S r   )r0   popr(   r)   )r   r%   Zdict_delitemr7   	link_prev	link_nextr   r   r   __delitem__x   s   

zOrderedDict.__delitem__c                 c   6    	 | j }|j}||ur|jV  |j}||usd S d S r   )r,   r)   r%   r   r4   Zcurrr   r   r   __iter__      zOrderedDict.__iter__c                 c   r>   r   )r,   r(   r%   r?   r   r   r   r      rA   zOrderedDict.__reversed__c                 C   s,   	 | j }| |_|_| j  t|  d S r   )r,   r(   r)   r0   cleardict)r   r4   r   r   r   rB      s
   
zOrderedDict.clearTc                 C   sl   	 | st d| j}|r|j}|j}||_||_n|j}|j}||_||_|j}| j|= t| |}||fS )Nzdictionary is empty)KeyErrorr,   r(   r)   r%   r0   rC   r:   )r   r8   r4   r7   r;   r<   r%   r6   r   r   r   popitem   s"   zOrderedDict.popitemc           	      C   sx   	 | j | }|j}|j}|j}||_||_| j}|r+|j}||_||_||_||_d S |j}||_||_||_||_d S r   )r0   r(   r)   r,   )	r   r%   r8   r7   r;   r<   Z	soft_linkr4   firstr   r   r   move_to_end   s&   


zOrderedDict.move_to_endc                 C   sV   t j}t| d }|| j}||| jd 7 }||| j| 7 }||| j| 7 }|S )N      )_sys	getsizeoflen__dict__r0   r.   r,   )r   Zsizeofnsizer   r   r   
__sizeof__   s   
zOrderedDict.__sizeof__c                 C   
   	 t | S r   )r   r   r   r   r   keys      zOrderedDict.keysc                 C   rQ   r   )r#   r   r   r   r   items   rS   zOrderedDict.itemsc                 C   rQ   r   )r&   r   r   r   r   values   rS   zOrderedDict.valuesc                 C   s2   	 || v r| | }| |= |S || j u rt||S r   )_OrderedDict__markerrD   )r   r%   defaultresultr   r   r   r:      s   
zOrderedDict.popNc                 C   s   	 || v r	| | S || |< |S r   r   r   r%   rW   r   r   r   
setdefault   s
   zOrderedDict.setdefaultc                 C   s,   	 | s
d| j jf S d| j jt|  f S )Nz%s()z%s(%r))	__class__r   listrT   r   r   r   r   __repr__  s   zOrderedDict.__repr__c                 C   sF   	 t |  }t t D ]}||d  q| jd|pd d t|  fS )Nr   )varscopyr   r:   r[   iterrT   )r   	inst_dictkr   r   r   
__reduce__  s
   zOrderedDict.__reduce__c                 C      	 |  | S r   r[   r   r   r   r   r_        
zOrderedDict.copyc                 C   s   	 |  }|D ]}|||< q|S r   r   )clsiterabler6   r   r%   r   r   r   fromkeys  s
   
zOrderedDict.fromkeysc                 C   s4   	 t |trt| |ottt| |S t| |S r   )
isinstancer   rC   __eq__allmap_eqr   r2   r   r   r   rk     s   
zOrderedDict.__eq__c                 C   s   |  | | S r   )updatero   r   r   r   __ior__%  s   
zOrderedDict.__ior__c                 C   s&   t |tstS | | }|| |S r   rj   rC   NotImplementedr[   rp   r   r2   newr   r   r   __or__)  
   


zOrderedDict.__or__c                 C   s&   t |tstS | |}||  |S r   rr   rt   r   r   r   __ror__0  rw   zOrderedDict.__ror__)r   )Tr   )%r   r    r!   r5   rC   r9   r/   r'   r=   r@   r   rB   rE   rG   rP   _collections_abcMutableMappingrp   r1   rR   rT   rU   __ne__objectrV   r:   rZ   _recursive_reprr]   rc   r_   classmethodri   rk   rq   rv   rx   r   r   r   r   r   N   s<    

		

	


	r   )r   )_tuplegetterc                 C   s   t t| |dS )N)doc)property_itemgetter)indexr   r   r   r   <lambda>F  s    r   F)renamedefaultsmodulec                   s  	 t trdd ttttt| } |rGt }t	D ]!\}}|
 r:t|s:|ds:||v rAd| |< || q%| g D ]"}t|turXtd|
 sctd|t|rntd|qLt }D ] }|dr|std|||v rtd||| qti }|d urt|}t|tkrtd	tttttt|}tttjtd
}	dkr|	d7 }	dd
dd D  d tjtttttf\ i d|  d}
d|	 d|	 d}t||
}d|_d|  d|	 d|_|d ur||_tfdd}d|  d|j_fdd}d|  d|_fdd } fd!d"}fd#d$}||j||||fD ]}|  d%|j |_qX|  d|	 dd&|||||||d'}t	D ]\}}td(| }t||||< q}t| tf|}|d u rzt dj!"d)d*}W n t#tfy   Y nw |d ur||_$|S )+N, _z*Type names and field names must be stringsz6Type names and field names must be valid identifiers: z0Type names and field names cannot be a keyword: z-Field names cannot start with an underscore: z"Encountered duplicate field name: z(Got more default values than field names, rH   (c                 s   s    | ]}| d V  qdS )z=%rNr   ).0namer   r   r   	<genexpr>  s    znamedtuple.<locals>.<genexpr>)namedtuple_)
_tuple_new__builtins__r   zlambda _cls, z: _tuple_new(_cls, (z))__new__zCreate new instance of c                    s2   | |} |krt d dt| |S )Nz	Expected z arguments, got )	TypeErrorrL   )rg   rh   rX   )_len
num_fields	tuple_newr   r   _make  s   
znamedtuple.<locals>._makezMake a new z# object from a sequence or iterablec                   s.   |   |j| }|rtdt||S )NzGot unexpected field names: )r   r:   
ValueErrorr\   )r   r3   rX   )_mapfield_namesr   r   _replace  s   znamedtuple.<locals>._replacezReturn a new z2 object replacing specified fields with new valuesc                    s   	 | j j |   S r   )r[   r   r   )repr_fmtr   r   r]        znamedtuple.<locals>.__repr__c                    s   	  | j | S r   )_fieldsr   )_dict_zipr   r   _asdict  r   znamedtuple.<locals>._asdictc                    s
   	  | S r   r   r   )_tupler   r   __getnewargs__  rS   z"namedtuple.<locals>.__getnewargs__.r   )__doc__r+   r   _field_defaultsr   r   r   r]   r   r   __match_args__zAlias for field number r   __main__)%rj   strreplacesplitr\   rm   rJ   internset	enumerateisidentifier
_iskeyword
startswithaddtyper   r   tuplerL   rC   r   zipjoinr   evalr   r   __defaults__r~   __func__r!   r   	_getframe	f_globalsgetr-   r    )typenamer   r   r   r   seenr   r   field_defaultsarg_list	namespacecoder   r   r   r]   r   r   methodclass_namespacer   rX   r   )	r   r   r   r   r   r   r   r   r   r   r	   H  s   






r	   c                 C   s(   	 | j }|D ]}||dd | |< qd S Nr
   rH   )r   )mappingrh   Zmapping_getelemr   r   r   _count_elements  s
   r   )r   c                       s  e Zd Z	 d< fdd	Zdd Zdd Zd<dd	Zd
d Zed<ddZ	d< fdd	Z
d<ddZdd Zdd Z fddZdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 Zd:d; Z   Z!S )=r   Nc                   s"   	 t    | j|fi | d S r   )superr5   rp   )r   rh   r3   re   r   r   r5   5  s   

zCounter.__init__c                 C   s   	 dS Nr
   r   r$   r   r   r   __missing__C  s   zCounter.__missing__c                 C   s   	 t |  S r   )sumrU   r   r   r   r   totalH  s   zCounter.totalc                 C   s@   	 |d u rt |  tdddS dd l}|j||  tddS )NrH   T)r%   reverser
   r%   )sortedrT   r   heapqnlargest)r   rN   r   r   r   r   most_commonL  s
   zCounter.most_commonc                 C   s   	 t tt|  S r   )_chainfrom_iterable_starmap_repeatrT   r   r   r   r   elements\  s   zCounter.elementsc                 C   s   t d)Nz@Counter.fromkeys() is undefined.  Use Counter(iterable) instead.)NotImplementedError)rg   rh   vr   r   r   ri   t  s   	zCounter.fromkeysc                   st   	 |d ur/t |tjr*| r#| j}| D ]\}}|||d | |< qnt | nt| | |r8| | d S d S r   )rj   ry   Mappingr   rT   r   rp   r   r   rh   r3   self_getr   countre   r   r   rp     s   
zCounter.updatec                K   st   	 |d ur/| j }t|tjr!| D ]\}}||d| | |< qn|D ]}||dd | |< q#|r8| | d S d S r   )r   rj   ry   r   rT   subtractr   r   r   r   r     s   zCounter.subtractc                 C   rd   r   re   r   r   r   r   r_     rf   zCounter.copyc                 C   s   | j t| ffS r   )r[   rC   r   r   r   r   rc        zCounter.__reduce__c                    s   	 || v rt  | d S d S r   )r   r=   )r   r   re   r   r   r=     s   zCounter.__delitem__c                    ,   	 t  tstS t fdd fD S )Nc                 3   s*    | ]}|D ]}|  | kV  qqd S r   r   r   cer2   r   r   r   r        ( z!Counter.__eq__.<locals>.<genexpr>rj   r   rs   rl   ro   r   r   r   rk        
zCounter.__eq__c                 C   s   	 t |tstS | |k S r   rj   r   rs   ro   r   r   r   r{     s   

zCounter.__ne__c                    r   )Nc                 3   s*    | ]}|D ]}|  | kV  qqd S r   r   r   r   r   r   r     r   z!Counter.__le__.<locals>.<genexpr>r   ro   r   r   r   __le__  r   zCounter.__le__c                 C   s    	 t |tstS | |ko| |kS r   r   ro   r   r   r   __lt__     
zCounter.__lt__c                    r   )Nc                 3   s*    | ]}|D ]}|  | kV  qqd S r   r   r   r   r   r   r     r   z!Counter.__ge__.<locals>.<genexpr>r   ro   r   r   r   __ge__  r   zCounter.__ge__c                 C   s    	 t |tstS | |ko| |kS r   r   ro   r   r   r   __gt__  r   zCounter.__gt__c                 C   sR   | s	| j j dS zt|  }W n ty   t| }Y nw | j j d|dS )Nz()r   r   )r[   r   rC   r   r   )r   dr   r   r   r]     s   zCounter.__repr__c                 C   sr   	 t |tstS t }|  D ]\}}|||  }|dkr!|||< q| D ]\}}|| vr6|dkr6|||< q&|S r   rj   r   rs   rT   r   r2   rX   r   r   newcountr   r   r   __add__  s   
zCounter.__add__c                 C   sv   	 t |tstS t }|  D ]\}}|||  }|dkr!|||< q| D ]\}}|| vr8|dk r8d| ||< q&|S r   r   r   r   r   r   __sub__-  s   
zCounter.__sub__c                 C   s~   	 t |tstS t }|  D ]\}}|| }||k r|n|}|dkr'|||< q| D ]\}}|| vr<|dkr<|||< q,|S r   r   r   r2   rX   r   r   other_countr   r   r   r   rv   @  s   
zCounter.__or__c                 C   sT   	 t |tstS t }|  D ]\}}|| }||k r|n|}|dkr'|||< q|S r   r   r   r   r   r   __and__T  s   
zCounter.__and__c                 C   s.   	 t  }|  D ]\}}|dkr|||< q|S r   r   rT   r   rX   r   r   r   r   r   __pos__e  s   zCounter.__pos__c                 C   s2   	 t  }|  D ]\}}|dk rd| ||< q|S r   r   r   r   r   r   __neg__m  s   zCounter.__neg__c                 C   s(   	 dd |   D }|D ]}| |= q| S )Nc                 S   s   g | ]
\}}|d ks|qS )r
   r   )r   r   r   r   r   r   
<listcomp>z  s    z*Counter._keep_positive.<locals>.<listcomp>)rT   )r   nonpositiver   r   r   r   _keep_positivex  s
   zCounter._keep_positivec                 C   s,   	 |  D ]\}}| |  |7  < q|  S r   rT   r   r   r2   r   r   r   r   r   __iadd__     zCounter.__iadd__c                 C   s,   	 |  D ]\}}| |  |8  < q|  S r   r  r  r   r   r   __isub__  r  zCounter.__isub__c                 C   s4   	 |  D ]\}}| | }||kr|| |< q|  S r   r  )r   r2   r   r   r   r   r   r   rq        zCounter.__ior__c                 C   s4   	 |   D ]\}}|| }||k r|| |< q|  S r   r  )r   r2   r   r   r   r   r   r   __iand__  r  zCounter.__iand__r   )"r   r    r!   r5   r   r   r   r   r~   ri   rp   r   r_   rc   r=   rk   r{   r   r   r   r   r]   r   r   rv   r   r   r   r   r  r  rq   r  __classcell__r   r   re   r   r     s@    2

"-r   c                   @   s   e Zd Z	 dd Zdd Zdd Zd,dd	Zd
d Zdd Zdd Z	dd Z
e dd Zedd Zdd ZeZd,ddZedd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ ZdS )-r   c                 G   s   	 t |pi g| _d S r   )r\   maps)r   r	  r   r   r   r5     s   zChainMap.__init__c                 C   s   t |r   )rD   r$   r   r   r   r     s   zChainMap.__missing__c              	   C   s6   | j D ]}z|| W   S  ty   Y qw | |S r   )r	  rD   r   )r   r%   r   r   r   r   __getitem__  s   

zChainMap.__getitem__Nc                 C   s   || v r| | S |S r   r   rY   r   r   r   r        zChainMap.getc                 C   s   t t j| j S r   )rL   r   unionr	  r   r   r   r   __len__     zChainMap.__len__c                 C   s,   i }t | jD ]
}|t| qt|S r   )r   r	  rp   rC   ri   r`   )r   r   r   r   r   r   r@     s   zChainMap.__iter__c                    s   t  fdd| jD S )Nc                 3   s    | ]} |v V  qd S r   r   )r   mr   r   r   r     s    z(ChainMap.__contains__.<locals>.<genexpr>anyr	  r$   r   r   r   __contains__  s   zChainMap.__contains__c                 C   
   t | jS r   r  r   r   r   r   __bool__     
zChainMap.__bool__c                 C   s"   | j j ddtt| j dS )Nr   r   r   )r[   r   r   rm   reprr	  r   r   r   r   r]     s   "zChainMap.__repr__c                 G   s   	 | t j|g|R  S r   )rC   ri   )rg   rh   argsr   r   r   ri     s   zChainMap.fromkeysc                 C   s(   	 | j | jd  g| jdd  R  S r   )r[   r	  r_   r   r   r   r   r_     s   &zChainMap.copyc                 K   s2   	 |d u r|}n|r| | | j|g| jR  S r   )rp   r[   r	  )r   r  kwargsr   r   r   	new_child  s   
zChainMap.new_childc                 C   s   	 | j | jdd   S )NrH   )r[   r	  r   r   r   r   parents  s   zChainMap.parentsc                 C   s   || j d |< d S r   )r	  )r   r%   r6   r   r   r   r9     r  zChainMap.__setitem__c                 C   s0   z	| j d |= W d S  ty   td|w Nr
   z$Key not found in the first mapping: )r	  rD   r$   r   r   r   r=     s
   zChainMap.__delitem__c                 C   s*   	 z| j d  W S  ty   tdw )Nr
   z#No keys found in the first mapping.)r	  rE   rD   r   r   r   r   rE     s   zChainMap.popitemc                 G   s:   	 z| j d j|g|R  W S  ty   td|w r  )r	  r:   rD   )r   r%   r  r   r   r   r:     s   zChainMap.popc                 C   s   	 | j d   d S r   )r	  rB   r   r   r   r   rB   $  s   zChainMap.clearc                 C   s   | j d | | S r   )r	  rp   ro   r   r   r   rq   (  s   zChainMap.__ior__c                 C   s,   t |tjstS |  }|jd | |S r   )rj   ry   r   rs   r_   r	  rp   )r   r2   r  r   r   r   rv   ,  s
   zChainMap.__or__c                 C   s<   t |tjstS t|}t| jD ]}|| q| |S r   )	rj   ry   r   rs   rC   r   r	  rp   r[   )r   r2   r  childr   r   r   rx   3  s   
zChainMap.__ror__r   )r   r    r!   r5   r   r
  r   r  r@   r  r  r}   r]   r~   ri   r_   __copy__r  r   r  r9   r=   rE   r:   rB   rq   rv   rx   r   r   r   r   r     s6    




r   c                   @   s   e Zd ZdddZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd ZedddZdS )r   Nc                K   s.   i | _ |d ur| | |r| | d S d S r   )datarp   )r   rC   r  r   r   r   r5   C  s   
zUserDict.__init__c                 C   r  r   rL   r  r   r   r   r   r  J  r  zUserDict.__len__c                 C   s6   || j v r
| j | S t| jdr| j| |S t|)Nr   )r  hasattrr[   r   rD   r$   r   r   r   r
  M  s
   

zUserDict.__getitem__c                 C      || j |< d S r   r  )r   r%   itemr   r   r   r9   T     zUserDict.__setitem__c                 C      | j |= d S r   r"  r$   r   r   r   r=   W     zUserDict.__delitem__c                 C   r  r   )r`   r  r   r   r   r   r@   Z  r  zUserDict.__iter__c                 C   
   || j v S r   r"  r$   r   r   r   r  ^  r  zUserDict.__contains__c                 C   r  r   r  r  r   r   r   r   r]   b  r  zUserDict.__repr__c                 C   s:   t |tr| | j|jB S t |tr| | j|B S tS r   rj   r   r[   r  rC   rs   ro   r   r   r   rv   e  
   

zUserDict.__or__c                 C   s:   t |tr| |j| jB S t |tr| || jB S tS r   r)  ro   r   r   r   rx   l  r*  zUserDict.__ror__c                 C   s0   t |tr|  j|jO  _| S |  j|O  _| S r   )rj   r   r  ro   r   r   r   rq   s  s
   
zUserDict.__ior__c                 C   s4   | j | j }|j| j | jd  |jd< |S Nr  )r[   r   rM   rp   r_   r   instr   r   r   r  z  s   zUserDict.__copy__c                 C   sX   | j tu rt| j S dd l}| j}zi | _|| }W || _n|| _w ||  |S r   )r[   r   r  r_   rp   )r   r_   r  r   r   r   r   r_     s   

zUserDict.copyc                 C   s   |  }|D ]}|||< q|S r   r   )rg   rh   r6   r   r%   r   r   r   ri     s   
zUserDict.fromkeysr   )r   r    r!   r5   r  r
  r9   r=   r@   r  r]   rv   rx   rq   r  r_   r~   ri   r   r   r   r   r   @  s     
r   c                   @   s  e Zd Z	 d?ddZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# ZeZd$d% Zd&d' Zd(d) Zd*d+ Zd@d-d.Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Z d=d> Z!dS )Ar   Nc                 C   sj   g | _ |d ur3t|t| j kr|| j d d < d S t|tr,|j d d  | j d d < d S t|| _ d S d S r   )r  r   rj   r   r\   )r   initlistr   r   r   r5     s   
zUserList.__init__c                 C   r  r   r(  r   r   r   r   r]     r  zUserList.__repr__c                 C   s   | j | |k S r   r  _UserList__castro   r   r   r   r     r   zUserList.__lt__c                 C   s   | j | |kS r   r/  ro   r   r   r   r     r   zUserList.__le__c                 C   s   | j | |kS r   r/  ro   r   r   r   rk     r   zUserList.__eq__c                 C   s   | j | |kS r   r/  ro   r   r   r   r     r   zUserList.__gt__c                 C   s   | j | |kS r   r/  ro   r   r   r   r     r   zUserList.__ge__c                 C   s   t |tr|jS |S r   )rj   r   r  ro   r   r   r   __cast  r  zUserList.__castc                 C   r'  r   r"  r   r#  r   r   r   r    r  zUserList.__contains__c                 C   r  r   r  r   r   r   r   r    r  zUserList.__len__c                 C   s$   t |tr| | j| S | j| S r   )rj   slicer[   r  r   ir   r   r   r
    s   

zUserList.__getitem__c                 C   r!  r   r"  r   r5  r#  r   r   r   r9     r$  zUserList.__setitem__c                 C   r%  r   r"  r4  r   r   r   r=     r&  zUserList.__delitem__c                 C   sP   t |tr| | j|j S t |t| jr| | j| S | | jt| S r   rj   r   r[   r  r   r\   ro   r   r   r   r     
   
zUserList.__add__c                 C   sP   t |tr| |j| j S t |t| jr| || j S | t|| j S r   r7  ro   r   r   r   __radd__  r8  zUserList.__radd__c                 C   sV   t |tr|  j|j7  _| S t |t| jr |  j|7  _| S |  jt|7  _| S r   )rj   r   r  r   r\   ro   r   r   r   r    s   
zUserList.__iadd__c                 C      |  | j| S r   r[   r  r   rN   r   r   r   __mul__  r   zUserList.__mul__c                 C   s   |  j |9  _ | S r   r"  r<  r   r   r   __imul__  s   zUserList.__imul__c                 C   s8   | j | j }|j| j | jd d d  |jd< |S r+  )r[   r   rM   rp   r,  r   r   r   r    s   zUserList.__copy__c                 C      | j | d S r   )r  appendr2  r   r   r   r@    r   zUserList.appendc                 C   s   | j || d S r   )r  insertr6  r   r   r   rA    r  zUserList.insertc                 C      | j |S r   )r  r:   r4  r   r   r   r:     r&  zUserList.popc                 C   r?  r   )r  remover2  r   r   r   rD    r   zUserList.removec                 C      | j   d S r   )r  rB   r   r   r   r   rB     r$  zUserList.clearc                 C   s
   |  | S r   re   r   r   r   r   r_     r  zUserList.copyc                 C   rC  r   )r  r   r2  r   r   r   r     r&  zUserList.countc                 G   s   | j j|g|R  S r   r  r   )r   r#  r  r   r   r   r     r  zUserList.indexc                 C   rE  r   )r  r   r   r   r   r   r     r$  zUserList.reversec                O   s   | j j|i | d S r   )r  sortr   r  r3   r   r   r   rG    s   zUserList.sortc                 C   s,   t |tr| j|j d S | j| d S r   )rj   r   r  extendro   r   r   r   rI    s   
zUserList.extendr   rB  )"r   r    r!   r5   r]   r   r   rk   r   r   r0  r  r  r
  r9   r=   r   r9  r  r=  __rmul__r>  r  r@  rA  r:   rD  rB   r_   r   r   r   rG  rI  r   r   r   r   r     sB    
	
r   c                   @   sx  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& ZeZd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1ejfd2d3Zd4d5 Zd6d7 Z dd:d;Z!d1ejfd<d=Z"dd?d@Z#d1ejfdAdBZ$dCdD Z%dEdF Z&d1ejfdGdHZ'dIdJ Z(dKdL Z)dMdN Z*dOdP Z+dQdR Z,dSdT Z-dUdV Z.dWdX Z/dYdZ Z0d[d\ Z1d]d^ Z2d_d` Z3dadb Z4dcdd Z5dedf Z6ddhdiZ7e8j9Z9djdk Z:ddmdnZ;d1ejfdodpZ<d1ejfdqdrZ=dsdt Z>dudv Z?ddwdxZ@ddydzZAdd{d|ZBdd~dZCd1ejfddZDdddZEdd ZFdd ZGdd ZHdd ZIdd ZJdgS )r   c                 C   s@   t |tr
|| _d S t |tr|jd d  | _d S t|| _d S r   )rj   r   r  r   r   seqr   r   r   r5   !  s
   


zUserString.__init__c                 C   r  r   )r   r  r   r   r   r   __str__)  r  zUserString.__str__c                 C   r  r   r(  r   r   r   r   r]   ,  r  zUserString.__repr__c                 C   r  r   )intr  r   r   r   r   __int__/  r  zUserString.__int__c                 C   r  r   )floatr  r   r   r   r   	__float__2  r  zUserString.__float__c                 C   r  r   )complexr  r   r   r   r   __complex__5  r  zUserString.__complex__c                 C   r  r   )hashr  r   r   r   r   __hash__8  r  zUserString.__hash__c                 C   s   | j d d  fS r   r"  r   r   r   r   r   ;  r   zUserString.__getnewargs__c                 C   s    t |tr| j|jkS | j|kS r   rj   r   r  r   stringr   r   r   rk   >     

zUserString.__eq__c                 C   s    t |tr| j|jk S | j|k S r   rW  rX  r   r   r   r   C  rZ  zUserString.__lt__c                 C   s    t |tr| j|jkS | j|kS r   rW  rX  r   r   r   r   H  rZ  zUserString.__le__c                 C   s    t |tr| j|jkS | j|kS r   rW  rX  r   r   r   r   M  rZ  zUserString.__gt__c                 C   s    t |tr| j|jkS | j|kS r   rW  rX  r   r   r   r   R  rZ  zUserString.__ge__c                 C   s   t |tr|j}|| jv S r   rW  )r   charr   r   r   r  W  s   

zUserString.__contains__c                 C   r  r   r  r   r   r   r   r  \  r  zUserString.__len__c                 C   s   |  | j| S r   r;  )r   r   r   r   r   r
  _  r   zUserString.__getitem__c                 C   sJ   t |tr| | j|j S t |tr| | j| S | | jt| S r   )rj   r   r[   r  r   ro   r   r   r   r   b  s
   

zUserString.__add__c                 C   s.   t |tr| || j S | t|| j S r   )rj   r   r[   r  ro   r   r   r   r9  i  s   
zUserString.__radd__c                 C   r:  r   r;  r<  r   r   r   r=  n  r   zUserString.__mul__c                 C   s   |  | j| S r   r;  r   r  r   r   r   __mod__s  r   zUserString.__mod__c                 C   s   |  t||  S r   )r[   r   )r   templater   r   r   __rmod__v  r  zUserString.__rmod__c                 C      |  | j S r   )r[   r  
capitalizer   r   r   r   ra  z  r   zUserString.capitalizec                 C   r`  r   )r[   r  casefoldr   r   r   r   rb  }  r   zUserString.casefoldc                 G      |  | jj|g|R  S r   )r[   r  centerr   widthr  r   r   r   rd       zUserString.centerr
   c                 C       t |tr|j}| j|||S r   )rj   r   r  r   r   substartendr   r   r   r        
zUserString.countc                C   "   t |tr|j}| | j|S r   )rj   r   r  r[   removeprefix)r   prefixr   r   r   ro       
zUserString.removeprefixc                C   rn  r   )rj   r   r  r[   removesuffix)r   suffixr   r   r   rr    rq  zUserString.removesuffixutf-8strictc                 C   s.   |d u rdn|}|d u rdn|}| j ||S )Nrt  ru  )r  encode)r   encodingerrorsr   r   r   rv    s   zUserString.encodec                 C      | j |||S r   )r  endswith)r   rs  rk  rl  r   r   r   rz    r   zUserString.endswith   c                 C      |  | j|S r   )r[   r  
expandtabs)r   tabsizer   r   r   r}    r  zUserString.expandtabsc                 C   rh  r   )rj   r   r  findri  r   r   r   r    rm  zUserString.findc                O   s   | j j|i |S r   )r  formatrH  r   r   r   r    r  zUserString.formatc                 C   rC  r   )r  
format_map)r   r   r   r   r   r    r&  zUserString.format_mapc                 C   ry  r   rF  ri  r   r   r   r     r   zUserString.indexc                 C   
   | j  S r   )r  isalphar   r   r   r   r    r  zUserString.isalphac                 C   r  r   )r  isalnumr   r   r   r   r    r  zUserString.isalnumc                 C   r  r   )r  isasciir   r   r   r   r    r  zUserString.isasciic                 C   r  r   )r  	isdecimalr   r   r   r   r    r  zUserString.isdecimalc                 C   r  r   )r  isdigitr   r   r   r   r    r  zUserString.isdigitc                 C   r  r   )r  r   r   r   r   r   r     r  zUserString.isidentifierc                 C   r  r   )r  islowerr   r   r   r   r    r  zUserString.islowerc                 C   r  r   )r  	isnumericr   r   r   r   r    r  zUserString.isnumericc                 C   r  r   )r  isprintabler   r   r   r   r    r  zUserString.isprintablec                 C   r  r   )r  isspacer   r   r   r   r    r  zUserString.isspacec                 C   r  r   )r  istitler   r   r   r   r    r  zUserString.istitlec                 C   r  r   )r  isupperr   r   r   r   r    r  zUserString.isupperc                 C   rC  r   )r  r   rL  r   r   r   r     r&  zUserString.joinc                 G   rc  r   )r[   r  ljustre  r   r   r   r    rg  zUserString.ljustc                 C   r`  r   )r[   r  lowerr   r   r   r   r    r   zUserString.lowerNc                 C   r|  r   )r[   r  lstripr   charsr   r   r   r    r  zUserString.lstripc                 C   rC  r   )r  	partitionr   sepr   r   r   r    r&  zUserString.partitionrB  c                 C   s6   t |tr|j}t |tr|j}| | j|||S r   )rj   r   r  r[   r   )r   oldru   maxsplitr   r   r   r     s
   

zUserString.replacec                 C   rh  r   )rj   r   r  rfindri  r   r   r   r    rm  zUserString.rfindc                 C   ry  r   )r  rindexri  r   r   r   r    r   zUserString.rindexc                 G   rc  r   )r[   r  rjustre  r   r   r   r    rg  zUserString.rjustc                 C   rC  r   )r  
rpartitionr  r   r   r   r    r&  zUserString.rpartitionc                 C   r|  r   )r[   r  rstripr  r   r   r   r    r  zUserString.rstripc                 C      | j ||S r   )r  r   r   r  r  r   r   r   r     r$  zUserString.splitc                 C   r  r   )r  rsplitr  r   r   r   r    r$  zUserString.rsplitFc                 C   rC  r   )r  
splitlines)r   keependsr   r   r   r    r&  zUserString.splitlinesc                 C   ry  r   )r  r   )r   rp  rk  rl  r   r   r   r     r   zUserString.startswithc                 C   r|  r   )r[   r  stripr  r   r   r   r    r  zUserString.stripc                 C   r`  r   )r[   r  swapcaser   r   r   r   r    r   zUserString.swapcasec                 C   r`  r   )r[   r  titler   r   r   r   r  
  r   zUserString.titlec                 G   s   |  | jj| S r   )r[   r  	translater\  r   r   r   r    r  zUserString.translatec                 C   r`  r   )r[   r  upperr   r   r   r   r    r   zUserString.upperc                 C   r|  r   )r[   r  zfill)r   rf  r   r   r   r    r  zUserString.zfill)rt  ru  )r{  r   rJ  )NrB  )F)Kr   r    r!   r5   rN  r]   rP  rR  rT  rV  r   rk   r   r   r   r   r  r  r
  r   r9  r=  rK  r]  r_  ra  rb  rd  rJ   maxsizer   ro  rr  rv  rz  r}  r  r  r  r   r  r  r  r  r  r   r  r  r  r  r  r  r   r  r  r  r   	maketransr  r   r  r  r  r  r  r   r  r  r   r  r  r  r  r  r  r   r   r   r   r     s    








r   )3__all__ry   sysrJ   	itertoolsr   r   r   r   r   r   keywordr   r   operatorr   rn   r   r   reprlibr   r}   _weakrefr   r/   _collectionsr   ImportErrorMutableSequenceregisterr   KeysViewr   	ItemsViewr#   
ValuesViewr&   r|   r'   rC   r   r   r	   r   r   rz   r   r   r   Sequencer   r   r   r   r   <module>   sr     k	 0   = Z 