3 \o"�@sfddlZddlZddlmZGdd�de�ZeZyddlmZWne k rXdZYnXdddgZ dd�Z iZ Z d d �ZxHed�eeeeeeeeeeeejee�ee�ejejfD] Zee e<q�We ed d�Zedk r�ee e<e!j e e!<e"j e e"<e#j e e#<e$j e e$<edk �rej e e<[ [dgfd d�Z%iZ&Z d d�Z'e'e ed�<e'e ee�<e'e ee�<e'e e<e'e e<e'e e<e'e e<e'e e<e'e e<ye'e ej(<Wne)k �r�YnXe'e e<e'e ej<e'e ej<e'e ej<e%fdd�Z*e*e e!<e%fdd�Z+e+e e<e%fdd�Z,e,e e"<edk �r.e,e e<dd�Z-e-e ej.<[ dd�Z/ddde%fdd�Z0[[[dS)�N)�dispatch_tablec@s eZdZdS)�ErrorN)�__name__� __module__� __qualname__�rr�/usr/lib64/python3.6/copy.pyr7sr)� PyStringMap�copy�deepcopyc Cs�t|�}tj|�}|r||�Syt|t�}Wntk rDd}YnX|rRt|�St|dd�}|rj||�Stj|�}|r�||�}n>t|dd�}|r�|d�}n$t|dd�}|r�|�}n td|��t |t �r�|St |df|��S)NF�__copy__� __reduce_ex__�� __reduce__z%un(shallow)copyable object of type %s) �type�_copy_dispatch�get� issubclass� TypeError�_copy_immutable�getattrrr� isinstance�str� _reconstruct)�x�cls�copier�issc�reductor�rvrrrr Bs4          cCs|S)Nr)rrrrrosr�CodeTypec Cs8|dkr i}t|�}|j||�}||k r,|St|�}tj|�}|rN|||�}n�yt|t�}Wntk rtd}YnX|r�t||�}n�t|dd�}|r�||�}nxtj|�}|r�||�} n>t|dd�}|r�|d�} n$t|dd�}|r�|�} n t d|��t | t ��r|}nt ||f| ��}||k �r4|||<t ||�|S)Nr� __deepcopy__r rrz"un(deep)copyable object of type %s)�idrr�_deepcopy_dispatchrr�_deepcopy_atomicrrrrrr� _keep_alive) r�memoZ_nil�d�yrrrrrrrrr �sJ                cCs|S)Nr)rr&rrrr$�sr$cCs6g}||t|�<|j}x|D]}||||��qW|S)N)r"�append)rr&r r(r)�arrr�_deepcopy_list�s   r+c sh��fdd�|D�}y �t|�Stk r4YnXx,t||�D]\}}||k rBt|�}PqBW|}|S)Ncsg|]}�|���qSrr)�.0r*)r r&rr� �sz#_deepcopy_tuple..)r"�KeyError�zip�tuple)rr&r r(�k�jr)r r&r�_deepcopy_tuple�s r3cCs>i}||t|�<x(|j�D]\}}|||�||||�<qW|S)N)r"�items)rr&r r(�key�valuerrr�_deepcopy_dict�s  r7cCst|�|jt|j|��S)N)r�__func__r �__self__)rr&rrr�_deepcopy_method�sr:c Cs>y|t|�j|�Wn"tk r8|g|t|�<YnXdS)N)r"r)r.)rr&rrrr%�s r%csx�dk }|r$|r$��fdd�|D�}||�} |r<| �t|�<|dk r�|rR�|��}t| d�rh| j|�nbt|t�r�t|�dkr�|\}} nd} |dk r�| jj|�| dk r�x | j�D]\} } t | | | �q�W|dk �r|r�x<|D]} �| ��} | j | �q�Wnx|D]} | j | ��qW|dk �rt|�rXxL|D]&\} } �| ��} �| ��} | | | <�q,Wnx|D]\} } | | | <�q^W| S)Nc3s|]}�|��VqdS)Nr)r,�arg)r r&rr� sz_reconstruct..� __setstate__�) r"�hasattrr=rr0�len�__dict__�updater4�setattrr))rr&�func�args�stateZlistiterZdictiterr Zdeepr(Z slotstater5r6�itemr)r r&rr sF             r)1�types�weakref�copyregr� Exceptionr�errorZorg.python.corer � ImportError�__all__r rr'rr�int�float�bool�complexrr0�bytes� frozenset�range�slice�BuiltinFunctionType�Ellipsis�NotImplemented� FunctionType�ref�tr�list�dict�set� bytearrayr r#r$r �AttributeErrorr+r3r7r:� MethodTyper%rrrrr�3s|   +         8            +