Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/pythoninfo.cpython-311.opt-1.pyc
�

�Ke�_���dZddlmZddlZddlZddlZddlZddlZddlZej	dkZ
d�ZGd�d��Zdd�d	�Z
d
�Zdd�d�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#d �Z$d!�Z%d"�Z&d#�Z'd$�Z(d%�Z)d&�Z*d'�Z+d(�Z,d)�Z-d*�Z.d.d+�Z/d,�Z0e1d-kre0��dSdS)/zK
Collect various information about Python to help debugging test failures.
�)�print_functionN�win32c�|�|�dSt|��}tjdd|��}|���S)Nz\s+� )�str�re�sub�strip)�texts �9/usr/local/apps/python3/lib/python3.11/test/pythoninfo.py�normalize_textr
s8���|��t��t�9�9�D�
�6�&�#�t�$�$�D��:�:�<�<��c� �eZdZd�Zd�Zd�ZdS)�
PythonInfoc��i|_dS�N)�info��selfs r�__init__zPythonInfo.__init__s
����	�	�	rc��||jvrtd|z���|�dSt|t��s<t|t��st	|��}|���}|sdS||j|<dS)Nzduplicate key: %r)r�
ValueError�
isinstance�intrr
)r�key�values   r�addzPythonInfo.adds����$�)����0�3�6�7�7�7��=��F��%��%�%�	��e�S�)�)�
#��E�
�
���K�K�M�M�E��
�����	�#���rc�H�d�|j���D��S)zU
        Get information as a key:value dictionary where values are strings.
        c�4�i|]\}}|t|����S�)r)�.0rrs   r�
<dictcomp>z(PythonInfo.get_infos.<locals>.<dictcomp>2s$��D�D�D�J�C���S��Z�Z�D�D�Dr)r�itemsrs r�	get_infoszPythonInfo.get_infos.s%��E�D�$�)�/�/�2C�2C�D�D�D�DrN)�__name__�
__module__�__qualname__rrr$r rrrrsF������������$E�E�E�E�Err��	formatterc�v�|D]5}t||d��}|��||z}|�|||��}|||���6dSr)�getattr)�info_add�obj�name_fmt�
attributesr)�attrr�names        r�copy_attributesr25si��������T�4�(�(���=���$���� ��I�d�E�*�*�E����u������rc�d�	t||��}n#t$rYdSwxYw|||��dSr�r+�AttributeError)r,r1�mod�	attr_namers     r�	copy_attrr8@sR�����Y�'�'����������������H�T�5��������
!�!c��	t||��}n#t$rYdSwxYw|��}|�||��}|||��dSrr4)r,r1r6�	func_namer)�funcrs       r�	call_funcr=Hsr����s�I�&�&����������������D�F�F�E����	�%� � ���H�T�5�����r9c��d}t|td|��t|dtd��t|dtd��tj��}t	td��r|�dtj����}|d	|��d
D]W}t
t|��}|��t
|dd��}|s�.t
|dd��}|r|�d|��}|d
|z|���Xt	td��}|rd}nd}|d|��t	td��}|rd}nd}|d|��dS)N)�_emscripten_info�
_framework�abiflags�api_version�builtin_module_names�	byteorder�dont_write_bytecode�
executable�flags�
float_info�float_repr_style�	hash_info�
hexversion�implementation�int_info�maxsize�
maxunicode�path�platform�
platlibdir�prefix�thread_info�version�version_info�winverzsys.%szsys.androidapilevel�getandroidapilevelzsys.windowsversion�getwindowsversion�getfilesystemencodeerrors�/zsys.filesystem_encoding)�stdin�stdout�stderr�encoding�errorszsys.%s.encoding�gettotalrefcountz$Yes (sys.gettotalrefcount() present)z#No (sys.gettotalrefcount() missing)zbuild.Py_DEBUG�
getobjectszYes (sys.getobjects() present)zNo (sys.getobjects() missing)zbuild.Py_TRACE_REFS)r2�sysr=�getfilesystemencoding�hasattrrZr+)	r,r/r_r1�streamr`�Py_DEBUGr�
Py_TRACE_REFSs	         r�collect_sysriSs����J�6�H�c�8�Z�8�8�8�
�h�-�s�4H�I�I�I�
�h�,�c�3F�G�G�G��(�*�*�H��s�/�0�0�I�&�h�h��(E�(G�(G�(G�H���H�
&��1�1�1�-�
5�
5����d�#�#���>���6�:�t�4�4���	�����4�0�0���	4�"*�(�(�F�F�3�H���"�T�)�8�4�4�4�4��s�.�/�/�H��5�5���4���H�
�t�$�$�$��C��.�.�M��/�/���.���H�
"�D�)�)�)�)�)rc��ddl}|���}d�tt|����}|d|��|d|�����|d|�d�����d|���z���}|r|d	|��dSdS)
Nrrzplatform.architecturezplatform.python_implementationzplatform.platformT)�aliasedz%s %szplatform.libc_ver)rQ�architecture�join�filter�bool�python_implementation�libc_verr
)r,rQ�archrqs    r�collect_platformrs�s����O�O�O�� � �"�"�D��8�8�F�4��&�&�'�'�D��H�
$�d�+�+�+��H�
-�
�
+�
+�
-�
-�/�/�/��H�
 �
�
�
�t�
�
,�
,�.�.�.��(�+�+�-�-�-�4�4�6�6�H��0���$�h�/�/�/�/�/�0�0rc�J�ddl}|d|�����dS)Nrzlocale.getencoding)�locale�getencoding)r,rus  r�collect_localerw�s0���M�M�M��H�
!�6�#5�#5�#7�#7�8�8�8�8�8rc��|dt�d����|dt�d����dS)Nzbuiltins.float.float_format�floatzbuiltins.float.double_format�double)ry�
__getformat__)r,s r�collect_builtinsr|�sJ���H�
*�E�,?�,?��,H�,H�I�I�I��H�
+�U�-@�-@��-J�-J�K�K�K�K�Krc��ddl}t|d��rx		|�d|j��d}n#t$r}d|z}Yd}~nd}~wwxYw|d|��dS#t
$r!}|jtjkr�Yd}~dSd}~wwxYwdS)Nr�	getrandom�zready (initialized)znot seeded yet (%s)zos.getrandom)�osrer~�
GRND_NONBLOCK�BlockingIOError�OSError�errno�ENOSYS)r,r��state�excs    r�collect_urandomr��s���
�I�I�I��r�;���
�	�
4����Q�� 0�1�1�1�-����"�
4�
4�
4�-��3�����������
4�����H�^�U�+�+�+�+�+���	�	�	��y�E�L�(�(��)�(�(�(�(�(�����	����
�
s7�5�A�
A�A	�A�	A�A�
B
�)B�B
c���ddl}d�}d}t||d||���dD]}t|d|z||���d�}t|d|d	|���t|d
��r2	|���}|d|��n#t
$rYnwxYwt
d��}|j���D]k\}}	|�	��}
|
|vs?|
�
d
��s*|
�
d��r$|
�d��r|d|z|	���lt|d��r;|�d��}|�|��|dd|z��dSdS)Nrc�Z�|dvr&ttd�|D������S|S)N)�supports_follow_symlinks�supports_fd�supports_effective_idsc3�$K�|]}|jV��dSr)r%)r!r<s  r�	<genexpr>z2collect_os.<locals>.format_attr.<locals>.<genexpr>�s$����>�>��d�m�>�>�>�>�>�>r)r�sorted�r0rs  r�format_attrzcollect_os.<locals>.format_attr�s>���.�.�.��v�>�>��>�>�>�>�>�?�?�?��Lr)r1�supports_bytes_environr�r�r�zos.%sr()
�	cpu_count�getcwd�getegid�geteuid�getgid�
getloadavg�	getresgid�	getresuid�getuid�unamec�R�d�tt|����S)N�, )rm�mapr)�groupss r�
format_groupsz!collect_os.<locals>.format_groups�s���y�y��S�&�)�)�*�*�*rzos.getgroups�	getgroups�getloginzos.login)>�APPDATA�AR�	ARCHFLAGS�ARFLAGS�AUDIODEV�CC�CFLAGS�COLUMNS�COMPUTERNAME�COMSPEC�CPP�CPPFLAGS�DISPLAY�DISTUTILS_DEBUG�DISTUTILS_USE_SDK�DYLD_LIBRARY_PATH�ENSUREPIP_OPTIONS�HISTORY_FILE�HOME�	HOMEDRIVE�HOMEPATH�IDLESTARTUP�LANG�LDFLAGS�LDSHARED�LD_LIBRARY_PATH�LINES�MACOSX_DEPLOYMENT_TARGET�MAILCAPS�	MAKEFLAGS�MIXERDEV�MSSDK�PATH�PATHEXT�PIP_CONFIG_FILE�PLAT�POSIXLY_CORRECT�
PY_SAX_PARSER�ProgramFileszProgramFiles(x86)�RUNNING_ON_VALGRIND�
SDK_TOOLS_BIN�SERVER_SOFTWARE�SHELL�SOURCE_DATE_EPOCH�
SYSTEMROOT�TEMP�TERM�TILE_LIBRARY�TIX_LIBRARY�TMP�TMPDIR�TRAVIS�TZ�USERPROFILE�VIRTUAL_ENV�WAYLAND_DISPLAY�WINDIR�_PYTHON_HOST_PLATFORM�_PYTHON_PROJECT_BASE�_PYTHON_SYSCONFIGDATA_NAME�__PYVENV_LAUNCHER__)�PYTHON�LC_�VS�	COMNTOOLSzos.environ[%s]�umaskzos.umaskz0o%03o)
r�r2r=rer�r��	frozenset�environr#�upper�
startswith�endswithr�)r,r�r�r/r<r��login�ENV_VARSr1rr��masks            r�
collect_osr��s���
�I�I�I�����J��H�b�'�:��M�M�M�M��6�6��	�(�G�d�N�B��5�5�5�5�+�+�+��h���K�=�Q�Q�Q�Q��r�:���(�	(��K�K�M�M�E�
�H�Z��'�'�'�'���	�	�	�
�D�	�����?�?�?�H�@�z�'�'�)�)�5�5���e��
�
�����X������0�1�1�
�����%�%�	
�+0�.�.��*E�*E�	
�

�H�%��,�e�4�4�4���r�7���.��x�x��{�{��
����������X��_�-�-�-�-�-�.�.s� B�
B�
Bc��	ddl}n#t$rYdSwxYwddl}|���}	|�|��}n#t
$rd}YnwxYw|d|z|�|nd��|�dSt
|d��rV|�|j|j	��}d�
tt|����}|d|��dSdS)Nrzpwd.getpwuid(%s)z
<KeyError>�getgrouplistr�zos.getgrouplist)
�pwd�ImportErrorr�r��getpwuid�KeyErrorrer��pw_name�pw_gidrmr�r)r,r�r��uid�entryr�s      r�collect_pwdr�Hs%����
�
�
�
�������������
�I�I�I�
�)�)�+�+�C�����S�!�!����������������
�H�
��
$��'�U�U�\�;�;�;�
�}�	���r�>�"�"�,��������=�=�����3�s�F�+�+�,�,����"�F�+�+�+�+�+�,�,s��
��A�A�Ac���	ddl}n#t$rYdSwxYwd�}d}t||d||���t|d��s5t	|dd��}d	|vr|d
d	��dSd|vr|d
d��dSdSdS)Nrc�:�t|t��rd|zS|S)Nz%#x)rrr�s  rr�z%collect_readline.<locals>.format_attris#���e�S�!�!�	��5�=� ��Lr)�_READLINE_VERSION�_READLINE_RUNTIME_VERSION�_READLINE_LIBRARY_VERSIONzreadline.%sr(r��__doc__�zlibedit readlinezreadline.libraryzGNU readline)�readliner�r2rer+)r,rr�r/�docs     r�collect_readlinercs�������������������������J�
�H�h�
�z�)�+�+�+�+��8�8�9�9�9��h�	�2�.�.����$�$��H�'�);�<�<�<�<�<�
�s�
"�
"��H�'��8�8�8�8�8�
9�9�
#�
"���
�c��ddl}	|�gd�|j|jd���}|���d}|jrdSn#t
$rYdSwxYw|���d}|d|��dS)Nr)�gdbz-nx�	--versionT�r]r^�universal_newlines�gdb_version)�
subprocess�Popen�PIPE�communicate�
returncoder��
splitlines)r,r�procrUs    r�collect_gdbr�s�������
���� ;� ;� ;�'1��'1��37� �9�9���"�"�$�$�Q�'���?�	��F�	�������������� � �"�"�1�%�G��H�]�G�$�$�$�$�$s�AA�
A�Ac���	ddl}d}t||d|��n#t$rYnwxYw	ddl}|���}|�dd��}|d|��dS#t$rYdSwxYw)Nr)�
TK_VERSION�TCL_VERSIONz
tkinter.%sr�
patchlevelztkinter.info_patchlevel)�_tkinterr2r��tkinter�Tcl�call)r,rr/r�tclrs      r�collect_tkinterr�s���F�����3�
���(�L�*�E�E�E�E��	�
�
�
���
����8������k�k�m�m���X�X�f�l�3�3�
���*�J�7�7�7�7�7���
�
�
����
���s��
(�(�A(�(
A6�5A6c�d�ddl}|d|�����d}t||d|��t|d��rgdD]f}	tjd���5|�|��}ddd��n#1swxYwY|d	|z|���U#t$rY�awxYwdSdS)
Nrz	time.time)�altzone�daylight�timezone�tznameztime.%s�get_clock_info)�clock�	monotonic�perf_counter�process_time�thread_time�timeT)�recordztime.get_clock_info(%s))r)r2re�warnings�catch_warningsr#r)r,r)r/r$�
clock_infos     r�collect_timer.�sB���K�K�K��H�[�$�)�)�+�+�&�&�&��J��H�d�I�z�:�:�:��t�%�&�&�H�=�
	H�
	H�E�
H��,�D�9�9�9�<�<�!%�!4�!4�U�!;�!;�J�<�<�<�<�<�<�<�<�<�<�<����<�<�<�<���2�U�:�J�G�G�G�G��	�
�
�
���
����H�H�
	H�
	Hs6�B�!B�7B�B	�B�
B	�B�
B+�*B+c�X�	ddl}n#t$rYdSwxYwt|d|d��dS)Nrzcurses.ncurses_version�ncurses_version)�cursesr�r8)r,r1s  r�collect_cursesr2�sR����
�
�
�
��������������h�0�&�:K�L�L�L�L�Lrc�z�	ddl}n#t$rYdSwxYw|d|j�����dS)Nrzdatetime.datetime.now)�datetimer��now)r,r4s  r�collect_datetimer6�s^��������������������
�H�
$�h�&7�&;�&;�&=�&=�>�>�>�>�>rc�^�trdSddl}dD]>}|�|��}|dkr|s� t|��}|d|z|���?|�d��}|od|v}|rd}nd}|d	|��d
D]-}|�|��}|rd}nd}|d
|��|���.dS)Nr)�ABIFLAGS�ANDROID_API_LEVELr��CCSHAREDr��CFLAGSFORSHARED�CONFIG_ARGS�
HOST_GNU_TYPE�MACHDEP�	MULTIARCH�OPT�	PY_CFLAGS�PY_CFLAGS_NODIST�PY_CORE_LDFLAGS�
PY_LDFLAGS�PY_LDFLAGS_NODIST�PY_STDMODULE_CFLAGSrg�Py_ENABLE_SHAREDr��SOABIrSr9z
sysconfig[%s]rAz-DNDEBUGz!ignore assertions (macro defined)z$build assertions (macro not defined)zbuild.NDEBUG)�WITH_DOC_STRINGS�WITH_DTRACE�WITH_FREELISTS�
WITH_PYMALLOC�
WITH_VALGRIND�Yes�Nozbuild.)�
MS_WINDOWS�	sysconfig�get_config_varr
)r,rQr1rrA�NDEBUGrs       r�collect_sysconfigrT�s%�����������0�0��0�(�(��.�.���&�&�&�u�&���u�%�%�����4�'��/�/�/�/��(�(��5�5�I��3�J�)�3�F�
�5�2���4���H�^�D�!�!�!��(�(���(�(��.�.���	��D�D��D����$���$�'�'�'�'�(�(rc�h�ddl}	ddl}n#t$rYdSwxYw	ddl}n#t$rd}YnwxYwd�}d}t	||d||���d|�|j��fd|���fd|���ffD]\}}d	}t	||d
|�d�|���dd
g}|�Gt|d��r7|�
��}	|�|	d|	df��|D]0}	|j|}
n#t$rY�wxYw|d|z|
���1dS)Nrc�:�|�d��rd|zS|S)N�OP_z%#8x�r�r�s  rr�z collect_ssl.<locals>.format_attrs%���?�?�5�!�!�	��E�>�!��Lr)�OPENSSL_VERSION�OPENSSL_VERSION_INFO�HAS_SNI�OP_ALL�
OP_NO_TLSv1_1zssl.%sr(�
SSLContext�default_https_context�stdlib_context)�minimum_version�maximum_version�protocol�options�verify_modezssl.z.%s�OPENSSL_CONF�
SSLKEYLOGFILE�get_default_verify_paths�zssl.environ[%s])r��sslr��_sslr2r^�PROTOCOL_TLS_CLIENT�_create_default_https_context�_create_stdlib_contextrerh�extendr�r�)r,r�rjrkr�r/r1�ctx�	env_names�partsrs           r�collect_sslrss���
�I�I�I���
�
�
�
������������������������������������J��H�c�8�Z�;�O�O�O�O�
�s�~�~�c�&=�>�>�?�	 �#�"C�"C�"E�"E�F�	�3�5�5�7�7�8��E�E�	��c�

�
�	��#�'7�d�'7�'7�'7��D�D�D�D���1�I���G�D�*D�E�E���-�-�/�/�����%��(�E�!�H�-�.�.�.��2�2��	��J�t�$�E�E���	�	�	��H�	������"�T�)�5�1�1�1�1�2�2s*��
��"�1�1�
D�
D�Dc���	ddl}n#t$rYdSwxYw	|���}|d|��dS#ttf$rt
jdkr�YdSwxYw)Nrzsocket.hostname�wasi)�socketr��gethostnamer�r5rcrQ)r,rv�hostnames   r�collect_socketryGs�����
�
�
�
�������������.��%�%�'�'��	��"�H�-�-�-�-�-��
�^�$�����<�6�!�!��"�!�!����s��
��;�"A!� A!c�\�	ddl}n#t$rYdSwxYwd}t||d|��dS)Nr)rU�sqlite_versionz
sqlite3.%s)�sqlite3r�r2)r,r|r/s   r�collect_sqliter}WsU��������������������/�J��H�g�|�Z�@�@�@�@�@rc�\�	ddl}n#t$rYdSwxYwd}t||d|��dS)Nr)�ZLIB_VERSION�ZLIB_RUNTIME_VERSIONzzlib.%s)�zlibr�r2)r,r�r/s   r�collect_zlibr�asU��������������������:�J��H�d�I�z�:�:�:�:�:rc�`�	ddlm}n#t$rYdSwxYwd}t||d|��dS)Nr)�expat)�
EXPAT_VERSIONzexpat.%s)�xml.parsersr�r�r2)r,r�r/s   r�
collect_expatr�ks_���%�%�%�%�%�%�%�������������$�J��H�e�Z��<�<�<�<�<��	�
�c�\�	ddl}n#t$rYdSwxYwd}t||d|��dS)Nr)�__libmpdec_version__z_decimal.%s)�_decimalr�r2)r,r�r/s   r�collect_decimalr�usU��������������������+�J��H�h�
�z�B�B�B�B�Brc�X�	ddl}n#t$rYdSwxYwt|d|d��dS)Nrzpymem.allocator�pymem_getallocatorsname)�	_testcapir�r=)r,r�s  r�collect_testcapir�sV���������������������h�)�9�6O�P�P�P�P�Prc��	ddl}n#t$rYdSwxYwd�t|��D��}|D]6}t||��}|�|��}|d|z|���7t|d|d��dS)Nrc�<�g|]}|�d���|��S)�RLIMIT_rX)r!r0s  r�
<listcomp>z$collect_resource.<locals>.<listcomp>�s)��
K�
K�
K�t����	�0J�0J�
K�d�
K�
K�
Krzresource.%szresource.pagesize�getpagesize)�resourcer��dirr+�	getrlimitr=)r,r��limitsr1rrs      r�collect_resourcer��s���������������������L�
K�s�8�}�}�
K�
K�
K�F��.�.���h��%�%���"�"�3�'�'������%�u�-�-�-�-�
�h�+�X�}�E�E�E�E�Erc��	ddlm}n#ttjf$rYdSwxYwd�t|��D��}t
||d|��dS)Nr)�test_socketc�<�g|]}|�d���|��S)�HAVE_rX)r!r1s  rr�z'collect_test_socket.<locals>.<listcomp>�s8��/�/�/�4��_�_�W�-�-�/�$�/�/�/rztest_socket.%s)�testr�r��unittest�SkipTestr�r2)r,r�r/s   r�collect_test_socketr��s����$�$�$�$�$�$�$����*�+�����������/�/�3�{�#3�#3�/�/�/�J��H�k�+;�Z�H�H�H�H�Hs�	�#�#c�h�	ddlm}n#t$rYdSwxYwd}t||d|��t	|d|d��t	|d|d��|d	|�d
�����|d|�d
�
����|d|�d
�����dS)Nr)�support)�IPV6_ENABLEDztest_support.%sztest_support._is_gui_available�_is_gui_availablez test_support.python_is_optimized�python_is_optimizedz*test_support.check_sanitizer(address=True)T)�addressz)test_support.check_sanitizer(memory=True))�memoryz%test_support.check_sanitizer(ub=True))�ub)r�r�r�r2r=�check_sanitizer)r,r�r/s   r�collect_test_supportr��s��� � � � � � � �������������#�J��H�g�'8�*�E�E�E�
�h�8�'�CV�W�W�W�
�h�:�G�EZ�[�[�[��H�
9�
�
$�
$�T�
$�
2�
2�4�4�4��H�
8�
�
$�
$�D�
$�
1�
1�3�3�3��H�
4�
�
$�
$��
$�
-�
-�/�/�/�/�/r�c��ddl}ddl}|�d��}|sdS	ddl}|�|��}n$#t
$r|���}YnwxYw|�d��	|�||j|j	d���}n#t$rYdSwxYw|���d}|jrdS|�
��d}t|��}|d|��dS)Nrr�rTr	z
CC.version)rrQrR�shlex�splitr��appendr
r�STDOUTr�rrrr
)	r,rrQr�r��argsrr]rs	         r�
collect_ccr��sP����������	�	!�	!�$�	'�	'�B�
����������{�{�2�����������x�x�z�z���������K�K�����	�����'1��'1�'8�37� �9�9��������	���	�����
�
�
�
��
"�F�����������q�!�D��$���D��H�\�4� � � � � s!�=�A�A�7#B�
B)�(B)c	��	ddlm}n#t$rYdSwxYw|dd�t	t
|������dS)Nr)�
_GDBM_VERSIONzgdbm.GDBM_VERSION�.)�_gdbmr�r�rmr�r)r,r�s  r�collect_gdbmr��so���'�'�'�'�'�'�'�������������
�H�
 �#�(�(�3�s�M�+B�+B�"C�"C�D�D�D�D�Dr�c	���	ddlm}n#t$rYdSwxYw|��}t|��D]A}||}t|��D]'}||�d|�d�t	||�����(�BdS)Nr)�get_configs�[�])�_testinternalcapir�r�r��repr)r,r��all_configs�config_type�configrs      r�collect_get_configr��s����1�1�1�1�1�1�1��������������+�-�-�K��k�*�*�G�G���[�)���&�>�>�	G�	G�C��H����c�c�c�2�D����4E�4E�F�F�F�F�	G�G�Gr�c�2�ddl}t||dd��dS)Nrz
subprocess.%s)�_USE_POSIX_SPAWN)rr2)r,rs  r�collect_subprocessr��s)�������H�j�/�;P�Q�Q�Q�Q�Qrc� �	ddl}n#t$rYdSwxYwt|d��sdS|�d��}|j}	|j}||_d|_t|����}n#t$rd}YnwxYw|d|��	ddl
}|�tj
��}|d|��n#ttf$rYnwxYwddl}	|�gd�|j|jd	d
���}	|	���\}
}|	jrd}
|
���D]�}|���}|�d
��r6|�d
�����}|r|d|���a|�d��r5|�d�����}|r|d|����n#t.$rYnwxYw	|�dgd
|j|jd
���}	|	���d}
|	jrd}
|
���}
|
���d}|r|d|��dSdS#t.$rYdSwxYw)Nr�WinDLL�ntdllr z<function not available>zwindows.RtlAreLongPathsEnabledzwindows.dll_path)�wmicr��getzCaption,Versionz/value�oemT)r]r^r_rrzCaption=zwindows.version_captionzVersion=zwindows.version�ver)�shellr]r^rzwindows.ver)�ctypesr�rer��c_ubyte�RtlAreLongPathsEnabled�restype�argtypesror5�_winapi�GetModuleFileNamerc�	dllhandlerr
rrrrr
r��removeprefixr�)
r,r�r��BOOLEANr��resr��dll_pathrr�outputr^�lines
             r�collect_windowsr��sb����
�
�
�
��������������6�8�$�$�����M�M�'�"�"�E��n�G�-�!&�!=��*1��&�*,��'��)�)�+�+�,�,�����)�)�)�(����)����
�H�
-�s�3�3�3�
������,�,�S�]�;�;����#�X�.�.�.�.����(�
�
�
���
��������6���� R� R� R�'1��'1��).�%)�	 �+�+��
�)�)�+�+�����?�	��F��%�%�'�'�		6�		6�D��:�:�<�<�D����z�*�*�
6��(�(��4�4�:�:�<�<���>��H�6��=�=�=������,�,�
6��(�(��4�4�:�:�<�<���6��H�.��5�5�5��		6���
�
�
���
����*������t�'1��'1��%)� �+�+���!�!�#�#�A�&���?�	��F�������� � �"�"�1�%���	*��H�]�D�)�)�)�)�)�	*�	*������������sV��
��A4�4B�B�/C�C�C�AG&�&
G3�2G3�7AI?�?
J
�J
c�@�	ddl}n#t$rd}YnwxYw|�t|d|d��	tdd���5}|������}ddd��n#1swxYwY|r|d|��dSdS#t$rYdSwxYw)Nrzfips.openssl_fips_mode�
get_fips_modez/proc/sys/crypto/fips_enabledzutf-8)r_zfips.linux_crypto_fips_enabled)�_hashlibr�r=�openr�rstripr�)r,r��fpr�s    r�collect_fipsr�>s&������������������������(�4�h��P�P�P�
�
�1�G�
D�
D�
D�	*���;�;�=�=�'�'�)�)�D�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*��	=��H�5�t�<�<�<�<�<�	=�	=���
�
�
����
���s@����B�'A2�&B�2A6�6B�9A6�:B�
B�Bc��d}|j}ttttt
ttttttttttt t"t$t&t(t*t,t.t0t2t4t6t8t:t<fD]�}	||���#t>$rd}tAd|j!ztDj#���tIj%tDj#���tAtDj#���tDj#�&��Y��wxYw|S)NFTzERROR: %s() failed��file)'rr�r|r�r2r6r�r�r�rr�r�rwr�rsr�rr�ryr}rsr�rirTr�r.rr�r�r�r��	Exception�printr%rcr^�	traceback�	print_exc�flush)r�errorr,�collect_funcs    r�collect_infor�Qs(���E��x�H�	����������������������������	��I%�.�.��L	��L��"�"�"�"���	�	�	��E��&�,�*?�@��z�
#�
#�
#�
#���S�Z�0�0�0�0��s�z�"�"�"�"��J��������
	�����Ls�C�BE�Ec�l�d}t|��tdt|��z��t��|���}t|�����}|D]/\}}|�dd��}t|�d|�����0t��dS)NzPython debug information�=�
rz: )r��lenr$r�r#�replace)rr��title�infosrrs      r�	dump_infor��s���&�E�	�%�L�L�L�	�#��E�
�
�
����	�G�G�G��N�N���E��5�;�;�=�=�!�!�E��'�'�
��U��
�
�d�C�(�(��
�#�#�#�u�u�%�&�&�&�&�	�G�G�G�G�Grc���t��}t|��}t|��|r1tdtj���t	jd��dSdS)Nz"Collection failed: exit with errorr�r)rr�r�r�rcr^�exit)rr�s  r�mainr��s\���<�<�D�����E�
�d�O�O�O���
�2���D�D�D�D����������r�__main__r)2r�
__future__rr�rrcr�r�r+rQrPr
rr2r8r=rirsrwr|r�r�r�rrrr.r2r6rTrsryr}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r%r rr�<module>r�s@����&�%�%�%�%�%�����	�	�	�	�
�
�
�
��������������l�g�%�
����E�E�E�E�E�E�E�E�:GK���������<@������@*�@*�@*�F0�0�0�"9�9�9�L�L�L�
���&@.�@.�@.�F,�,�,�69�9�9�:%�%�%�(8�8�8�&H�H�H�6M�M�M�?�?�?�;(�;(�;(�|22�22�22�j
.�
.�
.� A�A�A�;�;�;�=�=�=�C�C�C�Q�Q�Q�F�F�F�	I�	I�	I�/�/�/�( !� !� !�FE�E�E�G�G�G�R�R�R�
E*�E*�E*�P
�
�
�&4�4�4�n��������z����D�F�F�F�F�F��r