
    F\h~                     \
   S r SSKJrJr  SSKr\" \\   5      r\" S5      r	S r
\" \
5      rC
/ SQrSr\" \" S5      5      r\" \" \" 5       5      5      r\" \" 0 R%                  5       5      5      r\" \" 0 R)                  5       5      5      r\" \" 0 R-                  5       5      5      r\" \" / 5      5      r\" \" \" / 5      5      5      r\" \" \" S5      5      5      r\" \" \" S	S
-  5      5      5      r\" \" \" 5       5      5      r\" \" S5      5      r \" \" S5      5      r!\" \" \"" 5       5      5      r#\" 0 R%                  5       5      r$\" 0 R)                  5       5      r%\" 0 R-                  5       5      r&\" \RN                  5      r(S r)\)" 5       r*C)\" S " 5       5      r+S r,\," 5       r,\" \,5      r-\,R]                  5         C,S r/\/" 5       r/\" \/5      r0C/S r1 " S S\S9r2 " S S\S9r3 " S S\35      r4\4Rk                  \-5         " S S\S9r6 " S S\65      r7 " S S\75      r8\8Rk                  \05         " S S \S9r9 " S! S"\95      r:\:Rk                  \5        \:Rk                  \5        \:Rk                  \5        \:Rk                  \5        \:Rk                  \5        \:Rk                  \5        \:Rk                  \5        \:Rk                  \5        \:Rk                  \5        \:Rk                  \5        \:Rk                  \ 5        \:Rk                  \!5        \:Rk                  \#5         " S# S$\95      r; " S% S&\:5      r<\<Rk                  \+5         " S' S(\S9r= " S) S*\S9r> " S+ S,\=\9\>5      r? " S- S.\S9r@ " S/ S0\5      rAS1 rBS2 rC " S3 S4\S9rD " S5 S6\?5      rE\ERk                  \F5         " S7 S8\E5      rG\GRk                  \5         " S9 S:\?5      rH\HRk                  \(5        \HRk                  \*5         " S; S<\=5      rI " S= S>\I\E5      rJ\JRk                  \$5         " S? S@\I\E5      rK\KRk                  \&5         " SA SB\I\?5      rL\LRk                  \%5         " SC SD\H5      rM\MRk                  \N5         " SE SF\;\?5      rO\ORk                  \P5        \ORk                  \Q5        \ORk                  \5        \ORk                  \R5         " SG SH\5      rS " SI SJ\O\SS9rT\TRk                  \U5        \TRk                  \5         " SK SL\O5      rV\VRk                  \5        \VRk                  \5        g)MzjAbstract Base Classes (ABCs) for collections, according to PEP 3119.

Unit tests are in test_collections.
    )ABCMetaabstractmethodN.c                      g N r       '/usr/lib/python3.13/_collections_abc.py_fr
   (   s    $r   )	Awaitable	CoroutineAsyncIterableAsyncIteratorAsyncGeneratorHashableIterableIterator	Generator
ReversibleSized	ContainerCallable
CollectionSet
MutableSetMappingMutableMappingMappingViewKeysView	ItemsView
ValuesViewSequenceMutableSequence
ByteStringBufferzcollections.abcr      i   r   c                  R    [        [        R                  " 5       R                  5      $ r   )typesys	_getframef_localsr   r   r	   _get_framelocalsproxyr,   X   s    (())r   c               #      #    S v $ r   r   r   r   r	   <lambda>r.   \   s     5r   c                     #    g 7fr   r   r   r   r	   _coror0   ^   s     4   c                    #    S 7v   g 7fr   r   r   r   r	   _agr3   d   s        	c                     U R                   nU H>  nU H/  nX4R                  ;   d  M  UR                  U   c
  [        s  s  $   M6     [        s  $    g)NT)__mro____dict__NotImplemented)CmethodsmromethodBs        r	   _check_methodsr>   l   sN    
))CA#::f%-))	  "!  r   c                   8    \ rS rSrSr\S 5       r\S 5       rSr	g)r   x   r   c                     gNr   r   selfs    r	   __hash__Hashable.__hash__|       r   c                 8    U [         L a  [        US5      $ [        $ )NrE   )r   r>   r8   clsr9   s     r	   __subclasshook__Hashable.__subclasshook__       (?!!Z00r   N)
__name__
__module____qualname____firstlineno__	__slots__r   rE   classmethodrK   __static_attributes__r   r   r	   r   r   x   -    I   r   r   )	metaclassc                   H    \ rS rSrSr\S 5       r\S 5       r\" \	5      r
Srg)r      r   c              #      #    S v   g 7fr   r   rC   s    r	   	__await__Awaitable.__await__   s     s   c                 8    U [         L a  [        US5      $ [        $ )NrZ   )r   r>   r8   rI   s     r	   rK   Awaitable.__subclasshook__   s    )!![11r   N)rN   rO   rP   rQ   rR   r   rZ   rS   rK   GenericAlias__class_getitem__rT   r   r   r	   r   r      s:    I   
 $L1r   r   c                   R    \ rS rSrSr\S 5       r\SS j5       rS r\	S 5       r
Srg)	r      r   c                     [         e)zSSend a value into the coroutine.
Return next yielded value or raise StopIteration.
StopIterationrD   values     r	   sendCoroutine.send   
    
 r   Nc                 L    Uc  Uc  UeU" 5       nUb  UR                  U5      nUe)zWRaise an exception in the coroutine.
Return next yielded value or raise StopIteration.
with_tracebackrD   typvaltbs       r	   throwCoroutine.throw   4    
 ;z	%C>$$R(C	r   c                 p     U R                  [        5        [        S5      e! [        [        4 a     gf = f).Raise GeneratorExit inside coroutine.
        zcoroutine ignored GeneratorExitNrq   GeneratorExitRuntimeErrorrd   rC   s    r	   closeCoroutine.close   ;    	BJJ}% @AA }- 		   " 55c                 >    U [         L a  [        USSSS5      $ [        $ )NrZ   rg   rq   ry   )r   r>   r8   rI   s     r	   rK   Coroutine.__subclasshook__   s#    )!![&'7KKr   NN)rN   rO   rP   rQ   rR   r   rg   rq   ry   rS   rK   rT   r   r   r	   r   r      sG    I  
 
B  r   r   c                   H    \ rS rSrSr\S 5       r\S 5       r\" \	5      r
Srg)r      r   c                     [        5       $ r   )r   rC   s    r	   	__aiter__AsyncIterable.__aiter__   s
    r   c                 8    U [         L a  [        US5      $ [        $ )Nr   )r   r>   r8   rI   s     r	   rK   AsyncIterable.__subclasshook__   s    -!![11r   N)rN   rO   rP   rQ   rR   r   r   rS   rK   r^   r_   rT   r   r   r	   r   r      s:    I   
 $L1r   r   c                   >    \ rS rSrSr\S 5       rS r\S 5       r	Sr
g)r      r   c                    #    [         e7f)z@Return the next item or raise StopAsyncIteration when exhausted.StopAsyncIterationrC   s    r	   	__anext__AsyncIterator.__anext__   s      ! r4   c                     U $ r   r   rC   s    r	   r   AsyncIterator.__aiter__       r   c                 :    U [         L a  [        USS5      $ [        $ )Nr   r   )r   r>   r8   rI   s     r	   rK   AsyncIterator.__subclasshook__   s    -!![+>>r   N)rN   rO   rP   rQ   rR   r   r   r   rS   rK   rT   r   r   r	   r   r      s2    I! !  r   r   c                   X    \ rS rSrSrS r\S 5       r\S	S j5       rS r	\
S 5       rSrg)
r      r   c                 @   #    U R                  S5      I Sh  vN $  N7f)z`Return the next item from the asynchronous generator.
When exhausted, raise StopAsyncIteration.
N)asendrC   s    r	   r   AsyncGenerator.__anext__   s      ZZ%%%%s   c                    #    [         e7f)zeSend a value into the asynchronous generator.
Return next yielded value or raise StopAsyncIteration.
r   re   s     r	   r   AsyncGenerator.asend   s     
 ! r4   Nc                 T   #    Uc  Uc  UeU" 5       nUb  UR                  U5      nUe7f)ziRaise an exception in the asynchronous generator.
Return next yielded value or raise StopAsyncIteration.
rk   rm   s       r	   athrowAsyncGenerator.athrow   s7     
 ;z	%C>$$R(C	   &(c                    #     U R                  [        5      I Sh  vN   [        S5      e N! [        [        4 a     gf = f7f)ru   Nz,asynchronous generator ignored GeneratorExit)r   rw   rx   r   rC   s    r	   acloseAsyncGenerator.aclose  sG     	O++m,,, MNN	 -12 		s0   A. ,. A. AA AAc                 @    U [         L a  [        USSSSS5      $ [        $ )Nr   r   r   r   r   )r   r>   r8   rI   s     r	   rK   AsyncGenerator.__subclasshook__  s*    . !![+")8X? ?r   r   )rN   rO   rP   rQ   rR   r   r   r   r   r   rS   rK   rT   r   r   r	   r   r      sN    I& ! ! 
 
O  r   r   c                   H    \ rS rSrSr\S 5       r\S 5       r\" \	5      r
Srg)r   i  r   c              #      #    g 7fr   r   rC   s    r	   __iter__Iterable.__iter__       r1   c                 8    U [         L a  [        US5      $ [        $ )Nr   )r   r>   r8   rI   s     r	   rK   Iterable.__subclasshook__$  rM   r   N)rN   rO   rP   rQ   rR   r   r   rS   rK   r^   r_   rT   r   r   r	   r   r     s:    I   
 $L1r   r   c                   >    \ rS rSrSr\S 5       rS r\S 5       r	Sr
g)r   i-  r   c                     [         e)zKReturn the next item from the iterator. When exhausted, raise StopIterationrc   rC   s    r	   __next__Iterator.__next__1  s
     r   c                     U $ r   r   rC   s    r	   r   Iterator.__iter__6  r   r   c                 :    U [         L a  [        USS5      $ [        $ )Nr   r   )r   r>   r8   rI   s     r	   rK   Iterator.__subclasshook__9  s    (?!!Z<<r   N)rN   rO   rP   rQ   rR   r   r   r   rS   rK   rT   r   r   r	   r   r   -  s2    I   r   r   c                   8    \ rS rSrSr\S 5       r\S 5       rSr	g)r   iP  r   c              #      #    g 7fr   r   rC   s    r	   __reversed__Reversible.__reversed__T  r   r1   c                 :    U [         L a  [        USS5      $ [        $ )Nr   r   )r   r>   r8   rI   s     r	   rK   Reversible.__subclasshook__Y  s    *!!^Z@@r   N)
rN   rO   rP   rQ   rR   r   r   rS   rK   rT   r   r   r	   r   r   P  s-    I   r   r   c                   X    \ rS rSrSrS r\S 5       r\S	S j5       rS r	\
S 5       rSrg)
r   i`  r   c                 $    U R                  S5      $ )zNReturn the next item from the generator.
When exhausted, raise StopIteration.
N)rg   rC   s    r	   r   Generator.__next__d  s     yyr   c                     [         e)zSSend a value into the generator.
Return next yielded value or raise StopIteration.
rc   re   s     r	   rg   Generator.sendj  ri   r   Nc                 L    Uc  Uc  UeU" 5       nUb  UR                  U5      nUe)zWRaise an exception in the generator.
Return next yielded value or raise StopIteration.
rk   rm   s       r	   rq   Generator.throwq  rs   r   c                 p     U R                  [        5        [        S5      e! [        [        4 a     gf = f)z.Raise GeneratorExit inside generator.
        zgenerator ignored GeneratorExitNrv   rC   s    r	   ry   Generator.close~  r{   r|   c                 @    U [         L a  [        USSSSS5      $ [        $ )Nr   r   rg   rq   ry   )r   r>   r8   rI   s     r	   rK   Generator.__subclasshook__  s*    )!!Z"('7< <r   r   )rN   rO   rP   rQ   rR   r   r   rg   rq   ry   rS   rK   rT   r   r   r	   r   r   `  sN    I   
 
B  r   r   c                   8    \ rS rSrSr\S 5       r\S 5       rSr	g)r   i  r   c                     grB   r   rC   s    r	   __len__Sized.__len__  rG   r   c                 8    U [         L a  [        US5      $ [        $ )Nr   )r   r>   r8   rI   s     r	   rK   Sized.__subclasshook__  s    %<!!Y//r   N)
rN   rO   rP   rQ   rR   r   r   rS   rK   rT   r   r   r	   r   r     rU   r   r   c                   H    \ rS rSrSr\S 5       r\S 5       r\" \	5      r
Srg)r   i  r   c                     gNFr   )rD   xs     r	   __contains__Container.__contains__      r   c                 8    U [         L a  [        US5      $ [        $ )Nr   )r   r>   r8   rI   s     r	   rK   Container.__subclasshook__  s    )!!^44r   N)rN   rO   rP   rQ   rR   r   r   rS   rK   r^   r_   rT   r   r   r	   r   r     s:    I   
 $L1r   r   c                   (    \ rS rSrSr\S 5       rSrg)r   i  r   c                 <    U [         L a  [        USSS5      $ [        $ )Nr   r   r   )r   r>   r8   rI   s     r	   rK   Collection.__subclasshook__  s!    *!!i^LLr   N)rN   rO   rP   rQ   rR   rS   rK   rT   r   r   r	   r   r     s    I r   r   c                   D    \ rS rSrSr\S\S\4S j5       r\	S 5       r
Srg)r$   i  r   flagsreturnc                    [         er   NotImplementedError)rD   r   s     r	   
__buffer__Buffer.__buffer__  s    !!r   c                 8    U [         L a  [        US5      $ [        $ )Nr   )r$   r>   r8   rI   s     r	   rK   Buffer.__subclasshook__  s    &=!!\22r   N)rN   rO   rP   rQ   rR   r   int
memoryviewr   rS   rK   rT   r   r   r	   r$   r$     s;    I" ": " "  r   r$   c                   N   ^  \ rS rSrSrSrU 4S jrU 4S jrS rU 4S jr	Sr
U =r$ )_CallableGenericAliasi  zRepresent `Callable[argtypes, resulttype]`.

This sets ``__args__`` to a tuple containing the flattened ``argtypes``
followed by ``resulttype``.

Example: ``Callable[[int, str], float]`` sets ``__args__`` to
``(int, str, float)``.
r   c                   > [        U[        5      (       a  [        U5      S:X  d  [        S5      eUu  p4[        U[        [        45      (       a  / UQUP7nO[        U5      (       d  [        SU 35      e[        TU ]  XU5      $ )N   z6Callable must be used as Callable[[arg, ...], result].zFExpected a list of types, an ellipsis, ParamSpec, or Concatenate. Got )
isinstancetuplelen	TypeErrorlist_is_param_exprsuper__new__)rJ   originargst_argst_result	__class__s        r	   r   _CallableGenericAlias.__new__  s    4''CINHJ Jfudm,,&V&X&D'' >>DXG H HwsD11r   c           	      @  > [        U R                  5      S:X  a+  [        U R                  S   5      (       a  [        TU ]  5       $ SSR                  U R                  S S  Vs/ s H  n[        U5      PM     sn5       S[        U R                  S   5       S3$ s  snf )Nr   r   zcollections.abc.Callable[[z, z], ])r   __args__r   r   __repr__join
_type_repr)rD   ar   s     r	   r   _CallableGenericAlias.__repr__  s    t}}"~dmmA6F'G'G7#%%YYt}}Sb7IJ7I!
17IJKLCdmmB/014 	5Js   #B
c                     U R                   n[        U5      S:X  a  [        US   5      (       d  [        US S 5      US   4n[        [
        U44$ )Nr   r   r   )r   r   r   r   r   r   )rD   r   s     r	   
__reduce__ _CallableGenericAlias.__reduce__  sL    }}D	Q>$q'#:#:Sb	?DH,D$x&666r   c                    > [        U[        5      (       d  U4n[        TU ]  U5      R                  n[        US   [        [
        45      (       d  US   nUS S nXC4n[        [        [        U5      5      $ )Nr   r   )r   r   r   __getitem__r   r   r   r   )rD   itemnew_argsr   r   r   s        r	   r   !_CallableGenericAlias.__getitem__  sr    
 $&&7D7&t,55 (1+t}55|Hcr]F)H$XuX??r   )rN   rO   rP   rQ   __doc__rR   r   r   r   r   rT   __classcell__r   s   @r	   r   r     s*     I
257@ @r   r   c                    ^  T [         L a  g[        T [        5      (       a  g[        T 5      m SnT R                  S:H  =(       a    [        U 4S jU 5       5      $ )ztChecks if obj matches either a list of types, ``...``, ``ParamSpec`` or
``_ConcatenateGenericAlias`` from typing.py
T)	ParamSpec_ConcatenateGenericAliastypingc              3   B   >#    U  H  nTR                   U:H  v   M     g 7fr   )rN   ).0nameobjs     r	   	<genexpr>!_is_param_expr.<locals>.<genexpr>  s     -Uutclld.Bus   )Ellipsisr   r   r(   rO   any)r  namess   ` r	   r   r     sL     h#t
s)C5E>>X%U#-Uu-U*UUr   c                    [        U [        5      (       a7  U R                  S:X  a  U R                  $ U R                   SU R                   3$ U [        L a  g[        U [
        5      (       a  U R                  $ [        U 5      $ )zReturn the repr() of an object, special-casing types (internal helper).

Copied from :mod:`typing` since collections.abc
shouldn't depend on that module.
(Keep this roughly in sync with the typing version.)
builtins.z...)r   r(   rO   rP   r  FunctionTyperN   repr)r  s    r	   r   r     sq     #t>>Z'###..!3#3#3"455
h#|$$||9r   c                   H    \ rS rSrSr\S 5       r\S 5       r\" \	5      r
Srg)r   i!  r   c                     gr   r   )rD   r   kwdss      r	   __call__Callable.__call__%  r   r   c                 8    U [         L a  [        US5      $ [        $ )Nr  )r   r>   r8   rI   s     r	   rK   Callable.__subclasshook__)  rM   r   N)rN   rO   rP   rQ   rR   r   r  rS   rK   r   r_   rT   r   r   r	   r   r   !  s;    I   
 $$9:r   r   c                       \ rS rSrSrSrS rS rS rS r	S r
\S	 5       rS
 r\rS rS r\rS rS rS r\rS rSrg)r   i5  aB  A set is a finite, iterable container.

This class provides concrete generic implementations of all
methods except for __contains__, __iter__ and __len__.

To override the comparisons (presumably for speed, as the
semantics are fixed), redefine __le__ and __ge__,
then the other operations will automatically follow suit.
r   c                     [        U[        5      (       d  [        $ [        U 5      [        U5      :  a  gU  H
  nX!;  d  M
    g   gNFTr   r   r8   r   rD   otherelems      r	   __le__
Set.__le__B  s@    %%%!!t9s5z!D   r   c                     [        U[        5      (       d  [        $ [        U 5      [        U5      :  =(       a    U R	                  U5      $ r   r   r   r8   r   r'  rD   r%  s     r	   __lt__
Set.__lt__L  6    %%%!!4y3u:%<$++e*<<r   c                     [        U[        5      (       d  [        $ [        U 5      [        U5      :  =(       a    U R	                  U5      $ r   )r   r   r8   r   __ge__r+  s     r	   __gt__
Set.__gt__Q  r.  r   c                     [        U[        5      (       d  [        $ [        U 5      [        U5      :  a  gU H
  nX ;  d  M
    g   gr"  r#  r$  s      r	   r0  
Set.__ge__V  s@    %%%!!t9s5z!D  r   c                     [        U[        5      (       d  [        $ [        U 5      [        U5      :H  =(       a    U R	                  U5      $ r   r*  r+  s     r	   __eq__
Set.__eq__`  s6    %%%!!4yCJ&=4;;u+==r   c                     U " U5      $ )zConstruct an instance of the class from any iterable input.

Must override this method if the class constructor signature
does not accept an iterable for an input.
r   rJ   its     r	   _from_iterableSet._from_iterablee  s     2wr   c                 p   ^  [        U[        5      (       d  [        $ T R                  U 4S jU 5       5      $ )Nc              3   6   >#    U  H  oT;   d  M
  Uv   M     g 7fr   r   r  rf   rD   s     r	   r  Set.__and__.<locals>.<genexpr>q  s     "MeU}55es   		r   r   r8   r;  r+  s   ` r	   __and__Set.__and__n  s-    %**!!"""Me"MMMr   c                 $    U H
  nX ;   d  M
    g   g)z1Return True if two sets have a null intersection.FTr   )rD   r%  rf   s      r	   
isdisjointSet.isdisjointu  s    E}  r   c                 n    [        U[        5      (       d  [        $ S X4 5       nU R                  U5      $ )Nc              3   6   #    U  H  o  H  o"v   M     M     g 7fr   r   )r  ses      r	   r  Set.__or__.<locals>.<genexpr>  s     5Mq1a1Ms   rA  )rD   r%  chains      r	   __or__
Set.__or__|  s2    %**!!5TM5""5))r   c                    ^ [        T[        5      (       d,  [        T[        5      (       d  [        $ U R	                  T5      mU R	                  U4S jU  5       5      $ )Nc              3   8   >#    U  H  nUT;  d  M  Uv   M     g 7fr   r   )r  rf   r%  s     r	   r  Set.__sub__.<locals>.<genexpr>  s       #:dU&+5&8 $)5d   
	r   r   r   r8   r;  r+  s    `r	   __sub__Set.__sub__  sR    %%%eX..%%''.E"" #:d #: : 	:r   c                    ^  [        U[        5      (       d,  [        U[        5      (       d  [        $ T R	                  U5      nT R	                  U 4S jU 5       5      $ )Nc              3   8   >#    U  H  nUT;  d  M  Uv   M     g 7fr   r   r?  s     r	   r  Set.__rsub__.<locals>.<genexpr>  s       #9eU&+4&7 $)5erR  rS  r+  s   ` r	   __rsub__Set.__rsub__  sR    %%%eX..%%''.E"" #9e #9 9 	9r   c                     [        U[        5      (       d,  [        U[        5      (       d  [        $ U R	                  U5      nX-
  X-
  -  $ r   rS  r+  s     r	   __xor__Set.__xor__  sA    %%%eX..%%''.E..r   c                    [         R                  nSU-  S-   n[        U 5      nSUS-   -  nXB-  nU  H"  n[        U5      nXFUS-  -  S-  S-  -  nXB-  nM$     XDS-	  US-	  -  -  nUS	-  S
-   nXB-  nXA:  a  XBS-   -  nUS:X  a  SnU$ )a  Compute the hash value of a set.

Note that we don't define __hash__: not all sets are hashable.
But if you define a hashable set type, its __hash__ should
call this function.

This must be compatible __eq__.

All sets ought to compare equal if they contain the same
elements, regardless of how they are implemented, and
regardless of the order of the elements; so there's not much
freedom for __eq__ or __hash__.  We match the algorithm used
by the built-in frozenset type.
r   r%   iMr   iM[l   4~2       i i6r   i8#)r)   maxsizer   hash)rD   MAXMASKnhr   hxs          r	   _hash	Set._hash  s     kk3w{I!a% 		AaBb/H,;;AIA  	
2g!r'""I	!		7MA7Ar   N)rN   rO   rP   rQ   r  rR   r'  r,  r1  r0  r6  rS   r;  rB  __rand__rE  rM  __ror__rT  rY  r\  __rxor__ri  rT   r   r   r	   r   r   5  st     I=
=
>
  N
 H* G:9/ Hr   r   c                   f    \ rS rSrSrSr\S 5       r\S 5       rS r	S r
S rS	 rS
 rS rS rSrg)r   i  ak  A mutable set is a finite, iterable container.

This class provides concrete generic implementations of all
methods except for __contains__, __iter__, __len__,
add(), and discard().

To override the comparisons (presumably for speed, as the
semantics are fixed), all you have to do is redefine __le__ and
then the other operations will automatically follow suit.
r   c                     [         e)zAdd an element.r   re   s     r	   addMutableSet.add  
     "!r   c                     [         e)z8Remove an element.  Do not raise an exception if absent.r   re   s     r	   discardMutableSet.discard  rr  r   c                 F    X;  a  [        U5      eU R                  U5        g)z5Remove an element. If not a member, raise a KeyError.N)KeyErrorrt  re   s     r	   removeMutableSet.remove  s    5/!Ur   c                     [        U 5      n [        U5      nU R	                  U5        U$ ! [         a    [        Sef = f)z2Return the popped value.  Raise KeyError if empty.N)iternextrd   rw  rt  rD   r:  rf   s      r	   popMutableSet.pop  sE    $Z	%HE 	U  	%$	%s   + =c                 J      U R                  5         M  ! [         a     gf = f)z6This is slow (creates N new iterators!) but effective.N)r~  rw  rC   s    r	   clearMutableSet.clear  s*    	
  		    
""c                 :    U H  nU R                  U5        M     U $ r   )rp  r}  s      r	   __ior__MutableSet.__ior__  s    EHHUO r   c                 >    X-
   H  nU R                  U5        M     U $ r   )rt  r}  s      r	   __iand__MutableSet.__iand__  s    iELL  r   c                     XL a  U R                  5         U $ [        U[        5      (       d  U R                  U5      nU H,  nX ;   a  U R	                  U5        M  U R                  U5        M.     U $ r   )r  r   r   r;  rt  rp  r}  s      r	   __ixor__MutableSet.__ixor__  sc    :JJL  b#&&((,=LL'HHUO	 
 r   c                 f    XL a  U R                  5         U $ U H  nU R                  U5        M     U $ r   )r  rt  r}  s      r	   __isub__MutableSet.__isub__	  s4    :JJL  U# r   N)rN   rO   rP   rQ   r  rR   r   rp  rt  rx  r~  r  r  r  r  r  rT   r   r   r	   r   r     sW    	 I" " " "

r   r   c                   \    \ rS rSrSrSrSr\S 5       rSS jr	S r
S	 rS
 rS rS rSrSrg)r   i  zA Mapping is a generic container for associating key/value
pairs.

This class provides concrete generic implementations of all
methods except for __getitem__, __iter__, and __len__.
r   @   c                     [         er   rw  rD   keys     r	   r   Mapping.__getitem__$      r   Nc                 0     X   $ ! [          a    Us $ f = f)z<D.get(k[,d]) -> D[k] if k in D, else d.  d defaults to None.r  rD   r  defaults      r	   getMapping.get(  s#    	9 	N	s    c                 .     X     g! [          a     gf = fNTFr  r  s     r	   r   Mapping.__contains__/  s%    	I   		s    
c                     [        U 5      $ )z:D.keys() -> a set-like object providing a view on D's keys)r   rC   s    r	   keysMapping.keys7  s    ~r   c                     [        U 5      $ )z<D.items() -> a set-like object providing a view on D's items)r   rC   s    r	   itemsMapping.items;  s    r   c                     [        U 5      $ )z6D.values() -> an object providing a view on D's values)r    rC   s    r	   valuesMapping.values?  s    $r   c                     [        U[        5      (       d  [        $ [        U R	                  5       5      [        UR	                  5       5      :H  $ r   )r   r   r8   dictr  r+  s     r	   r6  Mapping.__eq__C  s6    %))!!DJJL!T%++-%888r   r   )rN   rO   rP   rQ   r  rR   __abc_tpflags__r   r   r  r   r  r  r  r6  r   rT   r   r   r	   r   r     sL     I O  9
 Lr   r   c                   :    \ rS rSrSrS rS rS r\" \	5      r
Srg)r   iN  _mappingc                     Xl         g r   r  )rD   mappings     r	   __init__MappingView.__init__R  s    r   c                 ,    [        U R                  5      $ r   )r   r  rC   s    r	   r   MappingView.__len__U  s    4==!!r   c                 $    SR                  U 5      $ )Nz&{0.__class__.__name__}({0._mapping!r}))formatrC   s    r	   r   MappingView.__repr__X  s    7>>tDDr   N)rN   rO   rP   rQ   rR   r  r   r   rS   r^   r_   rT   r   r   r	   r   r   N  s$    I "E $L1r   r   c                   4    \ rS rSrSr\S 5       rS rS rSr	g)r   i^  r   c                     [        U5      $ r   setr9  s     r	   r;  KeysView._from_iterableb      2wr   c                     XR                   ;   $ r   r  r  s     r	   r   KeysView.__contains__f  s    mm##r   c              #   8   #    U R                    S h  vN   g  N7fr   r  rC   s    r	   r   KeysView.__iter__i  s     ==  s   N
rN   rO   rP   rQ   rR   rS   r;  r   r   rT   r   r   r	   r   r   ^  s#    I $!r   r   c                   4    \ rS rSrSr\S 5       rS rS rSr	g)r   ip  r   c                     [        U5      $ r   r  r9  s     r	   r;  ItemsView._from_iterablet  r  r   c                 f    Uu  p# U R                   U   nXCL =(       d    XC:H  $ ! [         a     gf = fr   )r  rw  )rD   r  r  rf   vs        r	   r   ItemsView.__contains__x  sA    
	,c"A :++  		s   # 
00c              #   V   #    U R                    H  nXR                   U   4v   M     g 7fr   r  r  s     r	   r   ItemsView.__iter__  s%     ==Cc*++ !s   ')Nr  r   r   r	   r   r   p  s#    I ,,r   r   c                   $    \ rS rSrSrS rS rSrg)r    i  r   c                 ^    U R                    H  nU R                   U   nX1L d  X1:X  d  M    g   gr  r  )rD   rf   r  r  s       r	   r   ValuesView.__contains__  s/    ==Cc"AzQZ ! r   c              #   T   #    U R                    H  nU R                   U   v   M     g 7fr   r  r  s     r	   r   ValuesView.__iter__  s"     ==C--$$ !r   N)rN   rO   rP   rQ   rR   r   r   rT   r   r   r	   r    r      s    I%r   r    c                   v    \ rS rSrSrSr\S 5       r\S 5       r\	" 5       r
\
4S jrS rS rSS	 jrSS jrSrg
)r   i  zA MutableMapping is a generic container for associating
key/value pairs.

This class provides concrete generic implementations of all
methods except for __getitem__, __setitem__, __delitem__,
__iter__, and __len__.
r   c                     [         er   r  rD   r  rf   s      r	   __setitem__MutableMapping.__setitem__  r  r   c                     [         er   r  r  s     r	   __delitem__MutableMapping.__delitem__  r  r   c                 V     X   nX	 U$ ! [          a    X R                  L a  e Us $ f = f)zD.pop(k[,d]) -> v, remove specified key and return the corresponding value.
If key is not found, d is returned if given, otherwise KeyError is raised.
)rw  _MutableMapping__marker)rD   r  r  rf   s       r	   r~  MutableMapping.pop  s=    	IE 	L  	--'N	s   
 ((c                 h     [        [        U 5      5      nX   nX	 X4$ ! [         a    [        Sef = f)zpD.popitem() -> (k, v), remove and return some (key, value) pair
as a 2-tuple; but raise KeyError if D is empty.
N)r|  r{  rd   rw  r  s      r	   popitemMutableMapping.popitem  sD    	%tDz"C 	Iz	  	%$	%s    1c                 J      U R                  5         M  ! [         a     gf = f)z,D.clear() -> None.  Remove all items from D.N)r  rw  rC   s    r	   r  MutableMapping.clear  s*    	  		r  c                   [        U[        5      (       a  U H	  nX   X'   M     O>[        US5      (       a  UR                  5        H	  nX   X'   M     OU H	  u  p4X@U'   M     UR	                  5        H	  u  p4X@U'   M     g)a%  D.update([E, ]**F) -> None.  Update D from mapping/iterable E and F.
If E present and has a .keys() method, does:     for k in E.keys(): D[k] = E[k]
If E present and lacks .keys() method, does:     for (k, v) in E: D[k] = v
In either case, this is followed by: for k, v in F.items(): D[k] = v
r  N)r   r   hasattrr  r  )rD   r%  r  r  rf   s        r	   updateMutableMapping.update  sx     eW%%!J	 UF##zz|!J	 $ $
!S	 $**,JCI 'r   Nc                 6     X   $ ! [          a    X U'    U$ f = f)z@D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in Dr  r  s      r	   
setdefaultMutableMapping.setdefault  s*    	 9 	 I	 s    )r   r   )rN   rO   rP   rQ   r  rR   r   r  r  objectr  r~  r  r  r  r  rT   r   r   r	   r   r     sY     I    xH' 
$r   r   c                   R    \ rS rSrSrSrSr\S 5       rS r	S r
S rSS
 jrS rSrg	)r!   i  z~All the operations on a read-only sequence.

Concrete subclasses must override __new__ or __init__,
__getitem__, and __len__.
r       c                     [         er   
IndexErrorrD   indexs     r	   r   Sequence.__getitem__      r   c              #   P   #    Sn  X   nUv   US-  nM  ! [          a     g f = f7f)Nr   r%   r  )rD   ir  s      r	   r   Sequence.__iter__  s?     	GQ   		s   & 
#&#&c                 ,    U  H  nX!L d  X!:X  d  M    g   gr  r   )rD   rf   r  s      r	   r   Sequence.__contains__  s    AzQZ  r   c              #   `   #    [        [        [        U 5      5      5       H	  nX   v   M     g 7fr   )reversedranger   )rD   r  s     r	   r   Sequence.__reversed__  s$     %D	*+A'M ,s   ,.Nc                     Ub  US:  a  [        [        U 5      U-   S5      nUb  US:  a  U[        U 5      -  nUnUb  XC:  a!   X   nXQL d  XQ:X  a  U$ US-  nUc  M  XC:  a  M!  [        e! [         a     [        ef = f)zS.index(value, [start, [stop]]) -> integer -- return first index of value.
Raises ValueError if the value is not present.

Supporting start and stop arguments is optional, but
recommended.
r   r%   )maxr   r  
ValueError)rD   rf   startstopr  r  s         r	   r  Sequence.index  s     D	E)1-EqCIDlahG zQZFA lah    s   A* *
A<;A<c                 .   ^ [        U4S jU  5       5      $ )zBS.count(value) -> integer -- return number of occurrences of valuec              3   @   >#    U  H  oTL d  UT:X  d  M  S v   M     g7f)r%   Nr   )r  r  rf   s     r	   r  !Sequence.count.<locals>.<genexpr>0  s     ?d5jAJ11ds   	)sumre   s    `r	   countSequence.count.  s    ?d???r   )r   N)rN   rO   rP   rQ   r  rR   r  r   r   r   r   r   r  r  rT   r   r   r	   r!   r!     sA     I O .@r   r!   c                   4   ^  \ rS rSrU 4S jrU 4S jrSrU =r$ )_DeprecateByteStringMetai7  c                 \   > US:w  a  SS K nUR                  SSS9  [        TU ]  " XX#40 UD6$ )Nr#   r   collections.abc.ByteString      rx  )warnings_deprecatedr   r   )rJ   r  bases	namespacekwargsr  r   s         r	   r    _DeprecateByteStringMeta.__new__8  s?    <  , !  ws%EfEEr   c                 J   > SS K nUR                  SSS9  [        TU ]  U5      $ )Nr   r
  r  r  )r  r  r   __instancecheck__)rJ   instancer  r   s      r	   r  *_DeprecateByteStringMeta.__instancecheck__B  s1    ( 	 	
 w(22r   r   )rN   rO   rP   rQ   r   r  rT   r  r  s   @r	   r  r  7  s    F3 3r   r  c                       \ rS rSrSrSrSrg)r#   iK  zEThis unifies bytes and bytearray.

XXX Should add all their methods.
r   N)rN   rO   rP   rQ   r  rR   rT   r   r   r	   r#   r#   K  s    
 Ir   r#   c                   z    \ rS rSrSrSr\S 5       r\S 5       r\S 5       r	S r
S rS	 rS
 rSS jrS rS rSrg)r"   iW  zAll the operations on a read-write sequence.

Concrete subclasses must provide __new__ or __init__,
__getitem__, __setitem__, __delitem__, __len__, and insert().
r   c                     [         er   r  rD   r  rf   s      r	   r  MutableSequence.__setitem__`  r  r   c                     [         er   r  r  s     r	   r  MutableSequence.__delitem__d  r  r   c                     [         e)z3S.insert(index, value) -- insert value before indexr  r  s      r	   insertMutableSequence.inserth  s
     r   c                 :    U R                  [        U 5      U5        g)z:S.append(value) -- append value to the end of the sequenceN)r!  r   re   s     r	   appendMutableSequence.appendm  s    CIu%r   c                 J      U R                  5         M  ! [         a     gf = f)z,S.clear() -> None -- remove all items from SN)r~  r  rC   s    r	   r  MutableSequence.clearq  s*    	
  		r  c                 v    [        U 5      n[        US-  5       H  nXU-
  S-
     X   sX'   XU-
  S-
  '   M     g)z!S.reverse() -- reverse *IN PLACE*r   r%   N)r   r  )rD   rf  r  s      r	   reverseMutableSequence.reversey  sA    Iq!tA#'!A; DGTA#a%[ r   c                 V    XL a  [        U5      nU H  nU R                  U5        M     g)zMS.extend(iterable) -- extend sequence by appending elements from the iterableN)r   r$  )rD   r  r  s      r	   extendMutableSequence.extend  s%    >&\FAKKN r   c                     X   nX	 U$ )zS.pop([index]) -> item -- remove and return item at index (default last).
Raise IndexError if list is empty or index is out of range.
r   )rD   r  r  s      r	   r~  MutableSequence.pop  s     KKr   c                 &    X R                  U5      	 g)zcS.remove(value) -- remove first occurrence of value.
Raise ValueError if the value is not present.
N)r  re   s     r	   rx  MutableSequence.remove  s     E"#r   c                 (    U R                  U5        U $ r   )r,  )rD   r  s     r	   __iadd__MutableSequence.__iadd__  s    Fr   N)r   )rN   rO   rP   rQ   r  rR   r   r  r  r!  r$  r  r)  r,  r~  rx  r3  rT   r   r   r	   r"   r"   W  sk     I     &8$r   r"   )Wr  abcr   r   r)   r(   r   r   r^   EllipsisTyper
   r  __all__rN   r{  bytes_iterator	bytearraybytearray_iteratorr  dict_keyiteratorr  dict_valueiteratorr  dict_itemiteratorlist_iteratorr  list_reverseiteratorr  range_iteratorlongrange_iteratorr  set_iteratorstr_iteratortuple_iteratorzipzip_iterator	dict_keysdict_values
dict_itemsr7   mappingproxyr,   framelocalsproxy	generatorr0   	coroutinery   r3   async_generatorr>   r   r   r   registerr   r   r   r   r   r   r   r   r   r   r$   r   r   r   r   r   	frozensetr   r   r   r   r   r    r   r  r!   r   strr   r  r#   bytesr"   r   r   r	   <module>rS     s!  > ( 
DICy Bx	  d3i$y{+, RWWY( $ryy{+, bhhj)* T"XD"./ d58n%$uQ$Y/01 DK DH~d2hDK O	299;"((*
DMM"*(* /$%	 K	 	 	es)

 2' 2"&	 &R 
  9 2g 2"M &-] -`    (2 2$x & 	  . !   $ %   " #   $ %   # $   -     & '   . !   $ %   ,    ,    . !   ,   - -` 
  9 g 2' 2") w 4@L 4@l
V$; ;(G* GT Y M M`   C 
1j 1f       ! "2% 2 !{C ! 	  ) ,S ,, 
  : %j %    K  OW Od    
=@z: =@~ 	  %    #    %    * 3w 3(%=    E  
  I ?h ?D        #r   