ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     3
bW#                 @   s   d Z G dd deZdS )zA simple Set class.c               @   s  e Zd ZdZdgZdDddZdd Zdd	 Zd
d Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 Zd:d; Z d<d= Z!d>d? Z"d@dA Z#dBdC Z$dS )ESeta'  A simple set class.

    Sets are not in Python until 2.3, and rdata are not immutable so
    we cannot use sets.Set anyway.  This class implements subset of
    the 2.3 Set interface using a list as the container.

    @ivar items: A list of the items which are in the set
    @type items: listitemsNc             C   s*   g | _ |dk	r&x|D ]}| j| qW dS )zvInitialize the set.

        @param items: the initial set of items
        @type items: any iterable or None
        N)r   add)selfr   item r   /usr/lib/python3.6/set.py__init__    s    
zSet.__init__c             C   s   dt | j S )Nzdns.simpleset.Set(%s))reprr   )r   r   r   r   __repr__,   s    zSet.__repr__c             C   s   || j kr| j j| dS )zAdd an item to the set.N)r   append)r   r   r   r   r   r   /   s    
zSet.addc             C   s   | j j| dS )zRemove an item from the set.N)r   remove)r   r   r   r   r   r   4   s    z
Set.removec             C   s*   y| j j| W n tk
r$   Y nX dS )z'Remove an item from the set if present.N)r   r   
ValueError)r   r   r   r   r   discard8   s    zSet.discardc             C   s    | j }|j|}t| j|_|S )a  Make a (shallow) copy of the set.

        There is a 'clone protocol' that subclasses of this class
        should use.  To make a copy, first call your super's _clone()
        method, and use the object returned as the new instance.  Then
        make shallow copies of the attributes defined in the subclass.

        This protocol allows us to write the set algorithms that
        return new instances (e.g. union) once, and keep using them in
        subclasses.
        )	__class____new__listr   )r   clsobjr   r   r   _clone?   s    
z
Set._clonec             C   s   | j  S )z!Make a (shallow) copy of the set.)r   )r   r   r   r   __copy__Q   s    zSet.__copy__c             C   s   | j  S )z!Make a (shallow) copy of the set.)r   )r   r   r   r   copyU   s    zSet.copyc             C   s<   t |tstd| |krdS x|jD ]}| j| q&W dS )zUpdate the set, adding any elements from other which are not
        already in the set.
        @param other: the collection of items with which to update the set
        @type other: Set object
        zother must be a Set instanceN)
isinstancer   r   r   r   )r   otherr   r   r   r   union_updateY   s    
zSet.union_updatec             C   sL   t |tstd| |krdS x(t| jD ]}||jkr*| jj| q*W dS )zUpdate the set, removing any elements from other which are not
        in both sets.
        @param other: the collection of items with which to update the set
        @type other: Set object
        zother must be a Set instanceN)r   r   r   r   r   r   )r   r   r   r   r   r   intersection_updatef   s    

zSet.intersection_updatec             C   s@   t |tstd| |kr"g | _nx|jD ]}| j| q*W dS )zUpdate the set, removing any elements from other which are in
        the set.
        @param other: the collection of items with which to update the set
        @type other: Set object
        zother must be a Set instanceN)r   r   r   r   r   )r   r   r   r   r   r   difference_updatev   s    
zSet.difference_updatec             C   s   | j  }|j| |S )zReturn a new set which is the union of I{self} and I{other}.

        @param other: the other set
        @type other: Set object
        @rtype: the same type as I{self}
        )r   r   )r   r   r   r   r   r   union   s    
z	Set.unionc             C   s   | j  }|j| |S )zReturn a new set which is the intersection of I{self} and I{other}.

        @param other: the other set
        @type other: Set object
        @rtype: the same type as I{self}
        )r   r   )r   r   r   r   r   r   intersection   s    
zSet.intersectionc             C   s   | j  }|j| |S )zReturn a new set which I{self} - I{other}, i.e. the items
        in I{self} which are not also in I{other}.

        @param other: the other set
        @type other: Set object
        @rtype: the same type as I{self}
        )r   r   )r   r   r   r   r   r   
difference   s    	
zSet.differencec             C   s
   | j |S )N)r   )r   r   r   r   r   __or__   s    z
Set.__or__c             C   s
   | j |S )N)r   )r   r   r   r   r   __and__   s    zSet.__and__c             C   s
   | j |S )N)r   )r   r   r   r   r   __add__   s    zSet.__add__c             C   s
   | j |S )N)r   )r   r   r   r   r   __sub__   s    zSet.__sub__c             C   s   | j | | S )N)r   )r   r   r   r   r   __ior__   s    
zSet.__ior__c             C   s   | j | | S )N)r   )r   r   r   r   r   __iand__   s    
zSet.__iand__c             C   s   | j | | S )N)r   )r   r   r   r   r   __iadd__   s    
zSet.__iadd__c             C   s   | j | | S )N)r   )r   r   r   r   r   __isub__   s    
zSet.__isub__c             C   s   x|D ]}| j | qW dS )zUpdate the set, adding any elements from other which are not
        already in the set.
        @param other: the collection of items with which to update the set
        @type other: any iterable typeN)r   )r   r   r   r   r   r   update   s    
z
Set.updatec             C   s
   g | _ dS )zMake the set empty.N)r   )r   r   r   r   clear   s    z	Set.clearc             C   s@   x| j D ]}||j krdS qW x|j D ]}|| j kr&dS q&W dS )NFT)r   )r   r   r   r   r   r   __eq__   s    

z
Set.__eq__c             C   s   | j | S )N)r)   )r   r   r   r   r   __ne__   s    z
Set.__ne__c             C   s
   t | jS )N)lenr   )r   r   r   r   __len__   s    zSet.__len__c             C   s
   t | jS )N)iterr   )r   r   r   r   __iter__   s    zSet.__iter__c             C   s
   | j | S )N)r   )r   ir   r   r   __getitem__   s    zSet.__getitem__c             C   s   | j |= d S )N)r   )r   r/   r   r   r   __delitem__   s    zSet.__delitem__c             C   s4   t |tstdx| jD ]}||jkrdS qW dS )z?Is I{self} a subset of I{other}?

        @rtype: bool
        zother must be a Set instanceFT)r   r   r   r   )r   r   r   r   r   r   issubset   s    

zSet.issubsetc             C   s4   t |tstdx|jD ]}|| jkrdS qW dS )zAIs I{self} a superset of I{other}?

        @rtype: bool
        zother must be a Set instanceFT)r   r   r   r   )r   r   r   r   r   r   
issuperset   s    

zSet.issuperset)N)%__name__
__module____qualname____doc__	__slots__r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r,   r.   r0   r1   r2   r3   r   r   r   r   r      sD   	
r   N)r7   objectr   r   r   r   r   <module>   s   