HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/test/test_email/__pycache__/test_policy.cpython-311.opt-2.pyc
�

��Vc�?���ddlZddlZddlZddlZddlZddlZddlZddlZddl	Zddlm
Z
d�ZGd�dej��Z
Gd�de��ZGd�d	ej��ZGd
�dej��Zedkrej��dSdS)
�N)�headerregistryc�X�|���}|�|��|S�N)�copy�update)�
base_defaults�differences�defaultss   �/D:\Python311\Lib\test\test_email\test_policy.py�
make_defaultsrs*���!�!�#�#�H��O�O�K� � � ��O�c�X�eZdZdZddddddd�Ze���Ze�ddej	j
jdej	j
jdej
jd	���ej	�
��Zej	jeei��ej	jeei��ej	jeed
di��ej	jeeddd���ej	jeeddd
���ej	jeeddi��eeei��iZejeed<d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z Gd�d��Z!Gd�de"��Z#d�Z$d�Z%Gd�d ej	j
��Z&d!�Z'd"�Z(d#�Z)Gd$�d%��Z*d&�Z+d'�Z,d(�Z-d)�Z.d*�Z/d+�Z0dS),�PolicyAPITestsT�N�
�8bitFN)�max_line_length�linesep�cte_type�raise_on_defect�mangle_from_�message_factory�long)�utf8r�header_factory�
refold_source�content_managerrrrz
)rr)rrrrc
�F�|j���D]�\}}|���D]l\}}|�||���5|�t	||��|d�|����ddd��n#1swxYwY�m��dS)N��policy�attrz2change {} docs/docstrings if defaults have changed)�policies�items�subTest�assertEqual�getattr�format)�selfr �expectedr!�values     r�
test_defaultszPolicyAPITests.test_defaultsBs��� $�
� 3� 3� 5� 5�	?�	?��F�H�'�~�~�/�/�
?�
?���e��\�\��d�\�;�;�?�?��$�$�W�V�T�%:�%:�E�&.�/5�v�f�~�~�?�?�?�?�?�?�?�?�?�?�?�?�?�?����?�?�?�?��
?�	?�	?s�9B�B�Bc
���|j���D]�\}}t|��D]�}|�||���5|�d��s7tt
tjj	|��tj��r
	ddd���s|�||d�
|����	ddd��n#1swxYwY����dS)Nr�_z{} is not fully tested)r"r#�dirr$�
startswith�
isinstancer&�emailr �EmailPolicy�types�FunctionType�assertInr')r(r r)r!s    r�test_all_attributes_coveredz*PolicyAPITests.test_all_attributes_coveredJsp�� $�
� 3� 3� 5� 5�		M�		M��F�H��F���
M�
M���\�\��d�\�;�;�M�M�����,�,�M�&�w�u�|�/G��'N�'N�"'�"4�6�6�M�!�	M�M�M�M�M�M�M��
�
�d�H�&>�&E�&E�d�&K�&K�M�M�M�M�
M�M�M�M�M�M�M�M�M�M�M����M�M�M�M��
M�		M�		Ms�AC�!*C�C�Cc��|�t��5}tj���ddd��n#1swxYwYt|j��}d}|D]}|�||���dS)N)�fold�fold_binary�header_fetch_parse�header_source_parse�header_store_parse)�assertRaises�	TypeErrorr1r �Policy�str�	exceptionr5)r(�cm�msg�abstract_methods�methods     r�test_abczPolicyAPITests.test_abcVs���
�
�
�y�
)�
)�	"�R��L���!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"��"�,����2��
'�	'�	'�F��M�M�&�#�&�&�&�&�	'�	's�A�A
�
A
c�P�|j���D]�\}}|D]I}|�t|dz��5t	||d��ddd��n#1swxYwY�J|�td��5d|_ddd��n#1swxYwY��dS)Nz.*read-onlyzno attribute.*foo)r"r#�assertRaisesRegex�AttributeError�setattr�foo)r(r r
r!s    r�test_policy_is_immutablez'PolicyAPITests.test_policy_is_immutablebs4�� $�
� 3� 3� 5� 5�	"�	"��F�H� �
0�
0���+�+�N�D��<N�O�O�0�0��F�D�$�/�/�/�0�0�0�0�0�0�0�0�0�0�0����0�0�0�0���'�'��8K�L�L�
"�
"�!��
�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"����
"�
"�
"�
"��		"�	"s$�A�A#�&A#�B�B	�!B	c���|j���D]F\}}d�|D��}|jdi|��}|D]%}|�t	||�����&�GdS)Nc��i|]}|d��Sr�)�.0r!s  r�
<dictcomp>zDPolicyAPITests.test_set_policy_attrs_when_cloned.<locals>.<dictcomp>ns��<�<�<�4�D�$�<�<�<r
rO)r"r#�clone�assertIsNoner&)r(�policyclassr
�testattrdictr r!s      r�!test_set_policy_attrs_when_clonedz0PolicyAPITests.test_set_policy_attrs_when_clonedjs���&*�]�%8�%8�%:�%:�	9�	9�!�K��<�<�8�<�<�<�L�&�[�&�6�6��6�6�F� �
9�
9���!�!�'�&�$�"7�"7�8�8�8�8�
9�	9�	9r
c��|jD]~}|�t��5|d���ddd��n#1swxYwY|�t��5|d���ddd��n#1swxYwY�dS)N)� this_keyword_should_not_be_valid)�newtline)r"r=r>)r(rTs  r�*test_reject_non_policy_keyword_when_calledz9PolicyAPITests.test_reject_non_policy_keyword_when_calledss'���=�	+�	+�K��"�"�9�-�-�
C�
C���T�B�B�B�B�
C�
C�
C�
C�
C�
C�
C�
C�
C�
C�
C����
C�
C�
C�
C��"�"�9�-�-�
+�
+���T�*�*�*�*�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+����
+�
+�
+�
+��	+�	+s!�
=�A	�A	�"
A;�;A?	�A?	c���|j���}tjj�d���}tjj�d���}||z}|�d���|���D])\}}|�t||��|���*||z}|�d���|���D])\}}|�t||��|���*|tjjz}|���D])\}}|�t||��|���*dS)N�d�r�2)
�policy_defaultsrr1r �defaultrRrr#r%r&)r(r)�p1�p2�addedr!r*s       r�test_policy_additionz#PolicyAPITests.test_policy_additionzs_���'�,�,�.�.��
�\�
!�
'�
'��
'�
<�
<��
�\�
!�
'�
'��
'�
;�
;���R��������+�+�+�#�>�>�+�+�	:�	:�K�D�%����W�U�D�1�1�5�9�9�9�9��R��������,�,�,�#�>�>�+�+�	:�	:�K�D�%����W�U�D�1�1�5�9�9�9�9����,�,��#�>�>�+�+�	:�	:�K�D�%����W�U�D�1�1�5�9�9�9�9�	:�	:r
c��d}tj���}d|d<tjj�d���}tjj�d���}|�|�d|d��|��|�|�d|d��|��dS)NzSubject: =?utf-8?q?=C3=A1?=
�á�Subjectrr])r1�message�EmailMessager r`rRr%r8)r(r)rCrarbs     r�test_fold_zero_max_line_lengthz-PolicyAPITests.test_fold_zero_max_line_length�s���2���m�(�(�*�*����I��
�\�
!�
'�
'��
'�
:�
:��
�\�
!�
'�
'��
'�
=�
=���������C�	�N�;�;�X�F�F�F��������C�	�N�;�;�X�F�F�F�F�Fr
c�r�Gd�d��}|��}t��}tj���}|�||��|�|j|g��t��}|�||��|�|j||g��dS)Nc��eZdZd�ZdS)�2PolicyAPITests.test_register_defect.<locals>.Dummyc��g|_dSr��defects�r(s r�__init__z;PolicyAPITests.test_register_defect.<locals>.Dummy.__init__�s
��!����r
N��__name__�
__module__�__qualname__rrrOr
r�Dummyrm�s#������
"�
"�
"�
"�
"r
rw)�objectr1r r2�register_defectr%rp)r(rw�obj�defectr �defect2s      r�test_register_defectz#PolicyAPITests.test_register_defect�s���	"�	"�	"�	"�	"�	"�	"�	"��e�g�g��������)�)�+�+�����s�F�+�+�+������v�h�/�/�/��(�(�����s�G�,�,�,������v�w�&7�8�8�8�8�8r
c��eZdZd�ZdS)�PolicyAPITests.MyObjc��g|_dSrrorqs rrrzPolicyAPITests.MyObj.__init__�s
���D�L�L�Lr
NrsrOr
r�MyObjr�s#������	�	�	�	�	r
r�c��eZdZdS)�PolicyAPITests.MyDefectN�rtrurvrOr
r�MyDefectr��s�������r
r�c�
�|���}|�d��}|�|jd��5tjj�||��ddd��dS#1swxYwYdS)N�the telly is broken)r�r�rHr1r �strict�
handle_defect�r(rKr{s   r�#test_handle_defect_raises_on_strictz2PolicyAPITests.test_handle_defect_raises_on_strict�s����j�j�l�l�����4�5�5��
�
#�
#�D�M�3H�
I�
I�	;�	;��L��-�-�c�6�:�:�:�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;�	;�	;s�&A8�8A<�?A<c��|���}|�d��}tjj�||��|�|j|g��|�d��}tjj�||��|�|j||g��dS�N�one�two)r�r�r1r r`r�r%rp)r(rK�defect1r|s    r�#test_handle_defect_registers_defectz2PolicyAPITests.test_handle_defect_registers_defect�s����j�j�l�l���-�-��&�&��
���*�*�3��8�8�8������w�i�0�0�0��-�-��&�&��
���*�*�3��8�8�8������w��&8�9�9�9�9�9r
c�(��eZdZdZ�fd�Zd�Z�xZS)�PolicyAPITests.MyPolicyNc�>��t��j|dgi|��dS)Nrp)�superrr)r(�args�kw�	__class__s   �rrrz PolicyAPITests.MyPolicy.__init__�s*����E�G�G��d�5�B�5�"�5�5�5�5�5r
c�:�|j�|��dSr)rp�append)r(rzr{s   rryz'PolicyAPITests.MyPolicy.register_defect�s���L����'�'�'�'�'r
)rtrurvrprrry�
__classcell__)r�s@r�MyPolicyr��sL���������	6�	6�	6�	6�	6�	(�	(�	(�	(�	(�	(�	(r
r�c��|���}|�d��}|�|jd��5|�d����||��ddd��dS#1swxYwYdS)Nr�T)r)r�r�rHr�r�r�s   r�,test_overridden_register_defect_still_raisesz;PolicyAPITests.test_overridden_register_defect_still_raises�s����j�j�l�l�����4�5�5��
�
#�
#�D�M�3H�
I�
I�	K�	K��M�M�$�M�/�/�=�=�c�6�J�J�J�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K����	K�	K�	K�	K�	K�	Ks�+A=�=B�Bc���|���}|�d��}|���}|�||��|�|j|g��|�|jg��|�d��}|�||��|�|j||g��|�|jg��dSr�)r�r�r�r�r%rp)r(rKr��	my_policyr|s     r�%test_overridden_register_defect_worksz4PolicyAPITests.test_overridden_register_defect_works�s����j�j�l�l���-�-��&�&���M�M�O�O�	�����W�-�-�-�����*�W�I�6�6�6������b�)�)�)��-�-��&�&������W�-�-�-�����*�W�g�,>�?�?�?������b�)�)�)�)�)r
c��tjj�dd��}|�|jd��|�|tj��|�|tj	��dS)N�Test�test)
r1r r`rr%�name�assertIsInstancer�UnstructuredHeader�
BaseHeader)r(�hs  r�test_default_header_factoryz*PolicyAPITests.test_default_header_factory�sl���L� �/�/���?�?��������(�(�(����a��!B�C�C�C����a��!:�;�;�;�;�;r
c�&�eZdZejjZdS)�PolicyAPITests.FooN)rtrurvrr��parserOr
r�Foor��s�������1�7���r
r�c��tj���}tj���}|j�d|j��|�dd��}|�||j��|�|tj	��|�dd��}|�||j��|�|tj	��dS�NrKr�)
r1r r2r�map_to_typer�r��assertNotIsInstancerr��r(�policy1�policy2r�s    r�$test_each_Policy_gets_unique_factoryz3PolicyAPITests.test_each_Policy_gets_unique_factory�s����,�*�*�,�,���,�*�*�,�,����*�*�5�$�(�;�;�;��"�"�5�&�1�1�����a���*�*�*�� � ��N�$E�F�F�F��"�"�5�&�1�1��� � ��D�H�-�-�-����a��!B�C�C�C�C�Cr
c�n�tj���}|���}|j�d|j��|�dd��}|�||j��|�dd��}|�||j��dSr�)r1r r2rRrr�r�r�r�s    r�test_clone_copies_factoryz(PolicyAPITests.test_clone_copies_factory�s����,�*�*�,�,���-�-�/�/����*�*�5�$�(�;�;�;��"�"�5�&�1�1�����a���*�*�*��"�"�5�&�1�1�����a���*�*�*�*�*r
c��tj���}|j}|tjjz}|�|j|��tjj|z}|�|j|��dSr)r1r r2rr�r%)r(�mypolicy�	myfactory�	newpolicys    r�"test_new_factory_overrides_defaultz1PolicyAPITests.test_new_factory_overrides_default�ss���<�+�+�-�-���+�	��u�|�2�2�	�����1�9�=�=�=��L�'�(�2�	�����1�9�=�=�=�=�=r
c���tjjtjjz}|�|jtjjj��|�|jddi��dS)NrT)r1r r`r�r%rr2�__dict__)r(r�s  r�6test_adding_default_policies_preserves_default_factoryzEPolicyAPITests.test_adding_default_policies_preserves_default_factory�sf���L�(�5�<�+>�>�	�����1���1�@�	B�	B�	B�����+�.?��-F�G�G�G�G�Gr
c��tjj�d���}|�dd��}|�|d��dS)N�r]rguąąąąąąąąąąąąz�Subject: 
 =?utf-8?q?=C4=85?=
 =?utf-8?q?=C4=85?=
 =?utf-8?q?=C4=85?=
 =?utf-8?q?=C4=85?=
 =?utf-8?q?=C4=85?=
 =?utf-8?q?=C4=85?=
 =?utf-8?q?=C4=85?=
 =?utf-8?q?=C4=85?=
 =?utf-8?q?=C4=85?=
 =?utf-8?q?=C4=85?=
 =?utf-8?q?=C4=85?=
 =?utf-8?q?=C4=85?=
)r1r r`rRr8r%)r(r �actuals   r�*test_non_ascii_chars_do_not_cause_inf_loopz9PolicyAPITests.test_non_ascii_chars_do_not_cause_inf_loop�sZ����%�+�+�B�+�?�?�����Y�	�2�2������
)�	*�	*�	*�	*�	*r
c�^�d}dD]�}|�|���5tjj�|���}|�tjj��5|�d|��ddd��n#1swxYwYddd��n#1swxYwY��dS)Nz;Melt away the pounds with this one simple trick! 1234567890)���	)�maxlenr]rg)	r$r1r r`rRr=�errors�HeaderParseErrorr8)r(�subjectr�r s    r�test_short_maxlen_errorz&PolicyAPITests.test_short_maxlen_errors*��P���	4�	4�F����V��,�,�
4�
4���-�3�3�F�3�K�K���&�&�u�|�'D�E�E�4�4��K�K�	�7�3�3�3�4�4�4�4�4�4�4�4�4�4�4����4�4�4�4�
4�
4�
4�
4�
4�
4�
4�
4�
4�
4�
4����
4�
4�
4�
4��	4�	4s6�A
B!�'B
�>B!�
B�B!�B�B!�!B%	�(B%	)1rtrurv�longMessage�compat32_defaultsrr_rr1r r2rrrhri�
new_policy�compat32rr`�SMTP�SMTPUTF8�HTTPr�r"r+r6rFrLrVrZrdrjr}r��	Exceptionr�r�r�r�r�r�r�r�r�r�r�r�r�r�rOr
rrrs��������K�%'�$(�$*�$)�$(�$(�

�
��(�,�,�.�.�O����$)�$)�$)�L�$<�$K�$*�$)�L�$<�$L�$)�$)�M�$>�
�
������)�)�+�+�J�
���}�}�->��C�C�
���m�m�O�R�@�@�
���=�=��*3�V�)<�>�>�
���}�}�_�9?�6:�.<�.<� =� =�	���=�=��5;�=A�*C�*C�D�D�	���]�]�?�,=�t�+D�F�F��M�M�/�2�6�6�
�H�".8�-F�H�Z��)�*�?�?�?�
M�
M�
M�
'�
'�
'�"�"�"�9�9�9�+�+�+�:�:�:� 
G�
G�
G�9�9�9���������
�
�
�
�
�9�
�
�
�;�;�;�:�:�:�(�(�(�(�(�5�<�+�(�(�(�K�K�K�
*�
*�
*�<�<�<�8�8�8�8�8�8�8�8�	D�	D�	D�+�+�+�>�>�>�H�H�H�*�*�*�4�4�4�4�4r
rc��eZdZdS)�
TestExceptionNr�rOr
rr�r�s�������Dr
r�c��eZdZGd�dejj��Zd�Zd�Zd�Z	d�Z
d�Zd�Zdd�Z
d�Zd
�Zd�Zd�Zd
S)�TestPolicyPropagationc�(�eZdZd�ZexZxZZexZZdS)�TestPolicyPropagation.MyPolicyc� �td���)Nr�)r�)r(r�r�s   r�	badmethodz(TestPolicyPropagation.MyPolicy.badmethod&s����'�'�'r
N)	rtrurvr�r8r9�header_fetch_parserr;r<rOr
rr�r�%s;������	(�	(�	(�3<�<��<�{�0�3<�<��0�0�0r
r�c��|�td��5tjd|j���ddd��dS#1swxYwYdS)N�^test$�Subject: test

�r )rHr�r1�message_from_stringr�rqs r�test_message_from_stringz.TestPolicyPropagation.test_message_from_string+s���
�
#�
#�M�8�
<�
<�	<�	<��%�&9�-1�]�
<�
<�
<�
<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<����	<�	<�	<�	<�	<�	<��A�A	�A	c��|�td��5tjd|j���ddd��dS#1swxYwYdS)Nr��Subject: test

r�)rHr�r1�message_from_bytesr�rqs r�test_message_from_bytesz-TestPolicyPropagation.test_message_from_bytes0s���
�
#�
#�M�8�
<�
<�	;�	;��$�%9�,0�M�
;�
;�
;�
;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;�	;�	;r�c���tjd��}|�td��5t	j||j���ddd��dS#1swxYwYdS)Nr�r�r�)�io�StringIOrHr�r1�message_from_filer��r(�fs  r�test_message_from_filez,TestPolicyPropagation.test_message_from_file5s����K�+�,�,��
�
#�
#�M�8�
<�
<�	=�	=��#�A�d�m�<�<�<�<�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=����	=�	=�	=�	=�	=�	=��A�A� Ac���tjd��}|�td��5t	j||j���ddd��dS#1swxYwYdS)Nr�r�r�)r��BytesIOrHr�r1�message_from_binary_filer�r�s  r�test_message_from_binary_filez3TestPolicyPropagation.test_message_from_binary_file:s����J�+�,�,��
�
#�
#�M�8�
<�
<�	D�	D��*�1�T�]�C�C�C�C�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D����	D�	D�	D�	D�	D�	Dr�c���tj�|j���}|�t
d��5|�d��ddd��dS#1swxYwYdS)Nr�r�r�)r1�parser�Parserr�rHr��parsestr�r(�ps  r�test_parserz!TestPolicyPropagation.test_parserAs����L���t�}��5�5��
�
#�
#�M�8�
<�
<�	,�	,�
�J�J�*�+�+�+�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�	,�	,��A$�$A(�+A(c���tj�|j���}|�t
d��5|�d��ddd��dS#1swxYwYdS)Nr�r�r�)r1r��BytesParserr�rHr��
parsebytesr�s  r�test_bytes_parserz'TestPolicyPropagation.test_bytes_parserFs����L�$�$�D�M�$�:�:��
�
#�
#�M�8�
<�
<�	/�	/�
�L�L�-�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/r�r�Nc��|�#tjj���n||_tj||j���S)Nr�)r1r r`rRr�)r(�sourcer s   r�	_make_msgzTestPolicyPropagation._make_msgOs<��6<�P�e�l�*�0�0�2�2�2�&����(����D�D�D�Dr
c�n�|���}|�|j|j��dSr)r�assertIsr �r(rCs  r�(test_parser_propagates_policy_to_messagez>TestPolicyPropagation.test_parser_propagates_policy_to_messageSs/���n�n�����
�
�c�j�$�+�.�.�.�.�.r
c���|�tjd����}|���D]"}|�|j|j���#dS)Na+            Subject: mime test
            MIME-Version: 1.0
            Content-Type: multipart/mixed, boundary="XXX"

            --XXX
            Content-Type: text/plain

            test
            --XXX
            Content-Type: text/plain

            test2
            --XXX--
            )r�textwrap�dedent�walkrr )r(rC�parts   r�-test_parser_propagates_policy_to_sub_messageszCTestPolicyPropagation.test_parser_propagates_policy_to_sub_messagesWsf���n�n�X�_�.�������H�H�J�J�	4�	4�D��M�M�$�+�t�{�3�3�3�3�	4�	4r
c�X�|�dtjj�d������}tj��}tj�|��}|�	|��|�
|���d��dS�NzSubject: test
To: foo

�X)rr�zSubject: testXTo: fooXX)rr1r r`rRr�r��	generator�	Generator�flattenr%�getvalue)r(rC�s�gs    r�+test_message_policy_propagates_to_generatorzATestPolicyPropagation.test_message_policy_propagates_to_generatorjs����n�n�9�$)�L�$8�$>�$>�s�$>�$K�$K��M�M���K�M�M���O�%�%�a�(�(��	�	�	�#������������'@�A�A�A�A�Ar
c���|�dtjj�d������}|�|���d��dSr)rr1r r`rRr%�	as_stringrs  r�%test_message_policy_used_by_as_stringz;TestPolicyPropagation.test_message_policy_used_by_as_stringrs]���n�n�9�$)�L�$8�$>�$>�s�$>�$K�$K��M�M����������*C�D�D�D�D�Dr
)r�N)rtrurvr1r r?r�r�r�r�r�r�rrrrrrrOr
rr�r� s�������
=�=�=�=�=�5�<�&�=�=�=�<�<�<�
;�;�;�
=�=�=�
D�D�D�,�,�,�
/�/�/�E�E�E�E�/�/�/�4�4�4�&B�B�B�E�E�E�E�Er
r�c��eZdZd�ZdS)�TestConcretePoliciesc��tj���}|�t|jdd��dS)N�Fromzspam
egg@foo.py)r1r r2r=�
ValueErrorr<)r(�instances  r�(test_header_store_parse_rejects_newlinesz=TestConcretePolicies.test_header_store_parse_rejects_newlineszsE���<�+�+�-�-�����*�"�5� �"4�	6�	6�	6�	6�	6r
N)rtrurvr"rOr
rrrxs#������6�6�6�6�6r
r�__main__)r�r3r
�unittest�email.errorsr1�email.policy�email.parser�email.generator�
email.messagerr�TestCaserr�r�r�rrt�mainrOr
r�<module>r,s{��	�	�	�	��������������������������������� � � � � � ����
E4�E4�E4�E4�E4�X�&�E4�E4�E4�X	�	�	�	�	�I�	�	�	�UE�UE�UE�UE�UE�H�-�UE�UE�UE�p6�6�6�6�6�8�,�6�6�6��z����H�M�O�O�O�O�O��r