AlkantarClanX12

Your IP : 13.59.92.247


Current Path : /proc/self/root/opt/alt/python311/lib64/python3.11/__pycache__/
Upload File :
Current File : //proc/self/root/opt/alt/python311/lib64/python3.11/__pycache__/shutil.cpython-311.opt-2.pyc

�

c��f�����	ddlZddlZddlZddlZddlZddlZ	ddlZ[dZn
#e$rdZYnwxYw	ddl	Z	[	dZ
n
#e$rdZ
YnwxYw	ddlZ[dZn
#e$rdZYnwxYwej
dkZdxZZej
dkrddlZnerddlZerdndZeed��oej�d	��aeoeed
��ZdZgd�ZGd
�de��ZGd�de��ZGd�de��ZGd�de��ZGd�de��ZGd�de��Z Gd�de��Z!d�Z"d�Z#efd�Z$dtd�Z%d�Z&d �Z'd!�Z(dd"�d#�Z)dd"�d$�Z*eed%��rdd"�d&�Z+nd'�Z+dd"�d(�Z,dd"�d)�Z-dd"�d*�Z.d+�Z/	dud,�Z0dde.ddfd-�Z1eej2d.��rd/�Z3d0�Z4nd1�Z3d2�Z4d3�Z5d4�Z6ej7ejej8ej9hej:koej;ej<vo
ejej=vZ>dvdd5�d6�Z?e>e?_@d7�ZAe.fd8�ZBd9�ZCd:�ZDd;�ZEd<�ZF		dwd>�ZG		dxd?�ZHd@eGdAgdBdfiZIereGdCgdDdfeIdE<eHgdFdfeIdG<e
r
eGdHgdIdfeIdJ<er
eGdKgdLdfeIdM<dN�ZJdydP�ZKdQ�ZL		dzdR�ZMdS�ZNdT�ZO		dydU�ZPdV�ZQdW�ZRdX�ZSddY�dZ�ZTd[geTgdBfd\geSgdFfd]�ZUerd^d_geTgdDfeUdE<e
rd`dageTgdIfeUdJ<erdbdcgeTgdLfeUdM<dd�ZVd{ddY�de�ZWeedf��rNe�Xdg��ejYdhdi��ZZdjeZj[_\dkeZj]_\dleZj^_\dm�Z_n+er)e�Xdg��ejYdhdi��ZZdn�Z_d{do�Z`d|dq�Zadr�Zbejcejdzdfds�ZedS)}�NTF�nt�posixii�sendfile�linux�
_fcopyfilez%.COM;.EXE;.BAT;.CMD;.VBS;.JS;.WS;.MSC)�copyfileobj�copyfile�copymode�copystat�copy�copy2�copytree�move�rmtree�Error�SpecialFileError�	ExecError�make_archive�get_archive_formats�register_archive_format�unregister_archive_format�get_unpack_formats�register_unpack_format�unregister_unpack_format�unpack_archive�ignore_patterns�chown�which�get_terminal_size�
SameFileErrorc��eZdZdS)rN��__name__�
__module__�__qualname__���-/opt/alt/python311/lib64/python3.11/shutil.pyrr=s�������Dr'rc��eZdZdS)r Nr"r&r'r(r r @s������?�?r'r c��eZdZdS)rNr"r&r'r(rrCs������;�;r'rc��eZdZdS)rNr"r&r'r(rrGs������5�5r'rc��eZdZdS)�	ReadErrorNr"r&r'r(r-r-Js������/�/r'r-c��eZdZdS)�
RegistryErrorNr"r&r'r(r/r/Ms������&�&r'r/c��eZdZdS)�_GiveupOnFastCopyNr"r&r'r(r1r1Qs�������r'r1c��		|���}|���}n!#t$r}t|���d}~wwxYw	tj|||��dS#t
$rN}|j|_|j|_|j	tj
tjhvrt|���|d�d}~wwxYw�N)�fileno�	Exceptionr1rr�OSError�name�filename�	filename2�errno�EINVAL�ENOTSUP)�fsrc�fdst�flags�infd�outfd�errs      r(�_fastcopy_fcopyfilerCVs����%��{�{�}�}�����
�
�����%�%�%���$�$�$�����%���� �
���u�e�,�,�,�,�,��� � � ��y����	��
��9���u�}�5�5�5�#�C�(�(�(��4������
 ���s-�(,�
A
�A�A
�A&�&
B>�0A	B9�9B>c���		|���}|���}n!#t$r}t|���d}~wwxYw	tt	j|��jd��}n#t$rd}YnwxYwtj	dkrt|d��}d}		t	j||||��}|dkrdS||z
}n�#t$r�}|j|_
|j|_|jtjkrdat|���|jtjkr|d�|dkr3t	j|dtj��dkrt|���|�d}~wwxYw��)Ni�ili@rTF)r4r5r1�max�os�fstat�st_sizer6�sys�maxsize�minrr7r8r9r:�ENOTSOCK�_USE_CP_SENDFILE�ENOSPC�lseek�SEEK_CUR)r=r>r@rArB�	blocksize�offset�sents        r(�_fastcopy_sendfilerTjs����%��{�{�}�}�����
�
�����%�%�%���$�$�$�����%�����������.��8�8�	�	�������	�	�	������{�W����	�7�+�+�	�
�F��	��;�u�d�F�I�>�>�D�,�q�y�y����d�N�F�F��/�	�	�	��9�C�L� �I�C�M��y�E�N�*�*�$)� �'��,�,�,��y�E�L�(�(��t�#���{�{�r�x��q�"�+�>�>�!�C�C�'��,�,�,��I�����'	����s?�(,�
A
�A�A
�'A6�6B�B�,C�
E1�BE,�,E1c�B�	|j}|j}tt|����5}	||��}|snJ||kr8|d|�5}|�|��ddd��n#1swxYwYn||���X	ddd��dS#1swxYwYdSr3)�readinto�write�
memoryview�	bytearray)r=r>�length�
fsrc_readinto�
fdst_write�mv�n�smvs        r(�_copyfileobj_readintor`�s?���
�M�M���J�	�I�f�%�%�	&�	&�	�"�	��
�b�!�!�A��
���V�������V�$�s��J�J�s�O�O�O�$�$�$�$�$�$�$�$�$�$�$����$�$�$�$���
�2����	��		�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s5� B�A.�"B�.A2	�2B�5A2	�6B�B�Bc�j�	|st}|j}|j}	||��}|sdS||���r3)�COPY_BUFSIZE�readrW)r=r>rZ�	fsrc_readr\�bufs      r(rr�sS��G������	�I���J���i������	��E��
�3����	r'c��t|tj��rpttjd��rV	tj�|���tj|����S#t$rYdSwxYwttjd��r2	tj�||��S#t$rYdSwxYwtj�	tj�
|����tj�	tj�
|����kS)N�samestatF�samefile)�
isinstancerF�DirEntry�hasattr�pathrg�statr6rh�normcase�abspath��src�dsts  r(�	_samefilers�s���#�r�{�#�#������(D�(D��	��7�#�#�C�H�H�J�J������=�=�=���	�	�	��5�5�	�����r�w�
�#�#��	��7�#�#�C��-�-�-���	�	�	��5�5�	����
�G���R�W�_�_�S�1�1�2�2��G���R�W�_�_�S�1�1�2�2�
3�4s$�AA:�:
B�B�&C�
C�Cc��t|tj��r|���ntj|��Sr3)rirFrjrm��fns r(�_statrw�s-��"�2�r�{�3�3�D�2�7�7�9�9�9������Dr'c��t|tj��r|���ntj�|��Sr3)rirFrj�
is_symlinkrl�islinkrus r(�_islinkr{�s3��(��R�[�9�9�Q�2�=�=�?�?�?�r�w�~�~�b�?Q�?Q�Qr'��follow_symlinksc
�F�	tjd||��t||��r#td�||�����d}t||g��D]�\}}	t
|��}tj|j	��r5t|tj��r|j
n|}td|z���tr
|dkr|j}�x#t"$rY��wxYw|s8t%|��r)tjtj|��|���n�t+|d��5}	t+|d��5}t,rF	t/||t0j��|cddd��cddd��S#t4$rYn�wxYwt6r;	t9||��|cddd��cddd��S#t4$rYnOwxYwtrD|dkr>t;||t=|t>����|cddd��cddd��StA||��ddd��n#1swxYwYnE#tB$r8}	tj
�"|��stGd|����|	��d}	~	wwxYwddd��n#1swxYwY|S)Nzshutil.copyfilez{!r} and {!r} are the same filerz`%s` is a named pipe�rb�wbzDirectory does not exist: )$rI�auditrsr �format�	enumeraterwrm�S_ISFIFO�st_moderirFrjrlr�_WINDOWSrHr6r{�symlink�readlink�open�_HAS_FCOPYFILErCr�_COPYFILE_DATAr1rMrTr`rKrbr�IsADirectoryError�exists�FileNotFoundError)
rqrrr}�	file_size�irv�str=r>�es
          r(r	r	�s����I���c�*�*�*���c���P��=�D�D�S�#�N�N�O�O�O��I��C��:�&�&�'�'���2�	'��r���B��}�R�Z�(�(�
D� *�2�r�{� ;� ;�C�R�W�W���&�'=��'B�C�C�C��
'�A��F�F��J�	����	�	�	��D�	�����!�w�s�|�|�!�
�
�2�;�s�#�#�S�)�)�)�)�
�#�t�_�_�	��
��#�t�_�_�,��%�#�!�/��d�E�<P�Q�Q�Q�#&�,�,�,�,�,�,�,�	�	�	�	�	�	�	�	�� 1�!�!�!� �D�!����*�
#�!�.�t�T�:�:�:�#&�,�,�,�,�,�,�,�	�	�	�	�	�	�	�	�� 1�!�!�!� �D�!����"�#�i�!�m�m�-�d�D�#�i��:V�:V�W�W�W�"�',�,�,�,�,�,�,�	�	�	�	�	�	�	�	�. ��d�+�+�+�+,�,�,�,�,�,�,�,�,�,�,����,�,�,�,���0%�
�
�
��w�~�~�c�*�*��+�,N��,N�,N�O�O�UV�V������	
����5	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�@�Js��$C�
C#�"C#�0J�2I�H9�F�'I�
F
�
H9�F
�
H9�G�)I�
G�H9�G�5H9�I�H9�-I�9H=	�=I�H=	�I�J�
J�3J�J�J�J�Jc�h�	tjd||��|s�t|��rxtj�|��rYtjdkrtjtj}}n�ttd��rtjtj
}}nedStjdkr@tj�|��r!tj�|d���}ttj}}||��}||tj|j����dS)Nzshutil.copymoder�lchmodT��strict)rIr�r{rFrlrzr7�lstat�chmodrkr��realpathrwrm�S_IMODEr�)rqrrr}�	stat_func�
chmod_funcr�s      r(r
r
"s�����I���c�*�*�*��
0�w�s�|�|�
0�����s�0C�0C�
0�
�7�d�?�?�$&�H�b�h�z�I�I�
�R��
"�
"�	�$&�H�b�i�z�I�I��F�
�7�d�?�?�r�w�~�~�c�2�2�?��'�"�"�3�t�"�4�4�C� %�r�x�:�	�	��3���B��J�s�D�L���,�,�-�-�-�-�-r'�	listxattrc���		tj||���}nC#t$r6}|jtjtjtjfvr�Yd}~dSd}~wwxYw|D]}	tj|||���}tj||||����3#t$r@}|jtj	tjtjtjfvr�Yd}~�xd}~wwxYwdS�Nr|)
rFr�r6r:r<�ENODATAr;�getxattr�setxattr�EPERM)rqrrr}�namesr�r7�values       r(�
_copyxattrr�<s��	�	��L��o�F�F�F�E�E���	�	�	��w�u�}�e�m�U�\�J�J�J���F�F�F�F�F�����	�����	�	�D�
���C���O�O�O����C��u�o�N�N�N�N�N���
�
�
��7�5�;��
�u�}�#(�<�#1�1�1��1�1�1�1�1�����
����		�	s,��
A�+A�A�"/B�
C�6C�Cc��dSr3r&��args�kwargss  r(r�r�T����r'c���
�	tjd||��ddd�d��
|p.t|��otj�|��}|r�
fd�}n�
fd�}t
|tj��r|�|���}n|d��||���}tj	|j
��}|d��||j|jf|���t|||���|d	��}tjd
krF|rAtj�|��r!tj�|d���}nd
�}	||||���n#t $rYnwxYwt#|d��rr	|d��||j|���dS#t&$rF}dD]7}	t#t(|	��r |jt+t(|	��krn�8�Yd}~dSd}~wwxYwdS)Nzshutil.copystat)�nsr}c��dSr3r&)r�r}r�s   r(�_nopzcopystat.<locals>._noper�r'c�0��tt|���Sr3)�getattrrF)r7r�s �r(�lookupzcopystat.<locals>.lookupls����2�t�T�*�*�*r'c�T��tt|���}|tjvr|S�Sr3)r�rF�supports_follow_symlinks)r7rvr�s  �r(r�zcopystat.<locals>.lookupqs,�����T�4�(�(�B��R�0�0�0��	��Kr'r|rm�utimer�rTr�c�"�tj|�dSr3)rFr�r�s  r(�_chmodzcopystat.<locals>._chmod�s����$����r'�st_flags�chflags)�
EOPNOTSUPPr<)rIr�r{rFrlrzrirjrmr�r��st_atime_ns�st_mtime_nsr�r7r��NotImplementedErrorrkr�r6r:r�)rqrrr}�followr�r��moder��whyrBr�s          @r(rrWs����
��I���c�*�*�*��T�
�
�
�
�
��
J�W�S�\�\�%I�b�g�n�n�S�6I�6I� J�F�
��	+�	+�	+�	+�	+�	+�
	�	�	�	�	��#�r�{�#�#�9�
�X�X�f�X�
-�
-���
�V�V�F�^�^�C��
8�
8�
8���<��
�#�#�D��F�F�7�O�O�C�R�^�R�^�<�� � � � ��s�C��0�0�0�0�
�V�G�_�_�F�	�w�$����	 ��w�~�~�c�"�"�
9��g�&�&�s�4�&�8�8���
 �
 �
 �

���s�D�&�1�1�1�1�1���
�
�
�	
��
�����r�:����	��F�F�9���c�2�;��G�G�G�G�G�G���	�	�	�.�
�
���5�#�&�&��3�9���s�8K�8K�+K�+K��E����E�E�E�E�E�����	�����s*�E$�$
E1�0E1�F#�#
G3�-;G.�.G3c��	tj�|��r=tj�|tj�|����}t|||���t
|||���|Sr�)rFrl�isdir�join�basenamer	r
�rqrrr}s   r(rr�ss��
�
�w�}�}�S���7��g�l�l�3��� 0� 0�� 5� 5�6�6���S�#��7�7�7�7��S�#��7�7�7�7��Jr'c��	tj�|��r=tj�|tj�|����}t|||���t
|||���|Sr�)rFrlr�r�r�r	rr�s   r(r
r
�ss��	�
�w�}�}�S���7��g�l�l�3��� 0� 0�� 5� 5�6�6���S�#��7�7�7�7��S�#��7�7�7�7��Jr'c���	�fd�}|S)Nc���g}�D]*}|�tj||�����+t|��Sr3)�extend�fnmatch�filter�set)rlr��
ignored_names�pattern�patternss    �r(�_ignore_patternsz)ignore_patterns.<locals>._ignore_patterns�sJ����
��	A�	A�G�� � ����w�!?�!?�@�@�@�@��=�!�!�!r'r&)r�r�s` r(rr�s)���&�"�"�"�"�"�
�r'c
��|�)|tj|��d�|D����}nd}tj||���g}	|tup|tu}
|D�]�}|j|vr�
tj�||j��}tj�||j��}
|
r|n|}	|���}|r=tjdkr-|�	d���}|j
tjkrd}|r�tj|��}|r)tj
||
��t||
|���n�tj�|��s|r��|���rt#||
|||||��nC|||
��n6|���rt#||
|||||��n|||
�����#t$$r+}|	�|jd��Yd}~���d}~wt*$r0}|	�||
t/|��f��Yd}~���d}~wwxYw	t||��nM#t*$r@}t1|dd���%|	�||t/|��f��Yd}~nd}~wwxYw|	rt%|	���|S)	Nc��g|]	}|j��
Sr&�r7)�.0�xs  r(�
<listcomp>z_copytree.<locals>.<listcomp>�s��/H�/H�/H�1���/H�/H�/Hr'r&)�exist_okrFr|r�winerror)rF�fspath�makedirsr
rr7rlr�ryrm�st_reparse_tag�IO_REPARSE_TAG_MOUNT_POINTr�r�rr��is_dirrrr�r�r6�append�strr�)�entriesrqrr�symlinks�ignore�
copy_function�ignore_dangling_symlinks�
dirs_exist_okr��errors�use_srcentry�srcentry�srcname�dstname�srcobjryr��linktorBr�s                    r(�	_copytreer��s9��
����r�y��~�~�/H�/H��/H�/H�/H�I�I�
�
��
��K��m�,�,�,�,�
�F� �E�)�B�]�d�-B�L��,8�,8���=�M�)�)���'�,�,�s�H�M�2�2���'�,�,�s�H�M�2�2��)�6���w��&	8�!�,�,�.�.�J��
'�b�g��o�o�!�
�
�e�
�<�<���'�4�+J�J�J�!&�J��
/���W�-�-���7��J�v�w�/�/�/��V�W�(�l�K�K�K�K�K��7�>�>�&�1�1�!�6N�!� ����(�(�7� ���(�F�!.�0H�!.�0�0�0�0�&�
�f�g�6�6�6�6����"�"�
/����(�F�M�1�=�B�B�B�B��
�f�g�.�.�.����	'�	'�	'��M�M�#�(�1�+�&�&�&�&�&�&�&�&������	8�	8�	8��M�M�7�G�S��X�X�6�7�7�7�7�7�7�7�7�����	8����0���c�������0�0�0��3�
�D�)�)�1��M�M�3��S��X�X�.�/�/�/����������0�������F�m�m���JsD�8B5G�/A-G�
I�( H�
I�%I�I�I � 
J*�*6J%�%J*c
���	tjd||��tj|��5}t	|��}ddd��n#1swxYwYt||||||||���S)Nzshutil.copytree)r�rqrrr�r�r�r�r�)rIr�rF�scandir�listr�)	rqrrr�r�r�r�r��itrr�s	         r(rrs���%�L�I���c�*�*�*�	��C����C��s�)�)���������������������W�#�3��"�-�.F�#0�2�2�2�2s�A�A�A�st_file_attributesc���	|�d���}tj|j��o)|jtjzo|jtjkS#t$rYdSwxYw�NFr|)rm�S_ISDIRr�r��FILE_ATTRIBUTE_REPARSE_POINTr�r�r6)�entryr�s  r(�
_rmtree_isdirr�Fs���	����E��2�2�B��L���,�,�K��&��)J�J�J��&�$�*I�I�2K�
L���	�	�	��5�5�	���s�AA�
A)�(A)c���	tj|��}tj|j��p(|jtjzo|jtjkS#t$rYdSwxYw)NF)
rFr�rm�S_ISLNKr�r�r�r�r�r6)rlr�s  r(�_rmtree_islinkr�Osu��	���$���B��L���,�,�K��&��)J�J�J��&�$�*I�I�
L���	�	�	��5�5�	���s�AA�
A&�%A&c�R�	|�d���S#t$rYdSwxYwr�)r�r6)r�s r(r�r�Xs=��	��<�<��<�6�6�6���	�	�	��5�5�	���s��
&�&c�@�tj�|��Sr3)rFrlrz)rls r(r�r�^s���w�~�~�d�#�#�#r'c�F�	tj|��5}t|��}ddd��n#1swxYwYn:#t$r-|tj|t	j����g}YnwxYw|D]�}|j}t|��rs	|���rtd���n=#t$r0|tjj	|t	j����Y�vwxYwt||����	tj|����#t$r+|tj|t	j����Y��wxYw	tj|��dS#t$r,|tj|t	j����YdSwxYw)N�%Cannot call rmtree on a symbolic link)
rFr�r�r6rI�exc_inforlr�ryrz�_rmtree_unsafe�unlink�rmdir)rl�onerror�
scandir_itr�r��fullnames      r(rrbs���
�Z��
�
�	'���:�&�&�G�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'����������
�D�#�,�.�.�1�1�1����������=�=���:������	=�
��#�#�%�%�K�"�"I�J�J�J�	K��
�
�
�
�������#�,�.�.�A�A�A���
����
�8�W�-�-�-�-�
=��	�(�#�#�#�#���
=�
=�
=����	�8�S�\�^�^�<�<�<�<�<�
=����0�
����������0�0�0�����$�����/�/�/�/�/�/�0���s]�>�2�>�6�>�6�>�4A5�4A5�#B7�77C1�0C1�D�2E�E�E*�*2F �F c
���	tj|��5}t|��}ddd��n#1swxYwYnG#t$r:}||_|tj|tj����Yd}~dSd}~wwxYw|D�]e}tj�||j	��}	|�
d���}|ri	|�d���}	tj|	j
��}nK#t$r+|tj|tj����Y��wxYwn#t$rd}YnwxYw|�rP	tj|j	tjtjz|���}
d}	tj�|	tj|
����r�t)|
||��	tj|
��n:#t$r-d}|tj|tj����YnwxYwd}	tj|j	|���n�#t$r+|tj|tj����YnQwxYw	td���#t$r0|tjj|tj����YnwxYw|sP	tj|
����G#t$r,|tj|tj����Y��|wxYw���#|sN	tj|
��w#t$r+|tj|tj����YwwxYwwxYw#t$r,|tj|tj����Y��wxYw	tj|j	|�����.#t$r,|tj|tj����Y��cwxYwdS)NFr|��dir_fdTr�)rFr�r�r6r8rIrrlr�r7r�rmr�r�r�r��O_RDONLY�
O_NONBLOCKrgrG�_rmtree_safe_fd�closerrzr)�topfdrlrrr�rBr�rr��orig_st�dirfd�dirfd_closeds            r(rr�s����
�Z��
�
�	'�*��:�&�&�G�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�������������
�D�#�,�.�.�1�1�1����������������6=�6=���7�<�<��e�j�1�1��	��\�\�%�\�8�8�F��
��#�j�j��j�?�?�G�!�\�'�/�:�:�F�F�������G�B�H�h�����?�?�?��H�����	
���	�	�	��F�F�F�	�����(	=�"
H����
�B�K�"�-�,G�PU�V�V�V��$��H��w�'�'����%���A�A�N�'��x��A�A�A�H��H�U�O�O�O�O��&�H�H�H�+/�L�#�G�B�H�h�����G�G�G�G�G�H����(,��H��H�U�Z��>�>�>�>�>��&�H�H�H�#�G�B�H�h�����G�G�G�G�G�H����N�#*�+1�#2�#2�2��&�N�N�N�#�G�B�G�N�H�c�l�n�n�M�M�M�M�M�N����(�H�H��H�U�O�O�O�O��&�H�H�H�#�G�B�H�h�����G�G�G�G�G�H����H��<�H�H��H�U�O�O�O�O��&�H�H�H�#�G�B�H�h�����G�G�G�G�G�H����H�����7�
;�
;�
;������3�<�>�>�:�:�:�:�:�
;����B
=��	�%�*�U�3�3�3�3�3���
=�
=�
=����	�8�S�\�^�^�<�<�<�<�<�
=����k6=�6=s�>�2�>�6�>�6�>�
B�/A=�=B�0D2�	/C9�92D.�-D.�2E�E�5M�>AL	�G�L	�4H�L	�
H�L	�H0�/L	�02I%�"L	�$I%�%L	�)I8�87J2�/L	�1J2�2L	�8K�2L�L�	M�
L"�!M�"2M	�M�M	�M�2N�N�N5�52O+�*O+rc	���	tjd||��|rd�}n|�d�}t�r�t|t��rtj|��}	tj||���}n9#t$r,|t
j|tj	����YdSwxYw	tj
|t
jt
jz|���}d}n9#t$r,|t
j
|tj	����YdSwxYw	t
j
�|tj|����r�t!|||��	tj|��n:#t$$r-d}|t
j|tj	����YnwxYwd}	tj||���n�#t$$r+|t
j|tj	����YnQwxYw	t%d���#t$$r0|t
j
j|tj	����YnwxYw|sP	tj|��dS#t$$r,|t
j|tj	����YdSwxYwdS#|sN	tj|��w#t$$r+|t
j|tj	����YwwxYwwxYw|�t+d���	t-|��rt%d���n>#t$$r1|t
j
j|tj	����YdSwxYwt/||��S)	Nz
shutil.rmtreec��dSr3r&�r�s r(rzrmtree.<locals>.onerror�s���Dr'c���r3r&rs r(rzrmtree.<locals>.onerror�s��r'rFTr�z#dir_fd unavailable on this platform)rIr��_use_fd_functionsri�bytesrF�fsdecoder�r5rr�r
rrlrgrGrr
r6rrzr�r�r)rl�
ignore_errorsrr	r�fd�	fd_closeds       r(rr�s�����I�o�t�V�,�,�,���	�	�	�	�	��	�	�	��6-��d�E�"�"�	%��;�t�$�$�D�	��h�t�F�3�3�3�G�G���	�	�	��G�B�H�d�C�L�N�N�3�3�3��F�F�	����	����r�{�R�]�:�6�J�J�J�B��I�I���	�	�	��G�B�G�T�3�<�>�>�2�2�2��F�F�	����	<��w������"���6�6�
B���D�'�2�2�2�<��H�R�L�L�L�L���<�<�<� $�I��G�B�H�d�C�L�N�N�;�;�;�;�;�<����!�	�<��H�T�&�1�1�1�1�1���<�<�<��G�B�H�d�C�L�N�N�;�;�;�;�;�<����B�!�"I�J�J�J���B�B�B��G�B�G�N�D�#�,�.�.�A�A�A�A�A�B�����
<�<��H�R�L�L�L�L�L���<�<�<��G�B�H�d�C�L�N�N�;�;�;�;�;�;�<����
<�
<��9�
<�<��H�R�L�L�L�L���<�<�<��G�B�H�d�C�L�N�N�;�;�;�;�;�<����
<������%�&K�L�L�L�	��d�#�#�
G��E�F�F�F�
G���	�	�	��G�B�G�N�D�#�,�.�.�9�9�9��F�F�	�����d�G�,�,�,s��A,�,2B"�!B"�&0C�2D
�D
�AJ�E*�)J�*4F!�J� F!�!J�'F>�=J�>2G3�0J�2G3�3J�7H�7I�=J�?I�J�I�2J�J�K)�J0�/K)�02K%�"K)�$K%�%K)�>L�7M�Mc���	tj|��}tjjtjjpdz}tj�|�|����S�N�)rFr�rl�sep�altsepr��rstrip)rlrs  r(�	_basenamer"sO����9�T�?�?�D�
�'�+����-�2�
.�C�
�7���D�K�K��,�,�-�-�-r'c��	tjd||��|}tj�|��r�t||��r6tj�|��stj||��dStj�|t|����}tj�
|��rtd|z���	tj||���n^#t$�rPtj�|��r>tj
|��}tj||��tj|��n�tj�|��r�t!||��rtd|�d|�d����t#|��sCtj|tj��s:tj|��r&tjdkrt-d|�d|�d����t/|||d	�
��t1|��n |||��tj|��YnwxYw|S)Nzshutil.movez$Destination path '%s' already existszCannot move a directory 'z' into itself 'z'.�darwinz%Cannot move the non-empty directory 'z ': Lacking write permission to 'T)r�r�)rIr�rFrlr�rsrz�renamer�r"r�rr6r�r�r�
_destinsrc�
_is_immutable�access�W_OK�listdir�platform�PermissionErrorrr)rqrrr��real_dstr�s     r(rr+sJ���2�I�m�S�#�&�&�&��H�	�w�}�}�S���K��S�#���	�r�w�~�~�c�':�':�	�
�I�c�3�����F��7�<�<��Y�s�^�^�4�4��
�7�>�>�(�#�#�	K��>��I�J�J�J��
�	�#�x� � � � ������
�7�>�>�#���	��[��%�%�F��J�v�x�(�(�(��I�c�N�N�N�N�
�W�]�]�3�
�
�	��#�s�#�#�
3��e�(+���S�S�S�2�3�3�3��c�"�"�
4��I�c�2�7�3�3�
4�8:�
�3���
4��L�H�4�4�%�o�),���c�c�c�'3�4�4�4�
�S�(�-�"�
$�
$�
$�
$��3�K�K�K�K��M�#�x�(�(�(��I�c�N�N�N���)����*�Os�C5�5EI�Ic��tj�|��}tj�|��}|�tjj��s|tjjz
}|�tjj��s|tjjz
}|�|��Sr3)rFrlro�endswithr�
startswithrps  r(r&r&ms���
�'�/�/�#�
�
�C�
�'�/�/�#�
�
�C��<�<����$�$���r�w�{����<�<����$�$���r�w�{����>�>�#���r'c��t|��}tjtjg}t	|d��o|j|vS)Nr�)rwrm�UF_IMMUTABLE�SF_IMMUTABLErkr�)rqr��immutable_statess   r(r'r'vs;��	�s���B��)�4�+<�=���2�z�"�"�F�r�{�6F�'F�Fr'c��	|�dS	ddlm}n#t$rYdSwxYw	||��}n#t$rd}YnwxYw|�|dSdS)Nr)�getgrnam�)�grpr6�ImportError�KeyError)r7r6�results   r(�_get_gidr<{���,��|��t�� � � � � � � �������t�t��������$������������������
���a�y���4���
��,�;�;c��	|�dS	ddlm}n#t$rYdSwxYw	||��}n#t$rd}YnwxYw|�|dSdS)Nr)�getpwnamr7)�pwdr@r9r:)r7r@r;s   r(�_get_uidrB�r=r>�gzipc	������	|�d}	nRtr	|dkrd}	nBtr	|dkrd}	n2tr	|dkrd}	n"td�|�����ddl}
|rd	|	znd}|d
z|z}tj�|��}
|
rMtj�	|
��s.|�|�
d|
��|st
j|
��|�|�
d��t����t��������fd
�}|s�|
�|d|	z��}|}|� tj�||��}	|�|||���|���n#|���wxYw|�tj�|��}|S)NrrC�gz�bzip2�bz2�xzzCbad value for 'compress', or compression format not supported : {0}r�.�.tar�creating %szCreating tar archivec�H�����|_�|_���|_�|_|Sr3)�gid�gname�uid�uname)�tarinforM�group�ownerrOs ����r(�_set_uid_gidz#_make_tarball.<locals>._set_uid_gid�s.����?��G�K�!�G�M��?��G�K�!�G�M��r'zw|%s�r�)�_ZLIB_SUPPORTED�_BZ2_SUPPORTED�_LZMA_SUPPORTED�
ValueErrorr��tarfilerFrl�dirnamer��infor�rBr<r�r��addr
ro)�	base_name�base_dir�compress�verbose�dry_runrSrR�logger�root_dir�tar_compressionrZ�compress_ext�archive_name�archive_dirrT�tar�arcnamerMrOs     ``          @@r(�
_make_tarballrk�s������
������	�=�X��/�/����	�=�H��/�/����	�=�X��-�-�����+�+1�6�(�+;�+;�=�=�	=��N�N�N�,4�<�3��(�(�"�L��v�%��4�L��'�/�/�,�/�/�K��%�2�7�>�>�+�6�6�%����K�K�
�{�3�3�3��	%��K��$�$�$������*�+�+�+�
�5�/�/�C�
�5�/�/�C������������l�l�<��/�)A�B�B�������w�|�|�H�h�7�7�H�	��G�G�H�g�l�G�;�;�;��I�I�K�K�K�K��C�I�I�K�K�K�K�������w���|�4�4���s�F
�
F c�:�	ddl}|dz}	tj�|��}
|
rMtj�|
��s.|�|�d|
��|stj|
��|�|�d|	|��|�se|�|	d|j���5}tj�	|��}|� tj�
||��}tj�	|��}|tjkr.|�||��|�|�d|��tj
|��D�]{\}
}}|
}|� tj�||��}tj�	|��}t|��D]p}tj�
|
|��}tj�
||��}|�||��|�|�d|���q|D]�}tj�
|
|��}tj�	|��}tj�|��rNtj�
||��}|�||��|�|�d|������}	ddd��n#1swxYwY|�tj�|	��}	|	S)Nr�.ziprKz#creating '%s' and adding '%s' to it�w)�compressionzadding '%s')�zipfilerFrlr[r�r\r��ZipFile�ZIP_DEFLATED�normpathr��curdirrW�walk�relpath�sorted�isfilero)r^r_rarbrcrSrRrdrp�zip_filenamerh�zfrj�dirpath�dirnames�	filenames�
arcdirpathr7rls                   r(�
_make_zipfiler�s%���
�N�N�N��v�%�L��'�/�/�)�,�,�K��%�2�7�>�>�+�6�6�%����K�K�
�{�3�3�3��	%��K��$�$�$�
�����9� �(�	,�	,�	,��=�
�_�_�\�3�)0�)=��?�?�	=�BD��g�&�&�x�0�0�G��#��7�<�<��(�;�;���w�'�'��1�1�H��"�)�#�#�����7�+�+�+��%��K�K�
�x�8�8�8�02���0A�0A�
=�
=�,���9�$�
��'�!#�����X�!F�!F�J��W�-�-�j�9�9�
�"�8�,�,�9�9�D��7�<�<���6�6�D� �g�l�l�:�t�<�<�G��H�H�T�7�+�+�+��)����M�4�8�8�8��%�=�=�D��7�<�<���6�6�D��7�+�+�D�1�1�D��w�~�~�d�+�+�=�"$�'�,�,�z�4�"@�"@������w�/�/�/�!�-�"�K�K�
�t�<�<�<��=�
=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=����	=�	=�	=�	=�<���w���|�4�4���s�2H0K/�/K3�6K3ri)r`Nzuncompressed tar file)r`rCzgzip'ed tar-file�gztarzZIP file�zip)r`rFzbzip2'ed tar-file�bztar)r`rHzxz'ed tar-file�xztarc�v�	d�t���D��}|���|S)Nc�(�g|]\}}||df��S)r7r&)r�r7�registrys   r(r�z'get_archive_formats.<locals>.<listcomp>:s1��)�)�)�~�t�X��h�q�k�"�)�)�)r')�_ARCHIVE_FORMATS�items�sort��formatss r(rr5sC���)�)��%�%�'�'�)�)�)�G��L�L�N�N�N��Nr'rc�J�	|�g}t|��std|z���t|ttf��std���|D]@}t|ttf��rt|��dkrtd����A|||dft|<dS)NzThe %s object is not callablez!extra_args needs to be a sequencer7z+extra_args elements are : (arg_name, value)F)�callable�	TypeErrorri�tupler��lenr�)r7�function�
extra_args�description�elements     r(rr?s�������
��H���D��7�(�B�C�C�C��j�5�$�-�0�0�=��;�<�<�<��K�K���'�E�4�=�1�1�	K�S��\�\�A�5E�5E��I�J�J�J�6F�'�
�K��G��T���r'c��t|=dSr3)r�r�s r(rrTs������r'c	�t�	tjd||||��	t|}	n!#t$rt	d|z��d�wxYw||||d�}
|	d}|	dD]
\}}
|
|
|<�|�t
j}|	d}d}|��tj|��j}tj	|��sttjd|���|rtj
|��}||
d<n`tj��}|�|�d	|��t
j�|��}|stj|��	|||fi|
��}|�,|�|�d
|��tj|��n4#|�-|�|�d
|��tj|��wwxYw|S)Nzshutil.make_archivezunknown archive format '%s')rbrcrSrRr��zNot a directoryrdzchanging into '%s'zchanging back to '%s')rIr�r�r:rYrFrtrmr�r��NotADirectoryErrorr:�ENOTDIRr��getcwd�debugrlro�chdir)r^r�rdr_rarbrSrRrc�format_infor��func�arg�val�supports_root_dir�save_cwd�stmdr8s                  r(rrWs��� �I�#�Y���(�K�K�K�K�&�v�.�����K�K�K��6��?�@�@�d�J�K����!�F��u�.�.�F��q�>�D���N�����S���s������9��#�A����H����w�x� � �(���|�D�!�!�	Q�$�U�]�4E�x�P�P�P��
	#��	�)�,�,�I�!)�F�:����y�{�{�H��!����1�8�<�<�<�����	�2�2�I��
#����"�"�"���4�	�8�6�6�v�6�6�����!����4�h�?�?�?��H�X���������!����4�h�?�?�?��H�X����� ����
�Os�
)�A�
F�1F5c�v�	d�t���D��}|���|S)Nc�6�g|]\}}||d|df��S)rr�r&)r�r7r\s   r(r�z&get_unpack_formats.<locals>.<listcomp>�s7��(�(�(�J�D�$��d�1�g�t�A�w�'�(�(�(r')�_UNPACK_FORMATSr�r�r�s r(rr�sC���
(�(��$�$�&�&�(�(�(�G��L�L�N�N�N��Nr'c���	i}t���D]\}}|dD]}|||<��|D]"}||vrd}t||||fz����#t|��st	d���dS)Nrz!%s is already registered for "%s"z*The registered function must be a callable)r�r�r/r�r�)	�
extensionsr�r��existing_extensionsr7r\�ext�	extension�msgs	         r(�_check_unpack_optionsr��s���5���%�+�+�-�-�,�,�
��d���7�	,�	,�C�'+���$�$�	,� �H�H�	��+�+�+�5�C���y�':�9�'E�'G�!G�H�H�
H�,�
�H���F��D�E�E�E�F�Fr'c�N�	|�g}t|||��||||ft|<dSr3)r�r�)r7r�r�r�r�s     r(rr�s?������
��*�h�
�;�;�;�&��*�k�I�O�D���r'c��	t|=dSr3)r�r�s r(rr�s��4�����r'c��	tj�|��}tj�|��stj|��dSdSr3)rFrlr[r�r�)rlr[s  r(�_ensure_directoryr��sN��;��g�o�o�d�#�#�G�
�7�=�=��!�!��
��G�������r'c���	ddl}|�|��std|z���|�|��}	|���D]�}|j}|�d��sd|vr�#tjj	|g|�
d���R�}|s�Pt|��|�d��sf|�
|d��5}t|d��5}t||��ddd��n#1swxYwYddd��n#1swxYwY��	|���dS#|���wxYw)Nrz%s is not a zip file�/z..�rr�)rp�
is_zipfiler-rq�infolistr8r0rFrlr��splitr�r/r�rr
)	r8�extract_dirrpr�r\r7�
targetpath�source�targets	         r(�_unpack_zipfiler��s�����N�N�N����h�'�'�;��.��9�:�:�:�
�/�/�(�
#�
#�C���L�L�N�N�	0�	0�D��=�D����s�#�#�
�t�t�|�|�����k�D�D�J�J�s�O�O�D�D�D�J��
���j�)�)�)��=�=��%�%�
0��X�X�d�C�(�(�0�F��Z��.�.�0�28����/�/�/�0�0�0�0�0�0�0�0�0�0�0����0�0�0�0�0�0�0�0�0�0�0�0�0�0�0����0�0�0�0��	0�$	�	�	��������	�	�������sU�BE	�!D&�2D�D&�D�D&�D�D&�E	�&D*	�*E	�-D*	�.E	�	ErUc��	ddl}	|�|��}n #|j$rtd|z���wxYw	|�||���|���dS#|���wxYw)Nrz/%s is not a compressed or uncompressed tar filerU)rZr��TarErrorr-�
extractallr
)r8r�r�rZ�tarobjs     r(�_unpack_tarfiler��s�����N�N�N�J����h�'�'������J�J�J��=��H�J�J�	J�J��������+�f��5�5�5�������������������s��:�A+�+BrJrm)rir�z.tar.gzz.tgzz.tar.bz2z.tbz2z.tar.xzz.txzc��t���D]+\}}|dD]}|�|��r|ccS��,dS)Nr)r�r�r/)r8r7r\r�s    r(�_find_unpack_formatr�sh��%�+�+�-�-���
��d��a��	�	�I�� � ��+�+�
�������
�	��4r'c�~�	tjd|||��|�tj��}tj|��}tj|��}|�i}nd|i}|�i	t
|}n1#t$r$td�|����d�wxYw|d}|||fit|d���|��dSt|��}|�"td�|�����t
|d}tt
|d��|z}|||fi|��dS)Nzshutil.unpack_archiver�zUnknown unpack format '{0}'r�r7zUnknown archive format '{0}')rIr�rFr�r�r�r:rYr��dictr�r-)r8r�r�r��
filter_kwargsr�r�r�s        r(rrst���"�I�%�x��f�E�E�E����i�k�k���)�K�(�(�K��y��"�"�H�
�~��
�
�!�6�*�
�
��	U�)�&�1�K�K���	U�	U�	U��:�A�A�&�I�I�J�J�PT�T�	U�����1�~����X�{�L�L�d�;�q�>�&:�&:�L�m�L�L�L�L�L�%�X�.�.���>��:�A�A�(�K�K�L�L�L��v�&�q�)���o�f�-�a�0�1�1�M�A����X�{�-�-�f�-�-�-�-�-s�"
A0�0.B�statvfs�
disk_usage�usageztotal used freezTotal space in byteszUsed space in byteszFree space in bytesc��	tj|��}|j|jz}|j|jz}|j|jz
|jz}t
|||��Sr3)rFr��f_bavail�f_frsize�f_blocks�f_bfree�_ntuple_diskusage)rlr��free�total�useds     r(r�r�Vs[��	�
�Z��
�
���{�R�[�(����b�k�)����b�j�(�B�K�7�� ���d�3�3�3r'c�^�	tj|��\}}||z
}t|||��Sr3)r�
_getdiskusager�)rlr�r�r�s    r(r�r�gs8��	�
�&�t�,�,���t��t�|�� ���d�3�3�3r'c���	tjd|||��|�|�td���|}|}|�d}nHt|t��r3t|��}|�"t
d�|�����|�d}nHt|t��s3t|��}|�"t
d�|�����tj|||��dS)Nzshutil.chownzuser and/or group must be set���zno such user: {!r}zno such group: {!r})rIr�rYrir�rB�LookupErrorr��intr<rFr)rl�userrR�_user�_groups     r(rrrs����
�I�n�d�D�%�0�0�0��|��
��8�9�9�9��E�
�F��|����	�D�#�	�	�A�������=��2�9�9�$�?�?�@�@�@��}����
��s�
#�
#�C��%�����>��3�:�:�5�A�A�B�B�B��H�T�5�&�!�!�!�!�!r'��P�c�J�		ttjd��}n#ttf$rd}YnwxYw	ttjd��}n#ttf$rd}YnwxYw|dks|dkr�	tjtj�����}n1#tttf$rtj|��}YnwxYw|dkr|jp|d}|dkr|j
p|d}tj||f��S)N�COLUMNSr�LINESr�)r�rF�environr:rYrrI�
__stdout__r4�AttributeErrorr6�
terminal_size�columns�lines)�fallbackr�r��sizes    r(rr�sI���&��b�j��+�,�,�����j�!��������������B�J�w�'�(�(�����j�!�������������!�|�|�u��z�z�	.��'���(=�(=�(?�(?�@�@�D�D���
�G�4�	.�	.�	.��#�H�-�-�D�D�D�	.�����a�<�<��l�1�h�q�k�G��A�:�:��J�-�(�1�+�E�
��W�e�,�-�-�-s/�#�9�9�A�A3�2A3�0B4�4+C"�!C"c��tj�|��o4tj||��otj�|��Sr3)rFrlr�r(r�)rvr�s  r(�
_access_checkr��sD���G�N�N�2���
&�2�9�R��#6�#6�
&��G�M�M�"�%�%�%�'r'c���	tj����rt�|��r�SdSt	�t
��}|�[tj�dd��}|�9	tjd��}n##ttf$rtj}YnwxYw|sdS|rFtj|��}|�
tjtj����}n3tj|��}|�
tj��}t jdkr�tj}|rtj|��}||vr|�d|��tjd��pt*}d�|�
tj��D��}|rd�|D��}t-�fd�|D����r�g}n�fd	�|D��}n�g}t/��}|D]u}	tj�|	��}
|
|vrP|�|
��|D]8}tj�|	|��}t||��r|ccS�9�vdS)
N�PATH�CS_PATH�win32r�PATHEXTc��g|]}|�|��Sr&r&�r�r�s  r(r�zwhich.<locals>.<listcomp>�s��J�J�J�3�c�J�3�J�J�Jr'c�6�g|]}tj|����Sr&)rF�fsencoder�s  r(r�zwhich.<locals>.<listcomp>�s"��;�;�;�C�r�{�3�'�'�;�;�;r'c3��K�|]=}�����|�����V��>dSr3)�lowerr/�r�r��cmds  �r(�	<genexpr>zwhich.<locals>.<genexpr>sA�����D�D�S�s�y�y�{�{�#�#�C�I�I�K�K�0�0�D�D�D�D�D�Dr'c���g|]}�|z��Sr&r&r�s  �r(r�zwhich.<locals>.<listcomp>s���2�2�2�3�S�3�Y�2�2�2r')rFrlr[r�rirr��get�confstrr�rY�defpathr�r��pathseprrIr+rt�insert�getenv�_WIN_DEFAULT_PATHEXT�anyr�rnr]r�)
r�r�rl�	use_bytesrt�pathext_source�pathext�files�seen�dir�normdir�thefiler7s
`            r(rr�s�����
�w���s������d�#�#�	��J��t��3��&�&�I��|��z�~�~�f�d�+�+���<�
"��z�)�,�,����"�J�/�
"�
"�
"��z����
"�������t��&��{�4� � ���z�z�"�+�b�j�1�1�2�2����{�4� � ���z�z�"�*�%�%��
�|�w�������	)��[��(�(�F������K�K��6�"�"�"���9�-�-�E�1E��J�J�.�"6�"6�r�z�"B�"B�J�J�J���	<�;�;�7�;�;�;�G�
�D�D�D�D�G�D�D�D�D�D�	3��E�E�E�2�2�2�2�'�2�2�2�E�E�����5�5�D�� � ���'�"�"�3�'�'���$����H�H�W���� �
 �
 ���w�|�|�C��1�1�� ��t�,�,� ��K�K�K�K�K� ���4s�0B�B%�$B%)r)F)FN)rCrrNNNN)rrNNNNr)NNrrNNN)NN)r�)frFrIrmr��collectionsr:�zlibrVr9rGrW�lzmarXr7r�rrrbrkr+r0rMr�r�__all__r6rr rrr-r5r/r1rCrTr`rrsrwr{r	r
r�rrr
rr�r�stat_resultr�r�rrr�rr�supports_dir_fdr��supports_fdr�rr�avoids_symlink_attacksr"rr&r'r<rBrkrr�rrrrrr�rrr�r�r�r�r�rr��
namedtupler�r��__doc__r�r�r�rrr��F_OK�X_OKrr&r'r(�<module>rs�	���
�	�	�	�
�
�
�
�������������������K�K�K���O�O�������O�O�O�������J�J�J���N�N�������N�N�N�������K�K�K���O�O�������O�O�O������7�d�?��
�����7�g����L�L�L�L�
��
�I�I�I�&�5�{�{�I���7�2�z�*�*�O�s�|�/F�/F�w�/O�/O���7�7�7�5�,�7�7��?������	�	�	�	�	�G�	�	�	�@�@�@�@�@�E�@�@�@�;�;�;�;�;�w�;�;�;�6�6�6�6�6��6�6�6�0�0�0�0�0��0�0�0�&�&�&�&�&�I�&�&�&������	����
 � � �(>�>�>�@.:�����&����4�4�4�$E�E�E�R�R�R�+/�>�>�>�>�>�@+/�.�.�.�.�.�2�7�2�{���
�04�������0
�
�
�+/�H�H�H�H�H�T'+������$(,������"
�
�
�7<�@�@�@�@�D!&�d�%�&+�5�.2�.2�.2�.2�`�7�2�>�/�0�0�$�����������$�$�$�0�0�0�>>=�>=�>=�@�g�r�w��	�2�8�<��'�(�<��Z�2�>�1�<��W�� ;�;��
M-�d�M-�M-�M-�M-�M-�b!2���.�.�.�$"'�@�@�@�@�D���G�G�G�
���$���$LM�@D�D�D�D�D�L;<�@D�7�7�7�7�~
�m�0�1�%�t�-���
�D�!.�1E�0F� 2�D�!:��W��,�b�*�d�C��U���;�!.�1F�0G� 3�T�!;��W���8�!.�1C�0D� 0�$�!8��W�����H�H�H�H�*���KL�;?�=�=�=�=�@	�	�	�F�F�F�$CG�')�J�J�J�J�,���������<6:������(�h���-D�
E��h���Z�
8����
�4�!*�F� 3�_�b� 2� 4�O�G���5�!+�W� 5��� 3� 5�O�G���2�!*�F� 3�_�b� 0� 2�O�G�����..�d�..�..�..�..�..�b�7�2�y���!4��N�N�<� � � �.��.�w�8I�J�J��&<���#�%:���"�%:���"�
4�
4�
4�
4��
4��N�N�<� � � �.��.�w�8I�J�J��4�4�4�"�"�"�"�@+.�+.�+.�+.�b'�'�'�
�G�b�g�%�D�N�N�N�N�N�Ns-�#�-�-�9�A�A�A�A�A