Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.12/test/test_warnings/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.12/test/test_warnings/__pycache__/__init__.cpython-312.pyc

�

*Μg���0�ddlmZddlZddlZddlZddlmZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZddlmZddlmZddlmZmZdd	lmZdd
lmZddlZej6ddg�
�Zej6ddg��Zed��ZGd�de�Z Gd�d�Z!Gd�de!�Z"Gd�de"ejF�Z$Gd�de"ejF�Z%Gd�de!�Z&Gd�de&ejF�Z'Gd�de&ejF�Z(Gd �d!e!�Z)Gd"�d#e)ejF�Z*Gd$�d%e)ejF�Z+Gd&�d'e!�Z,Gd(�d)e,ejF�Z-Gd*�d+e,ejF�Z.Gd,�d-e!ejF�Z/Gd.�d/e!�Z0Gd0�d1e0ejF�Z1Gd2�d3e0ejF�Z2Gd4�d5e!�Z3Gd6�d7e3ejF�Z4Gd8�d9e3ejF�Z5Gd:�d;e!�Z6Gd<�d=e6ejF�Z7Gd>�d?e6ejF�Z8Gd@�dAe!ejF�Z9GdB�dCejF�Z:GdD�dEejF�Z;dF�Z<e<Z=e>dGk(rej~�yy)H�)�contextmanagerN)�StringIO)�support)�
import_helper)�	os_helper)�warnings_helper)�assert_python_ok�assert_python_failure)�package_helper��
stacklevel�warnings�	_warnings)�blocked)�freshc#�K�ttfD]}	|jj��	tj�tj}|j}	|dd|_|jd�|t_d��|t_||_y#t$rY��wxYw#t
$rY�twxYw#|t_||_wxYw�w)z8Use a specific warnings implementation in warning_tests.N�once)	�sys�
warning_tests�__warningregistry__�clear�AttributeError�	NameErrorr�filters�simplefilter)�module�to_clear�original_warnings�original_filterss    �8/usr/local/lib/python3.12/test/test_warnings/__init__.py�warnings_stater!s������-�(��	��(�(�.�.�0�)�

��!�!�#�&�.�.���~�~��*�)�!�,������F�#�!'�
��
�!2�
��)�����	��	���
��
��"3�
��)���sb�C�B�C�B-�C�!*B<�C�	B*�'C�)B*�*C�-	B9�6C�8B9�9C�<C�Cc��eZdZy)�TestWarningN��__name__�
__module__�__qualname__��r r#r#5s��r)r#c�,��eZdZdZ�fd�Z�fd�Z�xZS)�BaseTestz'Basic bookkeeping required for testing.c�f��tjj|_dt	�vrt	�d=ttd�rt`ttd�rt`|jtjd<|jtj_tt|�7�y)Nrr)�unittest�caser�old_unittest_module�globals�hasattrrrrr�modules�superr+�setUp��self�	__class__s �r r4zBaseTest.setUp=s����#+�=�=�#9�#9�� �!�G�I�-��	�/�0��=�"7�8��1��3�-�.��'�#'�+�+����J��"&����
�
��
�h��#�%r)c���ttjd<|jtj
_tt|�'�y)Nr)
rrr2r/r-r.rr3r+�tearDownr5s �r r9zBaseTest.tearDownPs0���"3����J��!%�!9�!9��
�
��
�h��&�(r))r%r&r'�__doc__r4r9�
__classcell__)r7s@r r+r+9s���1�&�&)�)r)r+c��eZdZdZd�Zy)�PublicAPITestszGEnsures that the correct values are exposed in the
    public API.
    c���|jt|jd��gd�}|jt	|jj
�t	|��y)N�__all__)�warn�
warn_explicit�showwarning�
formatwarning�filterwarningsr�
resetwarnings�catch_warnings)�
assertTruer1r�assertSetEqual�setr?)r6�
target_apis  r �test_module_all_attributez(PublicAPITests.test_module_all_attribute[sH���������Y�7�8�9�
�	
���C���� 3� 3�4��
�O�	-r)N)r%r&r'r:rKr(r)r r=r=Us���-r)r=c��eZdZeZy)�CPublicAPITestsN�r%r&r'�
c_warningsrr(r)r rMrMc���
�Fr)rMc��eZdZeZy)�PyPublicAPITestsN�r%r&r'�py_warningsrr(r)r rRrRf���
�Fr)rRc��eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zy)�FilterTestsz$Testing the filtering functionality.c�:�tj|j��5}|jj�|jj	dt
��|j
t
|jjd�ddd�y#1swYyxYw)N�r�error��categoryzFilterTests.test_error)rrFrrErD�UserWarning�assertRaisesr@�r6�ws  r �
test_errorzFilterTests.test_errormsi��
�
-�
-�T�[�[�
A�Q��K�K�%�%�'��K�K�&�&�w��&�E����k�4�;�;�+;�+;� 8�
:�B�
A�
A�s�A'B�Bc�����tj�j��5}�jj�d���fd�}t	j
�5}|�ddd�j
�}�jd|��jd|��jjdt���jt|�ddd�y#1swY�}xYw#1swYyxYw)NrY�%FilterTests.test_ignore_after_defaultc�F���jj�t�y�N�rr@r]��messager6s��r �fz/FilterTests.test_error_after_default.<locals>.fx������� � ��+�6r)z2UserWarning: FilterTests.test_ignore_after_defaultz&self.module.warn(message, UserWarning)rZr[)rrFrrEr�captured_stderr�getvalue�assertInrDr]r^)r6r`ri�stderrrhs`   @r �test_error_after_defaultz$FilterTests.test_error_after_defaultts����
�
-�
-�T�[�[�
A�Q��K�K�%�%�'�=�G�
7��(�(�*�f���+��_�_�&�F��M�M�N� �
"��M�M�B� �
"�
�K�K�&�&�w��&�E����k�1�-�B�
A�+�*��
B�
A�s$�7C*�C�"A3C*�C'	�#C*�*C3c��tjd|j��5}|jj�|jj	dt
��|jj
dt
�|jt|�d�|jtt�dg�ddd�y#1swYyxYw)NT��recordr�ignorer[zFilterTests.test_ignorer�version)rrFrrErDr]r@�assertEqual�len�listrr_s  r �test_ignorezFilterTests.test_ignore�s���
�
-�
-�T��{�{�$�'(��K�K�%�%�'��K�K�&�&�x�+�&�F��K�K���6��D����S��V�Q�'����T�"5�6���D�
$�$�$�s�BC�Cc�Z���tjd�j��5}�jj�d���fd�}|��jj	dt
��|�|��j
t|�d�ddd�y#1swYyxYw)NTrqrcc�F���jj�t�yrerfrgs��r riz0FilterTests.test_ignore_after_default.<locals>.f�rjr)rsr[�)rrFrrErDr]rurv�r6r`rirhs`  @r �test_ignore_after_defaultz%FilterTests.test_ignore_after_default�s����
�
-�
-�T��{�{�$�'(��K�K�%�%�'�=�G�
7�
�C��K�K�&�&�x�+�&�F�
�C�
�C����S��V�Q�'�$�$�$�s�A4B!�!B*c�2���tjd�j��5}�jj��jj	dt
��d���fd�}|��j
t|�d��j
|djjd	��|��j
t|�d
��j
|djjd	��ddd�y#1swYyxYw)NTrq�alwaysr[zFilterTests.test_alwaysc�F���jj�t�yrerfrgs��r riz"FilterTests.test_always.<locals>.f�rjr)r{���r�)
rrFrrErDr]rurvrh�argsr|s`  @r �test_alwayszFilterTests.test_always�s����
�
-�
-�T��{�{�$�'(��K�K�%�%�'��K�K�&�&�x�+�&�F�/�G�
7�
�C����S��V�Q�'����Q�r�U�]�]�/�/��2�G�<�
�C����S��V�Q�'����Q�r�U�]�]�/�/��2�G�<�$�$�$�s�C D
�
Dc����tjd�j��5}�jj�d���fd�}|��j	t|�d��j	|djjd��|��j	t|�d��jjdt�	�|��j	t|�d
��j	|djjd��|��j	t|�d��j	|djjd��ddd�y#1swYyxYw)NTrqz$FilterTests.test_always_after_ignorec�F���jj�t�yrerfrgs��r riz0FilterTests.test_always_after_default.<locals>.f�rjr)r{r�rrr[r��)
rrFrrErurvrhr�rDr]r|s`  @r �test_always_after_defaultz%FilterTests.test_always_after_default�s+���
�
-�
-�T��{�{�$�'(��K�K�%�%�'�<�G�
7�
�C����S��V�Q�'����Q�r�U�]�]�/�/��2�G�<�
�C����S��V�Q�'��K�K�&�&�x�+�&�F�
�C����S��V�Q�'����Q�r�U�]�]�/�/��2�G�<�
�C����S��V�Q�'����Q�r�U�]�]�/�/��2�G�<�#$�$�$�s�EE=�=Fc��tjd|j��5}|jj�|jj	dt
��td�}t
d�D]w}|jj|t
�|dk(r%|j|dj|�|dd�=�M|d	k(r|jt|�d��ntd
��	ddd�y#1swYyxYw)NTrq�defaultr[zFilterTests.test_defaultr�rr�r{zloop variant unhandled)rrFrrErDr]�ranger@rurhrv�
ValueError)r6r`rh�xs    r �test_defaultzFilterTests.test_default�s���
�
-�
-�T��{�{�$�'(��K�K�%�%�'��K�K�&�&�y�;�&�G�!�"<�=�G��1�X����� � ��+�6���6��$�$�Q�r�U�]�]�G�<��!���!�V��$�$�S��V�Q�/�$�%=�>�>��$�$�$�s�CC8�8Dc��tjd|j��5}|jj�|jj	dt
��td�}|jj
|t
�|j|dj|�|dd�=|jj
|t
�|jt|�d�ddd�y#1swYyxYw)NTrqrr[zFilterTests.test_moduler�r)
rrFrrErDr]r@rurhrv�r6r`rhs   r �test_modulezFilterTests.test_module�s���
�
-�
-�T��{�{�$�'(��K�K�%�%�'��K�K�&�&�x�+�&�F�!�";�<�G��K�K���W�k�2����Q�r�U�]�]�G�4��!���K�K���W�k�2����S��V�Q�'�$�$�$�s�CC1�1C:c�|�tjd|j��5}|jj�|jj	dt
��td�}|jj
|t
dd�|j|dj|�|dd�=|jj
|t
dd	�|jt|�d
�|jj
|t
dd�|jt|�d
�ddd�y#1swYyxYw)NTrqrr[zFilterTests.test_once�__init__.py�*r��
rztest_warnings2.py)
rrFrrErDr]rArurhrvr�s   r �	test_oncezFilterTests.test_once�s���
�
-�
-�T��{�{�$�'(��K�K�%�%�'��K�K�&�&�v��&�D�!�"9�:�G��K�K�%�%�g�{�M�$&�
(����Q�r�U�]�]�G�4��!���K�K�%�%�g�{�M�$&�
(����S��V�Q�'��K�K�%�%�g�{�<O�$&�
(����S��V�Q�'�$�$�$�s�DD2�2D;c	�~�tjd|j��5}|jjdt�|jjdtddd��|j
t|�d�|jt�5|jjdtddd��ddd�|j
t|�d�|jjdtddi��|j
t|�d	�ddd�y#1swY�lxYw#1swYyxYw)
NTrqr�msg�filenamer���module_globalsr{r�)
rrFrrr]rArurvr^�	TypeErrorr_s  r �test_module_globalszFilterTests.test_module_globals�s��
�
-�
-�T��{�{�$�'(��K�K�$�$�X�{�;�
�K�K�%�%�e�[�*�b�59�
&�
;����S��V�Q�'��"�"�9�-����)�)�%��j�"�9=�*�?�.�
���S��V�Q�'�
�K�K�%�%�e�[�*�b�57�
&�
9����S��V�Q�'�%$�$�.�-��$�$�s%�A5D3�%D'�<A"D3�'D0	�,D3�3D<c�D�tj|j��5}|jj�|jj	dt
��|j
t|jjdt�ddd�y#1swYyxYw)NrYrZr[zFilterTests.test_inheritance)	rrFrrErD�Warningr^r]r@r_s  r �test_inheritancezFilterTests.test_inheritancesl��
�
-�
-�T�[�[�
A�Q��K�K�%�%�'��K�K�&�&�w��&�A����k�4�;�;�+;�+;� >��
M�B�
A�
A�s�A,B�Bc���tjd|j��5}|jj�|jj	dt
��|jj	dt
d��|dd�=	|jj
dt
�|jt|�d	�ddd�y#t
$r|jd�Y�@wxYw#1swYyxYw)
NTrqrsr[rZ)r\�appendzFilterTests.test_orderingz!order handling for actions failedr)
rrFrrErDr]r@�failrurvr_s  r �
test_orderingzFilterTests.test_orderings���
�
-�
-�T��{�{�$�'(��K�K�%�%�'��K�K�&�&�x�+�&�F��K�K�&�&�w��/3�
'�
5��!��
?���� � �!<�k�J�
���S��V�Q�'�$�$���
?��	�	�=�>�
?��$�$�s0�A#C*� C
�&C*�
C'�$C*�&C'�'C*�*C3c��tjd|j��5}|jjddtdd�|jt|jjd�|jj�d}|jj|�|jt|dj�|�|j|djt�|jjd	dtdd�d
}|jj|�|jt|dj�|�|jj�|jjddtdd�|jt|jjd�d
}|jj|�|jt|dj�|�|j|djt�ddd�y#1swYyxYw)NTrqrZ�r�convert to errorzhandle normallyr�rszfiltered outzhex*zhex/octznonmatching text)rrFrrDr�r^r]r@rEru�strrh�assertIsr\�assertNotEqual)r6r`�texts   r �test_filterwarningszFilterTests.test_filterwarningss����
-�
-�T��{�{�$�'(��K�K�&�&�w��G�R��C����k�4�;�;�+;�+;�=O�P��K�K�%�%�'�$�D��K�K���T�"����S��2����/��6��M�M�!�B�%�.�.�+�6��K�K�&�&�x��W�b�!�D�!�D��K�K���T�"�����A�b�E�M�M� 2�D�9��K�K�%�%�'��K�K�&�&�w����Q�G����k�4�;�;�+;�+;�Y�G�%�D��K�K���T�"����S��2����/��6��M�M�!�B�%�.�.�+�6�-$�$�$�s�H	H4�4H=c�R�tjd|j��5}|jjdt�|jjddt�|j
t|jjd�|j
t|jjd�|jjd�|j|g�|jjd�|j|g�ddd�y#1swYyxYw)	NTrqrsrZ�matchzmatch prefixzsuffix matchzsomething completely different)	rrFrrr]rDr^r@rur_s  r �test_message_matchingz!FilterTests.test_message_matching1s���
�
-�
-�T��{�{�$�'(��K�K�$�$�X�{�;��K�K�&�&�w���E����k�4�;�;�+;�+;�W�E����k�4�;�;�+;�+;�^�L��K�K���^�,����Q��#��K�K���=�>����Q��#�$�$�$�s�C2D�D&c���G�fd�d�}td�D�cgc]}d|�t|�df��c}�tjd|j��5}�|j_|jj
td�dd	d
�|jt|dj�d�ddd�ycc}w#1swYyxYw)Nc���eZdZ�fd�Zy)�.FilterTests.test_mutate_filter_list.<locals>.Xc���g�ddyrer()r6�a�Ls  �r r�z4FilterTests.test_mutate_filter_list.<locals>.X.match?s�����!�r)N)r%r&r'r�)r�s�r �Xr�>s���
r)r�r�r�rTrq�bzf.pyr�r�)
r�r]rrFrrrArur�rh)r6r��ir`r�s    @r �test_mutate_filter_listz#FilterTests.test_mutate_filter_list=s����	�	�9>�a��A��1�i���K���A�
.��A��
�
-�
-�T��{�{�$�'(�"#�D�K�K���K�K�%�%�k�#�&6��f�b�I����S��2����/��5�	$�$��
B�$�$�s�C�A!C
�
Cc��tj|j��5|jj�|jj	dt
��|j
t|jj�d�|jj	dt
��|jj	dt
��|j
t|jj�dd�|j
|jjdddd	�ddd�y#1swYyxYw)
NrYrZr[r{rsr�z(filterwarnings inserted duplicate filterrz>filterwarnings did not promote filter to the beginning of list)	rrFrrErDr]rurvr�r6s r �%test_filterwarnings_duplicate_filtersz1FilterTests.test_filterwarnings_duplicate_filtersIs���
�
-�
-�T�[�[�
A��K�K�%�%�'��K�K�&�&�w��&�E����S����!4�!4�5�q�9��K�K�&�&�x�+�&�F��K�K�&�&�w��&�E�����D�K�K�'�'�(�!�:�
�
������#�#�A�&�q�)�7�(�
�B�
A�
A���D
D4�4D=c��tj|j��5|jj�|jj	dt
��|j
t|jj�d�|jj	dt
��|jj	dt
��|j
t|jj�dd�|j
|jjdddd	�ddd�y#1swYyxYw)
NrYrZr[r{rsr��&simplefilter inserted duplicate filterrz<simplefilter did not promote filter to the beginning of list)	rrFrrErr]rurvrr�s r �#test_simplefilter_duplicate_filtersz/FilterTests.test_simplefilter_duplicate_filtersZs���
�
-�
-�T�[�[�
A��K�K�%�%�'��K�K�$�$�W�{�$�C����S����!4�!4�5�q�9��K�K�$�$�X��$�D��K�K�$�$�W�{�$�C�����D�K�K�'�'�(�!�8�
�
������#�#�A�&�q�)�7�N�
�B�
A�
A�r�c�(�tj|jd��5}|jj�|jj	d�|jj	dd��|jj	dd��|jjdt��|jt|jj�dd	�|jt|�d
d�ddd�y#1swYyxYw)NT�rrrrsrZ�r��test_append_duplicater[r�r�rz+appended duplicate changed order of filters)
rrFrrErr@r]rurvrr_s  r r�z!FilterTests.test_append_duplicatejs���
�
-�
-�T�[�[��� !��K�K�%�%�'��K�K�$�$�X�.��K�K�$�$�W�T�$�:��K�K�$�$�X�d�$�;��K�K���4�{��K����S����!4�!4�5�q�8�
�
���S��V�Q�=�
����s�CD�Dc��tj|j��5|jj�|jj	d�|jj|jd��5|jjd�ddd�ddd�y#1swY�xYw#1swYyxYw)NrYrZrs)r�actionzThis will be ignored)rrFrrErr@r�s r �+test_catchwarnings_with_simplefilter_ignorez7FilterTests.test_catchwarnings_with_simplefilter_ignoreys���
�
-�
-�T�[�[�
A��K�K�%�%�'��K�K�$�$�W�-����+�+��{�{�8�,����� � �!7�8��B�
A����B�
A�s$�AB7�>B+�B7�+B4	�0B7�7Cc
�\�tj|j��5|jj�|jj|jdt��5tj�5}d}|jj|�|jt|jjt	d��|j�}|j||�ddd�ddd�ddd�y#1swY�xYw#1swY�xYw#1swYyxYw)NrYrZ)rr�r\z&Other types of warnings are not errorsr�)rrFrrE�
FutureWarningrrkr@r^rlrm)r6rn�	error_msgs   r �*test_catchwarnings_with_simplefilter_errorz6FilterTests.test_catchwarnings_with_simplefilter_error�s���
�
-�
-�T�[�[�
A��K�K�%�%�'����+�+��{�{�7�]�,���,�,�.�&� H�I��K�K�$�$�Y�/��%�%�m�&*�k�k�&6�&6�
�e�8L�N�#�_�_�.�F��M�M�)�V�4�
/��B�
A�
/�.�����B�
A�s=�AD"�(D�=A4D
�1D�9D"�
D�D�D	�D"�"D+N)r%r&r'r:rarorxr}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r(r)r rWrWisk��.�:�.�$E�(�
=�=�(?� 
(�(�"(�*M�(�7�6
$�
6��"� 
�9�5r)rWc��eZdZeZy)�CFilterTestsNrNr(r)r r�r��rPr)r�c��eZdZeZy)�
PyFilterTestsNrSr(r)r r�r��rUr)r�c��eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zefd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zy)�	WarnTestsz2Test warnings.warn() and warnings.warn_explicit().c��tjd|j��5}|jjd�t	d�D]m}d|z}|jj|�|j
t|dj�|�|j|djt��o	ddd�y#1swYyxYw)NTrqr�zmulti %dr�)rrFrrr�r@rur�rhr�r\r])r6r`r�r�s    r �test_messagezWarnTests.test_message�s���
�
-�
-�T��{�{�$�'(��K�K�$�$�V�,��1�X��!�1�}����� � ��&�� � ��Q�r�U�]�]�!3�T�:��
�
�a��e�n�n�k�:�	�$�$�$�s�BC�Cc
�l�tddfD]�}tjd|j��5}|jj	d�|jj|�|j
t|dj�tt|���ddd���y#1swY��xYw)Nr�Trqrr�)
r�rrFrrr@rur�rhr])r6�obr`s   r �test_warn_nonstandard_typesz%WarnTests.test_warn_nonstandard_types�s����D�"�%�B�"�1�1���;�;�(�+,����(�(��0���� � ��$�� � ��Q�r�U�]�]�!3�S��R��5I�J�
(�(�&�(�(�s�A1B*�*B3	c��t|j�5tjd|j��5}t	j
d�|j
tjj|dj�d�t	jd�|j
tjj|dj�d�ddd�ddd�y#1swY�xYw#1swYyxYw)NTrq�spam1r��
stacklevel.py�spam2�r!rrrFr�innerru�os�path�basenamer��outerr_s  r �
test_filenamezWarnTests.test_filename�s���
�D�K�K�
(�"�1�1���;�;�(�+,��#�#�G�,�� � ����!1�!1�!�B�%�.�.�!A�$3�5��#�#�G�,�� � ����!1�!1�!�B�%�.�.�!A�$3�5�
(�)�
(�(�(��)�
(�s#�"C8�B#C,�C8�,C5	�1C8�8Dc��t|j�5tjd|j��5}t	j
dd��|j
tjj|dj�d�t	jdd��|j
tjj|dj�d�t	j
d	d
��|j
tjj|dj�d�t	jdd
��|j
tjj|dj�d�t	jd
d��|j
tjj|dj�d�t	j
dd��|j
tjj|dj�d�ddd�ddd�y#1swY�xYw#1swYyxYw)NTrq�spam3r{rr�r��spam4�spam5r�r��spam6zspam6.5r��spam7i'rr�r_s  r �test_stacklevelzWarnTests.test_stacklevel�s����D�K�K�
(�"�1�1���;�;�(�+,��#�#�G��:�� � ����!1�!1�!�B�%�.�.�!A�$3�5��#�#�G��:�� � ����!1�!1�!�B�%�.�.�!A�$3�5��#�#�G��:�� � ����!1�!1�!�B�%�.�.�!A�$1�3��#�#�G��:�� � ����!1�!1�!�B�%�.�.�!A�$3�5��#�#�I�!�<�� � ����!1�!1�!�B�%�.�.�!A�$1�3��#�#�G��=�� � ����!1�!1�!�B�%�.�.�!A�$)�+�)(�)�
(�(�(��)�
(�s#�"I�G3H<�+I�<I	�I�Ic��tjd�t|j�5t	j
d|j��5}|jj
d�ddl}|jt|�d�|j|djt�ddd�ddd�y#1swY�xYw#1swYyxYw)Nz&test.test_warnings.data.import_warningTrqrrr{)r�unloadr!rrrFr�&test.test_warnings.data.import_warningrurvr��__file__)r6r`�tests   r �test_stacklevel_importz WarnTests.test_stacklevel_import�s������E�F�
�D�K�K�
(�"�1�1���;�;�(�+,����(�(��2�=�� � ��Q���+�� � ��1�����9�(�)�
(�(�(��)�
(�s$�"C�
AB<�+C�<C	�C�Cc� �t|j�5tjd|j��5}|jj	d�tjddtj��|j|djt�tjdd�	�|j|djt�|j|d
j|dj�tjdd�	�|j|djt�tjd
d�	�|j|djt�tjdd�	�|j|djt�tjdd�	�|jd|dj�ddd�ddd�y#1swY�xYw#1swYyxYw)NTrqr�	inner_apir�)r
�warnings_moduler�zpackage apir���z
package api 1r{z
package api 0rzpackage api -99i�����prefix02r�r-)r!rrrFrrr�rrrur�r��packagermr_s  r �test_skip_file_prefixesz!WarnTests.test_skip_file_prefixes�s}��
�D�K�K�
(�"�1�1���;�;�(�+,����(�(��2��(�(�#��(5�(>�(>�@�� � ��2�����:��%�%�m��B�� � ��2�����:�� � ��2�����2����@��%�%�o�!�D�� � ��2�����:��%�%�o�!�D�� � ��2�����:��%�%�&7�C�H�� � ��2�����:��%�%�j�Q�?��
�
�j�!�B�%�.�.�9�-(�)�
(�(�(��)�
(�s#�"H�F/G8�'H�8H	�=H�H
c���t|j�5tjj}|jt�5|dg��ddd�|jt�5|dd��ddd�|jt�5|dd��ddd�ddd�y#1swY�bxYw#1swY�FxYw#1swY�*xYw#1swYyxYw)Nr�)�skip_file_prefixes)sbytesza sequence of strs)r!rrrr@r^r�)r6r@s  r �#test_skip_file_prefixes_type_errorsz-WarnTests.test_skip_file_prefixes_type_errors�s���
�D�K�K�
(� �)�)�.�.�D��"�"�9�-��U�r�2�.��"�"�9�-��U�{�;�.��"�"�9�-��U�/C�D�.�
)�
(�-�-��-�-��-�-��
)�
(�sS�0C�B2�C�.B>�9C�C
�!C�2B;	�7C�>C	�C�
C	�C�Cc��d}td|d�}tjd��5}|jj	dt
��t
|�ddd�|jdj|�y#1swY�)xYw)	Nz<warnings-test>z3import warnings
warnings.warn('hello', UserWarning)�execT)rrrr[r)	�compilerrFrrr]r�rur�)r6r��codeobjr`s    r �test_exec_filenamezWarnTests.test_exec_filenamest��$���A�"�F�,���
-�
-�T�
:�a��K�K�$�$�X��$�D���M�;�	
����1�����1�;�
:�s�-A;�;Bc�
�tjd|j��5}|jj�|jj	dt
��dg}tjs|jd�|D]Y}	tj|�|jjdt
|d�|j|d	j|��[	ddd�y#t$rY�qwxYw#1swYyxYw)
NTrqrr[u
nonasciié€usurrogate�r�r{r�)rrFrrErDr]r�
is_emscriptenr�r��fsencode�UnicodeEncodeErrorrArur�)r6r`�	filenamesr�s    r �%test_warn_explicit_non_ascii_filenamez/WarnTests.test_warn_explicit_non_ascii_filenames���
�
-�
-�T��{�{�$�'(��K�K�%�%�'��K�K�&�&�x�+�&�F�-�.�I��(�(�
� � �!2�3�%����K�K��)����)�)�&�+�x��K�� � ��2�����:�
&�$�$��*�����$�$�s1�A%C9�C*�AC9�*	C6�3C9�5C6�6C9�9Dc	�8�|jt|jjdtdd�|jt|jjdddd�|jtt
f|jjdtddd��y)Nr{r���registry)r^r�rrAr]rr�r�s r �test_warn_explicit_type_errorsz(WarnTests.test_warn_explicit_type_errors$s���	
���)�T�[�[�%>�%>� �+�t�T�	;�	
���)�T�[�[�%>�%>� �$��a�	1�	
���9�n�5� �K�K�5�5� �'�4��R�	�	Ar)c��Gd�dt�}|jt�5|jj	|��ddd�y#1swYyxYw)Nc��eZdZdZd�Zy)�-WarnTests.test_bad_str.<locals>.BadStrWarningz-Warning with a bad format string for __str__.c��dddizS)NzA bad formatted string %(err)�errzthere is no %(err)sr(r�s r �__str__z5WarnTests.test_bad_str.<locals>.BadStrWarning.__str__9s��7��!6�7�8�9r)N)r%r&r'r:rr(r)r �
BadStrWarningr7s
��?�
9r)r)r�r^r�rr@)r6rs  r �test_bad_strzWarnTests.test_bad_str3s>��	9�G�	9��
�
�z�
*��K�K���]�_�-�+�
*�
*�s�!A�Ac��Gd�dt�}Gd�d�}|jt�5}|jj	dd�ddd�|jdt
j��|jt�5}|jj	d|�ddd�|jdt
|j��|jt�5}|jj	d|��ddd�|jdt
|j��tj|j��5|jj�|jjd	�|j|�5}|jj	d
|�ddd�|jd
t
|j��|jt�5}|jj	d
d�ddd�|jd
t
|j��|j|�5}|jj	d
|�ddd�|j!|jt�ddd�y#1swY��axYw#1swY��xYw#1swY���xYw#1swY��xYw#1swY��xYw#1swY�rxYw#1swYyxYw)Nc��eZdZy)�6WarnTests.test_warning_classes.<locals>.MyWarningClassNr$r(r)r �MyWarningClassrA���r)rc��eZdZy)�:WarnTests.test_warning_classes.<locals>.NonWarningSubclassNr$r(r)r �NonWarningSubclassrDrr)rzbad warning categoryr�z)category must be a Warning subclass, not rYr�zgood warning category)r�r^r�rr@rmr��	exceptionrrFrErD�assertWarnsru�warningr]�assertIsInstance)r6rr�cms    r �test_warning_classeszWarnTests.test_warning_classes@s4��	�W�	�	�	��
�
�y�
)�R��K�K���3�R�8�*��
�
�A��"�,�,�'�	)��
�
�y�
)�R��K�K���3�5G�H�*��
�
�A��"�,�,�'�	)��
�
�y�
)�R��K�K���3�^�5E�F�*��
�
�A��"�,�,�'�	)��
-�
-�T�[�[�
A��K�K�%�%�'��K�K�&�&�y�1��!�!�.�1�R���� � �!8�.�I�2����4�c�"�*�*�o�F��!�!�+�.�"���� � �!8�$�?�/����4�c�"�*�*�o�F��!�!�.�1�R���� � �!8�.�I�2��!�!�"�*�*�g�6�B�
A�!*�
)��
*�
)��*�
)��2�1��/�.��2�1��B�
A�sy�J+�J8�-"K�AK7�#K�AK7�K�>K7�K+�:(K7�+J5�8K�K�K	�K7�K(	�$K7�+K4	�0K7�7Lc��tj|jd��5}|jjd�|jj	dt
dd|��ddd�|j
t�d�|j
|djt
�|j
t|dj�d�y#1swY�pxYw)	NTr�r��eggs�barr{r�r)rrFrrDrAr]rurvr\r�rh)r6r�r`s   r �check_module_globalszWarnTests.check_module_globalsgs���
�
-�
-�T�[�[��
N�RS��K�K�&�&�y�1��K�K�%�%���U�A�-�
&�
/�O�
	
����Q���#�����1�����4�����Q�q�T�\�\�*�F�3�O�
N�s�AC�Cc	���|jtur|j|�ytj|jd��5}|jjd�|j
|tj|��5|jjdtdd|��ddd�ddd�|jt�d�y#1swY�-xYw#1swY�1xYw)	NTr�rr r!r{r�r)
rrTr"rrFrD�assertRaisesRegex�re�escaperAr]rurv)r6r��errmsg�errtyper`s     r �check_module_globals_errorz$WarnTests.check_module_globals_errorqs����;�;�+�%��%�%�n�5��
�
-�
-�T�[�[��
N�RS��K�K�&�&�x�0��'�'�����6�1B�C����)�)��K���#1�*�3�D�O�	
����Q���#�	D�C��O�
N�s%�AC$�%C�,C$�C!	�C$�$C-c��|jtur|j|�ytj|jd��5}|jjd�|jj
dtdd|��ddd�|jt�d�|j|d	jt�|jt|d	j�|�|j|djt�|jt|dj�d�y#1swY��xYw)
NTr�rr r!r{r�r�r)rrTr"rrFrDrAr]rurvr\�DeprecationWarningr�rh)r6r�r�r`s    r �check_module_globals_deprecatedz)WarnTests.check_module_globals_deprecated}s����;�;�+�%��%�%�n�5��
�
-�
-�T�[�[��
N�RS��K�K�&�&�x�0��K�K�%�%���U�A�-�
&�
/�O�
	
����Q���#�����1����(:�;�����Q�q�T�\�\�*�C�0�����1�����4�����Q�q�T�\�\�*�F�3�O�
N�s
�AE�E	c�*�|jddi�y)Nr%r!�r"r�s r �"test_gh86298_no_loader_and_no_specz,WarnTests.test_gh86298_no_loader_and_no_spec�s���!�!�:�u�"5�6r)c�,�|jddd��y)Nr!�r%�
__loader__r.r�s r �'test_gh86298_loader_is_none_and_no_specz1WarnTests.test_gh86298_loader_is_none_and_no_spec�s���!�!�u�D�"I�Jr)c�.�|jddd�d�y�Nr!�r%�__spec__�+Module globals is missing a __spec__.loader�r)r�s r �'test_gh86298_no_loader_and_spec_is_nonez1WarnTests.test_gh86298_no_loader_and_spec_is_none�s���'�'��D�1�9�	;r)c�0�|jdddd�d�y�Nr!�r%r2r7r8r9r�s r �,test_gh86298_loader_is_none_and_spec_is_nonez6WarnTests.test_gh86298_loader_is_none_and_spec_is_none�s���'�'��d��E�9�	;r)c�X�|jddtjd��d�d�y)Nr!��loaderr=r8)r)�types�SimpleNamespacer�s r �3test_gh86298_loader_is_none_and_spec_loader_is_nonez=WarnTests.test_gh86298_loader_is_none_and_spec_loader_is_none�s+���'�'��d��.�.�d�;�
=�9�	;r)c�>�|jdt�d�d�y)Nr!r1r8�r,�objectr�s r �test_gh86298_no_speczWarnTests.test_gh86298_no_spec�s���,�,��f�h�7�9�	;r)c�@�|jdt�dd�d�yr<rFr�s r �test_gh86298_spec_is_nonez#WarnTests.test_gh86298_spec_is_none�s���,�,��f�h�D�I�9�	;r)c�d�|jdt�tj�d�d�yr<�r,rGrBrCr�s r �test_gh86298_no_spec_loaderz%WarnTests.test_gh86298_no_spec_loader�s+���,�,��f�h��.�.�0�
2�9�	;r)c�x�|jdt�tjt���d�d�y)Nr!r@r=z-Module globals; __loader__ != __spec__.loaderrLr�s r �,test_gh86298_loader_and_spec_loader_disagreez6WarnTests.test_gh86298_loader_and_spec_loader_disagree�s0���,�,��f�h��.�.�f�h�?�
A�;�	=r)c�\�|jdtj�d�dt�yr5)r)rBrCrr�s r �)test_gh86298_no_loader_and_no_spec_loaderz3WarnTests.test_gh86298_no_loader_and_no_spec_loader�s'���'�'��E�,A�,A�,C�D�9�>�	Kr)c�d�|jdtjt���d��y)Nr!r@r6)r"rBrCrGr�s r �,test_gh86298_no_loader_with_spec_loader_okayz6WarnTests.test_gh86298_no_loader_with_spec_loader_okay�s*���!�!���.�.�f�h�?�
A�	Br)N)r%r&r'r:r�r�r�r�r�r�r�r�rrrrr"r�r)r,r/r3r:r>rDrHrJrMrOrQrSr(r)r r�r��s���<�;�	K�	5�+�6	:�:�4E�2�;�(
A�.�%7�N4�JT�
$�
4�7�K�;�
;�
;�;�
;�
;�=�K�
Br)r�c��eZdZeZd�Zy)�
CWarnTestsc��|jt|j�|jt	|jj
d��y�N�__code__)�assertIsNotrr�assertFalser1r@r�s r �test_acceleratedzCWarnTests.test_accelerated�s6�����*�D�K�K�8��������!1�!1�:�>�?r)N)r%r&r'rOrr[r(r)r rUrU�s
��
�F�@r)rUc��eZdZeZd�Zy)�PyWarnTestsc��|jt|j�|jt	|jj
d��yrW)rYrrrGr1r@r�s r �test_pure_pythonzPyWarnTests.test_pure_python�s4�����*�D�K�K�8�������� 0� 0�*�=�>r)N)r%r&r'rTrr_r(r)r r]r]�s��
�F�?r)r]c��eZdZd�Zd�Zy)�
WCmdLineTestsc��tj|j��5|j|jj|jj
d�|j|jj|jj
d�|j|jj|jj
d�|j|jj�5|jjd�ddd�|j|jj�5|jjd�ddd�|j|jj�5|jjd�ddd�|j
|jjd�5|jjd	�ddd�|jjd
�|jt|jjd�ddd�y#1swY��5xYw#1swY��xYw#1swY��xYw#1swY�}xYw#1swYyxYw)NrYz1:2:3:4:5:6zbogus::Warningzignore:2::4:-5zignore::123zignore::123abczignore::===uWärninguignore::Wärningzerror::Warning::0r�)	rrFrr^�_OptionError�
_setoptionr$r]r@r�s r �test_improper_inputz!WCmdLineTests.test_improper_input�s����
-�
-�T�[�[�
A����d�k�k�6�6�"�k�k�4�4�m�
E����d�k�k�6�6�"�k�k�4�4�6F�
H����d�k�k�6�6�"�k�k�4�4�6F�
H��"�"�4�;�;�#;�#;�<����&�&�}�5�=��"�"�4�;�;�#;�#;�<����&�&�'7�8�=��"�"�4�;�;�#;�#;�<����&�&�}�5�=��'�'����(@�(@�*�M����&�&�'9�:�N��K�K�"�"�#6�7����k�4�;�;�+;�+;�=O�P�!B�
A�=�<��<�<��<�<��M�M��B�
A�sm�CI8�8I�-I8�I�-I8�
I �&.I8�I,�0AI8�I	�I8�I	�I8� I)	�%I8�,I5	�1I8�8Jc���tj|j��5|jjd�|j	|jj
�5|jjd�ddd�|j	|jj
�5|jjd�ddd�|jjd�|j	t�5|jjdt�ddd�ddd�y#1swY��xYw#1swY�wxYw#1swY�*xYw#1swYyxYw)NrYzignore::Warningzignore::TestWarningz ignore::test.test_warnings.bogusz%error::test.test_warnings.TestWarningztest warning)rrFrrdr^rcr#r@r�s r �test_import_from_modulez%WCmdLineTests.test_import_from_module�s���
�
-�
-�T�[�[�
A��K�K�"�"�#4�5��"�"�4�;�;�#;�#;�<����&�&�'<�=�=��"�"�4�;�;�#;�#;�<����&�&�'I�J�=��K�K�"�"�#J�K��"�"�;�/���� � ���=�0�B�
A�<�<��<�<��0�/��B�
A�sT�AE�"D1�>-E�+D=�8E�?!E	� E�1D:	�6E�=E	�E�	E	�E�EN)r%r&r'rergr(r)r rara�s
��Q�*	>r)rac��eZdZeZy)�CWCmdLineTestsNrNr(r)r riri�rPr)ric��eZdZeZd�Zd�Zy)�PyWCmdLineTestsc�J�tddd�\}}}|jd|�y)Nz-Wxxx�-c�passs0Invalid -W option ignored: invalid action: 'xxx')r	rm�r6�rc�outr
s    r �test_improper_optionz$PyWCmdLineTests.test_improper_option�s'��(���v�>���C���
�
�I�3�Or)c��tddd�\}}}|j|j��|jd|�y)Nz-Wirmz?import sys; sys.modules['warnings'].warn('foo', RuntimeWarning)sRuntimeWarning)r	rZ�strip�assertNotInros    r �test_warnings_bootstrapz'PyWCmdLineTests.test_warnings_bootstrapsC��(��t�M�O���C��	
�������%����*�C�0r)N)r%r&r'rTrrrrvr(r)r rkrk�s��
�F�P�1r)rkc��eZdZdZeZd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zej"d��Zej"d
��Zej"d��Zy)�_WarningsTestsz'Tests specific to the _warnings module.c�x�tj|j��5}|jjddtdd�|jt|jjd�|j`|jt|jjd�ddd�y#1swYyxYw)NrYrZr�rr�)	rrFrrDr�r^r]r@rr_s  r �test_filterz_WarningsTests.test_filters���
�
-�
-�T�[�[�
A�Q��K�K�&�&�w��G�R��C����k�4�;�;�+;�+;� 2�
4����#����k�4�;�;�+;�+;� 2�
4�B�
A�
A�s�BB0�0B9c���td�}	|jj}iat	j
d|j��5}|jj
�|jjdt��|jj|tdd�|j|dj|�|dd�=|jj|tdd�|jt|�d	�i|j_ia|jjd�|j|djj|j�|dd�=|j`ia|jj|tdd�|jt|�d	�ddd�||j_y#1swY�xYw#|j_wxYw)
Nzonceregistry testTrqrr[�filer�r�r)r]r�onceregistryrrrFrErDrArurhrvr@r�)r6rh�original_registryr`s    r �test_onceregistryz _WarningsTests.test_onceregistry s����1�2��	9� $��� 8� 8��"$��"�1�1���;�;�(�+,����)�)�+����*�*�6�K�*�H����)�)�'�;���K�� � ��2�����8��a�D����)�)�'�;���K�� � ��Q���+�+-����(�&(�#���� � �!4�5�� � ��2����!3�!3�W�\�\�B��a�D��K�K�,�&(�#����)�)�'�;���K�� � ��Q���+�'(�*(9�D�K�K�$�+(�(��*(9�D�K�K�$�s$�9G�E0G�6G�G�G�G/c��td�}|jj}	tjd|j��5}|jj�i}|jj
|tdd|��|j|dj|�|jt|�d�|jt|�d	�|jd
|�|dd�=|j`i}i}|jj
|tdd|��|j|dj|�|jt|�d�|jt|�d	�|dd�=d|j_i}i}|jj
|tdd
|��|jt|�d�ddd�||j_y#1swY�xYw#||j_wxYw)Nzdefaultaction testTrqz<test>r�rr�r{r�rt�+rs�,r)r]r�
defaultactionrrFrErArurhrvrm)r6rh�originalr`rrs      r �test_default_actionz"_WarningsTests.test_default_action>s����2�3���;�;�,�,��	1�"�1�1���;�;�(�+,����)�)�+������)�)�'�;��"�5=�*�?�� � ��2�����8�� � ��Q���+�� � ��X���2��
�
�i��2��a�D��K�K�-�&(�#������)�)�'�;��"�5=�*�?�� � ��2�����8�� � ��Q���+�� � ��X���2��a�D�,4����)�&(�#������)�)�'�;��"�5=�*�?�� � ��Q���+�9(�<)1�D�K�K�%�=(�(��<)1�D�K�K�%�s$�!G9�FG-�G9�-G6�2G9�9Hc��d}tj|j��5|jjdt��|j`t
jd�5}|jj|�|j�}ddd�ddd�|j|�y#1swY�$xYw#1swY�(xYw)Nzdel showwarning testrYrr[rn)rrFrrDr]rBr�captured_outputr@rlrm)r6r��stream�results    r �test_showwarning_missingz'_WarningsTests.test_showwarning_missingcs���%��
�
-�
-�T�[�[�
A��K�K�&�&�x�+�&�F����'��(�(��2�f���� � ��&����*��3�B�	
�
�
�d�F�#�3�2��B�
A�s$�AC�&,B5�C�5B>	�:C�C
c��d}tj|j��5|jjdt��|jj
}	|j`t
jd�5}|jj|�|j�}ddd�||j_	ddd�|j|�y#1swY�6xYw#||j_wxYw#1swY�>xYw)Nzdel _showwarnmsg testrYrr[rn)rrFrrDr]�_showwarnmsgrr�r@rlrm)r6r��showr�r�s     r �test_showwarnmsg_missingz'_WarningsTests.test_showwarnmsg_missingns���&��
�
-�
-�T�[�[�
A��K�K�&�&�x�+�&�F��;�;�+�+�D�
0��K�K�,��,�,�X�6�&��K�K�$�$�T�*�#�_�_�.�F�7�,0����(�B�	
�
�
�d�F�#�7�6��,0����(��B�
A�s;�8D�!C*�=,C�)C*�1D�C'	�#C*�*C=�=D�D	c���tj|j��5|jjdt��t
|j_tjd�5|jjd�ddd�d|j_|jt|jjd�ddd�y#1swY�NxYw#1swYyxYw)NrYrr[�stdoutzWarning!�)rrFrrDr]�printrBrr�r@r^r�r�s r �test_showwarning_not_callablez,_WarningsTests.test_showwarning_not_callable~s���
�
-�
-�T�[�[�
A��K�K�&�&�x�+�&�F�&+�D�K�K�#��(�(��2���� � ��,�3�&(�D�K�K�#����i����)9�)9�:�F�
B�
A�3�2��B�
A�s%�AC"�-C�	AC"�C	�C"�"C+c��d}tj|j��5|jjdt��|j`t
jd�5}tj|�|j�}ddd�ddd�|jjd�dd|z�|jdd	�\}}tjj!tj"�d
dz}|j%dd
�}|\}}	}
}t'|	�}	|j||�|j|
dtj(z�|j|d|z�dt+j,||	�j/�zdz}|sJ�|j||�y#1swY��.xYw#1swY��3xYw)Nztest show_warningrYrr[rn�
r�zToo many newlines in %rr{r�.py�:r�� z  )rrFrrDr]rBrr�rr�rlru�count�splitr�r��splitextr��rsplit�intr%�	linecache�getlinert)
r6r�r�r��
first_line�second_line�
expected_file�first_line_partsr��line�
warning_classrh�
expected_lines
             r �test_show_warning_outputz'_WarningsTests.test_show_warning_output�s���"��
�
-�
-�T�[�[�
A��K�K�&�&�x�+�&�F����'��(�(��2�f��#�#�D�)����*��3�B�	
������d�+�Q�6��?�	A�"(�,�,�t�Q�"7��
�K����(�(��)?�)?�@��C�e�K�
�%�,�,�S�!�4��-=�*��d�M�7��4�y�������-������k�.B�.B�(B�C�����#��*�-��y�0�0��t�<�B�B�D�D�t�K�
���}�����m�4�3�2��B�
A�s$�AG�&&F8�G�8G	�=G�Gc�f�t�}|d}	tjd|j��}|5}|jj	dt
��d|d<tjdt
�|jt|��ddd�||d<y#1swY�xYw#||d<wxYw)Nr�Trqrr[r�)	r0rrFrrDr]r@rGrv)r6�globals_dict�oldfile�catchr`s     r �test_filename_nonez!_WarningsTests.test_filename_none�s����y���z�*��		/�%�4�4�D�<@�K�K�I�E��!����*�*�8�k�*�J�+/��Z�(�!�&�&�v�{�;�����A��'�	�(/�L��$�
���(/�L��$�s#�#B)�AB�B)�B&�"B)�)B0c��tdd�\}}}|j|d�|jd|�|jd|�y)Nrmzjimport sys; sys.stderr = None; import warnings; warnings.simplefilter('always'); warnings.warn('Warning!')r)sWarning!sError)r	ruru�r6rpr�rns    r �test_stderr_nonez_WarningsTests.test_stderr_none�sL��-�d�
(�)���F�F�	
�����%�����f�-�����6�*r)c���g��fd�}|j}tj|��5|jdt��tj�tj�5}|jdtdd|d�	��
�ddd�|jdj��|j�dg�tj�tj|dd�5|`tj�5}|jd
tdd|dg�	��
�ddd�|jd|j��ddd�|j�ddgg�tj�ddd�y#1swY��xYw#1swY�pxYw#1swY�TxYw#1swYyxYw)Nc�����G�fd�dt��G���fd�d�}|�}tjjd|�}||dd�S)Nc���eZdZ�fd�Zy)�M_WarningsTests.test_issue31285.<locals>.get_module_globals.<locals>.BadSourcec����Srer()r6�splitlines_ret_vals �r �
splitlineszX_WarningsTests.test_issue31285.<locals>.get_module_globals.<locals>.BadSource.splitlines�s	���-�-r)N)r%r&r'r��r�s�r �	BadSourcer��s���.r)r�c���eZdZ���fd�Zy)�M_WarningsTests.test_issue31285.<locals>.get_module_globals.<locals>.BadLoaderc�6���j���d�S)N�spamr�)r6�fullnamer��get_source_calledr�s  ���r �
get_sourcezX_WarningsTests.test_issue31285.<locals>.get_module_globals.<locals>.BadLoader.get_source�s���%�,�,�-?�@�$�V�,�,r)N)r%r&r'r�)r�r�r�s���r �	BadLoaderr��s���-r)r��foobar)r2r7r%)r��	importlib�	machinery�
ModuleSpec)r�r�rA�specr�r�s`   @�r �get_module_globalsz:_WarningsTests.test_issue31285.<locals>.get_module_globals�sM���
.�C�
.�
-�
-�
�[�F��&�&�1�1�(�F�C�D�"(� $� (�*�
*r)rYr�r[�foor!r{r�r�r�zUserWarning: foor�r zUserWarning: eggs)rrrFrDr]r��
clearcacherrkrArmrlru�	swap_attrr�)r6r��wmodrnr�s    @r �test_issue31285z_WarningsTests.test_issue31285�sw�����	*�"�{�{��
�
-�
-�T�
:����	�K��@�� � �"��(�(�*�f��"�"��;��q�#5��#L�#�N�+�
�M�M�,�f�o�o�.?�@����.���5�� � �"��"�"�4���>��%��,�,�.�&��&�&���U�A�'9�b�T�'R�'�T�/��
�
�1�6�?�?�3D�E�
?�
���.��b�T�
�;�� � �"�);�
:�+�*��/�.��?�>��;�
:�sU�AF4�+"F�
A&F4�3F(�
#F�-(F(�1F4�F	�F4�F%�!F(�(F1	�-F4�4F=c
�t�|j}tj|��5|jd�t	j
|dd�5|j
t�5|jdtddd��ddd�ddd�ddd�y#1swY�xYw#1swY�xYw#1swYyxYw)NrYrr}r�r!r{r)
rrrFrDrr�r^r�rAr��r6r�s  r �test_issue31411z_WarningsTests.test_issue31411�s����{�{��
�
-�
-�T�
:�����'��"�"�4���>��&�&�y�1��&�&�u�g�u�a�$�&�O�2�?�;�
:�2�1��?�>��;�
:�s;�)B.�B"�"B�=B"�B.�B�B"�"B+	�'B.�.B7c	��|j}tj|��5ddtddfg|_|jt�5|jdtdd�ddd�g|_tj|dd�5|jt�5|jdtdd�ddd�ddd�ddd�y#1swY�oxYw#1swY�&xYw#1swY�*xYw#1swYyxYw)NrYrr�r!r{r�)
rrrFr�rr^r�rArr�r�s  r �test_issue31416z_WarningsTests.test_issue31416�s����{�{��
�
-�
-�T�
:�!�4��$��:�;�D�L��"�"�9�-��"�"�5�'�5�!�<�.��D�L��"�"�4��$�?��"�"�9�-��"�"�5�'�5�!�<�.�@�
;�
:�-�-��
.�-��@�?��
;�
:�sS�'C5�
C�#&C5�	C)�C�8C)�C5�C	�C5�C&�"C)�)C2	�.C5�5C>c���tj|j��5|jjdt��tjt�dd�5tjt�dd�5|jt|jjd�ddd�ddd�ddd�y#1swY�xYw#1swY�xYw#1swYyxYw)NrYrZr[r%sfoor�r!)
rrFrrDr]r�	swap_itemr0r^r@r�s r �test_issue31566z_WarningsTests.test_issue31566�s����
-�
-�T�[�[�
A��K�K�&�&�w��&�E��"�"�7�9�j�&�A��"�"�7�9�j�$�?��!�!�+�t�{�{�/?�/?��G�@�B�B�
A�@�?��B�A��B�
A�s<�AC�" C�,C�.C�6C�C�C�C	�C�C(N)r%r&r'r:rOrrzrr�r�r�r�r�r�r�r�r�cpython_onlyr�r�r�r(r)r rxrxs���1�
�F�4�9�<#1�J	$�$� G�5�.
/�+�+#�Z
���P��P�
���=��=�
���H��Hr)rxc�"�eZdZdZd�Zd�Zd�Zy)�WarningsDisplayTestsziTest the displaying of warnings and the ability to overload functions
    related to displaying warnings.c
���d}t}tjjtj
�ddz}d}t
j||�j�}d}||||j||fz}|j||jj||||��|dz
}||||j||fz}|j||jj|||||��y)Nr�rr��z%s:%s: %s: %s
  %s
z
 for the win!)
r�r�r�r�rr�r�r�rtr%rurrC)r6rhr\�	file_name�line_num�	file_line�format�expects        r �test_formatwarningz'WarningsDisplayTests.test_formatwarning
s��������G�G�$�$�]�%;�%;�<�Q�?�%�G�	����%�%�i��:�@�@�B�	�(���9�h��0A�0A�7�%�'�'���������!:�!:�7�08�)�X�"O�	P�	�_�$�	��9�h��0A�0A�7�%�'�'���������!:�!:�7�$,�i��9�"N�	Or)c�p�tjjtj�ddz}d}tj||�j�}d}t}t�}|jj||||�}|jj|||||�|j|j�|�|dz
}|jj|||||�}t�}|jj||||||�|j||j��y)Nrr�r�r�zfor the win!)r�r�r�rr�r�r�rtr�rrrCrBrurl)r6r�r��expected_file_linerhr\�file_objectr�s        r �test_showwarningz%WarningsDisplayTests.test_showwarnings���G�G�$�$�]�%;�%;�<�Q�?�%�G�	���&�.�.�y�(�C�I�I�K�������j�����*�*�7�H�i�,4�6���������9�h� +�	-�����-�-�/��8��n�,�����*�*�7�H�i�,4�6H�J���j���������9�h� +�-?�	A������!5�!5�!7�8r)c	���d�}tjjtj�ddz}d}tj||�j�}d}t}t�}d|�d|�d|�d	|��d
|��z}tj|jd|�5|jj||||||�|j|j�|�ddd�y#1swYyxYw)Nc
�$�d|�d|�d|�d|�d|��
S)N�m=�:c=�:f=�:l=�:t=r()rhr\r��linenor�s     r �myformatwarningzIWarningsDisplayTests.test_formatwarning_override.<locals>.myformatwarning7s'����y��H�:�S��
�#�f�X�S���O�Or)rr�r�r�r�r�r�r�r�rC)r�r�r�rr�r�r�rtr�rrr�rrBrurl)	r6r�r�r�r�rhr\r��expecteds	         r �test_formatwarning_overridez0WarningsDisplayTests.test_formatwarning_override4s���	P��G�G�$�$�]�%;�%;�<�Q�?�%�G�	����%�%�i��:�@�@�B�	������j����y��H�:�S���3�x�j�I����$�%��
�
�
�t�{�{�O�_�
M��K�K�#�#�G�X�y�(�$/��
<����[�1�1�3�X�>�N�
M�
M�s
�$AC.�.C7N)r%r&r'r:r�r�r�r(r)r r�r�s��'�O�$9�*?r)r�c��eZdZeZy)�CWarningsDisplayTestsNrNr(r)r r�r�HrPr)r�c��eZdZeZd�Zy)�PyWarningsDisplayTestsc	��|jtjtj�t	tjdd��5}|jt
jd��ddd�d�}tjjtj�}|dtj�}t
jd|�d��j�}|j||�|dd	d
tj�}t
jd|�d|�d|�d
��j�}|j||�y#1swY��xYw)Nr`�utf-8)�encodingz�
                def func():
                    f = open(__file__, "rb")
                    # Emit ResourceWarning
                    f = None

                func()
            c��t|ddi�}|jjdd�}dj|j	��}tjdd|�}|S)N�PYTHONIOENCODINGr��replacer�z<.*>z<...>)r	r
�decode�joinr�r%�sub)r��resrns   r �runz4PyWarningsDisplayTests.test_tracemalloc.<locals>.run[sU��"�D�C�7�C�C��W�W�^�^�G�Y�7�F��Y�Y�v�0�0�2�3�F��V�V�F�G�V�4�F��Mr)�-Wdz
            z�:5: ResourceWarning: unclosed file <...>
              f = None
            ResourceWarning: Enable tracemalloc to get the object allocation traceback
        z-Xz
tracemalloc=2z�:5: ResourceWarning: unclosed file <...>
              f = None
            Object allocated at (most recent call last):
              File "z7", lineno 7
                func()
              File "z=", lineno 3
                f = open(__file__, "rb")
        )
�
addCleanupr�unlink�TESTFN�open�write�textwrap�dedentr�r��abspathrtru)r6�fpr�r�rnr�s      r �test_tracemallocz'PyWarningsDisplayTests.test_tracemallocNs:�����	�(�(�)�*:�*:�;�
�)�"�"�C�'�
:�b��H�H�X�_�_�&��
�;�	��7�7�?�?�9�#3�#3�4���U�I�,�,�-���?�?�(
�
�J�	�$�
��U�W�		�
	
�����*��U�D�/�9�3C�3C�D���?�?�(
�
�J���J���J�	�
$�
��U�W�	�	
�����*�Q;�
:�s�%E�EN)r%r&r'rTrrr(r)r r�r�Ks��
�F�++r)r�c�:�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
y	)
�CatchWarningTestszTest catch_warnings().c�$�|j}|j}|j}|j|d��5t	�x|_|_ddd�|j|j|�|j|j|�|j|d��5t	�x|_|_ddd�|j|j|�|j|j|�y#1swY��xYw#1swY�NxYw�NTr�F)rrrBrFrGr�)r6r��orig_filters�orig_showwarnings    r �test_catch_warnings_restorez-CatchWarningTests.test_catch_warnings_restore�s����{�{���|�|���+�+��
�
 �
 ��T�
 �
:�.4�h�6�D�L�4�+�;��
�
�d�l�l�L�1��
�
�d�&�&�(8�9�
�
 �
 ��U�
 �
;�.4�h�6�D�L�4�+�<��
�
�d�l�l�L�1��
�
�d�&�&�(8�9�;�
:��
<�
;�s�C:�"D�:D�Dc�d�|j}|j|d��5}|j|g�|jt	|�t
�|j
d�|jd�|jt|dj�d�|jd�|jt|dj�d�|jt|dj�d�|jt|dj�d�|dd�=|j|g�ddd�|j}|j|d	��5}|j|�|j|j|�ddd�y#1swY�_xYw#1swYyxYw)
NTr�rr�r�r!rr{F)rrFrur��typerwrr@r�rhrB�assertIsNone)r6r�r`r
s    r �test_catch_warnings_recordingz/CatchWarningTests.test_catch_warnings_recording�sX���{�{��
�
 �
 ��T�
 �
:�a����Q��#��M�M�$�q�'�4�(����h�'��I�I�e�����S��2����/��7��I�I�e�����S��2����/��7����S��1����.��6����S��1����.��6��!�����Q��#�;� �+�+��
�
 �
 ��U�
 �
;�q����a� ��M�M�$�*�*�,<�=�<�
;�;�
:��<�
;�s�DF�#.F&�F#�&F/c���|j}|j|d��}|jt|j�|5|jt|j
�ddd�|j|d��}|jt|j�|5|jt|j
�ddd�y#1swY�hxYw#1swYyxYwr)rrFr^�RuntimeError�__exit__�	__enter__)r6r�r�s   r �!test_catch_warnings_reentry_guardz3CatchWarningTests.test_catch_warnings_reentry_guard�s����{�{�����t�D��9�����,��
�
�3�
����l�A�K�K�8��
���t�E��:�����,��
�
�3�
����l�A�K�K�8��Q��Q��
�Q�s�!C
� !C�
C�Cc��|j}|j}|j}|j|��5}|j	|�|j|j|�|j
|j|�ddd�|j|j|�|tjdur|j�5}|j	|�|j|j|�|j
|j|�ddd�|j|j|�yy#1swY��xYw#1swY�3xYw)NrYr)	rrrBrFrr�rYrr2)r6r�rr
r`s     r �test_catch_warnings_defaultsz.CatchWarningTests.test_catch_warnings_defaults�s	���{�{���|�|���+�+��
�
 �
 ��
 �
-�����a� ��M�M�$�*�*�,<�=����T�\�\�<�8�.�	
�
�
�d�l�l�L�1��3�;�;�z�*�*��$�$�&�!��!�!�!�$��
�
�d�.�.�0@�A�� � ����|�<�'�
�M�M�$�,�,��5�
+�.�
-��'�&�s�A
D:�
A
E�:E�Ec�B��d}|j}g�d	�fd�	}tj|d|�5|j|d��5}|j	|j
|�|j
d�|j|�ddd�|j|j
|�ddd�|jt�d|�|j|djjd|�|j�g�y#1swY��xYw#1swY�pxYw)
N�This is a warningc�(���j|�yrer��rhr\r�r�r|r��my_logs      �r �	my_loggerzLCatchWarningTests.test_record_override_showwarning_before.<locals>.my_logger������M�M�'�"r)rBTr�rr{r�NN)
rrr�rFrYrBrr@r�rurvrhr��r6r�r�r�logrs     @r �'test_record_override_showwarning_beforez9CatchWarningTests.test_record_override_showwarning_before�s����#���{�{����	#�
�
�
�t�]�I�
>��$�$�D��$�>�#�� � ��!1�!1�9�=��!�!�(�+��	�	�$��	?�
�M�M�$�*�*�I�6�?�	
����S��1�c�*�����Q����,�,�Q�/��6������$�?�>��?�
>�s#�D�?D	�$D�	D	�D�Dc�t��d}|j}g�d�fd�	}|j|d��5}|jd�||_|j	|�ddd�|jt
��d��|j�djd|�|jg�y#1swY�ZxYw)	Nrc�(���j|�yrer�rs      �r rzLCatchWarningTests.test_record_override_showwarning_inside.<locals>.my_logger�r r)Tr�rr{rr!)rrFrrBr@rurvr�r"s     @r �'test_record_override_showwarning_insidez9CatchWarningTests.test_record_override_showwarning_inside�s����#���{�{����	#��
 �
 ��T�
 �
:�c����h�'�(�D���I�I�d�O�;�
	
����V��a��0����������*�D�1�����b�!�;�
:�s�*B.�.B7c�r�|j}|tjdur|jd�t	j
d��5}|j
|jg�|jd�|jd�|j
t|j�d�|jd�|j
t|j�d�|j
t|jdj�d�|j
t|jd	j�d�|j�|j
|jg�ddd�t	j
�5	ddd�t	j
dtf�5|jd�ddd�|jt�5t	j
d
t f�5	ddd�ddd�|jt�5t	j
dt f�5|jd�ddd�ddd�y#1swY��xYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY�NxYw#1swYyxYw)Nrz,module to test is not loaded warnings moduleF��quietrr�r!rr{r�)rrr2�skipTestr�check_warningsrurrr@r�rh�resetr]r^�AssertionError�RuntimeWarning)r6r�r`s   r �test_check_warningsz%CatchWarningTests.test_check_warnings�s����{�{���s�{�{�:�.�.��M�M�H�I�
�
+�
+�%�
8�A����Q�Z�Z��,����h�'��I�I�e�����S����^�U�3��I�I�e�����S����^�U�3����S����A��!6�!6�7��?����S����A��!6�!6�7��?�
�G�G�I����Q�Z�Z��,�9��
+�
+�
-��.��
+�
+�U�K�,@�
A��I�I�e��B��
�
�~�
.� �/�/��^�0D�E��F�/��
�
�~�
.� �/�/���0G�H��	�	�%� �I�/�
.�-9�
8��.�
-��B�
A��F�E��/�
.��
I�H��/�
.�sm�	D*I%�I1�4I=�#J�?J	�J�&J-�J!�J-�%I.�1I:�=J�	J	�J�J�!J*	�&J-�-J6N)r%r&r'r:rrrrr$r'r0r(r)r r	r	|s(�� �
:�>�*9�6�$%�2"�(!r)r	c��eZdZeZy)�CCatchWarningTestsNrNr(r)r r2r2rPr)r2c��eZdZeZy)�PyCatchWarningTestsNrSr(r)r r4r4rUr)r4c��eZdZd�Zd�Zd�Zd�Zd�Zeje
j�dk7d�d��Zy	)
�EnvironmentVariableTestsc�N�tdddd��\}}}|j|d�y)Nrm�2import sys; sys.stdout.write(str(sys.warnoptions))�ignore::DeprecationWarningr���PYTHONWARNINGS�
PYTHONDEVMODEs['ignore::DeprecationWarning']�r	rur�s    r �test_single_warningz,EnvironmentVariableTests.test_single_warnings1��-�d�@�7�����F�F�	
����!B�Cr)c�N�tdddd��\}}}|j|d�y)Nrmr8z1ignore::DeprecationWarning,ignore::UnicodeWarningr�r:�8['ignore::DeprecationWarning', 'ignore::UnicodeWarning']r=r�s    r �test_comma_separated_warningsz6EnvironmentVariableTests.test_comma_separated_warningss4��-�d�@�N�����F�F�	
����G�	Ir)c�P�tddddd��\}}}|j|d�y)Nz-Wignore::UnicodeWarningrmr8r9r�r:r@r=r�s    r �test_envvar_and_command_linez5EnvironmentVariableTests.test_envvar_and_command_line's7��-�.H�$�@�7�����F�F�	
����G�	Ir)c��tddddd��\}}}|j|d�|j|j�gd��y)	Nz-Werror::DeprecationWarningrmzjimport sys, warnings; sys.stdout.write(str(sys.warnoptions)); warnings.warn('Message', DeprecationWarning)zdefault::DeprecationWarningr�r:s<['default::DeprecationWarning', 'error::DeprecationWarning'])s"Traceback (most recent call last):s&  File "<string>", line 1, in <module>sDeprecationWarning: Message)r
rur�r�s    r �(test_conflicting_envvar_and_command_linezAEnvironmentVariableTests.test_conflicting_envvar_and_command_line/sX��2�3P�RV�
;�8��	���F�F�
	
����K�	M�����*�*�,�
-�	.r)c	��|jtu}tjrg}nN|rt	j
d�}nd}ddt|dfddtddfddtddfddtddfddtddfg}|D�cgc]}t|�j���}}|rd}nd}|dz
}td|d	�
�\}}}	|j�D�
cgc]}
|
j���}}
d|_|j!||�ycc}wcc}
w)N�__main__r�rrszPimport sys; sys.modules.pop('warnings', None); sys.modules['_warnings'] = None; r�z5import warnings; [print(f) for f in warnings.filters]rmT)�
__isolated)rrTr�Py_DEBUGr%r�r+�PendingDeprecationWarning�
ImportWarning�ResourceWarningr��encoder	r�rt�maxDiffru)r6�pure_python_api�expected_default_filters�main_module_filterri�expected_output�coderpr�rnr��stdout_liness            r �!test_default_filter_configurationz:EnvironmentVariableTests.test_default_filter_configuration<s!���+�+��4�����')�$��%'�Z�Z�
�%;�"�%/�"��D�"4�6H�!�L��4�!3�T�1�=��4�!:�D�!�D��4���a�8��4��$��:�(�$�5M�M�4L�q�3�q�6�=�=�?�4L��M��e�D��D��G�G��-�d�D�T�J���F�F�17�1B�1B�1D�E�1D���
�
��1D��E���������7��N��Fs�8 C=�
D�asciiz%requires non-ascii filesystemencodingc��dtjz}tddd|d��\}}}|j|t	|g�j��y)Nzignore:DeprecationWarningrmr8r�r�)r�r;r<)r�FS_NONASCIIr	rur�rM)r6r;rpr�rns     r �
test_nonasciiz&EnvironmentVariableTests.test_nonascii[sV��3�Y�5J�5J�J��-�d�@�$�)��	���F�F�
	
�����n�%5�!6�!=�!=�!?�@r)N)
r%r&r'r>rArCrErUr-�
skipUnlessr�getfilesystemencodingrYr(r)r r6r6sY��D�I�I�.�8�>�X���2��2�2�4��?�@�B�A�B�Ar)r6c��eZdZeZy)�CEnvironmentVariableTestsNrNr(r)r r]r]frPr)r]c��eZdZeZy)�PyEnvironmentVariableTestsNrSr(r)r r_r_irUr)r_c� �eZdZdZeZd�Zd�Zy)�_DeprecatedTestzTest _deprecated().c���d}gd�}|D]q}d|d�d|d��}|tf}|j|��5tj|d�	�5|jjd
||��ddd�ddd��sd}d
}tj|tfd�	�5|jjd
d|��ddd�y#1swY�\xYw#1swY��xYw#1swYyxYw)N�r��r�finalr))r��)r�rd)r�r)r�rfz.*test_warnings.*rz\.r{��removeFr)�
test_warnings�rh�_version)r�rdr�alpharz.*test_warnings.*3\.11�r�rd)r+�subTestrr,r�_deprecated)r6rtr�rhr��filters      r �test_warningz_DeprecatedTest.test_warningss���(��2���F�&�v�a�y�k��F�1�I�;�?�C��,�,�F����V��,�$�3�3�F�%�H��K�K�+�+�O�F�5<�,�>�I�-�,��)��'��
�
+�
+�S�2D�,E�U�
S��K�K�#�#�O�G�-4�
$�
6�T�
S�
I�H��-�,��T�
S�s/�C�C�+C�C�C�C�C	�C'c��d}gd�}|D]Y}|j|��5|jt�5|jj	d||��ddd�ddd��[dD]`}ddd	|d	f}|j|�
�5|jt�5|jj	dd|��ddd�ddd��by#1swY�yxYw#1swY��xYw#1swY�,xYw#1swY��xYw)Nrc))r�r)r�rf)r��
rgrirj)�beta�	candidaterer�rdr)�releaselevelrm)rnr^rrro)r6rtr�rh�levels     r �test_RuntimeErrorz!_DeprecatedTest.test_RuntimeError�s���(��)���F����V��,��&�&�|�4��K�K�+�+�O�F�5<�,�>�5�-�,��
4�E��"�a���*�G����5��1��&�&�|�4��K�K�+�+�O�G�5<�,�>�5�2�1�4�5�4��-�,��5�4��2�1�sF�C�C�C�C/�C#�8C/�C�C�C 	�#C,�(C/�/C8	N)r%r&r'r:rrrqrxr(r)r rarams���
�F�6�"
>r)rac��eZdZd�Zy)�
BootstrapTestc	���tj�5}tjd�5tdd|��tdddd|��ddd�ddd�y#1swY�xYw#1swYyxYw)N�	encodingsrmrn)�
PYTHONPATHz-Wr)r�temp_cwdr	)r6�cwds  r �test_issue_8766zBootstrapTest.test_issue_8766�sW���
�
�
!�S�)�*<�*<�[�*I��T�6�c�:�
�T�6�4��c�J�+J�
!�
!�*I�*I��
!�
!�s"�A'�A�
A'�A$	� A'�'A0N)r%r&r'r�r(r)r rzrz�s��	Kr)rzc��eZdZd�Zd�Zy)�FinalizationTestc��d}td|�\}}}|j|j�j�d�y)Nzk
import warnings
warn = warnings.warn

class A:
    def __del__(self):
        warn("test")

a=A()
        rmz<string>:7: UserWarning: test)r	rur��rstrip)r6rSrprqr
s     r �test_finalizationz"FinalizationTest.test_finalization�s?��	��(��d�3���C���������,�,�.�8�	:r)c��d}dtz}tdd|�\}}}|j|j|�t	|��dtz}tdd|�\}}}|j|j|�t	|��y)Ns&sys:1: ResourceWarning: unclosed file zf = open(%a)r�rmzimport warnings; f = open(%a))r�r	rG�
startswithrV)r6r�rSrprqr
s      r �test_late_resource_warningz+FinalizationTest.test_late_resource_warning�s��=����(��'��t�T�:���C��������x�0�%��*�=�/��9��'��t�T�:���C��������x�0�%��*�=r)N)r%r&r'r�r�r(r)r r�r��s��:�">r)r�c�|�tjj�tjj�yre)rTr}rrOr(r)r �setUpModuler��s&�����"�"�$����!�!�#r)rG)@�
contextlibrr�r�r��iorr%rrrBr-r�r�test.supportrrr�test.support.script_helperr	r
�test.test_warnings.datarr
rrr�import_fresh_modulerTrOr!r�r#r+r=�TestCaserMrRrWr�r�r�rUr]rarirkrxr�r�r�r	r2r4r6r]r_rarzr�r��tearDownModuler%�mainr(r)r �<module>r�s���%��	���	�
�����&�"�(�N�2�?�$�0�m�/�/�
�9D�
�G��
.�]�
.�
.�z�6A�]�D�
��*��*�0	�'�	�)�)�8-�X�-��n�h�&7�&7���~�x�'8�'8��e5�(�e5�N	�;�� 1� 1���K��!2�!2��iB��iB�V	@��H�-�-�@�?�)�X�.�.�?� >�H� >�F�]�H�$5�$5��1�m�X�%6�%6�1�(uH�X�x�0�0�uH�p=?�8�=?�@�0�(�2C�2C��.+�1�8�3D�3D�.+�bQ!��Q!�f�*�H�,=�,=���+�X�->�->��NA�x�NA�`� 8�(�:K�:K���!9�8�;L�;L��$>�h�� 1� 1�$>�NK�H�%�%�K�!>�x�(�(�!>�H$����z���H�M�M�O�r)

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists