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/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python315/Lib/test/__pycache__/test_perf_profiler.cpython-315.pyc
R
>lqjj^c� �]PHs]PHs]PHs]PHs]PHs]PHs]PHs]QHGs]QH$G
s
GsGs]QH4Gs\O%f\O Q2g\O"P	P	P	P	Q5%c\O Q2gQs\2%f\O Q2gQ	sQ
Q\O(2sQsQ
sQP
-QksQQ2s\O4\2Q2\O4\2Q2QQ\O(\222sQs\O4\2Q2\O4\]]2Q2QQ\O(\222s\Q6Xc\O>2P!P!)�)�support)�make_script�assert_python_failure�assert_python_ok)�temp_dirztest module requires subprocess)�address�memory�ub�functionz,test crash randomly on ASAN/MSAN/UBSAN buildc�`�[OQ2oU%fP
![U2]6H!)�PY_HAVE_PERF_TRAMPOLINE)�	sysconfig�get_config_var�int)�perf_trampolines �,C:\Python315\\Lib\test\test_perf_profiler.py�supports_trampoline_profilingrs)���.�.�/H�I�O������1�$�$�z'perf trampoline profiling not supportedc���[OO2oUOQPQ[O-2U%cUOU2QUQ$U!)�DEBUGINFOD_URLS�PERF_CONFIG�0�
PYTHON_JIT)�os�environ�copy�update�devnull)�env_vars�envs, r�	_perf_envr %sQ��
�*�*�/�/�
�C��J�J��r��2�:�:�	
����
�
�8���C����Jrc�``�\sQs]4snU1QksU1QkU1Qkks\O\O2Q2Q2s
\O\O2Q2Q2s\O\O2Q2Q2s\O\O2Q2Q2s
Q	sQ
sQsQsQ
sQsUsU9s!)�TestPerfTrampolinec�:�[RU_2[[OQ2OQ22UmP!��/tmp/z
perf-*.map��super�setUp�set�pathlib�Path�glob�
perf_files��self�	__class__s&�rr(�TestPerfTrampoline.setUp5�,���
��
���g�l�l�7�3�8�8��F�G��rc� :�U]6�cPgQP-!���return�)�format�
__classdict__s"�r�__annotate__�(TestPerfTrampoline.tearDown.__annotate__9������$�rc��:�[RU_2[[OQ2OQ22UO*
oSFDoUO2J	P!r$�r'�tearDownr)r*r+r,r-�unlink�r/�files_to_delete�filer0s&  �rr?�TestPerfTrampoline.tearDown9�M���
��������W�%�*�*�<�8�9�D�O�O�K�	�$�D��K�K�M�$rz#fails on BOLT instrumented binariesc
��`
�Qo[29^tt^2o[UQU2o[O[O
QU,P	[O[O[2Q59^tt^2oUO2vqVPPP2PPP2UOWP2UOWP2[OQWOQ02oUOUO22UO2oUO!2o	QW0QU0QU0,o
S
FD�n
[#U
1Q	kU	2P2oUO%UQ
R
Q02UO'Q2]*oUO)UQ
2UO[+U2O-[.O02Q2J�	P!)%fhCKG9h)%fhCKS9h)z�if 1:
                def foo():
                    pass

                def bar():
                    foo()

                def baz():
                    bar()

                baz()
                �perftest�-Xperf��text�stderr�stdoutr�
/tmp/perf-�.map�py::foo:�py::bar:�py::baz:c3�F:�SF �DoRU7fJUw�	J	P!3h�Nr7)�.0�line�expected_symbols& �r�	<genexpr>�;TestPerfTrampoline.test_trampoline_works.<locals>.<genexpr>hs��*���*�$��4�0G���*�s�	!�!zCould not find z
 in perf file� �0xz*Address should contain only hex characters)rr�
subprocess�Popen�sys�
executable�PIPEr �communicate�assertEqualr*r+�pid�
assertTrue�exists�	read_text�
splitlines�next�assertIsNotNone�split�assertNotStartsWithr)�issubset�string�	hexdigits)r/�code�
script_dir�script�processrLrK�	perf_file�perf_file_contents�
perf_lines�expected_symbols�	perf_line�	perf_addrrVs&            @r�test_trampoline_works�(TestPerfTrampoline.test_trampoline_worksAs�������Z�Z�:� ��Z��>�F��!�!�����6�2��!���!����K����!(�!4�!4�!6�����	
�����$������$��L�L�:�g�k�k�]�$�!?�@�	����	�(�(�*�+�&�0�0�2��'�2�2�4�
��v�h���v�h���v�h��
��
 0�O��H�*�H�$��I�
� � ��_�_�,=�]�K�
�"����,�Q�/�I��$�$�Y��5��O�O��I��'�'��(8�(8�9�<�
� 0�+�����Z�Z�s0�A&G"�=G	�G"�G
�G
�	G"�"G3	�+G3	c
�P�Qo[29^tt^2o[UQU2o[O[O
QU,P	[O[O[2Q59^tt^2oUO2vqVPPP2PPP2UOWO]2UOWP2[WO22o[OQUOQ02o[OQUQ02o	UO!UO#22UO!U	O#22UO%2o
UO'QW0U
2UO'QU0U
2UO'QU0U
2U	O%2oUO'Q	U0U2UO'Q
U0U2UO'QU0U2UO)Q	U0U
2UO)Q
U0U
2UO)QU0U
2UO)QU0U2UO)QU0U2UO)QU0U2P!)%fhCK�9h)%fhCK9h)a�if 1:
                import os, sys

                def foo_fork():
                    pass

                def bar_fork():
                    foo_fork()

                def baz_fork():
                    bar_fork()

                def foo():
                    pid = os.fork()
                    if pid == 0:
                        print(os.getpid())
                        baz_fork()
                    else:
                        _, status = os.waitpid(-1, 0)
                        sys.exit(status)

                def bar():
                    foo()

                def baz():
                    bar()

                baz()
                rGrHrIrMrNrOrPrQ�
py::foo_fork:�
py::bar_fork:z
py::baz_fork:)rrr[r\r]r^r_r r`ra�
returncoder�stripr*r+rbrcrdre�assertIn�assertNotIn)r/rnrorprqrLrK�	child_pidrr�perf_child_filers�child_perf_file_contentss&           r� test_trampoline_works_with_forks�3TestPerfTrampoline.test_trampoline_works_with_forksts]����:�Z�Z�:� ��Z��>�F��!�!�����6�2��!���!����K����!(�!4�!4�!6�����	
����+�+�Q�/������$������'�	��L�L�:�g�k�k�]�$�!?�@�	�!�,�,��I�;�d�'C�D�����	�(�(�*�+�����.�.�0�1�&�0�0�2���
�
����)�+=�>��
�
����)�+=�>��
�
����)�+=�>�#2�#<�#<�#>� ��
�
�
�f�X�.�0H�I��
�
�
�f�X�.�0H�I��
�
�
�f�X�.�0H�I�	
���=���1�3E�F����=���1�3E�F����=���1�3E�F�	
���8�F�8�,�.F�G����8�F�8�,�.F�G����8�F�8�,�.F�G�G�����Z�Z�s0�A&J�<J	�J�J
�	J
�	J�J%	�J%	c
���Qo[29^tt^2o[UQU2o[O[O
QU,P	[O[O[2Q59^tt^2oUO2vqVPPP2PPP2UOWO]W2UOUP2P!)%fhKI9h)%fhKT9h)a<if 1:
                import gc, os, sys, signal

                # Create many code objects so trampoline_refcount > 1
                for i in range(50):
                    exec(compile(f"def _dummy_{i}(): pass", f"<test{i}>", "exec"))

                pid = os.fork()
                if pid == 0:
                    # Child: create and destroy new code objects,
                    # then collect garbage. If the old code watcher
                    # survived the fork, the double-decrement of
                    # trampoline_refcount will cause a SIGSEGV.
                    for i in range(50):
                        exec(compile(f"def _child_{i}(): pass", f"<child{i}>", "exec"))
                    gc.collect()
                    os._exit(0)
                else:
                    _, status = os.waitpid(pid, 0)
                    if os.WIFSIGNALED(status):
                        print(f"FAIL: child killed by signal {os.WTERMSIG(status)}", file=sys.stderr)
                        sys.exit(1)
                    sys.exit(os.WEXITSTATUS(status))
                rGrHrI)rrr[r\r]r^r_r r`rar})r/rnrorprqrLrKs&      r�7test_trampoline_works_after_fork_with_many_code_objects�JTestPerfTrampoline.test_trampoline_works_after_fork_with_many_code_objects�s�����0�Z�Z�:� ��Z��>�F��!�!�����6�2��!���!����K����!(�!4�!4�!6�����	
����+�+�Q��7������$�����Z�s0�A&C#�<C	�C#�C 
�C 
�C#�#C3	�,C3	c�^�QFCD}oQoU%cQoV2*o[29^tt^2o[UQU2o[O[O
U,P	[O[O[2Q59^tt^2oUO2vqxPPP2PPP2UOWP2UOWP2[OQWOQ02o	UOU	O22U	O2o
UO!QW0U
2UO#QU0U
2UO#Q	U0U
2UO#Q
U0U
2CJ�	P!)%fhK�9h)%fhK�9h)Faif 1:
                    import sys
                    def foo():
                        pass

                    def spam():
                        pass

                    def bar():
                        sys.deactivate_stack_trampoline()
                        foo()
                        sys.activate_stack_trampoline("perf")
                        spam()

                    def baz():
                        bar()

                    sys.activate_stack_trampoline("perf")
                    baz()
                    z�if 1:
                                import _testinternalcapi
                                _testinternalcapi.set_eval_frame_record([])
rGrIrMrNrOz	py::spam:rPrQ)FT)rrr[r\r]r^r_r r`rar*r+rbrcrdrer�r)r/�define_eval_hookrn�
set_eval_hookrorprqrLrKrrrss&          r�test_sys_api�TestPerfTrampoline.test_sys_api�sd�� -���D�( �!�
�%�+�����z�$�Z��T�B���%�%��^�^�V�,��%�?�?�%�?�?�!�����%,�%8�%8�%:�N�F���
���V�R�(����V�R�(����z�'�+�+��d�%C�D�I��O�O�I�,�,�.�/�!*�!4�!4�!6�����x��x�0�2D�E��M�M�I�f�X�.�0B�C��M�M�H�V�H�-�/A�B��M�M�H�V�H�-�/A�B�_!.�:�����s0�A%F	�F	
�'F	�	F�F�F	�F,
�%F,
c�(�Qo[QUQQ5P!)z�if 1:
                import sys
                sys.activate_stack_trampoline("perf")
                sys.activate_stack_trampoline("perf")
                �-cr�r�r�r/rns& r�%test_sys_api_with_existing_trampoline�8TestPerfTrampoline.test_sys_api_with_existing_trampoline�����
	��t��4rc�n�Qo[QUQQ5vq#oUOQUO22P!)zjif 1:
                import sys
                sys.activate_stack_trampoline("invalid")
                r�rr�zinvalid backend: invalid)rr�decode)r/rn�rc�out�errs&    r�$test_sys_api_with_invalid_trampoline�7TestPerfTrampoline.test_sys_api_with_invalid_trampolines2����-�T�4�C�H�����
�
�0�#�*�*�,�?rc�(�Qo[QUQQ5P!)aif 1:
                import sys
                sys.activate_stack_trampoline("perf")
                assert sys.is_stack_trampoline_active() is True
                sys.deactivate_stack_trampoline()
                assert sys.is_stack_trampoline_active() is False
                r�rr�r�r�s& r�test_sys_api_get_status�*TestPerfTrampoline.test_sys_api_get_status%�����	��t��4rc�(�Qo[QUQQ5P!)aif 1:
                import sys
                sys.activate_stack_trampoline("perf_jit")
                assert sys.is_stack_trampoline_active() is True
                sys.deactivate_stack_trampoline()
                assert sys.is_stack_trampoline_active() is False
                r�rr�r�r�s& r�test_sys_api_perf_jit_backend�0TestPerfTrampoline.test_sys_api_perf_jit_backend/r�rc�(�Qo[QUQQ5P!)z�if 1:
                import sys
                sys.activate_stack_trampoline("perf_jit")
                sys.activate_stack_trampoline("perf_jit")
                r�rr�r�r�s& r�.test_sys_api_with_existing_perf_jit_trampoline�ATestPerfTrampoline.test_sys_api_with_existing_perf_jit_trampoline9r�r�r-)�__name__�
__module__�__qualname__�__firstlineno__r(r?�unittest�skipIfr�check_bolt_optimizedrxr�r�r�r�r�r�r�r��__static_attributes__�__classdictcell__�
__classcell__�r0r9s@@rr"r"4s�����H����_�_�W�1�1�3�5Z�[�0�\�0�d�_�_�W�1�1�3�5Z�[�CH�\�CH�J�_�_�W�1�1�3�5Z�[�%%�\�%%�N�_�_�W�1�1�3�5Z�[�0C�\�0C�d5�@�5�5�5�5rr"c�N�[OQ2oU%fP
!QU7!)�PY_CORE_CFLAGSzno-omit-frame-pointer)r
r)�cflagss r�)is_unwinding_reliable_with_frame_pointersr�Bs$��
�
%�
%�&6�
7�F���"�f�,�,rc��QQ,o[OUP	Q5oQU7cP
![	29^tt^2oUQ*oQQQQQQ	Q
UQ[
OQQ
1o[OUUP	[O[2Q5oQU7cPPP2P
!PPP2P	![O[1cP
!h9h[O[1c
PPP2P
!h9h)%fhP	!9h)�perfz--help�rJz	perf.data�/perf_output.perf�record�--no-buildid�--no-buildid-cache�-g�--call-graph=fp�-o�--r�zprint("hello"))�cwdrJrKr�hello)	r[�check_output�SubprocessError�OSErrorrr]r^�STDOUTr )�cmdrLro�output_files    r�perf_command_worksr�Is����x� ���(�(��4�8���&� ��
���z�	�$�':�:�K����$��!�������� �
�C� �,�,����!�(�(��K��F��&� ��9
��6!�7
�<��O
�&�&��0�����B�*�*�G�4�	��3
��0	��1
��<�sX�B/�C;�AC�C;�C;�/C�	C�
C�C8�+C8�,C;�7C8�8C;�;D	�D	�use_jitc
�(�[Q-U@oUQ*oQQQQQU%cQLQ,oU%cZ,oQoSFDMo	UO2o
U	dU
QQ	Q
U	,*
o
LU
QQ	,*
o
U
QUQ,*
o
UOU
2JO	L
UQUQ,*,oQ
o[U2FD�vq�[O
U[
U2*[O[OUP	Q5o
U
O%c2U%c*U[U2]*
6wcV�O7cJ�L	W
O%c>[U
O[OQ5[QU
O02gU%c�UQ*oQQQQUQU1o
[O
U
[O[OUP	Q5o
U
O%c>[U
O[OQ5[QU
O02g[OV�2Qo[O
QQQU1[O[OUP	P	Q5o
U
O U
O1!)r�r�r�r�r�r�z--call-graph=dwarf,65528r�z-F99z-k1z-mr�r�z1try again with a smaller value of -m/--mmap_pages)rLrKrrJ)rCzPerf failed with return code z/jit_output.dump�injectz-jz-i)rKrLrrJrp)rLrKr�checkrJr7)�4M�2M�1M�512K�256K�128KN)r�rp)r r�append�	enumerater[�run�listr_r}�lenrK�printr]�
ValueErrorr�renamerL)r�r��argsrrr��base_cmd�
perf_commands�
mmap_sizes�	mmap_size�command�mmap_pages_error�index�proc�jit_output_files&$*,           r�run_perfr�ws3��
�
�h�
�C��+�+�K������&-�"�3D�
�H���
�E�
�#�I��m�m�o�G��$��F�E�4��;�;���F�E�?�*����k�4�0�0�G�� � ��)�$�"�T�;��$=�=�>�
�J��$�]�3����~�~��t�D�z�!��?�?��?�?���
��
�O�O�O����]�+�a�/�/� �K�K�/��
�4�"����
�d�k�k��
�
�+��8����8I�J�K�K��� 2�2���8�T�4��d�O�T���~�~��J�O�O�J�O�O��SW�
���?�?�?��$�+�+�C�J�J�/��<�T�_�_�<M�N�O�O�
�	�	�/�/�!�H��>�>�	��4��-���������
�
�D��;�;����#�#rc�F`�\sQsQsn]sQQksQQksQsQsQs	Us
P!)	�TestPerfProfilerMixin�c��[2grS)�NotImplementedError�r/rorp�activate_trampolines&&&&rr��TestPerfProfilerMixin.run_perf�s��!�#�#rc�`�P9no[UO2FDfoUOVUQ5vnoU%cB[9PIcU1QkU2D%fJP	L	P
LU1QkU22%cJbRU1!	RU1!)��r�c3�8:�SF �D
pR7w�	J	P!3hrSr7)rT�symbolrLs& �rrW�>TestPerfProfilerMixin.run_perf_with_retries.<locals>.<genexpr>�s��3C���3C��f�$�3C�s�)�range�PERF_CAPTURE_ATTEMPTSr��any)r/rorprur�rK�_rLs&&&&&  @r�run_perf_with_retries�+TestPerfProfilerMixin.run_perf_with_retries�s���������t�1�1�2�A�!�]�]��8K�+��N�F�F�#�s�s�+�3C�+�s�s�s�+�3C�+�(�(����v�~��3��v�~�rc��[29^tt^2oQo[UQU2oQU0QU0QU0,oUOVU2vqVSFDoUOVu2J	PPP2P!)%fhP!9h)�:if 1:
                from itertools import repeat

                def foo(n):
                    for _ in repeat(None, n):
                        pass

                def bar(n):
                    foo(n)

                def baz(n):
                    bar(n)

                baz(40000000)
                rGrOrPrQ)rrr�r)r/rornrprurLr�rVs&       r�7test_python_calls_appear_in_the_stack_if_perf_activated�MTestPerfProfilerMixin.test_python_calls_appear_in_the_stack_if_perf_activated�s���
�Z�Z�:��D�!��Z��>�F��6�(�#��6�(�#��6�(�#� ��
�2�2��$4��I�F�$4���
�
�o�6�$4�5�Z�Z�Z�s�A
A+�+A<	�4A<	c�,�[29^tt^2oQo[UQU2oUOVP
Q5vqEUOQU0U2UOQU0U2UOQU0U2PPP2P!)%fhP!9h)r�rGr�rOrPrQ)rrr�r�)r/rornrprLr�s&     r�@test_python_calls_do_not_appear_in_the_stack_if_perf_deactivated�VTestPerfProfilerMixin.test_python_calls_do_not_appear_in_the_stack_if_perf_deactivated�s���
�Z�Z�:��D�!��Z��>�F��2�2���3��I�F�
���x��x�0�&�9����x��x�0�&�9����x��x�0�&�9�/�Z�Z�Z�s�A$B�B	�B	r7�T)r7T)r�r�r�r�r�r�r�r�rr�r�)r9s@rr�r��s$������$�
�7�<:�:rr�zperf command doesn't workz+Unwinding is unreliable with frame pointersc�\``�\sQsQsnQQksU1QksU1QkU1QkksQsQsUs	U9s
!)	�TestPerfProfiler�
c��U%c[U[OQU2![U[OU2!)rH�r�r]r^r�s&&&&rr��TestPerfProfiler.run_perfs-����J�����&�I�I��
�C�N�N�F�;�;rc�:�[RU_2[[OQ2OQ22UmP!r$r&r.s&�rr(�TestPerfProfiler.setUpr2rc� :�U]6�cPgQP-!r4r7)r8r9s"�rr:�&TestPerfProfiler.tearDown.__annotate__r<rc��:�[RU_2[[OQ2OQ22UO*
oSFDoUO2J	P!r$r>rAs&  �rr?�TestPerfProfiler.tearDownrErc
���Qo[29^tt^2o[UQU2o[O[O
QU,P	[O[O[2Q59^tt^2oUO2vqVPPP2PPP2UOWO]2UOQW2[WO22o[OQUO Q02o[OQUQ02o	UO#UO%22UO#U	O%22UO'2o
UO)QW0U
2UO)QU0U
2UO)Q	U0U
2UO)Q
U0U
2U	O'2oUO)Q	U0U2UO)Q
U0U2U
O+Q2oSFD*o
Q	U0U
7f
Q
U0U
7fJUO)V�2J,	P!)%fhCK�9h)%fhCK�9h)a�if 1:
                import sys
                import os
                import sysconfig
                from _testinternalcapi import (
                    compile_perf_trampoline_entry,
                    perf_trampoline_set_persist_after_fork,
                )

                def foo_fork():
                    pass

                def bar_fork():
                    foo_fork()

                def foo():
                    import time; time.sleep(1)

                def bar():
                    foo()

                def compile_trampolines_for_all_functions():
                    perf_trampoline_set_persist_after_fork(1)
                    for _, obj in globals().items():
                        if callable(obj) and hasattr(obj, '__code__'):
                            compile_perf_trampoline_entry(obj.__code__)

                if __name__ == "__main__":
                    compile_trampolines_for_all_functions()
                    pid = os.fork()
                    if pid == 0:
                        print(os.getpid())
                        bar_fork()
                    else:
                        bar()
                rGrH)�universal_newlinesrKrLrzError:rMrNrOrPr{r|�
)rrr[r\r]r^r_r r`rar}r�rr~r*r+rbrcrdrerri)r/rnrorprqrLrKr�rrr�rsr��perf_file_linesrUs&             r�test_pre_fork_compile�&TestPerfProfiler.test_pre_fork_compile$s��#��J�Z�Z�:� ��Z��>�F��!�!�����6�2�#'�!���!����K����!(�!4�!4�!6�����	
����+�+�Q�/�����6�*������'�	��L�L�:�g�k�k�]�$�!?�@�	�!�,�,��I�;�d�'C�D�����	�(�(�*�+�����.�.�0�1�&�0�0�2���
�
����)�+=�>��
�
����)�+=�>��
�
�
�f�X�.�0B�C��
�
�
�f�X�.�0B�C�#2�#<�#<�#>� ��
�
�
�f�X�.�0H�I��
�
�
�f�X�.�0H�I�-�2�2�4�8��#�D��v�h�'�4�/�]�6�(�3K�t�3S��
�
�d�=�$�=�����Z�Z�s0�A&I�<I	�I�I
�
I
�	I�I)	�!I)	r�r)r�r�r�r�r�r(r?rr�r�r�r�s@@rrr
s&����<�
H���H>�H>rrc�T�[OQQ,P	Q5oUO2]*oUOQ2]*oUOQ2o[
[[UQ*22oV0U16�![O[[1cP
!h9h)r�z	--versionr��-�.:Nr5N)	r[r��CalledProcessError�FileNotFoundError�PermissionErrorri�tuple�mapr)�major�minor�output�versions&&  r�_is_perf_version_at_leastr"os�����(�(�&�+�)>�T�J���l�l�n�Q��G��m�m�C� ��#�G��m�m�C� �G��C��W�R�[�)�*�G��e�n�$�$��

�)�)�+<�o�N����s�B�B'�"B'�&B'z+perf command may not work due to a perf bugc�V``�\sQsQsnQQksU1QksU1QkU1QkksQsUsU9s	!)�TestPerfProfilerWithDwarf�c��U%c[U[OQUP	Q5![U[OUP	Q5!)z
-Xperf_jit)r�rr�s&&&&rr��"TestPerfProfilerWithDwarf.run_perf�s8�����C�N�N�L�&�$��
��
�C�N�N�F�D�I�Irc�:�[RU_2[[OQ2OQ22UmU9O[[OQ2OQ22*tmP!�r%z	jit*.dumpzjitted-*.sor&r.s&�rr(�TestPerfProfilerWithDwarf.setUp�sS���
��
���g�l�l�7�3�8�8��E�F������3�w�|�|�G�4�9�9�-�H�I�I�rc� :�U]6�cPgQP-!r4r7)r8r9s"�rr:�/TestPerfProfilerWithDwarf.tearDown.__annotate__�r<rc�D:�[RU_2[[OQ2OQ22oU[[OQ2OQ22*oVO*
oSFDoUO2J	P!r)r>rAs&  �rr?�"TestPerfProfilerWithDwarf.tearDown�sn���
�����g�l�l�7�3�8�8��E�F���3�w�|�|�G�4�9�9�-�H�I�I��)�O�O�;��#�D��K�K�M�$rr�r)
r�r�r�r�r�r(r?r�r�r�r�s@@rr$r$�s ����
J�J�
��rr$�__main__) r�rlr[r]r
rr*�testr�test.support.script_helperrrr�test.support.os_helperr�has_subprocess_support�SkipTest�check_sanitizerrr �TestCaser"r�r�r�r��
skipUnlessrr"r$r��mainr7rr�<module>r9s����
��
��	�����
,��%�%�%�
�
�
�=�
>�>�
���4����M�M��
�
�J�
K�K�%�%�&�&�
�
�
�E�
F�F��K5��*�*�K5�\-�+�\E$��E$�PK:�K:�\
���'�)�+F�G�	���-�/�1��Z>�x�(�(�*?�Z>�	�H�
Z>�z%�$
���'�)�+F�G�	����a��#�%R���� 1� 1�3H���H��,�z���M�M�O�r

Youez - 2016 - github.com/yon3zu
LinuXploit