HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/saltstack/salt/lib/python3.10/__pycache__/copyreg.cpython-310.pyc
o

�N�g�@s�dZgd�ZiZddd�Zdd�ZzeWn	eyYnwdd�Zeeee�d	d
�Zee	e
eB�e�dd�Zd
Z
e	e
j�Zdd�Zdd�Zdd�Zdd�ZiZiZiZdd�Zdd�Zdd�ZdS)z�Helper to provide extensibility for pickle.

This is only useful to add pickle support for extension types defined in
C, not for instances of user-defined classes.
)�pickle�constructor�
add_extension�remove_extension�clear_extension_cacheNcCs0t|�std��|t|<|durt|�dSdS)Nz$reduction functions must be callable)�callable�	TypeError�dispatch_tabler)Zob_typeZpickle_functionZconstructor_ob�r	�-/opt/saltstack/salt/lib/python3.10/copyreg.pyrs�rcCst|�std��dS)Nzconstructors must be callable)rr)�objectr	r	r
rs�rcCst|j|jffS�N)�complex�real�imag)�cr	r	r
�pickle_complex"srcCs"ddl}ddl}|j|j|jffS)N�)�	functools�operator�reduce�or_�__args__)�objrrr	r	r
�pickle_union'srcCs>|turt�|�}|S|�||�}|jtjkr|�||�|Sr)r�__new__�__init__)�cls�base�staterr	r	r
�_reconstructor/s
�ric	Cs|dksJ�|j}|jD]}t|d�r|jt@sn|j}t|t�r)|j|ur)nqt	}|t	ur3d}n||ur@t
d|j�d���||�}|||f}z|j}Wn,t
yzt|dd�rgt
d|j�d|���d�z|j}Wnt
ywd}YnwYnw|�}|r�t||fSt|fS)N��	__flags__zcannot pickle z object�	__slots__zf object: a class that defines __slots__ without defining __getstate__ cannot be pickled with protocol )�	__class__�__mro__�hasattrr!�	_HEAPTYPEr�
isinstance�	_new_type�__self__rr�__name__�__getstate__�AttributeError�getattr�__dict__r)	�self�protorr�newr�args�getstate�dictr	r	r
�
_reduce_ex=sH
�

��
���
r5cGs|j|g|�R�Sr�r)rr2r	r	r
�
__newobj__dsr7cCs|j|g|�Ri|��S)zUsed by pickle protocol 4, instead of __newobj__ to allow classes with
    keyword-only arguments to be pickled correctly.
    r6)rr2�kwargsr	r	r
�
__newobj_ex__gsr9cCs�|j�d�}|dur|Sg}t|d�snI|jD]E}d|jvr\|jd}t|t�r+|f}|D].}|dvr4q-|�d�rV|�d�sV|j�	d�}|rP|�
d||f�q-|�
|�q-|�
|�q-qz||_W|SY|S)a�Return a list of slot names for a given class.

    This needs to find slots defined by the class and its bases, so we
    can't simply return the __slots__ attribute.  We must walk down
    the Method Resolution Order and concatenate the __slots__ of each
    class found there.  (This assumes classes don't modify their
    __slots__ attribute to misrepresent their slots after the class is
    defined.)
    �
__slotnames__Nr")r.�__weakref__�__�_z_%s%s)r.�getr%r$r'�str�
startswith�endswithr*�lstrip�appendr:)r�namesrZslots�nameZstrippedr	r	r
�
_slotnamesms6




��rFcCs�t|�}d|krdkstd��td��||f}t�|�|kr*t�|�|kr*dS|tvr8td|t|f��|tvrFtd|t|f��|t|<|t|<dS)zRegister an extension code.�i���zcode out of rangeNz)key %s is already registered with code %sz$code %s is already in use for key %s)�int�
ValueError�_extension_registryr>�_inverted_registry��modulerE�code�keyr	r	r
r�s&�
�
�rcCsV||f}t�|�|kst�|�|krtd||f��t|=t|=|tvr)t|=dSdS)z0Unregister an extension code.  For testing only.z%key %s is not registered with code %sN)rJr>rKrI�_extension_cacherLr	r	r
r�s�
�rcCst��dSr)rP�clearr	r	r	r
r�srr)�__doc__�__all__rrrr
�	NameErrorrr�typerHr?rr&rr(r5r7r9rFrJrKrPrrrr	r	r	r
�<module>s6

�	
'<