
    ;e2                        	 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 	 ddlmZ ej                            e           n# e$ r Y nw xY w	 ddlmZ n# e$ r Y nw xY w G d dej                  Z  G d dej!                  Z" G d dej#                  Z$ G d de%          Z& G d de'          Z(	 ddlm(Z( n# e$ r Y nw xY w	 ddlm)Z) n# e$ r d Z)Y nw xY wdddddZ*d Z+	 ddlm+Z+ n# e$ r Y nw xY w G d d e'          Z, G d! d"ej-                  Z. G d# d$ej-                  Z/ G d% d&ej                  Z0 G 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 ZdS )_OrderedDictKeysViewc              #   >   K   t          | j                  E d {V  d S Nreversed_mappingselfs    +/usr/lib/python3.11/collections/__init__.py__reversed__z!_OrderedDictKeysView.__reversed__<   s.      DM***********    N__name__
__module____qualname__r    r   r   r   r   :   s#        + + + + +r   r   c                       e Zd Zd ZdS )_OrderedDictItemsViewc              #   Z   K   t          | j                  D ]}|| j        |         fV  d S r   r   r   keys     r   r   z"_OrderedDictItemsView.__reversed__A   sD      DM** 	, 	,Cc*+++++	, 	,r   Nr    r$   r   r   r&   r&   ?   s#        , , , , ,r   r&   c                       e Zd Zd ZdS )_OrderedDictValuesViewc              #   V   K   t          | j                  D ]}| j        |         V  d S r   r   r(   s     r   r   z#_OrderedDictValuesView.__reversed__G   s?      DM** 	% 	%C-$$$$$	% 	%r   Nr    r$   r   r   r+   r+   E   s#        % % % % %r   r+   c                       e Zd ZdZdS )_Link)prevnextr)   __weakref__N)r!   r"   r#   	__slots__r$   r   r   r.   r.   K   s        4IIIr   r.   c                   @   e Zd Z	 d ZddZej        eefdZej	        fdZ	d Z
d Zd Zdd
ZddZd Zej        j        xZZd Zd Zd Zej        j        Z e            ZefdZddZ e            d             Zd Zd Ze dd            Z!d Z"d Z#d Z$d Z%dS )r   c                    	 t                               |           }t                      |_        t	          |j                  x|_        }|x|_        |_        i |_        |S r   )	dict__new__r.   _OrderedDict__hardroot_proxy_OrderedDict__rootr/   r0   _OrderedDict__map)clsargskwdsr   roots        r   r6   zOrderedDict.__new__]   sQ    N||C  ''#DO444d $$	DI
r   r$   c                $    	  | j         |fi | d S r   )_OrderedDict__update)r   otherr=   s      r   __init__zOrderedDict.__init__f   s)    	 	e$$t$$$$$r   c                     	 || vrO |            x| j         |<   }| j        }|j        }|||c|_        |_        |_        ||_         ||          |_         || ||           d S r   )r:   r9   r/   r0   r)   )	r   r)   valuedict_setitemr   Linklinkr>   lasts	            r   __setitem__zOrderedDict.__setitem__l   sz    + d??%)TVV+DJsOd;D9D-14*DIty$(DIdDIT3&&&&&r   c                     	  || |           | j                             |          }|j        }|j        }||_        ||_        d |_        d |_        d S r   )r:   popr/   r0   )r   r)   dict_delitemrG   	link_prev	link_nexts         r   __delitem__zOrderedDict.__delitem__z   sZ    * 	T3z~~c""I	I	"	"					r   c              #   \   K   	 | j         }|j        }||ur|j        V  |j        }||ud S d S r   )r9   r0   r)   r   r>   currs      r   __iter__zOrderedDict.__iter__   sM      %{y$(NNN9D $r   c              #   \   K   	 | j         }|j        }||ur|j        V  |j        }||ud S d S r   )r9   r/   r)   rQ   s      r   r   zOrderedDict.__reversed__   sM      -{y$(NNN9D $r   c                     	 | j         }|x|_        |_        | j                                         t
                              |            d S r   )r9   r/   r0   r:   clearr5   )r   r>   s     r   rV   zOrderedDict.clear   sF    8{ $$	DI


4r   Tc                    	 | st          d          | j        }|r|j        }|j        }||_        ||_        n|j        }|j        }||_        ||_        |j        }| j        |= t                              | |          }||fS )Nzdictionary is empty)KeyErrorr9   r/   r0   r)   r:   r5   rK   )r   rH   r>   rG   rM   rN   r)   rD   s           r   popitemzOrderedDict.popitem   s    	  	20111{ 		"9D	I!IN!DII9D	I!DI!INhJsOs##Ezr   c                 
   	 | j         |         }|j        }|j        }|j        }||_        ||_        | j        }|r%|j        }||_        ||_        ||_        ||_        d S |j        }||_        ||_        ||_        ||_        d S r   )r:   r/   r0   r9   )	r   r)   rH   rG   rM   rN   	soft_linkr>   firsts	            r   move_to_endzOrderedDict.move_to_end   s    	 z#I	I	N	"	"	{ 	9DDIDI!DIDIIIIEDIDI"EJDIIIr   c                     t           j        }t          |           dz   } || j                  }| || j                  dz  z  }| || j                  |z  z  }| || j                  |z  z  }|S )N      )_sys	getsizeoflen__dict__r:   r7   r9   )r   sizeofnsizes       r   
__sizeof__zOrderedDict.__sizeof__   s    IIMvdm$$tz""Q&&t''!++t{##a''r   c                 "    	 t          |           S r   )r   r   s    r   keyszOrderedDict.keys   s    D#D)))r   c                 "    	 t          |           S r   )r&   r   s    r   itemszOrderedDict.items   s    F$T***r   c                 "    	 t          |           S r   )r+   r   s    r   valueszOrderedDict.values   s    @%d+++r   c                    	 | j         }t                              | ||          }||urF| j                            |          }|j        }|j        }||_        ||_        d |_        d |_        |S ||u rt          |          |S r   )_OrderedDict__markerr5   rK   r:   r/   r0   rX   )r   r)   defaultmarkerresultrG   rM   rN   s           r   rK   zOrderedDict.pop   s    	
 $V,,:>>#&&D	I	I&IN&INDIDIMf3--r   Nc                 *    	 || v r| |         S || |<   |S r   r$   r   r)   rq   s      r   
setdefaultzOrderedDict.setdefault  s*    	 $;;9S	r   c                     	 | s| j         j        dS | j         j        dt          |                                           dS Nz()())	__class__r!   listrl   r   s    r   __repr__zOrderedDict.__repr__  sM    % 	7!^44466>222D4F4F4F4FGGr   c                    	 |                                  }|rt          |t                    r|\  }}ni }|                                }|                                }t	          t                                D ].}|                    |d            |                    |d            /|r||f}n|pd }| j        d|d t          | 	                                          fS )Nr$   )
__getstate__
isinstancetuplecopyvarsr   rK   r{   iterrl   )r   stateslotsks       r   
__reduce__zOrderedDict.__reduce__  s    /!!## 	&%'' $uuJJLLEJJLLE+--(( # #		!T"""		!T"""" &u~r5$TZZ\\0B0BBBr   c                 .    	 |                      |           S r   r{   r   s    r   r   zOrderedDict.copy%  s    +~~d###r   c                 0    	  |             }|D ]}|||<   |S r   r$   )r;   iterablerD   r   r)   s        r   fromkeyszOrderedDict.fromkeys)  s1    	suu 	 	CDIIr   c                     	 t          |t                    r>t                              | |          o"t	          t          t          | |                    S t                              | |          S r   )r   r   r5   __eq__allmap_eqr   rA   s     r   r   zOrderedDict.__eq__2  s]    	 e[)) 	K;;tU++JCT54I4I0J0JJ{{4'''r   c                 0    |                      |           | S r   )updater   s     r   __ior__zOrderedDict.__ior__;  s    Er   c                     t          |t                    st          S |                     |           }|                    |           |S r   r   r5   NotImplementedr{   r   r   rA   news      r   __or__zOrderedDict.__or__?  sB    %&& 	"!!nnT""

5
r   c                     t          |t                    st          S |                     |          }|                    |            |S r   r   r   s      r   __ror__zOrderedDict.__ror__F  sB    %&& 	"!!nnU##

4
r   )r$   )Tr   )&r!   r"   r#   r6   rB   r5   rI   r8   r.   rO   rS   r   rV   rY   r]   rh   _collections_abcMutableMappingr   r@   rj   rl   rn   __ne__objectrp   rK   rv   _recursive_reprr}   r   r   classmethodr   r   r   r   r   r$   r   r   r   r   N   s        /  % % % % "&!1e' ' ' ' -1,<             .   2   )7>>FX* * *+ + +, , , ,3FvxxH'    ,    _H H HC C C&$ $ $    [( ( (        r   r   )r   )_tuplegetterc                 >    t          t          |           |          S )N)doc)property_itemgetter)indexr   s     r   <lambda>r   \  s    h{5/A/As&K&K&K r   F)renamedefaultsmodulec                	   	 t          t                    r(                    dd                                          t	          t          t                              t          j        t          |                     } |r|t                      }t                    D ]^\  }}|
                                r(t          |          s|                    d          s||v rd| |<   |                    |           _| gz   D ]n}t          |          t          urt          d          |
                                st!          d|          t          |          rt!          d|          ot                      }D ]V}|                    d          r|st!          d|          ||v rt!          d|          |                    |           Wi }|t#          |          }t%          |          t%                    k    rt          d	          t'          t)          t	          t+          t)                    t)          |                                                  }t#          t          t          j                            t%                    d
                              }	dk    r|	dz  }	dd
                    d D                       z   dz   t"          j        t&          t"          t$          t
          t*          f\  i d|  d}
d|	 d|	 d}t1          ||
          }d|_        d|  d|	 d|_        |||_        t8          fd            }d|  d|j        _        fd}d|  d|_        fd}fd}fd}||j        ||||fD ]}|  d|j         |_        |  d|	 dd |||||||d!}t                    D ]/\  }}t          j        d"|           }t?          ||          ||<   0t          | t"          f|          }|F	 t          j         d          j!        "                    d#d$          }n# tF          t           f$ r Y nw xY w|||_$        |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, r_   ry   c              3       K   | ]	}| d V  
dS )z=%rNr$   ).0names     r   	<genexpr>znamedtuple.<locals>.<genexpr>  s(      DD$|||DDDDDDr   rz   namedtuple_)
_tuple_new__builtins__r!   zlambda _cls, z: _tuple_new(_cls, (z))r6   zCreate new instance of c                      | |          } |          k    r"t          d dt          |                     |S )Nz	Expected z arguments, got )	TypeErrorrc   )r;   r   rs   _len
num_fields	tuple_news      r   _makeznamedtuple.<locals>._make  sQ    3))4<<:%%Q
QQCKKQQRRRr   zMake a new z# object from a sequence or iterablec                    |                       |j        |                     }|rt          dt          |                    |S )NzGot unexpected field names: )r   rK   
ValueErrorr|   )r   r=   rs   _mapfield_namess      r   _replaceznamedtuple.<locals>._replace  sO    DD;==>> 	LJDJJJJKKKr   zReturn a new z2 object replacing specified fields with new valuesc                 *    	 | j         j        | z  z   S r   )r{   r!   )r   repr_fmts    r   r}   znamedtuple.<locals>.__repr__  s    9~&D88r   c                 :    	   | j         |                     S r   )_fields)r   _dict_zips    r   _asdictznamedtuple.<locals>._asdict  s$    CuTT$,--...r   c                     	  |           S r   r$   )r   _tuples    r   __getnewargs__z"namedtuple.<locals>.__getnewargs__  s    Avd||r   .r$   )__doc__r2   r   _field_defaultsr6   r   r   r}   r   r   __match_args__zAlias for field number r!   __main__)%r   strreplacesplitr|   r   ra   internset	enumerateisidentifier
_iskeyword
startswithaddtyper   r   r   rc   r5   r   zipjoinr6   evalr!   r   __defaults__r   __func__r#   r   	_getframe	f_globalsgetAttributeErrorr"   )typenamer   r   r   r   seenr   r   field_defaultsarg_list	namespacecoder6   r   r   r}   r   r   methodclass_namespacer   rs   r   r   r   r   r   r   r   r   s    `                    @@@@@@@@r   r
   r
   ^  s   2 +s## <!))#s3399;;s3,,--K{3x==))H uu$[11 	 	KE4%%'' 1d##1??3''1 4<<%0[[E"HHTNNNN
[( 3 3::S  HIII  "" 	7 6-16 6 7 7 7d 	3 2)-2 2 3 3 3	3 55D  ??3 	* 	* ) $) ) * * *4<<J$JJKKKN??x==3{++++FGGGhtC0E0E080B0B-D -D (E (E F F G G DK5566K[!!Jyy%%HQCTYYDDDDDDDDsJHI&*E3S&@#E64t
  ,(,, I
 F8EEEEED4##G GFFF8FFFGO'      [,H , , ,EN     1 1 1 1H9 9 9 9 9/ / / / / /     	 > > "*==FO==
 ,,,,,)(% O !-- 9 9tk;E;;<< ,UC 8 8(UHo66F ~	^A&&044ZLLFF
+ 	 	 	D	"Ms   8-Q& &Q:9Q:c                 D    	 | j         }|D ]} ||d          dz   | |<   d S Nr   r_   )r   )mappingr   mapping_getelems       r   _count_elementsr     sA    '+K 1 1#D!,,q01 1r   )r   c                        e Zd Z	 d fd	Zd Zd ZddZd Zedd            Z	d fd	Z
dd	Zd
 Zd Z fdZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z  xZ!S ) r   Nc                f    	 t                                                        | j        |fi | d S r   )superrB   r   )r   r   r=   r{   s      r   rB   zCounter.__init__K  s@    		 	H%%%%%%%r   c                     	 dS Nr   r$   r(   s     r   __missing__zCounter.__missing__Y  s
    ;qr   c                 F    	 t          |                                           S r   )sumrn   r   s    r   totalzCounter.total^  s    4;;==!!!r   c                     	 |1t          |                                 t          d          d          S dd l}|                    ||                                 t          d                    S )Nr_   T)r)   reverser   )r)   )sortedrl   r   heapqnlargest)r   rf   r  s      r   most_commonzCounter.most_commonb  sb    	 9$**,,KNNDIIII 	~~a;q>>~BBBr   c                 v    	 t          j        t          t          |                                                     S r   )_chainfrom_iterable_starmap_repeatrl   r   s    r   elementszCounter.elementsr  s,    	" #HWdjjll$C$CDDDr   c                      t          d          )Nz@Counter.fromkeys() is undefined.  Use Counter(iterable) instead.)NotImplementedError)r;   r   vs      r   r   zCounter.fromkeys  s     "NP P 	Pr   c                D   	 |t          |t          j                  rX| r4| j        }|                                D ]\  }}| ||d          z   | |<   n2t                                          |           nt          | |           |r|                     |           d S d S r   )r   r   Mappingr   rl   r   r   r   )r   r   r=   self_getr   countr{   s         r   r   zCounter.update  s    	& ($4$<== 	0 -#xH'/~~'7'7 ? ?e%*XXdA->->%>T

? GGNN8,,,,h/// 	KK	 	r   c                   	 |e| j         }t          |t          j                  r-|                                D ]\  }} ||d          |z
  | |<   n|D ]} ||d          dz
  | |<   |r|                     |           d S d S r   )r   r   r   r  rl   subtract)r   r   r=   r  r   r  s         r   r  zCounter.subtract  s    	 xH($4$<== 7#+>>#3#3 ; ;KD%!)$!2!2U!:DJJ; % 7 7D!)$!2!2Q!6DJJ 	 MM$	  	 r   c                 .    	 |                      |           S r   r   r   s    r   r   zCounter.copy  s     ~~d###r   c                 0    | j         t          |           ffS r   )r{   r5   r   s    r   r   zCounter.__reduce__  s    ~T

},,r   c                 X    	 || v r#t                                          |           d S d S r   )r   rO   )r   r   r{   s     r   rO   zCounter.__delitem__  s4    Q4<<GG%%%%% <r   c                     | s| j         j         dS 	 t          |                                           }n# t          $ r t          |           }Y nw xY w| j         j         d|dS rx   )r{   r!   r5   r  r   )r   ds     r   r}   zCounter.__repr__  s     	2n-1111	T%%''((AA 	 	 	T

AAA	 .)22A2222s   !5 AAc                 |     	 t          t                    st          S t           fd fD                       S )Nc              3   F   K   | ]}|D ]}|         |         k    V  d S r   r$   r   cerA   r   s      r   r   z!Counter.__eq__.<locals>.<genexpr>  =      II1qII!47eAh&IIIIIIIr   r   r   r   r   r   s   ``r   r   zCounter.__eq__
  sI    G%)) 	"!!IIIIIuIIIIIIr   c                 J    	 t          |t                    st          S | |k     S r   r   r   r   r   s     r   r   zCounter.__ne__  s*    J%)) 	"!!5=  r   c                 |     	 t          t                    st          S t           fd fD                       S )Nc              3   F   K   | ]}|D ]}|         |         k    V  d S r   r$   r  s      r   r   z!Counter.__le__.<locals>.<genexpr>  r  r   r   r   s   ``r   __le__zCounter.__le__  sI    D%)) 	"!!IIIIIuIIIIIIr   c                 T    	 t          |t                    st          S | |k    o| |k    S r   r"  r   s     r   __lt__zCounter.__lt__  s0    K%)) 	"!!u}..r   c                 |     	 t          t                    st          S t           fd fD                       S )Nc              3   F   K   | ]}|D ]}|         |         k    V  d S r   r$   r  s      r   r   z!Counter.__ge__.<locals>.<genexpr>&  r  r   r   r   s   ``r   __ge__zCounter.__ge__"  sI    F%)) 	"!!IIIIIuIIIIIIr   c                 T    	 t          |t                    st          S | |k    o| |k    S r   r"  r   s     r   __gt__zCounter.__gt__(  s0    M%)) 	"!!u}..r   c                    	 t          |t                    st          S t                      }|                                 D ]\  }}|||         z   }|dk    r|||<   |                                D ]\  }}|| vr|dk    r|||<   |S r   r   r   r   rl   r   rA   rs   r   r  newcounts         r   __add__zCounter.__add__.  s    	 %)) 	"!!::<< 	( 	(KD%uT{*H!||'t ;;== 	% 	%KD%4EAII$tr   c                    	 t          |t                    st          S t                      }|                                 D ]\  }}|||         z
  }|dk    r|||<   |                                D ]\  }}|| vr|dk     rd|z
  ||<   |S r   r.  r/  s         r   __sub__zCounter.__sub__A  s    	 %)) 	"!!::<< 	( 	(KD%uT{*H!||'t ;;== 	) 	)KD%4EAII 5ytr   c                    	 t          |t                    st          S t                      }|                                 D ]"\  }}||         }||k     r|n|}|dk    r|||<   #|                                D ]\  }}|| vr|dk    r|||<   |S r   r.  r   rA   rs   r   r  other_countr0  s          r   r   zCounter.__or__T  s    	 %)) 	"!!::<< 	( 	(KD%+K&+k&9&9{{uH!||'t ;;== 	% 	%KD%4EAII$tr   c                     	 t          |t                    st          S t                      }|                                 D ]"\  }}||         }||k     r|n|}|dk    r|||<   #|S r   r.  r5  s          r   __and__zCounter.__and__h  sy    	 %)) 	"!!::<< 	( 	(KD%+K % 3 3uuH!||'tr   c                 n    	 t                      }|                                 D ]\  }}|dk    r|||<   |S r   r   rl   r   rs   r   r  s       r   __pos__zCounter.__pos__y  sA    O::<< 	% 	%KD%qyy$tr   c                 t    	 t                      }|                                 D ]\  }}|dk     rd|z
  ||<   |S r   r:  r;  s       r   __neg__zCounter.__neg__  sI    	 ::<< 	) 	)KD%qyy 5ytr   c                 T    	 d |                                  D             }|D ]}| |= | S )Nc                 $    g | ]\  }}|d k    |S )r   r$   )r   r   r  s      r   
<listcomp>z*Counter._keep_positive.<locals>.<listcomp>  s!    MMMe5199t999r   )rl   )r   nonpositiver   s      r   _keep_positivezCounter._keep_positive  s=    MMMtzz||MMM 	 	DT

r   c                     	 |                                 D ]\  }}| |xx         |z  cc<   |                                 S r   rl   rC  r   rA   r   r  s       r   __iadd__zCounter.__iadd__  N    	 !;;== 	  	 KD%JJJ%JJJJ""$$$r   c                     	 |                                 D ]\  }}| |xx         |z  cc<   |                                 S r   rE  rF  s       r   __isub__zCounter.__isub__  rH  r   c                     	 |                                 D ]\  }}| |         }||k    r|| |<   |                                 S r   rE  )r   rA   r   r6  r  s        r   r   zCounter.__ior__  sU    	 "' 	) 	)D+JEU""(T
""$$$r   c                     	 |                                  D ]\  }}||         }||k     r|| |<   |                                 S r   rE  )r   rA   r   r  r6  s        r   __iand__zCounter.__iand__  sT    	  ::<< 	) 	)KD%+KU""(T
""$$$r   r   )"r!   r"   r#   rB   r   r   r  r  r   r   r   r  r   r   rO   r}   r   r   r%  r'  r*  r,  r1  r3  r   r8  r<  r>  rC  rG  rJ  r   rM  __classcell__r   s   @r   r   r     s1       *d& & & & & &  
" " "C C C C E E E, 	P 	P 	P [	P           D       6$ $ $- - -& & & & &
	3 	3 	3ZJ J J! ! !J J J/ / /J J J/ / /  &  &  (  "  	 	 	  % % %% % %% % %% % % % % % %r   r   c                       e Zd Z	 d Zd Zd ZddZd Zd Zd Z	d	 Z
 e            d
             Zed             Zd ZeZddZed             Zd Zd Zd Zd Zd Zd Zd Zd ZdS )r   c                 6    	 t          |          pi g| _        d S r   )r|   maps)r   rQ  s     r   rB   zChainMap.__init__  s!    	 JJ&2$			r   c                      t          |          r   )rX   r(   s     r   r   zChainMap.__missing__  s    smmr   c                 t    | j         D ]}	 ||         c S # t          $ r Y w xY w|                     |          S r   )rQ  rX   r   )r   r)   r   s      r   __getitem__zChainMap.__getitem__  s\    y 	 	Gs|###   $$$s   
""Nc                     || v r| |         n|S r   r$   ru   s      r   r   zChainMap.get  s    4KKtCyyW4r   c                 R    t           t                      j        | j                   S r   )rc   r   unionrQ  r   s    r   __len__zChainMap.__len__  s    ;355;	*+++r   c                     i }t          | j                  D ]/}|                    t                              |                     0t          |          S r   )r   rQ  r   r5   r   r   )r   r  r   s      r   rS   zChainMap.__iter__  sL    	** 	- 	-GHHT]]7++,,,,Awwr   c                 D    t          fd| j        D                       S )Nc              3       K   | ]}|v V  	d S r   r$   )r   mr)   s     r   r   z(ChainMap.__contains__.<locals>.<genexpr>  s'      //3!8//////r   anyrQ  r(   s    `r   __contains__zChainMap.__contains__  s(    ////TY//////r   c                 *    t          | j                  S r   r]  r   s    r   __bool__zChainMap.__bool__      49~~r   c                 |    | j         j         dd                    t          t          | j                             dS )Nry   r   rz   )r{   r!   r   r   reprrQ  r   s    r   r}   zChainMap.__repr__  s6    .)NNDIIc$	6J6J,K,KNNNNr   c                 :    	  | t          j        |g|R            S r   )r5   r   )r;   r   r<   s      r   r   zChainMap.fromkeys  s'    Is4=1D111222r   c                 t    	  | j         | j        d                                         g| j        dd          R  S r   )r{   rQ  r   r   s    r   r   zChainMap.copy  s;    Rt~dil//11BDIabbMBBBBr   c                 b    	 ||}n|r|                     |            | j        |g| j        R  S r   )r   r{   rQ  )r   r\  kwargss      r   	new_childzChainMap.new_child  sK    	 9AA 	HHVt~a,$),,,,r   c                 2    	  | j         | j        dd           S )Nr_   )r{   rQ  r   s    r   parentszChainMap.parents  s    %t~ty}--r   c                 &    || j         d         |<   d S r   )rQ  )r   r)   rD   s      r   rI   zChainMap.__setitem__!  s    !	!Sr   c                 d    	 | j         d         |= d S # t          $ r t          d|          w xY wNr   z$Key not found in the first mapping: )rQ  rX   r(   s     r   rO   zChainMap.__delitem__$  sR    	K	!S!!! 	K 	K 	KI#IIJJJ	Ks    /c                 ~    	 	 | j         d                                         S # t          $ r t          d          w xY w)Nr   z#No keys found in the first mapping.)rQ  rY   rX   r   s    r   rY   zChainMap.popitem*  sQ    Z	B9Q<''))) 	B 	B 	B@AAA	Bs   " <c                 x    	 	  | j         d         j        |g|R  S # t          $ r t          d|          w xY wrn  )rQ  rK   rX   )r   r)   r<   s      r   rK   zChainMap.pop1  sb    a	K#49Q<#C/$//// 	K 	K 	KI#IIJJJ	Ks    9c                 F    	 | j         d                                          d S r   )rQ  rV   r   s    r   rV   zChainMap.clear8  s#    1	!r   c                 F    | j         d                             |           | S r   )rQ  r   r   s     r   r   zChainMap.__ior__<  s!    	!E"""r   c                     t          |t          j                  st          S |                                 }|j        d                             |           |S r   )r   r   r  r   r   rQ  r   )r   rA   r\  s      r   r   zChainMap.__or__@  sJ    %!1!9:: 	"!!IIKK	q	r   c                     t          |t          j                  st          S t	          |          }t          | j                  D ]}|                    |           |                     |          S r   )	r   r   r  r   r5   r   rQ  r   r{   )r   rA   r\  childs       r   r   zChainMap.__ror__G  se    %!1!9:: 	"!!KKdi(( 	 	EHHUOOOO~~a   r   r   )r!   r"   r#   rB   r   rT  r   rX  rS   r_  ra  r   r}   r   r   r   __copy__ri  r   rk  rI   rO   rY   rK   rV   r   r   r   r$   r   r   r   r     s       ' ' '  % % %5 5 5 5, , ,  0 0 0   _O O O 3 3 [3C C C H	- 	- 	- 	- . . X." " "K K KB B BK K K      ! ! ! ! !r   r   c                   v    e Zd ZddZd Zd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd Zedd            ZdS )r   Nc                t    i | _         ||                     |           |r|                     |           d S d S r   )datar   )r   r5   rh  s      r   rB   zUserDict.__init__W  sK    	KK 	 KK	  	 r   c                 *    t          | j                  S r   rc   ry  r   s    r   rX  zUserDict.__len__^  rb  r   c                     || j         v r| j         |         S t          | j        d          r| j                            | |          S t	          |          )Nr   )ry  hasattrr{   r   rX   r(   s     r   rT  zUserDict.__getitem__a  sS    $)9S>!4>=11 	9>--dC888smmr   c                     || j         |<   d S r   ry  )r   r)   items      r   rI   zUserDict.__setitem__h  s    	#r   c                     | j         |= d S r   r  r(   s     r   rO   zUserDict.__delitem__k  s    IcNNNr   c                 *    t          | j                  S r   )r   ry  r   s    r   rS   zUserDict.__iter__n      DIr   c                     || j         v S r   r  r(   s     r   r_  zUserDict.__contains__r  s    dir   c                 *    t          | j                  S r   rd  ry  r   s    r   r}   zUserDict.__repr__v  r  r   c                     t          |t                    r"|                     | j        |j        z            S t          |t                    r|                     | j        |z            S t
          S r   r   r   r{   ry  r5   r   r   s     r   r   zUserDict.__or__y  s`    eX&& 	:>>$)ej"8999eT"" 	5>>$)e"3444r   c                     t          |t                    r"|                     |j        | j        z            S t          |t                    r|                     || j        z            S t
          S r   r  r   s     r   r   zUserDict.__ror__  s`    eX&& 	:>>%*ty"8999eT"" 	5>>%$)"3444r   c                 |    t          |t                    r| xj        |j        z  c_        n| xj        |z  c_        | S r   )r   r   ry  r   s     r   r   zUserDict.__ior__  s=    eX&& 	II#IIIIIIIr   c                     | j                             | j                   }|j                            | j                   | j        d                                         |j        d<   |S Nry  )r{   r6   rd   r   r   r   insts     r   rv  zUserDict.__copy__  sU    ~%%dn55T]+++ $f 5 : : < <fr   c                    | j         t          u r&t          | j                                                  S dd l}| j        }	 i | _        |                    |           }|| _        n# || _        w xY w|                    |            |S r   )r{   r   ry  r   r   )r   r   ry  r  s       r   r   zUserDict.copy  s    >X%%DINN,,---y	DI		$ADIIDI	s   A% %	A.c                 .     |             }|D ]}|||<   |S r   r$   )r;   r   rD   r  r)   s        r   r   zUserDict.fromkeys  s,    CEE 	 	CAcFFr   r   )r!   r"   r#   rB   rX  rT  rI   rO   rS   r_  r}   r   r   r   rv  r   r   r   r$   r   r   r   r   T  s                                              [  r   r   c                       e Zd Z	 d!dZd Zd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd Zd Zd Zd Zd ZeZd Zd Zd Zd Zd"dZd Zd Zd Zd Zd Zd Zd Z d  Z!dS )#r   Nc                 
   g | _         |yt          |          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   )ry  r   r   r   r|   )r   initlists     r   rB   zUserList.__init__  s    	H~~di00'	!!!Hh// +'}QQQ/	!!! NN			  r   c                 *    t          | j                  S r   r  r   s    r   r}   zUserList.__repr__  r  r   c                 >    | j         |                     |          k     S r   ry  _UserList__castr   s     r   r'  zUserList.__lt__      y4;;u----r   c                 >    | j         |                     |          k    S r   r  r   s     r   r%  zUserList.__le__      yDKK....r   c                 >    | j         |                     |          k    S r   r  r   s     r   r   zUserList.__eq__  r  r   c                 >    | j         |                     |          k    S r   r  r   s     r   r,  zUserList.__gt__  r  r   c                 >    | j         |                     |          k    S r   r  r   s     r   r*  zUserList.__ge__  r  r   c                 >    t          |t                    r|j        n|S r   )r   r   ry  r   s     r   __castzUserList.__cast  s    'x88CuzzeCr   c                     || j         v S r   r  r   r  s     r   r_  zUserList.__contains__  s    ty  r   c                 *    t          | j                  S r   r{  r   s    r   rX  zUserList.__len__  rb  r   c                     t          |t                    r |                     | j        |                   S | j        |         S r   )r   slicer{   ry  r   is     r   rT  zUserList.__getitem__  s8    a 	 >>$)A,///9Q<r   c                     || j         |<   d S r   r  r   r  r  s      r   rI   zUserList.__setitem__  s    	!r   c                     | j         |= d S r   r  r  s     r   rO   zUserList.__delitem__  s    IaLLLr   c                 B   t          |t                    r"|                     | j        |j        z             S t          |t	          | j                            r|                     | j        |z             S |                     | j        t          |          z             S r   r   r   r{   ry  r   r|   r   s     r   r1  zUserList.__add__  s    eX&& 	5>>$)ej"8999tDI// 	5>>$)e"3444~~di$u++5666r   c                 B   t          |t                    r"|                     |j        | j        z             S t          |t	          | j                            r|                     || j        z             S |                     t          |          | j        z             S r   r  r   s     r   __radd__zUserList.__radd__  s    eX&& 	5>>%*ty"8999tDI// 	5>>%$)"3444~~d5kkDI5666r   c                     t          |t                    r| xj        |j        z  c_        nPt          |t          | j                            r| xj        |z  c_        n| xj        t	          |          z  c_        | S r   )r   r   ry  r   r|   r   s     r   rG  zUserList.__iadd__  so    eX&& 	%II#IIItDI// 	%IIIIIIIe$IIr   c                 <    |                      | j        |z            S r   r{   ry  r   rf   s     r   __mul__zUserList.__mul__      ~~di!m,,,r   c                 &    | xj         |z  c_         | S r   r  r  s     r   __imul__zUserList.__imul__  s    		Q		r   c                     | j                             | j                   }|j                            | j                   | j        d         d d          |j        d<   |S r  )r{   r6   rd   r   r  s     r   rv  zUserList.__copy__  sR    ~%%dn55T]+++ $f 5aaa 8fr   c                 :    | j                             |           d S r   )ry  appendr  s     r   r  zUserList.append
      	r   c                 <    | j                             ||           d S r   )ry  insertr  s      r   r  zUserList.insert  s     	D!!!!!r   c                 6    | j                             |          S r   )ry  rK   r  s     r   rK   zUserList.pop  s    y}}Qr   c                 :    | j                             |           d S r   )ry  remover  s     r   r  zUserList.remove  r  r   c                 8    | j                                          d S r   )ry  rV   r   s    r   rV   zUserList.clear  s    	r   c                 ,    |                      |           S r   r   r   s    r   r   zUserList.copy  s    ~~d###r   c                 6    | j                             |          S r   )ry  r  r  s     r   r  zUserList.count  s    yt$$$r   c                 (     | j         j        |g|R  S r   ry  r   )r   r  r<   s      r   r   zUserList.index  s    tyt+d++++r   c                 8    | j                                          d S r   )ry  r  r   s    r   r  zUserList.reverse"  s    	r   c                *     | j         j        |i | d S r   )ry  sortr   r<   r=   s      r   r  zUserList.sort%  s!    	%%%%%%r   c                     t          |t                    r!| j                            |j                   d S | j                            |           d S r   )r   r   ry  extendr   s     r   r  zUserList.extend(  sN    eX&& 	$IUZ(((((IU#####r   r   r  )"r!   r"   r#   rB   r}   r'  r%  r   r,  r*  r  r_  rX  rT  rI   rO   r1  r  rG  r  __rmul__r  rv  r  r  rK   r  rV   r   r  r   r  r  r  r$   r   r   r   r     s       K	+ 	+ 	+ 	+  . . ./ / // / /. . ./ / /D D D! ! !           7 7 77 7 7  - - - H      " " "           $ $ $% % %, , ,  & & &$ $ $ $ $r   r   c                   4   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd ZeZd Zd Zd Zd Zd Zdej        fdZd Zd Z dKdZ!dej        fd Z"dLd"Z#dej        fd#Z$d$ Z%d% Z&dej        fd&Z'd' Z(d( Z)d) Z*d* Z+d+ Z,d, Z-d- Z.d. Z/d/ Z0d0 Z1d1 Z2d2 Z3d3 Z4d4 Z5d5 Z6dMd7Z7e8j9        Z9d8 Z:dNd:Z;dej        fd;Z<dej        fd<Z=d= Z>d> Z?dMd?Z@dOd@ZAdOdAZBdPdCZCdej        fdDZDdMdEZEdF ZFdG ZGdH ZHdI ZIdJ ZJd6S )Qr   c                     t          |t                    r	|| _        d S t          |t                    r|j        d d          | _        d S t          |          | _        d S r   )r   r   ry  r   r   seqs     r   rB   zUserString.__init__5  sW    c3 	!DIIIZ(( 	!DIIICDIIIr   c                 *    t          | j                  S r   )r   ry  r   s    r   __str__zUserString.__str__=  rb  r   c                 *    t          | j                  S r   r  r   s    r   r}   zUserString.__repr__@  r  r   c                 *    t          | j                  S r   )intry  r   s    r   __int__zUserString.__int__C  rb  r   c                 *    t          | j                  S r   )floatry  r   s    r   	__float__zUserString.__float__F  s    TYr   c                 *    t          | j                  S r   )complexry  r   s    r   __complex__zUserString.__complex__I  s    ty!!!r   c                 *    t          | j                  S r   )hashry  r   s    r   __hash__zUserString.__hash__L  r  r   c                 "    | j         d d          fS r   r  r   s    r   r   zUserString.__getnewargs__O  s    	!!!r   c                 b    t          |t                    r| j        |j        k    S | j        |k    S r   r   r   ry  r   strings     r   r   zUserString.__eq__R  0    fj)) 	,9++yF""r   c                 b    t          |t                    r| j        |j        k     S | j        |k     S r   r  r  s     r   r'  zUserString.__lt__W  0    fj)) 	+9v{**y6!!r   c                 b    t          |t                    r| j        |j        k    S | j        |k    S r   r  r  s     r   r%  zUserString.__le__\  r  r   c                 b    t          |t                    r| j        |j        k    S | j        |k    S r   r  r  s     r   r,  zUserString.__gt__a  r  r   c                 b    t          |t                    r| j        |j        k    S | j        |k    S r   r  r  s     r   r*  zUserString.__ge__f  r  r   c                 L    t          |t                    r|j        }|| j        v S r   r  )r   chars     r   r_  zUserString.__contains__k  s(    dJ'' 	9Dty  r   c                 *    t          | j                  S r   r{  r   s    r   rX  zUserString.__len__p  rb  r   c                 B    |                      | j        |                   S r   r  )r   r   s     r   rT  zUserString.__getitem__s  s    ~~di.///r   c                 (   t          |t                    r"|                     | j        |j        z             S t          |t                    r|                     | j        |z             S |                     | j        t	          |          z             S r   )r   r   r{   ry  r   r   s     r   r1  zUserString.__add__v  sy    eZ(( 	5>>$)ej"8999s## 	5>>$)e"3444~~di#e**4555r   c                     t          |t                    r|                     || j        z             S |                     t          |          | j        z             S r   )r   r   r{   ry  r   s     r   r  zUserString.__radd__}  sL    eS!! 	5>>%$)"3444~~c%jj494555r   c                 <    |                      | j        |z            S r   r  r  s     r   r  zUserString.__mul__  r  r   c                 <    |                      | j        |z            S r   r  r   r<   s     r   __mod__zUserString.__mod__  s    ~~di$.///r   c                 L    |                      t          |          | z            S r   )r{   r   )r   templates     r   __rmod__zUserString.__rmod__  s    ~~c(mmd2333r   c                 Z    |                      | j                                                  S r   )r{   ry  
capitalizer   s    r   r  zUserString.capitalize  s"    ~~di2244555r   c                 Z    |                      | j                                                  S r   )r{   ry  casefoldr   s    r   r  zUserString.casefold  "    ~~di0022333r   c                 N    |                       | j        j        |g|R            S r   )r{   ry  centerr   widthr<   s      r   r  zUserString.center  s,    ~~.di.u<t<<<===r   r   c                 r    t          |t                    r|j        }| j                            |||          S r   )r   r   ry  r  r   substartends       r   r  zUserString.count  3    c:&& 	(CysE3///r   c                    t          |t                    r|j        }|                     | j                            |                    S r   )r   r   ry  r{   removeprefix)r   prefixs     r   r  zUserString.removeprefix  =    fj)) 	![F~~di44V<<===r   c                    t          |t                    r|j        }|                     | j                            |                    S r   )r   r   ry  r{   removesuffix)r   suffixs     r   r  zUserString.removesuffix  r
  r   utf-8strictc                 P    |dn|}|dn|}| j                             ||          S )Nr  r  )ry  encode)r   encodingerrorss      r   r  zUserString.encode  s5    &.77H#^y&111r   c                 :    | j                             |||          S r   )ry  endswith)r   r  r  r  s       r   r  zUserString.endswith  s    y!!&%555r      c                 \    |                      | j                            |                    S r   )r{   ry  
expandtabs)r   tabsizes     r   r  zUserString.expandtabs  s$    ~~di227;;<<<r   c                 r    t          |t                    r|j        }| j                            |||          S r   )r   r   ry  findr  s       r   r  zUserString.find  s3    c:&& 	(Cy~~c5#...r   c                &     | j         j        |i |S r   )ry  formatr  s      r   r  zUserString.format  s    ty....r   c                 6    | j                             |          S r   )ry  
format_map)r   r   s     r   r  zUserString.format_map  s    y##G,,,r   c                 :    | j                             |||          S r   r  r  s       r   r   zUserString.index  s    ysE3///r   c                 4    | j                                         S r   )ry  isalphar   s    r   r"  zUserString.isalpha      y  """r   c                 4    | j                                         S r   )ry  isalnumr   s    r   r%  zUserString.isalnum  r#  r   c                 4    | j                                         S r   )ry  isasciir   s    r   r'  zUserString.isascii  r#  r   c                 4    | j                                         S r   )ry  	isdecimalr   s    r   r)  zUserString.isdecimal      y""$$$r   c                 4    | j                                         S r   )ry  isdigitr   s    r   r,  zUserString.isdigit  r#  r   c                 4    | j                                         S r   )ry  r   r   s    r   r   zUserString.isidentifier  s    y%%'''r   c                 4    | j                                         S r   )ry  islowerr   s    r   r/  zUserString.islower  r#  r   c                 4    | j                                         S r   )ry  	isnumericr   s    r   r1  zUserString.isnumeric  r*  r   c                 4    | j                                         S r   )ry  isprintabler   s    r   r3  zUserString.isprintable  s    y$$&&&r   c                 4    | j                                         S r   )ry  isspacer   s    r   r5  zUserString.isspace  r#  r   c                 4    | j                                         S r   )ry  istitler   s    r   r7  zUserString.istitle  r#  r   c                 4    | j                                         S r   )ry  isupperr   s    r   r9  zUserString.isupper  r#  r   c                 6    | j                             |          S r   )ry  r   r  s     r   r   zUserString.join  s    y~~c"""r   c                 N    |                       | j        j        |g|R            S r   )r{   ry  ljustr  s      r   r<  zUserString.ljust  *    ~~odioe;d;;;<<<r   c                 Z    |                      | j                                                  S r   )r{   ry  lowerr   s    r   r?  zUserString.lower       ~~dioo//000r   Nc                 \    |                      | j                            |                    S r   )r{   ry  lstripr   charss     r   rB  zUserString.lstrip  $    ~~di..u55666r   c                 6    | j                             |          S r   )ry  	partitionr   seps     r   rG  zUserString.partition  s    y""3'''r   r  c                     t          |t                    r|j        }t          |t                    r|j        }|                     | j                            |||                    S r   )r   r   ry  r{   r   )r   oldr   maxsplits       r   r   zUserString.replace  sZ    c:&& 	(Cc:&& 	(C~~di//S(CCDDDr   c                 r    t          |t                    r|j        }| j                            |||          S r   )r   r   ry  rfindr  s       r   rN  zUserString.rfind  r  r   c                 :    | j                             |||          S r   )ry  rindexr  s       r   rP  zUserString.rindex   s    yUC000r   c                 N    |                       | j        j        |g|R            S r   )r{   ry  rjustr  s      r   rR  zUserString.rjust  r=  r   c                 6    | j                             |          S r   )ry  
rpartitionrH  s     r   rT  zUserString.rpartition  s    y##C(((r   c                 \    |                      | j                            |                    S r   )r{   ry  rstriprC  s     r   rV  zUserString.rstrip	  rE  r   c                 8    | j                             ||          S r   )ry  r   r   rI  rL  s      r   r   zUserString.split  s    ysH---r   c                 8    | j                             ||          S r   )ry  rsplitrX  s      r   rZ  zUserString.rsplit  s    yX...r   Fc                 6    | j                             |          S r   )ry  
splitlines)r   keependss     r   r\  zUserString.splitlines  s    y##H---r   c                 :    | j                             |||          S r   )ry  r   )r   r	  r  r  s       r   r   zUserString.startswith  s    y##FE3777r   c                 \    |                      | j                            |                    S r   )r{   ry  striprC  s     r   r`  zUserString.strip  "    ~~diooe44555r   c                 Z    |                      | j                                                  S r   )r{   ry  swapcaser   s    r   rc  zUserString.swapcase  r  r   c                 Z    |                      | j                                                  S r   )r{   ry  titler   s    r   re  zUserString.title  r@  r   c                 F    |                       | j        j        |           S r   )r{   ry  	translater  s     r   rg  zUserString.translate!  s!    ~~1di148999r   c                 Z    |                      | j                                                  S r   )r{   ry  upperr   s    r   ri  zUserString.upper$  r@  r   c                 \    |                      | j                            |                    S r   )r{   ry  zfill)r   r   s     r   rk  zUserString.zfill'  ra  r   )r  r  )r  r   r  )Nr  )F)Kr!   r"   r#   rB   r  r}   r  r  r  r  r   r   r'  r%  r,  r*  r_  rX  rT  r1  r  r  r  r  r  r  r  r  ra   maxsizer  r  r  r  r  r  r  r  r  r   r"  r%  r'  r)  r,  r   r/  r1  r3  r5  r7  r9  r   r<  r?  rB  r   	maketransrG  r   rN  rP  rR  rT  rV  r   rZ  r\  r   r`  rc  re  rg  ri  rk  r$   r   r   r   r   3  s       ! ! !           " " "    # # #
" " "
# # #
" " "
# # #
! ! !
  0 0 06 6 66 6 6
- - - H0 0 04 4 46 6 64 4 4> > >  !dl 0 0 0 0
> > >
> > >
2 2 2 2
 &'DL 6 6 6 6= = = =  T\ / / / /
/ / /- - -  !dl 0 0 0 0# # ## # ## # #% % %# # #( ( (# # #% % %' ' '# # ## # ## # ## # #= = =1 1 17 7 7 7 I( ( (E E E E  !dl 0 0 0 0
 !"t| 1 1 1 1= = =) ) )7 7 7 7. . . ./ / / /. . . . ()dl 8 8 8 86 6 6 64 4 41 1 1: : :1 1 16 6 6 6 6r   r   )3__all__r   sysra   	itertoolsr   r  r   r
  r   r	  keywordr   r   operatorr   r   r   r   reprlibr   r   _weakrefr   r8   _collectionsr	   MutableSequenceregisterImportErrorr   KeysViewr   	ItemsViewr&   
ValuesViewr+   r   r.   r5   r   r   r
   r   r   r   r   r   r   Sequencer   r$   r   r   <module>r}     sF   
 
 
         % % % % % % ' ' ' ' ' ' ) ) ) ) ) ) + + + + + +       . . . . . . 5 5 5 5 5 5 $ $ $ $ $ $5"""""" $--e4444  	 	 	D	
	((((((( 	 	 	D	+ + + + ++4 + + +
, , , , ,,6 , , ,% % % % %-8 % % %5 5 5 5 5F 5 5 5} } } } }$ } } }@	((((((( 	 	 	D	L))))))) L L LKKLLLL 16T h h h h h^1 1 1	,,,,,,, 	 	 	D	q% q% q% q% q%d q% q% q%p}! }! }! }! }!. }! }! }!HS S S S S. S S St~$ ~$ ~$ ~$ ~$/ ~$ ~$ ~$Ju6 u6 u6 u6 u6!* u6 u6 u6 u6 u6sY   A   A('A(,A3 3A;:A;C C#"C#'C. .C98C9D DD