403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.216.202
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python315/Lib/test/test_pathlib/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python315/Lib/test/test_pathlib/__pycache__/test_pathlib.cpython-315.opt-2.pyc
R
>lqj�sc��]PHs]PHs]PHs]PHs]PHs]PHs]PHs]PHs]PH s]PH$s	]PH(s
]PH,s]PH0s]PH4s
]QH4Gs]QH<Gs]QHDGs]QHDGs]QHDGsGsGs]QHDGs]QHDGs]QHDGs]Q	HDGs]Q
HlGsGsGs]PH~s]PH�s!]PH�s"]PH�s#Qs$\%2s&\%2s'\%2s(Qs)Q
s*Qs+QQ\
OX2s-QQ\
OX2s.QQ\
OX2s/QQ\/2s0QQ\/2s1QQ\/2s2QQ\/2s3QQ\
OX2s4\
Oj\OlQ6HQ 2Q!Q"\3\022s7\
Oj\OlQ6gQ#2Q$Q%\3\122s8Q&Q'\32s9Q(Q)\
OX2s:\;Q*6Xc\
Ox2P!P!\ cPsCKUh9h\ c	P9s!s"CK^h9h\ cPs#CKih9h)+�)�mock)�pathname2url)�
import_helper)�cpython_only)�
is_emscripten�is_wasi�	is_wasm32)�infinite_recursion)�	os_helper)�requires_root_user)�requires_non_root_user)�TESTFN�FS_NONASCII�FakePathc� ``�QnUU1QkoU!)c�:�[[OQV2g)zCross-device link)�OSError�errno�EXDEV)�self�targets&&�3C:\Python315\\Lib\test\test_pathlib\test_pathlib.py�new_replace�"patch_replace.<locals>.new_replace)s���e�k�k�#6��E�E�c�:�UOOoRUOmRU2VOmP!XOmh9h�N)�cls�replace)r�old_replacer�old_tests& ��r�new_test�patch_replace.<locals>.new_test,s?����h�h�&�&��&�����	+��T�N�*�H�H���{�H�H��s�A�A�)r r!rsf @r�
patch_replacer$(s���F�+��Orc�F�[OUO2U!r)�_tests_needing_posix�add�__name__��fns&r�needs_posixr+:s�����R�[�[�)�
�Irc�F�[OUO2U!r)�_tests_needing_windowsr'r(r)s&r�
needs_windowsr.?s�����r�{�{�+�
�Irc�F�[OUO2U!r)�_tests_needing_symlinksr'r(r)s&r�needs_symlinksr1Ds��������,�
�Irc�(`�\sQs]KsnQsQsUsP!)�UnsupportedOperationTestc��UO[O[2UO	[O2[2P!r)�assertIsSubclass�pathlib�UnsupportedOperation�NotImplementedError�assertIsInstance�rs&r�test_is_notimplemented�/UnsupportedOperationTest.test_is_notimplementedLs3�����g�:�:�<O�P����g�:�:�<�>Q�Rrr#)r(�
__module__�__qualname__�__firstlineno__r;�__static_attributes__�__classdictcell__��
__classdict__s@rr3r3Ks����S�Srr3c�2`�\sQs]Qsn\Q2sQsUsP!)�LazyImportTestc�:�[OQQQ.2P!)r6�glob�shutil)r�ensure_lazy_importsr:s&r�test_lazy_import�LazyImportTest.test_lazy_importRs���)�)�)�f�h�5G�Hrr#)r(r=r>r?rrJr@rArBs@rrErEQs�����I��IrrEc� `�\sQs][sn\O
s\OO\
2sQ,QINQ,QJN-sQs
QsQs\Q2sQsQs\Q	2sQ
sQsQsQ
sQs\Q2sQsQsQsQsQsQs Qs!Qs"Qs#Qs$Qs%Qs&Qs'Qs(QKQks)Qs*Q s+Q!s,Q"s-Q#s.\Q$2s/Q%s0\1Q&2s2\Q'2s3Q(s4Q)s5\Q*2s6Q+s7\Q,2s8Q-s9Q.s:Q/s;Q0s<\1Q12s=\Q22s>\1Q32s?\1Q42s@\1Q52sA\1Q62sB\1Q72sCQ8QL,Q9,QMNQ:,QNNQ;QO,Q<QPQQ,-sD\Q=2sE\Q>2sF\Q?2sG\Q@2sH\QA2sI\1QB2sJ\QC2sKQDsL\QE2sMQFsN\QG2sOQHsPUsQP!)R�PurePathTest�a/b�/b/c/dc���UO2OQ2P*oU[7c0UOO[
IcUO
Q2U[7c0UOO[
IcUO
Q2UOQ2oUOUmUOOUmUOOUm	P!)�.z#requires POSIX-flavoured path classz%requires Windows-flavoured path class�a)
�id�splitr&r�parser�	posixpath�skipTestr-�sep�altsep)r�name�ps&  r�setUp�PurePathTest.setUpqs����w�w�y���s�#�B�'���'�'�D�H�H�O�O�9�,L��M�M�?�@��)�)�d�h�h�o�o��.J��M�M�A�B��H�H�S�M���h�h����;�;�?�?����k�k�(�(��rc��`�QQ[2nUOoUU1QkU2oUOV2U2UOFD"oUO	[U2[2J$	P!)c��\sQs]�sQsP!)�5PurePathTest._check_str_subclass.<locals>.StrSubclassr#�r(r=r>r?r@r#rr�StrSubclassr`�s��rrbc3�@:�SF �DoRU2w�	J	P!3hrr#)�.0�xrbs& �r�	<genexpr>�3PurePathTest._check_str_subclass.<locals>.<genexpr>�s������1��A����s�)�strr�assertEqual�parts�assertIs�type)r�args�Pr[�partrbs&*   @r�_check_str_subclass� PurePathTest._check_str_subclass|s\���	�#�	��H�H��
�-��-�.������A�t�H�%��G�G�D��M�M�$�t�*�c�*�rc��UOP2UOQ2UOQ2UOQ2UOQ2P!)�rQrRza/b.txtz/a/b.txt�rpr:s&r�test_str_subclass_common�%PurePathTest.test_str_subclass_common�sH��� � ��$�� � ��%�� � ��%�� � ��+�� � ��,rc�\�UOQ2UOQ2UOQ2UOQ2UOQ2UOQ2UOQ2UOQ2UOQ2UOQ	2P!)
z.\a:b�c:�c:az	c:a\b.txt�c:\�c:\az
c:\a\b.txtz\\some\sharez\\some\share\az\\some\share\a\b.txtrtr:s&r�test_str_subclass_windows�&PurePathTest.test_str_subclass_windows�s���� � ��*�� � ��&�� � ��'�� � ��.�� � ��(�� � ��)�� � ��0�� � �!2�3�� � �!5�6�� � �!<�=rc��UOUoUO[U2UOQUO22P!��/)rrirhrrX)r�expectedrmr[s&&& r�
_check_str�PurePathTest._check_str�s4���H�H�d�O������Q���!1�!1�#�t�x�x�!@�Arc�@�QFDoUOV12J	P!�rR�rRrN�a/b/cr��/a/b�/a/b/c)r�)r�pathstrs& r�test_str_common�PurePathTest.test_str_common�s��C�G��O�O�G�Z�0�Drc��UOQ2oUO[U2Q2UOQ2oUO[U2Q2UOQ2oUO[U2Q2UOQ2oUO[U2Q2UOQ2oUO[U2Q	2P!)
r�za\b\czc:/a/b/czc:\a\b\c�//a/bz\\a\b\�//a/b/cz\\a\b\c�	//a/b/c/dz	\\a\b\c\d)rrirh�rr[s& r�test_str_windows�PurePathTest.test_str_windows�s����H�H�W�������Q���+��H�H�Z� ������Q���/��H�H�W�������Q���.��H�H�Y�������Q���/��H�H�[�!������Q��!1�2rc� �UO[OIc7[OQ6Xc[O
L[OoLUOoUOQ2oUO[U2U2P!��ntrR)	rr6�PurePath�osrZ�PureWindowsPath�
PurePosixPathrkrl�rr�r[s&  r�test_concrete_class� PurePathTest.test_concrete_class�sY���8�8�w�'�'�'�24�'�'�T�/�w�.�.�w�G\�G\�H��x�x�H��H�H�S�M���
�
�d�1�g�x�(rc��UO[OIc[oL5UO[OIc[
oL[OoUOQ2oUOUOU2P!�rR)
rr6r�rVr��ntpathr��pathrkrUr�s&  r�test_concrete_parser�!PurePathTest.test_concrete_parser�sX���8�8�w�,�,�,� �H�
�X�X��0�0�
0��H��w�w�H��H�H�S�M���
�
�a�h�h��)rc���UOQ2oUO[Ic[OQ2oL[O
Q2oUO
V2P!r�)rrUrVr6r�r��assertNotEqual�rr[�qs&  r�test_different_parsers_unequal�+PurePathTest.test_different_parsers_unequal�sI���H�H�S�M���8�8�y� ��'�'��,�A��%�%�c�*�A����A�!rc��UOQ2oUO[Ic[OQ2oL[O
Q2oUO
[29^tt^2V6PPP2UO
[29^tt^2V6*PPP2UO
[29^tt^2V6�PPP2UO
[29^tt^2V6�PPP2P!)%fhK�9h)%fhKy9h)%fhKb9h)%fhP!9hr�)rrUrVr6r�r��assertRaises�	TypeErrorr�s&  r� test_different_parsers_unordered�-PurePathTest.test_different_parsers_unordered�s����H�H�S�M���8�8�y� ��'�'��,�A��%�%�c�*�A�
�
�
�y�
)�
)�
�E�*�
�
�
�y�
)�
)�
�F�*�
�
�
�y�
)�
)�
�E�*�
�
�
�y�
)�
)�
�F�*�
)�
*�
)��
)�
)��
)�
)��
)�
)�
)�sH�1C>�D�D$�/D7�>D	�D	�D!	�D!	�$D4	�-D4	�7E	�E	c	���UOoU[Q22UOUUQ22UQ22UOUUQ2Q2UQ22UOUUQ2UQ22UQ22UOUUQ2UQ2UQ22U[Q222UOUUQ22UQ22P!)r�rR�brN�c�./a:b)rrri�rrns& r�test_constructor_nested�$PurePathTest.test_constructor_nested�s����H�H��	�(�7�
������1�S�6��A�c�F�+�����1�S�6�3���5��2�����1�S�6�1�S�6�*�A�e�H�5�����1�S�6�1�S�6�1�S�6�2�A�h�w�6G�4H�I�����1�W�:���'�
�3rc�D�[OQ2o[OQQ2oUOV2UOUOU2UOQ22UOUOU2UOQ22P!)zb/c:\d�b/zc:\dzb/c:/d)r6r�rir)r�p1�p2s&  r�'test_constructor_nested_foreign_flavour�4PurePathTest.test_constructor_nested_foreign_flavour�sv���
"�
"�9�
-��
�
"�
"�4��
1������ �������"��t�x�x��'9�:�������"��t�x�x��'9�:rc�d�UOOoUOOUO	QU22oUOVB2UOO9o%c?UOOUO	QU22oUOVB2P!P!r)rUrXr�_parse_pathrrirY)r�raw_pathr�rX�actualrYs&&*   r�_check_parse_path�PurePathTest._check_parse_path�s����k�k�o�o�����%�%�h�&6�&6�s�C�&@�A������*��[�[�'�'�'�6�'��X�X�)�)�(�*:�*:�3��*G�H�F����V�.�(rc��UOoUOOoUPPP,2UQPPQ,2UQPPQ,2UQPPQQ,2UQPPQQ,2UQPP,Q
N2UQPP,Q
N2UQPP,Q
N2UQPP,2UQ	PPQ,2UQ
PPQQ,2UQPPQ,2UQPUQQ,2P!)rsrR�a/rNr��a/b/za/b/c/dza/b//c/drQz././bza/./bza/./.r�)rRr�r��d)r�rUrX)r�checkrXs&  r�test_parse_path_common�#PurePathTest.test_parse_path_common�s����&�&���k�k�o�o��
�b�"�b�"�%�
�c�"�b�3�%�(�
�d�"�b�3�%�(�
�e�"�b�3��*�-�
�f�"�b�3��*�-�
�i�"�b�"6�7�
�j�"�b�"6�7�
�i�"�b�"6�7�
�c�"�b�"�%�
�g�"�b�3�%�(�
�g�"�b�3��*�-�
�g�"�b�3�%�(�
�f�"�c�C��:�.rc��UOP2oUO[U2Q2UOQQ2P!)rsrQ�rs)rrirhr�r�s& r�test_empty_path�PurePathTest.test_empty_paths1���H�H�R�L������Q���%�����U�#rc��UOoUQ2OUQ22oUOV!Q22P!�rNr�r�)r�joinpathri�rrnr[s&  r�test_join_nested�PurePathTest.test_join_nesteds7���H�H��
�e�H���a��f�%������A�g�J�'rc�x�UOoUQ2UQ2*oUOV!Q22P!r�)rrir�s&  r�test_div_nested�PurePathTest.test_div_nesteds1���H�H��
�e�H�q��v�������A�g�J�'rc�`�UOoQFCDoUOUQ59^tt^2UU2o[][O]*2FD�o[O
V42o[OU2oUOUOUO2UOVc2UO[U2[U22UO[U2[U22J�	PPP2CJ	P!)%fhCJ9h)rR�r�)rRr�rNr�r�r�r�za/b/c/)r�subTest�range�pickle�HIGHEST_PROTOCOL�dumps�loadsrk�	__class__ri�hashrh)rrnr�r[�proto�dumped�pps&      r�test_pickling_common�!PurePathTest.test_pickling_commons����H�H��S�G����g��.�.��g�J��"�1�f�&=�&=��&A�B�E�#�\�\�!�3�F����f�-�B��M�M�"�,�,����<��$�$�R�+��$�$�T�"�X�t�A�w�7��$�$�S��W�c�!�f�5�
C�/�.�T�.�.�.�s�CD	�D-
�$D-
c�x�Qo[OU2oUOU[O2P!)s2��'�pathlib._local��
PurePosixPath���)R�.)r�r�r9r6r�)r�datar[s&  r�test_unpicking_3_13� PurePathTest.test_unpicking_3_13%s.��L���L�L�������a��!6�!6�7rc	��QFD�oUOUQ59^tt^2UOU2oUOOo[	U2oUOVCQ*2UO
UQ2U[U2]*PoUO[U2UO22PPP2J�	P!)%fhJ�9h)rRr��(�)r�)r�rr�r(�repr�assertStartsWith�assertEndsWith�lenri�eval�as_posix)rr�r[�clsname�r�inners&     r�test_repr_common�PurePathTest.test_repr_common+s���C�G����g��.�.��H�H�W�%���+�+�.�.����G���%�%�a�3��7��#�#�A�s�+��#�g�,��*�R�0��� � ��e��a�j�j�l�;�/�.�D�.�.�.�s�BC	�C
�C
c��UOoUQ2oUOUO2Q2UO[OU2Q2P!)rN)rN)rr��
__fspath__r��fspathr�s&  r�test_fspath_common�PurePathTest.test_fspath_common7s>���H�H��
�e�H����������1�����	�	�!��h�/rc��UOoUO[29^tt^2UQ2PPP2UO[29^tt^2UQQ2PPP2UO[29^tt^2UQQ2PPP2UO[29^tt^2UQ2OQ2PPP2UO[29^tt^2UQ2Q*PPP2UO[29^tt^2QUQ2*PPP2UO[29^tt^2UQ2O	Q2PPP2UO[29^tt^2UQ2OQ2PPP2UO[29^tt^2UQ2O
Q2PPP2UO[29^tt^2UQ2OQ2PPP2UO[29^tt^2UQ2OQ2PPP2P!)%fhCKI9h)%fhCK.9h)%fhCK9h)%fhCK�9h)%fhCK�9h)%fhCK�9h)%fhCK9h)%fhCKV9h)%fhCK-9h)%fhCK9h)%fhP!9h)�ar�rR�b)	rr�r�r��match�relative_to�	with_name�	with_stem�with_suffixr�s& r�
test_bytes�PurePathTest.test_bytes=s���H�H��
�
�
�y�
)�
)�
�d�G�*�
�
�
�y�
)�
)�
�d�C�L�*�
�
�
�y�
)�
)�
�c�4�L�*�
�
�
�y�
)�
)�
�c�F�O�O�D�!�*�
�
�
�y�
)�
)�
�c�F�T�M�*�
�
�
�y�
)�
)��1�S�6�M�*�
�
�
�y�
)�
)�
�c�F�L�L���*�
�
�
�y�
)�
)�
�c�F���t�$�*�
�
�
�y�
)�
)�
�c�F���T�"�*�
�
�
�y�
)�
)�
�c�F���T�"�*�
�
�
�y�
)�
)�
�c�F���t�$�*�
)�)*�
)�
)��
)�
)�
)��
)�
)�
)��
)�
)�
)��
)�
)�
)��
)�
)�
)��
)�
)�
)��
)�
)�
)��
)�
)�
)��
)�
)�
)��
)�
)�
)�s��	I4�
J�
J�7J0�4K�)K�K,�L�L�L(�L<�4J	�=J	�J	�J	�J-	�%J-	�0K	�9K	�K	�
K	�K)	�!K)	�,K=	�5K=	�L	�	L	�L%	�L%	�(L9	�1L9	�<M
	�M
	c��UOoQoUO[U29^tt^2UQ2PPP2UO[U29^tt^2UQQ2PPP2UO[U29^tt^2UQQ2PPP2P!)%fhKr9h)%fhKU9h)%fhP!9h)z^argument should be a str or an os\.PathLike object where __fspath__ returns a str, not 'bytes'r�r�rRr�)r�assertRaisesRegexr�)rrn�messages&  r�test_bytes_exc_message�#PurePathTest.test_bytes_exc_messageVs����H�H��B��
�
#�
#�I�w�
7�
7�
�d�G�8�
�
#�
#�I�w�
7�
7�
�d�C�L�8�
�
#�
#�I�w�
7�
7�
�c�4�L�8�
7�	8�
7��
7�
7��
7�
7�
7�s5�	B!�
B4�
C�!B1	�*B1	�4C	�=C	�C	�C	c��[OUO2oUOoUO	[UQ22QU*Q*2P!)rNr�r�)r��fsencoderXrri�bytes)rrXrns&  r�test_as_bytes_common�!PurePathTest.test_as_bytes_commonas>���k�k�$�(�(�#���H�H������q��x��$��*�t�*;�<rc��UOoQFD)oUOUU2O2U2J+	P!r�)rrir�)rrnr�s&  r�test_as_posix_common�!PurePathTest.test_as_posix_commonfs3���H�H��C�G����Q�w�Z�0�0�2�G�<�Drc�T�UOoUOUQ2UQ22UOUQ2UQQ22UOUQ2UQ22UOUQ2UQ22UOUQ2U22UOUQ2UQ22UOU2UQ22UOU2P2UOU2-2UOU2[2P!)rNrRr�r�r�)rrir��intr�s& r�test_eq_common�PurePathTest.test_eq_commonls����H�H������5��1�U�8�,�����5��1�S�#�;�/����A�e�H�a��f�-����A�e�H�a��i�0����A�e�H�a�c�*����A�f�I�q��v�.����A�C��3��(����A�C��$����A�C��$����A�C��%rc�`�Ue
ROoUO2FCDKvq#UOQRO2oUOROQ2oVE6wc\SSTt,tFD4o[9PIc,U1QkU2DMJ	3LU1QkU22MJ6	to*oUOU12RO
U2oSFD�oROUoROV�QOU22RO[U2[U22RO[U2U2ROUO2U2J�	CJN	P!ttoh)Nr�c3�f:�SF �D!pOQRO2w�	J#	P!3hr)rrX)rdrors& �rrf�1PurePathTest.test_equivalences.<locals>.<genexpr>�s ��!���!�$�,�,�s�D�H�H�5�5�!�s�)1zfailed with args {})�equivalences�itemsrrX�tuple�appendrri�formatr�rhr�)	rr�k�tuples�canon�posix�t�pcanonr[s	f&       r�test_equivalences�PurePathTest.test_equivalencesys.������,�,�L�%�+�+�-�-�I�A��I�I�c�4�8�8�,�E��I�I�d�h�h��,�E��~��#�#�#���E�D�!�D�E�E�D�!�D�D�#�#����
�
�u�i�(��X�X�e�_�F����H�H�a�L��� � ��,A�,H�,H��,K�L�� � ��a��$�v�,�7�� � ��Q���/�� � �����u�5��.��#s�,E6
�>*E6
c��`�U1QkoROoUQ2oUQ2oUQ2oUQ2oUV42UV52UV62UVE2UVV2ROoUQ2oUQ2oUQ2oUQ2oUV42UV52UV62UVE2UVV2RO[29^tt^2U2-6PPP2P!)%fhP!9h)	c�N:�ROV2ROV2P!r)�
assertLess�
assertGreater�rRr�rs&&�rr)�5PurePathTest.test_ordering_common.<locals>.assertLess�s����O�O�A�!����q�$rrRrN�abcr��/ar�z/abcz/b)rr�r�)rr)rnrRr�r�r�sf      r�test_ordering_common�!PurePathTest.test_ordering_common�s����	%�
�H�H��
�c�F��
�e�H��
�e�H��
�c�F���1���1���1���1���1���H�H��
�d�G��
�f�I��
�f�I��
�d�G���1���1���1���1���1��
�
�
�y�
)�
)�
�C�"�H�*�
)�
)�
)�s�C#�#C4	�,C4	c��[U[O2%cUO2!UO	[
29^tt^2UO2ttPPP2!)%fhP!9hr)�
isinstancer6�Path�as_uri�assertWarns�DeprecationWarning)rr�s&&r�make_uri�PurePathTest.make_uri�sI���d�G�L�L�)�)��;�;�=� �
�
�
�0�
1�
1��;�;�=�2�
1�
1�
1�s�A*�*A;	�3A;	c�`�UOoUO[29^tt^2UOUQ22PPP2UO[29^tt^2UOU22PPP2P!)%fhKN9h)%fhP!9hr�)rr��
ValueErrorr7r�s& r�test_as_uri_common�PurePathTest.test_as_uri_common�sk���H�H��
�
�
�z�
*�
*��M�M�!�C�&�!�+�
�
�
�z�
*�
*��M�M�!�#��+�
*�+�
*��
*�
*�
*�s#�B	�(B�	B	�B	�B-	�%B-	c	��QFD�oUOUQ59^tt^2UOU2o[U2o[U[O
2oUO
UOUO2UOVB2UO[U2U2PPP2J�	P!)%fhJ�9h)rRr�r�)	r�rr�r�r6�__dict__rkr�ri)rr�r[r�r�s&    r�test_repr_roundtrips�!PurePathTest.test_repr_roundtrips�s���C�G����g��.�.��H�H�W�%����G����G�,�,�-���
�
�a�k�k�1�;�;�7�� � ��&�� � ��a��!�,�/�.�D�.�.�.�s�B	B9	�9C

�C

c���UOoUOUQ2OP2UOUQ2OP2UOUP2OP2P!)rNr��rri�driver�s& r�test_drive_common�PurePathTest.test_drive_common�sS���H�H������5�����,�����6����"�-�����2����b�)rc�@�UOoUOUQ2OQ2UOUQ2OQ2UOUQ2OQ2UOUQ2OQ2UOUQ2OQ2UOUQ2OQ2UOUQ2OQ2UOUQ2OP2P!)	rx�c:a/b�c:/�c:/a/b/r��\\a\b�//a/b/r�z./c:arBr�s& r�test_drive_windows�PurePathTest.test_drive_windows�s����H�H������4�����-�����7��)�)�4�0�����5�����.�����9��+�+�T�2�����7��)�)�:�6�����8��*�*�J�7�����;��-�-�z�:�����7��)�)�2�.rc�H�UOoUOoUOUP2OP2UOUQ2OP2UOUQ2OU2UOUQ2OU2P!)rsrNr�r�)rrXri�root)rrnrXs&  r�test_root_common�PurePathTest.test_root_common�st���H�H���h�h������2����R�(�����5�����+�����3����c�*�����6�����-rc��UOoUOUQ2OQ2UOUQ2OQ2P!)r�r�r��//�rrirOr�s& r�test_root_posix�PurePathTest.test_root_posix�s;���H�H������6�����-�����7����$�/rc��UOoUOUQ2OP2UOUQ2OP2UOUQ2OQ2UOUQ2OQ2UOUQ2OQ2UOUQ2OQ2UOUQ2OQ2P!)rxrGrH�\rIr�rKr�rTr�s& r�test_root_windows�PurePathTest.test_root_windows�s����H�H������4����r�*�����7����"�-�����5�����-�����9��*�*�D�1�����7����$�/�����8��)�)�4�0�����;��,�,�d�3rc���UOoUOUP2OP2UOUQ2OP2UOUQ2OQ2P!)rsrQz/a/b/.r�)rrirZr�s& r�test_name_empty�PurePathTest.test_name_empty�sU���H�H������2����R�(�����3����b�)�����8��)�)�3�/rc��UOoUOUP2OP2UOUQ2OP2P!)rsrQ)rri�stemr�s& r�test_stem_empty�PurePathTest.test_stem_empty�s;���H�H������2����R�(�����3����b�)rc�~�UOoUO[UQ2OQ2UO[UQ2OQ2UO[UQ2OQ2UO	[UQ2OQ22Q2UO	[UQ2OQ22Q2UO	UQ	2OQ2UQ
22UO	UQ	2OQ2UQ22P!)rx�d.xmlzc:\\z
\\My\SharerR�d:�.\d:�d:e�.\d:ezc:a\bzc:a\d:zc:a\d:e)rr�r:rrirhr�s& r�test_with_name_windows�#PurePathTest.test_with_name_windows�s����H�H�����*�a��h�&8�&8�'�B����*�a��j�&:�&:�G�D����*�a�
�&6�&@�&@�'�J�����Q�s�V�-�-�d�3�4�g�>�����Q�s�V�-�-�e�4�5�x�@�����8��.�.�t�4�a�	�l�C�����8��.�.�u�5�q��}�Erc��UOoUO[UP2OQ2UO[UQ2OQ2UO[UQ2OQ2UO[UQ2OP2UO[UQ2OQ2P!)rsrcrQr�rN)rr�r:rr�s& r�test_with_name_empty�!PurePathTest.test_with_name_emptys����H�H�����*�a��e�o�o�w�?����*�a��f�&6�&6��@����*�a��f�&6�&6��@����*�a��h�&8�&8�"�=����*�a��h�&8�&8�#�>rc�~�UOoUO[UQ2OQ2UO[UQ2OQ2UO[UQ2OQ2UO	[UQ2OQ22Q2UO	[UQ2OQ22Q2UO	UQ	2OQ2UQ
22UO	UQ	2OQ2UQ22P!)rxr�rHz
//My/SharerRrdrerfrgrGzc:a/d:zc:a/d:e)rr�r:rrirhr�s& r�test_with_stem_windows�#PurePathTest.test_with_stem_windows
s����H�H�����*�a��g�&7�&7��=����*�a��h�&8�&8�#�>����*�a��o�&?�&?��E�����Q�s�V�-�-�d�3�4�g�>�����Q�s�V�-�-�e�4�5�x�@�����7��-�-�d�3�Q�x�[�A�����7��-�-�e�4�a�	�l�Crc��UOoUO[UP2OQ2UO[UQ2OQ2UO[UQ2OQ2UO[UQ2OP2UO[UQ2OQ2P!)rsr�rQr�rN)rr�r:rr�s& r�test_with_stem_empty�!PurePathTest.test_with_stem_emptys����H�H�����*�a��e�o�o�s�;����*�a��f�&6�&6��<����*�a��f�&6�&6��<����*�a��h�&8�&8�"�=����*�a��h�&8�&8�#�>rc�`�UOoUOUQ2OQP	Q52UOUQ2OQP
Q52UOUQ2OQP	Q52UOUQ2OQP
Q52P!)�A.py�a.PY��case_sensitive�	c:/a/B.Py�	C:/A/*.pY�	/a/b/c.py�	/A/*/*.Py)r�assertFalse�
full_match�
assertTruer�s& r�test_full_match_case_sensitive�+PurePathTest.test_full_match_case_sensitive!s����H�H������6��-�-�f�T�-�J�K�����&�	�,�,�V�E�,�J�K�����;��2�2�;�t�2�T�U�����+��1�1�+�e�1�T�Urc��UOoUO[UQ2OP2UO[UQ2OQ2P!)rRrQ)rr�r:r�r�s& r�test_match_empty�PurePathTest.test_match_empty(s?���H�H�����*�a��f�l�l�B�7����*�a��f�l�l�C�8rc�H
�UOoUOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ	2OQ22UOUQ2OQ22UOUQ
2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ
2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQP	Q52UOUQ2OQP
Q52UOUQ2OQP	Q52UOUQ2OQP
Q52UOUP2OQ22UOUP2OQ22UOUP2OQ22P!)�b.pyza/b.pyz/a/b.pyza.pyzb/pyz/a.pyzb.py/cz*.pyzb.pyczb./pyzab/c.pyza*/*.pyz
/d/ab/c.pyz	/dab/c.pyz	ab/c.py/d�/b.py�/*.pyz/a/*.pyz/ab.pyrzz/**/*.pyz
/a/**/*.pyrtrurvrxryr{�*�**�**/*�rr~r�r|r�s& r�test_match_common�PurePathTest.test_match_common-s����H�H������&�	����/�0�����(��)�)�&�1�2�����)��*�*�6�2�3�����6�����0�1�����6�����0�1�����7��)�)�&�1�2�����8��*�*�6�2�3�����&�	����/�0�����(��)�)�&�1�2�����)��*�*�6�2�3�����7��)�)�&�1�2�����7��)�)�&�1�2�����8��*�*�6�2�3�����)��*�*�9�5�6�����,��-�-�i�8�9�����6�����3�4�����;��-�-�i�8�9�����;��-�-�i�8�9�����'�
�(�(��1�2�����6�����1�2�����8��*�*�7�3�4�����9��+�+�G�4�5�����)��*�*�9�5�6�����8��*�*�9�5�6�����;��-�-�i�8�9�����;��-�-�j�9�:�����+��,�,�\�:�;�����6�������E�F�����&�	����u��E�F�����;��-�-�k�$�-�O�P�����+��,�,�[��,�O�P�����2����S�)�*�����2����T�*�+�����2����V�,�-rc�l�UOoUOUQ2OQ22P!)rtru)rr|r�r�s& r�test_match_posix�PurePathTest.test_match_posixZs&���H�H������6�����0�1rc��UOoUOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ	2OQ
22UOUQ	2OQ22UOUQ2OQ22UOUQ
2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ	2OQ22P!)zc:/b.pyz*:/*.pyzc:/*.pyzd:/b.pyr�r�zc:*.pyzc:b.pyr�z//some/share/a.pyz
//*/*/*.pyz//some/share/*.pyz//other/share/a.pyz//some/share/a/b.pyzB.pyzb.PYrxryz//Some/Share/B.Pyz//somE/sharE/*.pYr�r�s& r�test_match_windows�PurePathTest.test_match_windows_sI���H�H������)��*�*�9�5�6�����)��*�*�9�5�6�����9��+�+�I�6�7�����6�����1�2�����6�����2�3�����6�����3�4�����8��*�*�7�3�4�����8��*�*�9�5�6�����7��)�)�(�3�4�����7��)�)�)�4�5�����-�.�4�4�\�B�C�����-�.�4�4�5H�I�J�����/�0�6�6�7J�K�L�����0�1�7�7�8K�L�M�����&�	����/�0�����+��,�,�[�9�:�����-�.�4�4�5H�I�J�����9��+�+�G�4�5�����9��+�+�H�5�6�����.�/�5�5�g�>�?rc��UOoUQPQQQ,2UQPQQQ,2UQPQQQ,2UQPPQ,2UQPPQ,2UQ	PPQ	,2P!)
r�rSrRr�z///a/br�z////a/bryr{z\a�r��rr�s& r�test_parse_path_posix�"PurePathTest.test_parse_path_posix{su���&�&��	�g��T�C��:�.�
�h��S�3��*�-�
�i��S�3��*�-�
�e��R�%��*�
�g��R�'��,�
�e��R�%��*rc���UOoUOUQ2UQ22UOUQ2UQ22UOUQ2UQ22P!)rN�A/br.z///a�//a)rr�rir�s& r�
test_eq_posix�PurePathTest.test_eq_posix�sS���H�H�����A�e�H�a��h�/�����4��!�F�)�,����A�d�G�Q�u�X�.rc�
�UOoUOUOUQ22Q2UOUOUQ22Q2UOUOUQ22Q2P!)r�zfile:///z/a/b.cz
file:///a/b.cz/a/b%#czfile:///a/b%25%23c)rrir7r�s& r�test_as_uri_posix�PurePathTest.test_as_uri_posix�sc���H�H��������q��v�.�
�;�������q��{�3�_�E�������q��|�4�6J�Krc	�.�]QHGoUOo[OQ2UOUOUQ22QU[OQ22*2P![
cSO
Q2Khh9h)r��quote_from_bytes�éz1\xe9 cannot be encoded to the filesystem encodingu/a/bézfile:///a/b)	�urllib.parser�rr�r�UnicodeEncodeErrorrWrir7)rr�rns&  r�test_as_uri_non_ascii�"PurePathTest.test_as_uri_non_ascii�sw��1��H�H��	P��K�K���	
������q��}�5�&�)9�"�+�+�f�:M�)N�N�	P��"�	P��M�M�N�O�	P�s�A5�5	B�?B�Bc��UOoUQQQ2oU[OQ22oUOV#2P!)rxrRr��c:\a\b)rr6r�ri)rrnr[r�s&   r�test_parse_windows_path�$PurePathTest.test_parse_windows_path�s<���H�H��
�d�C����
�w�&�&�z�2�
3������rr�ry�c:/arKr�c�>�UOUO2P!r)r%�windows_equivalencesr:s&r�test_equivalences_windows�&PurePathTest.test_equivalences_windows�s�����t�8�8�9rc�p�UOoUQQP,2UQQQ,2UQPQ,2UQQPQ,2UQQQQ,2UQPQQ,2UQQ	P,2UQ
QP,2UQQ
P,2UQQQ,2UQQQ,2UQQQQ,2UQQQ,QAN2UQQQQ,2UQQP,2UQQQ,2UQQQQ,2UQQP,2UQQ P,2UQ!Q"P,2UQ#Q$P,2UQ%Q&P,2UQ'Q(P,2UQ)Q*Q,2UQ+Q*Q,2UQ,Q*QQ,2UQ-Q.Q,2UQ/Q0Q,2UQ1Q2P,2UQ3Q4Q,2UQ5Q6P,2UQ7PPQ8,2UQ9PPQ9,2UQ:Q;PQ8,2UQ<Q;QQ8,2UQ=Q>PQQ?,2UQ@Q>QQQ?,2P!)BrxrHrXr�ryrRr�r.rSz\\r�z\\az//a/z\\a\r�rJrKr�r�zZ://b//c/d/zZ:r�z//b/c//dz\\b\cz//./c:z\\.\c:z//?/c:/z\\?\c:z//?/c:/az//?z\\?z//?/z\\?\z//?/UNCz\\?\UNC�//?/UNC/z\\?\UNC\z	//?/UNC/bz	\\?\UNC\bz
//?/UNC/b/z
\\?\UNC\b\z//?/UNC/b/cz\\?\UNC\b\cz//?/UNC/b/c/z
//?/UNC/b/c/dz//./BootPartition/z\\.\BootPartitionz//?/BootPartition/z\\?\BootPartitionz//./PhysicalDrive0z\\.\PhysicalDrive0z
//?/Volume{}/z\\?\Volume{}z//./nulz\\.\nulz./c:szc:szcc:szC:c:szC:zC:/c:szD:a/c:bzD:zc:bzD:/a/c:b)r�r�r�r�r�s& r�test_parse_path_windows�$PurePathTest.test_parse_path_windows�s<���&�&��
�d�T�2�r�2�
�e�T�4��4�
�c�R��r�2�
�e�T�2��u�5�
�f�T�4�#��7�
�d�R���u�5�
�d�V�R��4�
�e�W�b�"�5�
�f�Y��B�7�
�g�Z��r�:�
�h�Z��r�:�
�i�Z���u�=�
�m�T�4��A�
�j�Z���u�=�
�h�[�"�b�9�
�i�[�$��;�
�j�[�$���>�
�e�W�b�"�5�
�f�Y��B�7�
�i�\�2�r�:�
�j�^�R��<�
�k�_�b�"�=�
�l�%6��B�?�
�m�%7��r�B�
�n�%7��r�B�
�o�%7���u�E�
�"�%;�T�2�F�
�"�%;�T�2�F�
�"�%<�b�"�E�
�o�%6��b�A�
�i�\�2�r�:�
�g�R��e�W�5�
�f�R��f�X�6�
�g�T�2��w�7�
�h�T�4�%��9�
�i�T�2��U�|�<�
�j�T�4�#�u��>rc�@�UOoUOUQ2UQ22UOUQ2UQQQ22UOUQ2UQ22UOUQ2UQ22UOUQ2UQ22UOUQ2UQ22UOUQ	2UQ
22UOUQ2UQ22UOUQ
2UQ22P!)rGrxrRr�zd:a/b�c:/a/br�za/Br��C:a/B�c:A/b�//Some/SHARE/a/Bz//somE/share/A/buİui̇)rrir�r�s& r�test_eq_windows�PurePathTest.test_eq_windows�s����H�H������7��Q�w�Z�0�����7��Q�t�S�#�%6�7����A�g�J��'�
�3����A�g�J��(��4����A�f�I�q��{�3�����5��1�U�8�,�����7��Q�w�Z�0�����-�.��2D�0E�F�����8��a�	�l�3rc��UOoUO[29^tt^2UOUQ22PPP2UO[29^tt^2UOUQ22PPP2UO	UOUQ22Q2UO	UOUQ22Q2UO	UOUQ22Q2UO	UOUQ22Q	2UO	UOUQ
22Q2]QHGoU[O[22oUO	UOUQ
[*22QU*2UO	UOUQ[*22QU*2P!)%fhCK�9h)%fhCK�9h)r�rGrHzfile:///c:/zc:/a/b.czfile:///c:/a/b.cz	c:/a/b%#czfile:///c:/a/b%25%23cz
//some/share/zfile://some/share/z//some/share/a/b.czfile://some/share/a/b.cr�r�zfile:///c:/a/bz//some/share/a/b%#czfile://some/share/a/b%25%23c)
rr�r:r7rir�r�r�rr)rrnr��QUOTED_FS_NONASCIIs&   r�test_as_uri_windows� PurePathTest.test_as_uri_windows�s{���H�H��
�
�
�z�
*�
*��M�M�!�F�)�$�+�
�
�
�z�
*�
*��M�M�!�G�*�%�+�������q��x�0�-�@�������q��}�5�7I�J�������q��~�6�8O�P�������q��'9�:�<P�Q�������q�)=�'>�?�2�	4�	2�-�b�k�k�+�.F�G��������q��K�)?�'@�A�)�,>�>�	@�������q�)>��)L�'M�N�7�:L�L�	N�+�
*�
*��
*�
*�
*�s#�G%�(G9�%G6	�.G6	�9H
	�H
	c�&`�U1QkoROoUQ2oUQ2oUV42ROV462ROV46�2UQ2oUQ2oUV42ROV462ROV46�2P!)c�N:�ROV2ROV2P!r)�assertLessEqual�assertGreaterEqualr+s&&�r�assertOrderedEqual�>PurePathTest.test_ordering_windows.<locals>.assertOrderedEquals���� � ��&��#�#�A�)rr�r�z//some/Share/A/br�)rr|)rr�rnr[r�sf    r�test_ordering_windows�"PurePathTest.test_ordering_windows
s����	*�
�H�H��
�g�J��
�g�J���1� �������������
� �!��
� �!���1� ������������rc�p�UOoUOUP2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ2O22P!)rsrRr�r�r.�/a/b/r�r��rr|�is_absoluter~r�s& r�test_is_absolute_posix�#PurePathTest.test_is_absolute_posixs����H�H������2��*�*�,�-�����3��+�+�-�.�����6��.�.�0�1�����#��*�*�,�-�����$��+�+�-�.�����'�
�.�.�0�1�����%��,�,�.�/�����'�
�.�.�0�1rc���UOoUOU2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ	2O22UOUQ
2O22UOUQ2O22UOUQ2O22UOUQ
2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ2O22P!)rRr�r�r.r�rxryzc:a/b/rHr�rIrSr�r�rKr�r�r�z//?/UNC/spamr�r�s& r�test_is_absolute_windows�%PurePathTest.test_is_absolute_windows+s���H�H���������*�+�����3��+�+�-�.�����6��.�.�0�1�����3��+�+�-�.�����4��,�,�.�/�����7��/�/�1�2�����4��,�,�.�/�����5��-�-�/�0�����8��0�0�2�3�����%��,�,�.�/�����&�	�-�-�/�0�����)��0�0�2�3�����$��+�+�-�.�����%��,�,�.�/�����'�
�.�.�0�1�����(��/�/�1�2�����)��0�0�2�3�����+��2�2�4�5�����*�
�1�1�3�4�����.�)�5�5�7�8rc�:�UOoUQ2oUO[UO2UO[UOQ2UO	UOUP22UQ22UO	UOP2UQ22UO	UOUQ22UQ22UO	UOQ2UQ22UO	UOQ2UQ22UO	UOUQ22UP22UO	UOQ2UP22UO	UOUP2P	Q5UQ22UO	UOPP	Q5UQ22UO	UOUQ2P	Q5UQ22UO	UOQP	Q5UQ22UO	UOQP	Q5UQ22UO	UOUQ2P	Q5UP22UO	UOQP	Q5UP22UO	UOUQ2P	Q5UQ22UO	UOQP	Q5UQ22UO	UOUQ2P	Q5UQ	22UO	UOQP	Q5UQ	22UO	UOUQ
2P	Q5UQ22UO	UOQ
P	Q5UQ22UO[
UOUQ
22UO[
UOUQ22UO[
UOUQ22UO[
UOUQ22UO[
UOUQ
22UO[
UOUQ22UO[
UOUQ22UO[
UOUQ2P	Q5UO[
UOUQ2P	Q5UO[
UOUQ
2P	Q5UO[
UOUQ2P	Q5UO[
UOUQ2P	Q5UQ2oUO	UOUQ22UQ22UO	UOQ2UQ22UO	UOUQ22UQ22UO	UOQ2UQ22UO	UOQ2UQ22UO	UOUQ22UP22UO	UOQ2UP22UO	UOUQ2P	Q5UQ22UO	UOQP	Q5UQ22UO	UOUQ2P	Q5UQ22UO	UOQP	Q5UQ22UO	UOQP	Q5UQ22UO	UOUQ2P	Q5UP22UO	UOQP	Q5UP22UO	UOUQ2P	Q5UQ22UO	UOQP	Q5UQ22UO	UOUQ2P	Q5UQ	22UO	UOQP	Q5UQ	22UO	UOUQ2P	Q5UQ22UO	UOQP	Q5UQ22UO[
UOUQ22UO[
UOUQ22UO[
UOUQ22UO[
UOUP22UO[
UOP2UO[
UOUQ22UO[
UOUQ
22UO[
UOUQ22UO[
UOUQ22UO[
UOUP2P	Q5UO[
UOUQ2P	Q5UO[
UOUQ
2P	Q5UO[
UOUQ2P	Q5UO[
UOUQ2P	Q5P!)rNr�rRr�r���walk_up�a/cz../br��..r�z../a/br.z../aza/..z/a/..r�r��/a/�/a/cr��/c)rr�r�rrir:r�s&  r�test_relative_to_common�$PurePathTest.test_relative_to_commonEsQ���H�H��
�e�H�����)�Q�]�]�3����)�Q�]�]�D�9�������q��u�-�q��x�8�������r�*�A�e�H�5�������q��v�.��#��7�������s�+�Q�s�V�4�������t�,�a��f�5�������q��x�0�!�B�%�8�������u�-�q��u�5�������q��u�d��;�Q�u�X�F�������r�4��8�!�E�(�C�������q��v�t��<�a��f�E�������s�D��9�1�S�6�B�������t�T��:�A�c�F�C�������q��x���>��"��F�������u�d��;�Q�r�U�C�������q��x���>��&�	�J�������u�d��;�Q�v�Y�G�������q��z�4��@�!�D�'�J�������w���=�q��w�G�������q��v�t��<�a��k�J�������s�D��9�1�X�;�G����*�a�m�m�Q�s�V�<����*�a�m�m�Q�w�Z�@����*�a�m�m�Q�u�X�>����*�a�m�m�Q�t�W�=����*�a�m�m�Q�v�Y�?����*�a�m�m�Q�v�Y�?����*�a�m�m�Q�w�Z�@����*�a�m�m�Q�s�V�T��J����*�a�m�m�Q�t�W�d��K����*�a�m�m�Q�v�Y���M����*�a�m�m�Q�v�Y���M����*�a�m�m�Q�w�Z���N�
�f�I��������q��v�.��%��9�������s�+�Q�u�X�6�������q��w�/��3��8�������t�,�a��f�5�������u�-�q��v�6�������q��y�1�1�R�5�9�������v�.��"��6�������q��v�t��<�a��h�G�������s�D��9�1�U�8�D�������q��w���=�q��v�F�������t�T��:�A�c�F�C�������u�d��;�Q�s�V�D�������q��y�$��?��2��G�������v�t��<�a��e�D�������q��y�$��?��6��K�������v�t��<�a��i�H�������q��{�D��A�1�T�7�K�������x���>��$��H�������q��w���=�q��{�K�������t�T��:�A�h�K�H����*�a�m�m�Q�t�W�=����*�a�m�m�Q�x�[�A����*�a�m�m�Q�v�Y�?����*�a�m�m�Q�r�U�;����*�a�m�m�R�8����*�a�m�m�Q�s�V�<����*�a�m�m�Q�v�Y�?����*�a�m�m�Q�v�Y�?����*�a�m�m�Q�w�Z�@����*�a�m�m�Q�r�U�D��I����*�a�m�m�Q�s�V�T��J����*�a�m�m�Q�v�Y���M����*�a�m�m�Q�v�Y���M����*�a�m�m�Q�w�Z���Nrc���UOoUQ2oUOUOUQ22UQ22UOUOQ2UQ22UOUOUQ22UQ22UOUOQ2UQ22UOUOQ2UQ22UOUOUQ22U22UOUOQ2U22UOUOUQ2P	Q5UQ22UOUOQP	Q5UQ22UOUOUQ2P	Q5UQ22UOUOQP	Q5UQ22UOUOQP	Q5UQ22UOUOUQ2P	Q5U22UOUOQP	Q5U22UOUOUQ2P	Q5UQ	22UOUOUQ
2P	Q5UQ22UOUOUQ2P	Q5UQ
22UO[UOU22UO[UOP2UO[UOUQ22UO[UOUQ22UO[UOUQ22UO[UOUQ22UO[UOUQ22UO[UOUQ22UO[UOUQ
22UO[UOU2P	Q5UO[UOPP	Q5UO[UOUQ2P	Q5UO[UOUQ2P	Q5UO[UOUQ2P	Q5UO[UOUQ2P	Q5UO[UOUQ2P	Q5UQ2oUOUOUQ22UQ22UOUOQ2UQ22UOUOUQ22UQ22UOUOQ2UQ22UOUOQ2UQ22UOUOUQ22U22UOUOQ2U22UOUOUQ2P	Q5UQ22UOUOQP	Q5UQ22UOUOUQ2P	Q5UQ22UOUOQP	Q5UQ22UOUOQP	Q5UQ22UOUOUQ2P	Q5U22UOUOQP	Q5U22UOUOQP	Q5UQ22UOUOQP	Q5UQ	22UOUOQP	Q5UQ22UO[UOQ2UO[UOUQ22UO[UOUQ22UO[UOUQ22UO[UOUQ22UO[UOUQ22UO[UOUQ22UO[UOUQ22UO[UOUQ22UO[UOUQ22UO[UOUQ22UO[UOQP	Q5UO[UOUQ2P	Q5UO[UOUQ2P	Q5UO[UOUQ2P	Q5UO[UOUQ2P	Q5UO[UOUQ2P	Q5UO[UOUQ2P	Q5UO[UOUQ2P	Q5UQ2oUOUOUQ 22UQ22UOUOQ 2UQ22UOUOQ!2UQ22UOUOUQ"22UQ22UOUOQ"2UQ22UOUOQ#2UQ22UOUOUQ$22U22UOUOQ$2U22UOUOUQ 2P	Q5UQ22UOUOQ P	Q5UQ22UOUOQ!P	Q5UQ22UOUOUQ"2P	Q5UQ22UOUOQ"P	Q5UQ22UOUOQ#P	Q5UQ22UOUOUQ$2P	Q5U22UOUOQ$P	Q5U22UOUOUQ%2P	Q5UQ22UOUOQ%P	Q5UQ22UO[UOUQ&22UO[UOUQ'22UO[UOUQ(22UO[UOUQ)22UO[UOUQ&2P	Q5UO[UOUQ'2P	Q5UO[UOUQ(2P	Q5UO[UOUQ)2P	Q5P!)*�	C:Foo/BarrxzFoo/Bar�c:foO�Bar�c:foO/�	c:foO/baRr��
C:Foo/Bar/Bazr��	C:Foo/Bazz../Barz	C:Baz/Barz
../../Foo/Barrdr��Foo�/Foo�C:/Foo�
C:/Foo/BarrH�c:/foO�c:/foO/�
c:/foO/baR�C:/Bazz
../Foo/Bar�C:/Foo/Bar/Baz�
C:/Foo/Baz�C:Foo�d:/�//C/Foo�//Server/Share/Foo/Bar�//sErver/sHare�//sErver/sHare/�//sErver/sHare/Foo�//sErver/sHare/Foo/�//sErver/sHare/Foo/Barz//sErver/sHare/bar�/Server/Share/Foo�c:/Server/Share/Foo�
//z/Share/Foo�//Server/z/Foo)rrirr�r:r�s&  r�test_relative_to_windows�%PurePathTest.test_relative_to_windows�s����H�H��
�k�N��������q��w�/��9��>�������t�,�a�	�l�;�������q��z�2�A�e�H�=�������w�/��5��:�������x�0�!�E�(�;�������q��~�6���<�������{�3�Q�S�9�������q��w���=�q��|�L�������t�T��:�A�i�L�I�������q��z�4��@�!�E�(�K�������w���=�q��x�H�������x���>��%��I�������q��~�t��D�a�c�J�������{�D��A�1�3�G�������q��'9�4��H�!�D�'�R�������q��~�t��D�a��k�R�������q��~�t��D�a��FX�Y����*�a�m�m�Q�S�9����*�a�m�m�R�8����*�a�m�m�Q�t�W�=����*�a�m�m�Q�s�V�<����*�a�m�m�Q�u�X�>����*�a�m�m�Q�v�Y�?����*�a�m�m�Q�x�[�A����*�a�m�m�Q��5G�H����*�a�m�m�Q�{�^�D����*�a�m�m�Q�S�$��G����*�a�m�m�R���F����*�a�m�m�Q�t�W�d��K����*�a�m�m�Q�s�V�T��J����*�a�m�m�Q�u�X�t��L����*�a�m�m�Q�v�Y���M����*�a�m�m�Q�x�[�$��O�
�l�O��������q��x�0�!�I�,�?�������u�-�q��|�<�������q��{�3�Q�u�X�>�������x�0�!�E�(�;�������y�1�1�U�8�<�������q���7���=�������|�4�a�c�:�������q��x���>��)��M�������u�d��;�Q�y�\�J�������q��{�D��A�1�U�8�L�������x���>��%��I�������y�$��?��5��J�������q�����E�q�s�K�������|�T��B�A�C�H�������x���>��,��P�������'7���F��$��P�������|�T��B�A�h�K�P����*�a�m�m�T�:����*�a�m�m�Q�t�W�=����*�a�m�m�Q�x�[�A����*�a�m�m�Q�7G�5H�I����*�a�m�m�Q�|�_�E����*�a�m�m�Q�w�Z�@����*�a�m�m�Q�t�W�=����*�a�m�m�Q�u�X�>����*�a�m�m�Q�s�V�<����*�a�m�m�Q�v�Y�?����*�a�m�m�Q�y�\�B����*�a�m�m�T�4��H����*�a�m�m�Q�t�W�d��K����*�a�m�m�Q�w�Z���N����*�a�m�m�Q�t�W�d��K����*�a�m�m�Q�u�X�t��L����*�a�m�m�Q�s�V�T��J����*�a�m�m�Q�v�Y���M����*�a�m�m�Q�y�\�4��P�
�&�'��������q�)9�':�;�Q�y�\�J�������'7�8�!�I�,�G�������'8�9�1�Y�<�H�������q�)=�'>�?��5��J�������';�<�a��h�G�������'<�=�q��x�H�������q�)A�'B�C�Q�S�I�������'?�@�!�#�F�������q�)9�':�D��I�1�Y�<�X�������'7���F��)��U�������'8�$��G��9��V�������q�)=�'>���M�q�QV�x�X�������';�T��J�A�e�H�U�������'<�d��K�Q�u�X�V�������q�)A�'B�D��Q�ST�SV�W�������'?���N�PQ�PS�T�������q�)=�'>���M�q�Q]��_�������';�T��J�A�l�O�\����*�a�m�m�Q�7J�5K�L����*�a�m�m�Q�7L�5M�N����*�a�m�m�Q��5G�H����*�a�m�m�Q�7G�5H�I����*�a�m�m�Q�7J�5K�UY��Z����*�a�m�m�Q�7L�5M�W[��\����*�a�m�m�Q��5G�QU��V����*�a�m�m�Q�7G�5H�RV��Wrc�6�UOoUQ2oUO[UO2UO[UOQ2UO	UOUP222UO	UOP22UO	UOUQ222UO	UOQ22UO	UOUQ222UO	UOQ22UOUOUQ222UOUOUQ222UOUOUQ222UOUOUQ222UQ2oUO	UOUQ	222UO	UOQ	22UO	UOUQ222UO	UOQ22UO	UOQ
22UO	UOUQ222UO	UOQ22UOUOUQ222UOUOUQ222UOUOUQ
222UOUOUP222UOUOP22UOUOUQ222P!)rNr�rRr�r�r�r�r.r�r�r�r�r�r�)rr�r��is_relative_tor~r|r�s&  r�test_is_relative_to_common�'PurePathTest.test_is_relative_to_common�s����H�H��
�e�H�����)�Q�%5�%5�6����)�Q�%5�%5�t�<�����(�(��2��/�0�����(�(��,�-�����(�(��3��0�1�����(�(��.�/�����(�(��5��2�3�����(�(��/�0�����)�)�!�C�&�1�2�����)�)�!�G�*�5�6�����)�)�!�E�(�3�4�����)�)�!�D�'�2�3�
�f�I������(�(��3��0�1�����(�(��-�.�����(�(��4��1�2�����(�(��.�/�����(�(��/�0�����(�(��6��3�4�����(�(��0�1�����)�)�!�D�'�2�3�����)�)�!�H�+�6�7�����)�)�!�F�)�4�5�����)�)�!�B�%�0�1�����)�)�"�-�.�����)�)�!�C�&�1�2rc�v�UOoUQ2oUOUOUQ222UOUOQ22UOUOUQ222UOUOQ22UOUOQ22UOUOUQ222UOUOQ22UOUOU222UOUOP22UOUOUQ222UOUOUQ222UOUOUQ222UOUOUQ222UOUOUQ	222UOUOUQ
222UOUOUQ222UQ2oUOUOUQ
222UOUOUQ222UOUOQ22UOUOUQ222UOUOQ22UOUOQ22UOUOUQ222UOUOUQ222UOUOUQ222UOUOUQ222UOUOUQ222UOUOUQ222UOUOUQ222UOUOUQ222UOUOUQ222UQ2oUOUOUQ222UOUOQ22UOUOQ22UOUOUQ222UOUOQ22UOUOQ22UOUOUQ222UOUOQ22UOUOUQ222UOUOUQ222UOUOUQ222UOUOUQ 222P!)!r�rxr�r�r�rdr�r�r�r�r�r�r�rHr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�)rr~r�r|r�s&  r�test_is_relative_to_windows�(PurePathTest.test_is_relative_to_windowss����H�H��
�k�N������(�(��4��1�2�����(�(��.�/�����(�(��7��4�5�����(�(��1�2�����(�(��2�3�����(�(��;��8�9�����(�(��5�6�����)�)�!�#�.�/�����)�)�"�-�.�����)�)�!�D�'�2�3�����)�)�!�C�&�1�2�����)�)�!�E�(�3�4�����)�)�!�F�)�4�5�����)�)�!�H�+�6�7�����)�)�!�O�*<�=�>�����)�)�!�K�.�9�:�
�l�O������(�(��5��2�3�����(�(��8��5�6�����(�(��3�4�����(�(��<��9�:�����(�(��6�7�����)�)�$�/�0�����)�)�!�H�+�6�7�����)�)�!�,<�*=�>�?�����)�)�!�L�/�:�;�����)�)�!�G�*�5�6�����)�)�!�D�'�2�3�����)�)�!�E�(�3�4�����)�)�!�C�&�1�2�����)�)�!�F�)�4�5�����)�)�!�I�,�7�8�
�&�'������(�(��+;�)<�=�>�����(�(�)9�:�;�����(�(�):�;�<�����(�(��+?�)@�A�B�����(�(�)=�>�?�����(�(�)>�?�@�����(�(��+C�)D�E�F�����(�(�)A�B�C�����)�)�!�,?�*@�A�B�����)�)�!�,A�*B�C�D�����)�)�!�O�*<�=�>�����)�)�!�,<�*=�>�?r)rYrUrX)
)rRr�)r�r�)rRr�)r�r�)r�)za//b)za//b//)rsrRr�)rRrsr�)rRr�rs))rR�/b/cr�)r.rr�)r�r�rszc/d)r�rszb/c/d)rsrOr)r�))rxrR)rxr�)rQrxrR))rHrR)rxr�rR)rxr.)z/zrHrR)z//x/yrHrR)r�)r�r�)rKr�)Rr(r=r>r?r6r�rr�r��realpathr
�baserr\rprur.r|r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr	rrrr%r/r7r;r?rDrLrPr+rUrYr\r`rhrkrnrqrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr@rArBs@rrMrM[s9����
�
�
�C��7�7���F�#�D�
	��	���L�	)�
+�-��
>��
>�B�1��
3��
3�)�*�"�
�4��;��;�/�/�"$�(�
(�
6�8�
<�0�%�2	�=�
=�&�6�(�8!��	-�*��	/��	/�.��0��0��4��4�0�*�
�	F��	F�?��	D��	D�?�V�9�
+.�Z�2��2��@��@�6�
+��
+��/��/��L��L��P��P�� �� �	�:��
�>���	�J�.���O�����:��:��.?��.?�`�4��4��N��N�(� �� �"�	2��	2��9��9�2IO�V�gX��gX�R3�@�3@��3@rrMc�0�\sQsQs\O
sQsP!)�PurePosixPathTestiQr#)r(r=r>r?r6r�rr@r#rrrrQs
��
�
�
�Crrc�0�\sQsQs\O
sQsP!)�PureWindowsPathTestiUr#)r(r=r>r?r6r�rr@r#rrr
r
Us
��
�
!�
!�Crr
c�F�\sQsQsQQ\O
2sPsQsP!)�PurePathSubclassTestiYc��\sQsQsQsP!)�PurePathSubclassTest.clsiZr#rar#rrrrZ���rrr#)	r(r=r>r?r6r�rr?r@r#rrrrYs��
�g���
� �rrc��``�\sQsQsn\O
s\O2sU1Qks	Qs
QsQsQs
QsQsQ	sQ
sQsQsQ
s\O,\PIQQ5Q2s\O,\Q2Q2sQsQsQsQs\Q2s \Q2s!\ODQ2s#\Q2s$\Q2s%\Q2s&\Q2s'\Q2s(\Q2s)\Q 2s*\Q!2s+\Q"2s,\Q#2s-\Q$2s.\Q%2s/Q&s0\O,\1OdQ'6H9%f\1OdQ(6HQ)2\3Q*22s4Q+s5\ODQ,2s6\Q-2s7\Q.2s8\Q/2s9\Q02s:\Q12s;Q2s<\=Q32s>Q4s?\=Q52s@Q6sA\=Q72sBQ8sCQ9sD\=Q:2sEQ;sF\=Q<2sGQ=sHQ>sI\=Q?2sJ\=\Q@22sK\=\QA22sL\=\QB22sM\=\QC22sN\=\QD22sOQEsP\=QF2sQQGsR\=QH2sS\QI2sT\QJ2sU\QK2sVQLsWQ�QMksX\X9sYsZ\QN2s[\QO2s\QPs]\^\QQ22s_QRs`\QS2sa\O,\b\cQT2QU2QV2sd\O�QW2sf\^\O�QX22sgQYsh\O�\QZ2Q[2sj\O�\QZ2\kQ\22slQ]sm\O�\nQ^2Q_2so\O�\nQ^2\kQ`22spQasqQbsrQcssQdstQesuQfsv\Qg2sw\Qh2sx\O,\1OdQi*Qj6HQk2\O�\O�Ql222sz\{Qm2s|\{Qn2s}\O�\b\cQo2Qp2\O,\1OdQq6HQr2Qs22s~Qts\COQu2s�\O,\b\cQv2Qw2Qx2s�Qys�Qzs�Q{s�Q|s�Q}s�Q~s�Qs�Q�s�Q�s�\{Q�2s�Q�s�Q�s�Q�s�\O,\�9%f\Q�2\O,\1OdQ�6HQ�2Q�22s�\O,\�9%f\Q�2\O,\1OdQ�6HQ�2Q�22s�\O,\�9%f\Q�2\O,\1OdQ�6HQ�2Q�22s�\O,\�9%f\Q�2\O,\1OdQ�6HQ�2Q�22s�\O,\�9%f\Q�2\O,\1OdQ�6HQ�2Q�22s�\Q�2s�\O,\b\cQ�2Q�2Q�2s�Q�s�Q�s�Q�s�\Q�2s�Q�s�Q�s�\Q�2s�\Q�2s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�\O�\b\cQo2Q�2\O,\1OdQq6HQr2Q�22s�Q�s�\O�\b\�Q�2Q�2\O,\�Q�2\O,\Q�2Q�222s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�\Q�2s�\^Q�2s�\{Q�2s�Q�s�Q�s�Q�s�Q�s�Q�s�\Q�2s�\O,\Q�2Q�2s�Q�s�Q�s�\Q�2s�\Q�2s�Q�s�\^Q�2s�\{Q�2s�\Q�2s�\Q�2s�\Q�2s�\^Q�2s�\O,\�Q�2\^Q�22s�\^Q�2s�\O,\�Q�2\^Q�22s�\O�\b\Q�2Q�2\O,\1OdQq6HQ�2\^Q�222s�\O,\1OdQ�6gQ�2\^Q�22s�\^Q�2s�\^Q�2s�\{Q�2s�\{Q�2s�\{Q�2s�\{Q�2s�\{Q�2s�\{Q�2s�Q�s�Us�U9s�!)��PathTestiec��:�UO2OQ2P*oU[7c$UO%fUO	Q2[
RU_2[OUO2[O[OOUOQ22[O[OOUOQ22[O[OOUOQ22[O[OOUOQQ22[O[OOUOQ22[[OOUOQ2Q29^tt^2oUOQ	2PPP2[[OOUOQQ
2Q29^tt^2oUOQ2PPP2[[OOUOQQ2Q29^tt^2oUOQ
2PPP2[[OOUOQQ2Q29^tt^2oUOQ2PPP2[[OOUOQQQ2Q29^tt^2oUOQ2PPP2[O[OOUOQ2]2UO%Cc�[OQ[OOUOQ22[OQ[OOUOQ22[OQ[OOUOQ2P	Q5[O[OOQQ2[OOUOQQ2P	Q5[O[OOQQ2[OOUOQQ2P	Q5[OQ[OOUOQ22P!P!)%fhCK�9h)%fhCK?9h)%fhCK�9h)%fhCK�9h)%fhCKu9h)rQ�requires symlinks�dirA�dirB�dirC�dirD�dirE�fileA�wbsthis is file A
�fileBsthis is file B
�fileCsthis is file C
�	novel.txtsthis is a novel
�fileDsthis is file D
�linkA�non-existing�
brokenLink�linkB��target_is_directoryr��linkC�linkD�brokenLinkLoop)rSrTr0�can_symlinkrW�superr\r��mkdirrr��join�open�write�chmod�symlink)rrZ�fr�s&  �rr\�PathTest.setUpjsm����w�w�y���s�#�B�'���*�*�4�3C�3C�3C��M�M�-�.�
��
��
�������
��������d�i�i��0�1�
��������d�i�i��0�1�
��������d�i�i��0�1�
��������d�i�i���8�9�
��������d�i�i��0�1�
�"�'�'�,�,�t�y�y�'�2�D�
9�
9�Q�
�G�G�'�(�:�
�"�'�'�,�,�t�y�y�&�'�:�D�
A�
A�Q�
�G�G�'�(�B�
�"�'�'�,�,�t�y�y�&�'�:�D�
A�
A�Q�
�G�G�'�(�B�
�"�'�'�,�,�t�y�y�&�+�>��
E�
E��
�G�G�(�)�F�
�"�'�'�,�,�t�y�y�&�&�'�B�D�
I�
I�Q�
�G�G�'�(�J�
��������d�i�i��0�!�4������J�J�w������T�Y�Y�� @�A��J�J�~�r�w�w�|�|�D�I�I�|�'L�M��J�J�v��w�w�|�|�D�I�I�w�7�+/�
1�
�J�J�r�w�w�|�|�D�&�1��w�w�|�|�D�I�I�v�w�?�+/�
1�
�J�J�r�w�w�|�|�D�&�1��w�w�|�|�D�I�I�v�w�?�+/�
1�
�J�J�'������d�i�i�AQ�)R�S��:�
9�
9��
A�
A�
A��
A�
A�
A��
E�
E�
E��
I�
I�
I�sZ�8V�V�&V+�=V?�W�V	�V	�V(	� V(	�+V<	�4V<	�?W	�W	�W$	�W$	c���[O[OOUOQ2Q2[
OUO2P!)r�)r�r.r�r+rr
�rmtreer:s&r�tearDown�PathTest.tearDown�s5��
��������d�i�i��0�%�8�������#rc���UO[29^tt^2oUU-U@PPP2UOWOO[O
2P!)%fhKF9hr)r��FileNotFoundErrorri�	exceptionr�ENOENT)r�funcrm�kwargs�cms&&*, r�assertFileNotFound�PathTest.assertFileNotFound�sO��
�
�
�0�
1�
1�R��$�!�&�!�2�������+�+�U�\�\�:�2�
1�s�
A'�'A7	�0A7	c�p�UOOoUOUU2UU22P!r)rU�normcaseri)r�path_a�path_brAs&&& r�assertEqualNormCase�PathTest.assertEqualNormCase�s+���;�;�'�'������&�)�8�F�+;�<rc���[O[OQ[O
2Q52oUO
[OU2U!)z-dirD)�suffix�dir)r
�	_longpath�tempfile�mkdtempr��getcwd�
addCleanupr4)rr�s& r�tempdir�PathTest.tempdir�sE������ 0� 0��57�Y�Y�[�!B�
C�����	�(�(�!�,��rc�|�[[OO2Tt.tFDp]*Q6wfJUjJ	ooSFDloUQ6XcJ[	UO
U2o[	[OOU2oUO
UOUO2Jn	P!ttoh)r�_rU)rHr6�types�
_WritablePath�getattrrri�__doc__)rrZ�
path_names�	attr_name�our_attr�	path_attrs&     r�$test_matches_writablepath_docstrings�-PathTest.test_matches_writablepath_docstrings�s���'*�7�=�=�+F�+F�'G�Z�'G�t�PQ�7�VY�>�d�d�'G�
�Z�#�I��H�$���t�x�x��3�H���
�
� ;� ;�Y�G�I����X�-�-�y�/@�/@�A�$��[s
�B9�B9c� �UO[OIc7[OQ6Xc[O
L[OoLUOoUOQ2oUO[U2U2P!r�)	rr6r3r�rZ�WindowsPath�	PosixPathrkrlr�s&  rr��PathTest.test_concrete_class�sW���8�8�w�|�|�#�.0�g�g��o�w�*�*�7�CT�CT�H��x�x�H��H�H�S�M���
�
�d�1�g�x�(rc���UOO[OIcUO	Q2P!UO[OUO2P!)zpath parser is supported)rrUr�r�rWr�r6r7r:s&r�test_unsupported_parser� PathTest.test_unsupported_parser�s=���8�8�?�?�b�g�g�%��M�M�4�5����g�:�:�D�H�H�Erc�@�UO[O22oUOV2UO	[U2[U22UO
[U2[U22UOUO22P!r)
rr�rLrirDrhrkrlr~r�r�s&& r�	_test_cwd�PathTest._test_cwd�sd���H�H�R�Y�Y�[�!�������� � ��Q���Q��0��
�
�d�1�g�t�A�w�'�����
�
��(rc�^�UOO2oUOU2P!r)r�cwdrdr�s& r�test_cwd�PathTest.test_cwd�s���H�H�L�L�N�����q�rc��UOo[OQ29^tt^2oUOUmUO[
U2O22UO2UO[
UQ2O22UO2UO[
UQ2O22[OOUOQ22UO[
UQQQ2O22[OOUOQQQ22UO[
UQQ2O22[OOUOQQ22UO[
UQ2O22[OOUOQ22UO[
UQ2O22[OOUOQ22UO[
UQ	2O22[OOUOQ	22UO[
UQQ	2O22[OOUOQQ	22UO[
UQ	Q2O22[OOUOQ	Q22PPP2P!)%fhP!9h)
�	os.getcwdrQrRr�r�r"rr!r'r�)rr�patchr�return_valuerirh�absoluter�r�r+)rrnrLs&  r�test_absolute_common�PathTest.test_absolute_common�sK���H�H��
�Z�Z��
$�
$��"&�)�)�F��
���S������0�$�)�)�<����S��3����!2�3�T�Y�Y�?����S��3����!2�3�R�W�W�\�\�$�)�)�S�5Q�R����S��3��S�!1�!:�!:�!<�=�r�w�w�|�|�D�I�I�WZ�\_�ad�?e�f�
���S��7�G�!4�!=�!=�!?�@�"�'�'�,�,�t�y�y�Za�cj�Bk�l����S��<��!9�!9�!;�<�b�g�g�l�l�4�9�9�Vb�>c�d����S��#3�!4�!=�!=�!?�@�"�'�'�,�,�t�y�y�Zj�Bk�l�
���S��4��!1�!1�!3�4�b�g�g�l�l�4�9�9�d�6S�T����S��3���!6�!6�!8�9�2�7�7�<�<��	�	�SV�X\�;]�^����S��4���!6�!6�!8�9�2�7�7�<�<��	�	�SW�Y\�;]�^�#%�
$�
$�
$�s�MM;�;N	�N	c�T�UO[OOQ22oUO	V2UO[
U2[
U22UO[U2[U22UOUO22P!)�~)rr�r��
expanduserrirDrhrkrlr~r�r�s&& r�
_test_home�PathTest._test_home�sm���H�H�R�W�W�'�'��,�-�������� � ��Q���Q��0��
�
�d�1�g�t�A�w�'�����
�
��(rz(Test requires pwd module to get homedir.)�reasonc�F�[O29^tt^2oUOUOO	22UO2[OOUOQ2UQ$UOUOO	22[OOUOQ2UQ$UOUOO	22PPP2P!)%fhP!9h)�userprofile�USERPROFILE�home�HOME)
r
�EnvironmentVarGuardrtrrz�clearr�r�r+r)r�envs& r�	test_home�PathTest.test_home�s����
*�
*�
,�
,���O�O�D�H�H�M�M�O�,��I�I�K�!#�����d�i�i��!G�C�
���O�O�D�H�H�M�M�O�,��'�'�,�,�t�y�y�&�9�C��K��O�O�D�H�H�M�M�O�,�-�
,�
,�
,�s�C&D�D 	�D 	zWASI has no user accounts.c���UOoUQ2oUOUO2U[OOQ222UQ2oUOUO2U2UQ2oUOUO2U2UQ2oUOUO2U2UUP2O2O2Q*oUOUO2U2UQ2oUOUO2U[OOQ2Q22P!)rr�foo�/~�../~z~/a:br�)rrirsr�r�rn�anchorr�s&  r�test_expanduser_common�PathTest.test_expanduser_common�s���H�H��
�c�F����������2�7�7�+=�+=�c�+B�)C�D�
�e�H����������+�
�d�G����������+�
�f�I����������+�
�a��e�n�n��%�%�&��,����������+�
�g�J����������2�7�7�+=�+=�c�+B�G�)L�Mrc��QQUO2oUUO]*Q5oUO]*UO2O2UO]*UO2O2[%f:UO]*UOQ2O2O2UO]*UQ*OUQ*2O2UO]*UQ*OUQ*2O2UO%c2UO]*UQ*O2O2UO2FDoUO]*UO2J!	UOQ2FDoUO]*UO2J!	UOQ2FDoUO]*UO2J!	UO!2FD"vqEoUO]*UO2J$	P!)c�:``�\sQsQsnU1QksQsQsUsU9s!)�&PathTest.test_with_segments.<locals>.Pic�4:�[RU_UVmP!r)r)�__init__�
session_id)rr��pathsegmentsr�s&$*�rr��/PathTest.test_with_segments.<locals>.P.__init__s����� �,�/�",�rc�<�[U2UQUO-!�r�)rlr�)rr�s&*r�
with_segments�4PathTest.test_with_segments.<locals>.P.with_segments
s���D�z�<�L�D�O�O�L�Lrr�)	r(r=r>r?r�r�r@rA�
__classcell__�r�rCs@@rrnr�s����
-�
M�
Mrrnr�rrrrrr�)rrrirnr��resolverr�rs�renamerr(�readlink�iterdirrG�rglob�walk)rrnr[r��dirpath�dirnames�	filenamess&      r�test_with_segments�PathTest.test_with_segmentss���	M����	M�
�d�i�i�B�'������Q�Z�Z�\�4�4�5�����Q�Y�Y�[�3�3�4��w����R�����!5�!@�!@�!B�!M�!M�N�����a�'�k�1�1�!�g�+�>�I�I�J�����a�'�k�2�2�1�w�;�?�J�J�K��������R�!�g�+�!7�!7�!9�!D�!D�E��I�I�K�D����R����1� ��F�F�3�K�D����R����1� ��G�G�C�L�D����R����1�!�,-�F�F�H�(�G�y����R��!3�!3�4�-5rc�L�UOUO2oUQ*OQ29^tt^2oUOU[O
2UO
UO2Q2PPP2UQ*OQ29^tt^2oUOU[O2UO
UO2O2Q2PPP2P!)%fhK�9h)%fhP!9h)rr�zthis is file A
�rb�this is file A)
rrr,r9�io�
TextIOBaseri�read�BufferedIOBase�strip�rr[r0s&  r�test_open_common�PathTest.test_open_commons����H�H�T�Y�Y����'�k�
�
��
$�
$���!�!�!�R�]�]�3����Q�V�V�X�'9�:�%��'�k�
�
��
%�
%���!�!�!�R�%6�%6�7����Q�V�V�X�^�^�-�/@�A�&�
%�%�
$��&�
%�
%�s%�AC?�&AD�?D	�D	�D#	�D#	c�X�UOUO2oUQ*OQ]Q59^tt^2oUOU[O
2UO
UO2O2Q2PPP2P!)%fhP!9h)rr�)�	bufferingr�)	rrr,r9r��	RawIOBaserir�r�r�s&  r�test_open_unbuffered�PathTest.test_open_unbuffered'sq���H�H�T�Y�Y����'�k�
�
���
�
2�
2�a��!�!�!�R�\�\�2����Q�V�V�X�^�^�-�/@�A�3�
2�
2�
2�s�AB�B)	�!B)	c��UOUO2oUQ*o[[Q2%c;[OU[
O[
O*2[[Q2%c<[[
Q2%c&[OU[
O2UO2oUQ*oUOUP	Q5UOUO22UOUO2UO22UO2oUOUO UO 2UOUO"UO"2UOUO$UO$2[UQ2%c)UOUO&UO&2P!P!)rr.�chflags�	UF_NODUMP�copyA��preserve_metadata�st_flags)rr�hasattrr�r.�stat�S_IRWXU�S_IRWXOr�r��copyr~�existsri�	read_textr��st_atime�st_mtime�st_moder��rr�source�	source_str�	target_sts&     r� test_copy_file_preserve_metadata�)PathTest.test_copy_file_preserve_metadata-sU���x�x��	�	�"�������2�w����H�H�V�T�\�\�D�L�L�8�9��2�y�!�!�g�d�K�&@�&@��J�J�v�t�~�~�.��K�K�M�	��������F�d��3�����
�
��(�����)�)�+�V�-=�-=�-?�@��K�K�M�	����Y�/�/��1C�1C�D����Y�/�/��1C�1C�D�����*�*�I�,=�,=�>��9�j�)�)����Y�/�/��1C�1C�D�*rc��UOUO2oUQ*Q*oUQ*oUQ*oUOU2oUOVS2UO	UO22UO	UO
22UO	UO22UOUO
22UOUO2UO22P!)rrrr�	rrr�rir~r��
is_symlinkr|r��rrr�r�real_target�results&     r�"test_copy_file_to_existing_symlink�+PathTest.test_copy_file_to_existing_symlink@s����x�x��	�	�"������(�������W�n�����V�$������(�����
�
��(�����)�)�+�,�����*�*�,�-�����/�/�1�2�����)�)�+�[�-B�-B�-D�Erc��UOUO2oUQ*Q*oUQ*oUQ*oUOUP
Q5oUOVS2UO	UO22UO	UO
22UO	UO22UOUO
22UOUO2UO22P!)rrrr��follow_symlinksr�r�s&     r�8test_copy_file_to_existing_symlink_follow_symlinks_false�APathTest.test_copy_file_to_existing_symlink_follow_symlinks_falseNs����x�x��	�	�"������(�������W�n�����V�U��;������(�����
�
��(�����)�)�+�,�����*�*�,�-�����/�/�1�2�����)�)�+�[�-B�-B�-D�Erc��UOUO2oUQ*o[OUQQ2UQ*oUO	UP	Q5UO[OUQ2Q2P!)r�user.foo�42r�r�)rrr��setxattrr�ri�getxattr�rrr�rs&   r�'test_copy_file_preserve_metadata_xattrs�0PathTest.test_copy_file_preserve_metadata_xattrs\sa���x�x��	�	�"������
���F�K��/��������F�d��3�������V�[�9�5�Arc�~�UOUO2oUQ*oUQ*oUOU2oUOVC2UO	UO22UO
UO22UOUO2UO22P!)rr�)	rrr�rir~r�r|r�r��rrr�rr�s&    r�&test_copy_symlink_follow_symlinks_true�/PathTest.test_copy_symlink_follow_symlinks_truees����x�x��	�	�"�������������V�$������(�����
�
��(�����*�*�,�-�����)�)�+�V�-=�-=�-?�@rc��UOUO2oUQ*oUQ*oUOUP
Q5oUOVC2UO	UO22UO	UO
22UOUO2UO22P!)rr�r��rrr�rir~r�r�r�r�s&    r�'test_copy_symlink_follow_symlinks_false�0PathTest.test_copy_symlink_follow_symlinks_falsep����x�x��	�	�"�������������V�U��;������(�����
�
��(�����)�)�+�,�������*�F�O�O�,=�>rc��UOUO2oUQ*oUO[UOU2P!�r�rrr�rr��rrr�s&  r�test_copy_symlink_to_itself�$PathTest.test_copy_symlink_to_itself{�3���x�x��	�	�"���������'�6�;�;��7rc�J�UOUO2oUQ*oUQ*oUOUQ*2UOUQ*2UO[UO
U2UO[UO
UP
Q5P!��
copySource�
copyTargetrrr��rr�
symlink_tor�rr�r�s&   r�%test_copy_symlink_to_existing_symlink�.PathTest.test_copy_symlink_to_existing_symlink��}���x�x��	�	�"����$����$�����$��.�)����$��-�(����'�6�;�;��7����'�6�;�;����Nrc�J�UOUO2oUQ*oUQ*oUOUQ*2UOUQ*2UO[UO
U2UO[UO
UP
Q5P!r�r�r�s&   r�/test_copy_symlink_to_existing_directory_symlink�8PathTest.test_copy_symlink_to_existing_directory_symlink�r�rc��UOUO2oUQ*oUQ*oUOUP
Q5oUOVC2UO	UO22UO	UO
22UOUO2UO22P!)r"r�r�r�r�s&    r�1test_copy_directory_symlink_follow_symlinks_false�:PathTest.test_copy_directory_symlink_follow_symlinks_false�r�rc���UOUO2oUQ*oUO[UOU2UO[UOUP
Q5P!)r"r�r�r�s&  r�%test_copy_directory_symlink_to_itself�.PathTest.test_copy_directory_symlink_to_itself�sN���x�x��	�	�"���������'�6�;�;��7����'�6�;�;����Nrc�6�UOUO2oUQ*oUQ*Q*oUO[UOU2UO[UOUP
Q5UOUO
22P!)r"�copyBr�)rrr�rr�r|r�r�s&   r�'test_copy_directory_symlink_into_itself�0PathTest.test_copy_directory_symlink_into_itself�sp���x�x��	�	�"���������'�)�����'�6�;�;��7����'�6�;�;����N��������)rc�J�UOUO2oUQ*oUQ*oUOUQ*2UOUQ*2UO[UO
U2UO[UO
UP
Q5P!)r�r�rrr��rrr�r��FileExistsErrorr�r�s&   r�/test_copy_directory_symlink_to_existing_symlink�8PathTest.test_copy_directory_symlink_to_existing_symlink�s~���x�x��	�	�"����$����$�����$��-�(����$��.�)����/�6�;�;��?����/�6�;�;��PU��Vrc�X�UOUO2oUQ*oUQ*oUOUQ*Q*2UOUQ*2UO[UO
U2UO[UO
UP
Q5P!)r�r�rrr�rr�s&   r�9test_copy_directory_symlink_to_existing_directory_symlink�BPathTest.test_copy_directory_symlink_to_existing_directory_symlink�s����x�x��	�	�"����$����$�����$��-�&�0�1����$��-�(����/�6�;�;��?����/�6�;�;��PU��Vrc�6�UOUO2oUQ*oUQ*oUO2UOQ2O	Q2UO[UOU2UQ*oUOUP
Q5oUOVT2UOUOQ2O22UOUOQ2O2UOQ22P!)r�r�link�nonexistent�target2r�)rrr*r�r�r�r8r�rir~r�r�)rrr�rrr�s&     r�test_copy_dangling_symlink�#PathTest.test_copy_dangling_symlink�s����x�x��	�	�"�������������������*�*�=�9����+�V�[�[�&�A���"�����W�e��<������)�����(�(��0�;�;�=�>�����)�)�&�1�:�:�<�d�h�h�}�>U�Vrc�<�UOUO2oUQ*o[[Q2%c;[OU[
O[
O*2[[Q2%c<[[
Q2%c&[OU[
O2UO2oUQ*oUOUP
P	Q5UOUO22UOUO22UOUO!2UO!22UO2oUO#UO$UO$2UO#UO&UO&2UOUO(UO(2[UQ2%c)UOUO*UO*2P!P!)r�lchmod�lchflagsr�r�)r�r�r�)rrr�r�rr�r�r�rr��lstatr�r~r�r�rir�r�r�r�r�r�r�s&     r� test_copy_link_preserve_metadata�)PathTest.test_copy_link_preserve_metadata�sh���x�x��	�	�"�������2�x� � ��I�I�f�d�l�l�T�\�\�9�:��2�z�"�"�w�t�[�'A�'A��K�K�����/��L�L�N�	��������F�E�T��J�����
�
��(�����)�)�+�,�������*�F�O�O�,=�>��L�L�N�	����Y�/�/��1C�1C�D����Y�/�/��1C�1C�D�����*�*�I�,=�,=�>��9�j�)�)����Y�/�/��1C�1C�D�*rc
�"�QoUOUO2oUQ*oUQ*o[O29^tt^2o[%cQ[[Q2%c;UO
[OQU[O222[%cQ[[Q2%c;UO
[OQU[O222[[Q2%c;UO
[OQU[O222[[Q	2%c;UO
[OQ
U[O222UOU2UO!UO#22UO%UO'2UO'22PPP2[%c[[Q2%cQoLY[%c[[Q2%cQoL4[[Q2%cQoL[[Q	2%cQ
oLP![OVa[O(229^tt^2UO+[,UOU2PPP2P!)%fhK�9h)%fhP!9h)c�`�U1QkoU!)c�F:�[R[OR22gr)rr��strerror)rmr<�errs*,�r�raiser�FPathTest.test_copy_error_handling.<locals>.make_raiser.<locals>.raiser�s����c�2�;�;�s�#3�4�4rr#)rrsf r�make_raiser�6PathTest.test_copy_error_handling.<locals>.make_raiser�s
���
5��Mrrr��FICLONEzfcntl.ioctl�
_fcopyfilezposix._fcopyfile�copy_file_rangezos.copy_file_range�sendfilezos.sendfile)rr�
contextlib�	ExitStack�fcntlr��
enter_contextrrlrrr"�ENOTSUPr��ENOTSOCKr�r~r�rir�r:r�r8)rrrr�r�ctx�
patchpoints&      r�test_copy_error_handling�!PathTest.test_copy_error_handling�s���	�
�x�x��	�	�"�����������
!�
!�
#�
#�s��u���	�2�2��!�!�$�*�*�]�K����<T�"U�V��u����5�5��!�!�$�*�*�-?��U�]�]�A[�"\�]��r�,�-�-��!�!�$�*�*�-A�;�u�{�{�C[�"\�]��r�:�&�&��!�!�$�*�*�]�K����<W�"X�Y��K�K����O�O�F�M�M�O�,����V�-�-�/��1A�1A�1C�D�$��5�W�U�I�.�.�&�J�
�U�w�u�l�3�3�+�J�
�R�*�
+�
+�-�J�
�R��
$�
$�&�J��
�Z�Z�
�K����$=�
>�
>����/����f�E�?�
>�3$�
#��2?�
>�
>�sL�K*�K*�2AK*�8K*�AK*�AK*�.BK*�>"K=�*K:	�3K:	�=L	�L	�win32�wasiz3directories are always readable on Windows and WASIc���UOUO2oUQ*oUQ*oUO[UOU2UOUO
22P!)r�copyE)rrr��PermissionErrorr�r|r�r�s&   r� test_copy_dir_no_read_permission�)PathTest.test_copy_dir_no_read_permissionsR���x�x��	�	�"�������������/�6�;�;��?��������)rc�<�UOUO2oUQ*o[[Q2%cB[OUQ*[
O[
O*2[[Q2%cC[[
Q2%c-[OUQ*[
O2UQ*o,Q	NoSTt,tFD!pROU2O2MJ#	ooUOUP	Q5STt,tFD!pSOU2O2MJ#	oo[Vg2FD�vq�UOUOU	O2UOUOU	O2UO!UO"U	O"2[UQ2%fJ�UO!UO$U	O$2J�	P!ttohttoh)
rr.rr�r�rr�r�r�)rQrr�
dirD/fileD)rrr�r�r.r�r�r�r�r�r�r��zipr�r�r�rir�r�)
rrr�r�subpaths�subpath�
source_sts�
target_stsr�r�s
&         r�test_copy_dir_preserve_metadata�(PathTest.test_copy_dir_preserve_metadatasx���x�x��	�	�"�������2�w����H�H�V�f�_�d�l�l�T�\�\�&A�B��2�y�!�!�g�d�K�&@�&@��J�J�v��'����8�����7��EM�N�X�'�o�o�g�.�3�3�5�X�
�N����F�d��3�EM�N�X�'�o�o�g�.�3�3�5�X�
�N�$'�
�$?� �I�� � ��!3�!3�Y�5G�5G�H�� � ��!3�!3�Y�5G�5G�H����Y�.�.�	�0A�0A�B��y�*�-�-�� � ��!3�!3�Y�5G�5G�H�%@��	O��Ns�%)H�&)Hc�N�UOUO2oUQ*oUOQQ2o[OUQQ2UQ*oUOUP	Q5UOQQ2oUO
[OUQ2Q2P!)rrrr�r�r�r�)rrr�r�r�r�rir�)rrr��source_filer�target_files&     r�&test_copy_dir_preserve_metadata_xattrs�/PathTest.test_copy_dir_preserve_metadata_xattrs/s����x�x��	�	�"�������o�o�f�g�6��
���K��e�4��������F�d��3��o�o�f�g�6��������[�+�>��Frc��UOUO2oUQ*oUO2oUQ*oUOU2oUO	VT2UOUO
22UOUO22UO	V4O22P!)r�linkA_moved�	rrr��moverir|r�r~r��rrr��source_readlinkrr�s&     r�test_move_file_symlink�PathTest.test_move_file_symlink:����x�x��	�	�"������ �/�/�+���
�%�����V�$������(��������)�����)�)�+�,�����/�/�*;�<rc��UOUO2oUQ*oUO[UOU2P!r��rrr�rrFr�s&  r� test_move_file_symlink_to_itself�)PathTest.test_move_file_symlink_to_itselfFr�rc��UOUO2oUQ*oUO2oUQ*oUOU2oUO	VT2UOUO
22UOUO22UO	V4O22P!)r"�linkB_movedrErGs&     r�test_move_dir_symlink�PathTest.test_move_dir_symlinkLrKrc��UOUO2oUQ*oUO[UOU2P!)r"rMr�s&  r�test_move_dir_symlink_to_itself�(PathTest.test_move_dir_symlink_to_itselfXr�rc��UOUO2oUQ*oUO2oUQ*oUOU2oUO	VT2UOUO
22UOUO22UO	V4O22P!)r!�brokenLink_movedrErGs&     r�test_move_dangling_symlink�#PathTest.test_move_dangling_symlink^s����x�x��	�	�"����$�� �/�/�+���*�*�����V�$������(��������)�����)�)�+�,�����/�/�*;�<rc��UOUO2oUQ*oUO2oUQ*oUOU2oUO	VT2UOUO
22UOUO
22UO	V4O22P!)r�fileA_moved�rrr�rFrir|r�r~�rrr��source_textrr�s&     r�test_move_file�PathTest.test_move_filejs����x�x��	�	�"�������&�&�(���
�%�����V�$������(��������)�����
�
��(�����&6�&6�&8�9rc�(�UO2P!r)r`r:s&r�test_move_file_other_fs� PathTest.test_move_file_other_fsu������rc��UOUO2oUQ*oUO2oUQ*Q*oUOU2oUO	VT2UOUO
22UOUO
22UO	V4O22P!)rrrr]r^s&     r�test_move_file_to_file�PathTest.test_move_file_to_fileys����x�x��	�	�"�������&�&�(������(�����V�$������(��������)�����
�
��(�����&6�&6�&8�9rc�(�UO2P!r)rgr:s&r�test_move_file_to_file_other_fs�(PathTest.test_move_file_to_file_other_fs�s���#�#�%rc��UOUO2oUQ*oUQ*oUO[UOU2P!)rrrMr�s&   r�test_move_file_to_dir�PathTest.test_move_file_to_dir�s<���x�x��	�	�"�������������'�6�;�;��7rc�(�UO2P!r)rmr:s&r�test_move_file_to_dir_other_fs�'PathTest.test_move_file_to_dir_other_fs�s���"�"�$rc��UOUO2oUQ*oUO[UOU2P!�rrMr�s&  r�test_move_file_to_itself�!PathTest.test_move_file_to_itself�s3���x�x��	�	�"���������'�6�;�;��7rc��UOUO2oUQ*oUQ*oUOU2oUOVC2UO	UO22UO
UO22UO
UOQ2O22UO
UOQQ2O22UOUOQQ2O2Q2UO
UOQ2O22UO
UOQ2O2Q2P!)r�
dirC_movedrrzthis is file D
rzthis is file C
)rrrFrir|r�r~�is_dirr��is_filer�r�s&    r�
test_move_dir�PathTest.test_move_dir�s���x�x��	�	�"��������$�����V�$������(��������)�����
�
��(��������/�6�6�8�9���������8�@�@�B�C���������9�C�C�E�+�	-��������0�8�8�:�;��������0�:�:�<�*�	,rc�(�UO2P!r)rzr:s&r�test_move_dir_other_fs�PathTest.test_move_dir_other_fs�s�����rc� �UOUO2oUQ*oUQ*oUO[UOU2UOUO
22UOUO
22P!)rr�rrr�rrFr~r�r�s&   r�test_move_dir_to_dir�PathTest.test_move_dir_to_dir�s`���x�x��	�	�"�������������'�6�;�;��7�����
�
��(�����
�
��(rc�(�UO2P!r)r�r:s&r�test_move_dir_to_dir_other_fs�&PathTest.test_move_dir_to_dir_other_fs�s���!�!�#rc���UOUO2oUQ*oUO[UOU2UOUO
22P!)rr�r�s&  r�test_move_dir_to_itself� PathTest.test_move_dir_to_itself�sE���x�x��	�	�"���������'�6�;�;��7�����
�
��(rc�.�UOUO2oUQ*oUQ*Q*oUO[UOU2UOUO
22UOUO
22P!)r�bar)rrr�rrFr~r�r|r�s&   r�test_move_dir_into_itself�"PathTest.test_move_dir_into_itself�sg���x�x��	�	�"����������&�����'�6�;�;��7�����
�
��(��������)rc�(�UO2P!r)r�r:s&r�"test_move_dir_into_itself_other_fs�+PathTest.test_move_dir_into_itself_other_fs�����&�&�(rc�(�UO2P!r)rIr:s&r�test_move_file_symlink_other_fs�(PathTest.test_move_file_symlink_other_fs�s��	
�#�#�%rc�(�UO2P!r)rNr:s&r�)test_move_file_symlink_to_itself_other_fs�2PathTest.test_move_file_symlink_to_itself_other_fs�s��	
�-�-�/rc�(�UO2P!r)rRr:s&r�test_move_dir_symlink_other_fs�'PathTest.test_move_dir_symlink_other_fs�s��	
�"�"�$rc�(�UO2P!r)rUr:s&r�(test_move_dir_symlink_to_itself_other_fs�1PathTest.test_move_dir_symlink_to_itself_other_fs�s��	
�,�,�.rc�(�UO2P!r)rYr:s&r�#test_move_dangling_symlink_other_fs�,PathTest.test_move_dangling_symlink_other_fs�s��	
�'�'�)rc��UOUO2oUQ*oUO2oUQ*oUOU2oUO	VTQ*2UOUO
22UOUO
22UO	V5O22P!)rr)rrr��	move_intorir|r�r~)rrr�r_�
target_dirr�s&     r�test_move_into�PathTest.test_move_into�s����x�x��	�	�"�������&�&�(���F�]�
��!�!�*�-������g�!5�6��������)�����
�
��(�����&6�&6�&8�9rc�(�UO2P!r)r�r:s&r�test_move_into_other_os� PathTest.test_move_into_other_os�rerc��UOP2oUOoUO[UOU2P!r�)rrr�r:r�)rr�r�s&  r�test_move_into_empty_name�"PathTest.test_move_into_empty_name�s0�����"����Y�Y�
����*�f�&6�&6�
�Crc�(�UO2P!r)r�r:s&r�"test_move_into_empty_name_other_os�+PathTest.test_move_into_empty_name_other_os�r�rc�>�UOUO2P!r)�_check_complex_symlinksrr:s&r�test_complex_symlinks_absolute�'PathTest.test_complex_symlinks_absolute�s���$�$�T�Y�Y�/rc�*�UOQ2P!)rQ)r�r:s&r�test_complex_symlinks_relative�'PathTest.test_complex_symlinks_relative�s���$�$�S�)rc�^�UOUOOQQ22P!)rr�)r�rUr+r:s&r�&test_complex_symlinks_relative_dot_dot�/PathTest.test_complex_symlinks_relative_dot_dots!���$�$�T�[�[�%5�%5�f�d�%C�Drc��UOoUOUO2oUOQ2O	UOQQ2P	Q5UOQ2O	UOQQ2P	Q5UOQ2O	UOQQ2P	Q5UOQ2O	UP	Q5UQ*O
2oUOVC2UO[U2UO2UQ*O
2oUOVC2UO[U2UO2UQ*O
2oUOVC2UO[U2UO2UQ*O
2oUOVC2UO[U2UO2[O2o[OUO2UOQ2O
2oUOVC2UO[U2UO2UOQ2O
2oUOVC2UO[U2UO2UOQ2O
2oUOVC2UO[U2UO2UOQ2O
2oUOVC2UO[U2UO2[OU2P![OS2h9h)�link1�link0r#�link2�link3)
rUrrr�r�r+r�rirDrhr�rL�chdir)r�link0_targetrUrnr[�old_paths&&    rr�� PathTest._check_complex_symlinkss��������H�H�T�Y�Y���	�
�
�7��&�&�v�{�{�7�G�'D�Z^�&�_�	�
�
�7��&�&�v�{�{�7�G�'D�Z^�&�_�	�
�
�7��&�&�v�{�{�7�G�'D�Z^�&�_�	�
�
�7��&�&�|��&�N���[�!�!�#�������� � ��Q�����3�
��[�!�!�#�������� � ��Q�����3�
��[�!�!�#�������� � ��Q�����3�
��[�!�!�#�������� � ��Q�����3��9�9�;��
�������	�����!�)�)�+�A����Q�"��$�$�S��V�T�Y�Y�7�����!�)�)�+�A����Q�"��$�$�S��V�T�Y�Y�7�����!�)�)�+�A����Q�"��$�$�S��V�T�Y�Y�7�����!�)�)�+�A����Q�"��$�$�S��V�T�Y�Y�7��H�H�X���B�H�H�X��s
�EN7�7Oc�L�UOU2oUOVB2P!r)r�ri)rr[r��strictr�s&&&& r�_check_resolve�PathTest._check_resolve0s��
�I�I�f�������%rc�t	�UOoUUOQ2oUO[29^tt^2oUO	P	Q5PPP2UOWOO[O2UOoUO[UO	P
Q52UOUOQ22UUOQQQ2oUO[UO	P
Q52UOUOQQQ22UUOQQQQ2oUO[UO	P
Q52UOUOUO2QQQ22UUOQQ2oUOV"2UUOQ2oUOV!UOQ22UUOQ	Q
Q2oUOV!UOQQ22UUOQQQ2oUOV!UOQQ22UUOQ	Q
QQQQ2oUOV!UOQQQQQ2P
2UUOQ	Q
QQQQ2oUOO[Ic(UOV!UOQ	QQQ2P
2L%UOV!UOQQQ2P
2UO!2oUUOQ	Q2O#U2UUO[U2Q
2O#UOOUOQ22UUOQ	QQ
Q2oUO%V!UOQQ22UUOQ	QQ
QQQ2oUOV!UOQQQQ2P
2UUOQ	QQ
QQQQ2oUOO[IcUOV!UQQQ2P
2P!UOV!UOQQQ2P
2P!)%fhCK^9h)r��r��in�spamr�rrrrrr%r&�linkX�linkY)rrr�rr�rir9rr:rUrDrhr+�dirname�_check_resolve_relativerVrNr��_check_resolve_absolute)rrnr[r=rUr�s&     r�test_resolve_common�PathTest.test_resolve_common7s����H�H��
�d�i�i����
�
�
�w�
'�
'�2�
�I�I�T�I�"�(�������+�+�U�\�\�:������ � ��Q�Y�Y�e�Y�%<�!=�!'���T�Y�Y��!>�	@�
�d�i�i���f�-��� � ��Q�Y�Y�e�Y�%<�!=�!'���T�Y�Y��t�V�!L�	N�
�d�i�i��u�d�F�3��� � ��Q�Y�Y�e�Y�%<�!=�!'���V�^�^�D�I�I�-F��t�U[�!\�	^�
�d�i�i���)���$�$�Q�*�
�d�i�i��!���$�$�Q��$�)�)�W�(=�>�
�d�i�i���'�2���$�$�Q��$�)�)�V�W�(E�F�
�d�i�i���'�2���$�$�Q��$�)�)�V�W�(E�F�
�d�i�i���'�5�$��G���$�$�Q��$�)�)�V�W�e�T�*0�)2�38�	:�
�d�i�i���$��t�V�D���8�8�?�?�)�+�
�(�(��A�d�i�i����.4�-6�7<�
>�

�(�(��A�d�i�i���f�,M�u�U��L�L�N��	�$�)�)�V�W�%�0�0��3�	�$�)�)�S��V�W�%�0�0����1A�1A�$�)�)�V�1T�U�
�d�i�i���'�7�;���$�$�Q��$�)�)�V�W�(E�F�
�d�i�i���'�5�$��G���$�$�Q��$�)�)�V�U�D�&�(Q�%*�	,�
�d�i�i���'�4���f�M���8�8�?�?�)�+�
�(�(��A�a���f�,E�u�M�
�(�(��A�d�i�i���f�,M�u�U�m(�
'�
'�s�R&�&R7	�/R7	c�|�UOoUOUO2oUOQ2O	QP	Q5UOQ2O	UOQQ2P	Q5UOQ2O	UOQQ2P	Q5UQ*oUO
UOP	Q5U2UQ*Q*oUO[UOP	Q5UO
UOP
Q5UQ*Q*2P!)�0rQr#�1�2r��3�4)
rUrrr�r�r+rir�r�r8)rrUr[r�r�s&    r�test_resolve_dot�PathTest.test_resolve_dotss��������H�H�T�Y�Y���	�
�
�3��"�"�3�D�"�A�	�
�
�3��"�"�6�;�;�s�C�#8�d�"�S�	�
�
�3��"�"�6�;�;�s�C�#8�d�"�S�
��G��������$��/��3�
��G�c�M�����+�Q�Y�Y�t��D�������%��0�!�c�'�C�-�@rc�(�UOUoUO[29^tt^2oUOP	Q5PPP2UO	WO
O[O2P!)%fhKF9h)Tr�)rr�rr�rir9r�ELOOP)rrmr�r=s&*  r�_check_symlink_loop�PathTest._check_symlink_loop�s\���x�x����
�
�
�w�
'�
'�2��L�L��L�%�(�������+�+�U�[�[�9�(�
'�s�B�B	�
B	c�0�UOUOQ2OQ2UOUOQ2UOUOQ2OQ2UOUOQ2UOUOQ2OQ2UOUOQ2UOUOQQ2oUO	UOP
Q5U2UOUOQ2OUOOUOQ22UOUOQ2UOUOQ	2OUOOUOQ	22UOUOQ	2UOUOQ
2OUOOUOQ22UOUOQ
2UOUOQ
Q2oUO	UOP
Q5U2P!)r�zlinkX/insider��linkZzlinkZ/../linkZr�r��linkUzlinkU/inside�linkV�linkWzlinkW/../linkW)rrr�r�rir�rUr+r�s&  r�test_resolve_loop�PathTest.test_resolve_loop�s���	
������G�$�/�/��?�� � ����G�4�������G�$�/�/��8�� � ����G�4�������G�$�/�/�0@�A�� � ����G�4��H�H�T�Y�Y���/��������%��0�!�4�������G�$�/�/����0@�0@����N�0[�\�� � ����G�4�������G�$�/�/����0@�0@����G�0T�U�� � ����G�4�������G�$�/�/����0@�0@����L\�0]�^�� � ����G�4��H�H�T�Y�Y���/��������%��0�!�4rc�n�UOQQ2o[O2o[OUO2UOUO
2UOUOU22[OU2P![OS2h9h)�non�exist)rr�rLr�rrir�)rr[�old_cwds&  r�)test_resolve_nonexist_relative_issue38671�2PathTest.test_resolve_nonexist_relative_issue38671�sp���H�H�U�G�$���)�)�+��
�������	����Q�Y�Y�[�$�(�(�4�9�9�a�*@�A��H�H�W���B�H�H�W��s�
:B�B4c��UOUO2oUOUQ*O2UOQ22UOUQ*O2UOQ22UOUQ*O2UOQ22UOUQ*Q*O2UOQ22UO	[
29^tt^2UQ*O2PPP2P!)%fhP!9h)rrr!r r"rr&z../dirB)rrrir�r�rr�s& r�
test_readlink�PathTest.test_readlink�s����H�H�T�Y�Y������!�g�+�/�/�1�4�8�8�G�3D�E����!�l�*�4�4�6����.�1�	3����!�g�+�/�/�1�4�8�8�F�3C�D����!�g�+��/�9�9�;�T�X�X�i�=P�Q�
�
�
�w�
'�
'�
��[�"�"�$�(�
'�
'�
'�s�D;�;E	�E	r�zos.readlink() is presentc��UOUO2oUQ*oUO[O29^tt^2[
O
U2PPP2P!)%fhP!9hrs)rrr�r6r7r�r�r�s&  r�test_readlink_unsupported�"PathTest.test_readlink_unsupported�sN���H�H�T�Y�Y���
��K��
�
�
�w�;�;�
<�
<�
�J�J�q�M�=�
<�
<�
<�s�
A-�-A>	�6A>	c��UOUO2Q*oUO2OoUQ*oUO	U2UOUO2OU2U]�*oUO	U2UOUO2OU2P!)r�m���)rrr�r�r.ri)rr[�mode�new_modes&   r�
test_chmod�PathTest.test_chmod�s����H�H�T�Y�Y��'�)���v�v�x�����&�=��	������������)�)�8�4��%�<��	������������)�)�8�4rc��UOUO2Q*oUO2oUO2OoUQ*oUOUP	Q5UO
UO2OU2U]�*oUOUP	Q5UO
UO2OU2P!)rr�r�)rrr�r�r�r.ri)rr[r�r�r�s&    r�test_chmod_follow_symlinks_true�(PathTest.test_chmod_follow_symlinks_true�s���
�H�H�T�Y�Y��'�)��
�I�I�K���v�v�x�����&�=��	����$��/��������)�)�8�4��%�<��	����$��/��������)�)�8�4rc��[OU2O![cSO	QS*2P!h9h)z4user %d doesn't have an entry in the system database)�pwd�getpwuid�pw_name�KeyErrorrW)r�uids&&r�_get_pw_name_or_skip_test�"PathTest._get_pw_name_or_skip_test�sC��	N��<�<��$�,�,�,���	N��M�M�F��L�
N�	N���#�	A
�A
�	A
z&the pwd module is needed for this testc���UOUO2Q*oUO2OoUO	U2oUOV1O
22P!rs)rrr��st_uidr�ri�owner)rr[�expected_uid�
expected_names&   r�
test_owner�PathTest.test_owner��L���H�H�T�Y�Y��'�)���v�v�x�����6�6�|�D�
�������	�2rc�l�[O2Tt,tFDpOMJ	oo[U2]6cUO	Q2UOUO2Q*oUOUO2Q*oUQ*vqV[OV5P2[OVFPP
Q5UOP
Q5OoUOU2oUOVv2UOV�OP
Q52P!ttoh)�ztest needs more than one userrr�Nr
Nr�)r��getpwall�pw_uidr�rWrrr��chownr�rr�rir)	r�u�	all_usersrr�uid_1�uid_2rrs	&        r�test_owner_no_follow_symlinks�&PathTest.test_owner_no_follow_symlinks�s���(+�|�|�~�6�~�!�X�X�~�	�6��y�>�A���M�M�9�:����$�)�)�$�w�.���x�x��	�	�"�W�,�� ��}���
�����#�
����b�%�8��y�y��y�7�>�>���6�6�|�D�
�����-�����
�
�5�
�(I�J��7s�D1c��[OU2O![cSO	QS*2P!h9h)z5group %d doesn't have an entry in the system database)�grp�getgrgid�gr_namer�rW)r�gids&&r�_get_gr_name_or_skip_test�"PathTest._get_gr_name_or_skip_test�sC��	O��<�<��$�,�,�,���	O��M�M�G�#�M�
O�	O�rz&the grp module is needed for this testc���UOUO2Q*oUO2OoUO	U2oUOV1O
22P!rs)rrr��st_gidrri�group)rr[�expected_gidrs&   r�
test_group�PathTest.test_grouprrc�p�[O2Tt,tFDpOMJ	oo[U2]6cUO	Q2UOUO2Q*oUOUO2Q*oUQ*vqV[OUPU2[OUPUP
Q5UOP
Q5OoUOU2oUOVv2UOV�OP
Q52P!ttoh)r
ztest needs more than one grouprrrr�)r�getgrall�gr_gidr�rWrrr�rr�rrrir)	r�g�
all_groupsrr�gid_1�gid_2rrs	&        r�test_group_no_follow_symlinks�&PathTest.test_group_no_follow_symlinks
s���),����7��1�h�h��
�7��z�?�Q���M�M�:�;����$�)�)�$�w�.���x�x��	�	�"�W�,��!�"�~���
�����U�#�
����r�5�%�8��y�y��y�7�>�>���6�6�|�D�
�����-�����
�
�5�
�(I�J��8s�D3c���UOUO2Q*oUO2UOUO2UOUO2P!rs)rr�unlinkr>r�r�s& r�test_unlink�PathTest.test_unlink!sF���H�H�T�Y�Y��'�)��	���
�������'�������)rc��UOUO2Q*oUOUO2UOP	Q5P!)�fileAAA)�
missing_ok)rrr>r,r�s& r�test_unlink_missing_ok�PathTest.test_unlink_missing_ok's9���H�H�T�Y�Y��)�+��������)�	���D��!rc�(�UOUO2Q*oUO2FDoUO2J	UO	2UOUO2UOUO2P!)r)rrr�r,�rmdirr>r�r�s&  r�
test_rmdir�PathTest.test_rmdir,s_���H�H�T�Y�Y��&�(������A�
�H�H�J��	���	�������'�������)rc���UOUO2Q*oUO2UOUO	22UOUO2P!rs)rr�_deleter|r�r>r�s& r�test_delete_file�PathTest.test_delete_file4sH���H�H�T�Y�Y��'�)��	�	�	���������$�����	�	�*rc��UOUO2oUOQ2O2UO	UOQ2O22UO	UOQQ2OP
Q52UOQ2O2UO	UOQ2O22UO	UOQQ2O22UO	UOQQ2OP
Q52UOQ2O2UO	UOQ2O22UO	UOQQ2O22UO	UOQQQ2O22UO	UOQQ	2O22UO	UOQQ
2O22P!)rr%r�rrr&rrrrr)rrr�r9r|r�)rrs& r�test_delete_dir�PathTest.test_delete_dir:s����x�x��	�	�"���
�
�f��%�%�'�������v�.�5�5�7�8�������v�w�7�>�>�!�?�#�	$��
�
�f��%�%�'�������v�.�5�5�7�8�������v�w�7�>�>�@�A�������v�w�7�>�>�!�?�#�	$��
�
�f��%�%�'�������v�.�5�5�7�8�������v�v�6�=�=�?�@�������v�v�w�?�F�F�H�I�������v�w�7�>�>�@�A�������v�{�;�B�B�D�Erc��UOUOQ2oUO2UQ*oUO[UO
2P!)�deleter�)rrr*r�r8r9)r�tmp�filenames&  r�test_delete_missing�PathTest.test_delete_missingLs?���h�h�t�y�y�(�+���	�	����;�����+�X�-=�-=�>rc�f�UOUOQ2oUO2UQ*oUO2UQ*oUOU2UO	2UOUO
22UOUO
P
Q52P!)r@rHrr�)rrr*r�r9r~r�r|)rrA�dir_rs&   r�test_delete_symlink�PathTest.test_delete_symlinkSsz���h�h�t�y�y�(�+���	�	���U�{���
�
���V�|�����������������
�&�������U��;�<rc�x�UOUOQ2oUO2UQ*oUQ*oUQ*oV#U1FDoUO2J	UQ*oUOQ2UQ*oUO	U2UQ*oUO	U2UQ*o	U	O	U2UO2UO
UO22UOUO22UOUO22P!)	r@�dir1�dir2�dir3�file1r�r�r�r�)	rrr*�
write_textr�r9r|r�r~)
rrArJrKrLr�rMr�r�r�s
&         r�test_delete_inner_symlink�"PathTest.test_delete_inner_symlink_s����h�h�t�y�y�(�+���	�	���V�|���f�}���V�|���T�!�A�
�G�G�I�"��g�
��
������w���
������w���
������w���
����������������'�������
�&��������'r:N�N�cygwinz2This test can't be run on Cygwin (issue #1071513).c�*�UOUOQ2oUO2UQ*oUQ*oUOP2UO2UO	2O
oUO	2O
oUO	2O
o[O[O*oUOU2UOU2UOU2UO[UO2UOU2UOU2UOU2P!SOS2SOS2SOS2h9h)r@rRr�)rrr*rNr�r��S_IREAD�S_IEXECr.r�r2r9)rrA�child_file_path�child_dir_path�old_dir_mode�old_child_file_mode�old_child_dir_moder�s&       r�test_delete_unwritable�PathTest.test_delete_unwritablevs3��
�h�h�t�y�y�(�+���	�	����)���s����"�"�2�&������x�x�z�)�)��-�2�2�4�<�<��+�0�0�2�:�:���<�<�$�,�,�.��		5��!�!�(�+�� � ��*��I�I�h�����o�s�{�{�;��I�I�l�#��!�!�"5�6�� � �!3�4��
�I�I�l�#��!�!�"5�6�� � �!3�4�s
�AE�5Fc���]PHoUOUOQ2oUO2UQ*oUQ*oUQ*oV4U1FDoUO2J	UQ*oUO	Q2UQ*oUO[
U2[
U22UQ*o	UO[
U2[
U	22UQ	*o
UO[
U2[
U
22UO2UOUO22UOUO22UOUO22P!)
rr@rJrKrLrMr�r�r�r���_winapirrr*rN�CreateJunctionrhr9r|r�r~)rr_rArJrKrLr�rMr�r�r�s&          r�test_delete_inner_junction�#PathTest.test_delete_inner_junction�s����h�h�t�y�y�(�+���	�	���V�|���f�}���V�|���T�!�A�
�G�G�I�"��g�
��
������w������s�4�y�#�e�*�5��w������s�4�y�#�e�*�5��w������s�5�z�3�u�:�6������������'�������
�&��������'rc��]PHoUOUOQ2oUO2UQ*oUQ*oUO2UQ*oUO	P2UO[
U2[
U22UO2UOUO22UOUO22UOUO22P!)rr@�cheese�shopr�r^)rr_rA�src�dstr�s&     r�test_delete_outer_junction�#PathTest.test_delete_outer_junction�s�����h�h�t�y�y�(�+���	�	���H�n���F�l���	�	���V�|����������s�3�x��S��2����
��������&�������
�&�����
�
��%r�mkfifozrequires os.mkfifo()�vxworksz%fifo requires special path on VxWorksc��UOUOQ2o[OU2UO	2UOUO
22UOUOQ2oUO2[OUQ*2UO	2UOUO
22P!)�piperH�mypipe)rrr�rjr9r|r�r*r�s& r�test_delete_on_named_pipe�"PathTest.test_delete_on_named_pipe�s���
�H�H�T�Y�Y��'��
�	�	�!��	�	�	���������$��H�H�T�Y�Y��&��	���	�
�	�	�!�h�,��	�	�	���������$rc�4``�[OnUOUOQ2nUU1QkoU[mRO	2RQ*oUOP2RO
2R[mP!R[mh9h)r@c�8:�UR6wc[2gRU2!r)r)r*rmr<�
orig_lstatrAs&*,��rr�DPathTest.test_delete_does_not_choke_on_failing_lstat.<locals>.raiser�s�����9�!�)�O�%�b�>�)rr�)r�rrrr*rNr9)rrr�rsrAs&  @@r�+test_delete_does_not_choke_on_failing_lstat�4PathTest.test_delete_does_not_choke_on_failing_lstat�si���	"����J��(�(�4�9�9�h�/�C�
*��B�H��I�I�K���+�C��N�N�2���K�K�M�!�B�H��z�B�H�s�A8B
�

Bc���UOUO2oUQ*oUO2OoUQ*Q*oUO	U2UOUO2OU2UO
[OOV$22UO
UO22UQ*Q*oUOO[Q2oUO	U2UO[OU2OU2UO
UO22P!�rr�fileAAr0)rrr��st_size�hardlink_torir~r�r��samefiler�rUr+r
)rrnr�sizerr�rs&      r�test_hardlink_to�PathTest.test_hardlink_to�s����H�H�T�Y�Y����W����{�{�}�$�$���6�z�H�$������ ��������,�,�d�3�������(�(��6�7�����
�
��(��F�
�Y�&���+�+�"�"�6�7�3��
���'�"��������)�1�1�4�8��������'rrzos.link() is presentc��UOUO2oUQ*oUQ*Q*oUO[O29^tt^2UOU2PPP2P!)%fhP!9h�rrry)rrr�r6r7r{�rrnr[r�s&   r�test_hardlink_to_unsupported�%PathTest.test_hardlink_to_unsupported�s]���H�H�T�Y�Y���
��K��
��J��!��
�
�
�w�;�;�
<�
<�
�M�M�!��=�
<�
<�
<���A9�9B
	�B
	c��UOUO2oUQ*oUO2OoUQ*Q*oUO	U2oUOVT2UOUO2OU2UO
UO2UOO[Q2oUO	U2oUOVpOU22UO[OU2OU2UO
UO2P!rx)rrr�rzr�rir>rUr+r
r�)rrnr[r}r��	renamed_pr��	renamed_qs&       r�test_rename�PathTest.test_rename�s����H�H�T�Y�Y���
��K���v�v�x����
��J��!���H�H�Q�K�	�����&��������)�)�4�0�������'��K�K���V�Y�/���H�H�Q�K�	�����H�H�Q�K�0���������+�+�T�2�������'rc��UOUO2oUQ*oUO2OoUQ*Q*oUO	U2oUOVT2UOUO2OU2UO
UO2UOO[QQ2oUO	U2oUOVpOU22UO[OU2OU2UO
UO2P!)rrryrr)rrr�rzrrir>rUr+r
r�)rrnr[r}r��
replaced_pr��
replaced_qs&       r�test_replace�PathTest.test_replace	s����H�H�T�Y�Y���
��K���v�v�x����
��J��!���Y�Y�q�\�
�����'��������)�)�4�0�������'��K�K���V�V�W�5���Y�Y�q�\�
�����X�X�a�[�1���������+�+�T�2�������'rc�D�UOUO2oUQ*oUOUO22UO	2UOUO22UO
2oUOoUOo[O[U2U]
*
U]
*
12UO	2UO
2oUOUOU2UOUOU2UQ*oUOUO22UO	QP
Q5UOUO22UO[UOP
Q5P!)�newfileA�newfileB�)r��exist_ok�r�)rrr|r��touchr~r�r��st_mtime_nsr��utimerhr�r�r)rrnr[�st�	old_mtime�old_mtime_nss&     r�test_touch_common�PathTest.test_touch_common	s���H�H�T�Y�Y���
�
�N���������$�	���	�������
�#�
�V�V�X���K�K�	��~�~��	����Q��)�b�.�)�b�.�9�:�	���	�
�V�V�X���������=�������Y�7�
�
�N���������$�	���U�U��+�������
�#����'�1�7�7�U��;rc�8�UOUO2oUQ*oUO2UOQ29^tt^2oUO	UO2O
2Q2PPP2P!)%fhP!9h)rr�r�)rrr�r,rir�r�)rrnr[r0s&   r�test_touch_nochange�PathTest.test_touch_nochange1	s_���H�H�T�Y�Y���
��K��	���	�
�V�V�D�\�\�Q����Q�V�V�X�^�^�-�/@�A��\�\�\�s�/B�B	�B	c�$�UOUO2oUQ*oUOUO22UO	2UOUO22UOUO
22UO[29^tt^2oUO	2PPP2UOWOO[O2P!)%fhKF9h)�newdirA)
rrr|r�r*r~rxr�rrir9r�EEXIST)rrnr[r=s&   r�
test_mkdir�PathTest.test_mkdir8	s����H�H�T�Y�Y���
�	�M���������$�	���	�������
�#�������
�#�
�
�
�w�
'�
'�2�
�G�G�I�(�������+�+�U�\�\�:�(�
'�s�0C?�?D	�D	c��UOUOQQ2oUOUO22UO	[
29^tt^2oUO
2PPP2UOWOO[O2UO
P	Q5UOUO22UOUO22UO	[
29^tt^2oUO
P	Q5PPP2UOUOO[O2[OUO2O 2oUOUOQQ2oUO
QP	Q5UOUO22UOUO22["O$Q6wcFUO[OUO2O 2QU*2UO[OUO&O2O 2U2P!)%fhCKA9h)%fhCK�9h)�newdirB�newdirC��parents�newdirD�newdirE�mr�im)rrr|r�r�rr*rir9rr:r~rxr�r��S_IMODEr�r�rZ�parent)rr[r=r�s&   r�test_mkdir_parents�PathTest.test_mkdir_parentsC	s����H�H�T�Y�Y�	�9�5���������$�
�
�
�w�
'�
'�2�
�G�G�I�(�������+�+�U�\�\�:�	������������
�#�������
�#�
�
�
�w�
'�
'�2�
�G�G�D�G�!�(�������+�+�U�\�\�:��|�|�A�F�F�H�,�,�-���H�H�T�Y�Y�	�9�5��	����t��$�������
�#�������
�#�
�7�7�d�?����T�\�\�!�&�&�(�*:�*:�;�V�d�]�K�������a�h�h�m�m�o�&=�&=�>��E�'(�
'�
'��(�
'�
'�s$�J$�J8�$J5	�-J5	�8K		�K		c��UOUOQ2oUO2OoUO	UO22UO	UO
22UO[29^tt^2oUO2PPP2UOWOO[O2UOP	Q5UO	UO22UOUO2OU2P!)%fhK�9h)rr�)rrr��st_ctimer~r�rxr�rr*rir9rr�)rr[�st_ctime_firstr=s&   r�test_mkdir_exist_ok�PathTest.test_mkdir_exist_ok\	s����H�H�T�Y�Y��'������*�*��������
�#�������
�#�
�
�
��
/�
/�2�
�G�G�I�0�������+�+�U�\�\�:�	������������
�#��������*�*�N�;�0�
/�s�D=�=E
	�E
	c���UOUOQ2oUOUO22UO	[
29^tt^2oUO
2PPP2UOWOO[O2UQ*oUO
P	Q5UO2OoUOUO22UO	[
29^tt^2oUO
P	Q5PPP2UOUOO[O2UO
P	P	Q5UOUO22UOUO2OU2P!)%fhCKc9h)%fhK�9h)rr�r��r�r�)
rrr~r�r�rr*rir9rr�r�r�)rr[r=r�s&   r�test_mkdir_exist_ok_with_parent�(PathTest.test_mkdir_exist_ok_with_parenth	s8���H�H�T�Y�Y��'��������
�#�
�
�
��
/�
/�2�
�G�G�I�0�������+�+�U�\�\�:�
�	�M��	����������*�*��������
�#�
�
�
��
/�
/�2�
�G�G�D�G�!�0�������+�+�U�\�\�:�	����t��,�������
�#��������*�*�N�;�0�
/�
/��0�
/�s$�G�G�G	�G	�G)	�"G)	c���UOQ2O2OP	Q5UOQ2O2OP	P	Q5P!)r�r�r�)rr�r*r:s&r�test_mkdir_exist_ok_root�!PathTest.test_mkdir_exist_ok_rooty	sH������
����%�%�t�%�4�����
����%�%�d�T�%�Brc�T�QFD4oUOUQ*2oUO2%cJ3L	UOQ2UO[29^tt^2WQ*Q*OP	Q5PPP2P!)%fhP!9h)�ZYXWVUTSRQPONMLKJIHGFEDCBAz:\z&cannot find a drive that doesn't exist�childr�r�)rrxrWr�rr*)rr�r[s&  r�test_mkdir_with_unknown_drive�&PathTest.test_mkdir_with_unknown_drive~	su��-�A�����U��#�A��8�8�:�:��.�

�M�M�B�C�
�
�
�w�
'�
'�
��[�6�
!�(�(��(�6�(�
'�
'�
'�s�+!B�B'	�B'	c�~�UOUOQQ2oUOUO22UO	[
29^tt^2oUO
P	Q5PPP2UOWOO[O2UO	[
29^tt^2oUO
P	P	Q5PPP2UOUOO[O2P!)%fhK�9h)%fhKY9h)rrr�r��rrr~r�r�rr*rir9rr��rr[r=s&  r�test_mkdir_with_child_file�#PathTest.test_mkdir_with_child_file�	s����H�H�T�Y�Y���0��������
�#��
�
��
/�
/�2�
�G�G�D�G�!�0�������+�+�U�\�\�:�
�
�
��
/�
/�2�
�G�G�D�4�G�0�0�������+�+�U�\�\�:�0�
/��0�
/�s$�D�D,�D)	�"D)	�,D<	�5D<	c�v�UOUOQ2oUOUO22UO	[
29^tt^2oUO
2PPP2UOWOO[O2UO	[
29^tt^2oUO
P	Q5PPP2UOUOO[O2P!)%fhK�9h)%fhKY9h)rr�r�r�s&  r�test_mkdir_no_parents_file�#PathTest.test_mkdir_no_parents_file�	s����H�H�T�Y�Y��(��������
�#��
�
��
/�
/�2�
�G�G�I�0�������+�+�U�\�\�:�
�
�
��
/�
/�2�
�G�G�T�G�"�0�������+�+�U�\�\�:�0�
/��0�
/�s$�D�D(�D%	�D%	�(D8	�1D8	c�```�[] 2FCD#oUOUOQU*2oUOUO	22[
OnQUUU1Qkko[]2Tt,tFDo[U]U**2MJ	ton[2nUQ*Q*o[OQU29^tt^2UO
P	P
Q5PPP2UO[U2R2UOUO	22CJ&	P!ttoh)%fhKV9h[cSO[S2R2Kfh9h)� zdirCPC%dc�:�[U2oRO2%cRV2ROU2RV2P!r)rh�popr')r�r��concurrently_created�pattern�
real_mkdirs&&���r�my_mkdir�@PathTest.test_mkdir_concurrent_parent_creation.<locals>.my_mkdir�	s7����4�y���;�;�=�=��t�*�(�,�,�T�2��4�&rrJrKzos.mkdirr�)r3)r�rrr|r�r�r*�bool�setrrl�assertNotInrhr�assertInr~)	r�pattern_numr[r��n�p12r�r�r�s	&     @@@r�%test_mkdir_concurrent_parent_creation�.PathTest.test_mkdir_concurrent_parent_creation�	s��� ��9�9�K�������J��$<�=�A����Q�X�X�Z�(����J�

'�

'�>C�1�X�F�X��t�K�1��6�2�3�X�F�G�#&�5� ��f�*�v�%�C�
A��Z�Z�
�H�5�5��I�I�d�U�I�;�6�
� � ��S��+?�@��O�O�A�H�H�J�'�7%��"G�6�5��"�
>��
�
�c�#�h�(<�=�
>�s<�=$D;�?E�E	�2E�E
�	E
�E�	E<�E<�;E<z,umask is not implemented on Emscripten/WASI.�androidz7Android filesystem may not honor requested permissions.c�`�UOUOQQ2oUOUO22[O
Q6wc�[O]29^tt^2UOQP	Q5UOUO22UOUO2OQ*Q2UOUOO2OQ*Q2PPP2P!P!)%fhP!9h)�	umasktestr�r���r�r3��rrr|r�r�rZr
�
temp_umaskr*r~rir�r�r�r�s& r�test_mkdir_parents_umask�!PathTest.test_mkdir_parents_umask�	s���
�H�H�T�Y�Y��W�5���������$�
�7�7�d�?��%�%�e�,�,�����t��,�������
�+�� � �����!1�!1�E�!9�5�A�� � �������!8�!8�5�!@�%�H�
-�,��,�,�,�s�1BD�D-	�%D-	c��UOUOQQ2oUOUO22[O
Q6wc�[O]29^tt^2UOQP	QQ5UOUO22UOUO22UOUO2OQ*Q2UOUOO2OQ*Q2PPP2P!P!)%fhP!9h)�newdirPM�subdirPMr�r����r��parent_moder3)rrr|r�r�rZr
r�r*r~rxrir�r�r�r�s& r�test_mkdir_with_parent_mode�$PathTest.test_mkdir_with_parent_mode�	s���
�H�H�T�Y�Y�
�J�7���������$�
�7�7�d�?��%�%�e�,�,�����t���?�������
�+�������
�+�� � �����!1�!1�E�!9�5�A�� � �������!8�!8�5�!@�%�H�-�,��,�,�,�s�1B?D<�<E
	�E
	c��UOUOQQQ2oUOUO22[O
Q6wCc[O]29^tt^2UOQP	QQ5UOUO22UOUOQ2oUQ*oUOUO2OQ*Q2UOUO2OQ*Q2UOUO2OQ*Q2PPP2P!P!)%fhP!9h)�level1PM�level2PM�level3PMr�r�r�r�r3)
rrr|r�r�rZr
r�r*r~rir�r�)rr[�level1�level2s&   r�%test_mkdir_parent_mode_deep_hierarchy�.PathTest.test_mkdir_parent_mode_deep_hierarchy�	s��
�H�H�T�Y�Y�
�J�
�C���������$�
�7�7�d�?��%�%�e�,�,�����t���?�������
�+����$�)�)�Z�8���*�,��� � �����!6�!6��!>��F�� � �����!6�!6��!>��F�� � �����!1�!1�E�!9�5�A�-�,��,�,�,�s�3C,E+�+E<	�4E<	c�b�UOUOQQ2oUOUO22[O
Q6wc�[O]29^tt^2UOQP	QQ5UOUO22UOUO2OQ*Q2UOUOO2OQ*Q2PPP2P!P!)%fhP!9h)�umaskPMr�r�r3r�r�r�r�s& r�*test_mkdir_parent_mode_combined_with_umask�3PathTest.test_mkdir_parent_mode_combined_with_umask
s���
�H�H�T�Y�Y�	�7�3���������$�
�7�7�d�?��%�%�e�,�,�����t���?�������
�+�� � �����!1�!1�E�!9�5�A�� � �������!8�!8�5�!@�%�H�
-�,��,�,�,���1B D�D.	�&D.	c�b�UOUOQQ2oUOUO22[O
Q6wc�[O]29^tt^2UOQP	QQ5UOUO22UOUO2OQ*Q2UOUOO2OQ*Q2PPP2P!P!)%fhP!9h)�	samedirPMr�r���r�r3r�r�s& r�#test_mkdir_parent_mode_same_as_mode�,PathTest.test_mkdir_parent_mode_same_as_mode
s���
�H�H�T�Y�Y��Z�8���������$�
�7�7�d�?��%�%�e�,�,�����t���?�������
�+�� � �����!1�!1�E�!9�5�A�� � �������!8�!8�5�!@�%�H�-�,��,�,�,�r�c�2�UOUO2oUQ*oUQ*Q*oUOU2UOUO	2UO	22UOUO
2UO	22UQ*Q*oUO[U22UOUO	2UO	22UOUO
2UO	22UOUO22UQ*oUQ*Q*oUOUP	Q5UOUO	2UO	22UOUO
2UO	22UOUO22UO[UO222P!)rr�linkAA�linkAAAr�linkAAAAr#)
rrr�rir�r�rrhr|rxr~�listr�)rrnrrs&   r�test_symlink_to�PathTest.test_symlink_to-
sa���H�H�T�Y�Y����W����6�z�H�$��������������f�k�k�m�4����D�J�J�L�&�+�+�-�8��6�z�I�%������F��$��������f�k�k�m�4����D�J�J�L�&�+�+�-�8��������'��V����6�z�J�&������D��9��������f�k�k�m�4����D�J�J�L�&�+�+�-�8�������
�&�����T�\�\�^�,�-rr/zos.symlink() is presentc��UOUO2oUQ*oUQ*Q*oUO[O29^tt^2UOU2PPP2P!)%fhP!9hr�)rrr�r6r7r�r�s&   r�test_symlink_to_unsupported�$PathTest.test_symlink_to_unsupportedE
s\���H�H�T�Y�Y���
��K��
��J��!��
�
�
�w�;�;�
<�
<�
�L�L��O�=�
<�
<�
<�r�c���UOUO2oUQ*oUOUOO	22UOUOO	P
Q52UOQ2UOUOO	22UOUOO	P
Q52P!��myfiler��hullo)rrr|�infor�rNr�s&  r�test_info_exists_caching�!PathTest.test_info_exists_cachingN
s����H�H�T�Y�Y���
��L�����������)���������u��=�>�	���W�����������)���������u��=�>rc��UOUO2oUQ*oUOUOO	22UOUOO	P
Q52UO2UOUOO	22UOUOO	P
Q52P!)�mydirr�)rrr|rrxr*r�s&  r�test_info_is_dir_caching�!PathTest.test_info_is_dir_cachingW
s����H�H�T�Y�Y���
��K�����������)���������u��=�>�	���	����������)���������u��=�>rc���UOUO2oUQ*oUOUOO	22UOUOO	P
Q52UOQ2UOUOO	22UOUOO	P
Q52P!r)rrr|rryrNr�s&  r�test_info_is_file_caching�"PathTest.test_info_is_file_caching`
s����H�H�T�Y�Y���
��L����������)�*�����������>�?�	���W����������)�*�����������>�?rc���UOUO2oUQ*oUOUOO	22UOQ2UOUOO	22UQ*oUO
UOO	22UO2UO
UOO	22P!)�mylink�blah)rrr|rr�r�r~r,r�s&  r�test_info_is_symlink_caching�%PathTest.test_info_is_symlink_cachingi
s����H�H�T�Y�Y���
��L��������*�*�,�-�	���V��������*�*�,�-�
��L��������)�)�+�,�	���
�������)�)�+�,rc�z�UOUO2OQ2O2oUOUO2OQQ2O2oUOUO2OQ2O2oUO	UO
[2UOUO
UO
2UOUO
UO
2UOUO
UO
2UO	UO[2UOUOUO2UOUOUO2UOUOUO2UO	UO[2UOUOUO2UOUOUO2P!)rrrr)rrr�r�r9r�rrir��st_ino�st_dev)r�statA�statB�statCs&   r�	test_stat�PathTest.test_statv
sr��������#�,�,�W�5�:�:�<��������#�,�,�V�W�=�B�B�D��������#�,�,�V�4�9�9�;�����e�m�m�S�1��������
�
�6����E�M�M�5�=�=�9����E�M�M�5�=�=�9����e�l�l�C�0����E�L�L�%�,�,�7����E�L�L�%�,�,�7����E�L�L�%�,�,�7����e�l�l�C�0�������u�|�|�4�������u�|�|�4rc��UOUO2Q*oUO2oUOV!OP
Q52P!)rr�)rrr�ri�rr[r�s&  r�&test_stat_no_follow_symlinks_nosymlink�/PathTest.test_stat_no_follow_symlinks_nosymlink�
s=���H�H�T�Y�Y��'�)��
�V�V�X������V�V�E�V�:�;rc��UOUO2Q*oUO2oUOV!OP
Q52P!)rr�)rrr�r�r&s&  r�test_stat_no_follow_symlinks�%PathTest.test_stat_no_follow_symlinks�
s=���H�H�T�Y�Y��'�)��
�V�V�X�����B���u�� =�>rc��UOUO2Q*oUO2oUOV!O	22P!r�)rrr�r�rr&s&  r�
test_lstat�PathTest.test_lstat�
s8���H�H�T�Y�Y���(��
�V�V�X�����B���	�*rc��UOUO2Q*oUO2oUOV!O	22P!rs)rrr�rirr&s&  r�test_lstat_nosymlink�PathTest.test_lstat_nosymlink�
s8���H�H�T�Y�Y��'�)��
�V�V�X������W�W�Y�'rc�
�UOoUUO2oUOP	UO22UOP	UQ*O22UOP	UQ*O22UOP
UQ*Q*O22UO%c�UOP	UQ*O22UOP	UQ*O22UOP	UQ*Q*O22UOP
UQ*Q*O22UOP
UQ*O22UOP	UQ*OP
Q52UOP
UQ	*O22UOP
UQ
2O22UOP
UUOQ*2O22UOP
UUOQ*2O22P!)
Trr�bahrr"rr!r�r�z/xyzzy���)rrrkr�r(r�s&  r�test_exists�PathTest.test_exists�
s����H�H��
�d�i�i�L���
�
�d�A�H�H�J�'��
�
�d�Q��Z�/�/�1�2��
�
�d�Q��[�0�0�2�3��
�
�e�a�'�k�E�1�9�9�;�<������M�M�$��W�� 4� 4� 6�7��M�M�$��W�� 4� 4� 6�7��M�M�$��W��w�!6� >� >� @�A��M�M�%�!�g�+��"5�!=�!=�!?�@��M�M�%�!�l�"2�!:�!:�!<�=��M�M�$��\�!1� 9� 9�%� 9� P�Q��
�
�e�a�%�i�/�/�1�2��
�
�e�Q�x�[�/�/�1�2��
�
�e�Q�t�y�y�8�3�4�;�;�=�>��
�
�e�Q�t�y�y�6�1�2�9�9�;�<rc��UOUO2oUOUQ*O22UO	UQ*O22UO	UQ*O22UO	UQ*Q*O22UO
%csUO	UQ*O22UOUQ*O22UO	UQ*O22UO	UQ*O22UO	UQ*O22P!)	rrr r3rr"r!�dirA��dirA�rrr~rxr|r(r�s& r�test_is_dir�PathTest.test_is_dir�
s���H�H�T�Y�Y�������V��+�+�-�.����!�g�+�-�-�/�0����!�n�,�4�4�6�7����!�g�+��-�5�5�7�8��������a�'�k�1�1�3�4��O�O�Q��[�0�0�2�3����a��o�5�5�7�8����!�l�*�2�2�4�5����!�j�.�0�0�2�3rc�@�UOUO2oUOUQ*OP
Q52UO	UQ*OP
Q52UO	UQ*OP
Q52UO	UQ*Q*OP
Q52UO
%cyUO	UQ*OP
Q52UO	UQ*OP
Q52UO	UQ*OP
Q52UO	UQ*OP
Q52UO	UQ	*OP
Q52P!)
rr�rr r3rr"r!r9r:r;r�s& r�test_is_dir_no_follow_symlinks�'PathTest.test_is_dir_no_follow_symlinks�
sE���H�H�T�Y�Y�������V��+�+�E�+�B�C����!�g�+�-�-�e�-�D�E����!�n�,�4�4�U�4�K�L����!�g�+��-�5�5�e�5�L�M��������a�'�k�1�1�%�1�H�I����a�'�k�1�1�%�1�H�I����a��o�5�5�e�5�L�M����!�l�*�2�2�5�2�I�J����!�j�.�0�0��0�G�Hrc��UOUO2oUOUQ*O22UO	UQ*O22UO	UQ*O22UO	UQ*Q*O22UO
%csUOUQ*O22UO	UQ*O22UO	UQ*O22UO	UQ*O22UO	UQ*O22P!)	rrr r3rr"r!�fileA��fileA�rrr~ryr|r(r�s& r�test_is_file�PathTest.test_is_file�
s���H�H�T�Y�Y�������W��-�-�/�0����!�f�*�-�-�/�0����!�n�,�5�5�7�8����!�g�+��-�6�6�8�9������O�O�Q��[�1�1�3�4����a�'�k�2�2�4�5����a��o�6�6�8�9����!�m�+�4�4�6�7����!�k�/�2�2�4�5rc�@�UOUO2oUOUQ*OP
Q52UO	UQ*OP
Q52UO	UQ*OP
Q52UO	UQ*Q*OP
Q52UO
%cyUO	UQ*OP
Q52UO	UQ*OP
Q52UO	UQ*OP
Q52UO	UQ*OP
Q52UO	UQ	*OP
Q52P!)
rr�rr r3rr"r!rBrCrDr�s& r�test_is_file_no_follow_symlinks�(PathTest.test_is_file_no_follow_symlinks�
sE���H�H�T�Y�Y�������W��-�-�e�-�D�E����!�f�*�-�-�e�-�D�E����!�n�,�5�5�e�5�L�M����!�g�+��-�6�6�u�6�M�N��������a�'�k�2�2�5�2�I�J����a�'�k�2�2�5�2�I�J����a��o�6�6�u�6�M�N����!�m�+�4�4�U�4�K�L����!�k�/�2�2�5�2�I�Jrc���UOUO2oUOUQ*O22UOUQ*O22UOUQ*O22UOUQ*Q*O22UO%csUOUQ*O22UOUQ*O22UOUQ*O22UO
UQ*O2P
2UO
UQ*O2P
2UO%cQUO
UQ	*O2P
2UO
UQ
*O2P
2P!P!)rrr r3rr"r!rBrCulinkA�zlinkA)rrr|r�r(r~rkryr�s& r�test_is_symlink�PathTest.test_is_symlink�
s\���H�H�T�Y�Y������!�g�+�1�1�3�4����!�f�*�0�0�2�3����!�n�,�8�8�:�;����!�g�+��-�9�9�;�<������O�O�Q��[�4�4�6�7��O�O�Q��[�4�4�6�7��O�O�Q��_�8�8�:�;��
�
�q�=�(�1�1�3�U�;��
�
�q�;��/�/�1�5�9������M�M�1�}�,�5�5�7��?��M�M�1�{�?�3�3�5�u�=�rc��UOUO2oUOUQ*O22UOUQ*O22UOUQ*O22UOUQ*Q*O22UOUQ*O22UOUQ*O22P!�rrr r3rBrC)rrr|�is_junctionr�s& r�test_is_junction_false�PathTest.test_is_junction_false�
s����H�H�T�Y�Y������!�g�+�2�2�4�5����!�f�*�1�1�3�4����!�n�,�9�9�;�<����!�g�+��-�:�:�<�=����!�m�+�8�8�:�;����!�k�/�6�6�8�9rc��UOUO2o[OO	UO
Q29^tt^2UO
UO2UO
OO2UO
OOU2PPP2P!)%fhP!9h)�
isjunction)rrrrl�objectrUrirOrSrm�assert_called_once_withr�s& r�test_is_junction_true�PathTest.test_is_junction_trues|���H�H�T�Y�Y���
�Z�Z�
�
�q�x�x��
6�
6����Q�]�]�_�a�h�h�.A�.A�.N�.N�O�
�H�H���7�7��:�7�
6�
6�
6�s�A$B=�=C	�C	c��UOUO2oUOUQ*O22UOUQ*O22UOUQ*O22UOUQ*Q*O22UO	UQ*O2P
2UO	UQ*O2P
2P!rN)rrr|�is_fiforkr�s& r�test_is_fifo_false�PathTest.test_is_fifo_falses����H�H�T�Y�Y������!�g�+�.�.�0�1����!�f�*�-�-�/�0����!�n�,�5�5�7�8����!�g�+��-�6�6�8�9��
�
�q�=�(�1�1�3�U�;��
�
�q�;��/�/�1�5�9rzos.mkfifo() requiredc��UOUOQ2o[O[	U22UOUO22UOUO22UOUO22UOUOUOQ2O2P
2UOUOUOQ2O2P
2P![
c#oSO
QS*2Po=K�Po=hh9h)�myfifozos.mkfifo(): %su	myfifo�zmyfifo)
rrr�rjrhr2rWr~rYr|�	is_socketryrk)rrn�es&  r�test_is_fifo_true�PathTest.test_is_fifo_trues���
�H�H�T�Y�Y��)��	1��I�I�c�!�f��	
����	�	��$��������'��������%��
�
�d�h�h�t�y�y�.�9�A�A�C�U�K��
�
�d�h�h�t�y�y�,�7�?�?�A�5�I��
�	1��M�M�+�a�/�0�0��	1�s�D�	D>�D>�D9�9D>c��UOUO2oUOUQ*O22UOUQ*O22UOUQ*O22UOUQ*Q*O22UO	UQ*O2P
2UO	UQ*O2P
2P!rN)rrr|r^rkr�s& r�test_is_socket_false�PathTest.test_is_socket_falses����H�H�T�Y�Y������!�g�+�0�0�2�3����!�f�*�/�/�1�2����!�n�,�7�7�9�:����!�g�+��-�8�8�:�;��
�
�q�=�(�3�3�5�u�=��
�
�q�;��1�1�3�U�;r�AF_UNIXzUnix sockets requiredz/Unix sockets are not implemented on Emscripten.zCannot create socket on WASI.c�j�UOUOQ2o[O[O[O2oUOUO2UO[U22UOUO22UOUO!22UOUO#22UO%UOUOQ2O2P
2UO%UOUOQ2O2P
2P![cNo[S[2%fQ[S27c"SOQ[S2*2gPo=hh9h)�mysockzAF_UNIX path too longzcannot bind Unix socket: u	mysock�zmysock)rr�socketre�SOCK_STREAMrM�close�bindrhrr2r2rWr~r^r|rYryrk)rrn�sockr_s&   r�test_is_socket_true�PathTest.test_is_socket_true(s#��
�H�H�T�Y�Y��)���}�}�V�^�^�V�-?�-?�@������
�
�#�	��I�I�c�!�f��	
������
�&��������%��������%��
�
�d�h�h�t�y�y�.�9�C�C�E�u�M��
�
�d�h�h�t�y�y�,�7�A�A�C�U�K���	��1�o�.�.�+�s�1�v�5��
�
�9�C��F�B�C���		�s*�-E�	F2�$F2�%F-�;F-�"F-�-F2c��UOUO2oUOUQ*O22UOUQ*O22UOUQ*O22UOUQ*Q*O22UO	UQ*O2P
2UO	UQ*O2P
2P!rN)rrr|�is_block_devicerkr�s& r�test_is_block_device_false�#PathTest.test_is_block_device_false@s����H�H�T�Y�Y������!�g�+�6�6�8�9����!�f�*�5�5�7�8����!�n�,�=�=�?�@����!�g�+��-�>�>�@�A��
�
�q�=�(�9�9�;�U�C��
�
�q�;��7�7�9�5�Arc��UOUO2oUOUQ*O22UOUQ*O22UOUQ*O22UOUQ*Q*O22UO	UQ*O2P
2UO	UQ*O2P
2P!rN)rrr|�is_char_devicerkr�s& r�test_is_char_device_false�"PathTest.test_is_char_device_falseIs����H�H�T�Y�Y������!�g�+�5�5�7�8����!�f�*�4�4�6�7����!�n�,�<�<�>�?����!�g�+��-�=�=�?�@��
�
�q�=�(�8�8�:�E�B��
�
�q�;��6�6�8�%�@rc�N�UO[O2oUO2%fUO	Q2UOUO
22UOUO22UOUO22UOUO[OQ02O
2P
2UOUO[OQ02O
2P
2P!)znull device requiredr4r5)rr��devnullr�rWr~rtr|rpryrkr�s& r�test_is_char_device_true�!PathTest.test_is_char_device_trueRs����H�H�R�Z�Z� ���x�x�z�z��M�M�0�1�����(�(�*�+�����*�*�,�-��������%��
�
�d�h�h�"�*�*��V�4�5�D�D�F��N��
�
�d�h�h�"�*�*��T�2�3�B�B�D�e�Lrc���UOUO2oUOUQ*O22UOUQ*O22UOUQ*O22UOUQ*Q*O22UO%c'UOUQ*O22[
OQ6XcUOQ2oLUOQ2oUOUO22UOUQ*O22P!)	rrr r3rr�rzr�r4)rrr|�is_mountr(r�rZr~)rrn�Rs&  r�
test_is_mount�PathTest.test_is_mount]s���H�H�T�Y�Y������!�g�+�/�/�1�2����!�f�*�.�.�0�1����!�n�,�6�6�8�9����!�g�+��-�7�7�9�:��������a�'�k�3�3�5�6�
�7�7�d�?����� �A�����
�A�����
�
��%����!�h�,�0�0�2�3rc���UOoUOUOQ2oUOUOQQ2oUOU2oUOU2oUOU2oUO	UOU22UO	UOU22UO
UOU22UO
UOU22UOUOQ2oUOU2oUO[UO
U2UO[UO
U2UO[UO
U2UO[UO
U2UO[UO
U2UO[UO
U2P!)rrrr�)	rUr+rrr~r|r|r�r8)	rrU�
fileA_path�
fileB_pathr[r�r��non_existentr�s	&        r�
test_samefile�PathTest.test_samefilelsa�������[�[����G�4�
��[�[����F�G�<�
��H�H�Z� ��
�X�X�j�
!���H�H�Z� ������
�
�:�.�/�����
�
�2��'�������J�/�0�������A��'��{�{�4�9�9�e�4���H�H�\�"�����+�Q�Z�Z��;����+�Q�Z�Z��F����+�Q�Z�Z��;����+�Q�Z�Z��F����+�Q�Z�Z��;����+�Q�Z�Z��Frc��UO[29^tt^2UOQQ5PPP2P!)%fhP!9h)r�)r�)r�r�rr:s&r�test_passing_kwargs_errors�#PathTest.test_passing_kwargs_errors�s0��
�
�
�y�
)�
)��H�H��H��*�
)�
)�
)�s�<�A
	�A
	c	���UOoUUOQ2o[UO22oQQ,Tt.tFDpAUOQU2jJ	ooUO	V52P!ttoh)r"rr&)rrr�r�ri)rrnr[�pathsr�r�s&     r�test_iterdir_symlink�PathTest.test_iterdir_symlink�si��
�H�H��
�d�i�i��!���A�I�I�K� ��8?��7I�K�7I�!�Q�t�y�y�'�1�-�7I��K�����)��Ls�A2c�j�UOoUUO2oUQ*o[UOQ22oUOO2%cU.L	[2oUO
VE2UO
[UOQ22[22P!)�FILEazFILEa*)rrr�rGrr�ri�rrnr[r��given�expects&     r�test_glob_posix�PathTest.test_glob_posix�sz���H�H��
�d�i�i�L��
��K���A�F�F�7�O�$�����
�
���!��S�U������'�����Q�V�V�H�-�.���6rc��UOoUUO2oUO[UO	Q22UUOQ2.2UO[UO	Q22UUOQ2.2UO[UO	Q22UUOQ2.2P!)r�rz*a\�dirA/zF*a)rrrir�rGr�s&  r�test_glob_windows�PathTest.test_glob_windows�s����H�H��
�d�i�i�L������Q�V�V�G�_�-��4�9�9�g�1F�/H�I�����Q�V�V�F�^�,��$�)�)�W�0E�.G�H�����Q�V�V�E�]�+�q����G�/D�-F�Grc�$�UOP2oUO[Q29^tt^2[UO	P22PPP2UO[Q29^tt^2[UO	Q22PPP2UO[Q29^tt^2[UO	Q22PPP2P!)%fhK�9h)%fhKf9h)%fhP!9h)rszUnacceptable patternrQz./)rrr:rrGr�s& r�test_glob_empty_pattern� PathTest.test_glob_empty_pattern�s����H�H�R�L��
�
#�
#�J�0F�
G�
G��������H�
�
#�
#�J�0F�
G�
G��������H�
�
#�
#�J�0F�
G�
G��������H�
G�	H�
G��
G�
G��
G�
G�
G�s5�C�2C+�3C>�C(	�!C(	�+C;	�4C;	�>D	�D	c	��]oUOoUUO2Q*9q4UO2[U2FDoUQ*oUO2J	QO	Q,U*2o[]d2Tt,tFDptOU2MJ	ooSFDo	UO
[U	2U2J 	[]d2Tt,tFDptOQ2MJ	ooSo[U2FD1o
UQ*oSFDo	UO
[U	2U2J 	J3	P!ttohttoh)��deepr�r�r�)	rrr*r�r+rGri�nextr�)r�depthrnr[rrQr��j�iters�it�is&          r�test_glob_many_open_files�"PathTest.test_glob_many_open_files�s�����H�H���T�Y�Y�<�&�(�(��	���	��u��A�
��H�A�
�G�G�I���(�(�C�5�5�=�)��-2�3�Z�8�Z����7�#�Z��8��B����T�"�X�q�)��*/��*�5�*�Q���C��*��5����u��A��C��A���� � ��b��1�-����9��6s�D;�Ec�@�]2oU]
*oUOUOQ2oUOQ,U*oUOP	Q5[	U29^tt^2[UO
Q22PPP2P!)%fhP!9h)�2r�r�r��**/)rrr�r*r	rrG�r�recursion_limit�directory_depthrr�s&    r�test_glob_above_recursion_limit�(PathTest.test_glob_above_recursion_limit�ss����)�B�.���x�x��	�	�6�*���}�}��u��6�8���
�
�4�
� �
��
0�
0�����5�!�"�1�
0�
0�
0�s�'B�B	�B	c
�2�UOoUUO2oQoUQ*UQ*.oUOU[UO	UU2222UOU[UO	[U2222P!)�
dir*/file*�
dirB/fileB�
dirC/fileC)rrrir�rGr�rrnr[r�r�s&    r�test_glob_pathlike�PathTest.test_glob_pathlike�sv���H�H��
�d�i�i�L�����l�"�A��$4�5�������Q�V�V�A�g�J�%7�!8�9������Q�V�V�H�W�,=�%>�!?�@rc�``�ROnUU1QkoRRO2oUUQP	,2UUQP
Q,2UUQP	,2UUQP
Q,2P!)c
��:�UOVQ5Tt.tFDo[U2jJ	ooSTt.tFDo[RROU22jJ!	ooROVS2P!ttohttoh)rv)rGrhrri)r�r�rwr�r�r�rnrs&&&&  ��r�_check�1PathTest.test_glob_case_sensitive.<locals>._check�sb���&*�i�i��i�&W�X�&W��c�!�f�&W�F�X�6>�?�h���A�d�i�i��O�,�h�H�?����V�.��Y��?s
�A-�'A2z
DIRB/FILE*r�z
dirb/file*�rr)rr�r�rnsf  @r�test_glob_case_sensitive�!PathTest.test_glob_case_sensitive�s\����H�H��	/�����|���t�\�4��,��t�\�5�<�.�9��t�\�4��,��t�\�5�<�.�9rc���UOo[OUUOQ229^tt^2UO	[UQ2O
Q22UQ2UQ2UQ2.2UO	[UQ2O
Q22UQ2UQ2UQ2UQ2UQ2.2UO	[UQ2O
Q22UQ2UQ2UQ2UQ2.2UO	[UQ2O
Q	22UQ2.2PPP2P!)%fhP!9h)
rrQr�rrrr�r6r�z**/*/*)rr
�
change_cwdrrir�rGr�s& r�
test_glob_dot�PathTest.test_glob_dot�s(���H�H��
�
!�
!�!�D�I�I�v�"6�
7�
7�����A�c�F�K�K��$�%��'�
�A�k�N�A�f�I�'N�
P�����A�c�F�K�K��%�&��7��Q�{�^�Q�v�Y�PQ�R^�P_�ab�cf�ag�(h�
j�����A�c�F�K�K��'�(�1�W�:�q��~�q��y�RS�T`�Ra�*b�
d�����A�c�F�K�K��)�*�Q�|�_�,=�
?�8�
7�
7�
7�s�DE#�#E4	�,E4	z1WASI resolution of '..' parts doesn't match POSIXc
��UOoUUO2oUO[UO	Q22UUOQ2.2UO[UO	Q22UUOQQ2.2UO[UO	Q22UUOQQ2.2UO[UO	Q22UUOQ2.2UO[UO	Q22[22UO[UO	Q22[22UOO
[Ic4UO[UO	Q22[22L=UO[UO	Q22UUOQ	Q2.2[OQ
6Xc]0oL]2oUO[UO	QOQ,U*222UUO,Q,U*N3.2P!)r�z../..�dirA/..rz
dirA/../file*z
dirA/../fileAzdirA/../file*/..z../xyzzyzxyzzy/..�xyzzy�
emscriptenr�)
rrrir�rGrUrV�sys�platformr+)rrnr[�NDOTDOTSs&   r�test_glob_dotdot�PathTest.test_glob_dotdot�s���
�H�H��
�d�i�i�L������Q�V�V�D�\�*�a��	�	�4�.@�,B�C�����Q�V�V�G�_�-��4�9�9�d�D�1I�/K�L�����Q�V�V�I�.�/�1�T�Y�Y���3M�1O�P�����Q�V�V�O�4�5��4�9�9�o�9V�7X�Y�����Q�V�V�$6�7�8�#�%�@�����Q�V�V�J�/�0�#�%�8��8�8�?�?�i�'����S����
�!3�4�c�e�<�
���S����
�!3�4��$�)�)�W�d�8S�6U�V��<�<�<�'��H��H�����Q�V�V�C�H�H�d�V�h�->�$?�@�A�Q�t�y�y�Ee�TX�SY�\d�Sd�Ee�Cf�grc��UOoUUOQQ2oUOP	Q5UOO	]2UO[
UOQ22[
22P!)�mydir1�mydir2r�r�)rrr*r�r.rir�rGr�s&  r�test_glob_inaccessible�PathTest.test_glob_inaccessiblesZ���H�H��
�d�i�i��8�,��	������	�����q������Q�V�V�C�[�)�3�5�1rc
�4�UOoUUOQ2oQoUQ*UQ*.oUOU[UO	UU2222UOU[UO	[U2222P!)r�**/file*rr6)rrrir�r�rr�s&    r�test_rglob_pathlike�PathTest.test_rglob_pathlikesx���H�H��
�d�i�i�� �����g�+�q�<�/�0�������Q�W�W�Q�w�Z�%8�!9�:������Q�W�W�X�g�->�%?�!@�Arc��``�UU1QkoROnRRO2oUUQ,2UUQQQ,2UUQ,QN2UUQ,QN2UUQQQ,2UUQ	,QN2UUQ
,QN2UUQ,QN2UUQ
,QN2UUQ,QN2UUQ,QN2UUQ,Q N2UUQ,Q!N2UUQQ,2UUQQ,2UUQQQ,2UUQQ,2P!)"c�:�UOUP	Q5Tt.tFD'oUOOQ2]6:fJ%UjJ)	ooROX2Tt.tFDoRROU2jJ	to2P!ttohttoh�T��recurse_symlinksr&)rGrj�countrir�r�rGr�r�r�rnrs&&&  ��rr��:PathTest.test_glob_recurse_symlinks_common.<locals>._checksu���'+�y�y���y�'M�9�'M�t����)�)�'�2�a�7��d�'M�F�9����V�%J��1�q����A���%J�K��9��%J��$A=�A=�B
rr�r�r�z*Az*B/*�linkB/fileB�*/fileB�*/z	dir*/*/..�dir*/**�dirC/dirD/fileD�dir*/**/�
dirC/dirD/z
dir*/**/..z	dir*/*/**z
dir*/*/**/zdir*/*/**/..z
dir*/**/fileCzdir*/*/../dirD/**/zdirC/dirD/../dirD/z	*/dirD/**z
*/dirD/**/)rrr)r��
dirB/linkDr�zlinkB/linkD)r��dirB/�dirC/�dirE/�linkB/)�dirC/dirD/..�
dirA/linkC/..�
dirB/linkD/..)r��
dirA/linkC�dirA/linkC/fileB�dirA/linkC/linkD�dirA/linkC/linkD/fileBr�r�r��dirB/linkD/fileBr�r��	dirC/dirDr��dirC/novel.txtr�)r��dirA/linkC/�dirA/linkC/linkD/r��dirB/linkD/r�r�r�)r�r�zdirB/..r��dirA/linkC/linkD/..zdirC/..r�zdirE/..)r�r�r�r�r�r�r�r�)r�r�r�r�)r�r�r�r�r��rr�r[rnsf  @r�!test_glob_recurse_symlinks_common�*PathTest.test_glob_recurse_symlinks_commons/���	L�
�H�H��
�d�i�i�L���q�'�2���q�,��|� <�=��q�$�2�3��q�&�T�U��q�)�l�M�:�;��q�$�F�G��q�+�Q�R��q�)��	�
	�q�*�?�	@��q�,�!G�	H�	�q�+� -�	.�	�q�,� a�b��q�.�#D�	E��q�/�L�>�2��q�&�)=�(>�?��q�+��.?�@�A��q�,���/rc�``�UU1QkoROnRRO2oUUQ,QN2UUQ,2UUQ,QN2UUQ,QN2UUQ,QN2UUP,QN2RROQ
2oUUQ,QN2UUQQQ,2UUQ
Q,2UUQQ	,2UUPQQ	,2UUQQ,2UUQQ,2P!)c�:�UOUP	Q5Tt.tFD'oUOOQ2]6:fJ%UjJ)	ooROX2Tt.tFDoRROU2jJ	to2P!ttohttohr�)r�rjr�rirr�s&&&  ��rr��;PathTest.test_rglob_recurse_symlinks_common.<locals>._check7su���'+�z�z�$��z�'N�9�'N�t����)�)�'�2�a�7��d�'N�F�9����V�%J��1�q����A���%J�K��9��%Jr�r�*/fileAr��file*r�r�r�r�r�rr�r��*/*�*.txt�*.*)r�r�r�r�r��linkB/linkD/fileB)	rr�r�r�r�rr�r�r�)
r�r�r�r�r�r�r�r�r��linkB/linkD/)rsr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�sf  @r�"test_rglob_recurse_symlinks_common�+PathTest.test_rglob_recurse_symlinks_common5s���	L�
�H�H��
�d�i�i�L���q�'�_�	`��q�)�R� ��q�)�a�	b��q�'�L�	M�	�q�$�S�	T��q�"�Q�	R�
�d�i�i�� ���q�#�8�	9��q�'�L�*;�<�=��q�%�+�,�-��q�$���'��q�"�w��-�.��q�'�,�-�.��q�%�*�+�,rc�``�UU1QkoROnRRO2oUOQ2oROU[O
O2UUQQ,2UUQQ,2UUQQ,2UUQ,2RO%cUUQ,QN2UUQ,QN2LUUQQ,2UUQ,QN2UUQ
,QN2UUP,QN2RROQ
2oUUQ,QN2UUQ
QQ,2UUQQQ,2UUQQ	Q,2UUQQ	,2UUQQ,2UUQQ	,2UUPQQ	,2UUQ,QN2UUQQQ	,2UUQQ,2UUQQ,2P!)c�:�[UOUP
Q52oROX2Tt.tFDoRROU2jJ	to2P!ttoh)Fr�)r�r�rirr�s&&&  ��rr��:PathTest.test_rglob_recurse_symlinks_false.<locals>._checkVsD�������D�5��A�B�F����V�%J��1�q����A���%J�K��%Js�A
rrr�z**/fileBr�r�r�r�r�r�r�r�rr�r�r�r�r�r�r�r�r�r�)r�r�r�r�)r�r�r�r�r�r�r�r�)r�r�r�r�r�)rr�r�r�)rsr�r�r�r�r�r)r�r�r�r�r�)rrr�r9�collectionsr-�Iteratorr()rr�r[r�rnsf   @r�!test_rglob_recurse_symlinks_false�*PathTest.test_rglob_recurse_symlinks_falseUs����	L�
�H�H��
�d�i�i�L��
�W�W�W�
�����b�+�/�/�":�":�;��q�'�G�9�%��q�'�L�>�*��q�*�|�n�-��q�)�R� ������1�i�"E�
F��1�d�1�
2�
�1�i�,��0��1�d�N�O��q�'�S�T��q�"�L�M�
�d�i�i�� ���q�#�>�	?��q�'�L�*;�<�=��q�*�|�->�?�@��q�)�l�,=�>�?��q�*�|�n�-��q�%�+�,�-��q�$���'��q�"�w��-�.��q�$�a�b��q�%�'�<�0�1��q�'�,�-�.��q�%�*�+�,rc�f�UOoUUOQ2oUQ*Q*o[UOQ22oUO	2%cU.L	[2oUOVE2UO[UOQ22[22P!)rr�FILEdzFILEd*)rrr�r�r�rir�s&     r�test_rglob_posix�PathTest.test_rglob_posix~s���H�H��
�d�i�i�� ��
��J�� ���A�G�G�G�$�%�����
�
�!���������'�����Q�W�W�X�.�/���7rc�6�UOoUUOQ2oUO[UO	Q22UUOQ2.2UO[UO	Q22UUOQ2.2P!)rr
r�z*\r�)rrrir�r�r�s&  r�test_rglob_windows�PathTest.test_rglob_windows�ss���H�H��
�d�i�i�� ������Q�W�W�W�-�.�!�D�I�I�?P�2Q�0S�T�����Q�W�W�U�^�,��$�)�)�\�0J�.L�Mrc	���UOoUUO2o[UOQP
Q52o.QloSO	X4Tt.tFDpRU*jJ
	to2P!ttoh)r�r�>rrrrrrr"r!r'r�r�r�r�r�r�r�)rrr�r�ri)rrnr[r�r�res&     r�test_rglob_symlink_loop� PathTest.test_rglob_symlink_loop�s^��
�H�H��
�d�i�i�L���A�G�G�C�%�G�8�9��
��	
���� 7��1�Q���� 7�8�� 7s�A*
c	��UOoUUO2Q*oUO2[]d2FDgoUQU0*oU]*%c&UO	UUOQQ22JCUO	UUOQ2P	Q5Ji	UO[
[UOQ222]d2UO[
[UOQ222]22UO[
[UOQ222]22UO[
[UOQ	222]22P!)
�permissionsrrr
rr#r�r�z*/fileCz*/file*)	rrr*r�r�rir�r�rG)rrnrr�rs&    r�test_glob_permissions�PathTest.test_glob_permissions�s��
�H�H������|�m�+���
�
���s��A��D���*�$�D��1�u�u�����$�)�)�V�]� C�D�����$�)�)�V� 4�$��O��	
����S����3��0�1�3�7�����S����4��1�2�B�7�����S����9�!5�6�7��<�����S����9�!5�6�7��<rc��UOUO2Q*oUO2UQ*oUOQ2UO	[UO
Q22U,2P!)�long_symlink�bad_linkr��Xbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbad)rrr*r�ri�sortedrG)rrrs&  r�test_glob_long_symlink�PathTest.test_glob_long_symlink�s\���x�x��	�	�"�^�3���
�
���*�$�����K�(������	�	�&� 1�2�X�J�?rc�T�UOoUO[UQ2O22Q2UO[UQ2O22Q2UO[UQ2O22Q2UO[UQ2O22Q2UO[UQ2O22Q2UO[UQ2O22Q2P!)r�r.r�rSr�r�)rrirhrnr�s& r�test_absolute_posix�PathTest.test_absolute_posix�s����H�H������Q�s�V�_�_�.�/��5�����Q�t�W�-�-�/�0�$�7�����Q�v�Y�/�/�1�2�F�;�	
����Q�t�W�-�-�/�0�$�7�����Q�u�X�.�.�0�1�5�9�����Q�w�Z�0�0�2�3�W�=rc�t�[O]2oUO[OU2UOUO2oUQ*OQ29^tt^2PPP2[OUOOUOQ22oUO[OUO2Q2[O]2UQ*OQ29^tt^2PPP2[OUOOUOQ22oUO[OUO2Q2P!)%fhCK'9h)%fhK�9h)r
�new_filer��other_new_file�)r��umaskrMrrr,r�rUr+rir�r��r�old_maskr[r�s&   r�test_open_mode�PathTest.test_open_mode�s���8�8�E�?��������(�+��H�H�T�Y�Y����*�n�
"�
"�4�
(�
(��)�
�W�W�T�[�[�%�%�d�i�i��<�
=��������b�j�j�1�5�9�
������"�"�
(�
(��
.�
.��/�
�W�W�T�[�[�%�%�d�i�i�1A�B�
C��������b�j�j�1�5�9�)�
(�
(��
/�
.�s$�3F�F'�F$	�F$	�'F7	�0F7	c�6�[O2o[OQ2UOQ2oUO	[UO
22Q2[OU2P![OS2h9h)r�r�z/spam)r�rLr�rrirhr�)r�current_directoryr[s&  r�test_resolve_root�PathTest.test_resolve_root�sb���I�I�K��	(��H�H�S�M����� �A����S�����-�w�7��H�H�&�'��B�H�H�&�'�s�AB�Bc���[O]2oUO[OU2UOUO2oUQ*O2[OUOOUOQ22oUO[OUO2Q2[O]2UQ*O2[OUOOUOQ22oUO[OUO2Q2UQ*OQQ5[OUOOUOQ22oUO[OUO2Q2P!)r
r%r&r'r(�masked_new_filer�)r�)r�r)rMrrr�r�rUr+rir�r�r*s&   r�test_touch_mode�PathTest.test_touch_mode�s;���8�8�E�?��������(�+��H�H�T�Y�Y���	
�Z���� �
�W�W�T�[�[�%�%�d�i�i��<�
=��������b�j�j�1�5�9�
�����	
�
�	�$�$�&�
�W�W�T�[�[�%�%�d�i�i�1A�B�
C��������b�j�j�1�5�9�	
�
�	�%�%�5�%�1�
�W�W�T�[�[�%�%�d�i�i�1B�C�
D��������b�j�j�1�5�9rrz%pwd module does not expose getpwall()zno home directory on VxWorksc�f�UOo[OQ2]PHoUO[
O22oUOoUOOQ29%fQoUO2FD=oUOoUOOQ2oVd6wfJ2U%fJ<L	SoSoQoUOU2%cUQ*
oJ#UQ2o	UQUQ02o
UQUQ02oUQUQ02oUQUQ02o
UP2oUQUQ02o[O29^tt^2oUOQ	2UO!U	O#2UU2Q
*2UO!U
O#2UU2Q
*2UO!UO#2UU2Q
*2UO!UO#2U2UO!U
O#2U
2UO!UO#2U2UO%[&UO"2QUQ	$UO!U	O#2UQ22UO!U
O#2UU2Q
*2UO!UO#2UU2Q
*2UO!UO#2U2UO!U
O#2U
2UO!UO#2U2UO%[&UO"2PPP2P![cCK�h9h)%fhP!9h)
r�r��fakeuserr�z~/Documentsrrz
/Documentsr�r�r{�	Documentsz/tmpz/tmp/Documents)rr�
import_moduler�r�r��getuidr��pw_dir�rstripr�getpwnamr�r
r|�unsetrirsr��RuntimeError)rrnr��pwdent�username�userhome�	othername�	otherhome�fakenamer�r��p3�p4�p5�p6�p7r~s&                r�test_expanduser_posix�PathTest.test_expanduser_posix�s���
�H�H���#�#�E�*�����b�i�i�k�*���>�>���=�=�'�'��,�3�3����l�l�n�F����I��
�
�,�,�S�1�I��$����	%�!�I� �I���	��,�,�x�(�(��C���)�
�}�
��
��8�*�J�'�
(��
��9�+�Z�(�
)��
��h�Z�z�*�
+��
��H�:�Z�(�
)��
�r�U��
��8�*�J�'�
(��
�
*�
*�
,�
,���I�I�f�����R�]�]�_�a��k�K�.G�H����R�]�]�_�a��k�K�.G�H����R�]�]�_�a�	�l�[�.H�I����R�]�]�_�b�1����R�]�]�_�b�1����R�]�]�_�b�1����l�B�M�M�:� �C��K����R�]�]�_�a�0@�.A�B����R�]�]�_�a��k�K�.G�H����R�]�]�_�a�	�l�[�.H�I����R�]�]�_�b�1����R�]�]�_�b�1����R�]�]�_�b�1����l�B�M�M�:�%-�
,���	��	��-�
,�
,�s1�N
�0N
�%HN�
	N�N�N�N0	�(N0	�darwinz1Bad file descriptor in /dev/fd affects only macOSc�B�[[OQ2OQ22Q*oU%fUO	Q2SFD�oUO2UO
2UO2UO2UO2UO2UO2UO2J�	P![c7oSO[O6XcSO!Q2gPo=hh9h)z/dev/fdr�:�NNz.no file descriptors - issue was not reproducedz Bad file descriptor not handled.)rr6r3r�rWr�rxryr�rprtrYr^rr�EBADF�fail)r�file_descriptorsr0r_s&   r�test_handling_bad_descriptor�%PathTest.test_handling_bad_descriptor9
s���	�#�G�L�L��$;�$A�$A�#�$F�G��K��#��
�
�N�O�&�����
����
��	�	�������!�!�#�� � �"��	�	�����
�&���	��w�w�%�+�+�%��	�	�<�=���	�s*�<C�BC�	D�'D�(D�D�Dc�x�UOoUOUOQ2UQ22UO[UOQ2UOUOQ2UQ22UOUOQ2UQ22UOUOQ2UQ22[
%f?UOUOQ[O2Q02UQ22UO[UOQ2UO[UOQ2UO[UOQ2UO[UOQ	2UO[UOQ
2P!)z
file:/foo/bar�/foo/barzfile://foo/barzfile:///foo/barzfile:////foo/bar�	//foo/barzfile://localhost/foo/barzfile://�foo/bar�file:foo/bar�http://foo/bar)rri�from_urir�r:rrh�gethostnamer�s& r�test_from_uri_posix�PathTest.test_from_uri_posixQ
s@���H�H��������O�4�a�
�m�D����*�a�j�j�2B�C�������$5�6��*�
�F�������$6�7��;��H�������$>�?��:��O��w����Q�Z�Z�'�&�2D�2D�2F�1G�x�(P�Q��z�]�
,����*�a�j�j�)�<����*�a�j�j�*�=����*�a�j�j�+�>����*�a�j�j�.�A����*�a�j�j�2B�Crc	���UOoUOUO[QP	Q52UQ22UOUO[QP	Q52UQ22P!)rV)�
add_schemerW�rrir[rr�s& r� test_from_uri_pathname2url_posix�)PathTest.test_from_uri_pathname2url_posixb
sY���H�H��������L���$M�N�PQ�R\�P]�^�������L���$N�O�QR�S^�Q_�`rc��	�UOoUO[UQ2O22Q2UO[UQ2O22Q2UO[UQ2O22Q2QoUO[UU2O22U2UO[UUQ*2O22UQ*2UO[UUQ*2O22UQ*2[O
Q29^tt^2oV#mUO[U2O22U2UO[UQ2O22U2UO[UQ2O22[OOUQ22UO[UQQQ	2O22[OOUQQQ	22PPP2[OOUO2]*o[OUO29^tt^2UO[UQ
2O22UQ
*2UO[UQ2O22UQ*2UO[UU2O22UO2UO[UUQ*2O22[OOUOQ22PPP2[OUO29^tt^2o[O2oUQ
0o[O U2[O U2UO[UU2O22U2UO[UUQ*2O22UQ*2PPP2P!)%fhCKZ9h)%fhCK
9h)%fhP!9h)rzr{r�z\\server\share\rRza\brkrQr�r�rXz\foor�z\dirA)rrirhrnrrlrmr�r�r+�
splitdriverr
r��subst_driverLr�)rrn�sharerLrC�other_drive�	saved_cwd�	other_cwds&       r�test_absolute_windows�PathTest.test_absolute_windowsh
sg���H�H��	
����Q�v�Y�/�/�1�2�F�;�����Q�w�Z�0�0�2�3�W�=�����Q�z�]�3�3�5�6�
�C�&������Q�u�X�.�.�0�1�5�9�����Q�u�s�{�^�4�4�6�7����E�����Q�u�v�~�.�7�7�9�:�E�F�N�K��Z�Z��
$�
$��"'�����S������0�%�8����S��3����!2�3�U�;����S��3����!2�3�R�W�W�\�\�%��5M�N����S��3��S�!1�!:�!:�!<�=��W�W�\�\�%��c�3�?�
A�
%����"�"�4�9�9�-�a�0��
�
!�
!�$�)�)�
,�
,����S��4��!1�!1�!3�4�e�d�l�C����S��7��!4�!4�!6�7����I�
���S��5��!2�!2�!4�5�t�y�y�A����S��5�5�=�!1�!:�!:�!<�=�r�w�w�|�|�D�I�I�W\�?]�^�-��
"�
"�4�9�9�
-�
-���	�	��I�&�-�v�.�I��H�H�Y���H�H�Y��
���S��;��!8�!8�!:�;�Y�G����S��;��#6�!7�!@�!@�!B�C�Y�QX�EX�Y�.�
-�'%�
$�
$��-�
,�
,��.�
-�
-�s9�$DR7�DS�:B3S�7S	�S	�S	�S	�S0	�(S0	c�b`````````	�ROn[O29^tt^2nROQQQQ2QRQ$RQ2nRQ2nRQ2nRQ	2nRQ
2nRP2n	RO	[
RO2RO	[
RO2RO	[
RO2RORO
2R2RORO
2R2ROR	O
2R	2UUUUUUUU	U1	QkoQRQ$U2Q
RQ$QRQ$U2ROQQ2QRQ$U2QRQ$U2PPP2P!)%fhP!9h)r{ry�HOMEPATH�	HOMEDRIVE�alice�USERNAMEz~/My Documentsz~alice/My Documentsz~bob/My Documentsz/~/My Documentszd:~/My Documentsc�:	�ROQP2RORO2RQ22RO[RO2QRQ$RORO2RQ22RORO2RQ22RORO2R2RORO2R2RORO2R2P!)rqzC:/Users/alice/My DocumentsrpzC:/Users/bob/My Documents)r�rirsr�r?)	rnr~r�r�rFrGrHrIrs	���������rr��/PathTest.test_expanduser_windows.<locals>.check�
s�������
�D�)�� � �����!"�#@�!A�C��!�!�,��
�
�>�")��J��� � �����!"�#@�!A�C�� � �����!"�#>�!?�A�� � �����"�5�� � �����"�5�� � �����"�5rzC:\Users\alicezC:\zUsers\alicezC:\Users\eve)rr
r|r>r�r?rsri)
rr�rnr~r�r�rFrGrHrIs
f @@@@@@@@r�test_expanduser_windows� PathTest.test_expanduser_windows�
sh�����H�H��
�
*�
*�
,�
,���I�I�f�m�Z��E�%�C�
�O��#�$�B��(�)�B��&�'�B��$�%�B��%�&�B��2��B����l�B�M�M�:����l�B�M�M�:����l�B�M�M�:����R�]�]�_�b�1����R�]�]�_�b�1����R�]�]�_�b�1�
6�
6�1�C�
�O��G�%�C���,�C�
�O��G��I�I�k�:�.�!3�C�
���G�+�C��K��G�[-�
,�
,�
,�s�EF�F.	�&F.	c�(�UOoUOUOQ2UQ22UOUOQ2UQ22UOUOQ2UQ22UOUOQ2UQ22UOUOQ2UQ22UOUOQ2UQ22UOUOQ2UQ22UOUOQ	2UQ22UOUOQ
2UQ22UO[UOQ2UO[UOQ2UO[UOQ
2UO[UOQ2UO[UOQ2P!)zfile:c:/path/to/file�c:/path/to/filezfile:c|/path/to/filezfile:/c|/path/to/filezfile:///c|/path/to/filezfile://server/path/to/file�//server/path/to/filezfile:////server/path/to/filezfile://///server/path/to/filez file://localhost/c:/path/to/filez file://localhost/c|/path/to/filerXz
c:/foo/barrWrYrZ)rrir[r�r:r�s& r�test_from_uri_windows�PathTest.test_from_uri_windows�
s����H�H��������$:�;�Q�?P�=Q�R�������$:�;�Q�?P�=Q�R�������$;�<�a�@Q�>R�S�������$=�>��BS�@T�U�������$@�A�1�E\�C]�^�������$B�C�Q�G^�E_�`�������$C�D�a�H_�F`�a�������$F�G��K\�I]�^�������$F�G��K\�I]�^����*�a�j�j�)�<����*�a�j�j�,�?����*�a�j�j�+�>����*�a�j�j�.�A����*�a�j�j�2B�Crc��UOoUOUOQ[Q2*2UQ22UOUOQ[Q2*2UQ22P!)zfile:zc:\path\to\filerwz\\server\path\to\filerxrar�s& r�"test_from_uri_pathname2url_windows�+PathTest.test_from_uri_pathname2url_windows�
sa���H�H��������G�l�;M�.N�$N�O�QR�Sd�Qe�f�������G�l�;S�.T�$T�U�WX�Yp�Wq�rrc���UOoUO[O29^tt^2UQ2O	2PPP2P!)%fhP!9h�rH)rr�r6r7rr�s& r�test_owner_windows�PathTest.test_owner_windows�
�?���H�H��
�
�
�w�;�;�
<�
<�
�e�H�N�N��=�
<�
<�
<���A�A'	�A'	c���UOoUO[O29^tt^2UQ2O	2PPP2P!)%fhP!9hr)rr�r6r7rr�s& r�test_group_windows�PathTest.test_group_windows�
r�r�r#)T)�r(r=r>r?r6r3rr
r(r\r5r>rDrNrZr�rardrhrort�unittest�skipIfr�rrr�r�r�r�r�r1r�r��skip_unless_xattrr�r�r�r�r�r�r�r�rrr	rrr,r�r�rr3r<rArIrNrRrUrYr`r$rcrgrjrmrprtrzr}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r+r�r�r�r�r�r��skip_unless_working_chmodr�r�r��
skipUnlessrrrrrr r)r-r2r6r:r=rCrGrO�skip_if_dac_overrider[r.rarhroru�skip_unless_hardlinkr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr�r�r�r�r�rrrrrrr#r'r*r-r0r6r<r?rErHrKrPrVrZr`rcrhrmrqruryr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr
rrrrrr"rr,r0r4rKrSr]rbrkrtryr|r�r�r@rAr�r�s@@rrres�
����
�,�,�C��'�'�)�K�%T�N$�;�
=��	B�)�F�)��_�,)��_�_��t��F��
-��
-��_�_�W�:�;�
N�<�
N�5�4B�B�E�&�F��F��F��F�� � �B�!�B��A��A��?��?��8��8�
�O��O��O��O��?��?��O��O��*��*��W��W��W��W��W��W� �E��E�(%F�N�_�_�S�\�\�W�,�F�F�����0F�H}�~��*���*�I�*� � �G�!�G��	=��	=��8��8�
�	=��	=��8��8�
�	=��	=�	:�����	:��&��&�8��%��%�8�
,� ����)��$��$�)�*��)��)���&���&���0���0���%���%���/���/���*���*�	:�����D�
�)��)��0��0��*��*��E��E�(�T&�
9G�F��5��9V��9V�v�A��A�:���5���5�,��%��%��_�_�W�R��,�.H�I��J���(�(�
5�)�
5���(�(�5�)��5�N�����F�G�3�H�3�����F�G��K��H�K�$O�����F�G�3�H�3�����F�G��K��H�K�$*�"�
*�+�F�$?��	=��	=��(��(�,�_�_�S�\�\�"�%��1�I�K��#�#��(�(�5�)�$�K�5�.�(��(�.�
&��
&������X�.�0F�G�
�_�_�S�\�\�Y�.�<�>�
%�>�H�
%�"�(�#�#�(�$�(�"�_�_�W�R��(�*@�A��B��(�"(�"<�0B�	;�F�2
<�<�"C�
�7��7�
;�
;�(�<�_�_�� � ��6���_�_����	�!�A��I�	�	�I��_�_�� � ��6���_�_����	�!�A��
I�	�	�
I��_�_�� � ��6���_�_����	�!�A��B�	�	�B� �_�_�� � ��6���_�_����	�!�A��I�	�	�I��_�_�� � ��6���_�_����	�!�A��
I�	�	�
I��.��.�.�_�_�W�R��+�-F�G��H��?�?�@��
-��
-�5�(<�
�?��?�
�+��+�
(�
=�&4�I�6�K�>� :�;�:������X�.�0F�G�
�_�_�S�\�\�Y�.�;�=�
J�=�H�
J�<�������3�5L�M�
�_�_��H���_�_��0��L���N�L�"B�A�	M�
4�G�* ��*��*��7��7��H��H��.�&	#�A�
:��
?��
?��_�_�W�Q�R�h�S�h�.2�B��"0��"0�H�-��-�>'-�R�8��8��N��N��9��9�$�=��=�$�@��@��	>��	>��_�_��6���:��	�
:� �(��(��_�_��6���:��	�
:�"�����j�1�@�B�
�_�_�S�\�\�Y�.�3�5��3;��5�B�
3;�j�_�_�S�\�\�X�-�H�J����J��*�D��D� �a��a�
�+Z��+Z�Z�/��/�b�D��D�*�s��s�
����
����rrc�`�\sQsQsn\O
s\Os\Os	Qs
QsQsQs
Qs\Q2s\Q2sQ	sUsP!)
�PathWalkTesti�
c	�v�UO2OQ2P*oU[7c$UO%fUO	Q2UOUOQ2UmUOQ*UmUOQ*Um	UOQ*Um
UOQ*UmUO,Q,1UmUOUOQ2o[OUO2[OUO2[OU2UOQ	*oUOQ
*oUOQ*oUOUOQQ2oV4VV1FD7o[UQQ
Q59^tt^2oUO!QUQ02PPP2J9	UO%c�UOQ*o	UOQ*o
[O"V OP	Q5[O"QU	2[O"[O$O'QQ2U
2UO,,QN1UmUOQ*oUQ*oUOQ*o
[OU2UO)Q2UO%cZ[O"V�2UO]*O+Q2UO]*O-2[O.U]2[O0U2[O.U[2O42[O6U2[O8U2P!)%fhCJK9h[:c'SO]*O+Q2P!h9h)rQr�TEST1�SUB1�SUB11�SUB2r�tmp3�TEST2�tmp1�tmp2�tmp4�wzutf-8)�encodingzI'm z' and proud of it.  Blame test_pathlib.
�broken_link�broken_link2r#�broken�SUB21�broken_link3zI am tmp5, blame test_pathlib.)r�r�rr�)rSrTr0r(rWrr�	walk_path�	sub1_path�
sub11_path�	sub2_path�	link_path�	sub2_treer��makedirsr,r-r/r�r+rNr�sortr.�listdirr�r�r,r5r2)rrZ�t2_path�	tmp1_path�	tmp2_path�	tmp3_path�	tmp4_pathr�r0�broken_link_path�broken_link2_path�
sub21_path�	tmp5_path�broken_link3_paths&             rr\�PathWalkTest.setUp�
s����w�w�y���s�#�B�'���*�*�4�3C�3C�3C��M�M�-�.����$�)�)�W�5������&�0����.�.�7�2������&�0������&�0����.�.�"�v�h�7��� �(�(�4�9�9�g�.��
���D�O�O�$�
���D�N�N�#�
���G���N�N�V�+�	��N�N�V�+�	��N�N�V�+�	��H�H�T�Y�Y���8�	��)�>�D��d�C�'�2�2�a����$�t�f�$L�M�N�3�2�?�����#�~�~�
�=�� $���� ?���J�J�w���D�I��J�J�x�!1�2��J�J�r�w�w�|�|�F�H�5�7H�I�"�n�n�b�2a�b�D�N��N�N�W�,�
���'�	� �N�N�^�;��
���J�����=�>������J�J�y�4��N�N�1��$�$�^�4��N�N�1��"�"�$�
����Q��	!��J�J�z�"�
�H�H�Z����.��I�I�i� ��H�H�Z� �93�2�2��.�	.��N�N�1��$�$�W�-�	.�s*�O2	�	P�2P
�;P
�	P8�#P8�7P8c���QUO]*7c7[OUOQ*[O
2[OUO2P!)r�)	r�r�r.r�r�r�r
r4rr:s&rr5�PathWalkTest.tearDown7s@���d�n�n�Q�'�'��H�H�T�^�^�g�-�t�|�|�<�������#rc�@�,oUOOUOQ5o[U2vq4oUO	U,2QoV6*oV6*OQ2oUO
U2ST	T
t,tFDvo	p�MJ
	oo	o
UOU2UOV{2UOV�2SFD#oV�6wfJUOV<*U2J%	UO
U2P!tto
o	hSO
S2h9h))�on_errorr�z.new)
r�r�rr�rirr�r~r�r�)
r�errors�walk_itrO�dirs�filesrJ�path1�path1newr�rQ�rootsrKs
&            r�test_walk_bad_dir�PathWalkTest.test_walk_bad_dir<s������.�.�%�%�v�}�}�%�=�� ��M���E������$�������K�,�,�V�4��
���X��		#�&-�.�g�7�1�a��Q�g�E�.��O�O�F�#����U�*����X�-����<��M�M�$�+�u�5��
�O�O�E�"��/��
�O�O�E�"�s$�=D
�D�?D
�D
�D
�
Dc	���]oUOUOQ2oUOU,Q,U*N3oUOP	Q5[]d2Tt,tFDpBO	P
Q5MJ	oo[U]*2FDCoX6%cQ,L,,1oSFDoUO[
U2U2J 	UOoJE	[]d2Tt,tFDpBO	P	Q5MJ	ooSo[U]*2FD?oX6U6cQ,L,,1oSFDoUO[
U2U2J 	UQ*oJA	P!ttohttoh)r�r�r�r���top_down)rrr*r�r�rir�r�)	rr�rr�rQr�r�r�r�s	&        r�test_walk_many_open_files�&PathWalkTest.test_walk_many_open_filesPs0�����x�x��	�	�6�*���x�x��-���e��-���
�
�4�
� �49�#�J�?�J�q���E��*�J��?��u�q�y�!�A��q�s�e�b�"�5�H���� � ��b��8�4���;�;�D�	"�49��:�>�:�a���D��)�:��>����u�q�y�!�A��5�y�s�e�b�"�=�H���� � ��b��8�4���#�:�D�	"��@��?s�E�Ec�t�](oU]
*oUOUOQ2oUOQ,U*oUOP	Q5[	U29^tt^2[UO
22[UO
P
Q52PPP2P!)%fhP!9h)�(r�r�r�r�)rrr�r*r	rr�r�s&    r�test_walk_above_recursion_limit�,PathWalkTest.test_walk_above_recursion_limites�����)�B�.���x�x��	�	�6�*���}�}��u��6�8���
�
�4�
� �
��
0�
0�����������E��*�+�1�
0�
0�
0�s�'5B&�&B7	�/B7	c���UOOP	Q5oSFD?vq#oV O6XfJUOU,2UOUQ,2P!	UO	Q2P!)Tr�r�z/Didn't follow symlink with follow_symlinks=True)r�r�r�rirQ�rr�rOr�r�s&    r�test_walk_follow_symlinks�&PathWalkTest.test_walk_follow_symlinksqsf���.�.�%�%�d�%�;��!(��D���~�~�%�� � ��r�*�� � ����1��	")�
�I�I�G�Hrc��UOOP
Q5oSFD+vq#oV O6XfJUOQU2L	UO	Q2UOOP	Q5oSFD,vq#oV O6XfJUOQU2P!	UO	Q2P!)Fr�rzsymlink not found)r�r�r�r�rQr�s&    r�test_walk_symlink_location�'PathWalkTest.test_walk_symlink_location|s����.�.�%�%�e�%�<��!(��D���~�~�%��
�
�f�e�,��")�

�I�I�)�*��.�.�%�%�d�%�;��!(��D���~�~�%��
�
�f�d�+��")�

�I�I�)�*r)r�r�r�r�r�r�)r(r=r>r?r6r3rrrr(r\r5r�r�r�r1r�r�r@rArBs@rr�r��
sf����
�,�,�C��=�=�D��&�&�K�?!�B$�
#�(�*
,��I��I��+��+rr�r�z'test requires a POSIX-compatible systemc�0�\sQsQs\O
sQsP!)�
PosixPathTesti�r#)r(r=r>r?r6r^rr@r#rrr�r��s
��
�
�
�Crr�z)test requires a Windows-compatible systemc�0�\sQsQs\O
sQsP!)�WindowsPathTesti�r#)r(r=r>r?r6r]rr@r#rrr�r��s
��
�
�
�Crr�c�F�\sQsQsQQ\O
2sPsQsP!)�PathSubclassTesti�c��\sQsQsQsP!)�PathSubclassTest.clsi�r#rar#rrrr��rrrr#)	r(r=r>r?r6r3rr?r@r#rrr�r��s��
�g�l�l�
� �rr�c�B`�\sQsQsnQQ2sQsQsQsUsP!)�CompatiblePathTesti�c�4`�\sQsQsnQsQsQsQsUsP!)�CompatiblePathTest.CompatPathi�c��VmP!r��string)rr�s&&rr��&CompatiblePathTest.CompatPath.__init__�s�� �Krc�D�[U2UOQU02!r�rlr��r�others&&r�__truediv__�)CompatiblePathTest.CompatPath.__truediv__�s ����:����
�Q�u�g�6�7�7rc�D�[U2UQUO02!rr�r�s&&r�__rtruediv__�*CompatiblePathTest.CompatPath.__rtruediv__�s ����:���q����
�6�7�7rr�)	r(r=r>r?r�r�r�r@rArBs@r�
CompatPathr��s����	!�	8�	8�	8rr�c�|�[OQ2UOQ2*oUOVO2UO	UO
Q2UO
[29^tt^2[OQ2]
*PPP2P!)%fhP!9h)�test�rightz
test/right)r6r�r�r9rir�r�r��rr�s& r�test_truediv�CompatiblePathTest.test_truediv�sy���!�!�&�)�D�O�O�G�,D�D�����f�o�o�6��������5�
�
�
�y�
)�
)����V�$�r�)�*�
)�
)�
)���B*�*B;	�3B;	c�|�UOQ2[OQ2*oUOVO2UO	UO
Q2UO
[29^tt^2]
[OQ2*PPP2P!)%fhP!9h)�leftr�z	left/test)r�r6r�r9rir�r�r�r�s& r�
test_rtruediv� CompatiblePathTest.test_rtruediv�sy������(�7�+;�+;�F�+C�C�����f�o�o�6��������4�
�
�
�y�
)�
)���!�!�&�)�)�*�
)�
)�
)�r�r#)	r(r=r>r?r�r�r�r@rArBs@rr�r��s����8�8� *�*�*rr��__main__)=rr$r�r�r�rr�r6r�rVrhr�rJr�r�urllib.requestr�test.supportrrrrrr	r
rr�test.support.os_helperr
rrr&�ImportErrorrr�r"r$r�r&r-r0r+r.r1�TestCaser3rErMrr
rrr�r�rZr�r�r�r�r(�mainr#rr�<module>r�s����	�	�
��
��
��
�����'�&�%�:�:�+�"�+�/�@�@�������
��u������%���
�
�S�x�0�0�S�I�X�&�&�I�s@�8�$�$�s@�l �� �"�,�"� �<� �I&�|�I&�XL]+�8�$�$�]+�@
������D��"K�L��H�/��M��
������D��"M�N��h� 3��O�� �x� �&*��*�*�&*�R�z���M�M�O���au���E�������C�#������E��sH�?G�G�
G.�G�G�G�G+�"G+�*G+�.G;�4G;�:G;

Youez - 2016 - github.com/yon3zu
LinuXploit