U xe�_�8 � @ s� d Z ddlZddlZddlZddlZddlZddlZddddddd d ddd ddddddgZejd dkZ e � Ze r�eZ eZeZeZeZdd � Zdd � Zn e Z eZeZeZdd � Zdd � Ze r�eZneZeedfdd�Ze r�eZeZeZeZeZeZn�ddlZefdd�Zee �dd� �Zee �dd� �Zee �dd� �Zee �d d� �Zee �d!d� �Zee �d"d� �Ze�!� d#k�r�ze"ej#d$��W n2 ek �r� Y n e"k �r� e$d%��Y nX zdd&lm%Z% W n� e&k �rl zdd'l'm(Z( W n" e&k �r dd'l)m(Z( Y nX e�*d(d)d*d+d,g�Z+G d-d.� d.e,�Z-e � fe.eee/e0d�f�e1e2e0e3fd/d0�Z4d9d3d�Z%Y nX zdd4l5m6Z6 W n, e&k �r� ej7ej8B dfd5d�Z6Y nX zdd6l5m9Z9 W n e&k �r� d:d8d �Z9Y nX dS );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 )Nzlatin-1)�encoder r r r r . s c C s t | d�S )NZunicode_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|jjd }W n ttfk rJ td��Y nX z |j }W nB t tfk r� z|jj }W n t k r� td��Y nX Y nX |D ]�} | j� � D ]�}zPt|tj�s�t|t�r�|j}q�z |j}W q� t k r� |�|| �}Y q�X q�W n t tfk �r Y q�Y nX |j|jkr� �q6q�q� �qFq�td��|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 classzsuper() 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__� TypeErrorZ func_code�_builtin_super)Ztype_Ztype_or_objZ framedepth�f�mroZmethr r r r H sB c s � fdd�}|S )Nc s* G � �fdd�d��� �j � _ �j� _� S )Nc s2 e Zd Z�� fdd�ZG �fdd�de�Z� ZS )zE_instance_checking_exception.<locals>.wrapped.<locals>.TemporaryClassc sd t |�dkrNt|d � �rN|d }t|�D ] }|�d�s*t| |t||�� q*nt� | �j||� d S )Nr r �__)�lenr) �dir� startswith�setattr�getattrr �__init__)�self�args�kwargsZ unwrap_me�attr)�TemporaryClassr&