ÿØÿà 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
bWq                 @   s   d dl Z d dlZd dlZddlmZmZ yd dlZW n ek
rP   d dl	ZY nX G dd de
Ze Zyej ZW n ek
r   dZY nX dd Zdd	 ZdS )
    N   )longbinary_typec               @   sH   e Zd ZdddZdddZdd Zd	d
 Zdd Zdd Zdd Z	dS )EntropyPoolNc             C   s   d| _ d | _d| _tj | _ydd l}|j | _d| _	W n^ t
k
r   ydd l}|j | _d| _	W n, t
k
r   dd l}|j | _d| _	Y nX Y nX td| j	 | _|d k	r| jt| d| _tj | _nd| _d| _d S )Nr             TF)
pool_indexdigest	next_byte
_threadingZLocklockhashlibZsha1hashhash_lenImportErrorshanewmd5	bytearraypoolstirseededosgetpidseed_pid)selfseedr   r   r    r   /usr/lib/python3.6/entropy.py__init__   s0    





zEntropyPool.__init__Fc             C   sr   |s| j j  zNxH|D ]@}| j| jkr,d| _|d@ }| j| j  |N  < |  jd7  _qW W d |sl| j j  X d S )Nr      r   )r   acquirer	   r   r   release)r   ZentropyZalready_lockedcbr   r   r   r   7   s    

zEntropyPool.stirc             C   s   | j  s| jtj krytjd}W n` tk
r   y*tddd}z|jd}W d |j  X W n  tk
r~   t	t
j
 }Y nX Y nX d| _ tj | _d | _t|}| j|d d S )Nr   z/dev/urandomrbr   T)r   r   r   r   urandom	Exceptionopenreadclosestrtimer
   r   r   )r   r   rr   r   r   _maybe_seedE   s     
zEntropyPool._maybe_seedc          
   C   s   | j j  zr| j  | jd ks*| j| jkr`| jjt| j	 t
| jj | _| j| jd d| _| j| j }|  jd7  _W d | j j  X |S )NTr   r   )r   r"   r/   r
   r   r   r   updater   r   r   r   r#   )r   valuer   r   r   random_8X   s    
zEntropyPool.random_8c             C   s   | j  d | j   S )N   )r2   )r   r   r   r   	random_16g   s    zEntropyPool.random_16c             C   s   | j  d | j   S )Ni   )r4   )r   r   r   r   	random_32j   s    zEntropyPool.random_32c             C   sl   || d }|t dkr td|dkr8| j}t d}n|dkrL| j}d}n
| j}d}|||  |d   S )	Nr   l        ztoo bigi   l    r3   i  r!   )r   
ValueErrorr5   r4   r2   )r   firstlastsizeZrandmaxr   r   r   random_betweenm   s    
zEntropyPool.random_between)N)F)
__name__
__module____qualname__r    r   r/   r2   r4   r5   r;   r   r   r   r   r      s   

r   c               C   s    t d k	rt jddS tj S d S )Nr   i   )system_random	randranger   r4   r   r   r   r   r4      s    r4   c             C   s(   t d k	rt j| |d S tj| |S d S )Nr   )r?   r@   r   r;   )r7   r8   r   r   r   between   s    rA   )r   Zrandomr-   Z_compatr   r   Z	threadingr   r   Zdummy_threadingobjectr   r   ZSystemRandomr?   r(   r4   rA   r   r   r   r   <module>   s   b
