ÿØÿà 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

  \                 @   sx   d Z dddddddgZdZeZi fd
dZdd Zdd Zdd ZdddZ	dd Z
G dd deZdadadd ZdS )a/  Drop-in replacement for the thread module.

Meant to be used as a brain-dead substitute so that threaded code does
not need to be rewritten for when the thread module is not present.

Suggested usage is::

    try:
        import _thread
    except ImportError:
        import _dummy_thread as _thread

errorstart_new_threadexit	get_identallocate_lockinterrupt_mainLockType      c             C   s   t |t t krtdt |t t kr4tdday| || W n. tk
rZ   Y n   ddl}|j  Y nX datrdat	dS )a  Dummy implementation of _thread.start_new_thread().

    Compatibility is maintained by making sure that ``args`` is a
    tuple and ``kwargs`` is a dictionary.  If an exception is raised
    and it is SystemExit (which can be done by _thread.exit()) it is
    caught and nothing is done; all other exceptions are printed out
    by using traceback.print_exc().

    If the executed function calls interrupt_main the KeyboardInterrupt will be
    raised when the function returns.

    z2nd arg must be a tuplez3rd arg must be a dictF    NT)
typetuple	TypeErrordict_main
SystemExit	traceback	print_exc
_interruptKeyboardInterrupt)Zfunctionargskwargsr    r   %/usr/lib64/python3.6/_dummy_thread.pyr      s     c               C   s   t dS )z'Dummy implementation of _thread.exit().N)r   r   r   r   r   r   =   s    c               C   s   dS )zDummy implementation of _thread.get_ident().

    Since this module should only be used when _threadmodule is not
    available, it is safe to assume that the current process is the
    only thread.  Thus a constant can be safely returned.
       r   r   r   r   r   r   A   s    c               C   s   t  S )z0Dummy implementation of _thread.allocate_lock().)r   r   r   r   r   r   J   s    Nc             C   s   | dk	rt ddS )z-Dummy implementation of _thread.stack_size().Nz'setting thread stack size not supportedr
   )r   )sizer   r   r   
stack_sizeN   s    r   c               C   s   t  S )z0Dummy implementation of _thread._set_sentinel().)r   r   r   r   r   _set_sentinelT   s    r   c               @   sF   e Zd ZdZdd ZdddZeZdd	 Zd
d Zdd Z	dd Z
dS )r   a  Class implementing dummy implementation of _thread.LockType.

    Compatibility is maintained by maintaining self.locked_status
    which is a boolean that stores the state of the lock.  Pickling of
    the lock, though, should not be done since if the _thread module is
    then used with an unpickled ``lock()`` from here problems could
    occur from this class not having atomic methods.

    c             C   s
   d| _ d S )NF)locked_status)selfr   r   r   __init__c   s    zLockType.__init__Nr   c             C   sH   |dks|rd| _ dS | j s&d| _ dS |dkr@ddl}|j| dS dS )a  Dummy implementation of acquire().

        For blocking calls, self.locked_status is automatically set to
        True and returned appropriately based on value of
        ``waitflag``.  If it is non-blocking, then the value is
        actually checked and not set if it is already acquired.  This
        is all done so that threading.Condition's assert statements
        aren't triggered and throw a little fit.

        NTr
   F)r   timeZsleep)r   ZwaitflagZtimeoutr!   r   r   r   acquiref   s    
zLockType.acquirec             C   s   | j   d S )N)release)r   typvaltbr   r   r   __exit__   s    zLockType.__exit__c             C   s   | j s
td| _ dS )zRelease the dummy lock.FT)r   r   )r   r   r   r   r#      s    zLockType.releasec             C   s   | j S )N)r   )r   r   r   r   locked   s    zLockType.lockedc             C   s*   d| j rdnd| jj| jjtt| f S )Nz<%s %s.%s object at %s>r(   Zunlocked)r   	__class__
__module____qualname__hexid)r   r   r   r   __repr__   s
    zLockType.__repr__r   )Nr   )__name__r*   r+   __doc__r    r"   	__enter__r'   r#   r(   r.   r   r   r   r   r   X   s   	
	FTc               C   s   t r
tndadS )z^Set _interrupt flag to True to have start_new_thread raise
    KeyboardInterrupt upon exiting.TN)r   r   r   r   r   r   r   r      s    l        )N)r0   __all__TIMEOUT_MAXRuntimeErrorr   r   r   r   r   r   r   objectr   r   r   r   r   r   r   r   <module>   s   
 	
@