§
    ÂiBc  ã                   óØ  — d Z ddlZddlZddlmZ ddlZddlZddlZddlm	Z	m
Z
mZmZmZmZmZ ddlZddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z  ddlm!Z! dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ) ej*        e+¦  «        Z, G d„ dej-        ¦  «        Z.dedej/        de.fd „Z0 G d!„ d"¦  «        Z1 G d#„ d$ej2        ¦  «        Z3 G d%„ d&e1ee          ¦  «        Z4 G d'„ d(e1¦  «        Z5 G d)„ d*e1¦  «        Z6 G d+„ d,e4e1ej7        ¦  «        Z7 G d-„ d.e5e1ej8        ¦  «        Z8 G d/„ d0e6e4e1ej9        ¦  «        Z9 G d1„ d2e6e5e1ej:        ¦  «        Z:dS )3z6Invocation-side implementation of gRPC Asyncio Python.é    N)Úpartial)ÚAnyÚAsyncIteratorÚ	GeneratorÚGenericÚOptionalÚTupleÚUnion)Ú_common)Úcygrpcé   )Ú
_base_call)ÚMetadata)ÚDeserializingFunction)ÚDoneCallbackType)ÚEOFType)ÚMetadataType)ÚMetadatumType)ÚRequestIterableType)ÚRequestType)ÚResponseType)ÚSerializingFunction)ÚAioRpcErrorÚCallÚUnaryStreamCallÚUnaryUnaryCallz!Locally cancelled by application!z"Cancelled upon garbage collection!zRPC already finished.z0RPC is half closed after calling "done_writing".zBThe iterator and read/write APIs may not be mixed on a single RPC.z?<{} of RPC that terminated with:
	status = {}
	details = "{}"
>zZ<{} of RPC that terminated with:
	status = {}
	details = "{}"
	debug_error_string = "{}"
>c                   óN  ‡ — e Zd ZU dZej        ed<   ee         ed<   ee	         ed<   ee	         ed<   ee         ed<   	 	 ddej        d	e	d
e	dee         dee         ddfˆ fd„Z
dej        fd„Zdee         fd„Zde	fd„Zde	fd„Zdefd„Zdefd„Zdefd„Zdefd„Zd„ Zˆ xZS )r   zÙAn implementation of RpcError to be used by the asynchronous API.

    Raised RpcError is a snapshot of the final status of the RPC, values are
    determined. Hence, its methods no longer needs to be coroutines.
    Ú_codeÚ_detailsÚ_initial_metadataÚ_trailing_metadataÚ_debug_error_stringNÚcodeÚinitial_metadataÚtrailing_metadataÚdetailsÚdebug_error_stringÚreturnc                 óŽ   •— t          ¦   «                              ¦   «          || _        || _        || _        || _        || _        dS )a–  Constructor.

        Args:
          code: The status code with which the RPC has been finalized.
          initial_metadata: Optional initial metadata that could be sent by the
            Server.
          trailing_metadata: Optional metadata that could be sent by the Server.
          details: Optional details explaining the reason of the error.
          debug_error_string: Optional string
        N)ÚsuperÚ__init__r   r   r    r!   r"   )Úselfr#   r$   r%   r&   r'   Ú	__class__s         €úX/var/www/html/jarvis.com/web/backend/venv/lib/python3.11/site-packages/grpc/aio/_call.pyr+   zAioRpcError.__init__V   sG   ø€ õ$ 	‰Œ×ÒÑÔÐØˆŒ
ØˆŒØ!1ˆÔØ"3ˆÔØ#5ˆÔ Ð Ð ó    c                 ó   — | j         S )ztAccesses the status code sent by the server.

        Returns:
          The `grpc.StatusCode` status code.
        )r   ©r,   s    r.   r#   zAioRpcError.codeo   s   € ð ŒzÐr/   c                 ó   — | j         S )zkAccesses the details sent by the server.

        Returns:
          The description of the error.
        )r   r1   s    r.   r&   zAioRpcError.detailsw   s   € ð Œ}Ðr/   c                 ó   — | j         S )zuAccesses the initial metadata sent by the server.

        Returns:
          The initial metadata received.
        )r    r1   s    r.   r$   zAioRpcError.initial_metadata   s   € ð Ô%Ð%r/   c                 ó   — | j         S )zwAccesses the trailing metadata sent by the server.

        Returns:
          The trailing metadata received.
        )r!   r1   s    r.   r%   zAioRpcError.trailing_metadata‡   s   € ð Ô&Ð&r/   c                 ó   — | j         S )zyAccesses the debug error string sent by the server.

        Returns:
          The debug error string received.
        )r"   r1   s    r.   r'   zAioRpcError.debug_error_string�   s   € ð Ô'Ð'r/   c                 ón   — t                                | j        j        | j        | j        | j        ¦  «        S )z-Assembles the error string for the RPC error.)Ú_NON_OK_CALL_REPRESENTATIONÚformatr-   Ú__name__r   r   r"   r1   s    r.   Ú_reprzAioRpcError._repr—   s2   € å*×1Ò1ØŒNÔ#ØŒJØŒMØÔ$ñ	
ô 
ð 	
r/   c                 ó*   — |                       ¦   «         S ©N©r:   r1   s    r.   Ú__repr__zAioRpcError.__repr__    ó   € Ø�zŠz‰|Œ|Ðr/   c                 ó*   — |                       ¦   «         S r<   r=   r1   s    r.   Ú__str__zAioRpcError.__str__£   r?   r/   c                 ó`   — t          | ¦  «        | j        | j        | j        | j        | j        ffS r<   )Útyper   r    r!   r   r"   r1   s    r.   Ú
__reduce__zAioRpcError.__reduce__¦   s6   € å�‰JŒJà”
ØÔ&ØÔ'Ø”ØÔ(ðð	
ð 		
r/   )NN)r9   Ú
__module__Ú__qualname__Ú__doc__ÚgrpcÚ
StatusCodeÚ__annotations__r   Ústrr   r+   r#   r&   r$   r%   r'   r:   r>   rA   rD   Ú__classcell__©r-   s   @r.   r   r   I   sÙ  ø€ € € € € € ðð ð Œ?ÐÐÑØ�sŒmÐÐÑØ Ô)Ð)Ð)Ñ)Ø  Ô*Ð*Ð*Ñ*Ø! #œÐ&Ð&Ñ&ð "&Ø,0ð6ð 6àŒoð6ð #ð6ð $ð	6ð
 ˜#”ð6ð % SœMð6ð 
ð6ð 6ð 6ð 6ð 6ð 6ð2�d”oð ð ð ð ð˜ #œð ð ð ð ð& (ð &ð &ð &ð &ð' 8ð 'ð 'ð 'ð 'ð( Cð (ð (ð (ð (ð
�sð 
ð 
ð 
ð 
ð˜#ð ð ð ð ð˜ð ð ð ð ð

ð 

ð 

ð 

ð 

ð 

ð 

r/   r   r$   Ústatusr(   c                 ó"  — t          t          j        |                     ¦   «                  t	          j        | ¦  «        t	          j        |                     ¦   «         ¦  «        |                     ¦   «         |                     ¦   «         ¬¦  «        S )N)r&   r'   )	r   r   Ú!CYGRPC_STATUS_CODE_TO_STATUS_CODEr#   r   Ú
from_tupler%   r&   r'   )r$   rN   s     r.   Ú_create_rpc_errorrR   ³   ss   € õ ÝÔ1°&·+²+±-´-Ô@ÝÔÐ,Ñ-Ô-ÝÔ˜F×4Ò4Ñ6Ô6Ñ7Ô7Ø—’Ñ Ô Ø!×4Ò4Ñ6Ô6ðñ ô ð r/   c                   ó¸  — e Zd ZU dZej        ed<   ej        ed<   e	j
        ed<   eedf         ed<   ee         ed<   ee         ed<   d	e	j
        d
edee         dee         dej        ddfd„Zd#d„Zdefd„Zdedefd„Zdefd„Zdefd„Zdeddfd„Zdee         fd„Zdefd„Zdefd„Zdej        fd„Zdefd„Z defd„Z!d#d„Z"defd „Z#defd!„Z$defd"„Z%dS )$r   zyBase implementation of client RPC Call object.

    Implements logic around final status, metadata and cancellation.
    Ú_loopr   Ú_cython_call.Ú	_metadataÚ_request_serializerÚ_response_deserializerÚcython_callÚmetadataÚrequest_serializerÚresponse_deserializerÚloopr(   Nc                 óf   — || _         || _        t          |¦  «        | _        || _        || _        d S r<   )rT   rU   ÚtuplerV   rW   rX   )r,   rY   rZ   r[   r\   r]   s         r.   r+   zCall.__init__Í   s6   € ð ˆŒ
Ø'ˆÔÝ˜x™œˆŒØ#5ˆÔ Ø&;ˆÔ#Ð#Ð#r/   c                 ó”   — t          | d¦  «        r5| j                             ¦   «         s|                      t          ¦  «         d S d S d S )NrU   )ÚhasattrrU   ÚdoneÚ_cancelÚ_GC_CANCELLATION_DETAILSr1   s    r.   Ú__del__zCall.__del__Û   sW   € å�4˜Ñ(Ô(ð 	3°Ô1B×1GÒ1GÑ1IÔ1Ið 	3Ø�LŠLÕ1Ñ2Ô2Ð2Ð2Ð2ð	3ð 	3ð 	3ð 	3r/   c                 ó4   — | j                              ¦   «         S r<   )rU   Ú	cancelledr1   s    r.   rg   zCall.cancelledà   s   € ØÔ ×*Ò*Ñ,Ô,Ð,r/   r&   c                 óp   — | j                              ¦   «         s| j                              |¦  «         dS dS )z0Forwards the application cancellation reasoning.TF)rU   rb   Úcancel)r,   r&   s     r.   rc   zCall._cancelã   s:   € àÔ ×%Ò%Ñ'Ô'ð 	ØÔ×$Ò$ WÑ-Ô-Ð-Ø�4Øˆur/   c                 ó6   — |                       t          ¦  «        S r<   )rc   Ú_LOCAL_CANCELLATION_DETAILSr1   s    r.   ri   zCall.cancelê   s   € Ø�|Š|Õ7Ñ8Ô8Ð8r/   c                 ó4   — | j                              ¦   «         S r<   )rU   rb   r1   s    r.   rb   z	Call.doneí   s   € ØÔ ×%Ò%Ñ'Ô'Ð'r/   Úcallbackc                 óZ   — t          || ¦  «        }| j                             |¦  «         d S r<   )r   rU   Úadd_done_callback)r,   rm   Úcbs      r.   ro   zCall.add_done_callbackð   s.   € Ý�X˜tÑ$Ô$ˆØÔ×+Ò+¨BÑ/Ô/Ð/Ð/Ð/r/   c                 ó4   — | j                              ¦   «         S r<   )rU   Útime_remainingr1   s    r.   rr   zCall.time_remainingô   s   € ØÔ ×/Ò/Ñ1Ô1Ð1r/   c              ƒ   ól   K  — | j                              ¦   «         ƒ d {V —†}t          j        |¦  «        S r<   )rU   r$   r   rQ   ©r,   Úraw_metadata_tuples     r.   r$   zCall.initial_metadata÷   s?   è è € Ø#'Ô#4×#EÒ#EÑ#GÔ#GÐGÐGÐGÐGÐGÐGÐÝÔ"Ð#5Ñ6Ô6Ð6r/   c              ƒ   ó�   K  — | j                              ¦   «         ƒ d {V —†                     ¦   «         }t          j        |¦  «        S r<   )rU   rN   r%   r   rQ   rt   s     r.   r%   zCall.trailing_metadataû   sO   è è € àÔ#×*Ò*Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,ß
Ò
Ñ
Ô
ð 	õ Ô"Ð#5Ñ6Ô6Ð6r/   c              ƒ   óŒ   K  — | j                              ¦   «         ƒ d {V —†                     ¦   «         }t          j        |         S r<   )rU   rN   r#   r   rP   )r,   Úcygrpc_codes     r.   r#   z	Call.code  sF   è è € Ø!Ô.×5Ò5Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7×=Ò=Ñ?Ô?ˆÝÔ8¸ÔEÐEr/   c              ƒ   óh   K  — | j                              ¦   «         ƒ d {V —†                     ¦   «         S r<   )rU   rN   r&   r1   s    r.   r&   zCall.details  s9   è è € ØÔ'×.Ò.Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0×9Ò9Ñ;Ô;Ð;r/   c              ƒ   óh   K  — | j                              ¦   «         ƒ d {V —†                     ¦   «         S r<   )rU   rN   r'   r1   s    r.   r'   zCall.debug_error_string  s9   è è € ØÔ'×.Ò.Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0×DÒDÑFÔFÐFr/   c              ƒ   óJ  K  — | j                              ¦   «         rt          j        ¦   «         ‚|                      ¦   «         ƒ d {V —†}|t
          j        j        k    rEt          |  	                    ¦   «         ƒ d {V —†| j          
                    ¦   «         ƒ d {V —†¦  «        ‚d S r<   )rU   Úis_locally_cancelledÚasyncioÚCancelledErrorr#   rH   rI   ÚOKrR   r$   rN   )r,   r#   s     r.   Ú_raise_for_statuszCall._raise_for_status  sº   è è € ØÔ×1Ò1Ñ3Ô3ð 	+ÝÔ(Ñ*Ô*Ð*Ø—Y’Y‘[”[Ð Ð Ð Ð Ð Ð ˆØ•4”?Ô%Ò%Ð%Ý#Ø×+Ò+Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-ØÔ'×.Ò.Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0ñô ð ð &Ð%r/   c                 ó*   — t          | j        ¦  «        S r<   )ÚreprrU   r1   s    r.   r:   z
Call._repr  s   € Ý�DÔ%Ñ&Ô&Ð&r/   c                 ó*   — |                       ¦   «         S r<   r=   r1   s    r.   r>   zCall.__repr__  r?   r/   c                 ó*   — |                       ¦   «         S r<   r=   r1   s    r.   rA   zCall.__str__  r?   r/   ©r(   N)&r9   rE   rF   rG   r}   ÚAbstractEventLooprJ   rH   rI   r   Ú_AioCallr	   r   r   r   r   r   r+   re   Úboolrg   rK   rc   ri   rb   r   ro   Úfloatrr   r$   r%   r#   r&   r'   r€   r:   r>   rA   © r/   r.   r   r   À   s§  € € € € € € ðð ð
 Ô$Ð$Ð$Ñ$ØŒ?ÐÐÑØ”/Ð!Ð!Ñ!Ø�] CÐ'Ô(Ð(Ð(Ñ(Ø!Ð"5Ô6Ð6Ð6Ñ6Ø$Ð%:Ô;Ð;Ð;Ñ;ð<à”_ð<ð ð<ð %Ð%8Ô9ð	<ð
  (Ð(=Ô>ð<ð Ô'ð<ð 
ð<ð <ð <ð <ð3ð 3ð 3ð 3ð
-˜4ð -ð -ð -ð -ð˜sð  tð ð ð ð ð9˜ð 9ð 9ð 9ð 9ð(�dð (ð (ð (ð (ð0Ð*:ð 0¸tð 0ð 0ð 0ð 0ð2 ¨¤ð 2ð 2ð 2ð 2ð7¨ð 7ð 7ð 7ð 7ð7¨ð 7ð 7ð 7ð 7ðF˜DœOð Fð Fð Fð Fð<˜sð <ð <ð <ð <ðG¨#ð Gð Gð Gð Gðð ð ð ð'�sð 'ð 'ð 'ð 'ð˜#ð ð ð ð ð˜ð ð ð ð ð ð r/   r   c                   ó   — e Zd ZdZdZdZdS )Ú	_APIStyler   r   é   N)r9   rE   rF   ÚUNKNOWNÚASYNC_GENERATORÚREADER_WRITERrŠ   r/   r.   rŒ   rŒ     s   € € € € € Ø€GØ€OØ€M€M€Mr/   rŒ   c                   ón   ‡ — e Zd ZU ej        ed<   dej        fd„Zdefˆ fd„Zde	e
def         fd„Zˆ xZS )Ú_UnaryResponseMixinÚ_call_responseÚresponse_taskc                 ó   — || _         d S r<   )r“   )r,   r”   s     r.   Ú_init_unary_response_mixinz._UnaryResponseMixin._init_unary_response_mixin(  s   € Ø+ˆÔÐÐr/   r(   c                 ó~   •— t          ¦   «                              ¦   «         r| j                             ¦   «          dS dS ©NTF)r*   ri   r“   ©r,   r-   s    €r.   ri   z_UnaryResponseMixin.cancel+  s8   ø€ Ý‰7Œ7�>Š>ÑÔð 	ØÔ×&Ò&Ñ(Ô(Ð(Ø�4Øˆur/   Nc              #   ó\  K  — 	 | j         E d{V —†}n<# t          j        $ r* |                      ¦   «         s|                      ¦   «          ‚ w xY w|t
          j        u rP| j                             ¦   «         rt          j        ¦   «         ‚t          | j        j
        | j        j        ¦  «        ‚|S )z+Wait till the ongoing RPC request finishes.N)r“   r}   r~   rg   ri   r   ÚEOFrU   r|   rR   r    Ú_status)r,   Úresponses     r.   Ú	__await__z_UnaryResponseMixin.__await__1  sÉ   è è € ð		Ø"&Ô"5Ð5Ð5Ð5Ð5Ð5Ð5ˆHˆHøÝÔ%ð 	ð 	ð 	ð
 —>’>Ñ#Ô#ð Ø—’‘”�Øð	øøøð •v”zÐ!Ð!ØÔ ×5Ò5Ñ7Ô7ð ÝÔ,Ñ.Ô.Ð.å'ØÔ%Ô7ØÔ%Ô-ñô ð ð
 ˆOs	   „ ’9A)r9   rE   rF   r}   ÚTaskrJ   r–   rˆ   ri   r   r   r   rž   rL   rM   s   @r.   r’   r’   %  s˜   ø€ € € € € € Ø”LÐ Ð Ñ ð,¸¼ð ,ð ,ð ,ð ,ð˜ð ð ð ð ð ð ð˜9 S¨$°Ð%<Ô=ð ð ð ð ð ð ð ð r/   r’   c                   óÈ   ‡ — e Zd ZU ee         ed<   ej        ed<   eed<   dej        fd„Z	defd„Z
defˆ fd	„Zdefd
„Zdee         fd„Zdefd„Zdeeef         fd„Zˆ xZS )Ú_StreamResponseMixinÚ_message_aiterÚ_preparationÚ_response_styleÚpreparationc                 óD   — d | _         || _        t          j        | _        d S r<   )r¢   r£   rŒ   rŽ   r¤   )r,   r¥   s     r.   Ú_init_stream_response_mixinz0_StreamResponseMixin._init_stream_response_mixinT  s#   € Ø"ˆÔØ'ˆÔÝ(Ô0ˆÔÐÐr/   Ústylec                 ó‚   — | j         t          j        u r	|| _         d S | j         |urt          j        t
          ¦  «        ‚d S r<   )r¤   rŒ   rŽ   r   Ú
UsageErrorÚ_API_STYLE_ERROR©r,   r¨   s     r.   Ú_update_response_stylez+_StreamResponseMixin._update_response_styleY  sI   € ØÔ¥9Ô#4Ð4Ð4Ø#(ˆDÔ Ð Ð ØÔ!¨Ð.Ð.ÝÔ#Õ$4Ñ5Ô5Ð5ð /Ð.r/   r(   c                 ó~   •— t          ¦   «                              ¦   «         r| j                             ¦   «          dS dS r˜   )r*   ri   r£   r™   s    €r.   ri   z_StreamResponseMixin.cancel_  s8   ø€ Ý‰7Œ7�>Š>ÑÔð 	ØÔ×$Ò$Ñ&Ô&Ð&Ø�4Øˆur/   c                óè   K  — |                       ¦   «         ƒ d {V —†}|t          j        ur-|W V — |                       ¦   «         ƒ d {V —†}|t          j        u°-|                      ¦   «         ƒ d {V —† d S r<   )Ú_readr   r›   r€   )r,   Úmessages     r.   Ú_fetch_stream_responsesz,_StreamResponseMixin._fetch_stream_responsese  s—   è è € ØŸ
š
™œÐ$Ð$Ð$Ð$Ð$Ð$ˆØ�VœZÐ'Ð'ØˆMˆMˆMˆMØ ŸJšJ™LœLÐ(Ð(Ð(Ð(Ð(Ð(ˆGð �VœZÐ'Ð'ð
 ×$Ò$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&r/   c                 óŽ   — |                       t          j        ¦  «         | j        €|                      ¦   «         | _        | j        S r<   )r­   rŒ   r�   r¢   r²   r1   s    r.   Ú	__aiter__z_StreamResponseMixin.__aiter__n  s?   € Ø×#Ò#¥IÔ$=Ñ>Ô>Ð>ØÔÐ&Ø"&×">Ò">Ñ"@Ô"@ˆDÔØÔ"Ð"r/   c              ƒ   óB  K  — | j         ƒ d {V —† 	 | j                             ¦   «         ƒ d {V —†}n<# t          j        $ r* |                      ¦   «         s|                      ¦   «          ‚ w xY w|t          j        u rt          j        S t          j
        || j        ¦  «        S r<   )r£   rU   Úreceive_serialized_messager}   r~   rg   ri   r   r›   r   ÚdeserializerX   )r,   Úraw_responses     r.   r°   z_StreamResponseMixin._readt  s»   è è € àÔÐÐÐÐÐÐÐð	Ø!%Ô!2×!MÒ!MÑ!OÔ!OÐOÐOÐOÐOÐOÐOˆLˆLøÝÔ%ð 	ð 	ð 	Ø—>’>Ñ#Ô#ð Ø—’‘”�Øð	øøøð
 �6œ:Ð%Ð%Ý”:ÐÝÔ" <°Ô1LÑMÔMÐMs	   ‘1 ±9A*c              ƒ   ó@  K  — |                       ¦   «         r&|                      ¦   «         ƒ d {V —† t          j        S |                      t
          j        ¦  «         |                      ¦   «         ƒ d {V —†}|t          j        u r|                      ¦   «         ƒ d {V —† |S r<   )rb   r€   r   r›   r­   rŒ   r�   r°   )r,   Úresponse_messages     r.   Úreadz_StreamResponseMixin.read„  s°   è è € Ø�9Š9‰;Œ;ð 	Ø×(Ò(Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ý”:ÐØ×#Ò#¥IÔ$;Ñ<Ô<Ð<à!%§¢¡¤Ð-Ð-Ð-Ð-Ð-Ð-Ðà�vœzÐ)Ð)à×(Ò(Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ØÐr/   )r9   rE   rF   r   r   rJ   r}   rŸ   rŒ   r§   r­   rˆ   ri   r²   r´   r°   r
   r   r»   rL   rM   s   @r.   r¡   r¡   O  s)  ø€ € € € € € Ø! ,Ô/Ð/Ð/Ñ/Ø”,ÐÐÑØÐÐÑð1°w´|ð 1ð 1ð 1ð 1ð
6¨Ið 6ð 6ð 6ð 6ð˜ð ð ð ð ð ð ð'¨|ð 'ð 'ð 'ð 'ð#˜=¨Ô6ð #ð #ð #ð #ðN˜\ð Nð Nð Nð Nð  ˜E '¨<Ð"7Ô8ð  ð  ð  ð  ð  ð  ð  ð  r/   r¡   c                   óà   ‡ — e Zd ZU ej        ed<   eed<   eej                 ed<   e	ed<   dee
         fd„Zde	fd„Zd	efˆ fd
„Zd„ Zde
d	dfd„Zded	dfd„Zdd„Zded	dfd„Zdd„Zdd„Zˆ xZS )Ú_StreamRequestMixinÚ_metadata_sentÚ_done_writing_flagÚ_async_request_pollerÚ_request_styleÚrequest_iteratorc                 ó  — t          j        ¦   «         | _        d| _        |�E| j                             |                      |¦  «        ¦  «        | _        t          j	        | _
        d S d | _        t          j        | _
        d S )NF)r}   ÚEventr¾   r¿   rT   Úcreate_taskÚ_consume_request_iteratorrÀ   rŒ   r�   rÁ   r�   )r,   rÂ   s     r.   Ú_init_stream_request_mixinz._StreamRequestMixin._init_stream_request_mixin˜  sz   € õ &œm™oœoˆÔØ"'ˆÔð Ð'Ø)-¬×)?Ò)?Ø×.Ò.Ð/?Ñ@Ô@ñ*ô *ˆDÔ&õ #,Ô";ˆDÔÐÐà)-ˆDÔ&Ý"+Ô"9ˆDÔÐÐr/   r¨   c                 óJ   — | j         |urt          j        t          ¦  «        ‚d S r<   )rÁ   r   rª   r«   r¬   s     r.   Ú_raise_for_different_stylez._StreamRequestMixin._raise_for_different_style¨  s*   € ØÔ eÐ+Ð+ÝÔ#Õ$4Ñ5Ô5Ð5ð ,Ð+r/   r(   c                 óŒ   •— t          ¦   «                              ¦   «         r"| j        �| j                             ¦   «          dS dS r˜   )r*   ri   rÀ   r™   s    €r.   ri   z_StreamRequestMixin.cancel¬  sA   ø€ Ý‰7Œ7�>Š>ÑÔð 	ØÔ)Ð5ØÔ*×1Ò1Ñ3Ô3Ð3Ø�4Øˆur/   c                 ó8   — | j                              ¦   «          d S r<   )r¾   Úsetr1   s    r.   Ú_metadata_sent_observerz+_StreamRequestMixin._metadata_sent_observer³  s   € ØÔ×ÒÑ!Ô!Ð!Ð!Ð!r/   Nc              ƒ   óz  K  — 	 t          j        |¦  «        st          |d¦  «        r\|2 3 d {V —†}	 |                      |¦  «        ƒ d {V —† Œ$# t          $ r'}t
                               d|¦  «         Y d }~ d S d }~ww xY w6 nU|D ]R}	 |                      |¦  «        ƒ d {V —† Œ# t          $ r'}t
                               d|¦  «         Y d }~ d S d }~ww xY w|                      ¦   «         ƒ d {V —† d S #  t
                               dt          j	        ¦   «         ¦  «         |  
                    ¦   «          Y d S xY w)Nr´   z2Exception while consuming the request_iterator: %sz,Client request_iterator raised exception:
%s)ÚinspectÚ
isasyncgenra   Ú_writer   Ú_LOGGERÚdebugÚ_done_writingÚ	tracebackÚ
format_excri   )r,   rÂ   ÚrequestÚ	rpc_errors       r.   rÆ   z-_StreamRequestMixin._consume_request_iterator¶  sá  è è € ð'	ÝÔ!Ð"2Ñ3Ô3ð µwØ  +ñ8ô 8ð ð &6ð ð ð ð ð ð ð ˜'ð
Ø"Ÿkšk¨'Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2øÝ&ð ð ð ÝŸšð!8ð &ñô ð ð ˜˜˜˜˜˜øøøøðøøøð &6Ð%5ð  0ð ð �Gð
Ø"Ÿkšk¨'Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2øÝ&ð ð ð ÝŸšð!8ð &ñô ð ð ˜˜˜˜˜˜øøøøðøøøð ×$Ò$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&øð	õ �MŠMØ?ÝÔ$Ñ&Ô&ñô ð ð �KŠK‰MŒMˆMˆMˆMˆMøøøsi   „&C5 ªB°C5 ²AÁC5 Á
A?ÁA:Á3C5 Á:A?Á?	C5 Â	B%Â$C5 Â%
CÂ/CÃ
C5 ÃCÃC5 Ã5AD:r×   c              ƒ   ó  K  — |                       ¦   «         rt          j        t          ¦  «        ‚| j        rt          j        t
          ¦  «        ‚| j                             ¦   «         sM| j                             ¦   «         ƒ d {V —† |                       ¦   «         r|  	                    ¦   «         ƒ d {V —† t          j        || j        ¦  «        }	 | j                             |¦  «        ƒ d {V —† d S # t          j        $ rL}| j                             t%          |¦  «        ¦  «         |  	                    ¦   «         ƒ d {V —† Y d }~d S d }~wt          j        $ r* |                      ¦   «         s|                      ¦   «          ‚ w xY wr<   )rb   r}   ÚInvalidStateErrorÚ_RPC_ALREADY_FINISHED_DETAILSr¿   Ú_RPC_HALF_CLOSED_DETAILSr¾   Úis_setÚwaitr€   r   Ú	serializerW   rU   Úsend_serialized_messager   ÚInternalErrorÚset_internal_errorrK   r~   rg   ri   )r,   r×   Úserialized_requestÚerrs       r.   rÑ   z_StreamRequestMixin._writeâ  sµ  è è € Ø�9Š9‰;Œ;ð 	KÝÔ+Õ,IÑJÔJÐJØÔ"ð 	FÝÔ+Õ,DÑEÔEÐEØÔ"×)Ò)Ñ+Ô+ð 	/ØÔ%×*Ò*Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ø�yŠy‰{Œ{ð /Ø×,Ò,Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.å$Ô.Ø�TÔ-ñ
ô 
Ðð	ØÔ#×;Ò;Ð<NÑOÔOÐOÐOÐOÐOÐOÐOÐOÐOÐOøÝÔ#ð 	+ð 	+ð 	+ØÔ×0Ò0µ°S±´Ñ:Ô:Ð:Ø×(Ò(Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*øøøøÝÔ%ð 	ð 	ð 	Ø—>’>Ñ#Ô#ð Ø—’‘”�Øð	øøøs   Ã C3 Ã3FÄAE	Å	<Fc              ƒ   ó  K  — |                       ¦   «         rd S | j        sed| _        	 | j                             ¦   «         ƒ d {V —† d S # t          j        $ r* |                      ¦   «         s|                      ¦   «          ‚ w xY wd S )NT)rb   r¿   rU   Úsend_receive_closer}   r~   rg   ri   r1   s    r.   rÔ   z!_StreamRequestMixin._done_writingù  sª   è è € Ø�9Š9‰;Œ;ð 	àˆFØÔ&ð 	à&*ˆDÔ#ðØÔ'×:Ò:Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<øÝÔ)ð ð ð Ø—~’~Ñ'Ô'ð "Ø—K’K‘M”M�MØðøøøð	ð 	s   ¨A	 Á	9Bc              ƒ   ó~   K  — |                       t          j        ¦  «         |                      |¦  «        ƒ d {V —† d S r<   )rÉ   rŒ   r�   rÑ   )r,   r×   s     r.   Úwritez_StreamRequestMixin.write  sG   è è € Ø×'Ò'­	Ô(?Ñ@Ô@Ð@Ø�kŠk˜'Ñ"Ô"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ð"r/   c              ƒ   ó|   K  — |                       t          j        ¦  «         |                      ¦   «         ƒ d{V —† dS )zUSignal peer that client is done writing.

        This method is idempotent.
        N)rÉ   rŒ   r�   rÔ   r1   s    r.   Údone_writingz _StreamRequestMixin.done_writing  sI   è è € ð
 	×'Ò'­	Ô(?Ñ@Ô@Ð@Ø× Ò Ñ"Ô"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ð"r/   c              ƒ   ó¨   K  — | j                              ¦   «         ƒ d {V —† |                      ¦   «         r|                      ¦   «         ƒ d {V —† d S d S r<   )r¾   rÞ   rb   r€   r1   s    r.   Úwait_for_connectionz'_StreamRequestMixin.wait_for_connection  sq   è è € ØÔ!×&Ò&Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ø�9Š9‰;Œ;ð 	+Ø×(Ò(Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ð	+ð 	+r/   r…   )r9   rE   rF   r}   rÄ   rJ   rˆ   r   rŸ   rŒ   r   rÇ   rÉ   ri   rÍ   rÆ   r   rÑ   rÔ   rè   rê   rì   rL   rM   s   @r.   r½   r½   ’  sp  ø€ € € € € € Ø”MÐ!Ð!Ñ!ØÐÐÑØ# G¤LÔ1Ð1Ð1Ñ1ØÐÐÑð:Ø (Ð)<Ô =ð:ð :ð :ð :ð 6°	ð 6ð 6ð 6ð 6ð˜ð ð ð ð ð ð ð"ð "ð "ð*Ø 3ð*à	ð*ð *ð *ð *ðX Kð °Dð ð ð ð ð.ð ð ð ð# ;ð #°4ð #ð #ð #ð #ð#ð #ð #ð #ð+ð +ð +ð +ð +ð +ð +ð +r/   r½   c                   óÞ   ‡ — e Zd ZU dZeed<   ej        ed<   dedee	         de
deej                 dee         d	ej        d
edee         dee         dej        ddfˆ fd„Zdefd„Zdd„Zˆ xZS )r   z}Object for managing unary-unary RPC calls.

    Returned when an instance of `UnaryUnaryMultiCallable` object is called.
    Ú_requestÚ_invocation_taskr×   ÚdeadlinerZ   ÚcredentialsÚwait_for_readyÚchannelÚmethodr[   r\   r]   r(   Nc                 óH  •— t          ¦   «                              |                     ||||¦  «        |||	|
¦  «         || _        t	          j        ¦   «         | _        |
                     |                      ¦   «         ¦  «        | _	        |  
                    | j	        ¦  «         d S r<   )r*   r+   Úcallrî   r   Úbuild_census_contextÚ_contextrÅ   Ú_invokerï   r–   ©r,   r×   rð   rZ   rñ   rò   ró   rô   r[   r\   r]   r-   s              €r.   r+   zUnaryUnaryCall.__init__#  s–   ø€ õ 	‰Œ×ÒØ�LŠL˜ ¨;¸ÑGÔGØØØ!Øñ	
ô 	
ð 	
ð  ˆŒÝÔ3Ñ5Ô5ˆŒØ $× 0Ò 0°·²±´Ñ @Ô @ˆÔØ×'Ò'¨Ô(=Ñ>Ô>Ð>Ð>Ð>r/   c              ƒ   ó˜  K  — t          j        | j        | j        ¦  «        }	 | j                             || j        | j        ¦  «        ƒ d {V —†}n=# t          j	        $ r+ |  
                    ¦   «         s|                      ¦   «          Y nw xY w| j                             ¦   «         rt          j        || j        ¦  «        S t          j        S r<   )r   rß   rî   rW   rU   Úunary_unaryrV   rø   r}   r~   rg   ri   Úis_okr·   rX   r   r›   )r,   rã   Úserialized_responses      r.   rù   zUnaryUnaryCall._invoke<  sî   è è € Ý$Ô.ØŒM˜4Ô3ñ
ô 
Ðð	Ø(,Ô(9×(EÒ(EØ" D¤N°D´Mñ)ô )ð #ð #ð #ð #ð #ð #ÐÐøõ Ô%ð 	ð 	ð 	Ø—>’>Ñ#Ô#ð Ø—’‘”�øøð	øøøð Ô×"Ò"Ñ$Ô$ð 	ÝÔ&Ø# TÔ%@ñô ð õ ŒzÐs   £,A Á7B
Â	B
c              ƒ   ó„   K  — | j         ƒ d {V —† |                      ¦   «         r|                      ¦   «         ƒ d {V —† d S d S r<   )rï   rb   r€   r1   s    r.   rì   z"UnaryUnaryCall.wait_for_connectionR  se   è è € ØÔ#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ø�9Š9‰;Œ;ð 	+Ø×(Ò(Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ð	+ð 	+r/   r…   )r9   rE   rF   rG   r   rJ   r}   rŸ   r   r‰   r   rH   ÚCallCredentialsrˆ   r   Ú
AioChannelÚbytesr   r   r†   r+   r   rù   rì   rL   rM   s   @r.   r   r     s"  ø€ € € € € € ðð ð
 ÐÐÑØ”lÐ"Ð"Ñ"ð?àð?ð ˜5”/ð?ð ð	?ð
 ˜dÔ2Ô3ð?ð ! œð?ð Ô"ð?ð ð?ð %Ð%8Ô9ð?ð  (Ð(=Ô>ð?ð Ô'ð?ð 
ð?ð ?ð ?ð ?ð ?ð ?ð2˜|ð ð ð ð ð,+ð +ð +ð +ð +ð +ð +ð +r/   r   c                   óÞ   ‡ — e Zd ZU dZeed<   ej        ed<   dedee	         de
deej                 dee         d	ej        d
edee         dee         dej        ddfˆ fd„Zdefd„Zdd„Zˆ xZS )r   zObject for managing unary-stream RPC calls.

    Returned when an instance of `UnaryStreamMultiCallable` object is called.
    rî   Ú_send_unary_request_taskr×   rð   rZ   rñ   rò   ró   rô   r[   r\   r]   r(   Nc                 óH  •— t          ¦   «                              |                     ||||¦  «        |||	|
¦  «         || _        t	          j        ¦   «         | _        |
                     |                      ¦   «         ¦  «        | _	        |  
                    | j	        ¦  «         d S r<   )r*   r+   rö   rî   r   r÷   rø   rÅ   Ú_send_unary_requestr  r§   rú   s              €r.   r+   zUnaryStreamCall.__init__b  s¡   ø€ õ 	‰Œ×ÒØ�LŠL˜ ¨;¸ÑGÔGØØØ!Øñ	
ô 	
ð 	
ð  ˆŒÝÔ3Ñ5Ô5ˆŒØ(,×(8Ò(8Ø×$Ò$Ñ&Ô&ñ)
ô )
ˆÔ%ð 	×(Ò(¨Ô)FÑGÔGÐGÐGÐGr/   c              ƒ   ó  K  — t          j        | j        | j        ¦  «        }	 | j                             || j        | j        ¦  «        ƒ d {V —† d S # t          j	        $ r* |  
                    ¦   «         s|                      ¦   «          ‚ w xY wr<   )r   rß   rî   rW   rU   Úinitiate_unary_streamrV   rø   r}   r~   rg   ri   )r,   rã   s     r.   r  z#UnaryStreamCall._send_unary_request}  s¸   è è € Ý$Ô.ØŒM˜4Ô3ñ
ô 
Ðð	ØÔ#×9Ò9Ø" D¤N°D´Mñô ð ð ð ð ð ð ð ð ð øõ Ô%ð 	ð 	ð 	Ø—>’>Ñ#Ô#ð Ø—’‘”�Øð	øøøs   £,A Á9B
c              ƒ   ó„   K  — | j         ƒ d {V —† |                      ¦   «         r|                      ¦   «         ƒ d {V —† d S d S r<   )r  rb   r€   r1   s    r.   rì   z#UnaryStreamCall.wait_for_connectionŠ  se   è è € ØÔ+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ø�9Š9‰;Œ;ð 	+Ø×(Ò(Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ð	+ð 	+r/   r…   )r9   rE   rF   rG   r   rJ   r}   rŸ   r   r‰   r   rH   r   rˆ   r   r  r  r   r   r†   r+   r   r  rì   rL   rM   s   @r.   r   r   X  s3  ø€ € € € € € ðð ð
 ÐÐÑØ%œlÐ*Ð*Ñ*ðHàðHð ˜5”/ðHð ð	Hð
 ˜dÔ2Ô3ðHð ! œðHð Ô"ðHð ðHð %Ð%8Ô9ðHð  (Ð(=Ô>ðHð Ô'ðHð 
ðHð Hð Hð Hð Hð Hð6¨<ð ð ð ð ð+ð +ð +ð +ð +ð +ð +ð +r/   r   c                   óÂ   ‡ — e Zd ZdZdee         dee         dedeej	                 dee
         dej        ded	ee         d
ee         dej        ddfˆ fd„Zdefd„Zˆ xZS )ÚStreamUnaryCallzObject for managing stream-unary RPC calls.

    Returned when an instance of `StreamUnaryMultiCallable` object is called.
    rÂ   rð   rZ   rñ   rò   ró   rô   r[   r\   r]   r(   Nc                 óL  •— t          ¦   «                              |                     ||||¦  «        |||	|
¦  «         t          j        ¦   «         | _        |                      |¦  «         |                      |
                     |  	                    ¦   «         ¦  «        ¦  «         d S r<   )
r*   r+   rö   r   r÷   rø   rÇ   r–   rÅ   Ú_conduct_rpc©r,   rÂ   rð   rZ   rñ   rò   ró   rô   r[   r\   r]   r-   s              €r.   r+   zStreamUnaryCall.__init__š  s�   ø€ õ 	‰Œ×ÒØ�LŠL˜ ¨;¸ÑGÔGØØØ!Øñ	
ô 	
ð 	
õ Ô3Ñ5Ô5ˆŒØ×'Ò'Ð(8Ñ9Ô9Ð9Ø×'Ò'¨×(8Ò(8¸×9JÒ9JÑ9LÔ9LÑ(MÔ(MÑNÔNÐNÐNÐNr/   c              ƒ   ób  K  — 	 | j                              | j        | j        | j        ¦  «        ƒ d {V —†}n<# t
          j        $ r* |                      ¦   «         s|                      ¦   «          ‚ w xY w| j          	                    ¦   «         rt          j        || j        ¦  «        S t          j        S r<   )rU   Ústream_unaryrV   rÍ   rø   r}   r~   rg   ri   rý   r   r·   rX   r   r›   )r,   rþ   s     r.   r  zStreamUnaryCall._conduct_rpc³  sÕ   è è € ð	Ø(,Ô(9×(FÒ(FØ” Ô <¸d¼mñ)ô )ð #ð #ð #ð #ð #ð #ÐÐøõ Ô%ð 	ð 	ð 	Ø—>’>Ñ#Ô#ð Ø—’‘”�Øð	øøøð
 Ô×"Ò"Ñ$Ô$ð 	ÝÔ&Ø# TÔ%@ñô ð õ ŒzÐs	   „16 ¶9A/)r9   rE   rF   rG   r   r   r‰   r   rH   r   rˆ   r   r  r  r   r   r}   r†   r+   r   r  rL   rM   s   @r.   r  r  ‘  s  ø€ € € € € ðð ðOà"Ð#6Ô7ðOð ˜5”/ðOð ð	Oð
 ˜dÔ2Ô3ðOð ! œðOð Ô"ðOð ðOð %Ð%8Ô9ðOð  (Ð(=Ô>ðOð Ô'ðOð 
ðOð Oð Oð Oð Oð Oð2 Lð ð ð ð ð ð ð ð r/   r  c                   óÒ   ‡ — e Zd ZU dZej        ed<   dee         dee	         de
deej                 dee         dej        d	ed
ee         dee         dej        ddfˆ fd„Zd„ Zˆ xZS )ÚStreamStreamCallz�Object for managing stream-stream RPC calls.

    Returned when an instance of `StreamStreamMultiCallable` object is called.
    Ú_initializerrÂ   rð   rZ   rñ   rò   ró   rô   r[   r\   r]   r(   Nc                 ón  •— t          ¦   «                              |                     ||||¦  «        |||	|
¦  «         t          j        ¦   «         | _        | j                             |                      ¦   «         ¦  «        | _	        |  
                    |¦  «         |                      | j	        ¦  «         d S r<   )r*   r+   rö   r   r÷   rø   rT   rÅ   Ú_prepare_rpcr  rÇ   r§   r  s              €r.   r+   zStreamStreamCall.__init__Ï  sª   ø€ õ 	‰Œ×ÒØ�LŠL˜ ¨;¸ÑGÔGØØØ!Øñ	
ô 	
ð 	
õ Ô3Ñ5Ô5ˆŒØ œJ×2Ò2°4×3DÒ3DÑ3FÔ3FÑGÔGˆÔØ×'Ò'Ð(8Ñ9Ô9Ð9Ø×(Ò(¨Ô):Ñ;Ô;Ð;Ð;Ð;r/   c              ƒ   óð   K  — 	 | j                              | j        | j        | j        ¦  «        ƒ d{V —† dS # t
          j        $ r/ |                      ¦   «         s|                      ¦   «          Y dS Y dS w xY w)z©Prepares the RPC for receiving/sending messages.

        All other operations around the stream should only happen after the
        completion of this method.
        N)	rU   Úinitiate_stream_streamrV   rÍ   rø   r}   r~   rg   ri   r1   s    r.   r  zStreamStreamCall._prepare_rpcè  s°   è è € ð	ØÔ#×:Ò:Ø” Ô <¸d¼mñô ð ð ð ð ð ð ð ð ð øõ Ô%ð 	ð 	ð 	Ø—>’>Ñ#Ô#ð Ø—’‘”����ðð ð ð	øøøs   „17 ·7A5Á4A5)r9   rE   rF   rG   r}   rŸ   rJ   r   r   r‰   r   rH   r   rˆ   r   r  r  r   r   r†   r+   r  rL   rM   s   @r.   r  r  Ä  sü   ø€ € € € € € ðð ð
 ”,ÐÐÑð<à"Ð#6Ô7ð<ð ˜5”/ð<ð ð	<ð
 ˜dÔ2Ô3ð<ð ! œð<ð Ô"ð<ð ð<ð %Ð%8Ô9ð<ð  (Ð(=Ô>ð<ð Ô'ð<ð 
ð<ð <ð <ð <ð <ð <ð2ð ð ð ð ð ð r/   r  );rG   r}   ÚenumÚ	functoolsr   rÏ   ÚloggingrÕ   Útypingr   r   r   r   r   r	   r
   rH   r   Úgrpc._cythonr   Ú r   rV   r   Ú_typingr   r   r   r   r   r   r   r   r   Ú__all__rk   rd   rÛ   rÜ   r«   Ú_OK_CALL_REPRESENTATIONr7   Ú	getLoggerr9   rÒ   ÚRpcErrorr   ÚAioRpcStatusrR   r   ÚIntEnumrŒ   r’   r¡   r½   r   r   r  r  rŠ   r/   r.   ú<module>r%     s"  ðð =Ð <à €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø "Ð "Ð "Ð "Ð "Ð "Ø (Ð (Ð (Ð (Ð (Ð (Ø  Ð  Ð  Ð  Ð  Ð  Ø !Ð !Ð !Ð !Ð !Ð !Ø (Ð (Ð (Ð (Ð (Ð (à
D€àAÐ Ø?Ð Ø 7Ð ØMÐ àHð ð
 Kð ð
ð ð ˆ'Ô
˜HÑ
%Ô
%€ðg
ð g
ð g
ð g
ð g
�$”-ñ g
ô g
ð g
ðT
Ø"ð
àÔð
ð ð
ð 
ð 
ð 
ð\ð \ð \ð \ð \ñ \ô \ð \ð~ð ð ð ð �”ñ ô ð ð'ð 'ð 'ð 'ð '˜$ ¨Ô 5ñ 'ô 'ð 'ðT@ ð @ ð @ ð @ ð @ ˜4ñ @ ô @ ð @ ðFD+ð D+ð D+ð D+ð D+˜$ñ D+ô D+ð D+ðN<+ð <+ð <+ð <+ð <+Ð(¨$°
Ô0Iñ <+ô <+ð <+ð~5+ð 5+ð 5+ð 5+ð 5+Ð*¨D°*Ô2Lñ 5+ô 5+ð 5+ðr0ð 0ð 0ð 0ð 0ØÐ,¨d°JÔ4Nñ0ô 0ð 0ðf0ð 0ð 0ð 0ð 0ØÐ-¨t°ZÔ5Pñ0ô 0ð 0ð 0ð 0r/   