add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
�

��Vc
�cs�	dZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddlm
Z
ddlmZddlm
Z
ddlmZddlmZdd	lmZdd
l
mZejd��jZd,d�Zd,d�Zd
�ZGd�dej��ZeZ	ddlZejxZZn#e$rYnwxYwddd�d�ZejjZejj Z ejj!Z!de!d�d�Z"d�Z#d�Z$d�Z%d�Z&dd�d�Z'ej(d���Z)d,d�Z*dd�d�Z+dd�d�Z,ej(d���Z-ee-_Gd �d!ej.��Z/d"d#�d$�Z0d%�Z1d&�Z2e	j3��Z4iZ5d'�Z6d(�Z7d)�Z8d*�Z9e6Z:e9Z;e7Z<e8Z=	dd+lm6Z6m9Z9m7Z7m8Z8m4Z4m5Z5e6Z>e9Z?e7Z@e8ZAdS#e$rYdSwxYw)-)�Task�create_task�FIRST_COMPLETED�FIRST_EXCEPTION�
ALL_COMPLETED�wait�wait_for�as_completed�sleep�gather�shield�
ensure_future�run_coroutine_threadsafe�current_task�	all_tasks�_register_task�_unregister_task�_enter_task�_leave_task�N)�GenericAlias�)�
base_tasks)�
coroutines)�events)�
exceptions)�futures)�
_is_coroutinecsV�	|�tj��}tj|��S�N)r�get_running_loop�_current_tasks�get��loop� �&/usr/lib64/python3.11/asyncio/tasks.pyr
r
#s,��+��)��&�(�(����d�#�#�#�cs���	��tj���d}		tt��}n#t$r|dz
}|dkr�YnwxYw�3�fd�|D��S)NrTri�csh��h|].}tj|���u�|����,|��/S�)r�	_get_loop�done)�.0Ztr!�  �r#�	<setcomp>zall_tasks.<locals>.<setcomp>=sM���>�>�>�!�� ��#�#�t�+�>�45�F�F�H�H�>�A�>�>�>r$)rrZlist�
_all_tasks�RuntimeError)r!ZiZtaskss`  r#rr*s����1��)��&�(�(��	
�A��	���$�$�E�
���	�	�	�
��F�A��D�y�
��
�
�	�����>�>�>�>�u�>�>�>�>s�1�A
�	A
cs��|�B	|j}||��dS#t$r tjdtd���YdSwxYwdS)Nz~Task.set_name() was added in Python 3.8, the method support will be mandatory for third-party task implementations since 3.13.i�Z
stacklevel)�set_nameZAttributeError�warningsZwarnZDeprecationWarning)�task�namer.�   r#�_set_task_namer3As����	�	��}�H�
�H�T�N�N�N�N�N��
�	8�	8�	8��M�9�)�Q�
8�
8�
8�
8�
8�
8�
8�	8����	�	s��&A�Acs���eZdZ	dZdddd��fd�
Z�fd�Zee��Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zdd�d
�Zddd�d�Zdd�Zd�Zd�Zd�fd�	Zd�Z�xZS)rTN)r!r1�contextcs��t���|���|jr|jd=tj|��sd|_t
d|�����|�dt����|_nt|��|_d|_
d|_d|_||_
|�tj��|_n||_|j�|j|j���t)|��dS)Nr i����Fza coroutine was expected, got zTask-r�r4)�super�__init__�_source_tracebackr�iscoroutine�_log_destroy_pending�	TypeError�_task_name_counter�_name�str�_num_cancels_requested�_must_cancel�_fut_waiter�_coro�contextvarsZcopy_context�_context�_loop�	call_soon�_Task__stepr)�self�coror!r1r4�	__class__s     �r#r7z
Task.__init__`s	���
�����d��#�#�#��!�	+��&�r�*��%�d�+�+�	G�).�D�%��E�T�E�E�F�F�F��	#�7�!3�!5�!5�7�7�D�J�J��T���D�J�&'��#�!��������
��	$�'�4�6�6�D�M�M�#�D�M��
���T�[�$�-��@�@�@��t�����r$cs���|jtjkr7|jr0|dd�}|jr
|j|d<|j�|��t�����dS)Nz%Task was destroyed but it is pending!)r0ZmessageZsource_traceback)	Z_staterZ_PENDINGr:r8rEZcall_exception_handlerr6�__del__)rHr4rJr)r#rKzTask.__del__{s}����;�'�*�*�	7�t�/H�	7��B���G��%�
E�.2�.D��*�+��J�-�-�g�6�6�6�
���������r$cs*�tj|��Sr)rZ
_task_repr�rHr"r#�__repr__z
Task.__repr__�s���$�T�*�*�*r$c��|jSr)rBrLr"r#�get_coroz
Task.get_coro��
���z�r$crNr)r=rLr"r#�get_namez
Task.get_name�rPr$cs.�t|��|_dSr)r>r=)rH�value�  r#r.z
Task.set_name�s����Z�Z��
�
�
r$c� �td���)Nz*Task does not support set_result operation�r,)rH�resultrSr#�
set_resultzTask.set_result�s���G�H�H�Hr$crT)Nz-Task does not support set_exception operationrU)rH�	exceptionrSr#�
set_exceptionzTask.set_exception�s���J�K�K�Kr$)�limitcs.�	tj||��Sr)rZ_task_get_stack)rHrZrSr#�	get_stackzTask.get_stack�s��	�(�)�$��6�6�6r$)rZ�filecs0�	tj|||��Sr)rZ_task_print_stack)rHrZr\r2r#�print_stackzTask.print_stack�s��	��+�D�%��>�>�>r$cs��	d|_|���rdS|xjdz
c_|j�|j�|���rdSd|_||_dS)NFr��msgT)Z_log_tracebackr'r?rA�cancelr@�_cancel_message)rHr_rSr#r`zTask.cancel�s��	�*$����9�9�;�;�	��5��#�#�q�(�#�#���	���&�&�3�&�/�/�
��t� ���"����tr$cs�	|jSr�r?rLr"r#�
cancellingzTask.cancelling�s��	�
�*�*r$csH�	|jdkr|xjdzc_|jS)NrrrbrLr"r#�uncancelz
Task.uncancel�s6��	��&��*�	-��'�'�1�,�'�'��*�*r$cs��|���rtjd|�d|�����|jr5t	|tj��s|���}d|_|j}d|_t|j
|��	|�|�d��}n|�|��}t|dd��}|��8tj|��|j
ur?t!d|�d|�d���}|j
�|j||j����n�|r�||ur;t!d	|����}|j
�|j||j����nnd|_|�|j|j���||_|jr'|j�|j�
��rd|_�nt!d|�d|����}|j
�|j||j����n�|�(|j
�|j|j����n�t3j|��r>t!d
|�d|����}|j
�|j||j����nUt!d|����}|j
�|j||j����n#t6$rf}|jr/d|_t9���|j�
��n&t9���|j��Yd}~n�d}~wtj$r1}||_t9�����Yd}~nqd}~wt@tBf$r'}t9���"|���d}~wtF$r+}t9���"|��Yd}~nd}~wwxYwtI|j
|��d}dS#tI|j
|��d}wxYw)Nz_step(): already done: z, F�_asyncio_future_blockingzTask z got Future z attached to a different loopr5zTask cannot await on itself: r^z-yield was used instead of yield from in task z with z;yield was used instead of yield from for generator in task zTask got bad yield: )%r'rZInvalidStateErrorr@Z
isinstance�CancelledError�_make_cancelled_errorrBrArrEZsendZthrowZgetattrrr&r,rFrGrDre�add_done_callback�
_Task__wakeupr`ra�inspectZisgeneratorZ
StopIterationr6rWrRZ_cancelled_exc�KeyboardInterrupt�
SystemExitrY�
BaseExceptionr)rH�excrIrVZblockingZnew_excrJs      �r#Z__stepzTask.__step�s����9�9�;�;�	=��.�;�$�;�;�C�;�;�=�=�
=���	&��c�:�#<�=�=�
3��0�0�2�2�� %�D���z������D�J��%�%�%�H	��
)����4��������C����$�v�'A�4�H�H�H��,
A��$�V�,�,�D�J�>�E�*�C��C�C�!�C�C�C�D�D�G��J�(�(���W�d�m�)�E�E�E�E��E���~�
:�".�D�D�D�D�#F�#F���
�,�,� �K��$�-�-�I�I�I�I�;@��7��0�0� �M�4�=�1�B�B�B�+1��(��,�:�#�/�6�6�(,�(<� 7� >� >�:�49�� 1��*�<�#'�<�<�17�<�<�=�=�G��J�(�(���W�d�m�)�E�E�E�E��
A��
�$�$�T�[�$�-�$�H�H�H�H��$�V�,�,�
A�&�B�)-�B�B�7=�B�B�C�C���
�$�$��K��$�-�%�A�A�A�A�'�'H�f�'H�'H�I�I���
�$�$��K��$�-�%�A�A�A�A��{�	.�	.�	.�� �
.�$)��!������4�#7��8�8�8�8����"�"�3�9�-�-�-�����������(�	�	�	�"%�D���G�G�N�N�������������!�:�.�	�	�	��G�G�!�!�#�&�&�&�������	'�	'�	'��G�G�!�!�#�&�&�&�&�&�&�&�&�����	'����d
��
�D�)�)�)��D�D�D��
��
�D�)�)�)��D�K�K�K�Ksb�-K�=HO3�
O�
AL+�&O3�+O�='M)�$O3�)O�="N�
O�,!O�
O3�O�O3�3Pcs��	|���|���n,#t$r}|�|��Yd}~nd}~wwxYwd}dSr)rVrGrm)rH�futurernr2r#Z__wakeupz
Task.__wakeupQsr��	��M�M�O�O�O�
�K�K�M�M�M�M���	�	�	��K�K��������������	�������s�+�
A�A�Ar)�__name__�
__module__�__qualname__r:r7rKZclassmethodrZ__class_getitem__rMrOrQr.rWrYr[r]r`rcrdrGri�
__classcell__�rJ�@r#rrNs��������+� ��%)��d��������6	�	�	�	�	�$��L�1�1��+�+�+������� � � �I�I�I�L�L�L�"&�7�7�7�7�7�.$(�d�	?�	?�	?�	?�	?�(�(�(�(�T+�+�+�
+�
+�
+�U�U�U�U�U�U�n������r$r)r1r4cs��	tj��}|�|�|��}n|�||���}t||��|S)Nr5)rrrr3)rIr1r4r!r0�     r#rrnsa����"�$�$�D��7�����%�%�������g��6�6���4������Kr$)�timeout�return_whenc�s�K�	tj|��stj|��r$t	dt|��j�����|std���|tttfvrtd|�����t|��}td�|D����rt	d���tj��}t||||���d{V��S)Nzexpect a list of futures, not zSet of Tasks/Futures is empty.zInvalid return_when value: c3s>K�|]}tj|��V��dSr)rr9)r(�frSr#z	<genexpr>zwait.<locals>.<genexpr>�s-����
1�
1��:�!�!�$�$�
1�
1�
1�
1�
1�
1r$z6Passing coroutines is forbidden, use tasks explicitly.)r�isfuturerr9r;�typerp�
ValueErrorrrr�setZanyrr�_wait)�fsrwrxr!�    r#rr�s����������N�z�5�b�9�9�N��L��b���9J�L�L�M�M�M�
�;��9�:�:�:��?�O�]�K�K�F��D�{�D�D�E�E�E�	�R���B�
�
1�
1�b�
1�
1�
1�1�1�R��P�Q�Q�Q��"�$�$�D��r�7�K��6�6�6�6�6�6�6�6�6r$cs\�|���s|�d��dSdSr)r'rW)�waiterZargsrSr#�_release_waiterr��s6���;�;�=�=� ����$������ � r$c�s
K�	tj��}|�|�d{V��S|dkr�t||���}|���r|���St||����d{V��	|���S#tj$r}t
j��|�d}~wwxYw|�	��}|�
|t|��}tj
t|��}t||���}|�|��		|�d{V��n~#tj$rl|���r*|���cY|���S|�|��t||����d{V���wxYw|���r(|���|���S|�|��t||����d{V��	|���|���S#tj$r}t
j��|�d}~wwxYw#|���wxYw)Nrr )rrrr'rV�_cancel_and_waitrrf�TimeoutError�
create_future�
call_laterr��	functools�partialrhr`�remove_done_callback)�futrwr!rnr��timeout_handle�cbs       r#rr�s�������"�$�$�D����y�y�y�y�y�y���!�|�
5��C�d�+�+�+���8�8�:�:�	 ��:�:�<�<���s��.�.�.�.�.�.�.�.�.�.�	5��:�:�<�<����(�	5�	5�	5��)�+�+��4�����	5�����
�
�
!�
!�F��_�_�W�o�v�F�F�N�	�	�?�F�	3�	3�B�
��$�
'�
'�
'�C����"���� �	��L�L�L�L�L�L�L�L���(�		�		�		��x�x�z�z�
��z�z�|�|�#�#�2	�������/�(�(��,�,�,�'�s��6�6�6�6�6�6�6�6�6�6��		�����8�8�:�:�	9��:�:�<�<�	�������
�$�$�R�(�(�(�#�3�T�2�2�2�2�2�2�2�2�2�2�
9��z�z�|�|�	���������,�
9�
9�
9� �-�/�/�S�8�����
9�����	���������sf�8B�B4�B/�/B4�)D2�1I,�27F-�)I,�?.F-�-*I,�,,I,�I�I)�I$�$I)�)I,�,Jc�s����	�
K�	|����
d�	|�|�|t�
���	t|������	�
fd�}|D]}|�|���	�
�d{V���	��	���|D]}|�|���n5#�	��	���|D]}|�|���wxYwt��t��}}|D]A}|���r|�	|���,|�	|���B||fS)Ncs(���dz��dks>�tks3�tkri|���sW|����E����������s��d��dSdSdSdSdS)Nrr)rr�	cancelledrXr`r'rW)ry�counterrxr�r�s ����r#�_on_completionz_wait.<locals>._on_completion�s�����1����q�L�	(��?�*�	(��?�*�	(�45�K�K�M�M�	(�12���
�
�	(��
(��%�%�'�'�'��;�;�=�=�
(��!�!�$�'�'�'�'�'�	(�	(�	(�	(�	(�	(�
(�
(r$)
r�r�r��lenrhr`r�r}r'�add)rrwrxr!r�ryr'Zpendingr�r�r�s  `     @@@r#r~r~�s����������
�
�
�
!�
!�F��N��K�����/�6�J�J���"�g�g�G�
(�
(�
(�
(�
(�
(�
(�
(��,�,��	���N�+�+�+�+�3����������	$��!�!�#�#�#��	3�	3�A�
�"�"�>�2�2�2�2�	3���	$��!�!�#�#�#��	3�	3�A�
�"�"�>�2�2�2�2�	3�����E�E�3�5�5�'�D�
�����6�6�8�8�	��H�H�Q�K�K�K�K��K�K��N�N�N�N���=�s�.B'�'2Cc�s*K�	|���}tjt|��}|�|��	|���|�d{V��|�|��dS#|�|��wxYwr)r�r�r�r�rhr`r�)r�r!r�r�r�r#r�r�s�����F�
�
�
�
!�
!�F�	�	�?�F�	3�	3�B����"����%��
�
������������� � ��$�$�$�$�$��� � ��$�$�$�$���s�A;�;B)rwc#s���	�
�K�	tj|��stj|��r$t	dt|��j�����ddlm}|���tj
���	�	fd�t|��D���d�
���fd�}��
�fd���fd�}�D]}|������r|��	�
||���
tt�����D]}|��V��dS)Nz#expect an iterable of futures, not r)�Queuecs2��h|]}t|������S)r )r)r(ryr!r)r#r*zas_completed.<locals>.<setcomp>Gs&���9�9�9�A�M�!�$�'�'�'�9�9�9r$cs����D],}|������d���-����dSr)r��
put_nowaitZclear)ryr�r'�todo� ���r#�_on_timeoutz!as_completed.<locals>._on_timeoutJsL����	"�	"�A�
�"�"�>�2�2�2��O�O�D�!�!�!�!��
�
�����r$cs����sdS��|����|���s������dSdSdSr)Zremover�r`)ryr'r�r�r�r#r�z$as_completed.<locals>._on_completionPsl����	��F����A������������	$��	$��!�!�#�#�#�#�#�	$�	$�	$�	$r$c�s��K������d{V��}|�tj�|���Sr)rrr�rV)ryr's �r#�
_wait_for_onez#as_completed.<locals>._wait_for_oneXsE������(�(�*�*���������	*��)�)��x�x�z�z�r$)rrzrr9r;r{rpZqueuesr�r�_get_event_loopr}rhr�Zranger�)rrwr�r�r�ryZ_r�r'r!r�r�s       @@@@@r#rr.s�����������"�����S�z�5�b�9�9�S��Q�d�2�h�h�>O�Q�Q�R�R�R��������5�7�7�D��!�#�#�D�9�9�9�9��R���9�9�9�D��N��������$�$�$�$�$�$�$�������,�,��	���N�+�+�+�+��?��?�����+�>�>��
�3�t�9�9�
�
�����m�o�o������r$c#sK�	dV�dSrr%r%r$r#�__sleep0r�gs�����
�E�E�E�E�Er$c�s@K�	|dkrt���d{V��|Stj��}|���}|�|t
j||��}	|�d{V��	|���S#|���wxYw)Nr)r�rrr�r�rZ_set_result_unless_cancelledr`)ZdelayrVr!roZhrvr#rrss�����C���z���j�j���������
��"�$�$�D�
�
�
�
!�
!�F������<���	(�	(�A���|�|�|�|�|�|��	���
�
�
�
�����
�
�
�
���s�*B�Br cs&�	t||���S�Nr )�_ensure_future)�coro_or_futurer!rSr#rr�s����.�t�4�4�4�4r$cs��tj|��r)|�%|tj|��urtd���|Sd}t	j|��s5t
j|��rt|��}d}ntd���|�tjd���}	|�|��S#t$r|s|����wxYw)NzRThe future belongs to a different loop than the one specified as the loop argumentFTz:An asyncio.Future, a coroutine or an awaitable is requiredir-)rrzr&r|rr9rjZisawaitable�_wrap_awaitabler;rr�rr,Zclose)r�r!Zcalled_wrap_awaitabler2r#r�r��s�����'�'���	F��G�,=�n�,M�,M� M�	F��E�F�F�
F���!���!�.�1�1�+���~�.�.�	+�,�^�<�<�N�$(�!�!��*�+�+�
+��4��%��3�3�3�������/�/�/������$�	#�� � �"�"�"�
����s�!B6�6"Cc#s<K�	|���Ed{V��Sr)Z	__await__)Z	awaitabler"r#r�r��s1�����
!�*�*�,�,�,�,�,�,�,�,�-r$cs(��eZdZ	�fd�Zdd�Z�xZS)�_GatheringFuturecsh��t���|���||_d|_dS)Nr F)r6r7�	_children�_cancel_requested)rH�childrenr!rJs   �r#r7z_GatheringFuture.__init__�s3���
�����d��#�#�#�!���!&����r$Ncs��|���rdSd}|jD]}|�|���rd}�|rd|_|S)NFr^T)r'r�r`r�)rHr_ZretZchildr�r#r`z_GatheringFuture.cancel�s`���9�9�;�;�	��5����^�	�	�E��|�|��|�$�$�
�����	*�&*�D�"��
r$r)rprqrrr7r`rsrtrur#r�r��sQ��������'�'�'�'�'��������r$r�F)�return_exceptionscs�����	�
�	|s>tj��}|����
�
�g���
S���	�
�fd�}i}g�d�	d�d}d�
|D]u}||vrRt	||���}|�tj|��}||urd|_�	dz
�	|||<|�|��n||}��	|���vt�|����
�
S)Ncs���dz
�������r*|���s|���dS�sl|���r+|���}��|��dS|���}|���|��dS��kr�g}�D]x}|���r#tj|j�dn|j��}n*|���}|�|���}|�	|���y�j
r+|���}��|��dS��|��dSdS)Nr�)r'r�rXrgrYrrfrarV�appendr�rW)	r�rnZresultsZresr��	nfinished�nfuts�outerr�s	    �����r#�_done_callbackzgather.<locals>._done_callback�s�����Q��	��	�E�J�J�L�L�	��=�=�?�?�
 ��
�
�����F� �	��}�}���
��/�/�1�1���#�#�C�(�(�(����m�m�o�o�����'�'��,�,�,��F����	*��G��
$�
$���=�=�?�?�
+�%�3�!�1�,����+�-�-�C�C��-�-�/�/�C��+�!�j�j�l�l�����s�#�#�#�#��&�
*��/�/�1�1���#�#�C�(�(�(�(�(�� � ��)�)�)�)�)�;	*�	*r$rr Fr)rr�r�rWr�rr&r:rhr�r�)r�Zcoros_or_futuresr!r�Z
arg_to_fut�argr�r�r�r�r�s`      @@@@r#r	r	�sX��������:���%�'�'���"�"�$�$��
���������5*�5*�5*�5*�5*�5*�5*�5*�5*�n�J��H�
�E��I��D��E������j� �	"� ��4�0�0�0�C��
.��(��-�-���#�~�
1�
,1��(��Q�J�E�!�J�s�O��!�!�.�1�1�1�1��S�/�C����������X�D�1�1�1�E��Lr$cs����	t|�������r�Stj���}|�����fd����fd�}�������|���S)Ncs�������r*|���s|���dS|���r����dS|���}|���|��dS��|�����dSr)r�rXr`rYrWrV)�innerrnr�r)r#�_inner_done_callbackz$shield.<locals>._inner_done_callbackqs�����?�?���	��?�?�$�$�
"����!�!�!��F��?�?���	1��L�L�N�N�N�N�N��/�/�#�#�C��
1��#�#�C�(�(�(�(�(�� � ������0�0�0�0�0r$cs^������s�����dSdSr)r'r�)r�r�r�s ��r#�_outer_done_callbackz$shield.<locals>._outer_done_callback�s8����z�z�|�|�	=��&�&�';�<�<�<�<�<�	=�	=r$)r�r'rr&r�rh)r�r!r�r�r�r�s   @@@r#r
r
Is�������@
�3���E��z�z�|�|������U�#�#�D���� � �E�1�1�1�1�1�"=�=�=�=�=�=�
���0�1�1�1�	���0�1�1�1��Lr$cs�����	tj���std���tj�������fd�}��|���S)NzA coroutine object is requiredcs���	tjt��������dS#ttf$r�t
$r/}����r��|���d}~wwxYwr�)rZ
_chain_futurerrlrkrmZset_running_or_notify_cancelrY)rnrIror!r�r#�callbackz*run_coroutine_threadsafe.<locals>.callback�s����	��!�-��4�"@�"@�"@�&�I�I�I�I�I���-�.�	�	�	���	�	�	��2�2�4�4�
*��$�$�S�)�)�)������	���s�$)�A3�*A.�.A3)rr9r;�
concurrentr�FutureZcall_soon_threadsafe)rIr!r�ros`` @r#rr�s��������!�$�'�'�:��8�9�9�9�
�
�
&�
&�
(�
(�F��������	���h�'�'�'��Mr$c�0�	tj|��dSr)r+r��r0r"r#rr�s��=��N�4�����r$csr�tj|��}|�td|�d|�d����|t|<dS)NzCannot enter into task z while another task z is being executed.�rrr,�r!r0r
r2r#rr�si��!�%�d�+�+�L��H��G�T�G�G�#/�G�G�G�H�H�	H��N�4���r$csr�tj|��}||urtd|�d|�d����t|=dS)Nz
Leaving task z! does not match the current task z.r�r�r2r#rr�sl��!�%�d�+�+�L��4��B��A�4�A�A�/;�A�A�A�B�B�	B��t���r$cr�r)r+Zdiscardr�r"r#rr�s�����t�����r$)rrrrr+rr)BZ__all__Zconcurrent.futuresr�rCr�rjZ	itertoolsZtypesr/Zweakrefrr�rrrrrrZcountZ__next__r<r
rr3Z	_PyFuturerZ_PyTaskZ_asyncioZ_CTaskZImportErrorrrrrrr�rr~r�rZ	coroutiner�rrr�r�r�r�r	r
rZWeakSetr+rrrrrZ_py_register_taskZ_py_unregister_taskZ_py_enter_taskZ_py_leave_taskZ_c_register_taskZ_c_unregister_taskZ
_c_enter_taskZ
_c_leave_taskr%r$r#�<module>r�sv��6�����������������������������������������������������������������������%�%�%�%�%�%�
%�Y�_�Q�'�'�0��$�$�$�$�>�>�>�>�.
�
�
�Q�Q�Q�Q�Q�7��Q�Q�Q�h��"��O�O�O�
�M�!�D�6�6��	�	�	�	��D�	����#�D�
�
�
�
�
�$�$�4���$�4���"�0�
�#�
�7�7�7�7�7�@ � � �
D �D �D �N)�)�)�X
%�
%�
%�"!%�6�6�6�6�6�r��
�
���
�����"+/�5�5�5�5�5�,0������2��.�.���.�!.��������w�~����:16�x�x�x�x�x�v?�?�?�D���0�W�_�
�
�
������
 � � �������
#��&������
 �6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�&��)���M��M�M�M��
�	�	�	��D�D�	���s$�B�B�B�E7�7F�?F