
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    xeº_Š8  ã                   @   sâ  d Z ddlZddlZddlZddlZddlZddlZddddddd	d
dddddddddgZejd dkZ	e
ƒ Ze	r˜eZeZeZeZeZdd	„ Zdd
„ Zn eZeZeZeZdd	„ Zdd
„ Ze	rÂeZneZeedfdd„Ze	rôeZeZeZeZeZeZnÆddlZefdd„Zee ƒdd„ ƒZee ƒdd„ ƒZee ƒdd„ ƒZee ƒd d„ ƒZee ƒd!d„ ƒZee ƒd"d„ ƒZe !¡ d#k�rºze"ej#d$ƒ‚W n2 ek
�rœ   Y n e"k
�r¸   e$d%ƒ‚Y nX zdd&lm%Z% W n¢ e&k
�rl   zdd'l'm(Z( W n" e&k
�r   dd'l)m(Z( Y nX e *d(d)d*d+d,g¡Z+G d-d.„ d.e,ƒZ-e
ƒ fe.eee/e0dƒfƒe1e2e0e3fd/d0„Z4d9d3d„Z%Y nX zdd4l5m6Z6 W n, e&k
�rª   ej7ej8B dfd5d„Z6Y nX zdd6l5m9Z9 W n  e&k
�rÜ   d:d8d„Z9Y nX dS );z¦Module which provides compatibility with older Python versions.
This is more future-compatible rather than the opposite (prefer latest
Python 3 way of doing things).
é    NÚPY3ÚlongÚrangeÚsuperÚunicodeÚ
basestringÚuÚbÚ	lru_cacheÚwhichÚget_terminal_sizeÚFileNotFoundErrorÚPermissionErrorÚProcessLookupErrorÚInterruptedErrorÚChildProcessErrorÚFileExistsErroré   c                 C   s   | S ©N© ©Úsr   r   úA/opt/alt/python38/lib64/python3.8/site-packages/psutil/_compat.pyr   +   s    c                 C   s
   |   d¡S )Nzlatin-1)Úencoder   r   r   r   r	   .   s    c                 C   s
   t | dƒS )NZunicode_escape)r   r   r   r   r   r   6   s    c                 C   s   | S r   r   r   r   r   r   r	   9   s    é   c                 C   sb  | t k�rFt |¡}z|j|jjd  }W n  ttfk
rJ   tdƒ‚Y nX z
|j	}W nB t
tfk
r˜   z|jj	}W n t
k
r’   tdƒ‚Y nX Y nX |D ]ž} | j ¡ D ]†}zPt|tjƒsþt|tƒrÐ|j}q²z
|j}W q² t
k
rú   | || ¡}Y q²X q²W n t
tfk
�r   Y q¬Y nX |j|jkr¬ �q6q¬qž �qFqžtdƒ‚|t k	�rZt| |ƒS t| ƒS )zuLike Python 3 builtin super(). If called without any arguments
        it attempts to infer them at runtime.
        r   z'super() used in a function with no argsz$super() used in a non-newstyle classzsuper() called outside a method)Ú	_SENTINELÚsysÚ	_getframeÚf_localsÚf_codeÚco_varnamesÚ
IndexErrorÚKeyErrorÚRuntimeErrorÚ__mro__ÚAttributeErrorÚ	__class__Ú__dict__ÚvaluesÚ
isinstanceÚtypesÚFunctionTypeÚpropertyÚfgetÚ__func__Ú__get__Ú	TypeErrorÚ	func_codeÚ_builtin_super)Útype_Ztype_or_objZ
framedepthÚfÚmroÚmethr   r   r   r   H   sB    







c                    s   ‡ fdd„}|S )Nc                    s*   G ‡ ‡fdd„dˆƒ‰ ˆj ˆ _ ˆjˆ _ˆ S )Nc                       s2   e Zd Z‡‡ fdd„ZG ‡fdd„deƒZ‡  ZS )zE_instance_checking_exception.<locals>.wrapped.<locals>.TemporaryClassc                    sd   t |ƒdkrNt|d ˆ ƒrN|d }t|ƒD ] }| d¡s*t| |t||ƒƒ q*ntˆ | ƒj||Ž d S )Nr   r   Ú__)Úlenr)   ÚdirÚ
startswithÚsetattrÚgetattrr   Ú__init__)ÚselfÚargsÚkwargsZ	unwrap_meÚattr)ÚTemporaryClassr&   r   r   r=   �   s    
zN_instance_checking_exception.<locals>.wrapped.<locals>.TemporaryClass.__init__c                       s    e Zd Z‡ fdd„Zdd„ ZdS )zS_instance_checking_exception.<locals>.wrapped.<locals>.TemporaryClass.__metaclass__c                    s   ˆ |ƒS r   r   )ÚclsÚinst©Úinstance_checkerr   r   Ú__instancecheck__š   s    ze_instance_checking_exception.<locals>.wrapped.<locals>.TemporaryClass.__metaclass__.__instancecheck__c                 S   s   t  ¡ d }t|| ƒS ©Nr   )r   Úexc_infor)   )rC   Z	classinfoÚvaluer   r   r   Ú__subclasscheck__�   s    ze_instance_checking_exception.<locals>.wrapped.<locals>.TemporaryClass.__metaclass__.__subclasscheck__N)Ú__name__Ú
__module__Ú__qualname__rG   rK   r   rE   r   r   Ú__metaclass__™   s   rO   )rL   rM   rN   r=   ÚtyperO   Ú__classcell__r   ©rB   rF   )r&   r   rB   Ž   s   	rB   )rL   Ú__doc__rE   ©Úbase_exceptionrR   r   Úwrapped�   s    z-_instance_checking_exception.<locals>.wrappedr   )rU   rV   r   rT   r   Ú_instance_checking_exceptionŒ   s    rW   c                 C   s   t | dtƒtjkS ©NÚerrno)r<   r   rY   ÚENOENT©rD   r   r   r   r   §   s    c                 C   s   t | dtƒtjkS rX   )r<   r   rY   ZESRCHr[   r   r   r   r   «   s    c                 C   s   t | dtƒtjtjfkS rX   )r<   r   rY   ÚEACCESÚEPERMr[   r   r   r   r   ¯   s    
 ÿc                 C   s   t | dtƒtjkS rX   )r<   r   rY   ZEINTRr[   r   r   r   r   ´   s    c                 C   s   t | dtƒtjkS rX   )r<   r   rY   ZECHILDr[   r   r   r   r   ¸   s    c                 C   s   t | dtƒtjkS rX   )r<   r   rY   ÚEEXISTr[   r   r   r   r   ¼   s    ÚCPythonÚpermzbbroken or incompatible Python implementation, see: https://github.com/giampaolo/psutil/issues/1659)r
   )ÚRLockÚ	CacheInfoÚhitsÚmissesÚmaxsizeÚcurrsizec                   @   s$   e Zd ZdZefdd„Zdd„ ZdS )Ú
_HashedSeqÚ	hashvaluec                 C   s   || d d …< ||ƒ| _ d S r   ©rh   )r>   ÚtupÚhashr   r   r   r=   ß   s    z_HashedSeq.__init__c                 C   s   | j S r   ri   )r>   r   r   r   Ú__hash__ã   s    z_HashedSeq.__hash__N)rL   rM   rN   Ú	__slots__rk   r=   rl   r   r   r   r   rg   Ü   s   rg   c	                    s˜   | }	|r.||  ¡ ƒ}
|	|7 }	|
D ]}|	|7 }	q |rl|	|‡ fdd„| D ƒƒ7 }	|r�|	|‡ fdd„|
D ƒƒ7 }	n$||	ƒdkr�ˆ |	d ƒ|kr�|	d S t|	ƒS )Nc                 3   s   | ]}ˆ |ƒV  qd S r   r   )Ú.0Úv©rP   r   r   Ú	<genexpr>ñ   s     z_make_key.<locals>.<genexpr>c                 3   s   | ]\}}ˆ |ƒV  qd S r   r   )rn   Úkro   rp   r   r   rq   ó   s     r   r   )Úitemsrg   )r?   ÚkwdsÚtypedÚkwd_markÚ	fasttypesÚsortedÚtuplerP   r8   ÚkeyZsorted_itemsÚitemr   rp   r   Ú	_make_keyæ   s    
r|   éd   Fc                    s   ‡ ‡fdd„}|S )z~Least-recently-used cache decorator, see:
        http://docs.python.org/3/library/functools.html#functools.lru_cache
        c                    s  t ƒ ‰ddg‰d\‰ ‰t‰
ˆj‰t‰tƒ ‰	g ‰ˆˆd d gˆd d …< ˆg‰d\‰‰‰‰ˆdkrn‡‡‡fdd„}nPˆd kr”‡ ‡‡‡‡
‡‡‡‡f	dd„}n*‡ ‡‡‡‡‡‡‡‡‡	‡
‡‡‡‡‡fdd„}‡ ‡‡‡	‡‡fdd	„}‡‡	‡‡fd
d„}ˆ|_||_||_t 	|ˆ¡S )Nr   )r   r   )r   r   é   r   c                     s   ˆ| |Ž}ˆˆ   d7  < |S rH   r   )r?   rt   Úresult)ÚMISSESÚstatsÚuser_functionr   r   Úwrapper	  s    
z7lru_cache.<locals>.decorating_function.<locals>.wrapperc                     sX   ˆ| |ˆƒ}ˆ|ˆƒ}|ˆk	r2ˆˆ   d7  < |S ˆ| |Ž}|ˆ|< ˆˆ  d7  < |S rH   r   )r?   rt   rz   r   )	ÚHITSr€   ÚcacheÚ	cache_getÚmake_keyÚrootr�   ru   r‚   r   r   rƒ     s    

c                     sp  |sˆrˆ
| |ˆƒ}n| }ˆ	  ¡  zvˆ|ƒ}|d k	r–ˆ\}|\}}}}||ˆ< ||ˆ< |ˆ }| |ˆ< |ˆ< ||ˆ< ||ˆ< ˆˆ   d7  < |W ¢S W 5 ˆ	 ¡  X ˆ| |Ž}ˆ	  ¡  zªˆ\}|ˆkrÈn†ˆˆƒˆk�r"|}	||	ˆ< ||	ˆ< |	ˆ  }ˆd< |ˆ }
d  |ˆ< |ˆ< ˆ|
= |	ˆ|< n,|ˆ }||||g}| |ˆ<  |ˆ< ˆ|< ˆˆ  d7  < W 5 ˆ	 ¡  X |S )Nr   r   )ÚacquireÚrelease)r?   rt   rz   Úlinkrˆ   Z	link_prevZ	link_nextr   ÚlastZoldrootZoldkey)r„   ÚKEYr€   ÚNEXTÚPREVÚRESULTÚ_lenr…   r†   Úlockr‡   re   Únonlocal_rootr�   ru   r‚   r   r   rƒ     sN    



c                      s6   ˆ  ¡  ztˆˆ  ˆˆ ˆtˆƒƒW ¢S ˆ ¡  X dS )zReport cache statisticsN)r‰   rŠ   Ú
_CacheInfor8   r   )r„   r€   r…   r’   re   r�   r   r   Ú
cache_infoF  s    ÿz:lru_cache.<locals>.decorating_function.<locals>.cache_infoc                     sP   ˆ  ¡  z8ˆ  ¡  ˆd } | | ddg| dd…< ddgˆdd…< W 5 ˆ ¡  X dS )z$Clear the cache and cache statisticsr   N)r‰   rŠ   Úclear)rˆ   )r…   r’   r“   r�   r   r   Úcache_clearO  s    z;lru_cache.<locals>.decorating_function.<locals>.cache_clear)
Údictr|   Úgetr8   ra   Ú__wrapped__r•   r—   Ú	functoolsÚupdate_wrapper)r‚   rƒ   r•   r—   ©re   ru   )r„   r�   r€   rŽ   r�   r�   r‘   r…   r†   r’   r‡   r“   rˆ   r�   r‚   r   Údecorating_functionü   s,    *-	z&lru_cache.<locals>.decorating_functionr   )re   ru   rž   r   r�   r   r
   ø   s    c)r   c                    s"  dd„ }t j ˆ ¡r&|ˆ |ƒr"ˆ S dS |dkr>t j dt j¡}|sFdS | t j¡}tj	dkr¼t j
|krt| dt j
¡ t j dd¡ t j¡}t‡ fd	d
„|D ƒƒr¨ˆ g}qÂ‡ fdd„|D ƒ}nˆ g}tƒ }|D ]P}t j |¡}||krÌ| |¡ |D ](}	t j ||	¡}
||
|ƒrò|
    S qòqÌdS )aJ  Given a command, mode, and a PATH string, return the path which
        conforms to the given mode on the PATH, or None if there is no such
        file.

        `mode` defaults to os.F_OK | os.X_OK. `path` defaults to the result
        of os.environ.get("PATH"), or can be overridden with a custom search
        path.
        c                 S   s&   t j | ¡o$t  | |¡o$t j | ¡ S r   )ÚosÚpathÚexistsÚaccessÚisdir)ÚfnÚmoder   r   r   Ú_access_checko  s    ÿzwhich.<locals>._access_checkNÚPATHÚwin32r   ÚPATHEXTÚ c                 3   s    | ]}ˆ   ¡  |  ¡ ¡V  qd S r   )ÚlowerÚendswith©rn   Úext©Úcmdr   r   rq   ƒ  s     zwhich.<locals>.<genexpr>c                    s   g | ]}ˆ | ‘qS r   r   r­   r¯   r   r   Ú
<listcomp>†  s     zwhich.<locals>.<listcomp>)rŸ   r    ÚdirnameÚenvironr™   ÚdefpathÚsplitÚpathsepr   ÚplatformÚcurdirÚinsertÚanyÚsetÚnormcaseÚaddÚjoin)r°   r¥   r    r¦   ÚpathextÚfilesÚseenr9   ÚnormdirÚthefileÚnamer   r¯   r   r   f  s8    	




)r   ©éP   é   c                 C   s~   zdd l }dd l}dd l}W n tk
r4   |  Y S X z*| d| d|jd¡¡}|d |d fW S  tk
rx   |  Y S X d S )Nr   Zhhr   Z1234)ÚfcntlÚtermiosÚstructÚImportErrorÚunpackZioctlZ
TIOCGWINSZÚ	Exception)ÚfallbackrÈ   rÉ   rÊ   Úresr   r   r   r   š  s    
 ÿ)r}   F)rÅ   ):rS   ÚcollectionsrY   r›   rŸ   r   r*   Ú__all__Úversion_infor   Úobjectr   Úintr   r   ÚxrangeÚstrr   r   r   r	   r   r2   r   r   r   r   r   r   r·   rÍ   rW   ÚEnvironmentErrorÚpython_implementationÚOSErrorr^   r#   r
   rË   Ú	threadingra   Zdummy_threadingÚ
namedtupler”   Úlistrg   r»   Ú	frozensetrP   rx   ry   r8   r|   Úshutilr   ÚF_OKÚX_OKr   r   r   r   r   Ú<module>   sÌ             ó

8





ÿ
 
ÿ   ý
k1