§
    ~Štjty  ã                   óä  — d dl Z d dlZ d dlZd dlZd dlZd dlmZ d dlmZm	Z	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mZmZmZ d dlZd dlZd d	lmZ d
dlmZmZ d
dl m!Z!m"Z" d
dl#m$Z$m%Z% d
dlm&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ d
dl,m-Z- d
dl.m/Z/m0Z0 d
dl1m2Z2m3Z3 d
dl4m5Z5 d
dl6m7Z7m8Z8 d
dl9m:Z: d
dl;m<Z< d
dl=m>Z>m?Z? dZ@dZAer
d dlBZBd
dlCmDZD e	e)e3dedge<f         ZEe	e<gee?         f         ZF e)dde(i i dddd ejG        d¦  «        ¦
  «
        ZH G d „ d!eI¦  «        ZJ G d"„ d#eI¦  «        ZK eK¦   «         ZL ejM        ddd¬$¦  «         G d%„ d&¦  «        ¦   «         ZNeOe)eNz  e3f         ZP G d'„ de"¦  «        ZQdS )(é    N)Údeque)Ú	AwaitableÚCallableÚSequence)Úsuppress)Úescape)Ú
HTTPStatus)ÚLogger)ÚTYPE_CHECKINGÚAnyÚOptionalÚcast)Úunder_cached_propertyé   )ÚAbstractAccessLoggerÚAbstractStreamWriter)ÚPAUSE_RESUME_READING_ERRORSÚBaseProtocol)ÚDEFAULT_CHUNK_SIZEÚceil_timeout)ÚHttpProcessingErrorÚHttpRequestParserÚHttpVersion10ÚRawRequestMessageÚStreamWriterÚWebSocketReader)ÚBadHttpMethod)Úaccess_loggerÚserver_logger)ÚEMPTY_PAYLOADÚStreamReader)Útcp_keepalive)ÚHTTPExceptionÚHTTPInternalServerError)ÚAccessLogger)ÚBaseRequest)ÚResponseÚStreamResponse)ÚRequestHandlerÚRequestPayloadErrorÚPayloadAccessErroré    )ÚServerr)   zasyncio.Task[None]ÚUNKNOWNú/TFc                   ó   — e Zd ZdZdS )r*   zPayload parsing error.N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úR/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/aiohttp/web_protocol.pyr*   r*   N   s   € € € € € Ø Ð Ð Ð r7   r*   c                   ó   — e Zd ZdZdS )r+   z-Payload was accessed after response was sent.Nr1   r6   r7   r8   r+   r+   R   s   € € € € € Ø7Ð7Ð7Ð7r7   r+   )Úauto_attribsÚfrozenÚslotsc                   ó.   — e Zd ZU eed<   eed<   eed<   dS )Ú_ErrInfoÚstatusÚexcÚmessageN)r2   r3   r4   ÚintÚ__annotations__ÚBaseExceptionÚstrr6   r7   r8   r>   r>   Y   s.   € € € € € € à€K€K�KØ	ÐÐÑØ€L€L�L€L€Lr7   r>   c            !       óœ  ‡ — e Zd ZdZdZddeeeej        ddddde	dd	d
œddde
j        dedededee         dedededededededededef ˆ fd„Zdefd„Zeded         fd „¦   «         Zedeeeeeef         z  eeef         z  d!z  fd"„¦   «         Zedeeeeeef         z  eeef         z  d!z  fd#„¦   «         Zedefd$„¦   «         ZdNd&ed!z  dd!fd'„Zd(e
j        dd!fˆ fd)„Zd*e d!z  dd!fˆ fd+„Z!	 dOd,e"d-e#g d!f         d!z  dd!fd.„Z$dPd/„Z%d0e&dd!fd1„Z'defd2„Z(dPd3„Z)dPd4„Z*d5edd!fd6„Z+dPd7„Z,dPd8„Z-d9e.d:e/d;ed!z  dd!fd<„Z0d=e1d>e1dd!fd?„Z2d=e1d>e1dd!fd@„Z3dPdA„Z4d9e.dBed!z  dCe#e.ge5e/         f         dee/ef         fdD„Z6dPdE„Z7d9e.dFe/dBed!z  dee/ef         fdG„Z8	 	 	 dQd9e.dIed*e d!z  dJed!z  de/f
dK„Z9dLe:de#e.ge5e/         f         fdM„Z;ˆ xZ<S )Rr)   aj  HTTP protocol implementation.

    RequestHandler handles incoming HTTP request. It reads request line,
    request headers and request payload and calls handle_request() method.
    By default it always returns with 404 response.

    RequestHandler handles errors in incoming request, like bad
    status line, bad headers or incomplete payload. If any error occurs,
    connection gets closed.

    keepalive_timeout -- number of seconds before closing
                         keep-alive connection

    tcp_keepalive -- TCP keep-alive is on, default is on

    debug -- enable debug mode

    logger -- custom logger object

    access_log_class -- custom class for access_logger

    access_log -- custom logging object

    access_log_format -- access log format string

    loop -- Optional event loop

    max_line_size -- Optional maximum header line size

    max_field_size -- Optional maximum header field size

    max_headers -- Optional maximum header size

    timeout_ceil_threshold -- Optional value to specify
                              threshold to ceil() timeout
                              values

    )"Úmax_field_sizeÚmax_headersÚmax_line_sizeÚ_request_countÚ
_keepaliveÚ_managerÚ_request_handlerÚ_request_factoryÚ_tcp_keepaliveÚ_next_keepalive_close_timeÚ_keepalive_handleÚ_keepalive_timeoutÚ_lingering_timeÚ	_messagesÚ_max_msg_queue_sizeÚ_msg_queue_resume_sizeÚ_msg_queue_pausedÚ_message_tailÚ_handler_waiterÚ_waiterÚ_task_handlerÚ_payload_parserÚ_data_received_cbÚloggerÚdebugÚ
access_logr   Ú_closeÚ_force_closeÚ_current_requestÚ_timeout_ceil_thresholdÚ_request_in_progressÚ_logging_enabledÚ_cachei.  TFiþ  é€   g      $@é   )Úkeepalive_timeoutr"   r^   Úaccess_log_classr`   Úaccess_log_formatr_   rI   rH   rG   Úlingering_timeÚread_bufsizeÚauto_decompressÚtimeout_ceil_thresholdÚmanagerr-   Úlooprj   r"   r^   rk   r`   rl   r_   rI   rH   rG   rm   rn   ro   rp   c                óp  •— t           | _        t           dz  | _        d| _        t	          | |||
||t
          |t           ¬¦	  «	        }t          ¦   «                              ||¦  «         d| _        d| _	        d | _
        || _        |j        | _        |j        | _        |
| _        || _        || _        || _        d| _        d | _        || _        t/          |¦  «        | _        t3          ¦   «         | _        d| _        d | _        d | _        d | _        d | _        d | _         d| _!        	 t/          |¦  «        | _!        n# tD          tF          f$ r Y nw xY w|| _$        |	| _%        || _&        |r# |||¦  «        | _'        | j'        j(        | _)        nd | _'        d| _)        d| _*        d| _+        d| _,        i | _-        d S )Né   F)rI   rG   rH   Úpayload_exceptionro   Úmax_msg_queue_sizer   g        r7   ri   ).ÚMAX_MSG_QUEUE_SIZErU   rV   rW   r   r*   ÚsuperÚ__init__rJ   rK   rc   rL   Úrequest_handlerrM   Úrequest_factoryrN   rI   rH   rG   rO   rP   rQ   rR   ÚfloatrS   r   rT   rX   r]   rZ   rY   r[   r\   rd   Ú	TypeErrorÚ
ValueErrorr^   r_   r`   r   Úenabledrf   ra   rb   re   rg   )Úselfrq   rr   rj   r"   r^   rk   r`   rl   r_   rI   rH   rG   rm   rn   ro   rp   ÚparserÚ	__class__s                     €r8   ry   zRequestHandler.__init__°   sî  ø€ õ* $6ˆÔ õ '9¸AÑ&=ˆÔ#ð "'ˆÔÝ"ØØØØ'Ø)Ø#Ý1Ø+Ý1ð

ñ 

ô 

ˆõ 	‰Œ×Ò˜˜vÑ&Ô&Ð&ð  ˆÔØˆŒØ48ˆÔØ'.ˆŒØ8?Ô8OˆÔØ8?Ô8OˆÔà*ˆÔØ&ˆÔØ,ˆÔà+ˆÔà*-ˆÔ'Ø8<ˆÔØ"3ˆÔÝ$ ^Ñ4Ô4ˆÔå*/©'¬'ˆŒØ ˆÔØ<@ˆÔà48ˆŒØ<@ˆÔØ8<ˆÔØ$(ˆÔà./ˆÔ$ð	Ý+0Ð1GÑ+HÔ+HˆDÔ(Ð(øÝ�:Ð&ð 	ð 	ð 	ØˆDð	øøøð ˆŒØˆŒ
Ø$ˆŒØð 	*Ø>NÐ>NØÐ-ñ?ô ?ˆDÔð %)Ô$6Ô$>ˆDÔ!Ð!à!%ˆDÔØ$)ˆDÔ!àˆŒØ!ˆÔØ$)ˆÔ!Ø&(ˆŒˆˆs   Ä&D; Ä;EÅEÚreturnc                 óT   — d                      | j        j        | j        �dnd¦  «        S )Nz<{} {}>Ú	connectedÚdisconnected)Úformatr‚   r2   Ú	transport©r€   s    r8   Ú__repr__zRequestHandler.__repr__  s0   € Ø×ÒØŒNÔ#Øœ>Ð5ˆKˆK¸>ñ
ô 
ð 	
r7   zssl.SSLContextc                 óH   — | j         €dn| j                              d¦  «        S )zReturn SSLContext if available.NÚ
sslcontext©rˆ   Úget_extra_infor‰   s    r8   Ússl_contextzRequestHandler.ssl_context  s+   € ð
 Œ~Ð%ð ˆDà”×.Ò.¨|Ñ<Ô<ð	
r7   Nc                 óH   — | j         €dn| j                              d¦  «        S )zReturn peername if available.NÚpeernamer�   r‰   s    r8   r‘   zRequestHandler.peername  ó+   € ð Œ~Ð%ð ˆDà”×.Ò.¨zÑ:Ô:ð	
r7   c                 óH   — | j         €dn| j                              d¦  «        S )zReturn sockname if available.NÚsocknamer�   r‰   s    r8   r”   zRequestHandler.sockname&  r’   r7   c                 ó   — | j         S ©N)rR   r‰   s    r8   rj   z RequestHandler.keepalive_timeout1  s   € àÔ&Ð&r7   ç      .@Útimeoutc              ƒ   ól  K  — d| _         | j        �| j                             ¦   «          | j        rÈ| j                             ¦   «         | _        	 t          |¦  «        4 ƒd{V —† | j        ƒ d{V —† ddd¦  «        ƒd{V —† n# 1 ƒd{V —†swxY w Y   nb# t          j	        t          j
        f$ rD d| _        t          j        dk    r*t          j        ¦   «         x}r|                     ¦   «         r‚ Y nw xY w	 t          |¦  «        4 ƒd{V —† | j        �+| j                             t          j	        ¦   «         ¦  «         | j        �8| j                             ¦   «         st          j        | j        ¦  «        ƒ d{V —† ddd¦  «        ƒd{V —† n# 1 ƒd{V —†swxY w Y   n[# t          j	        t          j
        f$ r= t          j        dk    r*t          j        ¦   «         x}r|                     ¦   «         r‚ Y nw xY w| j        �| j                             ¦   «          |                      ¦   «          dS )z±Do worker process exit preparations.

        We need to clean up everything and stop accepting requests.
        It is especially important for keep-alive connections.
        TN©é   é   )rb   rQ   Úcancelre   Ú_loopÚcreate_futurerY   r   ÚasyncioÚCancelledErrorÚTimeoutErrorÚsysÚversion_infoÚcurrent_taskÚ
cancellingrc   Ú_cancelr[   ÚdoneÚshieldÚforce_close)r€   r˜   Útasks      r8   ÚshutdownzRequestHandler.shutdown5  sg  è è € ð !ˆÔàÔ!Ð-ØÔ"×)Ò)Ñ+Ô+Ð+ð Ô$ð 	ð $(¤:×#;Ò#;Ñ#=Ô#=ˆDÔ ð
Ý'¨Ñ0Ô0ð /ð /ð /ð /ð /ð /ð /ð /ØÔ.Ð.Ð.Ð.Ð.Ð.Ð.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /øøåÔ*­GÔ,@ÐAð ð ð Ø'+�Ô$åÔ$¨Ò/Ð/Ý!(Ô!5Ñ!7Ô!7Ð7˜ð 0àŸšÑ)Ô)ð 0ð øøðøøøð	Ý# GÑ,Ô,ð =ð =ð =ð =ð =ð =ð =ð =ØÔ(Ð4ØÔ)×1Ò1µ'Ô2HÑ2JÔ2JÑKÔKÐKàÔ%Ð1¸$Ô:L×:QÒ:QÑ:SÔ:SÐ1Ý!œ.¨Ô);Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =øøõ Ô&­Ô(<Ð=ð 	ð 	ð 	åÔ  GÒ+Ð+Ý$Ô1Ñ3Ô3Ð3�Tð ,à—O’OÑ%Ô%ð ,ð øøð	øøøð ÔÐ)ØÔ×%Ò%Ñ'Ô'Ð'à×ÒÑÔÐÐÐso   ÁB Á%BÁ3B Â
BÂB ÂBÂB ÂAC6Ã5C6Ã:F% ÄA2FÆF% Æ
FÆF% Æ FÆ!F% Æ%AG=Ç<G=rˆ   c                 óÐ  •— t          ¦   «                              |¦  «         t          t          j        |¦  «        }| j        rt          |¦  «         | j        €J ‚| j                             | |¦  «         | j        }t          j
        dk    r*t          j        |                      ¦   «         |d¬¦  «        }n'|                     |                      ¦   «         ¦  «        }|| _        d S )N©r›   é   T©rr   Úeager_start)rx   Úconnection_mader   r    Ú	TransportrO   r"   rL   rž   r£   r¤   ÚTaskÚstartÚcreate_taskr[   )r€   rˆ   Úreal_transportrr   r«   r‚   s        €r8   r²   zRequestHandler.connection_madeg  sÊ   ø€ Ý‰Œ×Ò 	Ñ*Ô*Ð*å�gÔ/°Ñ;Ô;ˆØÔð 	*Ý˜.Ñ)Ô)Ð)àŒ}Ð(Ð(Ð(ØŒ×%Ò% d¨NÑ;Ô;Ð;àŒzˆÝÔ˜wÒ&Ð&Ý”< §
¢
¡¤°4ÀTÐJÑJÔJˆDˆDà×#Ò# D§J¢J¡L¤LÑ1Ô1ˆDØ!ˆÔÐÐr7   r@   c                 óR  •— | j         €d S | j                              | |¦  «         | j         j        }|                      ¦   «          t	          ¦   «                              |¦  «         d | _         d | _        d | _        d | _        | j        �| j         	                    ¦   «          | j
        �+|€t          d¦  «        }| j
                             |¦  «         |r | j        �| j         	                    ¦   «          d | _        | j        �"| j                             ¦   «          d | _        d S d S )NzConnection lost)rL   Úconnection_lostÚhandler_cancellationrª   rx   rN   rM   Ú_parserrQ   r�   rc   ÚConnectionResetErrorr§   r[   r\   Úfeed_eof)r€   r@   rº   r‚   s      €r8   r¹   zRequestHandler.connection_lostx  s/  ø€ ØŒ=Ð ØˆFØŒ×%Ò% d¨CÑ0Ô0Ð0ð  $œ}ÔAÐà×ÒÑÔÐÝ‰Œ×Ò Ñ$Ô$Ð$ØˆŒØ $ˆÔØ $ˆÔØˆŒàÔ!Ð-ØÔ"×)Ò)Ñ+Ô+Ð+àÔ Ð,Øˆ{Ý*Ð+<Ñ=Ô=�ØÔ!×)Ò)¨#Ñ.Ô.Ð.àð 	( DÔ$6Ð$BØÔ×%Ò%Ñ'Ô'Ð'à!ˆÔàÔÐ+ØÔ ×)Ò)Ñ+Ô+Ð+Ø#'ˆDÔ Ð Ð ð ,Ð+r7   r�   Údata_received_cbc                 ó’   — | j         �J ‚|| _         || _        | j        r(| j                              | j        ¦  «         d| _        d S d S )Nr7   )r\   r]   rX   Ú	feed_data)r€   r�   r¾   s      r8   Ú
set_parserzRequestHandler.set_parser˜  s`   € ð
 Ô#Ð+Ð+Ð+à%ˆÔØ!1ˆÔàÔð 	%ØÔ ×*Ò*¨4Ô+=Ñ>Ô>Ð>Ø!$ˆDÔÐÐð	%ð 	%r7   c                 ó   — d S r–   r6   r‰   s    r8   Úeof_receivedzRequestHandler.eof_received¦  s   € Øˆr7   Údatac                 óh  — | j         s| j        rd S | j        �€#| j        �s| j        €J ‚	 | j                             |¦  «        \  }}}n:# t          $ r-}t          d||j        ¬¦  «        t          fg}d}d}Y d }~nd }~ww xY w|D ]1\  }}| xj
        dz  c_
        | j                             ||f¦  «         Œ2| j        }|r+|�)|                     ¦   «         s|                     d ¦  «         | j        s1t#          | j        ¦  «        | j        k    r|                      ¦   «          || _        |r|r|| _        d S d S d S | j        €| j        r|r| xj        |z  c_        d S |rP| j        �|                      ¦   «          | j                             |¦  «        \  }	}|	r|                      ¦   «          d S d S d S )Ni�  )r?   r@   rA   Fr7   r   )rb   ra   r\   Ú	_upgradedr»   rÀ   r   r>   rA   r    rJ   rT   ÚappendrZ   r¨   Ú
set_resultrW   ÚlenrU   Ú_pause_msg_queue_readingrX   r]   Úclose)
r€   rÄ   ÚmessagesÚupgradedÚtailr@   ÚmsgÚpayloadÚwaiterÚeofs
             r8   Údata_receivedzRequestHandler.data_received©  s:  € ØÔð 	 ¤ð 	ØˆFð ÔÑ'°´Ñ'Ø”<Ð+Ð+Ð+ðØ+/¬<×+AÒ+AÀ$Ñ+GÔ+GÑ(�˜( D DøÝ&ð ð ð å S¨c¸3¼;ÐGÑGÔGÍÐWð�ð !�Ø������øøøøðøøøð !)ð 6ð 6‘��WØÐ#Ô# qÑ(Ð#Ô#Ø”×%Ò% s¨G nÑ5Ô5Ð5Ð5à”\ˆFØð (˜FÐ.°v·{²{±}´}Ð.à×!Ò! $Ñ'Ô'Ð'ð
 Ô*ð0å˜œÑ'Ô'¨4Ô+CÒCÐCà×-Ò-Ñ/Ô/Ð/à%ˆDŒNØð *˜Dð *Ø%)�Ô"Ð"Ð"ð*ð *ð *ð *ð Ô!Ð)¨d¬nÐ)ÀÐ)ØÐÔ $Ñ&ÐÔÐÐð ð 	ØÔ%Ð1Ø×&Ò&Ñ(Ô(Ð(ØÔ,×6Ò6°tÑ<Ô<‰IˆC�Øð Ø—
’
‘”���ð	ð 	ðð s   «A
 Á

BÁ#A<Á<Bc                 ó   — | j         S r–   )rW   r‰   s    r8   Ú_reading_paused_for_msg_queuez,RequestHandler._reading_paused_for_msg_queueÚ  s   € ØÔ%Ð%r7   c                 ó|   — d| _         | j        �-	 | j                             ¦   «          d S # t          $ r Y d S w xY wd S )NT)rW   rˆ   Úpause_readingr   r‰   s    r8   rÊ   z'RequestHandler._pause_msg_queue_readingÝ  s]   € Ø!%ˆÔØŒ>Ð%ðØ”×,Ò,Ñ.Ô.Ð.Ð.Ð.øÝ.ð ð ð ð ��ðøøøð &Ð%s   �+ «
9¸9c                 ó  — | j         s4|                      d¦  «         t          | j        ¦  «        | j        k    rd S d| _        | j        s4| j        �/	 | j                             ¦   «          d S # t          $ r Y d S w xY wd S d S )Nr7   F)
rÆ   rÓ   rÉ   rT   rU   rW   Ú_reading_pausedrˆ   Úresume_readingr   r‰   s    r8   Ú_resume_msg_queue_readingz(RequestHandler._resume_msg_queue_readingç  s¬   € ØŒ~ð 	ð ×Ò˜sÑ#Ô#Ð#Ý�4”>Ñ"Ô" dÔ&>Ò>Ð>Ø�Ø!&ˆÔØÔ#ð 	¨¬Ð(BðØ”×-Ò-Ñ/Ô/Ð/Ð/Ð/øÝ.ð ð ð ð ��ðøøøð	ð 	Ð(BÐ(Bs   ÁA- Á-
A;Á:A;Úvalc                 óf   — || _         | j        r"| j                             ¦   «          d| _        dS dS )zMSet keep-alive connection mode.

        :param bool val: new state.
        N)rK   rQ   r�   )r€   rÜ   s     r8   Ú
keep_alivezRequestHandler.keep_aliveø  sC   € ð
 ˆŒØÔ!ð 	*ØÔ"×)Ò)Ñ+Ô+Ð+Ø%)ˆDÔ"Ð"Ð"ð	*ð 	*r7   c                 óX   — d| _         | j        r| j                             ¦   «          dS dS )z�Close connection.

        Stop accepting new pipelining messages and close
        connection when handlers done processing messages.
        TN)ra   rZ   r�   r‰   s    r8   rË   zRequestHandler.close  s9   € ð ˆŒØŒ<ð 	"ØŒL×ÒÑ!Ô!Ð!Ð!Ð!ð	"ð 	"r7   c                 ó¦   — d| _         | j        r| j                             ¦   «          | j        �"| j                             ¦   «          d| _        dS dS )zForcefully close connection.TN)rb   rZ   r�   rˆ   rË   r‰   s    r8   rª   zRequestHandler.force_close  sW   € à ˆÔØŒ<ð 	"ØŒL×ÒÑ!Ô!Ð!ØŒ>Ð%ØŒN× Ò Ñ"Ô"Ð"Ø!ˆDŒNˆNˆNð &Ð%r7   ÚrequestÚresponseÚtimec                 ó¬   — | j         rJ| j        �Et          r|€J ‚| j                             ||| j                             ¦   «         |z
  ¦  «         d S d S d S r–   )rf   r   r   Úlogrž   rã   )r€   rá   râ   rã   s       r8   Ú
log_accesszRequestHandler.log_access  sp   € ð Ô ð 	P TÔ%7Ð%CÝð (ØÐ'Ð'Ð'ØÔ×"Ò" 7¨H°d´j·o²oÑ6GÔ6GÈ$Ñ6NÑOÔOÐOÐOÐOð	Pð 	PÐ%CÐ%Cr7   ÚargsÚkwc                 ó<   — | j         r | j        j         |i |¤Ž d S d S r–   )r_   r^   ©r€   rç   rè   s      r8   Ú	log_debugzRequestHandler.log_debug  s6   € ØŒ:ð 	+ØˆDŒKÔ˜tÐ* rÐ*Ð*Ð*Ð*Ð*ð	+ð 	+r7   c                 ó*   —  | j         j        |i |¤Ž d S r–   )r^   Ú	exceptionrê   s      r8   Úlog_exceptionzRequestHandler.log_exception!  s"   € ØˆŒÔ˜tÐ* rÐ*Ð*Ð*Ð*Ð*r7   c                 ó8  — d | _         | j        s| j        sd S | j        }|                     ¦   «         }| j        }||k     r"|                     || j        ¦  «        | _         d S | j        r/| j         	                    ¦   «         s|  
                    ¦   «          d S d S d S r–   )rQ   rb   rK   rž   rã   rP   Úcall_atÚ_process_keepaliverZ   r¨   rª   )r€   rr   ÚnowÚ
close_times       r8   rñ   z!RequestHandler._process_keepalive$  sµ   € Ø!%ˆÔØÔð 	 D¤Oð 	ØˆFàŒzˆØ�iŠi‰kŒkˆØÔ4ˆ
Ø�ÒÐà%)§\¢\°*¸dÔ>UÑ%VÔ%VˆDÔ"ØˆFð Œ<ð 	 ¤× 1Ò 1Ñ 3Ô 3ð 	Ø×ÒÑÔÐÐÐð	ð 	ð 	ð 	r7   Ú
start_timerz   c              ƒ   óª  K  — d| _         	 	 || _         ||¦  «        ƒ d {V —†}d | _        n# d | _        w xY w	 t          |dd¦  «        rt          j        dt
          ¦  «         |                      |||¦  «        ƒ d {V —†\  }}nõ# t          $ r,}|}|                      |||¦  «        ƒ d {V —†\  }}Y d }~nÄd }~wt          j	        $ r ‚ t          j
        $ rW}|                      d|¬¦  «         |                      |d¦  «        }|                      |||¦  «        ƒ d {V —†\  }}Y d }~nQd }~wt          $ rA}|                      |d|¦  «        }|                      |||¦  «        ƒ d {V —†\  }}Y d }~nd }~ww xY wd| _         | j        �| j                             d ¦  «         n.# d| _         | j        �| j                             d ¦  «         w w xY w||fS )	NTÚ__http_exception__Fzlreturning HTTPException object is deprecated (#2415) and will be removed, please raise the exception insteadzRequest handler timed out.©Úexc_infoiø  éô  )re   rc   ÚgetattrÚwarningsÚwarnÚDeprecationWarningÚfinish_responser#   r    r¡   r¢   rë   Úhandle_errorÚ	ExceptionrY   rÈ   )r€   rá   rô   rz   ÚrespÚresetr@   s          r8   Ú_handle_requestzRequestHandler._handle_request5  s—  è è € ð %)ˆÔ!ð 	6ð-Ø(/�Ô%Ø,˜_¨WÑ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5�à(,�Ô%Ð%ø¨�Ô%Ð,Ð,Ð,Ð,Ð%õ �tÐ1°5Ñ9Ô9ð Ý”ð9õ 'ñ	ô ð ð !%× 4Ò 4°W¸dÀJÑ OÔ OÐOÐOÐOÐOÐOÐO‰KˆD�%�%øõ- ð 	Pð 	Pð 	PØˆDØ $× 4Ò 4°W¸dÀJÑ OÔ OÐOÐOÐOÐOÐOÐO‰KˆD�%�%�%�%�%�%øøøøÝÔ%ð 	ð 	ð 	ØÝÔ#ð 	Pð 	Pð 	PØ�NŠNÐ7À#ˆNÑFÔFÐFØ×$Ò$ W¨cÑ2Ô2ˆDØ $× 4Ò 4°W¸dÀJÑ OÔ OÐOÐOÐOÐOÐOÐO‰KˆD�%�%�%�%�%�%øøøøÝð 	Pð 	Pð 	PØ×$Ò$ W¨c°3Ñ7Ô7ˆDØ $× 4Ò 4°W¸dÀJÑ OÔ OÐOÐOÐOÐOÐOÐO‰KˆD�%�%�%�%�%�%øøøøð	Pøøøð ).ˆDÔ%ØÔ#Ð/ØÔ$×/Ò/°Ñ5Ô5Ð5øøð ).ˆDÔ%ØÔ#Ð/ØÔ$×/Ò/°Ñ5Ô5Ð5Ð5ð 0øøøð �Uˆ{Ðsa   Œ, ¤B ¬	5µB ¹AF# Â
E7Â"B6Â1F# Â6!E7ÃAD)Ä$F# Ä)E7Ä67E2Å-F# Å2E7Å7F# Æ#+Gc           	   ƒ   óœ  K  — | j         }| j        }|€J ‚| j        }d}| j        €J ‚| j        €J ‚| j        �sb| j        s;	 |                     ¦   «         | _        | j        ƒ d{V —† d| _        n# d| _        w xY w| j         	                    ¦   «         \  }}| j
        �| j
                             ¦   «          | j        r1t          | j        ¦  «        | j        k    r|                      ¦   «          | j        r|                     ¦   «         nd}|xj        dz  c_        t'          | |¦  «        }t)          |t*          ¦  «        r|                      |¦  «        }	t.          }n| j        }	|                      ||| || j        pt3          j        |¦  «        ¦  «        }
	 |                      |
||	¦  «        }t8          j        dk    rt3          j        ||d¬¦  «        }n|                     |¦  «        }	 |ƒ d{V —†\  }}nK# t@          $ r> |  !                    d¦  «         Y d|
_"        | j#        €|�|  !                    d¦  «         �n[w xY w~|r=|  !                    d¦  «         	 d|
_"        | j#        €|�|  !                    d¦  «         �ntI          |j%        ¦  «        | _&        | '                    ¦   «         �s€| j(        }| j        �s-|�r*|  !                    d	|¦  «         |                     ¦   «         }||z   }	 | '                    ¦   «         sŠ||k     r„tS          ||z
  ¦  «        4 ƒd{V —† | *                    ¦   «         ƒ d{V —† ddd¦  «        ƒd{V —† n# 1 ƒd{V —†swxY w Y   |                     ¦   «         }| '                    ¦   «         s||k     °„n[# t2          j+        t2          j,        f$ r= t8          j        d
k    r*t3          j        ¦   «         x}r| -                    ¦   «         r‚ Y nw xY w| '                    ¦   «         s0| j        s)|  !                    d¦  «         |  .                    ¦   «          | /                    t`          ¦  «         n˜# t2          j+        $ r+ |  !                    d¦  «         |  1                    ¦   «          ‚ td          $ r5}|  3                    d|¬¦  «         |  1                    ¦   «          Y d}~n&d}~wth          $ r |  1                    ¦   «          ‚ w xY wd|
_"        | j#        €|�|  !                    d¦  «         n,# d|
_"        | j#        €|�|  !                    d¦  «         w w w xY w| j&        rT| j5        sM| j        sF|                     ¦   «         |z   }|| _6        | j7        € | 8                    || j9        ¦  «        | _7        nn| j        �¯b| j        s)d| _        | j#        �| j#         .                    ¦   «          dS dS dS )a_  Process incoming request.

        It reads request line, request headers and request payload, then
        calls handle_request() method. Subclass has to override
        handle_request(). start() handles various exceptions in request
        or response handling. Connection is being closed always unless
        keep_alive(True) specified.
        Nr   r®   Tr°   z&Ignored premature client disconnectionz'Ignored premature client disconnection.z(Ignored premature client disconnection 2z'Start lingering close timer for %s sec.rš   zUncompleted request.zUnhandled exceptionr÷   ):rž   rL   rR   rN   rM   rb   rT   rŸ   rZ   Úpopleftr»   Úmessage_consumedrW   rÉ   rV   rÛ   rf   rã   Úrequests_countr   Ú
isinstancer>   Ú_make_error_handlerÚERRORr[   r    r¥   r  r£   r¤   r´   r¶   ÚConnectionErrorrë   Ú_taskrˆ   ÚboolrÞ   rK   Úis_eofrS   r   Úreadanyr¡   r¢   r¦   rË   Úset_exceptionÚ_PAYLOAD_ACCESS_ERRORrª   r   rî   rD   ra   rP   rQ   rð   rñ   )r€   rr   rq   rj   r  rA   rÐ   rµ   Úwriterrz   rá   Úcoror«   r  rm   rò   Úend_tÚtr@   ró   s                       r8   rµ   zRequestHandler.start`  s!  è è € ð ŒzˆØ”-ˆØÐ"Ð"Ð"Ø Ô3ÐØˆØÔ$Ð0Ð0Ð0ØÔ$Ð0Ð0Ð0àÔ#ñ |	Ø”>ð (ð(à#'×#5Ò#5Ñ#7Ô#7�D”LØœ,Ð&Ð&Ð&Ð&Ð&Ð&Ð&à#'�D”L�Lø 4�D”LÐ'Ð'Ð'Ð'à#œ~×5Ò5Ñ7Ô7ÑˆG�Wð Œ|Ð'Ø”×-Ò-Ñ/Ô/Ð/àÔ&ð1å˜œÑ'Ô'¨4Ô+FÒFÐFà×.Ò.Ñ0Ô0Ð0ð $(Ô#8ÐB�D—I’I‘K”K�K¸dˆEàÐ"Ô" aÑ'Ð"Ô"Ý! $¨Ñ-Ô-ˆFÝ˜'¥8Ñ,Ô,ð 8à"&×":Ò":¸7Ñ"CÔ"C�Ý��à"&Ô"7�ð
 ×+Ò+ØØØØØÔ"Ð@¥gÔ&:¸4Ñ&@Ô&@ñô ˆGðCNà×+Ò+¨G°U¸OÑLÔL�ÝÔ# wÒ.Ð.Ý"œ<¨°4ÀTÐJÑJÔJ�D�Dà×+Ò+¨DÑ1Ô1�DðØ(, * * * * * *‘K�D˜%˜%øÝ&ð ð ð Ø—N’NÐ#KÑLÔLÐLØðl !%�”Ø”>Ð)¨dÐ.>Ø—N’NÐ#LÑMÔMÐMùðuøøøð
 Øð Ø—N’NÐ#MÑNÔNÐNØð` !%�”Ø”>Ð)¨dÐ.>Ø—N’NÐ#LÑMÔMÐMùõ_ #' t¤Ñ"7Ô"7�”ð —~’~Ñ'Ô'ñ %Ø%)Ô%9�NØÔ,ñ &°ñ &ØŸšØEÀ~ñô ð ð #Ÿiši™kœk˜Ø # nÑ 4˜ð&Ø&-§n¢nÑ&6Ô&6ð 2¸3Àº;¸;Ý+7¸À¹Ñ+DÔ+Dð !<ð !<ð !<ð !<ð !<ð !<ð !<ð !<à*1¯/ª/Ñ*;Ô*;Ð$;Ð$;Ð$;Ð$;Ð$;Ð$;Ð$;ð!<ð !<ð !<ñ !<ô !<ð !<ð !<ð !<ð !<ð !<ð !<ð !<ð !<ð !<ð !<ð !<ð !<ð !<ð !<ð !<ð !<ð !<ð !<øøøð !<ð !<ð !<ð !<ð '+§i¢i¡k¤k ð	 '.§n¢nÑ&6Ô&6ð 2¸3Àº;¸;øøõ
 !(Ô 6½Ô8LÐMð &ð &ð &å #Ô 0°GÒ ;Ð ;Ý*1Ô*>Ñ*@Ô*@Ð%@ Qð !<à$%§L¢L¡N¤Nð !<ð !&øøð&øøøð #Ÿ>š>Ñ+Ô+ð %°DÔ4Eð %ØŸšÐ'=Ñ>Ô>Ð>ØŸ
š
™œ˜à×%Ò%Õ&;Ñ<Ô<Ð<Ð<øåÔ)ð ð ð Ø—’ÐGÑHÔHÐHØ× Ò Ñ"Ô"Ð"ØÝð #ð #ð #Ø×"Ò"Ð#8À3Ð"ÑGÔGÐGØ× Ò Ñ"Ô"Ð"Ð"Ð"Ð"Ð"Ð"øøøøÝ ð ð ð Ø× Ò Ñ"Ô"Ð"Øðøøøð !%�”Ø”>Ð)¨dÐ.>Ø—N’NÐ#LÑMÔMÐMøøð !%�”Ø”>Ð)¨dÐ.>Ø—N’NÐ#LÑMÔMÐMÐMð *Ð.>øøøð Œð 	 t¤{ð 	¸4Ô;Lð 	à!ŸYšY™[œ[Ð+<Ñ<�
Ø2<�Ô/ØÔ)Ð1Ø-1¯\ª\Ø" DÔ$;ñ.ô .�DÔ*øð ðy Ô#ñ |	ð~ Ô ð 	'Ø!%ˆDÔØŒ~Ð)Ø”×$Ò$Ñ&Ô&Ð&Ð&Ð&ð	'ð 	'à)Ð)s³   Á &A. Á.	A7ÆAQ Ç,G8 Ç7Q Ç8I ÈQ È?I É Q ÊA/Q Ë32N Ì%MÍ N Í
MÍN ÍMÍ 1N ÎQ ÎAO*Ï'Q Ï)O*Ï*A!Q ÑT
 ÑAS!Ò+R>Ò9T
 Ò>#S!Ó!T
 Ô
)T3r  c              ƒ   óJ  K  — |                      ¦   «          | j        ��| j                             d¦  «         d| _        | j        rg| j                             | j        ¦  «        \  }}}|| _        |D ]1\  }}| xj        dz  c_        | j                             ||f¦  «         Œ2| j	        �J ‚	 |j
        }	n|# t          $ ro |€|                      d¦  «         n|                      d|›�¦  «         t          ¦   «         }
t          |
j        |
j        |
j        |
j        ¬¦  «        }|j
        }	Y nw xY w	  |	|¦  «        ƒ d{V —† |                     ¦   «         ƒ d{V —† n+# t(          $ r |                      |||¦  «         |dfcY S w xY w|                      |||¦  «         |dfS )a   Prepare the response and write_eof, then log access.

        This has to
        be called within the context of any exception so the access logger
        can get exception information. Returns True if the client disconnects
        prematurely.
        NFr   z+Missing return statement on request handlerz3Web-handler should return a response instance, got )r?   ÚreasonÚtextÚheadersT)Ú_finishr»   Úset_upgradedrÆ   rX   rÀ   rJ   rT   rÇ   rZ   ÚprepareÚAttributeErrorrî   r$   r'   r?   r  r  r  Ú	write_eofr  ræ   )r€   rá   r  rô   rÌ   rÆ   rÎ   rÏ   rÐ   Úprepare_methr@   s              r8   rþ   zRequestHandler.finish_responseõ  s  è è € ð 	�ŠÑÔÐØŒ<Ð#ØŒL×%Ò% eÑ,Ô,Ð,Ø"ˆDŒNØÔ!ð ,Ø,0¬L×,BÒ,BÀ4ÔCUÑ,VÔ,VÑ)�˜) TØ%)�Ô"Ø$,ð :ð :‘L�C˜ØÐ'Ô'¨1Ñ,Ð'Ô'Ø”N×)Ò)¨3°¨.Ñ9Ô9Ð9Ð9ð ”|Ð+Ð+Ð+ð	(Øœ<ˆLˆLøÝð 	(ð 	(ð 	(Øˆ|Ø×"Ò"Ð#PÑQÔQÐQÐQà×"Ò"ØRÈ$ÐRÐRñô ð õ *Ñ+Ô+ˆCÝØ”z¨#¬*¸3¼8ÈSÌ[ðñ ô ˆDð  œ<ˆLˆLˆLð	(øøøð	Ø�,˜wÑ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ø—.’.Ñ"Ô"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ð"øÝð 	ð 	ð 	Ø�OŠO˜G T¨:Ñ6Ô6Ð6Ø˜�:ÐÐÐð	øøøð 	�Š˜  zÑ2Ô2Ð2Ø�Uˆ{Ðs%   Â.B6 Â6A6D/Ä.D/Ä3+E Å%FÆFrù   r?   rA   c                 ó  — | j         dk    r8t          |t          ¦  «        r#| j                             d|j        |¬¦  «         n|                      d|j        |¬¦  «         |j        j        dk    rt          d¦  «        ‚d}|t          j        k    rÍt          j        j        › dt          j        j        › �}t          j        j        }d}| j        r?t          t           ¦  «        5  t#          j        ¦   «         }ddd¦  «         n# 1 swxY w Y   d	|j                             d
d¦  «        v r&|rt+          |¦  «        }d|› d�}d|› d|› d|› d�}d	}n|r|}|dz   |z   }t-          |||¬¦  «        }	|	                     ¦   «          |	S )z›Handle errors.

        Returns HTTP response with specific status code. Logs additional
        information. It always closes current connection.
        r   zError handling request from %sr÷   r   zMResponse is sent already, cannot send another response with the error messagez
text/plainú Nz	text/htmlÚAcceptÚ z<h2>Traceback:</h2>
<pre>z</pre>z<html><head><title>z</title></head><body>
<h1>z</h1>
z
</body></html>
z

)r?   r  Úcontent_type)rJ   r  r   r^   r_   Úremoterî   r  Úoutput_sizer  r	   ÚINTERNAL_SERVER_ERRORÚvalueÚphraseÚdescriptionr   r   Ú	tracebackÚ
format_excr  ÚgetÚhtml_escaper'   rª   )
r€   rá   r?   r@   rA   ÚctÚtitlerÏ   Útbr  s
             r8   rÿ   zRequestHandler.handle_error$  s*  € ð Ô !Ò#Ð#­
°3½Ñ(FÔ(FÐ#ð
 ŒK×ÒØ0°'´.È3ð ñ ô ð ð ð ×ÒØ0°'´.È3ð ñ ô ð ð
 Œ>Ô%¨Ò)Ð)Ý!ð)ñô ð ð
 ˆØ•ZÔ5Ò5Ð5Ý!Ô7Ô=ÐiÐiÅ
Ô@`Ô@gÐiÐiˆEÝÔ2Ô>ˆCØˆBØŒzð 0Ý�iÑ(Ô(ð 0ð 0Ý"Ô-Ñ/Ô/�Bð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð ˜gœo×1Ò1°(¸BÑ?Ô?Ð?Ð?Øð BÝ$ R™œ�BØA°rÐAÐAÐA�Cð1Ø#ð1ð 1à*/ð1ð 1ð ð1ð 1ð 1ð ð !��àð Ø�CØ &™.¨3Ñ.�å˜v¨GÀ"ÐEÑEÔEˆØ×ÒÑÔÐàˆs   Ã%DÄD	ÄD	Úerr_infoc                 ó4   ‡ ‡— dt           dt          fˆˆ fd„}|S )Nrá   rƒ   c              “   óV   •K  — ‰                      | ‰j        ‰j        ‰j        ¦  «        S r–   )rÿ   r?   r@   rA   )rá   r2  r€   s    €€r8   Úhandlerz3RequestHandler._make_error_handler.<locals>.handlere  s/   øè è € Ø×$Ò$Ø˜œ¨(¬,¸Ô8Hñô ð r7   )r&   r(   )r€   r2  r5  s   `` r8   r	  z"RequestHandler._make_error_handlerb  s<   øø€ ð	¥;ð 	µ>ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð
 ˆr7   )r—   r–   )rƒ   N)rù   NN)=r2   r3   r4   r5   Ú	__slots__r   r%   r   Ú
LOG_FORMATr   r    ÚAbstractEventLoopr|   r  r
   Útyper   rE   rB   ry   rŠ   r   r   r�   Útupler‘   r”   Úpropertyrj   r¬   ÚBaseTransportr²   rD   r¹   r   r   rÁ   rÃ   ÚbytesrÓ   rÕ   rÊ   rÛ   rÞ   rË   rª   r&   r(   ræ   r   rë   rî   rñ   r   r  rµ   rþ   rÿ   r>   r	  Ú__classcell__)r‚   s   @r8   r)   r)   c   sÝ  ø€ € € € € ð%ð %ðN#€IðV $(Ø"Ø&Ø7CØ*Ø!-Ô!8ØØ!ØØ"Ø $Ø.Ø $Ø()ð'Z)ð Z)ð Z)àðZ)ð Ô'ð	Z)ð !ðZ)ð ðZ)ð ðZ)ð Ð3Ô4ðZ)ð ðZ)ð ðZ)ð ðZ)ð ðZ)ð ðZ)ð ðZ)ð  ð!Z)ð" ð#Z)ð$ ð%Z)ð& !&ð'Z)ð Z)ð Z)ð Z)ð Z)ð Z)ðx
˜#ð 
ð 
ð 
ð 
ð ð
˜XÐ&6Ô7ð 
ð 
ð 
ñ Ôð
ð ð
à	ˆu�S˜#˜s CÐ'Ô(Ñ	(¨5°°c°¬?Ñ	:¸TÑ	Að
ð 
ð 
ñ Ôð
ð ð
à	ˆu�S˜#˜s CÐ'Ô(Ñ	(¨5°°c°¬?Ñ	:¸TÑ	Að
ð 
ð 
ñ Ôð
ð ð' 5ð 'ð 'ð 'ñ „Xð'ð0ð 0 e¨d¡lð 0¸dð 0ð 0ð 0ð 0ðd"¨Ô)>ð "À4ð "ð "ð "ð "ð "ð "ð"( =°4Ñ#7ð (¸Dð (ð (ð (ð (ð (ð (ðF 7;ð%ð %àð%ð # 2 t 8Ô,¨tÑ3ð%ð 
ð	%ð %ð %ð %ðð ð ð ð/ %ð /¨Dð /ð /ð /ð /ðb&¨tð &ð &ð &ð &ðð ð ð ðð ð ð ð"*˜dð * tð *ð *ð *ð *ð"ð "ð "ð "ð"ð "ð "ð "ðPØ"ðPØ.<ðPØDIÈDÁLðPà	ðPð Pð Pð Pð+˜sð +¨#ð +°$ð +ð +ð +ð +ð+ 3ð +¨cð +°dð +ð +ð +ð +ðð ð ð ð")àð)ð ˜D‘Lð)ð " ; -°¸>Ô1JÐ"JÔKð	)ð
 
ˆ~˜tÐ#Ô	$ð)ð )ð )ð )ðVS'ð S'ð S'ð S'ðj-Ø"ð-Ø*8ð-ØFKÈdÁlð-à	ˆ~˜tÐ#Ô	$ð-ð -ð -ð -ðd Ø$(Ø"ð<ð <àð<ð ð<ð ˜TÑ!ð	<ð
 �t‘ð<ð 
ð<ð <ð <ð <ð|Ø ðà	�;�- ¨>Ô!:Ð:Ô	;ðð ð ð ð ð ð ð r7   )Rr    Úasyncio.streamsr£   r+  rû   Úcollectionsr   Úcollections.abcr   r   r   Ú
contextlibr   Úhtmlr   r.  Úhttpr	   Úloggingr
   Útypingr   r   r   r   ÚattrÚyarlÚ	propcacher   Úabcr   r   Úbase_protocolr   r   Úhelpersr   r   r   r   r   r   r   r   Úhttp_exceptionsr   rå   r   r   Ústreamsr    r!   Útcp_helpersr"   Úweb_exceptionsr#   r$   Úweb_logr%   Úweb_requestr&   Úweb_responser'   r(   Ú__all__rw   ÚsslÚ
web_serverr-   Ú_RequestFactoryÚ_RequestHandlerÚURLr
  r   r*   r+   r  Úsr>   r:  Ú_MsgTyper)   r6   r7   r8   ú<module>r\     sè  ðØ €€€Ø Ð Ð Ð Ø 
€
€
€
Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5à €€€Ø €€€Ø +Ð +Ð +Ð +Ð +Ð +à ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ DØ 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð +Ð *Ð *Ð *Ð *Ð *Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø &Ð &Ð &Ð &Ð &Ð &Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ !Ð !Ð !Ð !Ð !Ð !Ø $Ð $Ð $Ð $Ð $Ð $Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2à
I€ð
 Ð àð #Ø€J€J€Jà"Ð"Ð"Ð"Ð"Ð"ð àØØØØðð ðô	€ð ˜K˜=¨)°NÔ*CÐCÔD€àÐØØØØØØØØ	Ø	Ø€D„HˆS�M„Mñ	ô 	€ð!ð !ð !ð !ð !˜)ñ !ô !ð !ð8ð 8ð 8ð 8ð 8˜ñ 8ô 8ð 8ð +Ð*Ñ,Ô,Ð ð €„�T $¨dÐ3Ñ3Ô3ðð ð ð ð ñ ô ñ 4Ô3ðð Ð" XÑ-¨|Ð;Ô<€ðGð Gð Gð Gð G�\ñ Gô Gð Gð Gð Gr7   