HEX
Server: Apache
System: Linux bd12.noc223.com 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: handcraf (1693)
PHP: 8.1.28
Disabled: NONE
Upload Files
File: //opt/alt/python312/lib64/python3.12/test/test_tkinter/__pycache__/widget_tests.cpython-312.pyc
�

}h�e%M���ddlZddlmZmZmZmZddlZe�Z	Gd�de�Z
Gd�d�ZGd�d�ZGd	�d
�Z
d�Zd�Zy)
�N)�AbstractTkTest�
tk_version�pixels_conv�
tcl_obj_eqc���eZdZeZdZdZed��Zd�Z	de
jfd�Ze
ddd�d�Zdd�Zd	�Zd
�Zed�d�Zd
�Zdd�d�Zd�Zd�Zdd�d�Zdd�d�Zd�Zd�Zd�Zd�Zd�Zy)�AbstractWidgetTestNFc��	|jS#t$r9t|jj	dd��|_|jcYSwxYw)N�tk�scaling)�_scaling�AttributeError�float�root�call)�selfs �E/opt/alt/python312/lib64/python3.12/test/test_tkinter/widget_tests.pyrzAbstractWidgetTest.scalingsE��	!��=�=� ���	!�!�$�)�)�.�.��y�"A�B�D�M��=�=� �	!�s��?A�Ac���|js|jrtdk\r|St|t�r%djt
|j|��St|�S)N���� )	�
_stringify�wantobjectsr�
isinstance�tuple�join�map�_str�str)r�values  rrzAbstractWidgetTest._strsK�����4�#3�#3�
�f�8L��L��e�U�#��8�8�C��	�	�5�1�2�2��5�z��c�>�|||�ry|j|||�y�N)�assertEqual)r�actual�expected�msg�eqs     r�assertEqual2zAbstractWidgetTest.assertEqual2s!��
�f�h��������3�/r!)r&�convr(c���|||<|tur|}|r||�}|js|js1t|t�rtj|�}nt|�}|�t}|j||||��|j|j|�||��|j|�}|jt|�d�|j|d||��y)N)r(��)�	_sentinelrrrr�tkinter�_joinrrr)�cget�	configurer$�len)r�widget�namer r&r*r(�ts        r�
checkParamzAbstractWidgetTest.checkParam$s�����t���y� ��H���H�~�H��?�?�$�"2�"2��(�E�*�"�=�=��2���x�=��
�:��B����&��,��R��8����&�+�+�d�+�X�"��=����T�"������Q���#����!�A�$��R��0r!c�$�||}|�|j|�}|jtj�5}|||<ddd�|�%|j	tj�|�|j	|||�|jtj�5}|j||i�ddd�|�%|j	tj�|�|j	|||�y#1swY��xYw#1swY�RxYwr#)�format�assertRaisesr/�TclErrorr$r�	exceptionr2)rr4r5r �errmsg�orig�cms       r�checkInvalidParamz$AbstractWidgetTest.checkInvalidParam8s����d�|�����]�]�5�)�F�
�
�
�w�/�/�
0�	!�B� �F�4�L�	!������S����.��7�������t�,�
�
�
�w�/�/�
0�	,�B����d�E�]�+�	,������S����.��7�������t�,�	!�	!��
	,�	,�s�C:�!D�:D�Dc�<�|D]}|j|||fi|���yr#)r7)rr4r5�values�kwargsr s      r�checkParamszAbstractWidgetTest.checkParamsGs(���	;�E��D�O�O�F�D�%�:�6�:�	;r!c��|j||g|��i|��|j||dd��|j||dd��|j||dd��y)N�zexpected integer but got ""�r=�10pzexpected integer but got "10p"g������	@zexpected integer but got "3.2"�rDr@)rr4r5rBrCs     r�checkIntegerParamz$AbstractWidgetTest.checkIntegerParamKsr��������9��9�&�9����v�t�R�4�	�	6����v�t�U�7�	�	9����v�t�S�7�	�	9r!�r*c��|D]}|j|||fd|i|���|j||dd��|j||dd��y)Nr*rFz)expected floating-point number but got ""rG�spamz-expected floating-point number but got "spam"�r7r@)rr4r5r*rBrCr s       r�checkFloatParamz"AbstractWidgetTest.checkFloatParamTsi���	F�E��D�O�O�F�D�%�E�d�E�f�E�	F����v�t�R�B�	�	D����v�t�V�F�	�	Hr!c���dD]}|j|||d���dD]}|j|||d���|j||dd��|j||d	d
��y)N)Fr�false�no�offr)r&)T��true�yes�onrTrFz!expected boolean value but got ""rGrMz%expected boolean value but got "spam"rN)rr4r5r s    r�checkBooleanParamz$AbstractWidgetTest.checkBooleanParam\s���5�	=�E��O�O�F�D�%�!�O�<�	=�3�	=�E��O�O�F�D�%�!�O�<�	=����v�t�R�:�	�	<����v�t�V�>�	�	@r!)�allow_emptyc�j�|j||ddddddddd	d
fi|��|j||dd�
�y)Nz#ff0000z#00ff00z#0000ffz#123456�red�green�blue�white�black�greyrMzunknown color name "spam"rGrI)rr4r5rYrCs     r�checkColorParamz"AbstractWidgetTest.checkColorParamfsT��������"�I�y�)�����'�6�	#�"�	#�	
���v�t�V�2�	�	4r!c��|j||ddddfi|��|j||d�|j||dd��y)	N�arrow�watch�crossrF�nonerMzbad cursor spec "spam"rG)rDr7r@)rr4r5rCs    r�checkCursorParamz#AbstractWidgetTest.checkCursorParamnsM��������w���"�N�v�N������f�-����v�t�V�/�	�	1r!c�b�d�}|||<|j||�|j||d�y)Nc��yr#�)�argss r�commandz5AbstractWidgetTest.checkCommandParam.<locals>.commandus��r!rF)�
assertTruerD)rr4r5rls    r�checkCommandParamz$AbstractWidgetTest.checkCommandParamts2��	���t������t��%������r�*r!rGc��|j||g|��i|��|�Od|�ddj|dd��t|�dkDrdnd�d|d��}|j||dd	|z�
�d|z}|j||d|�
�y)
Nrz "{}": must be z, �����,rFz or �	ambiguousrG�badrM)rDrr3r@)rr4r5r=rBrC�errmsg2s       r�checkEnumParamz!AbstractWidgetTest.checkEnumParam{s���������9��9�&�9��>���I�I�f�S�b�k�*��v�;��?�C��2��2�J�	 �G�

�"�"�6�4��*5��*?�
#�
A��W�_�F����v�t�V�F��Cr!c�2�|�|j}|D]Z}t}|}t|t�r(|r&|turt	|�|j
z}t}|j|||f||d�|���\|j||dd��|j||dd��y)N�r&r*�6xzbad screen distance "6x"rGrMzbad screen distance "spam")	�_conv_pixelsr.rrrr�roundr7r@)	rr4r5r*rBrCr r&�conv1s	         r�checkPixelsParamz#AbstractWidgetTest.checkPixelsParam�s����<��$�$�D��	2�E� �H��E��%��%��U�#�-�*�5�1�D�L�L�@�H�!�E��D�O�O�F�D�%�
2�(�!&�
2�*0�
2�	2�	
���v�t�T�1�	�	3����v�t�V�3�	�	5r!c
�x�|j||dddddd�d}tdkrd}|j||d	|�
�y)N�flat�groove�raised�ridge�solid�sunkenzHbad relief "spam": must be flat, groove, raised, ridge, solid, or sunkenrrMrG)rDrr@)rr4r5r=s    r�checkReliefParamz#AbstractWidgetTest.checkReliefParam�sR���������8�W�g�x�	Q�?������F����v�t�V��	�	r!c��tj|jd��}|j|||t��|j||dd��d||<y)N�image1)�masterr5rKrMzimage "spam" doesn't existrGrF)r/�
PhotoImagerr7rr@)rr4r5�images    r�checkImageParamz"AbstractWidgetTest.checkImageParam�sQ���"�"�$�)�)�(�C�������e�#��6����v�t�V�4�	�	6���t�r!c�6�|j|||t��y)NrK)r7r)rr4r5�vars    r�checkVariableParamz%AbstractWidgetTest.checkVariableParam�s�������c���4r!c���|j|�|j|t�t|�dk7r|j	d|���|D](}t|t�r�|j	d|���yy)Nr-zInvalid bounding box: )�assertIsNotNone�assertIsInstancerr3�failr�int)r�bbox�items   r�assertIsBoundingBoxz&AbstractWidgetTest.assertIsBoundingBox�se�����T�"����d�E�*��t�9��>��I�I�D�:�;��	�D��d�C�(��	�	��>�?��	r!c���|j�}|j�}|jt|�t|j	���|D]}||�	t
jjrtdddddd�}t|�}t|j�}t||z
�D]:}||vr|||vr|||vr�t|jj�d|�d���<yy)	N�borderwidth�
background�
foreground�invalidcommand�validatecommand)�bd�bg�fg�invcmd�vcmdz.OPTIONS doesn't contain "�")
�create�keysr$�sortedr2�test�support�verbose�set�OPTIONS�print�	__class__�__name__)rr4r��k�aliasesr&s      r�	test_keyszAbstractWidgetTest.test_keys�s���������{�{�}��������v�f�.>�.>�.@�'A�B��	�A��1�I�	��<�<���#�"�"�*�)��G��t�9�D��4�<�<�(�H��D�8�O�,�
8���W����
�d�*���
�h�.���>�>�2�2�A�7�8�	
8� r!r#)r��
__module__�__qualname__r{rz�_conv_pad_pixelsr�propertyrr�object�__eq__r)r.r7r@rDrJrrOrXrargrnrvr}r�r�r�r�r�rjr!rrrs����L����J�
�!��!��26�&�-�-�0�
;D��$�1�(
-�;�9�;@�H�@�<@�4�1�+�<@�D�#�5�$��5��8r!rc�H�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�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-�Z/d.�Z0d/�Z1d0�Z2d1�Z3d2�Z4d3�Z5d4�Z6d5�Z7y6)7�StandardOptionsTests)*�activebackground�activeborderwidth�activeforeground�anchorr��bitmapr��compound�cursor�disabledforeground�exportselection�fontr��highlightbackground�highlightcolor�highlightthicknessr��insertbackground�insertborderwidth�
insertofftime�insertontime�insertwidth�jump�justify�orient�padx�pady�relief�repeatdelay�repeatinterval�selectbackground�selectborderwidth�selectforeground�setgrid�	takefocus�text�textvariable�troughcolor�	underline�
wraplength�xscrollcommand�yscrollcommandc�H�|j�}|j|d�y)Nr��r�ra�rr4s  r�test_configure_activebackgroundz4StandardOptionsTests.test_configure_activebackground������������V�%7�8r!c
�T�|j�}|j|ddddddd�y)Nr�r��������?g333333@r���rH�r�r}r�s  r� test_configure_activeborderwidthz5StandardOptionsTests.test_configure_activeborderwidth��-����������f�&9���c�1�b�%�	9r!c�H�|j�}|j|d�y)Nr�r�r�s  r�test_configure_activeforegroundz4StandardOptionsTests.test_configure_activeforeground�r�r!c
�Z�|j�}|j|ddddddddd	d
�y)Nr��n�ne�e�se�s�sw�w�nw�center�r�rvr�s  r�test_configure_anchorz*StandardOptionsTests.test_configure_anchor�s3����������F�H��T�3��c�4��d�H�	Fr!c��|j�}|j|d�d|jvr|j|d�yy)Nr�r��r�rar�r�s  r�test_configure_backgroundz.StandardOptionsTests.test_configure_background��>����������V�\�2��4�<�<��� � ���.� r!c��|j�}|j|dd�|j|dd�tjj	dd��}|j|dd|z�d|j
jjd	d
�vrd|j
j�vs|j|ddd
��yy)Nr��	questhead�gray50z
python.xbm�
imghdrdata)�subdir�@�aquar
�windowingsystem�AppKitrMzbitmap "spam" not definedrG)
r�r7r�r��findfilerr
r�winfo_serverr@)rr4�filenames   r�test_configure_bitmapz*StandardOptionsTests.test_configure_bitmap�s�������������+�6������(�3��<�<�(�(��l�(�K�������#��.�9��$�)�)�,�,�+�+�D�2C�D�D��D�I�I�2�2�4�4��"�"�6�8�V�6�
#�
8�5r!c
��|j�}|j|ddddddd�d|jvr|j|ddddddd�yy)	Nr�rr��������@rr�rHr�)r�r}r�r�s  r�test_configure_borderwidthz/StandardOptionsTests.test_configure_borderwidthsY����������f�m���c�1�b�%�	9��4�<�<���!�!�&�$��3��Q��E�J� r!c
�T�|j�}|j|ddddddd�y)Nr��bottomr��leftrf�right�topr�r�s  r�test_configure_compoundz,StandardOptionsTests.test_configure_compound
s-����������F�J��(�F�F�G�U�	Dr!c�H�|j�}|j|d�y)Nr�)r�rgr�s  r�test_configure_cursorz*StandardOptionsTests.test_configure_cursor�����������f�h�/r!c�H�|j�}|j|d�y)Nr�r�r�s  r�!test_configure_disabledforegroundz6StandardOptionsTests.test_configure_disabledforegrounds����������V�%9�:r!c�H�|j�}|j|d�y)Nr��r�rXr�s  r�test_configure_exportselectionz3StandardOptionsTests.test_configure_exportselections����������v�'8�9r!c�t�|j�}|j|dd�|j|ddd��y)Nr�z3-Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-*rFzfont "" doesn't existrG)r�r7r@r�s  r�test_configure_fontz(StandardOptionsTests.test_configure_fonts>������������M�	O����v�v�r�&>�	�	@r!c��|j�}|j|d�d|jvr|j|d�yy)Nr�r�r�r�s  r�test_configure_foregroundz.StandardOptionsTests.test_configure_foreground%r�r!c�H�|j�}|j|d�y)Nr�r�r�s  r�"test_configure_highlightbackgroundz7StandardOptionsTests.test_configure_highlightbackground+s����������V�%:�;r!c�H�|j�}|j|d�y)Nr�r�r�s  r�test_configure_highlightcolorz2StandardOptionsTests.test_configure_highlightcolor/s����������V�%5�6r!c	��|j�}|j|dddddd�|j|ddd|j��y)	Nr�rr�r
rrHr�rx)r�r}r7rzr�s  r�!test_configure_highlightthicknessz6StandardOptionsTests.test_configure_highlightthickness3sN����������f�&:���c�1�e�	5����� 4�b�1�!�.�.�	�	0r!c�H�|j�}|j|d�y)Nr��r�r�r�s  r�test_configure_imagez)StandardOptionsTests.test_configure_image:s����������V�W�-r!c�H�|j�}|j|d�y)Nr�r�r�s  r�test_configure_insertbackgroundz4StandardOptionsTests.test_configure_insertbackground>r�r!c
�T�|j�}|j|ddddddd�y)Nr�rr�r
rr�rHr�r�s  r� test_configure_insertborderwidthz5StandardOptionsTests.test_configure_insertborderwidthBr�r!c�J�|j�}|j|dd�y)Nr��d�r�rJr�s  r�test_configure_insertofftimez1StandardOptionsTests.test_configure_insertofftimeGs����������v���<r!c�J�|j�}|j|dd�y)Nr�r,r-r�s  r�test_configure_insertontimez0StandardOptionsTests.test_configure_insertontimeKs����������v�~�s�;r!c�P�|j�}|j|ddddd�y)Nr�r�r
r�rHr�r�s  r�test_configure_insertwidthz/StandardOptionsTests.test_configure_insertwidthOs%����������f�m�S�#�r�5�Ir!c�H�|j�}|j|d�y)Nr�rr�s  r�test_configure_jumpz(StandardOptionsTests.test_configure_jumpSs����������v�v�.r!c�|�|j�}|j|ddddd��|j|ddd��y)	Nr�rrr�z6bad justification "{}": must be left, right, or centerrGrFz:ambiguous justification "": must be left, right, or center)r�rvr@r�s  r�test_configure_justifyz+StandardOptionsTests.test_configure_justifyWsO����������F�I�v�w��0�	�	1�	
���v�y�"�0�	�	1r!c��|j�}|jt|d�|j�|j	|ddd�y)Nr��
horizontal�vertical)r�r$r�default_orientrvr�s  r�test_configure_orientz*StandardOptionsTests.test_configure_orient`sA�����������V�H�-�.��0C�0C�D����F�H�l�J�Gr!c
�j�|j�}|j|dddddd|j��y)Nr��皙����@�ffffff@r��12mrK�r�r}r�r�s  r�test_configure_padxz(StandardOptionsTests.test_configure_padxe�7����������f�f�a��c�2�u�#'�#8�#8�	�	:r!c
�j�|j�}|j|dddddd|j��y)Nr�r=r>r?r�r@rKrAr�s  r�test_configure_padyz(StandardOptionsTests.test_configure_padyjrCr!c�H�|j�}|j|d�y)Nr��r�r�r�s  r�test_configure_reliefz*StandardOptionsTests.test_configure_relieforr!c�L�|j�}|j|ddd�y)Nr�������r-r�s  r�test_configure_repeatdelayz/StandardOptionsTests.test_configure_repeatdelayss!����������v�}�d�C�@r!c�L�|j�}|j|ddd�y)Nr�rJrKr-r�s  r�test_configure_repeatintervalz2StandardOptionsTests.test_configure_repeatintervalws"����������v�'7��s�Cr!c�H�|j�}|j|d�y)Nr�r�r�s  r�test_configure_selectbackgroundz4StandardOptionsTests.test_configure_selectbackground{r�r!c�P�|j�}|j|ddddd�y)Nr�r�r
r�rHr�r�s  r� test_configure_selectborderwidthz5StandardOptionsTests.test_configure_selectborderwidths&����������f�&9�3��R��Or!c�H�|j�}|j|d�y)Nr�r�r�s  r�test_configure_selectforegroundz4StandardOptionsTests.test_configure_selectforeground�r�r!c�H�|j�}|j|d�y)Nr�rr�s  r�test_configure_setgridz+StandardOptionsTests.test_configure_setgrid������������v�y�1r!c�N�|j�}|j|dddd�y)N�state�active�disabled�normalr�r�s  r�test_configure_statez)StandardOptionsTests.test_configure_state�s#����������F�G�X�z�8�Lr!c�N�|j�}|j|dddd�y)Nr��0�1rF�r�rDr�s  r�test_configure_takefocusz-StandardOptionsTests.test_configure_takefocus�s#������������c�3��;r!c�L�|j�}|j|ddd�y)Nr�rFz
any stringrar�s  r�test_configure_textz(StandardOptionsTests.test_configure_text�s!�������������\�:r!c��|j�}tj|j�}|j	|d|�y)Nr�)r�r/�	StringVarrr��rr4r�s   r�test_configure_textvariablez0StandardOptionsTests.test_configure_textvariable�s3�����������	�	�*��������<r!c�H�|j�}|j|d�y)Nr�r�r�s  r�test_configure_troughcolorz/StandardOptionsTests.test_configure_troughcolor������������V�]�3r!c�N�|j�}|j|dddd�y)Nr�rrT�
r-r�s  r�test_configure_underlinez-StandardOptionsTests.test_configure_underline�s#����������v�{�A�q�"�=r!c�J�|j�}|j|dd�y)Nr�r,r�r�s  r�test_configure_wraplengthz.StandardOptionsTests.test_configure_wraplength�s����������f�l�C�8r!c�H�|j�}|j|d�y)Nr��r�rnr�s  r�test_configure_xscrollcommandz2StandardOptionsTests.test_configure_xscrollcommand������������v�'7�8r!c�H�|j�}|j|d�y)Nr�rrr�s  r�test_configure_yscrollcommandz2StandardOptionsTests.test_configure_yscrollcommand�rtr!c�H�|j�}|j|d�y)Nrlrrr�s  r�test_configure_commandz+StandardOptionsTests.test_configure_command�rWr!c�H�|j�}|j|d�y)N�indicatoronrr�s  r�test_configure_indicatoronz/StandardOptionsTests.test_configure_indicatoron�s����������v�}�5r!c�H�|j�}|j|d�y)N�	offreliefrGr�s  r�test_configure_offreliefz-StandardOptionsTests.test_configure_offrelief�s����������f�k�2r!c�H�|j�}|j|d�y)N�
overreliefrGr�s  r�test_configure_overreliefz.StandardOptionsTests.test_configure_overrelief�s����������f�l�3r!c�H�|j�}|j|d�y)N�selectcolorr�r�s  r�test_configure_selectcolorz/StandardOptionsTests.test_configure_selectcolor�rkr!c�H�|j�}|j|d�y)N�selectimager%r�s  r�test_configure_selectimagez/StandardOptionsTests.test_configure_selectimage�rkr!c�H�|j�}|j|d�y)N�
tristateimager%r�s  r�test_configure_tristateimagez1StandardOptionsTests.test_configure_tristateimage�s����������V�_�5r!c�J�|j�}|j|dd�y)N�
tristatevalue�
unknowable)r�r7r�s  r�test_configure_tristatevaluez1StandardOptionsTests.test_configure_tristatevalue�s�������������>r!c��|j�}tj|j�}|j	|d|�y)N�variable)r�r/�	DoubleVarrr�rgs   r�test_configure_variablez,StandardOptionsTests.test_configure_variable�s3�����������	�	�*������
�C�8r!N)8r�r�r��STANDARD_OPTIONSr�r�r�r�r�rrrrrrrrrr!r#r&r(r*r.r0r2r4r6r;rBrErHrLrNrPrRrTrVr]rbrdrhrjrnrprsrvrxr{r~r�r�r�r�r�r�rjr!rr�r��s����9�9�
9�F�
/�8�K�D�
0�;�:�@�/�<�7�0�.�9�9�
=�<�J�/�1�H�
:�
:�
0�A�D�9�P�9�2�M�<�;�=�
4�>�9�9�9�2�6�3�4�4�4�6�?�9r!r�c��eZdZd�Zd�Zy)�IntegerSizeTestsc�N�|j�}|j|dddd�y)N�heightr,���rr-r�s  r�test_configure_heightz&IntegerSizeTests.test_configure_height�s#����������v�x��d�A�>r!c�N�|j�}|j|dddd�y)N�width��n���rr-r�s  r�test_configure_widthz%IntegerSizeTests.test_configure_width�s#����������v�w��T�1�=r!N�r�r�r�r�r�rjr!rr�r��s��?�>r!r�c��eZdZd�Zd�Zy)�PixelSizeTestsc
�T�|j�}|j|ddddddd�y)Nr�r,g�����LY@gfffff�Y@r�r�3cr�r�s  rr�z$PixelSizeTests.test_configure_height�s)����������f�h��U�E�4��D�Qr!c
�T�|j�}|j|ddddddd�y)Nr�r�gfffff6y@g�����Iy@r�r�5ir�r�s  rr�z#PixelSizeTests.test_configure_width�s)����������f�g�s�E�5�$��4�Pr!Nr�rjr!rr�r��s��R�Qr!r�c����fd�}|S)Nc
������jD][}d|z}t�|�r��D]'}t||�s�t�|t||���@|f�fd�	}||_t�||��]�S)N�test_configure_c�d��|j�}||td|�d�j����)NzOption "z" is not tested in )r��AssertionErrorr�)r�optionr4�clss   �rr�z5add_standard_options.<locals>.decorator.<locals>.test�s3���!%������v��,�.4�c�l�l�.D�E�Er!)r��hasattr�setattr�getattrr�)r�r��
methodname�source_classr��source_classess`    �r�	decoratorz'add_standard_options.<locals>.decorator�s�����k�k�	3�F�*�V�3�J��3�
�+�$2�3�L��|�Z�8���Z� '��j� A�C��	3�+1�E�
%/�D�M��C��T�2�	3� �
r!rj)r�r�s` r�add_standard_optionsr��s����$�r!c��tjjr3tj�}td|j
dd�d��yy)Nzpatchlevel =�info�
patchlevelT)�flush)r�r�r�r/�Tclr�r)�tcls r�setUpModuler�s6���|�|����k�k�m��
�n�c�h�h�v�|�<�D�I�r!)r/�test.test_tkinter.supportrrrr�test.supportr�r�r.rr�r�r�r�r�rjr!r�<module>r�s]���;�;��
�H�	�D8��D8�NC9�C9�L>�>�Q�Q��0Jr!