403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.217.64
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/support/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python315/Lib/test/support/__pycache__/__init__.cpython-315.pyc
R
>lqj��c
�r�Qs\Q6wc	\Q2g]PHs]PHs]PHs]PHs]PHs]PH s]PH$s	]PH(s
]PH,s]PH0s]PH4s
]PH8s]PH<s]PH@s]PHDs]PHHs,QMQMQMQMQMQMQ	MQ
MQMQMQ
MQMQMQMQMQMQMQMQMQMQMQMQMQMQMQMQMQMQMQ MQ!MQ"MQ#MQ$MQ%MQ&MQ'MQ(MQ)MQ*MQ+MQ,MQ-MQ.MQ/MQ0MQ1MQ2MQ3MQ4MQ5MQ6MQ7MQ8MQ9MQ:MQ;MQ<MQ=MQ>MQ?MQ@MQAMQBMQCMQDMQEMQFMQGMQHMQIMQJMQKMQLMQMMQNMQOMQPMQQMQRMQSMQTMQUMQVMQWMQXMQYMQZMQ[MQ\MQ]MQ^MQ_MQ`MQaMQbMQcMQdMQeMQfMQgMQhMQiMQjMQkMQlMsQmsQnsQosCQls\	O0O3\	O0O5\22s\	O0O3\2s\	O0O3\2s\	O0O3\2sQpQ\ 2s!QqQ	\!2s"QrQs\"2s#QtQ
\!2s$QuQ\OJ2s&Qvs'Qws(Qxs)]s*Ps+]r,]r-Ps.P
s/Pr0Qys1Qzs2Q{s3Q|s4Q}s5Q~s6CQmQks7CQnQ�ks8Q�s9Q�s:Q�s;Q�s<Q�s=CQmQ�ks>Q�P
Q�P
Q�P
Q�P
Q�P	-Q�ks?CQmQ�P
Q�P
Q�P
Q�P
-Q�kks@\?P	Q�5sAQ�sBQ�sCCQpsDCQrsE\O�\GO�Q�2O�Q�2Q�2sJCQsQ�ksKCQtQ�ksLCQuQ�ksMCQvQ�ksNCQwQ�ksOQ�sPCQxQ�ksQ\O�Q�6HsS\O�O�Q�2sT\O�Q�6HsUQ�sV\O�CQy7c\U%cQ�LQ�sWLPsW\O�Q�6HsX\O�Q�6HsY\X9%f\YsZQ�s[Q�s\\O�CQz7s]\]9%f\O�Q�6Hs^\_\	Q�29%c&\X9%f\Y9%f
\]9%f\U%(s`Q�sa\X9%f\Y9%f
\]9%f\U%(sbQ�sc\X9%f\Y%(sdQ�P
-Q�kse\O�Q�2sgQ�shP
si\O�Q�6wc\O�Q�2Q�6gsiQ�slP
smP
sn\	O0O�\Q�2spQ�sqCQmQ�ksrQ�ssCQmQ�Q�kkstCQ{Q�PQ�P-Q�kksuQ�sv\O�Q�2sxQ�syQ�szQ�s{Q�s|\O�Q�2s}\O�Q�2s~Q�sQ�s�Q�s�\�\
COQ�22s�CQ|Q�ks�Q�s�\�%cQ�s�LQ�s�Q�s�\�Q�*s�Q�s�Q�s�]s�]�s�CQ}s�CQ~s�Q�s�CQos�CQs�CQqs�CQ�s�CQ�s�Q�s�Q�P
-Q�ks�\O�Q�2s�Q�s�Q�s�CQ�s�Q�\�*s�]\�*s�]\�*s�\CO>s�Q�Q�ks�Q�Q�ks�Q�Q�2s�CQ�Q�ks�Q�s�Q�s�Q�s�Q�s�Q�s�CQmQ�ks�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�\
COQ�29%fQ�Q�6Hs�Q�s�Q�Q�ks�Q�\	COh7s�Q�s�\�29%c0\O�Q�6g9%c\
COQ�2%(s�\�OPIs�\�9%c\�%(s�\O�\�Q�2s�Q�s�Q�s�\COz\�m�P
r�Q�s�\O�Q�2s�\O�Q�2s�Q�s�Q�s�Q�QM\�2s�Pr�Q�s�Q�Q�2s�Q�s�Q�s�Q�CQ�-Q�ks�CQ�Q�ks�CQ�Q�ks�CQQO2s�CQs�\O�CQ2s�CQs�CQP-CQks�CQs�CQ�CQks�,1CQks�Pr�CQ	s�CQ
s�\O�CQ2s�CQCQ
2s�CQs�CQs�CQCQ2s�\�2s�CQCQ2s�\�2s�\CO�CQCQ22s�\�2s�\CO�CQCQ22s�\�2s�CQs�\CO�CO�s�\�CQ�7fPgCQs�CQCQ2s�CQP-CQks�CQs�CQs�CQ s�CQ!s�\O�CQ"2s�CQmCQ#ks�CQ$CQ%ks�CQ&CQ'ks�CQ(s�\O�CQ)2s�\O�CQ*2s�\_\CQ+2s�CQ,s�CQmCQ-P	-CQ.kks�CQmCQ/CQ0CQ1CQ2CQ-P	-CQ3kks�CQ4CQ52s�\O�CQ62s�CQ7s�CQ�CQ8kCs\_\	CQ929%c"\	CO2COCQ:6HCs\COC\CQ;2Cs\_\CQ<2Cs\COCO2Cs	\O�C\	CQ=2Cs
\COC\	CQ>2CsC\CQ?CQ@.2Cs
CQACsCQBP	-CQCkCsCQDCsCQECs\CO$1CQFkCsCQGCsCQHCs\O�CQICQJk2CsCQKCsCQLCsCQMCsCQNCsCQOCQPkCsCQQCQRCQSCQTCQUCQV-CsCQWCsCQXQd2CsCQYCQZkCsCQ[Cs \COBCQ\2Cs"CQ]Cs#CQ^Cs$CQ_Cs%CQ`Cs&CQaCs'CQbCQc2Cs(PCr)CQdCs*CQeCQfkCs+\_\	CQg29%c\	COX2]6HCs-\O�C\-CQh2Cs.\COC\-CQi2Cs/CQjCs0CQkCs1P!\kcCKzh9h(�z7Supporting definitions for the Python regression tests.ztest.supportz.support must be imported from the test package�
PIPE_MAX_SIZE�verbose�
max_memuse�
use_resources�failfast�Error�
TestFailed�
TestDidNotRun�ResourceDenied�record_original_stdout�get_original_stdout�captured_stdout�captured_stdin�captured_stderr�captured_output�is_resource_enabled�get_resource_value�requires�requires_resource�requires_freebsd_version�requires_gil_enabled�requires_linux_version�requires_mac_ver�check_syntax_error�
requires_gzip�requires_bz2�
requires_lzma�
requires_zstd�
bigmemtest�	nomemtest�bigaddrspacetest�cpython_only�
get_attribute�requires_IEEE_754�
requires_zlib�has_fork_support�
requires_fork�has_subprocess_support�requires_subprocess�has_socket_support�requires_working_socket�has_remote_subprocess_debugging�$requires_remote_subprocess_debugging�anticipate_failure�load_package_tests�detect_api_mismatch�check__all__�skip_if_buggy_ucrt_strfptime�check_disallow_instantiation�check_sanitizer�skip_if_sanitizer�requires_limited_api�requires_specialization�
thread_unsafe�skip_if_unlimited_stack_size�skip_if_huge_c_stack�
MS_WINDOWS�	is_jython�
is_android�
is_emscripten�is_wasi�is_apple_mobile�check_impl_detail�
unix_shell�setswitchinterval�support_remote_exec_only�get_pagesize�open_urlresource�
reap_children�run_with_locale�	swap_item�findfile�infinite_recursion�	swap_attr�Matcher�set_memlimit�SuppressCrashReport�sortdict�run_with_tz�PGO�missing_compiler_executable�	ALWAYS_EQ�NEVER_EQ�LARGEST�SMALLEST�LOOPBACK_TIMEOUT�INTERNET_TIMEOUT�
SHORT_TIMEOUT�LONG_TIMEOUT�Py_DEBUG�exceeds_recursion_limit�
skip_on_s390x�requires_jit_enabled�requires_jit_disabled�force_not_colorized�force_not_colorized_test_class�make_clean_env�
BrokenIter�!in_systemd_nspawn_sync_suppressed�run_no_yield_async_fn�run_yielding_async_fn�async_yield�
reset_code�on_github_actions�requires_root_user�requires_non_root_userg$@gN@g>@c��\sQs]zsQsQsP!)rz*Base class for regression test exceptions.���__name__�
__module__�__qualname__�__firstlineno__�__doc__�__static_attributes__rl��*C:\Python315\\Lib\test\support\__init__.pyrrzs��4rtc�F``�\sQs]}snQsQP-U1QkksQsQsUsU9s	!)r�Test failed.�statsc�H:�VmV m[RU_U,UN3P!�N)�msgrx�super�__init__)�selfr{rx�args�	__class__s&&$*�rur}�TestFailed.__init__s������
�
����$�t�$rtc��UO!rz�r{�r~s&ru�__str__�TestFailed.__str__�s���x�x�rt)r{rx)
rnrorprqrrr}r�rs�__classdictcell__�
__classcell__�r��
__classdict__s@@rurr}s�����%��%�
�rtc�8``�\sQs]�snQsU1QksQsUsU9s!)�TestFailedWithDetailsrwc�D:�V mV0m[RU_
VV4Q5P!))rx)�errors�failuresr|r})r~r{r�r�rxr�s&&&&&�rur}�TestFailedWithDetails.__init__�s����� �
�
����h��<rt)r�r�)	rnrorprqrrr}rsr�r�r�s@@rur�r��s�����=�=rtr�c��\sQs]�sQsQsP!)rzTest did not run any subtests.rlrmrlrtrurr�s��(rtc��\sQs]�sQsQsP!)r	z�Test skipped because it requested a disallowed resource.

This is raised when a test calls requires() for a resource that
has not be enabled.  It is used to distinguish between expected
and unexpected skips.
rlrmrlrtrur	r	�s��rtc�:�U%c[O!Q!)z�Decorator to mark a test that is known to be broken in some cases

Any use of this decorator should have a comment identifying the
associated tracker issue.
c��U!rzrl��fs&ru�<lambda>�$anticipate_failure.<locals>.<lambda>�s��Qrt)�unittest�expectedFailure)�	conditions&rur,r,�s����'�'�'��rtc�j�UeQo[oUOUUUQ5oUOU2U!)z�Generic load_tests implementation for simple test packages.

Most packages can implement load_tests using this function as follows:

   def load_tests(*args):
       return load_package_tests(os.path.dirname(__file__), *args)
ztest*)�	start_dir�
top_level_dir�pattern)�
STDLIB_DIR�discover�addTests)�pkg_dir�loader�standard_testsr��top_dir�
package_testss&&&&  rur-r-�sD�������G��O�O�g�29�,3�$�5�M����M�*��rtc�z�[V2oU![c [OQS8QS802gh9h)z?Get an attribute, raising SkipTest if AttributeError is raised.zobject z has no attribute )�getattr�AttributeErrorr��SkipTest)�obj�name�	attributes&& rur!r!�sB����C�&�	�����O����3�� M�N�N�O�s��	:� :c��UrP!rz)�_original_stdout)�stdouts&rur
r
�s���rtc�@�[9%f[O!rz)r��sysr�rlrtrurr�s���)�)�s�z�z�)rtc��UU![c8o[]6�c'[SOO8QS802gPo=h[
c�o[]6�cC[SOO8QS802[QSO8S802[OS[O2SStPo=!Po=hh9h)��: zre-run )
�FileNotFoundErrorr�printr�rn�OSError�os�chmod�stat�S_IRWXU)�path�funcr�errs&&* ru�
_force_runr��s�����T�{������a�<��c�m�m�4�4�c�:�;�
�����a�<��c�m�m�4�4�c�:�;��4�=�=�$�7�8�
����t�|�|�$��T�{����s=�
�	C�C�
A�'A�C�C�
C� A-C�
C�Cc	��`�[[Q2%c[O!]PHoPo[OOQ2%cUO
2%cQoCL�[OOQ2%Cc]PHn]PH"n]o]oU1QkQRO2oROOoUO2oU%fRO2gU2oROO2oUO!UURO#U2RO%U2RO#U22o	U	%fRO2g['UO(U*2%fQoLg[OQ6XcS]PHVo
U
O-QQ,P	P	Q	5oUO.O1Q
2O32oUQ6wcQU8Q
0oU%f?]QHnGo
U
2oUO;2UO=2UO?2U[m&U%([m[O!S
O4cQoK�h9h[@c[o[CS2o[ES2]26�cSQ*Q*oQOG[IS2OJS2oPo=K�Po=hh9h)�result�winz(gui is not available on Windows IoT Corec�:�\sQs]�sQYOO
1QYOO
1QYOO1,sQsP!)�*_is_gui_available.<locals>.USEROBJECTFLAGS�fInherit�	fReserved�dwFlagsrl)	rnrorprq�wintypes�BOOL�DWORD�_fields_rs)�ctypess�ru�USEROBJECTFLAGSr��s@���#�V�_�_�%9�%9�:�$�f�o�o�&:�&:�;�"�F�O�O�$9�$9�:�<�Hrtr�z,gui not available (WSF_VISIBLE flag not set)�darwin�	launchctl�managername)�capture_output�checkzutf-8�Aquazmanagername=z' -- can only run in a macOS GUI sessionz*unable to detect macOS launchd job manager)�Tk:N�2Nz [...]zTk unavailable due to {}: {})'�hasattr�_is_gui_availabler��platformr��
startswith�win32_is_iotr��ctypes.wintypes�	Structure�windll�user32�GetProcessWindowStation�WinErrorr�r��GetUserObjectInformationW�byref�sizeof�boolr��
subprocess�runr��decode�strip�CalledProcessError�tkinterr��withdraw�update�destroy�	Exception�str�len�format�typern�reason)r�r��	UOI_FLAGS�WSF_VISIBLEr��dll�h�uof�needed�resr��rcr�r��root�e�
err_stringr�s                 @rur�r��sg���� �(�+�+� �'�'�'��
�F�
�|�|���u�%�%�(�*?�*?�*A�*A�;��	���	 �	 ��	'�	'�	���	���	<�f�.�.�	<��m�m�"�"���'�'�)����/�/�#�#�������&�&�(���+�+�A���L�L����M�M�#���L�L�� �	"��
��/�/�#�#��C�K�K�+�-�.�.�C�F��	����	!�	�	R�����m� <�/3�4� �A�B��)�)�*�*�7�3�9�9�;�K��f�$�(�K�>�)P�Q���	G�"��4�D��M�M�O��K�K�M��L�L�N� &���#)�z����#�#�#��1�,�,�	B�A�F�	B���	G��Q��J��:���#�'��_�x�7�
�3�:�:�4��7�;K�;K�;E�G�F��		G�s<�0?I.�=J�.J�>J�J�	K,�K,�K'�-5K'�'K,c�6�[PI9%f
U[7!�z�Test whether a resource is enabled.

Known resources are set by regrtest.py.  If not running under regrtest.py,
all resources are assumed enabled unless use_resources has been set.
)r��resources&rurr*s���D� �=�=�H�
�$=�=rtc�B�[eP![OU2!r)r�getrs&rurr2s��������X�&�&rtc��[U2%fUe
QU*o[U2gUQ7c[%f[Q2gUQ6Xc,[2%f[[O2gP!P!)z@Raise ResourceDenied if the specified resource is not available.z"Use of the %r resource not enabledzNo socket support�gui>�network�urlfetch)rr	r(r�r�)rr{s&&rurr<sm���x�(�(��;�6��A�C��S�!�!��*�*�3E�3E��0�1�1��5��!2�!4�!4��.�5�5�6�6�"5�rtc��]PHoUO2U6wcP!UO2OQ]2]*o[	[[UOQ222![cP!h9h)��-�.)r��system�release�split�tuple�map�int�
ValueError)�sysnamer��version_txts&  ru�_get_kernel_versionrGsk�������G�#���"�"�$�*�*�3��2�1�5�K���S��k�/�/��4�5�6�6������s�'A-�-	A<�7A<�;A<c��]PHoQO[[U22oUO	2OQ]2]*oUO
2U6Xc/[[[UOQ222oVQ6oLP
o[OUUQUQU02![cP
oK.h9h)z�Decorator raising SkipTest if the OS is `sysname` and the version is less
than `min_version`.

For example, @_requires_unix_version('FreeBSD', (7, 2)) raises SkipTest if
the FreeBSD version is less than 7.2.
rr
z	 version � or higher required, not )r��joinrr�rrrrrrr��skipIf)r�min_versionr��min_version_txtr�version�skips&&     ru�_requires_unix_versionr!Qs�����h�h�s�3��4�5�O��"�"�$�*�*�3��2�1�5�K�����G�#�	)��C��[�%6�%6�s�%;�<�=�G��(�D����?�?���)�9�_�-�-F��-�	�����	��D�	�s�"(B0�0	C�:C�?Cc��[QU2!)z�Decorator raising SkipTest if the OS is FreeBSD and the FreeBSD version is
less than `min_version`.

For example, @requires_freebsd_version(7, 2) raises SkipTest if the FreeBSD
version is less than 7.2.
�FreeBSD�r!�rs*rurrls��"�)�[�9�9rtc��[QU2!)z�Decorator raising SkipTest if the OS is Linux and the Linux version is
less than `min_version`.

For example, @requires_linux_version(2, 6, 32) raises SkipTest if the Linux
version is less than 2.6.32.
�Linuxr$r%s*rurrus��"�'�;�7�7rtc�`�U1QkoU!)z�Decorator raising SkipTest if the OS is Mac OS X and the OS X
version if less than min_version.

For example, @requires_mac_ver(10, 5) raises SkipTest if the OS X version
is lesser than 10.5.
c�Z:`�[OR2UU1Qk2oRUmU!)c�v:�[OQ6Xc�]PHoUO2]*o[[	[
UO
Q222oUR6c>QO[	[R22o[OQU8QU802gRU-U@![cKh9h)r�rz	Mac OS X r)r�r��mac_verrrrrrr�r�r�r)r�kwr�rrrr�rs*,    ��ru�wrapper�4requires_mac_ver.<locals>.decorator.<locals>.wrapper�s�����|�|�x�'��&�.�.�0��3��	>�#�C��[�->�->�s�-C�$D�E�G���,�*-�(�(�3�s�K�3H�*I��&�/�/�.��=�>�>�-�
��$��$�$��"����s�(B*�*	B8�4B8�7B8)�	functools�wrapsr)r�r-rsf �ru�	decorator�#requires_mac_ver.<locals>.decorator�s-���	����	�	%�
�	%�*����rtrl)rr1sj rurr~s����&�rtc�n`�U1Qko[R[O2%c
RoPnUU2!U!)zMark a test as not thread safe. When the test runner is run with
--parallel-threads=N, the test will be run in a single thread.c�&:�P	UmRUmU!�T)�__unittest_thread_unsafe__�__unittest_thread_unsafe__why__)�	test_itemr�s&�rur1� thread_unsafe.<locals>.decorator�s���/3�	�,�4:�	�1��rt)�
isinstance�types�FunctionType)r�r1r8sf  rur6r6�s8����
�&�%�,�,�-�-��	�����#�#��rtc�&�]PHoU%fQoUO2O2Q6Ho[OV 2![[1c8o[
O[2OQX3Q5P
oPo=KYPo=hh9h)z4Decorator raising SkipTest if running on a buildbot.znot suitable for buildbots�buildbotzgetpass.getuser() failed %s.��exc_info)�getpass�getuser�lower�KeyErrorr��logging�	getLoggerrn�warningr�r)r�rA�
isbuildbotr�s&   ru�skip_if_buildbotrI�sx����-����_�_�&�,�,�.�*�<�
��?�?�:�.�.��
�g������(�#�+�+�,J�C�+�^��
���s�!A�B�B�-B�B�address�memory�ub�thread�functionc�,�U%f$U%fU%fU%f[Q2g[OQ29%fPo[OQ29%fPoQU79%fQU7oQU79%fQU7oQU79%fQ	U7o	Q
U79%fQU7o
QU7oS9%cS9%fIS9%cS9%f5S9%cS	9%f!S9%cS
9%f
S9%cS!)
z9Returns True if Python is compiled with sanitizer supportz:At least one of address, memory, ub or thread must be True�CFLAGS�CONFIG_ARGSz-fsanitize=memoryz--with-memory-sanitizerz-fsanitize=addressz--with-address-sanitizerz-fsanitize=undefinedz#--with-undefined-behavior-sanitizerz-fsanitize=threadz--with-thread-sanitizerz-fsanitize=function)r�	sysconfig�get_config_var)rJrKrLrMrN�cflags�config_args�memory_sanitizer�address_sanitizer�ub_sanitizer�thread_sanitizer�function_sanitizers$$$$$       rur2r2�sJ��
�v��v��U�V�V��
%�
%�h�
/�
5�
5�2�F��*�*�=�9�?�?�R�K��v�%�	1�	1�!�[�0��
	��&�	2�	2�"�k�1��
	�&�(�	=�	=�-��<��
	�v�%�	1�	1�!�[�0��
	��'��
�	$�	$�$�	*�	*�	�	&�	&�&�	*�	*�	�	�	��	*�	*�
�	$�	$�$�	*�	*�
�	(�	(�(�rtc�^�U%fQo[VV4Q5o[OVP2!)z>Decorator raising SkipTest if running with a sanitizer active.z"not working with sanitizers active)rJrKrLrM)r2r�r)r�rJrKrLrMr s&$$$$ rur3r3�s%���5���7�b�P�D��?�?�4�(�(rt)rJc�b�QFD&oV 7cV99*QU0*
tt$J"VU$J(	P!)�ASAN_OPTIONS�:)r]�MSAN_OPTIONS�
UBSAN_OPTIONS�TSAN_OPTIONSrl)�env�optionr�s&& ru�set_sanitizer_env_varrd�s+��Q���;��I�1�V�H��%�I���I�	Rrtc�H`�[OR2U1Qk2oU!)z5Skip the test on TLS certificate validation failures.c�:�RU-U@P![c-oQ[S27c[OQ2ggPo=hh9h)�CERTIFICATE_VERIFY_FAILEDz.system does not contain necessary certificates)r�r�r�r�)r�kwargsr�r�s*, �ru�dec�&system_must_validate_cert.<locals>.dec�sO���	�
�t��v����	�*�c�!�f�4��'�'�)A�B�B���		�s�	�	A�A�A�A�A�r/r0)r�risf ru�system_must_validate_certrl�s%����_�_�Q������Jrt��double�IEEEztest requires IEEE 754 doublesc�`�]PHo[OV2![cPoK%h9h�r)�zlib�ImportErrorr��
skipUnless)r�rrs& rur#r#�3�������t�,�,����������	-�-�-c�`�]PHo[OV2![cPoK%h9hrq)�gziprsr�rt)r�rxs& rurrrurvc�`�]PHo[OV2![cPoK%h9hrq)�bz2rsr�rt)r�rzs& rurrs3�������s�+�+�������rvc�`�]PHo[OV2![cPoK%h9hrq)�lzmarsr�rt)r�r|s& rurr$rurvc�d�]QHGo[OV2![cPoK%h9h)r)�zstd)�compressionr~rsr�rt)r�r~s& rurr+s3���$����t�,�,�������s��	/�/�/c��]PHoUO	Q2%(![c[OQ2gh9h)r�_testinternalcapi required�code_debug_ranges)�	_testcapirsr�r��
config_get�r�s ru�has_no_debug_rangesr�2sD��>���#�#�$7�8�8�8���>���� <�=�=�>�s��	?�?c���[2o[OV2![Oc4oP	oSO%cSO]*LSoPo=KYPo=hh9hr5)r�r�r�rr)r�r r�s&  ru�requires_debug_rangesr�9sT��1�"�$���?�?�4�(�(�����1����f�f�f������&���1�s�
#�A+�A+�A&�A&�&A+�win32�java�androidc�\�[O[OQ6HQUQ02!)r�zAndroid blocks z
 with SELinux)r�rr�r�)r�s&ru�skip_android_selinuxr�Is*���?�?����	�!�_�T�F�-�#H��rtz/system/bin/shz/bin/sh�
emscripten�wasic�:�[O[Q2!)zExhausts stack on Emscripten)r�rr<rlrtru�skip_emscripten_stack_overflowr�[s���?�?�=�*H�I�Irtc�:�[O[Q2!)zExhausts stack on WASI)r�rr=rlrtru�skip_wasi_stack_overflowr�^s���?�?�7�$<�=�=rtr��forkc�:�[O[Q2!)zrequires working os.fork())r�rtr$rlrtrur%r%os�����/�1M�N�Nrtc�:�[O[Q2!)z3Used for subprocess, os.spawn calls, fd inheritance�requires subprocess support)r�rtr&rlrtrur'r'~s�����5�7T�U�Urt�modulec��QoU%c%[%f[OU2gP![O[U2!)z{Skip tests or modules that require working sockets

Can be used as a function/class decorator or to skip an entire module.
zrequires socket support)r(r�r�rt)r�r{s$ rur)r)�s>��
$�C�
�!�!��#�#�C�(�(�"��"�"�#5�s�;�;rtc�8�[OQ7cP
!]PH
o[OQ6Xc[	UQP
2%fP
!UO[O22%fP
!]PH"o]PH&oUOUOUO2oUOUOUO]2UOQ	2UO!]2UO#2]*oQUQ0oUO%[O&QU,UO(UO(Q5oUO+Q2UO-2vqxUOUO.2o	UO12d4UO32UO52UO72P
!UO32U	UO32UO52UO72![cP
!h9hSO8[:1c5SO32SO52SO72P
!h9hSO32SO52SO72h9h)
aVCheck if we have permissions to debug subprocesses remotely.

Returns True if we have permissions, False if we don't.
Checks for:
- Platform support (Linux, macOS, Windows only)
- On Linux: process_vm_readv support
- _remote_debugging module availability
- Actual subprocess debugging permissions (e.g., macOS entitlements)
Result is cached.
�linux�PROCESS_VM_READV_SUPPORTEDz]
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("127.0.0.1", z/))
s.recv(1)  # Wait for parent to signal done
z-c�r��stderrg@)r�r�r�)z	127.0.0.1r)r�r��_remote_debuggingrsr��is_python_processr��getpid�socketr��AF_INET�SOCK_STREAM�
setsockopt�
SOL_SOCKET�SO_REUSEADDR�bind�listen�getsockname�Popen�
executable�DEVNULL�
settimeout�accept�pid�poll�close�kill�wait�timeoutr�)
r�r�r��server�port�
child_code�proc�conn�_r�s
          rur*r*�s
���|�|�7�7��� �
�|�|�w���(�*F��N�N���.�.�r�y�y�{�;�;�����]�]�6�>�>�6�+=�+=�
>�F�
���f�'�'��)<�)<�a�@�
�K�K� �!�
�M�M�!�������"�D������J����	����z�*��!�!��!�!���D�
����#���-�-�/���"�4�4�T�X�X�>���9�9�;�"��	�����	�	���	�	��	
�
�
���	�����	�	���	�	���g�����\
�N�N�G�$��������	�	���	�	����	�����	�	���	�	��sH�H�AH�H�	H�H�H�I$�/I$�0I'�#I$�$I'�'2Jc��[%f[OQ2![O[	2Q2!)z�Skip tests that require remote subprocess debugging permissions.

This also implies subprocess support, so no need to use both
@requires_subprocess() and @requires_remote_subprocess_debugging().
r�z0requires remote subprocess debugging permissions)r&r�r rtr*rlrtrur+r+�s6��"�!��}�}�:�;�;����'�)�:��rtz%4Yzhttp://www.pythontest.net�datac���[OQ6wcP!]PH
oQoUQ0oUO2vqE[	UOUQ22[	U2[	QU*2P!)zKAssure user that loud errors generated by macOS libc's malloc are
expected.r�z NOTICE z� may generate "malloc can't allocate region"
warnings on macOS systems. This behavior is known. Do not
report a bug unless tests are also failing.
See https://github.com/python/cpython/issues/85100r
)r�r��shutil�get_terminal_sizer��center)�	test_namer�r{�detail�paddingr�s&     ru�darwin_malloc_err_warningr�sf���|�|�x����
�C���C�C�F�
�)�)�+�J�G�	�#�*�*�W�c�
"�#�	�&�M�	�#��-�rtc�z�[OOU2%cU!Ud [OOV2o[,[
O*oSFDLo[OOV02o[OO
U2%fJIUt!	U!)aGTry to find a file on sys.path or in the test directory.  If it is not
found the argument passed to the function is returned (this does not
necessarily signal failure; could still be the legitimate path).

Setting *subdir* indicates a relative path to use to find the file
rather than looking directly in the path directories.
)r�r��isabsr�
TEST_HOME_DIRr��exists)�filename�subdirr��dn�fns&&   rurHrHs~��
�w�w�}�}�X�����
���7�7�<�<��1���?�S�X�X�%�D���
�W�W�\�\�"�
'��
�7�7�>�>�"���b�y���Ortc��[UO22oSTt,tFDoQU*MJ	ooQOU2oQU*!ttoh)z%Like repr(dict), but in sorted order.z%r: %rz, z{%s})�sorted�itemsr)�dictr��pair�	reprpairs�
withcommass&    rurNrN*sJ���4�:�:�<� �E�-2�3�U�T��D���U�I�3����9�%�J��J����4s�Ac��U]6�cPgQ[Q[[[1*P*Q[[[1*-!)r��code�extra_names�return)r�r��object)r�s"ru�__annotate__�run_code.__annotate__2s9����3��T�#�v�+�%6��%=���c�SY�k�IZ�rtc�~�-oU%cUOU2[[OU2U2U!)zHRun a piece of code after dedenting it, and return its global namespace.)r��exec�textwrap�dedent)r�r��nss&& ru�run_coder�2s.��	�B��
�	�	�+�������	��#�
�Irt�lineno�offsetc��UO[U29^tt^2o[UQQ2PPP2WOoUO	UO
2UdUO
UO
U2UO	UO2UdUO
UOU2P!P!)%fhK�9h)z
<test string>r�)�assertRaisesRegex�SyntaxError�compile�	exception�assertIsNotNoner��assertEqualr�)�testcase�	statement�errtextr�r��cmr�s&&&$$  rurr;s���	�	#�	#�K��	9�	9�R��	�?�F�3�
:�
�,�,�C����S�Z�Z�(�
�����S�Z�Z��0����S�Z�Z�(�
�����S�Z�Z��0��
:�	9�s�B<�<C	�C	c�```
�]PHo]PHo]QH
Go]PHoRO
QP2n
UOOU2]*OQ2P*o[OO[U2oUU
U1Qko[OOU2%cUU2o	U	dU	!UU2[Q2[ %c[#QU*[%2Q5UO&O)2o
U%cU
O*O-Q2U
O/U[0Q	5o	U%c3U	O2O5Q
2Q6XcUO7U	Q5o	[/UQ29^tt^2oU	O92oU%c$UO;U2U	O92oJ+PPP2U	O=2UU2o	U	dU	![?Q
U*2g[
cPoCKh9h)%fhKT9hS	O=2h9h)r)�unlinkr��/c�:�[U,RN3-R@oReU!RU2%cUO]2U!UO2P!rz)�open�seekr�)r�r�rr�r,s& ���ru�check_valid_file�*open_urlresource.<locals>.check_valid_fileUsC�����!�d�!�b�!���=��H�
�1�X�X�
�F�F�1�I��H�	���	rtr
z	fetching %s ...��filerx)r�zContent-Encoding)�fileobj�wbzinvalid resource %r)zAccept-Encodingrx) �urllib.request�urllib.parse�	os_helperr�rxrs�pop�parse�urlparserr�r�r�
TEST_DATA_DIRr�rrr�r�request�build_opener�
addheaders�appendr�rW�headersr�GzipFile�read�writer�r)�urlrr,�urllibr�rxr�r�r�r��opener�out�sr�s&jl          @rurDrDGs����'�!���
�F�F�7�D�!�E��|�|�$�$�S�)�!�,�2�2�3�7��;�H�	�����m�X�	.�B��
�w�w�~�~�b����R� ���=��H��r�
�
�Z���w�
�!�C�'�.A�.C�D�
�^�^�
(�
(�
*�F����� � �!<�=����C�!1��2�A���	�	�
�
�0�1�V�;��M�M�!�M�$���
�"�d�^�^�s�����A���	�	�!���F�F�H����	
���	����A��}���
�*�R�/�
0�0��_������H�^��	
���	�sG�H�H;�H(�8#H(�H;�	H%�H%�$H%�(H8	�1H8	�3H;�;I
c#�� �]PHo[[U2o[[VO	22[[U2w�[[V2P![[X2h9h3h)z�Return a context manager used by captured_stdout/stdin/stderr
that temporarily replaces the sys stream *stream_name* with a StringIO.)�ior�r��setattr�StringIO)�stream_namer�orig_stdouts&  rurr~sL�����#�{�+�K��C��k�k�m�,�/��c�;�'�'���[�.����[�.�s�4A1�A�
A1�A.�.A1c��[Q2!)z�Capture the output of sys.stdout:

with captured_stdout() as stdout:
    print("hello")
self.assertEqual(stdout.getvalue(), "hello\n")
r��rrlrtrurr�����8�$�$rtc��[Q2!)z�Capture the output of sys.stderr:

with captured_stderr() as stderr:
    print("hello", file=sys.stderr)
self.assertEqual(stderr.getvalue(), "hello\n")
r�rrlrtrurr�rrtc��[Q2!)z�Capture the input to sys.stdin:

with captured_stdin() as stdin:
    stdin.write('hello\n')
    stdin.seek(0)
    # call test code that consumes from sys.stdin
    captured = input()
self.assertEqual(captured, "hello")
�stdinrrlrtrur
r
�s���7�#�#rtc�p�]PHoUO2UO2UO2P!)a�Force as many objects as possible to be collected.

In non-CPython implementations of Python, this is needed because timely
deallocation is not guaranteed by the garbage collector.  (Even in CPython
this can be the case in case of reference cycles.)  This means that __del__
methods may be called later than expected and weakrefs may remain alive for
longer than expected.  This function tries its best to force all garbage
objects to disappear.
)�gc�collect)rs ru�
gc_collectr�s"����J�J�L��J�J�L��J�J�Lrtc#�� �]PHoUO2oUO2Pw�U%cUO2P!P!S%cSO2hh9h3hrq)r�	isenabled�disable�enable)r�have_gcs  ru�
disable_gcr$�sF���
��l�l�n�G��J�J�L��
���I�I�K���7��I�I�K��s&�&A(�A
�A(�A(�
A%�A%�%A(c'� �]PHoUO2oUOUPw�UOUP!SOSh9h3hrq)r�
get_threshold�
set_threshold)rr�
old_thresholds*  ru�gc_thresholdr)�sH���
��$�$�&�M����d��)�
�
���-�(�����-�(�s�'A�A�A�A�Ac��[OQ29%fPoPoUO2FDoUOQ2%fJSoJ 	[OQ2Q6XcQoV7!QoV7!)z,Find if Python was built with optimizations.�	PY_CFLAGSz-O�CC�gcc)��-O0z-Og)r.r/)rRrSrr�)rT�	final_opt�opt�non_optss    ru�python_is_optimizedr3�sx��
�
%�
%�k�
2�
8�
8�b�F��I��|�|�~���>�>�$����I������%��.�%���$�$����$�$rtc�`�[OQ29%fPn,QNo[OQ2oU%cUOU2[9PIcU1QkU2D%fJP	!	P
!U1QkU22!)�PY_CFLAGS_NODIST�PGO_PROF_USE_FLAGc3�8:�SF �D
pR7w�	J	P!3hrzrl)�.0rc�
cflags_nodists& �ru�	<genexpr>�#check_cflags_pgo.<locals>.<genexpr>�s��[���[�6��&�[�s�)z
-fprofile-usez-fprofile-instr-usez	-prof-use)rRrSr�any)�pgo_optionsr6r9s  @ru�check_cflags_pgor>�st����,�,�-?�@�F�F�B�M��K�"�0�0�1D�E������,�-��3�A�[�A�3�3�A�3�A�3�A�[�A�A�Artc�j�[%cP
![OQ29%fPoQU7!)FrQz
--enable-bolt)r=rRrS)rUs ru�check_bolt_optimizedr@�s/���w���*�*�=�9�?�?�R�K��k�)�)rt�Py_GIL_DISABLEDc�:�[O[U2!)z8Decorator for skipping tests on the free-threaded build.)r�rrAr�s&rurr�s���?�?�?�C�0�0rtc�B�[%c[O!Q!)z+Expect test failure if the GIL is disabled.c��U!rzrl)�	test_cases&rur��2expected_failure_if_gil_disabled.<locals>.<lambda>s��Yrt)rAr�r�rlrtru� expected_failure_if_gil_disabledrG�s�����'�'�'�&�&rt�PHBBInP�nP�0n�nc�Z�]PHoUO[U*[*2!rq)�struct�calcsize�_header�_align��fmtrMs& ru�calcobjsizerS	s����?�?�7�S�=�6�1�2�2rtc�Z�]PHoUO[U*[*2!rq)rMrN�_vheaderrPrQs& ru�calcvobjsizerV
s����?�?�8�c�>�F�2�3�3rtc���]PHo[O
U2o[
U2[6XcUO[*%f;[
U2[6wc9[
U2O[*%cV#O*
oQ[
U2VB1*oUOVBU2P![c[OQ2gh9h)rr�z&wrong size for %s: got %d, expected %d)�_testinternalcapirsr�r�r��	getsizeofr��	__flags__�_TPFLAGS_HEAPTYPE�_TPFLAGS_HAVE_GC�SIZEOF_PYGC_HEADr�)�test�o�sizerXr�r{s&&&   ru�check_sizeofras���>� ��]�]�1�
�F�	
�a��D��q�{�{�->�>�>�
�q�'�T�/��Q�� 1� 1�4D� D� D��2�2�2��
2��A�w��%�&�C����V�3�'���>���� <�=�=�>�s�C�	C$�C$�_do_cleanupsc��````�P
n[R[2%c3ROQQ2O2n[	R2]6XcP	n[R2nUUUU1QkoU!)z5Run multiple subtests with different parameters.
    �,� c�:`�[R[2%c[Q2g[OR2UUUUU1Qk2oU!)z1subTests() can only decorate methods, not classesc	�:�RFDpoR	%cU1o[[RU22oUOQ-U@9^tt^2RU,UN3-U@U@PPP2R%fJ`UO2Jr	P!)%fhK09h)Nrl)r��zip�subTest�
doCleanups)
r~rrh�values�subtest_kwargsrb�	arg_names�
arg_valuesr��single_params
"*,  �����rur-�,subTests.<locals>.decorator.<locals>.wrapper7sn���$���$�Y�F�!%�c�)�V�&<�!=���\�\�3�N�3�3���A��A��A�.�A�4��<��O�O�%�%�4�3�s�A<	�<B
�B
)r:r��	TypeErrorr/r0)r�r-rbrmrnrosf ����rur1�subTests.<locals>.decorator4sC����d�D�!�!��O�P�P�	����	�	&�	&�
�	&��rt)r:r��replacerr�r)rmrnrbr1rosbbd @ru�subTestsrt+s_����L��)�S�!�!��%�%�c�#�.�4�4�6�	��y�>�Q���L��z�"�J�
�
��rtc'�  �]PHo[V 2oUOU2oSFDoUOV52L#	PU7c[O
QU02gPw�U%cU%cUOWU2P!P!P!SOcJ}h9h[cg[c$P9q$PS7c[O
Q2gK~h9hS%cS%cSOWS2hhh9h3h)rzno locales z
no locales)�localer��	setlocalerr�r�r�r�)�catstr�localesrv�category�orig_locale�locs&*    rurFrFHs���A���6�*���&�&�x�0���C�
�� � ��/����� ��'�'�+�g�Y�(?�@�@�!�4�
��k����X�{�3�"�6���<�<�
��
����
��2�#�#��
�W���#�#�L�1�1��2��&�k����X�{�3�"�6�s��D� B)�D�B�D�	D�$C%�)D�1D�9D�B&�!B&�"D�%B&�&D�)	C"�3
C"�>
C"�	C"�D�!C"�"D�%D�.D�6D�Dc�``�UU1QkoU!)c�N:`�[OR2UUU1Qk2oU!)c	�:�PR
7o]PHo[UR2oUOU2oR
FDGoUOUQ59^tt^2UOVW2P
oR	U,UN3-U@PPP2JI	UOVV2U%c3UOPQ59^tt^2R	U,UN3-U@PPP2P!P!SOcSOQS802K�h9h)%fhJ�9hSOXV2h9h[cg[cK�h9h)%fhP!9h)r.)rvz
no locale )rvr�rwrir�skipTestr�r�)r~rrh�dry_runrvrzr{r|rxr�rys"*,     ���rur-�/run_with_locales.<locals>.deco.<locals>.wrapperms:����G�m�G�
<��"�6�6�2��$�.�.�x�8��<�&��!�\�\��\�5�5�<� &� 0� 0�� ?�+0�� $�T� ;�D� ;�F� ;�6�5� '��$�$�X�;���\�\��\�.�.���/��/��/�/�.���$*�<�<�D� $�
�
�
�3�'�.B� C�D��6�5�5���$�$�X�;��%"�
���
��
��&/�.�.�s��!D� D�C2	�
C�C2	�-D�,D8�C/�C/�,C2	�.C/�/C2	�2D
�;D
�=	D�D�	D5�&
D5�1D5�4D5�8E		�E		rk)r�r-rxrysf ��ru�deco�run_with_locales.<locals>.decols%���	����	�	0�
�	0�<�rtrl)rxryr�sfj ru�run_with_localesr�ks��� �B�Krtc�`�U1QkoU!)c�^:`�UU1QkoROUmROUmU!)c�:�[OoQ[
O7c[
OQ*oLPoR[
OQ$U2RU-U@Ue[
OQLU[
OQ$[O2![c[OQ2gh9hSe[
OQLS[
OQ$[O2h9h)ztzset required�TZ)�time�tzsetr�r�r�r��environ)r�kwdsr��orig_tzr��tzs*,  ��ru�inner�-run_with_tz.<locals>.decorator.<locals>.inner�s����
:��
�
���r�z�z�!��*�*�T�*����!�B�J�J�t���G�
��T�*�T�*��?��
�
�4�(�'.�B�J�J�t�$��
�
���#"�
:��'�'�(8�9�9�
:���?��
�
�4�(�'.�B�J�J�t�$��
�
��s#�B%�C
�%	C�/C�
D
�;D
)rnrr)r�r�r�sf �rur1�run_with_tz.<locals>.decorator�s%���	�,���������
��rtrl)r�r1sf rurOrO�s����4�rtc�2�U]6�cPgQ[Q[-!�r��limitr�)r�r)r�s"rur��_parse_memlimit.__annotate__�s��>�>�3�>�3�>rtc	�t�QQQ[Q[QQ[*-o[OQU[O[O
*2oUe[
QU802g[[UO]22VO]2O2**2!)�krm�m�g�tz(\d+(?:\.\d+)?) (K|M|G|T)b?$zInvalid memory limit: )�_1M�_1G�re�match�
IGNORECASE�VERBOSErr�float�grouprC)r��sizesr�s&  ru�_parse_memlimitr��s����T��S��S��T�#�X�	
�E�	���0�%�������+�	-�A��y��1�%��;�<�<��u�Q�W�W�Q�Z� �5�����)9�)9�);�#<�<�=�=rtc�*�U]6�cPgQ[QP-!r�)r�)r�s"rur��set_memlimit.__annotate__�s��	�	��	��	rtc��[U2oU[]*
6c[QU8Q02gUr[	U[
2oUrP!)�z
Memory limit z too low to be useful)r��_2Gr�real_max_memuse�min�MAX_Py_ssize_tr)r��memlimits& rurLrL�sE���u�%�H��#��'���=��	�1F�G�H�H��O��8�^�,�H��Jrtc�8`�\sQsQsnQsQsQsQsQsUs	P!)�_MemoryWatchdogi�zXAn object which periodically watches the process' memory consumption
and prints it out.
c�j�QO[O2Q5UmP
UmP!)z/proc/{pid}/statm)r�)r�r�r��procfile�startedr�s&rur}�_MemoryWatchdog.__init__�s$��+�2�2�r�y�y�{�2�C��
���rtc���[UOQ2o]PH*oU9^tt^2[Q2oUO[OU,UUOQ5UmPPP2P	UmP![cUo[O[
2O
QX"Q5[OO2Po=P!Po=hh9h)%fhK{9h)�rz!/proc not available for stats: %sr?zmemory_watchdog.py)rr�)r�r�r�rErFrnrGr�r��flushr�rHr�r�r��mem_watchdogr�)r~r�r�r��watchdog_scripts&    ru�start�_MemoryWatchdog.start�s���	��T�]�]�C�(�A�	�
�Q�&�';�<�O� *� 0� 0�#�.�.�/�1R�78�8B�8J�8J�!1�!L�D���
�����	����h�'�/�/�0S�UV�/�c��J�J������	���Q�s/�A7�?C�7	C�C�A	C�C�C)	�"C)	c��UO%c7UOO2UOO2P!P!rz)r�r��	terminater�r�s&ru�stop�_MemoryWatchdog.stop�s4���<�<�<����'�'�)����"�"�$�rt)r�r�r�)
rnrorprqrrr}r�r�rsr��r�s@rur�r��s������� %�%rtr�c�```�UUU1QkoU!)aPDecorator for bigmem tests.

'size' is a requested size for the test (in arbitrary, test-interpreted
units.) 'memuse' is the number of bytes per unit for the test, or a good
estimate of it. For example, a test that needs two byte buffers, of 4 GiB
each, could be decorated with @bigmemtest(size=_4G, memuse=2).

The 'size' argument is normally passed to the decorated test method as an
extra argument. If 'dry_run' is true, the value passed to the test method
may be less than the requested value. If 'dry_run' is false, it means the
test doesn't support dummy runs when -M is not specified.
c�::``�UUU1QknRRmRRmR!)c�D:�ROoROo[%fQoLSo[%f	R%f<[V2*6c+[OQV*Q**2g[%cZ[
%cN[
2[
QOV*Q*Q52[2oUO2LPoRV2U%cUO2!!S%cSO2hh9h)i�'not enough memory: %.1fG minimum neededz* ... expected peak memory use: {peak:.1f}G)�peak�@)r`�memuser�r�r�rr�r�r�r�r�)r~r`r��maxsize�watchdogr�r�r-s&    ���rur-�.bigmemtest.<locals>.decorator.<locals>.wrappers�����<�<�D��^�^�F�"�?����� ���#�g�&6�6��'�'�=��}�	�2�4�5�5���7�7����B��v�4�=�I�#>�v�?�A�*�,����� ���
$���'���M�M�O���8��M�M�O��s�#D�D�
D)r`r�)r�r-r�r�r`sf@���rur1�bigmemtest.<locals>.decorators���	$�:�������rtrl)r`r�r�r1sfff rurr�s��� �B�rtc�``�]QHGn[OR2UU1Qk2o[O
[Q2[U22!)z>Check that we can use this test with `_testcapi.set_nomemory`.��
import_modulec�(:�RQ2RU-U@!r�rl)rrhr�r�s*,��ru�internal�nomemtest.<locals>.internal)s����k�"��$�!�&�!�!rtzcannot test Py_TRACE_REFS build)�
import_helperr�r/r0r�r�
Py_TRACE_REFSr )r�r�r�sf @rurr%sK���,��_�_�Q��"��"��?�?�	�)�	�
�8���rtc�`�U1QkoU!)z0Decorator for tests that fill the address space.c��:�[[6cU[Q6�c"[Q6�c[OQ2g[OQ[Q**2gRU2!)r�z-not enough memory: try a 32-bit build insteadr�l�����r�)rr�r�r�)r~r�s&�rur-�!bigaddrspacetest.<locals>.wrapper7sb�����&���*�z�U�/B��'�'�C�E�E��'�'�=�%��3�5�6�6��T�7�Nrtrl)r�r-sf rurr5s���
��Nrtc��U!rzrl)r�s&ru�_idr�Gs���Jrtc���UQ6Xc5[2%f%[O[O2![	U2%c[
![OQO
U22!)rzresource {0!r} is not enabled)r�r�r r�rr�r�rs&rurrJsT���5��!2�!4�!4��}�}�.�5�5�6�6��8�$�$��
��}�}�<�C�C�H�M�N�Nrtc�(�[P	Q5U2!)z1
Decorator for tests only applicable on CPython.
��cpython)�impl_detail�r^s&rur r Rs���t�$�T�*�*rtc��[Q-U@%c[!UeT[U2vq#U%cQoLQo[UO	22oUOQO
U22o[OU2!)Nz*implementation detail not available on {0}z%implementation detail specific to {0}z or rl)	r?r��
_parse_guardsr��keysr�rr�r )r{�guards�
guardnames�defaults&,  rur�r�Xsk���"�6�"�"��
�
�{�+�F�3��
��>�C�9�C��J�O�O�-�.�
��j�j����Z�0�1���=�=���rtc���U%fQP	-P
1![UO22]*o[UO22U,[U2*6XfPgV%(1!r�)�listrkr�)r��is_trues& rur�r�esY����D�!�5�)�)��6�=�=�?�#�A�&�G���
�
�� �W�I��F��$;�;�;�;��K� � rtc�r�[U2vqUO[OOU2!)aThis function returns True or False depending on the host platform.
Examples:
   if check_impl_detail():               # only on CPython (default)
   if check_impl_detail(jython=True):    # only on Jython
   if check_impl_detail(cpython=False):  # everywhere except on CPython
)r�rr��implementationr�)r�r�s, rur?r?os-��$�F�+�O�F��:�:�c�(�(�-�-�w�7�7rtc�```�Rn[[Q2%c [OR2U1Qk2nRoQ[O7c;[O
On[OR2UU1Qk2oU!)zEDecorator to temporarily turn off tracing for the duration of a test.�gettracec��:�[O2o[OP2RU-U@[OU2![OS2h9hrz)r�r��settrace)rrh�original_tracer�s*, �ru�
trace_wrapper�!no_tracing.<locals>.trace_wrapper~sE��� �\�\�^�N�
-����T�"��T�,�V�,����^�,�����^�,�s�A�A&ztest.covc�":�[OOR2o[OOR]2RU-U@[OORU2![OORS2h9hrq)r��
monitoring�
get_events�
set_events)rrh�original_events�covr�s*, ��ru�coverage_wrapper�$no_tracing.<locals>.coverage_wrapper�sg���!�n�n�7�7��<�O�
@����)�)�#�q�1�$�d�5�f�5����)�)�#��?�����)�)�#��?�s�(A,�,"B)r�r�r/r0�modulesr��COVERAGE_ID)r�r�r�r�sf @@ru�
no_tracingr�zsx����M��s�J���	����	�	-�
�	-�%���S�[�[� ��n�n�(�(��	����	�	@�
�	@��rtc�`�U1QkoU!)z�Skip rerunning for a particular test.

WARNING: Use this decorator with care; skipping rerunning makes it
impossible to find reference leaks. Provide a clear reason for skipping the
test using the 'reason' parameter.
c�\:``�[R[2%cPR2gP
nUUU1QkoU!)Fc�P:�R%cUOR2RU2P	nP!r5)r�)r~�_has_runr�r�s&���rur-�'no_rerun.<locals>.deco.<locals>.wrapper�s�����
�
�f�%���J��Hrt)r:r�)r�r-rr�sf @�rur��no_rerun.<locals>.deco�s,����d�D�)�)�/�4�/�)���	��rtrl)r�r�sf ru�no_rerunr�s���	��Krtc�,�[[U22!)z�Decorator for tests which involve reference counting.

To start, the decorator does not run the test if is not run by CPython.
After that, any trace function is unset during the test to prevent
unexpected refcounts caused by the trace function.

)r�r r�s&ru�
refcount_testr�s���l�4�(�)�)rtc�t�]PHo]PHoU![c [OQ2S2t!h9h)rz,needs _testcapi and _testlimitedcapi modules)r��_testlimitedcapirsr�r )r^r�rs&  rur4r4�s=��S����K���S��}�}�K�L�T�R�R�S�s�
�	7�7�7�TEST_MODULES�yesc�Z�[O[OQ2U2!)zrequires specialization)r�rt�_opcode�ENABLE_SPECIALIZATIONr�s&rur5r5�s,������%�%�'@�B�BF�H�Hrtc�Z�U]6�cPgQ[OQ[O-!)r�r�r�)r;r<)r�s"rur��reset_code.__annotate__�s&��
�
�%�$�$�
��);�);�
rtc�F�UOO2UmU!)zVClear all specializations, local instrumentation, and JIT code for the given function.)�__code__rsr�s&rurgrg�s�����#�#�%�A�J��Hrt�GITHUB_ACTIONSc��P!)z,Just used to check if docstrings are enabledrlrlrtru�_check_docstringsr�s�rt�WITH_DOC_STRINGSztest requires docstringsc���[Od[OO2[Od![OO2P!P!rz)r�r�r�r�rlrtru�flush_std_streamsr�s;��
�z�z���
�
����
�z�z���
�
����rtc��[2[OoUO2FDo[	QU0UQ5J	UO2P!)zWarning -- r�)r�
print_warning�orig_stderr�
splitlinesr�r�)r{�stream�lines&  rurr�s>����
�
&�
&�F���� ��
��D�6�"��0�!�
�L�L�Nrtc�(�[[Q2%c[[Q2%fP![%fP![OP[O2vqU]6XcP![
QU02P	rJD[
cP!h9h)z�Use this function at the end of test_main() whenever sub-processes
are started.  This will help ensure that no extra children (zombies)
stick around to hog resources and create problems when looking
for refleaks.
�waitpid�WNOHANGz%reap_children() reaped child process )r�r�r&rrr�r�environment_altered)r��statuss  rurErEs��
�B�	�"�"�w�r�9�'=�'=��
#�
#���	��*�*�R����4�K�C��!�8���=�c�U�C�D�"����	��	�s�'B�	B�B�Bc#�N �[V2%c,[V2o[VU2Uw�[VU2P![VU2Pw�[V2%c[V2P!P![XS2h9h[X2%c
[X2hh9h3h)a�Temporary swap out an attribute with a new object.

Usage:
    with swap_attr(obj, "attr", 5):
        ...

    This will set obj.attr to 5 for the duration of the with: block,
    restoring the old value at the end of the block. If `attr` doesn't
    exist on `obj`, it will be created and then deleted at the end of the
    block.

    The old value (or None if it doesn't exist) will be assigned to the
    target of the "as" clause, if there is one.
)r�r�r�delattr)r��attr�new_val�real_vals&&& rurJrJs���� �s����3�%����7�#�	)��N��C�x�(���7�#�	#���s�!�!���"�"��

�C�x�(���s�!�!���"�"�sD�B%�B%�A2�B%�
B�B%�#B%�2B�B%�B"�
B"�"B%c#� �V7cV*oV U$Uw�V0U$P!V U$Pw�V7cVP!P!X0S$h9hX7cXhh9h3h)a�Temporary swap out an item with a new object.

Usage:
    with swap_item(obj, "item", 5):
        ...

    This will set obj["item"] to 5 for the duration of the with: block,
    restoring the old value at the end of the block. If `item` doesn't
    exist on `obj`, it will be created and then deleted at the end of the
    block.

    The old value (or None if it doesn't exist) will be assigned to the
    target of the "as" clause, if there is one.
rl)r��itemr%r&s&&& rurGrG>se��� �{��9���D�	�	!��N� ��I��D�	�	���{��I���
!��I���{��I��s=�A�A�8�
A�A�A�A�>�A�A�A�Ac�,�]PHoUO2!)zjReturn a list of command-line arguments reproducing the current
settings in sys.flags and sys.warnoptions.)r��_args_from_interpreter_flags�r�s ru�args_from_interpreter_flagsr,]s����2�2�4�4rtc�,�]PHoUO2!)zcReturn a list of command-line arguments reproducing the current
optimization settings in sys.flags.)r��"_optim_args_from_interpreter_flagsr+s ru�!optim_args_from_interpreter_flagsr/cs����8�8�:�:rtc�2`�\sQsQsnQsQsQsQsUsP!)rKijc��P	oSFD:oV$*oUOU2oUOVFU2%cJ6P
oU!	U!)a
Try to match a single dict with the supplied arguments.

Keys whose values are strings and which are in self._partial_matches
will be checked for partial (i.e. substring) matches. You can extend
this scheme to (for example) do regular expression matching, etc.
)r�match_value)r~�drhr�r��v�dvs&&,    ru�matches�Matcher.matchesnsN�����A��	�A����q��B��#�#�A�1�-�-�����
�
��
rtc��[U2[U26wcP
oU![U2[IfVO7cV26HoU!UOU2]6�oU!)zD
Try to match a single stored value (dv) with a supplied value (v).
)r�r��_partial_matches�find)r~r�r5r4r�s&&&& rur2�Matcher.match_values_����7�d�2�h���F�
�
�	�"�X�S�
 �A�-B�-B�$B��g�F��
��W�W�Q�Z�1�_�F��
rtrl)r{�message)	rnrorprqr9r6r2rsr�r�s@rurKrKjs����)���"
�
rtc��]PHo[eT[OQ6Xc=UO	2Q6Xc([
O2OP6XcP	rLP
r[%c[OQ2U2!S!)a
Skip decorator for tests that use buggy strptime/strftime

If the UCRT bugs are present time.localtime().tm_zone will be
an empty string, otherwise we assume the UCRT bugs are fixed

See bpo-37552 [Windows] strptime/strftime return invalid
results with UCRT version 17763.615
r��cp65001z!buggy MSVC UCRT strptime/strftime)
rv�_buggy_ucrtr�r��getencodingr��	localtime�tm_zoner�r )r^rvs& rur0r0�sh������<�<�7�"��"�"�$�	�1���� �(�(�B�.��K��K�GR�{�8�=�=�<�=�d�C�\�X\�\rtc�`�\sQsQsnQsQQks\OQ6XcQsLQsQs	Qs
Q	sQ
]-QksQ
]-Qks
Q
sUsP!)�
PythonSymlinki�z3Creates a symlink for the current Python executablec��]QHGoS9%f [OO	U2Um,Um[OO[O2Um
,UmPUmUO2P!)r�)�TESTFN)r�rFr�r��abspath�link�_linked�realpathr�r��real�
_also_link�_env�_platform_specific)r~rHrFs&& rur}�PythonSymlink.__init__�s\��%��3�3�B�G�G�O�O�F�3��	�����G�G�$�$�S�^�^�4��	������	����!rtr�c�`�]PHo]PHo[OO	UO
2%cF[OO
UO
2%fUO]2UmUO[O2o[OOU2o[OOUO2oUOOU[OOU[OOU2212UO[OOUO!U2Q22FD[oUOOU[OOU[OOU2212J]	[O"Tt-tFD'pwO%2[O&U2aJ)	toUm[OOUO
2o[*O,2%c5[OOU[*O.Q22oV�O(Q$P!ttoh)rzvcruntime*.dll�VPATH�
PYTHONHOME)�glob�_winapir�r��lexistsrKr��GetModuleFileNamer��	dllhandle�dirnamerHrLrr�basename�escaper��upper�getenvrMrR�is_python_buildrS)	r~rSrTr��src_dir�dest_dir�runtimer��homes	&        rurN� PythonSymlink._platform_specific�s������w�w���t�y�y�)�)�"�'�'�.�.����2K�2K�$�5�5�a�8��	��+�+�C�M�M�:�C��g�g�o�o�c�*�G��w�w���t�y�y�1�H��O�O�"�"�������X�r�w�w�'7�'7��'<�=�$�
� �9�9�R�W�W�\�\�$�+�+�g�2F�HX�%Y�Z�����&�&���G�G�L�L��2�7�7�+;�+;�G�+D�E�(��[�;=�*�*�E�*�Q����B�I�I�a�L�0�*�E�D�I��7�7�?�?�4�9�9�-�D��(�(�*�*��w�w�|�|�D�)�*B�*B�7�*K�L��&*�I�I�l�#��	Fs�,/J+c��P!rzrlr�s&rurNrb����rtc�6�[OUOUO2UOOUO2UOFD6vq[OV2UOOU2J8	U!rz)r��symlinkrKrHrIrrL)r~rKrHs&  ru�	__enter__�PythonSymlink.__enter__�sc��
�
�
�4�9�9�d�i�i�(������D�I�I�&��/�/�J�D��J�J�t�"��L�L����%�*��rtc	���UOFDo[OU2J	P![c8o[%c![QO
XE22Po=JWPo=J]Po=hh9h)zfailed to clean up {}: {})rIr��remove�IOErrorrr�r�)r~�exc_type�	exc_value�exc_tbrH�exs&&&&  ru�__exit__�PythonSymlink.__exit__�sV���L�L�D�
H��	�	�$��!���
H��7��5�<�<�T�F�G�G���
H�s�/�	A1�A1�A,�A,�,A1c��]PHoU,UNoUOVeOUOUQ5oUO2oUOU6wcw[
%cG[
[U]*22[
[U]*2[OQ5[QOUO22gU!)r)r�r�rbr�z'unexpected return code: {0} (0x{0:08X}))r�r��PIPE�communicate�
returncoderr��reprr�r��RuntimeErrorr�)	r~�pythonrrbrur��cmd�pr�s	&&&&&    ru�_call�PythonSymlink._call�s�����o��o�����S���$.�O�O��
�
>��
�M�M�O���<�<�:�%��w��d�1�Q�4�j�!��d�1�Q�4�j�s�z�z�2��9�@�@����N�P�
P��rtruc�@�UOUOUPU2!rz)r{rK�r~rurs&$*ru�	call_real�PythonSymlink.call_real�s���z�z�$�)�)�T�4��<�<rtc�R�UOUOV OU2!rz)r{rHrMr~s&$*ru�	call_link�PythonSymlink.call_link�s���z�z�$�)�)�T�9�9�j�A�Art)rLrMrIrHrKrz)rnrorprqrrr}r�r�rNrgrpr{rr�rsr�r�s@rurDrD�sU����=�
"��|�|�w��	+�8	��H��=�!�=�B�!�B�BrtrDc��[%(9%f[oQoU%cU![OU2U2!)z;Skip decorator for tests not run in (non-extended) PGO taskz#Not run for (non-extended) PGO task)rP�PGO_EXTENDEDr�r )r^�okr{s&  ru�skip_if_pgo_taskr��s1��
��	 �	 �L�B�
/�C��4�3�8�=�=��-�d�3�3rtc��[%f"[%f[OQ6XcU!]PHoUOUO2vq#V#6H9%cUQ7oQo[OVE2U2!)a%Skip decorator for tests not run when an unlimited stack size is configured.

Tests using support.infinite_recursion([...]) may otherwise run into
an infinite loop, running until the memory on the system is filled and
crashing due to OOM.

See https://github.com/python/cpython/issues/143460.
�ntz#Not run due to unlimited stack size����l����)	r<r=r�r�r�	getrlimit�RLIMIT_STACKr�r)r^r�curlim�maxlim�unlimited_stack_size_condr�s&     rur7r7�sh���}���2�7�7�d�?�����'�'��(=�(=�>�N�F� &� 0� Z� Z�V�?Z�5Z��
2�F��?�?�4�=�d�C�Crt�ignorec���[[U22[[U22*
oU%cU[U2*o[9PIc.QU2DjJ	oU!QU22oU!)z�Returns the set of items in ref_api not in other_api, except for a
defined list of items to be ignored in this check.

By default this skips private attributes beginning with '_' but
includes all magic methods, i.e. those starting and ending in '__'.
c3��SF �D8oUOQ2%cUOQ2%fJ3Uw�	J:	P!3h)r��__)r��endswith)r8r�s& rur:�&detect_api_mismatch.<locals>.<genexpr>s/��=���=�a� �|�|�C�0�0�A�J�J�t�4D���=�s�A�A�A)�set�dir)�ref_api�	other_apir��
missing_itemss&&$ rur.r.so����G��%��C�	�N�(;�;�M�
���V��$�
��C�F�=�F�C�M����F�=�F�F�M��rtc���UeUO1oL[U[2%cU1o[U2o[	U2FD�oUOQ2%fVd7cJ"[
V2o[
UQP2U7f7[UQ2%cJS[U[O2%cJuUOU2J�	UOUOU2P!)a�Assert that the __all__ variable of 'module' contains all public names.

The module's public names (its API) are detected automatically based on
whether they match the public name convention and were defined in
'module'.

The 'name_of_module' argument can specify (as a string or tuple thereof)
what module(s) an API could be defined in order to be detected as a
public API. One case for this is when 'module' imports part of its public
API from other modules, possibly a C backend (like 'csv' and its '_csv').

The 'extra' argument can be a set of names that wouldn't otherwise be
automatically detected as "public", like objects without a proper
'__module__' attribute. If provided, it will be added to the
automatically detected ones.

The 'not_exported' argument can be a set of names that must not be treated
as part of the public API even though their names indicate otherwise.

Usage:
    import bar
    import foo
    import unittest
    from test import support

    class MiscTestCase(unittest.TestCase):
        def test__all__(self):
            support.check__all__(self, foo)

    class OtherTestCase(unittest.TestCase):
        def test__all__(self):
            extra = {'BAR_CONST', 'FOO_CONST'}
            not_exported = {'baz'}  # Undocumented name.
            # bar imports part of its API from _bar.
            support.check__all__(self, bar, ('bar', '_bar'),
                                 extra=extra, not_exported=not_exported)

r�ro)
rnr:r�r�r�r�r�r�r;�
ModuleType�add�assertCountEqual�__all__)rEr��name_of_module�extra�not_exported�expectedr�r�s&&&&&   rur/r/s���R�� �/�/�,��	�N�C�	(�	(�(�+���5�z�H��F����?�?�3���4�#7���f�#���C��t�,��>��S�,�/�/���U�%5�%5�6�6��L�L�������v�~�~�x�8rtc���]PHoUOUOUO*UO
*UO*2[UQ2%c�UOUOUO1FDUoU%c9UOV!O2UOV!O2JCUOU]2JW	P!P![cP!h9h)r�CrtSetReportMode)�msvcrtrs�SetErrorMode�SEM_FAILCRITICALERRORS�SEM_NOALIGNMENTFAULTEXCEPT�SEM_NOGPFAULTERRORBOX�SEM_NOOPENFILEERRORBOXr��CRT_WARN�	CRT_ERROR�
CRT_ASSERTr��CRTDBG_MODE_FILE�CrtSetReportFile�CRTDBG_FILE_STDERR)rr�r�s&  ru�suppress_msvcrt_assertsr�Ys���������5�5� �;�;�<� �6�6�7�!�7�7�8�9��v�)�*�*��/�/�6�#3�#3�V�5F�5F�G�A���'�'��+B�+B�C��'�'��+D�+D�E��'�'��1�-�H�+������s�C(�(	C7�2C7�6C7c�:`�\sQsQsnQsPsPsQsQsQs	Us
P!)rMinz�Try to prevent a crash report from popping up.

On Windows, don't display the Windows Error Reporting dialog.  On UNIX,
disable the creation of coredump file.
c���[OOQ2%c�]PHoUO2UmUOUOUO*2[UQ2%c{-Um
UOUOUO1FDKoUOUUO2oUO!UUO"2oV41UOU$JM	U!]PHJoVPmUO$dyUO$O'UO$O(2UmUO$O+UO$O(]UO]*12[OQ6Xc~]PHbo,QNoUO3UUO4UO4Q5oU9^tt^2UO72]*o	PPP2W	O92Q6Xc[;QPP	Q5U![cP!h9h[cPSmCKAh9h[,[.1cK�h9h)%fhKw9h)	z�On Windows, disable Windows Error Reporting dialogs using
SetErrorMode() and CrtSetReportMode().

On UNIX, try to save the previous core file size limit, then set
soft limit to 0.
r�r�r�r�s	developerz:this test triggers the Crash Reporter, that is intentional)�endr�)z/usr/bin/defaultsrzcom.apple.CrashReporter�
DialogType)r�r�r�r�rs�GetErrorMode�	old_valuer�r�r��	old_modesr�r�r�r�r�r�r�rr��RLIMIT_CORE�	setrlimitrr�r�r�rsrtr�r�)
r~r��report_type�old_mode�old_filerr�ryr�r�s
&         rurg�SuppressCrashReport.__enter__ws���<�<�"�"�5�)�)�
��$�0�0�2�D�N��������1M�1M� M�N��v�1�2�2�!#���$*�O�O�$*�$4�$4�$*�$5�$5�$7�K� &�6�6�{�"�3�3� 5�H�%�6�6�{�"�5�5� 7�H�2:�2D�D�N�N�;�/�$7�T��A
%�� (�
��}�}�(��%)�]�]�%<�%<�T�]�]�=V�=V�%W�D�N��M�M�+�+�D�M�M�,E�,E�-.����q�0A�,B�D�
�|�|�x�'�!�@��!�'�'��/9���/9���(�@���T�!�-�-�/��2�F���<�<�>�\�1��0�57�t�E����k�
��
��0�
%� $��
�
%��#�G�,����� �T�sZ�H �<
H2�A7I�I"� 	H/�*H/�.H/�2	I�<I�I�I�I�I�"I2	�+I2	c�4�UOeP![OOQ2%c]PHoUOUO2UO%cLUOO2FD*vovqEUOV42UOV52J,	P!P!UOd>UOOUOOUO2P!P![[1cP!h9h)zARestore Windows ErrorMode or core file behavior to initial value.r�)r�r�r�r�r�r�r�r�r�r�rr�r�rr�)r~�
ignore_excr�r�r�r�s&*    rurp�SuppressCrashReport.__exit__�s����>�>�!���<�<�"�"�5�)�)��������/��~�~�~�9=���9M�9M�9O�5�K�!5�(��+�+�K�B��+�+�K�B�:P��
�}�}�(���M�M�+�+�D�M�M�,E�,E�t�~�~�V�)��#�G�,����s�:D�D�D�D)r�r�r)rnrorprqrrr�r�rgrprsr�r�s@rurMrMns'�����
�I��I�@�D�rtc��````�[RR2P
nROR*nP	nUUUU1QkoUO	U2[RRU2P![[1c[RRP2nKIh9h)z�Override 'object_to_patch'.'attr_name' with 'new_value'.

Also, add a cleanup procedure to 'test_instance' to restore
'object_to_patch' value for 'attr_name'.
The 'attr_name' should be a valid attribute for 'object_to_patch'.

c�P:�R%c[RRR2P![RR2P!rz)rr#)�
attr_is_local�	attr_name�object_to_patchr�s����ru�cleanup�patch.<locals>.cleanup�s�����O�Y�	�:��O�Y�/rt)r��__dict__r�rD�
addCleanupr)�
test_instancer�r��	new_valuer�r�r�s&ff& @@ru�patchr��s~����O�Y�'��M��#�,�,�Y�7�	��
�0�0����W�%��O�Y�	�2��
�H�%�>��O�Y��=�	�>�s�A�A4�#A4�3A4c#�J �UQ*oPw�VQ$P!WSQ$h9h3h)z-Like unittest.mock.patch.dict, but for lists.�NNNrl)�orig�saveds& ru�
patch_listr��s&�����Q���
��Q���%��Q��s�#��#� �#c��[2]PHoUOU2![c[OQ2gh9h)�]
Run code in a subinterpreter. Raise unittest.SkipTest if the tracemalloc
module is enabled.
�requires _testcapi)�_check_tracemallocr�rsr�r��run_in_subinterp)r�r�s& rur�r��sH��
��6���%�%�d�+�+���6���� 4�5�5�6�s�"�	A�A�own_gilc��[2]PHoUd QU7f	PV12gU%cQLQUQ$LQUQ*oU]6XcQUQ$L;U]6XcQUQ$L.U]6XcQUQ$L![U[2%f[U2g[OQ-U@oUOV2![c[OQ2gh9h)r�zrequires _testinternalcapi�gil�own�sharedr�rl)r�rXrsr�r�r:r��NotImplementedErrorr;�SimpleNamespace�run_in_subinterp_with_config)r�r��configrXr�s&$,  rur�r�s���
��>� ����F�"�5�W�$5�5�"�!(��h��u�
��U�m���!�8�%�F�5�M�
�A�X�$�F�5�M�
�A�X�!�F�5�M��C��%�%�%�c�*�*�
�
"�
"�
,�V�
,�F��9�9�$�G�G��!�>���� <�=�=�>�s�B-�-	C�7Cc��]PHoUO2%c[OQ2gP![cP!h9h)rzUrun_in_subinterp() cannot be used if tracemalloc module is tracing memory allocations)�tracemalloc�
is_tracingr�r�rs)r�s rur�r�"sL��;���!�!�#�#��#�#�%:�;�
;�$���
��
�s�5�	A�A�Ac�n`````�P
nUUUUU1QkoU2[2ROR2P!)Fc�z:`�UU1QkQR2oRUR2nRO[[R2P!)c�2:`�\sQsQsnUU1QksQsUsP!)�6check_free_after_iterating.<locals>.wrapper.<locals>.Ai3c�J:�P	n[R2P![cP!h9hr5)�next�
StopIteration)r~�done�its&��ru�__del__�>check_free_after_iterating.<locals>.wrapper.<locals>.A.__del__4s&��������H��$����s��	"�"�"rl)rnrorprqr�rsr�)r�r�r�s@��ru�Ar�3s����
�
rtr�)�assertRaisesr�r�)r�r�r�clsr��iterr^s @�����rur-�+check_free_after_iterating.<locals>.wrapper2s5���	�	��	��!�T�(�^�����-��r�2rt)r�
assertTrue)r^r�r�rr-r�sffff @ru�check_free_after_iteratingr�0s*����D�3�3��I��L��O�O�D�rtc���]QHGoGo]QHGo]PHoUO
2oUOU2UOQ6XcUO2UOFDioU%c	V`7cJ[VV2oU%cUePQU*2gL
U%fJCUOU]*2dJ_U]*t!	P!SOcQ!h9h)a(Check if the compiler components used to build the interpreter exist.

Check for the existence of the compiler executables whose names are listed
in 'cmd_names' or all the compiler executables when 'cmd_names' is empty
and return the first missing executable or None when none is found
missing.

)�	ccompilerrR)r��msvcz%the '%s' executable is not configured)�setuptools._distutilsr�rR�
setuptoolsr�r��new_compiler�customize_compiler�
compiler_type�
initialize�
PlatformError�executablesr��which)�	cmd_namesr�rRr�r��compilerr�rys&       rurQrQFs���;�!���%�%�'�H�
� � ��*�����'�	����!��$�$����.���h�%����?�
C�;�d�B�
C�?����<�<��A���'��q�6�M�%���#�#�	��	�s�C�C)�$C)�(C)c���Qo[%cTV6cN[e8]PH
oUO2oUO9%cUO
]6r[%cSo[OU2!)g-C��6?)r;�_old_android_emulatorr��android_ver�is_emulator�	api_levelr�rA)�interval�minimum_intervalr��avs&   rurArAisb�����z�h�1� �(���%�%�'�B�$&�N�N�$H�$H�r�|�|�b�7H�!� � �'�H�� � ��*�*rtc���[OQ2oU![[1c7[OQ2oS![[1cQoS!h9hh9h)zGet size of a page in bytes.�SC_PAGESIZE�SC_PAGE_SIZE�)r��sysconfrr�)�	page_sizes rurCrCxso����J�J�}�-�	����
��'��	��
�
�>�2�I�����N�+�	��I���	���s1��A"�A"�A�A�A�A"�A�A"c#� �]PHo[OO2oUO	2oUO2Pw�U%cUO
UP	Q5P!P!S%cSO
SP	Q5hh9h3h)r)r��all_threads)�faulthandlerr��
__stderr__�fileno�
is_enabledr!r")r�fdrs   ru�disable_faulthandlerr�st����


���	�	�	 �B��(�(�*�J�;�����
�����R�T��:���:����R�T��:��s(�4B�A+�B�B�+B	�4B	�	Bc�8`�\sQsQsnQsQsQsQsQsUs	P!)�SaveSignalsi�z�
Save and restore signal handlers.

This class is only able to save/restore signal handlers registered
by the Python signal module: see bpo-13285 for "external" signal
handlers.
c���]PHoVmUO2UmQFD*o[V2oUOOU2J,	-UmP![cJEh9h)r)�SIGKILL�SIGSTOP)�signal�
valid_signals�signalsr�r�rj�handlers)r~r!�signame�signums&   rur}�SaveSignals.__init__�sd������+�+�-���-�G�
� ��1��
�L�L����'�.���
��"�
��
�s�A�	A*�%A*�)A*c��UOFD2oUOOU2oUeJ$V OU$J4	P!rz)r#r!�	getsignalr$�r~r&�handlers&  ru�save�SaveSignals.save�s:���l�l�F��k�k�+�+�F�3�G����$+�M�M�&�!�#rtc��UOO2FD vqUOOV2J"	P!rz)r$r�r!r*s&  ru�restore�SaveSignals.restore�s-��#�}�}�2�2�4�O�F��K�K���v�/� 5rt)r$r!r#)
rnrorprqrrr}r,r/rsr�r�s@rurr�s������
,�0�0rtrc��]PHoUO9%c[
%(![c[OQ2gh9h�rr�)r�rsr�r��
WITH_PYMALLOCrAr�s ru�
with_pymallocr4�sF��6���"�"�:�:�?�':�:���6���� 4�5�5�6�s�&�	A�Ac�p�]PHoUO![c[OQ2gh9hr2)r�rsr�r��
WITH_MIMALLOCr�s ru�
with_mimallocr7�s;��6���"�"�"���6���� 4�5�5�6�s��	5�5c�2`�\sQsQsnQsQsQsQsUsP!)�
_ALWAYS_EQi�z#
Object that is equal to anything.
c��P	!r5rl�r~�others&&ru�__eq__�_ALWAYS_EQ.__eq__����rtc��P
!�Frlr;s&&ru�__ne__�_ALWAYS_EQ.__ne__����rtrl)	rnrorprqrrr=rBrsr�r�s@rur9r9�s�������rtr9c�8`�\sQsQsnQsQsQsQsQsUs	P!)�	_NEVER_EQi�z'
Object that is not equal to anything.
c��P
!rArlr;s&&rur=�_NEVER_EQ.__eq__�rDrtc��P	!r5rlr;s&&rurB�_NEVER_EQ.__ne__�r?rtc��]!�r�rlr�s&ru�__hash__�_NEVER_EQ.__hash__�s��rtrl)
rnrorprqrrr=rBrMrsr�r�s@rurFrF�s��������rtrFc�2`�\sQsQsnQsQsQsQsUsP!)�_LARGESTi�z7
Object that is greater than anything (except itself).
c�$�[U[2!rz)r:rPr;s&&rur=�_LARGEST.__eq__�s���%��*�*rtc��P
!rArlr;s&&ru�__lt__�_LARGEST.__lt__�rDrtrl)	rnrorprqrrr=rTrsr�r�s@rurPrP�s�����+��rtrPc�2`�\sQsQsnQsQsQsQsUsP!)�	_SMALLESTi�z4
Object that is less than anything (except itself).
c�$�[U[2!rz)r:rWr;s&&rur=�_SMALLEST.__eq__�s���%��+�+rtc��P
!rArlr;s&&ru�__gt__�_SMALLEST.__gt__�rDrtrl)	rnrorprqrrr=r[rsr�r�s@rurWrW�s�����,��rtrWc�8�]PHoUOO!)zDReturn the global event loop policy if one is set, else return None.)�asyncio.events�events�_event_loop_policy)�asyncios ru�maybe_get_event_loop_policyrb�s����>�>�,�,�,rtc��Xq2]PHoUO29^tt^2oUO2]*o[U]2UmUOU2oU]*
U*U*oV(*o	V)*
o
V:*
oVw]*
*U]*
U*U**U	]U	*
**o[
U2[
UO221ttPPP2!)%fhP!9hrq)�decimal�localcontext�
bit_length�max�prec�Decimalr��sqrt)
�nbins�nballsrKr�rd�ctx�bitsr��p1empty�	meanempty�occupied�
collisions�vars
&&           ru�collision_statsrt
	s����q�$�	�	�	�	�	�3��|�|�~��!���t�R�=���
�_�_�Q�
����F�b�=�Q�&���K�	��=���\�
��Q�$�i�"�Q�$���Q��&��a�)�m�)D�D���Z� �%����
�"3�3�
 �	�	�	�s�CC7�7D	�D	c�>`�\sQsQsnQsQsQsQsQsQs	Us
P!)�catch_unraisable_exceptioni,	a�
Context manager catching unraisable exception using sys.unraisablehook.

Storing the exception value (cm.unraisable.exc_value) creates a reference
cycle. The reference cycle is broken explicitly when the context manager
exits.

Storing the object (cm.unraisable.object) can resurrect it if it is set to
an object which is being finalized. Exiting the context manager clears the
stored object.

Usage:

    with support.catch_unraisable_exception() as cm:
        # code creating an "unraisable exception"
        ...

        # check the unraisable exception: use cm.unraisable
        ...

    # cm.unraisable attribute no longer exists at this point
    # (to break a reference cycle)
c�$�PUmPUmP!rz)�
unraisable�	_old_hookr�s&rur}�#catch_unraisable_exception.__init__E	s�������rtc��VmP!rz)rx)r~rxs&&ru�_hook� catch_unraisable_exception._hookI	s	��%�rtc�\�[OUmUO[mU!rz)r��unraisablehookryr|r�s&rurg�$catch_unraisable_exception.__enter__N	s ���+�+���!�Z�Z����rtc�6�UO[mU;P!rz)ryr�rrx)r~r@s&*rurp�#catch_unraisable_exception.__exit__S	s��!�^�^����Ort)ryrx)rnrorprqrrr}r|rgrprsr�r�s@rurvrv,	s#�����0�%�
�
�rtrvr�c	��[OQ6wc�]PH
oUe[o[O
2o[
UP
Q5FD4o[OU[O2vqgU]6wfJ3L�	[OVO2[OU]2[O
2U*
o[QUQUQ
Q02g[OU]2vqg[OU2o	V�6wc[QUQU	QUQ	02gV`6wc[Q
UQU02gP![cK�h9h)al
Wait until process pid completes and check that the process exit code is
exitcode.

Raise an AssertionError if the process exit code is not equal to exitcode.

If the process runs longer than timeout seconds (LONG_TIMEOUT by default),
kill the process (if signal.SIGKILL is available) and raise an
AssertionError. The timeout feature is not available on Windows.
r���errorzprocess z is still running after �.1fz secondsz exited with code z, but exit code z is expectedzpid z != pid )r�r�r!rYr��	monotonic�sleeping_retryrrr�rr��AssertionError�waitstatus_to_exitcode)
r��exitcoder�r!�
start_timer��pid2r!�dt�	exitcode2s
&$$       ru�wait_processr�X	sI��
�w�w�$����?�"�G��^�^�%�
���u�5�5�A��:�:�c�2�:�:�6�L�D��q�y��6�
�����^�^�,��
�
�3��"�
���!�J�.�B� �8�C�5�1*�*,�S���";�<�
<��z�z�#�q�)����)�)�&�1�I����x��u�,>�y�k�J.�.6�Z�|�E�F�	F��{��t�D�6��#��7�8�8���#�
��
�s�7E
�
	E�E�Ec��]QHGoUQ2UQ2o[OQ6Xc)]PHoUOUO
Q2Q5P!P![c o[OQS802gPo=hh9h)z�
Skip tests if the multiprocessing.synchronize module is missing, if there
is no available semaphore implementation, or if creating a lock raises an
OSError (on Linux only).
r��_multiprocessingzmultiprocessing.synchronizer�r�)rmz broken multiprocessing SemLock: )
r�r�r�r��multiprocessing�Lock�get_contextr�r�r�)r��synchronizer��excs    ru�*skip_if_broken_multiprocessing_synchronizer��	s���-��$�%� � =�>�K�
�|�|�w��	P�
#�����!<�!<�V�!D��E�
���	P��#�#�&F�s�g�$N�O�O��	P�s�%A�	B�!B�"A<�<Bc��UOoUOoUQ6wc	UQU0oLSoQ[OU2Q0oUO[
Vq,UN3-U@UO[
VqOU,UN3-U@P!)z�
Check that given type cannot be instantiated using *args and **kwds.

See bpo-43916: Add Py_TPFLAGS_DISALLOW_INSTANTIATION type flag.
�builtinsrzcannot create 'z' instances)rornr�rZr�rq�__new__)r��tprr��modr��qualnamer{s&&*,    rur1r1�	s���
�-�-�C�
�;�;�D�
�j���U�!�D�6�?���V���B�I�I�h�/�0��
<�C����y�#�A�D�A�D�A����y�#�z�z�2�M��M��Mrtc�
�]PHoUO2o[U]*
]2![[1cHo]o[O
2oSdS]*
oSOoJPoPo=K_Poh9hPo=hh9h)znGet the recursion depth of the caller function.

In the __main__ module, at the module level, it should be 1.
)rX�get_recursion_depthrs�RecursionErrorr��	_getframe�f_backrg)rX�depthr��frames    rur�r��	s���

� �!�5�5�7���u�q�y�!����
��(�
�	��E��M�M�O�E��#���
������$�
�E��D�E��
�s1�*�B�B�A6�A6�/A=�6A:�:A=�=Bc�R�[O2o[2oV*
!)z�Get the number of available frames before RecursionError.

It depends on the current recursion depth of the caller function and
sys.getrecursionlimit().
)r��getrecursionlimitr�)r�r�s  ru�get_recursion_availabler��	s"��
�!�!�#�E��!�E��=�rtc#�� �[O2o[OU2Pw�[OU2P![OS2h9h3h)z'Temporarily change the recursion limit.)r�r��setrecursionlimit)r��original_limits& ru�set_recursion_limitr��	sG����*�*�,�N�.����e�$�
����n�-�����n�-���A(�A
�A(�
A%�%A(c��UeQoLU]6c[QU02g[2o[U]*
]2oV*o[U2!)Ni Nz"max_depth must be at least 3, got )rr�rgr�)�	max_depthr�r�s&  rurIrI�	sT�����	�	�Q���=�i�[�I�J�J��!�E����	�1��E���E��u�%�%rtc�>�U]6�cPgQ[Q[Q[-!)r�r��liker�)r�r�)r�s"rur��%ignore_deprecations_from.__annotate__�	s!����S��3��6�rtc
��[2o[OQ[UUQ[	U2Q0*Q5U!)r��
(?#support�))rzr�r<)r��warnings�filterwarnings�DeprecationWarning�id)r�r��tokens&$ ru�ignore_deprecations_fromr��	s<���H�E�����#���*�R��Y�K�q�1�1�	��Lrtc�*�U]6�cPgQ[QP-!)r��tokensr�)r�)r�s"rur��'clear_ignored_deprecations.__annotate__�	s��$�$��$�4�$rtc	��U%f[Q2g,o[O2o[9PIc,QU2DMJ	3LQU22oSFD~vqEqgoUQ6Xc]U[IcS[U[O2%cUOo	LS9%fPo	U	OU2%cJjUOVEVgU12J�	V!6wcVQ$[O2P!P!)z<Provide token or tokens returned by ignore_deprecations_fromc3�L�SF �DoQ[U2Q0w�	J	P!3h)r�r�)r�)r8r�s& rur:�-clear_ignored_deprecations.<locals>.<genexpr>
s��V���V�E�
�2�e�9�+�Q�/�V�s�$r�r�)rr��_get_filtersrr�r:r��Patternr�r�r�_filters_mutated)
r��new_filters�old_filtersr��actionr<rzr�r�r{s
*         ru�clear_ignored_deprecationsr��	s�����W�X�X��K��'�'�)�K��u�D�V�D�u�u�D�V�D�D�H�5@�1���6��X��(�.@�"@��'�2�:�:�.�.��o�o���m�m����|�|�H�%�%�����F�X�v�F�G�6A��!�$�A���!�!�#�"rtc��]PHo]PHo[O
UQ2![c[OP	Q2t!h9h[cPoKNh9h)rzvenv: ensurepip requires zlibzvenv: pip requires ctypes)rrrsr�rr�rt)rrr�s  ru�requires_venv_with_pipr�
sc��F�������v�'B�C�C���F����t�%D�E�E�F�������s+�#�A�	A�A�A�	A�A�Ac��[OQ29%f%[OO	[
Q2o[OU2o[UP	Q5oSFD^oUOQ2%fJUQ*oUOU2%fJ>[OO	V2t!	[QUQU02g)z�Try to find a wheel with the package specified as pkgname.

If set, the wheels are searched for in WHEEL_PKG_DIR (see ensurepip).
Otherwise, they are searched for in the test directory.
�
WHEEL_PKG_DIR�	wheeldata)�reversez.whlr
z
No wheel for z
 found in )rRrSr�r�rr��listdirr�r�r�r�)�pkgname�	wheel_dir�	filenamesr��prefixs&    ru�
_findwheelr� 
s����(�(��9���R�W�W�\�\��{�>�I��
�
�9�%�I��y�$�/�I���� � ��(�(���3������v�&�&��7�7�<�<�	�4�4�
��m�G�9�J�y�k�J�
K�Krtc#�L` �]PHn]QHGoU1QkoU29^tt^2o[OQQQQU,oUU2[
OOV02o[
OO[O2o[OQ6Xc#[
OOUQU2oL![
OOUQ	U2oUQQQQ
Q[Q21oUU2Uw�PPP2P!)%fhP!9h3h)
r)�temp_cwdc	�:�[%cS]PHo[2[QQO[	UO
U222RO
UP	Q5P!RO
UROROP	Q5P!)rzRun:re)r�)r�r�r�)	r�shlexr�rr�quoter�rs�STDOUT)ryr�r�s& �ru�run_command�3setup_venv_with_pip_setuptools.<locals>.run_command=
sd����7���G��&�#�(�(�3�u�{�{�C�#8�9�:��N�N�3�d�N�+��N�N�3�",�/�/�",�"3�"3�!%�
�
'rtz-X�devz-m�venvr��Scripts�bin�pip�installr�)r�r�r�r�r�r�r�rrYr�r�)	�venv_dirr�r��temp_dirryr��
python_exerxr�s	&       @ru�setup_venv_with_pip_setuptoolsr�8
s������#�
'�
���x��~�~�t�U�D�&�(�C���C���w�w�|�|�H�/���W�W�%�%�c�n�n�5�
��<�<�7�"��W�W�\�\�$�	�:�>�F��W�W�\�\�$��z�:�F��t�U��U�I��,�'���	�C����)
����s*�!D$�A?D�$A"D�
D$�D!	�D!	�	D$�gettotalrefcountc���U,oUOU2]PHoQoVmUOU2[	[
Q2%c#QoVm[
OUQ5P!P!)aR
Keep a Python alive as long as possible.

Create a reference cycle and store the cycle in an object deleted late in
Python finalization. Try to keep the object alive until the very last
garbage collection.

The function keeps a strong reference by design. It should be called in a
subprocess to not mark a test as "leaking a reference".
c��P!rzrl)�encodings&ru�search_func�"late_deletion.<locals>.search_func}
r?rt�register_at_forkc��P!rzrlrlrtru�atfork_func�"late_deletion.<locals>.atfork_func�
rdrt)�before)r�codecs�	reference�registerr�r�r�)r��	ref_cycler�r�r�s&    ru�
late_deletionr�e
sa��&��I�
���Y����%��
�O�O�K� ��r�%�&�&�	� )��
���;�/�'rtr�c#�> �U]6:c[Q2g[O2oV0*oPw�	[O2U6�fJ"U%c>[O2U*
oQUQ
Q0oU%cUQU0o[U2gP!3h)a�
Run the loop body until "break" stops the loop.

After *timeout* seconds, raise an AssertionError if *error* is true,
or just stop if *error is false.

Example:

    for _ in support.busy_retry(support.SHORT_TIMEOUT):
        if check():
            break

Example of error=False usage:

    for _ in support.busy_retry(support.SHORT_TIMEOUT, error=False):
        if check():
            break
    else:
        raise RuntimeError('my custom error')

z!timeout must be greater than zeroz	timeout (r�z	 seconds)r�)rr�r�r�)r��err_msgr�r��deadliner�r{s""$    ru�
busy_retryr��
s����,�!�|��<�=�=����!�J��#�H�
�
��>�>��x�'���
�^�^�
�
�
*���"�S���+����E��G�9�%�C��S�!�!�
�s�B�AB�B�*B�	B�
init_delayg{�G�z�?�	max_delayg�?c#� �So[VUQ5FD1oPw�	[OU2[U]*U2oJ3	P!3h)a�
Wait strategy that applies exponential backoff.

Run the loop body until "break" stops the loop. Sleep at each loop
iteration, but not at the first iteration. The sleep delay is doubled at
each iteration (up to *max_delay* seconds).

See busy_retry() documentation for the parameters usage.

Example raising an exception after SHORT_TIMEOUT seconds:

    for _ in support.sleeping_retry(support.SHORT_TIMEOUT):
        if check():
            break

Example of error=False usage:

    for _ in support.sleeping_retry(support.SHORT_TIMEOUT, error=False):
        if check():
            break
    else:
        raise RuntimeError('my custom error')
r�)r�r��sleepr�)r�r�r�r�r��delayr�s""$$$  rur�r��
s?���4
�E�
���
6�
6��
��
�
�5���E�A�I�y�)��	7�s�A	Ac�2`�\sQsQsnQsQsQsQsUsP!)�	Stopwatchi�
a�Context manager to roughly time a CPU-bound operation.

Disables GC. Uses perf_counter, which is a clock with the highest
available resolution. It is chosen even though it does include
time elapsed during sleep and is system-wide, because the
resolution of process_time is too coarse on Windows and
process_time does not exist everywhere (for example, WASM).

Note:
- This *includes* time spent in other threads/processes.
- Some systems only have a coarse resolution; check
  stopwatch.clock_info.resolution when using the results.

Usage:

with Stopwatch() as stopwatch:
    ...
elapsed = stopwatch.seconds
resolution = stopwatch.clock_info.resolution
c���[Oo[OQ2o[2UmUOO2VmV mU2UmU!)�perf_counter)	r�r�get_clock_infor$�contextrg�get_time�
clock_infor�)r~rrs&  rurg�Stopwatch.__enter__�
sN���$�$���(�(��8�
�!�|�������� � �
�$��"�*����rtc���UO2oUOOUoV O*
UmU!SOOSoh9hrz)rrrpr��seconds)r~r��end_timer�s&*  rurp�Stopwatch.__exit__�
sQ��	1��}�}��H��\�\�*�*�C�0�F��/�/�1����
���\�\�*�*�C�0�F�s�A�A$)rrrr
r�)	rnrorprqrrrgrprsr�r�s@rurr�
s�����(��rtrc#�� �[O2o[OU2Pw�[OU2P![OS2h9h3h)z>Temporarily change the integer string conversion length limit.)r��get_int_max_str_digits�set_int_max_str_digits)�
max_digits�currents& ru�adjust_int_max_str_digitsr�
sG����(�(�*�G�,��"�"�:�.�
��"�"�7�+���"�"�7�+�r�c��Q!)z<For recursion tests, easily exceeds default recursion limit.��Irlrlrtrur[r[	s��rtc�\�]QHGoU2oV 6�9%fU]6o[OUQUQ02![ceP
o[%fT[%fH[
OQ6wc3]PHoSOSO2vqVXV6H9%cSQ7oK�h9h)a9Skip decorator for tests which cannot overflow the C stack.

Tests exhausting the C stack with *depth* recursive calls cannot
trigger the recursion protection if the C stack is too large (e.g.
with a large or unlimited RLIMIT_STACK), and either fail, or run
for a very long time, or crash, or consume all memory.
)�get_c_recursion_remainingr�z the C stack is large enough for z recursive callsr�)rXrrsr<r=r�r�rr�r�r�r)r�r�	remaining�huger�soft�hards&      rur8r8s���
3�?�.�/�	��!�2�2�Y��]���?�?��0���7G�H�J�J���H����
���b�g�g��o��!�+�+�H�,A�,A�B�J�D��<�G�G�D�,G�$G�D��
H�s-�<�	B+�B+�B+�!B+�6+B+�"B+�*B+�uname�s390xzskipped on s390x�
getobjectszrequires JIT enabledzrequires JIT disabledz.git�__pycache__c��[o[OOU2Q6XcUQQ.*oU!QU7cUQ.*oU!)�Doc�buildr��Modules)� _BASE_COPY_SRC_DIR_IGNORED_NAMESr�r�rY)r��names�ignoreds&& ru�copy_python_src_ignorer&;s]��.�G�	�w�w������&����	
�	
���N�
�e�	���
�	
���Nrt�topdownc#�� �[U[2%fP[U22gU,oU%c�UO2o[U[2%cUw�	J5[U2OU2oU%c-V1w�	[
U2FDoUOU2J	J�UOV12[
U2FDoUOU2J	J�P!3hrz)r:r�rvr�r�__subclasses__�reversedr)�topr'�stack�subs�subs&$   ru�walk_class_hierarchyr/Os�����c�4� � �+�$�s�)�+� �
�E�E�
��i�i�k���c�5�!�!��I���C�y�'�'��,����)�O���~�����S�!�&�
�L�L�#��%���~�����S�!�&�#�s�C*�C*�%C*�(C*�A&C*c#� �]PHoUdUO2FPiw�K
P![[Q2%cl]PHo[
2o[[2FDGvq4V27cJ
UOU2UO[*%f,UQ$JBUw�	JI	P![
2o[O2FD[o[U[2%fJSoUOQ6wcJ0U[ 6XcJ=V27cJEUOU2Uw�	J]	P![cPoCK1h9hCK3h)rrZr�r�)rXrs�get_static_builtin_typesr�r��datetimer�r/r�rZ�_TPFLAGS_STATIC_BUILTIN�__builtins__rkr:r�ro�ExceptionGroup)rXr2�seenr�r-r�s      ru�iter_builtin_typesr7hs���!� ��$�$�=�=�?�?�?���v�{�#�#���u��-�f�5�I�C��{���H�H�S�M��M�M�$;�;�;���Q����I�6��u���&�&�(�C��c�4�(�(���C��~�~��+���n�$���{���H�H�S�M��I�)��/�!� ��!��	@�sf�E�D*�E�E�D>�E�(E�(/E�A	E�"E�7E�E�E�*	D;�4D;�7E�:D;�;Ec#� �[OU2FD(o[OU2oV1*oVB1w�	J*	P![cJ<h9h3h)aYield matching items found in base.__dict__ across the MRO.

The descriptor protocol is not invoked.

list(iter_name_in_mro(cls, name))[0] is roughly equivalent to
find_name_in_mro() in Objects/typeobject.c (AKA PyType_Lookup()).

inspect.getattr_static() is similar.
)�inspect�_static_getmro�_get_dunder_dict_of_classrD)r�r��baser�r�s&&   ru�iter_name_in_mror=�sT����&�&�s�+��
�
.�
.�t�
4��	��(�C��i��,��
�	��	�s-�2A�A	�A�		A�A�A�A�Ac�v�[V2FDoUt!	U[OIcUP1![U2grz)r=r9�	_sentinelr�)r�r�r�r�s&&& ru�find_name_in_mror@�s;����*���
�+��g�'�'�'���}��
��
�rtc��]PHoUd,UO2Tt-tFDpPaJ	oo[U2![g[cPoKDh9httohrq)rXrs�identify_type_slot_wrappersr�r�)rXrKr$s   rurBrB�s_��!� ��$�"3�"O�"O�"Q�R�"Q�Q�D��"Q��R��E�{��!�!��
�!� ��!��Ss�<�
A�	A�A�Ac#��` �U1Qko[2oUdC[U2FD0o[RUP2vqEUeJUV42%fJ(V5RI1w�	J2	P![	R2o[U2o[
R2FD�oV�7cUOU2[RU2o	UOQ2%cUOQ2%fUV�2%c
PRV�12gUV�2%f0V�7c(UV�U*2%cPRV�Vh*12gJ�J�V�7c&Vh*U	IfPRV�Vh*12gUP	1w�	J�UP
1w�	J�	SFD#oVh*o	URV�2%fJUP	1w�	J%	P![cPoCK�h9h[cBSQ7f
PRS12gX�7c'SX�S*2%cSOS2CJjh9h3h)c�:�[U[O2%f,[U2O	Q2%c
PRV12gP
![U2O	Q2%f
PRV12g[U2%f
PRV12gUO	Q2%cUO
Q2%f
PRV12gP	!)z<slot wrapper r�)r:r;�WrapperDescriptorTypervr��callabler�)r��valuer�s&&�ru�is_slot_wrapper�+iter_slot_wrappers.<locals>.is_slot_wrapper�s�����%��!<�!<�=�=��E�{�-�-�.>�?�?�S�#�t�AS�S�?���E�{�%�%�&6�7�7�K�#�t�9K�K�7�����2��d� 2�2�����t�$�$����t�)<�)<�P�s�D�>P�P�<�rtr�)r��__annotations__�__abstractmethods__)
rBr�r�r@�varsr�r�rjr�r�r�r�r�)
r�rH�attrsr$r�r<r��unusedr�rGs
f         ru�iter_slot_wrappersrO�s�������+�-��
���5�M�D�(��d�D�9�I�C���?�4�#=�#=��C�K�'�'�"�	�
�c��B�
��W�F��C����:��M�M�$��	��C��&�E����t�$�$�D�M�M�$�,?�,?�&�t�3�3�G�c�4�5G�G�3��t�+�+��z�*�4�D��:�:�X�S�$�r�x�<X�X�:�:���z��x�5�(�F�3��R�X�*F�F�(��D�j� ��E�k�!�/�2������3��,�,���*����M������&�	��U�U�b�X[�]a�Wb�b�U��z�o�d�t�H�=�=��
�
�4� ��	�s��G,�
F	�G,�G,�G,�8G,�G,�F�%G,�<G,�
G,�!G,�8G,�>G,�G,�-G,�9>G,�<
G,�		F�F�G,�F�G,�	G)�'G)�/G)�>G)�G)�$G,�(G)�)G,c�&�U]6�cPgQ[-!)r��color�r�)r�s"rur��force_color.__annotate__�s����t�rtc	#�` �]PHo]QHGoR%c]PHo[UQQP-U1Qkk29^tt^2U29^tt^2oUOQQQ2SOR%cQLQQ	2Pw�PPP2PPP2P![c[
OQ2gh9h)%fhK?9h)%fhP!9h3h)
r)�EnvironmentVarGuardz_pyrepl is missing�can_colorizer�c�
:�R!rzrl)r�rQs$�rur��force_color.<locals>.<lambda>s���%rt�FORCE_COLOR�NO_COLOR�
PYTHON_COLORS�1)
�	_colorizer�rU�_pyrepl�ModuleNotFoundErrorr�r�rJ�unsetr�)rQr]rUr^rbsf    ru�force_colorra�s������.��	:��	�)�^�-G�D�-G�H�H������	�	�-��_�=�����
�J��<�
�		�	I�H��#�	:��#�#�$8�9�9�	:��	���	I�H�H�sb�C�B�C�C�	&B5	�0B5	�>C�
C�	B2�B2�2C�5C
�>C
�C�C	�C	�	Cc�H`�[OR2U1Qk2oU!)z#Force the terminal to be colorized.c�|:�[P	29^tt^2RU-U@ttPPP2!)%fhP!9hr5�ra�rrhr�s*,�rur-� force_colorized.<locals>.wrappers*���
��
�
���(��(��
�
�
���	*�;	�;	rk�r�r-sf ru�force_colorizedri
�%����_�_�T��)��)��Nrtc�H`�[OR2U1Qk2oU!)z'Force the terminal NOT to be colorized.c�|:�[P
29^tt^2RU-U@ttPPP2!)%fhP!9hrArdres*,�rur-�$force_not_colorized.<locals>.wrappers*���
��
�
���(��(� �
�
�
�rgrkrhsf rur_r_rjrtc�`�UOn[[OUO2U1Qk22oVmU!)z=Force the terminal to be colorized for the entire test class.c�L:�UO[P	22R2P!r5��enterClassContextra�r��original_setUpClasss&�ru�new_setUpClass�2force_colorized_test_class.<locals>.new_setUpClass#s���	���k�$�/�0��rt��
setUpClass�classmethodr/r0�r�rtrss& @ru�force_colorized_test_classrz�@����.�.����_�_�S�^�^�$��%���$�N��Jrtc�`�UOn[[OUO2U1Qk22oVmU!)zAForce the terminal NOT to be colorized for the entire test class.c�L:�UO[P
22R2P!rArprrs&�rurt�6force_not_colorized_test_class.<locals>.new_setUpClass1s���	���k�%�0�1��rtrvrys& @rur`r`-r{rtc�H�U]6�cPgQ[[[1*-!�r�r�)r�r�)r�s"rur��make_clean_env.__annotate__;s�����S�#�X��rtc��[OO2oUO2FD-oUOQ2%fJUO	U2J/	UO	QP2UO	QP2U!)�PYTHONrYrZ)r�r��copyr�r�)�	clean_envr�s  rurara;sb���
�
���!�I�
�^�^�
���<�<��!�!��M�M�!����M�M�-��&�
�M�M�*�d�#��rtl�STATUS_ACCESS_VIOLATIONl��STATUS_STACK_OVERFLOWl:�STATUS_CONTROL_C_EXITc�f�]PHoU]6c U'oUOU2O!]�St96cQ6c)LL%U]�*
oUOU2O![U*![cKRh9h[cK,h9h[
cLh9hQS6:cQSQ
0!P!)r�l�0x�X)r!�Signalsr�r�WINDOWS_STATUSrD)r�r!r&s&  ru�get_signal_namer�Ks�����!�|����	��>�>�&�)�.�.�.�
�X�����C���	��>�>�&�)�.�.�.�
��h�'�'���	��	���	��	��
�
��
���X���H�Q�<� � �sG�A1�B�$B�1	A?�;A?�>A?�	B�B�B�	B!�B!� B!c�8`�\sQsQsnQQksQsQsQsUsP!)rbihc�B�U%c
]]*V mV0mP!rL)�next_raises�iter_raises)r~�init_raisesr�r�s&&&&rur}�BrokenIter.__init__is���
�a�C�&��&�rtc�B�UO%c]]*P!P!rL)r�r�s&ru�__next__�BrokenIter.__next__os������
�a�C�C�rtc�>�UO%c
]]*U!rL)r�r�s&ru�__iter__�BrokenIter.__iter__ss������
�a�C��rt)r�r�)FFF)	rnrorprqr}r�r�rsr�r�s@rurbrbhs����'���rtc�&�U]6�cPgQ[-!r�rR)r�s"rur��.in_systemd_nspawn_sync_suppressed.__annotate__ys����4�rtc�N�[[Q2%fP
![QQ29^tt^2oUO2O	2Q6wcPPP2P
!PPP2]PHo[O[[O[O*2o[OU2P
!)%fhKk9h[
[1cP
!h9h[c-oSOSO6XcPo=P	!Po=P
!Po=hh9h)z�
Test whether the test suite is runing in systemd-nspawn
with ``--suppress-sync=true``.

This can be used to skip tests that rely on ``fsync()`` calls
and similar not being intercepted.
�O_SYNCz/run/systemd/container�rbssystemd-nspawn)r�r�r�r�rstripr��PermissionError�errno�__file__�O_RDONLYr�r�r��EINVAL)�fpr�rr�s    rurcrcys����2�x� � ���
�*�D�
1�
1�R��w�w�y���!�%6�6��2�
1�6�2���
�W�W�X�r�{�{�R�Y�Y�6�
7��
	������#2�
1��
��/��������9�9����$��%�
��
�sd�C�#C�C�C�C�,>C-�C	�C	�
C�C�C*�%C*�)C*�-	D$�7D$�8D�D$c���UU-U@oUOP2[Q2g[c'oSOtPo=SO	2!Po=hh9hSO	2h9h)Nzcoroutine did not complete)�sendr�r�rGr���async_fnrrh�coror�s"*,  rurdrd�sa���T�$�V�$�D���	�	�$���9�:�:�����w�w��	
�
�
�����
	
�
�
��s4�(�A�	A�A�A�A�A�A�A�A.c#� �Uw�	!3hrzrl)r4s&rurfrf�s
����G��s�	c���UU-U@oUOP2J[c'oSOtPo=SO2!Po=hh9hSO2h9hr5)r�r�rGr�r�s"*,  rurere�sW���T�$�V�$�D���
��	�	�$��� �
��w�w���
�
���
��	
�
�
��s9�A�!�A�	A�A�A
�A�A�
A�A�A'c�J�]QHGoU2]6g![cP
!h9h)r��
get_fips_mode)�_hashlibr�rsr�s ru�is_libssl_fips_moder��s-���*��?�a��������s��	"�"�"c�>�P
o]QHGoU![cS!h9h)F�r�)r�r�rsr�s ru�_supports_remote_attachingr��s2��!&��
�@�&�%���
��%�%�
�s�
�	��c�>�[O2%f[OQ2![OQ7c[OQ2![OQ6Xc'[2%f[OQ2![!)zRemote debugging is not enabledr�z*Test only runs on Linux, Windows and macOSz5Test only runs on Linux with process_vm_readv support)r�r�r�)r��is_remote_debug_enabledr�r r�r�r�rlrtru�_support_remote_exec_only_implr��sh���&�&�(�(��}�}�>�?�?�
�|�|�7�7��}�}�I�J�J�
�|�|�w��'A�'C�'C��}�}�T�U�U��Jrtc�$�[2U2!rz)r�r�s&rurBrB�s��)�+�D�1�1rtc�H`�\sQsQsnQsQPQPQP
-QksQsQsQ	sUs	P!)
�EqualToForwardRefi�z~Helper to ease use of annotationlib.ForwardRef in tests.

This checks only attributes that can be set using the constructor.

r��owner�is_classc�8�VmV@mV mV0mP!rz��__forward_arg__�__forward_is_class__�__forward_module__�	__owner__)r~�argr�r�r�s&&$$$rur}�EqualToForwardRef.__init__�s�� #��$,�!�"(���rtc�T�[U[[O12%f[!UO
UO
6H9%c\UOUO6H9%c;UOUO6H9%cUOUO6H!rz)	r:r��
annotationlib�
ForwardRef�NotImplementedr�r�r�r�r;s&&rur=�EqualToForwardRef.__eq__�s����%�"3�]�5M�5M�!N�O�O�!�!�� � �E�$9�$9�9�
2�
2��'�'�5�+C�+C�C�
2�
2��)�)�U�-G�-G�G�
2�
2����%�/�/�1�		
rtc�F�,oUOd UOQUO802UO%cUOQ2UOd UOQUO802QUO8POU2Q0!)Nz	, module=z, is_class=Truez, owner=zEqualToForwardRef(r�)r�rr�r�r�r)r~r�s& ru�__repr__�EqualToForwardRef.__repr__�s������"�"�.��L�L�9�T�%<�%<�$?�@�A��$�$�$��L�L�*�+��>�>�%��L�L�8�D�N�N�#5�6�7�#�D�$8�$8�#;�B�G�G�E�N�;K�1�M�Mrtr�)
rnrorprqrrr}r=r�rsr�r�s@rur�r��s>�������	�
���
�
�N�Nrtr�c�(�[d[![%c	Qr[![OQ6wc	P
r[!]PHoUO	2vqUQ6wc	P
r[![[
[UOQ222r[!)z�
Report if the Python executable is linked to the musl C library.

Return False if we don't think it is, or a version triple otherwise.
r��muslr)rrr)	�_linked_to_musl�	is_wasm32r�r��libc_verrrrr)r��librs   ru�linked_to_muslr��s����"����y�#�����|�|�w��������$�$�&�L�C�
�f�}������C��W�]�]�3�%7�8�9�O��rtc�<�U]6�cPgQ[[*-!r�)r�r�)r�s"rur��"control_characters_c0.__annotate__
s��:�:�t�C�y�:rtc�j�[]] 2Tt,tFDo[U2MJ	toQ,*!ttoh)zyReturns a list of C0 control characters as strings.
C0 control characters defined as the byte range 0x00-0x1F, and 0x7F.
�)�range�chr)�cs ru�control_characters_c0r�
s0��"�$��-�.�-�q�C��F�-�.�&��9�9��.s�0�geteuidztest needs root privilegeztest needs non-root accountlBc�x�[OQ7cP!U[6Xc[OQ2gP!)r�zEgh-150436: DLL init failed, likely because of low desktop heap memory)r��cygwin)r�r��STATUS_DLL_INIT_FAILEDr�r�)rus&ru�*skip_on_low_desktop_heap_memory_subprocessr�+
s:��
�|�|�.�.���+�+����!=�>�	>�,rtg�r@rz)r'ri@i@i)z
requires zlib)z
requires gzip)zrequires bz2)z
requires lzma)z
requires zstd)z$requires co_positions / debug_ranges>�ios�tvosr��vxworks�watchos>r�r�r�)r.)zneeds the GIL enabledr��i r�r�ir5rl)NrlrlrA)rl)� �@)r(2rrrnrsr��
contextlibr/r9rErr�r�r�r�rRr�r�r;r�r�r�rVrWrXrYr�rXrGr��TEST_SUPPORT_DIRr�r��	REPO_ROOTr�rrr�rr�r	r,r-r!rrrr��junit_xml_listrr�r
rr�r�rrrrr!rrrr6rIr2r3�HAVE_ASAN_FORK_BUGrdrlr�
SOCK_MAX_SIZErtr��
__getformat__r�r"r#rrrrr�r�r�r9r:r;r�r@r<r=r�r�r�r>�is_appler�r$r%r&r'r(r)�cacher*r+�has_strftime_extensions�strftimer�
TEST_HTTP_URLrPr�rrr�rHrNr�rrD�contextmanagerrrrr
rr$r)r3r>r@r�rSrArrGrOrPrUrSrVr3�_TPFLAGS_DISALLOW_INSTANTIATION�_TPFLAGS_IMMUTABLETYPEr[�_TPFLAGS_BASETYPE�_TPFLAGS_READY�_TPFLAGS_READYINGr\�_TPFLAGS_BASE_EXC_SUBCLASS�_TPFLAGS_TYPE_SUBCLASSrartrFr�rOr�r�r��_4Gr�r�r�rLr�rrrr�rr r�r�r?r�rrr4�TEST_MODULES_ENABLEDr5rgr�rhr�MISSING_C_DOCSTRINGS�HAVE_PY_DOCSTRINGS�HAVE_DOCSTRINGS�requires_docstringsrrr�rr rErJrGr,r/r�rKr?r0rDr�r7r.r/r�rMr�r�r�r�r�r�rQrrArCrrr4r7r9rRrFrS�total_orderingrPrTrWrUrb�	hash_info�width�	NHASHBITSrtrvr�r�r1r�r�r�rIr�r�r�r�r�rZr�r�r�rrr[r8r�machine�is_s390xrr\r��_jitr�_JIT_ENABLEDr]r^�	frozensetr#r&r/r7r=r?r@rBrOrarir_rzr`rar�r�rbrcrd�	coroutinerfrer�r�r�rBr�r�r�r�r��_ROOT_IN_POSIXrirjr�r�rlrtru�<module>rs*��=��~��
�F�
G�G�������	�	��
�������4��4��4� ,�4�.=�4�?I�4��	4��	4�+�	4�-=�	4��
4�4�
4�6G�
4��4�(�4�*;�4��4�0�4�2<�4�>Q�4��4��4�5�4�7I�4��4��4�$�4�&5�4�7F�4��4��4� 2�4�4B�4�DS�4��4�)�4� �!4� (�!4�"�#4�"4�#4�$�%4�$4�%4�&&�'4�&(N�'4�(�)4�(/�)4�(1F�)4�*�+4�*3�+4�,#�-4�,%6�-4�,8K�-4�.�/4�.6�/4�.8G�/4�0#�14�0%;�14�4�54�4�54�4 ,�54�4.=�54�4?H�54�6�74�6+�74�6-9�74�6;N�74�8�94�<�=4�@�A4�D�E4�H�I4�H#�I4�H%/�I4�H1E�I4�J�K4�J�K4�J+�K4�J-B�K4�JDN�K4�L�M4�L�M4�L8�M4�N�O4�N�O4�N'�O4�N)3�O4�P�Q4�P+�Q4�P-<�Q4�P>L�Q4�R�S4�R*�S4�R,;�S4�T�U4�V�W4�X�Y4�Z%�[4�\�]4�^�_4�`(�a4�b�c4�b5�c4�b7D�c4�d�e4�d&�e4�f�g4�f3�g4��@�����
����7�7�?�?�2�7�7�?�?�8�#<�=������� 0�1�
�
�W�W�_�_�]�
+�
��G�G�O�O�J�'�	�5�I�5����=�J�=�)�E�)��X�&�&����$����
�
�
�������
���*�
�"E$�N>�'�	7���6:�8��:�
/�"�u�"�U�"�u�"�U�"�!�"�J)�e�)�E�)�e�)�TY�)�%�T�2����$$�
�%�
��'�'�	����!�,�,�V�4�$�&��-�-�,�-�-�9�)��l�l�g�%�
�
�L�L�#�#�F�+�	�
�\�\�Y�
&�
��
�<�<�E�E�%/�!�Y�J��J�����,�
�

�,�,�&�
 ��
�$�$�W�	�J�>��,�,�"<�<���6�6�c�l�l�h�6���2�v�&�	�	�����������	,��O�
����������
��V�������

<�e�
<����D��D�N� ���<�<�7��
�"&�-�-��"6�%�"?��,�
����������]�F�3�
��&�&���	1�$�	1�t�	1�41�n���	/��	/�%�%�
$�
����������)��)�%�B�$*��y�/�/�0A�B�C��1�'���G��G�	
���S�=��3�4�
��"&��������������"����(��u��:���4��4�D"�P�F��
�S�j���#�g���#�g������>�	�%�%�>.�`� 
�$�O�+��!�8��8�(*��"�0�0��@�I�I�E�e�S��H�

�
%��
�
�2��7�*�+�I�I�����/�I�I�%�4�4�5G�H�H��'�.�.�d�:��%�B�B�.B�*B���)�)�/�*D�F���� �J�J�
����#�<���#��#�<������<5�;��f��D��]�*PB�PB�f4�D�&�b��89�v.�*]�]�@3�D������
,�H�$�H�6;��,+-��D��+�	����;��;�"$0�$0�N;�#���
�L�	�	�	��;��
��������*��
��������;��-�
�M�M���	��H����4�D)�)�X-9�4�-9�^P�BN� �.����.��.�&��$�,
D� ���L��L�.���$��$�R�3�*�+��"0�J'"�$�'"�T*�#(�*�47�*�?C�*�D%�%�P���,��,��
J�6�2�w��A�A�B�H�H�J�$6�$6�'�$A������*<�=�
���\�*�
��x�x�"�"�$���*�*�<�9O�P�� ����6M�N��$-�
��	.�$� ��("��"�2(�X�,)0�(9�(9��	"�5�p������(�������)��'��'����:��"��@	�������	� �&��2�&N�&N�R���B:�:���Y�'�=�=�B�J�J�L�A�,=���(�(��9T�U��!����9V�W��$��>��uQ�
��
�s�&j+�+j6�1j6�5j6

Youez - 2016 - github.com/yon3zu
LinuXploit