Sindbad~EG File Manager

Current Path : /proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/
Upload File :
Current File : //proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/test_struct.cpython-312.opt-2.pyc

�

'Μg���2�ddlmZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZddlm
Z
ddlmZej dk(ZdZdZefd	�Zd
�Zd�ZGd�d
ej.�ZGd�dej.�Zedk(rej6�yy)�)�abcN)�support)�
import_helper)�assert_python_ok�big)�b�B�h�H�i�I�l�L�q�Q�n�N)��@�=�<�>�!c#�NK�tD]}|D]}|dvr|dvr�||f����y�w)N�rr)rr)�
integer_codes)�
byteorders�code�	byteorders   �-/usr/local/lib/python3.12/test/test_struct.py�iter_integer_formatsr!s6������#�I���*�t�z�/A���	�/�!�$��s�#%c��|ddd�S)N����)�ss r �string_reverser&s���T�r�T�7�N�c�(�tr|St|�S�N)�ISBIGENDIANr&)�values r �bigendian_to_nativer,s������e�$�$r'c�D�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zej.d��Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zej.d��Z d�Z!ej.d��Z"ej.d��Z#d �Z$y!)"�
StructTestc�d�|jtjdd�ddk(t�y)Nz=i�r)�assertEqual�struct�packr*��selfs r �test_isbigendianzStructTest.test_isbigendian%s'�����&�+�+�d�A�.�q�1�Q�6��Er'c�L�|jtjtjd�tjd�}|j	|dztjd��d}d}tj|�}tj|�}|j	|dz|�|jtjtj
dd�|jtjtj
dddd�|jttjftj
dd�|jttjftj
dd�|jtjtjd	d
�tj
ddd
�}|jtjtjd|�|jtjtjd|�y)N�Zr��iiizcbxxxxxxhhhhiillffd?z3c3b18x12h6i6l6f3d3?�foo�P�dsflap�iir0�)�assertRaisesr2�error�calcsizer1r3�	TypeError�unpack)r5�sz�fmt�fmt3�sz3r%s      r �test_consistencezStructTest.test_consistence(se�����&�,�,�����=�
�_�_�S�
!������a������!7�8�$��%��
�_�_�S�
!���o�o�d�#������a���%����&�,�,����U�A�>����&�,�,����S�!�Q��B����9�f�l�l�3�V�[�[�#�u�M����9�f�l�l�3�V�[�[�#�u�M����&�,�,��
�
�s�G�D��K�K��a��#�����&�,�,��
�
�u�a�@����&�,�,��
�
�s�A�>r'c
�J�d}d}d}d}d}d}d}d}dD�]
}	d	D�]}
|	|
z}
tj|
||||||||�	}tj|
|�\}}
}}}}}}|j||�|j|
|�|j||�|j||�|j||�|jt	d
|z�t	d
|z��|jt	d
|z�t	d
|z��|j||�����y)N�ar0�i��igo���!	@T)rrrrrr)z	xcbhilfd?z	xcBHILfd?�d)r2r3rDr1�int)r5�crr
rr�fr=�t�prefix�formatr%�cp�bp�hp�ip�lp�fp�dp�tps                    r �test_transitivenesszStructTest.test_transitiveness=s&����
��������������3�F�4���&����K�K���1�a��A�q�!�Q�?��17���v�q�1I�.��B��B��B��B�� � ��Q�'�� � ��Q�'�� � ��Q�'�� � ��Q�'�� � ��Q�'�� � ��S�2�X���C�!�G��=�� � ��S�2�X���C�!�G��=�� � ��Q�'�5�4r'c�<�gd�d�d�d�d�d�d�d�d	�d
�d�d�d
�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d �d!�d"�d#�d$�d%�d&�d'�d(�d)gd*d*d+f�d,�}|D]�\}}}}}d-|z|fd.|z|fd/|z|fd0|ztxr|xs|ffD]�\}}tj||�}	|j|	|�|jtj|�t|	��tj||	�d1}
|
|k7s�{|j|�����y)2N)rOrKrKrKr)�xcrK�ar_r)�cxrK�arar)r%rKrKrKr)�0s�
helloworldr'r'r0)�1src�hrer0)�9src�	helloworlrgr0)�10srcrcrcr)�11src�helloworldrjr0)�20src�helloworldrlr0)�0prcr'r'r0)�1prc�ror0)�2prc�hrqr0)�10prc�
	helloworlrsr0)�11prc�
helloworldrur)�12prc�
helloworldrwr0)�20prc�
helloworldryr0)r��r{r)ri������r|r)r	rzr{r{r)r	�r|r|r)r
�����r)r
iD�����D�D�r)rr~rr�r)riD�r�r�r)r�,�,���,r)r�����������r)r
r�r�r�r)r
��b�wr�r�r)rr�r�r�r)rr�r�r�r)rr�r�r�r)rr�r�r�r)rP�@s@s@r)r=r�s@s@r)rP��s�s�r)r=r�s�s�r)�?rroror)r�r9�r�r0)r�Tr�r�rr�ror0)r�)r0r�r�r0rrrrr)r*r2r3r1rB�lenrD�
assertTrue)r5�testsrF�argr�lil�asy�xfmt�exp�res�revs           r �test_new_featureszStructTest.test_new_featuresUs���-
�&�-
�+�-
�
,�-
�
'�	-
�

/�-
�
1�
-
�
A�-
�
D�-
�
H�-
�
V�-
�
/�-
�
7�-
�
9�-
�
J�-
�
L�-
� 
P�!-
�"
\�#-
�$
&�%-
�&
+�'-
�(
&�)-
�*
,�+-
�,
4�--
�.
/�/-
�0
4�1-
�2
6�3-
�4
C�5-
�6
J�7-
�8
C�9-
�:
U�;-
�<
C�=-
�>
J�?-
�@
C�A-
�B
U�C-
�D
>�E-
�F
<�G-
�J
E�K-
�L
@�M-
�P
&�Q-
�R
&�S-
�T
)�U-
�V�"�e�U�A�&�W-
�X
)�Y-
��^(-�#�C��c�3��!$�S��#���S��#���S��#��!$�S��+�*=�#�*D�� E� G���s��k�k�$��,��� � ��c�*�� � �����!6��C��A��m�m�D�#�.�q�1���#�:��O�O�C�(� G�(-r'c��ddddddddddd�
}td�D]4\}}||z}tj|�}|j|||��6d}|D]Q}dD]J}tj||d	z�}tj||dz�}	|j||	��L�S|jtjd
�d�|j	dtjd��|j	dtjd��|j	tjd�tjd
��|j	tjd
�tjd��|j	dtjd��|j	tjd�tjd��|jtjd�tjd
��|jtjd�tjd��y)Nr0r?��)
rr	r
rrr
rrrr�rrrr)�bB�hH�iI�lL�nN�qQrrrr
rrrrr<)r!r2rBr1�assertLessEqual�assertGreaterEqual)
r5�
expected_sizerrrS�size�native_pairs�format_pair�signed_size�
unsigned_sizes
          r �
test_calcsizezStructTest.test_calcsize�s��������������
� 4�4H�I�O�D�)��t�^�F��?�?�6�*�D����T�=��#6�7� J�:��'�K�$�	�$�o�o�i�+�a�.�.H�I�� &���	�K��N�0J� K�
�� � ��m�<�%�(�	
�������-�q�1����Q����� 4�5����Q����� 4�5����V�_�_�S�1�6�?�?�3�3G�H����V�_�_�S�1�6�?�?�3�3G�H����Q����� 4�5����V�_�_�S�1�6�?�?�3�3G�H�������� 4�f�o�o�c�6J�K�������� 4�f�o�o�c�6J�Kr'c�����ddl�G���fd�dtj��t�D]"\}}||z����}|j	��$y)Nrc�x���eZdZ��fd�Zej
ejW�jfd�Z�fd�Z	�xZ
S)�+StructTest.test_integers.<locals>.IntTesterc�V��t�|�d��||_|d|_|dd|_|jt
vrt
d|jz��tj|�|_	|jdz|_
|jtd�vr:d|_d|jd	z
z|_
d|jd	z
zd	z
|_y|jtd
�vr&d|_d|_
d|jzd	z
|_yt
d
|jz��)N�test_one)�
methodNamer#z"unrecognized packing byteorder: %sr��bhilqnTr?r0�BHILQNFrzunrecognized format code: %s)�super�__init__rSrrr�
ValueErrorr2rB�bytesize�bitsize�tuple�signed�	min_value�	max_value)r5rS�	IntTester�	__class__s  ��r r�z4StructTest.test_integers.<locals>.IntTester.__init__�s����i��/�:�/�F�$���"�2�J��	�!'�������~�~��3�$�%I�%)�^�^�&4�5�5� &���� 7��
�#�}�}�q�0����9�9��h��/�"&�D�K�'(�4�<�<��>�':�%;�D�N�%&����a��%8�1�%<�D�N��Y�Y�%��/�1�"'�D�K�%&�D�N�%&����_�q�%8�D�N�$�%C�%)�Y�Y�&/�0�0r'c�:�|j}|j|cxkr|jk�rBn�n>|}|jr|dkr|d|jzz
}|j|d�d|z}t
|�dzrd|z}|jd�}||�}d|jt
|�z
z|z}|jdk(s|jdvrtst|�}|jt
|�|j�|||�}|j||�|||�d}|j||�|jtjt f||d	|z�y|jt"t$tjf|||�y)
Nrr0z%x�0�asciiror)rrrr�)rSr�r�r�r�r�r��encoder�rr*r&r1r@r2rArC�
OverflowErrorr�)	r5�xr3rD�	unhexlifyrS�expected�got�	retrieveds	         r r�z4StructTest.test_integers.<locals>.IntTester.test_one�ss�������>�>�Q�8�$�.�.�8� �H��{�{�q�1�u� �A����$5�5���+�+�H�a�8�#�h��H��8�}�q�(�#&��>��'���w�7�H�(��2�H� '�4�=�=�3�x�=�+H� I� (�!)�H����#�-����.�8��#1�(�#;���$�$�S��]�D�M�M�B��v�q�/�C��$�$�S�(�3�!'�v�s� 3�A� 6�I��$�$�Q�	�2��%�%�v�|�|�Y�&?���AH�3��P��%�%�}�j�&�,�,�&O�&*�F�A�7r'c�H��ddlm}g}t|jdz�D]}|j	d|z��t|j�D]=}d}t|j
�D]}|dz|d�z}�|j	|��?|j
ddtjd	zg�|D])}||fD]}d
D]}||z}	|j|	���!�+Gd�d�}
Gd
�dt�}Gd�dt�}|jttjftj|j d�|jttjftj|j |�|jttjftj|j d�|jttjftj|j |
��|jttjftj|j |��|d�|d�|d�|d�|d�|d�fD]}
	tj�|
��|d�|d�|d�|ddi�|gd��fD]B}
|jttjftj|j |
��Dy#|j#d�Y��xYw)Nr)�	randranger9r0r��i,i`�
r�)r#rr0c��eZdZd�Zy)�AStructTest.test_integers.<locals>.IntTester.run.<locals>.NotAnIntc��y�N�*r$r4s r �__int__zIStructTest.test_integers.<locals>.IntTester.run.<locals>.NotAnInt.__int__���!r'N)�__name__�
__module__�__qualname__r�r$r'r �NotAnIntr�s��"r'r�c��eZdZd�Zd�Zy)�BStructTest.test_integers.<locals>.IntTester.run.<locals>.Indexablec��||_yr)��_value)r5r+s  r r�zKStructTest.test_integers.<locals>.IntTester.run.<locals>.Indexable.__init__s	��&+��r'c��|jSr)r�r4s r �	__index__zLStructTest.test_integers.<locals>.IntTester.run.<locals>.Indexable.__index__s��#�{�{�*r'N)r�r�r�r�r�r$r'r �	Indexabler�s��,�+r'r�c��eZdZd�Zd�Zy)�AStructTest.test_integers.<locals>.IntTester.run.<locals>.BadIndexc��t�r))rCr4s r r�zKStructTest.test_integers.<locals>.IntTester.run.<locals>.BadIndex.__index__"s��'�r'c��yr�r$r4s r r�zIStructTest.test_integers.<locals>.IntTester.run.<locals>.BadIndex.__int__%r�r'N)r�r�r�r�r�r$r'r �BadIndexr�!s��(�"r'r�za stringy@E@�
�r�rM�z:integer code pack failed on object with '__index__' methodrKr�a)r0r?r9)�randomr��ranger��appendr��extend�sys�maxsizer��objectr@rCr2rAr3rS�fail)r5r��valuesr�r�val�j�base�incrr�r�r�r��objrSs              �r �runz/StructTest.test_integers.<locals>.IntTester.run�s����,��� �����!1�2�C��M�M�!�s�(�+�3��t�|�|�,�A��C�"�4�=�=�1��"�a�x�9�S�>�9��2��M�M�#�&�	-��
�
�s�F�C�K�K��M�:�;�#�D� $�u�d�{��$,�D� #�d�
�A� �M�M�!�,�%-� +�#�"�"�+��+�"�v�"��!�!�9�f�l�l�";�"(�+�+�t�{�{�",�.��!�!�9�f�l�l�";�"(�+�+�t�{�{�"+�-��!�!�9�f�l�l�";�"(�+�+�t�{�{�"'�)��!�!�9�f�l�l�";�"(�+�+�t�{�{�"*�*�.��!�!�9�f�l�l�";�"(�+�+�t�{�{�"*�*�.�
&�a�L�)�B�-��2��%�b�M�9�S�>�9�S�>�K�C�=����F�C�0�K�&�d�O�Y�s�^�Y�t�_�%�s�A�h�/��9�1E�G�C��%�%�y�&�,�,�&?�&,�k�k�4�;�;�&)�+�G��=��	�	�#<�=�s�L�L!)r�r�r�r�r2r3rDr�r�r��
__classcell__)r�r��binasciirSs@���r r�r��s3���
0�,(.�{�{�)/���,4�,>�,>�$
7�LR
+�R
+r'r�)r��unittest�TestCaser!r�)r5rrrQr�r�rSs    @@@r �
test_integerszStructTest.test_integers�sP����O	+�O	+��)�)�O	+�b 4�5�O�D�)��t�^�F��&�!�A�
�E�E�G� 6r'c�����fd�}dD]U}dD]N}||z}|tj|�|tj|d�|tj|d��P�Wy)Nc�����jtj�5}||i|��ddd��jdt	j
��y#1swY�/xYw)Nzbad char in struct format)r@r2rA�assertIn�str�	exception)�func�args�kwargs�cmr5s    �r �assertStructErrorz2StructTest.test_nN_code.<locals>.assertStructErrorOsJ����"�"�6�<�<�0�B��d�%�f�%�1��M�M�5�s�2�<�<�7H�I�1�0�s�	A�A!r�r�rr')r2rBr3rD)r5rrrrSs`    r �test_nN_codezStructTest.test_nN_codeMsV���	J��D�1�	�"�4���!�&�/�/�6�:�!�&�+�+�v�q�9�!�&�-�-���=�	2�r'c��dD]Y\}}}}tj||�}|j||�tj||�\}|j||��[y)N)	)rm�abcr'r')�prror')rnrror')rprsarK)�3prsabsab)�4prsabcr)�5prsabcr)�6prsabcr)�1000ps�xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxs��xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxs�xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)r2r3r1rD)r5r�inputr��expectedbackr�s      r �test_p_codezStructTest.test_p_codeZs]��	4D�/�D�%��<��+�+�d�E�*�C����S�(�+��]�]�4��-�F�S����S�,�/�	4Dr'c���tdd�D]�}d}||dzz
|k7r|dz}||dzz
|k7r�||z
}tjd|�}tjd|�d}|j	||�tjd|�}|j	|t|��tjd|�d}|j	||���d}t
j|d	�}tjd|�}tjd|�d}|j	||�d
}t
j|d�}|jttjd|�y)Nr0�!g�?r�z<frz>fi����hi����g)
r�r2r3rDr1r&�math�ldexpr@r�)r5r��delta�smaller�packed�unpacked�	bigpackedrs        r �test_705836zStructTest.test_705836ksK���!�R�L�D��E�����$��,���������$��,��U�l�G��[�[��w�/�F��}�}�T�6�2�1�5�H�
���T�8�,����D�'�2�I����Y��v�(>�?��}�}�T�9�5�a�8�H����T�8�,�!�$���j�j��h�'�����T�3�'���=�=��v�.�q�1������h�'����j�j��h�'�����-����d�C�@r'c��t�D]j\}}||z}|jtjtj|d�|jtjtj|d��l|jtjtjdd�|jtjtjdd�y)N��?g�?r<)r!r@r2rAr3)r5rrrSs    r �test_1530559zStructTest.test_1530559�s���3�5�O�D�)���%�F����f�l�l�F�K�K���E����f�l�l�F�K�K���E� 6�	
���&�,�,����S�#�>����&�,�,����S�#�>r'c	��d}d}tj|�}ttfD]�}||�}|j	|j|�d�|j	|j|d�d�|j	|j|d�d�t
d�D]+}|j	|j||�|||dzf��-t
dt|�d	z�D].}|jtj|j
||��0��ttfD�]}||�}|j	tj
||�d�|j	tj
||d�d�|j	tj
||d�d�t
d�D]0}|j	tj
|||�|||dzf��2t
dt|�d	z�D]3}|jtjtj
|||��5��|j	|j|d�
�d�y)Ns	abcd01234�4s)sabcdr?)scd01r�)s0123�r0)�buffer�offset)
r2�Struct�bytes�	bytearrayr1�unpack_fromr�r�r@rA)r5�test_stringrFr%�cls�datars       r �test_unpack_fromzStructTest.test_unpack_from�s���"�����M�M�#����9�%�C��{�#�D����Q�]�]�4�0�*�=����Q�]�]�4��3�Z�@����Q�]�]�4��3�Z�@��1�X��� � ����t�Q�!7�$�q��1��+��H���1�c�+�.��2�3���!�!�&�,�,��
�
�t�Q�G�4�&��9�%�C��{�#�D����V�/�/��T�:�J�G����V�/�/��T�1�=�z�J����V�/�/��T�1�=�z�J��1�X��� � ��!3�!3�C��q�!A�D��1�Q�3�K�>�R���1�c�+�.��2�3���!�!�&�,�,��0B�0B�C��q�Q�4�&�	
������k�!��D�#�	%r'c���d}tjdd�}d}tj|�}|j|d|�|j	�dt|�}|j
||�|j|d|�|j	�dt|�dz}|j
||dd|z�tjdd�}|jttjf|j|d|�|jttjf|j|d|�|}|jttjftjd	|d�y)
N�Reykjavik rocks, eow!r�d                                                                                                    �21srr��
          r?r')�arrayr2r&�	pack_into�tobytesr�r1r@r�rArC)r5r*�writable_bufrFr%�from_buf�	small_buf�sbs        r �test_pack_intozStructTest.test_pack_into�sB��.���{�{�3��1�����M�M�#���	
���L�!�[�1��'�'�)�*;�3�{�+;�<������;�/�	
���L�"�k�2��'�'�)�*>�3�{�+;�B�+>�?������;�s��#3�k�#A�B��K�K��W�-�	����:�v�|�|�4�a�k�k�9�a�%�	'����:�v�|�|�4�a�k�k�9�a�%�	'������9�f�l�l�3�V�5E�5E�s�B��	 r'c���d}tjdd�}d��fd�}||d|�|j�dt|�}|j||�||d|�|j�dt|�dz}|j||dd|z�tjdd�}|j	t
tjf||d|�|j	t
tjf||d	|�y)
Nr/rr0r1c�0��tj�g|���Sr))r2r4)rrFs �r �<lambda>z.StructTest.test_pack_into_fn.<locals>.<lambda>�s���&�"2�"2�3�">��">r'rr�r2r?)r3r5r�r1r@r�r2rA)r5r*r6r4r7r8rFs      @r �test_pack_into_fnzStructTest.test_pack_into_fn�s����.���{�{�3��1����>�	�	�,��;�/��'�'�)�*;�3�{�+;�<������;�/�	�,��K�0��'�'�)�*>�3�{�+;�B�+>�?������;�s��#3�k�#A�B��K�K��W�-�	����:�v�|�|�4�i��A�%�	'����:�v�|�|�4�i��A�%�	'r'c��tjdd�}td�}||fD],}tjd|�\}|j	|d��.y)Nr	s4Vxz>IixV4)r3�
memoryviewr2rDr1)r5�data1�data2r,r+s     r �test_unpack_with_bufferz"StructTest.test_unpack_with_buffer�sN�����C�!4�5���.�/���E�N�D��]�]�4��.�F�E����U�J�/�#r'c��Gd�dt�}td�dzD�]�}dggddf}dgd	d
ddd
f}|dt|�zz}tj|g|���}tj
||�}|dt|�zz}tj|g|���}	tj
||	�}
|j
t|�t|
��|j
t|�t|��|D]}|j|��|
D]}|j|��tj|dzd�}|j
t|�tj|dz��t|�dk7r|j|d|z��	tj|dz|��|jd|dzz����dD]*}
|jtj
d|
�d��,y#t$rY���wxYw)Nc��eZdZd�Zy)�+StructTest.test_bool.<locals>.ExplodingBoolc��t�r))�OSErrorr4s r �__bool__z4StructTest.test_bool.<locals>.ExplodingBool.__bool__�s���
r'N)r�r�r�rIr$r'r �
ExplodingBoolrF�s��
r'rJz<>!=)rr$rrr0�test�r#lg���Ar�z encoded bool is not one byte: %r)�msgz2Expected OSError: struct.pack(%r, ExplodingBool()))r�������z>?)r�r�r�r2r3rDr1�assertFalser�rBr�rH)r5rJrR�false�true�falseFormat�packedFalse�
unpackedFalse�
trueFormat�
packedTrue�unpackedTruerQrrOs              r �	test_boolzStructTest.test_bool�s���	�F�	��F�m�E�)�F���B��A�%�E��3���2�|�\�A�D� �3��U��#3�3�K� �+�+�k�:�E�:�K�"�M�M�+�{�C�M��#��D�	�/�1�J����Z�7�$�7�J�!�=�=��Z�@�L����S��Y��L�(9�:����S��Z��]�);�<�"��� � ��#�#�!������"�"��[�[����Q�/�F����S��[�&�/�/�&��*�*E�F��6�{�a��� � ��-O�.4�.5� �6�
?����F�S�L�-�/�:��	�	�-�06���>�?�C*�H?�A��O�O�F�M�M�$��2�1�5�6�?��
�
��
�s�G;�;	H�Hc�l�djtjdz�}|jtj
tj|�djtjdztjdz�}|jtj
tj|�y)Nz{}br0z{}b{}Hr?)rSr�r�r@r2rArB)r5�	hugecount�
hugecount2s   r �test_count_overflowzStructTest.test_count_overflowsl���L�L����Q��/�	����&�,�,�����C��_�_�S�[�[�!�^�S�[�[�!�^�D�
����&�,�,�����Dr'c��tjdd�}|jtjtjd�|jtjtj
dd�|jtjtjd|d�|jtjtjd|d�|jtjtjdd�|jtjtj
dd�|jtjtjd|dd�|jtjtjd|d�|jtjtjd	d
�|jtjtj
d	d�|jtjtjd	|dd
�|jtjtjd	|d�y)Nrr0�12345r'r�c12345r��x�14s42z
spam and eggss
spam and eggs)r3r@r2rAr3rDr4r))r5�stores  r �test_trailing_counterz StructTest.test_trailing_counters������C��*��	
���&�,�,����W�=����&�,�,��
�
�w��D����&�,�,��(8�(8�'�5�!�L����&�,�,��(:�(:�G�U�A�N�	
���&�,�,����X�s�C����&�,�,��
�
�x��F����&�,�,��(8�(8�(�E�1��	 ����&�,�,��(:�(:�H�e��	�	
���&�,�,����W�o�N����&�,�,��
�
�w�*�	,����&�,�,��(8�(8�'�5�!�)�	+����&�,�,��(:�(:�G�U�A�Nr'c�P�tjd�}|jd�y)Nrr>)r2r&r��r5r%s  r �test_Struct_reinitializationz'StructTest.test_Struct_reinitialization5s��
�M�M�#���	�
�
�4�r'c��tjd�}|tjd�|dzzz
}tj|tj
|�|�y)N�2n3P�P3n0Pr0)r�calcobjsizer2rB�check_sizeofr&)r5�
format_str�number_of_codes�	totalsizes    r rnzStructTest.check_sizeof<sJ���'�'��/�	��V�_�_�W�-��1�1D�E�E�	����T�6�=�=��#<�i�Hr'c��tD]}|j|d��|jdd�|jdd�|jdd�|jdd	�|jd
d�|jdd�|jdd�|jd
d�|jdd�|jdd	�y)Nr0�	BHILfdspP�	��BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBi��fdr?�xxxxxxxxxxxxxxr�100H�187srxrbrm�0c)rrn)r5rs  r �test__sizeof__zStructTest.test__sizeof__Cs���!�D����d�A�&�"����+�q�)����*�d�+����$��"����*�A�.����&�!�$����&�!�$����%��#����$��"����$��"����$��"r'c�b�d}|jtj|�5tjdt	d�dd�ddd�d}|jtj|�5tj
dt	d�d�ddd�y#1swY�UxYw#1swYyxYw)Nzkpack_into requires a buffer of at least 6 bytes for packing 1 bytes at offset 5 \(actual buffer size is 1\)rr0rLzounpack_from requires a buffer of at least 6 bytes for unpacking 1 bytes at offset 5 \(actual buffer size is 1\))�assertRaisesRegexr2rAr4r(r)�r5�regex1�regex2s   r �test_boundary_error_messagez&StructTest.test_boundary_error_messageRs���
+�	�
�
#�
#�F�L�L�&�
9����S�)�A�,��1�5�:�
+�	�
�
#�
#�F�L�L�&�
9����s�I�a�L�!�4�:�
9�:�
9��:�
9�s�"B�/!B%�B"�%B.c�~�td�}|jtjd�5tjd|dd�ddd�|jtjd�5tjd|dd�ddd�|jtjd	�5tj
d|d�ddd�|jtjd�5tj
d|d�ddd�y#1swY��xYw#1swY��xYw#1swY�bxYw#1swYyxYw)
Nr�z%no space to pack 4 bytes at offset -2�<I����{z*offset -11 out of range for 10-byte bufferz<Bi����z.not enough data to unpack 4 bytes at offset -2)r(r}r2rAr4r))r5�	byte_lists  r �0test_boundary_error_message_with_negative_offsetz;StructTest.test_boundary_error_message_with_negative_offsetcs���b�M�	�
�
#�
#����8�:�
���T�9�b�#�6�:�
�
#�
#����<�>�
���T�9�c�3�7�>�
�
#�
#����A�C�
���t�Y��3�C�
�
#�
#����<�>�
���t�Y��4�>�>�:�:��
>�>��
C�C��
>�>�s/�D�-D�.D'�.D3�D�D$�'D0�3D<c��dttjdz�zdzttj�zdz}|jtj
|�5t	jdtd�tjd�ddd�dttjdz�zd	zttj�zdz}|jtj
|�5t	jdtd�tj�ddd�y#1swY��xYw#1swYyxYw)
Nz(pack_into requires a buffer of at least r�z% bytes for packing 4 bytes at offset z \(actual buffer size is 10\)r�r�r0z*unpack_from requires a buffer of at least z' bytes for unpacking 4 bytes at offset )	r�r�r�r}r2rAr4r(r)r~s   r �-test_boundary_error_message_with_large_offsetz8StructTest.test_boundary_error_message_with_large_offsetys���
8�#�c�k�k�A�o�:N�N�4�
5�7:�3�;�;�7G�
H�,�
-�	�
�
#�
#�F�L�L�&�
9����T�9�R�=�#�+�+�q�A�:�
:�C����a��<P�P�6�
7�9<�S�[�[�9I�
J�,�
-�	�
�
#�
#�F�L�L�&�
9����t�Y�r�]�C�K�K�@�:�
9�:�
9��:�
9�s� 0D/�7/D;�/D8�;Ec���|jt�5tjdd�ddd�|j	tjdd�d�y#1swY�0xYw)NrrrK)�a)r@rCr2rDr1r4s r �test_issue29802zStructTest.test_issue29802�sK���
�
�y�
)��M�M�#�q�!�*�	
������s�D�1�:�>�*�
)�s�A�A%c��tjd�}|j|jd�tj|jj	��}|j|j|j�y)Nz=i2H)r2r&r1rSr�)r5r%�s2s   r �test_format_attrzStructTest.test_format_attr�sW���M�M�&�!��������6�*��]�]�1�8�8�?�?�,�
-��������A�H�H�-r'c���d}td|�\}}}|j|d�|j|j�d�|jd|�|jd|�y)Nz�if 1:
            import struct

            class C:
                def __init__(self):
                    self.pack = struct.pack
                def __del__(self):
                    self.pack('I', -42)

            struct.x = C()
            z-crr'sException ignored in:s	C.__del__)rr1�rstripr�)r5r�rc�stdout�stderrs     r �)test_struct_cleans_up_at_runtime_shutdownz4StructTest.test_struct_cleans_up_at_runtime_shutdown�sa��
��.�d�D�9���F�F�����Q���������#�.��
�
�.��7��
�
�l�F�+r'c���tjd�}tj|�}|j	d�~tj�|j|�d�y)N�_structrz(_struct module was not garbage collected)r�import_fresh_module�weakref�refrB�gc�collect�assertIsNone)r5�_struct_module�
module_refs   r �'test__struct_reference_cycle_cleaned_upz2StructTest.test__struct_reference_cycle_cleaned_up�sU��
'�:�:�9�E���[�[��0�
�����$��	�
�
������L�D�	Fr'c�$�tj}ttjdd��}||fD]B}|j	|��5|jt�5d|_ddd�ddd��Dy#1swY�xYw#1swY�[xYw)Nrrc)r+r0)r2r&�type�iter_unpack�subTestr@rCr�)r5r&�unpack_iteratorr+s    r �test__struct_types_immutablez'StructTest.test__struct_types_immutable�ss�������v�1�1�#�t�<�=���O�,�C����#��&��&�&�y�1��C�E�2�'�&�-�1�1��'�&�s$�	B�A:�'B�:B�?B�B	c��dD]@}|jtjd�5tj|�ddd��By#1swY�MxYw)N)�z2irozembedded null character)r}r2rArBrhs  r �test_issue35714zStructTest.test_issue35714�sI��$�A��'�'����(A�C�����"�C�C�%�C�C�s�A�A	c����fd�}dD]$}dD]}|||d��dD]}|||d���&d}|d|d�d	}|d|d�y)
Nc���||z}tj|�}|rd|dzzdz
}d}nd|dzdz
zdz
}d|dzdz
z}d|�d|�d|��}td�|dz
|dztd	�fD]]}�
j||�
�5�
j	tj
|�5tj||�ddd�ddd��_d}d}	�
j||	�
�5�
j	tj
|�5tj||	�ddd�ddd�y#1swY�sxYw#1swY��xYw#1swY�*xYw#1swYyxYw)
Nr?r�r0r�'z' format requires z <= number <= g�d~�Q�g�d~�QJ)ro�numberz#required argument is not an integerr)r2rBrNr�r}rAr3)rR�int_type�is_unsigned�fmt_strr��max_�min_�	error_msgr��
not_numberr5s          �r �test_error_msgz2StructTest.test_issue98248.<locals>.test_error_msg�sT����x�'�G��?�?�7�+�D���T�A�X���*�����T�A�X��\�*�Q�.���d�Q�h��l�+�+���H�:�%7��v�^�D�6�R�I��u�:�t�a�x����3�t�9�E���\�\�W�V�\�D��/�/����i�H����G�V�4�I�E�D�F�>�I��J�������D��+�+�F�L�L�)�D��K�K���4�E�E�D�	I�H��E�D��E�D��E�D�sH�!D;�&D/�=D;�&!E�E�E�/D8�4D;�;E	�E	�E�E�@=<>�BHILQT�bhilqFrrrr$)r5r�rRr�s`   r �test_issue98248zStructTest.test_issue98248�sd���	5�(�F�#���v�x��6�$�#���v�x��7�$�����s�H�d�+����s�H�e�,r'c�z���Gd�d����fd�}dD]}dD]
}|||z���|d�|d�y)Nc��eZdZd�Zy)�:StructTest.test_issue98248_error_propagation.<locals>.Div0c��ddzy)Nr0rr$r4s r r�zDStructTest.test_issue98248_error_propagation.<locals>.Div0.__index__�s	���A�r'N)r�r�r�r�r$r'r �Div0r��s��
r'r�c�����j|d��5�jt�5tj|���ddd�ddd�y#1swY�xYw#1swYyxYw)N�ZeroDivisionError)ror)r�r@r�r2r3)r�r�r5s ��r �test_error_propagationzLStructTest.test_issue98248_error_propagation.<locals>.test_error_propagation�sR�������<O��P��&�&�'8�9��K�K����0�:�Q�P�9�9��Q�P�s"�A$�A�A$�A!	�A$�$A-r��
BHILQbhilqrrr$)r5r�rRr�r�s`   @r �!test_issue98248_error_propagationz,StructTest.test_issue98248_error_propagation�sG���	�	�	1�
�F�(��&�v��'8�9�)��	�s�#��s�#r'c��Gd�dtj�}|�}|j|jd�d�y)Nc���eZdZ�fd�Z�xZS)�?StructTest.test_struct_subclass_instantiation.<locals>.MyStructc�$��t�|�d�y)Nz>h)r�r�)r5r�s �r r�zHStructTest.test_struct_subclass_instantiation.<locals>.MyStruct.__init__s����� ��&r')r�r�r�r�r�)r�s@r �MyStructr�s
���
'�
'r'r�i90s09)r2r&r1r3)r5r��	my_structs   r �"test_struct_subclass_instantiationz-StructTest.test_struct_subclass_instantiations4��	'�v�}�}�	'��J�	��������.��<r'N)%r�r�r�r6rIr\r�r�r�rrrr r-r:r>rCr[r_rfrirnr�cpython_onlyr{r�r�r�r�r�r�r�r�r�r�r�r�r$r'r r.r.$s��F�?�*(�0:)�x L�DX�t>�0�"A�B?�%�6 �8'�.0�)7�VE�O�2�I�
���#��#�5�"5�,A�$?�.�,�$
F�
������#�
���-��-�B
���$��$�"=r'r.c�8�eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	y)	�UnpackIteratorTestc�����fd�}tjd�}|jd�}||�|jd�}||��jtj�5|jd�ddd��jtj�5|jd�ddd�tjd�}�jtj�5|jd�ddd��jtj�5|jd�ddd�y#1swY��xYw#1swY��xYw#1swY�[xYw#1swYyxYw)	Nc����j|tj��j|tj�yr))�assertIsInstancer�Iterator�Iterable)�itr5s �r �_check_iteratorz:UnpackIteratorTest.test_construct.<locals>._check_iterators+����!�!�"�c�l�l�3��!�!�"�c�l�l�3r'�>ibcpr's1234567s123456s12345678rs12)r2r&r�r@rA)r5r�r%r�s`   r �test_constructz!UnpackIteratorTest.test_constructs���	4�
�M�M�'�"��
�]�]�3�
�����
�]�]�:�
&�����
�
�
�v�|�|�
,�
�M�M�)�$�-�
�
�
�v�|�|�
,�
�M�M�+�&�-�
�M�M�#���
�
�
�v�|�|�
,�
�M�M�#��-�
�
�
�v�|�|�
,�
�M�M�%� �-�
,�-�
,��
,�
,��-�
,��
,�
,�s0�-E�&E�4E �-E,�E�E� E)�,E5c��ttjd�jd��}|j	t
|�y)Nr�r')r�r2r&r�r@rC)r5�iter_unpack_types  r �test_uninstantiablez&UnpackIteratorTest.test_uninstantiable(s2����
�
�g� 6� B� B�3� G�H�����)�%5�6r'c��tjd�}ttdd��}|j	|�}|jt
|�d�|jt
|�d�|jt
|�d�|jtt|�|jtt|�y)N�>IBr0��irL�i	r�)i
�)	r2r&r'r�r�r1�nextr@�
StopIteration�r5r%rr�s    r �test_iteratezUnpackIteratorTest.test_iterate,s����M�M�%� ���%��2�,���
�]�]�1�
������b��?�3�����b��#3�4�����b��#3�4����-��r�2����-��r�2r'c�d�tjd�}ttdd��}|j	t|��}|j
t|�d�|j
t|�d�|jtt|�|jtt|�y�Nr�r0�r�r�)
r2r&r'r�r�r@r1r�r@r�r�s    r �test_arbitrary_bufferz(UnpackIteratorTest.test_arbitrary_buffer6s���M�M�%� ���%��2�,���
�]�]�:�a�=�
)������b��?�3�����b��#3�4����-��r�2����-��r�2r'c��tj}tjd�}t	tdd��}|j
|�}|j||�d�t|�|j||�d�t|�|j||�d�t|�|j||�d�|jtt|�|j||�d�y)Nr�r0r�r9r?r)�operator�length_hintr2r&r'r�r�r1r�r@r�)r5�lhr%rr�s     r �test_length_hintz#UnpackIteratorTest.test_length_hint?s���
�
!�
!���M�M�%� ���%��2�,���
�]�]�1�
������B���#��R������B���#��R������B���#��R������B���#����-��r�2�����B���#r'c	�.�tjdttdd���}|j	t|�d�|j	t|�d�|j
tt
|�|j
tt
|�yr�)r2r�r'r�r1r�r@r�)r5r�s  r �test_module_funcz#UnpackIteratorTest.test_module_funcNsl��
�
�
��u�U�1�b�\�':�
;������b��?�3�����b��#3�4����-��r�2����-��r�2r'c�R�ddddddddtd	�fd
td�fdg
}|D�]_\}}|ddd
�}|j|tjd|�d�|j|tjd|��|j|tjd|�d�|j|tjd|��t
jdk(rQ|j|tjd|�d�|j|tjd|����|j|tjd|�d�|j|tjd|����bgd�}|D]�\}}|jtjtjd|�d��|jtjtjd|ddd
��d����tjdtj�}|j|ddzd�tjdtj�}|j|ddzd�gd�}	|	D],\}}}|j|tj||���.gd�}
|
D]+\}}|jttj||��-dg}|D],\}}}|j|tj||���.y)N)s<r)s�r�)s�{g��@)s�?)sgp>)�g)s�g�s|z+infs�z-inf)sU5gT�?r#�<er�>e�little�e))r�s�)r�s�)r�s��)r�s|)r�s~)r�s�r0�~))r�sg`>)r�r�g`>)r�r�gP>)r���g�?)r�r�g������?)r��g�?)r�r�r�)r�s<g�?)r��<g�?)r�r�g�?)r��{�i�)r�r�i�)r�s�g`�)r���g`�)r�r�gP�)r�s�g�)r���g�)r�r�g�)r�s��i��))r����@)r���@)r��u�<�7~)r����)r���)r��u�<�7�)r�r�)r�r�)r�r�)r�r)r�r)r�r)r�sg�g�����@)
�floatr1r2rDr3r�rr�r�isnan�nanr@r�)r5�&format_bits_float__cleanRoundtrip_list�le_bitsrP�be_bits�format_bits__nan_list�
formatcode�bitsr� format_bits_float__rounding_list�%format_bits_float__roundingError_list�+format_bits_float__doubleRoundingError_lists            r �test_half_floatz"UnpackIteratorTest.test_half_floatVs���
��"�!�!���
�%��-�(�
�%��-�(�)�2
�.�A�J�G�Q��d��d�m�G����Q��
�
�d�G� <�Q� ?�@����W�f�k�k�$��&:�;����Q��
�
�d�G� <�Q� ?�@����W�f�k�k�$��&:�;��}�}��(�� � ��F�M�M�#�w�$?��$B�C�� � ��&�+�+�c�1�*=�>�� � ��F�M�M�#�w�$?��$B�C�� � ��&�+�+�c�1�*=�>�A�!
��!6��J���O�O�D�J�J�v�}�}�T�4�'@��'C�D�E��O�O�D�J�J�v�}�}�T�4��"��:�'F�q�'I�J�K�!6����T�4�8�8�,��������T�)�4�0����T�D�H�H�9�-��������T�)�4�0�,
�(�,$D��J��a����T�6�;�;�z�1�#=�>�$D�1
�-� C�M�J�����m�V�[�[�*�a�H�C�

7�7
�3�$O��J��a����T�6�;�;�z�1�#=�>�$Or'N)
r�r�r�r�r�r�r�r�r�rr$r'r r�r�s+���!�*7�3�3�
$�3�f?r'r��__main__)�collectionsrr3r�rr�r�r2r�r�rKr�test.supportr�test.support.script_helperrrr*rrr!r&r,r�r.r�r��mainr$r'r �<module>rs�����	����
�
���&�7��m�m�u�$��J�
�
(�
�$.�"��%�g=��"�"�g=�Tn?��*�*�n?�b�z���H�M�M�O�r'

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