Ë
    ‹V.jBs  ã                   óÞ  — d dl Z d dlZd dlZd dlZ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 d dlmZ d dlmZmZmZmZmZmZmZmZ d dlmZmZ ddlmZmZ dd	lm Z  dd
l!m"Z" ddl#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z- ddlm.Z.m/Z/m0Z0 ddlm1Z1 ddl2m3Z3m4Z4 eD � ci c]  } | jj                  | jl                  “Œ c} Z7dZ8dZ9erddl:m;Z; ee<ef   Z=nej>                  j*                  Z= G d„ dej|                  «      Z?e?D �ci c]  }|jj                  |“Œ c}Z@ G d„ de=e'«      ZA G d„ deA«      ZBe+fddddddej†                  dœdedee<   deeD   deEdee<   d ee4   d!e<d"e3d#eBfd$„ZFyc c} w c c}w )%é    N)ÚExecutor)Ú
HTTPStatus)ÚSimpleCookie)ÚTYPE_CHECKINGÚAnyÚDictÚIteratorÚMutableMappingÚOptionalÚUnionÚcast)ÚCIMultiDictÚistré   )ÚhdrsÚpayload)ÚAbstractStreamWriter)ÚZLibCompressor)
ÚETAG_ANYÚQUOTED_ETAG_REÚETagÚHeadersMixinÚmust_be_empty_bodyÚparse_http_dateÚrfc822_formatted_timeÚsentinelÚshould_remove_content_lengthÚvalidate_etag_value)ÚSERVER_SOFTWAREÚHttpVersion10ÚHttpVersion11)ÚPayload)ÚJSONEncoderÚLooseHeadersi   )ÚContentCodingÚStreamResponseÚResponseÚjson_response)ÚBaseRequestc                   ó   — e Zd ZdZdZdZy)r%   ÚdeflateÚgzipÚidentityN)Ú__name__Ú
__module__Ú__qualname__r+   r,   r-   © ó    úVC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\aiohttp/web_response.pyr%   r%   <   s   „ ð
 €GØ€DØ�Hr2   r%   c                   ót  ‡ — e Zd ZU edeeef   ed<   dZdZ	dZ
ee   ed<   dZeed<   dZeed<   ej                   Zeed<   dZee   ed	<   dZed
   ed<   dZee   ed<   dZeed<   dZee   ed<   dZdZee   ed<   dddddœdedee   dee   deee      ddf
d„Z e!defd„«       Z"e!d]d„«       Z#e!defd„«       Z$e!defd„«       Z%e!defd„«       Z&e!defd„«       Z'	 d^dedee   ddfd„Z(dedee   ddfd „Z)e!dee   fd!„«       Z*d_d"„Z+e!defd#„«       Z,e!defd$„«       Z-d^d%ee   ddfd&„Z.dej                   fd'eeeef      d(eddfd)„Z/e!d`d*„«       Z0e!defd+„«       Z1dddd,ddddd-œd.ed/ed0ee   d1ee   d2eeeef      d3ed4ee   d5ee   d6ee   d7ee   ddfd8„Z2dd,dddd9œd.ed1ee   d3ed4ee   d5ee   d7ee   ddfd:„Z3e!dee   fˆ fd;„«       Z4e4jj                  d/ee   ddfd<„«       Z4e!defˆ fd=„«       Z6e6jj                  d/eddfd>„«       Z6e!dee   fˆ fd?„«       Z7e7jj                  d/ee   ddfd@„«       Z7e!dee8jp                     fdA„«       Z9e9jj                  d/eeee:e8jp                  ef      ddfdB„«       Z9e!dee;   fdC„«       Z<e<jj                  d/eee;ef      ddfdD„«       Z<e=j|                  fdEe?ddfdF„Z@dGeddfdH„ZAdadJ„ZBdId
dee   fdK„ZCdId
defdL„ZDd_dM„ZEd_dN„ZFdOeddfdP„ZGd_dQ„ZHdbdOeddfdR„ZIdefdS„ZJdTedeKfdU„ZLdTed/eKddfdV„ZMdTeddfdW„ZNdefdX„ZOdePe   fdY„ZQdefdZ„ZRd[eSdefd\„ZTˆ xZUS )cr&   NÚ_bodyTÚ_keep_aliveFÚ_chunkedÚ_compressionÚ_compression_strategyÚ_compression_forcer)   Ú_reqÚ_payload_writerÚ	_eof_sentÚ_must_be_empty_bodyr   Ú_cookieséÈ   )ÚstatusÚreasonÚheadersÚ_real_headersrA   rB   rC   rD   Úreturnc                óŽ   — i | _         |�|| _        n"|�t        |«      | _        nt        «       | _        | j                  ||«       y)a;  Initialize a new stream response object.

        _real_headers is an internal parameter used to pass a pre-populated
        headers object. It is used by the `Response` class to avoid copying
        the headers when creating a new response object. It is not intended
        to be used by external code.
        N)Ú_stateÚ_headersr   Ú_set_status)ÚselfrA   rB   rC   rD   s        r3   Ú__init__zStreamResponse.__init__^   sC   € ð ')ˆŒàÐ$Ø)ˆD�MØÐ Ü.9¸'Ó.BˆD�Mä'›MˆDŒMà×Ñ˜ Õ(r2   c                 ó:   — | j                   xs | j                  d uS ©N)r=   r<   ©rJ   s    r3   ÚpreparedzStreamResponse.preparedx   s   € à�~‰~ÒA ×!5Ñ!5¸TÐ!AÐAr2   c                 óH   — | j                   r| j                   j                  S y rM   )r;   ÚtaskrN   s    r3   rQ   zStreamResponse.task|   s   € à�9Š9Ø—9‘9—>‘>Ð!àr2   c                 ó   — | j                   S rM   )Ú_statusrN   s    r3   rA   zStreamResponse.statusƒ   ó   € à�|‰|Ðr2   c                 ó   — | j                   S rM   )r7   rN   s    r3   ÚchunkedzStreamResponse.chunked‡   ó   € à�}‰}Ðr2   c                 ó   — | j                   S rM   )r8   rN   s    r3   ÚcompressionzStreamResponse.compression‹   ó   € à× Ñ Ð r2   c                 ó   — | j                   S rM   )Ú_reasonrN   s    r3   rB   zStreamResponse.reason�   rT   r2   c                 óN   — | j                   rJ d«       ‚| j                  ||«       y )NzGCannot change the response status code after the headers have been sent)rO   rI   ©rJ   rA   rB   s      r3   Ú
set_statuszStreamResponse.set_status“   s-   € ð —’ð	UàTó	UØà×Ñ˜ Õ(r2   c                 ó¤   — t        |«      | _        |€(t        j                  | j                  d«      }|| _        y d|v rt	        d«      ‚|| _        y )NÚ Ú
zReason cannot contain \n)ÚintrS   ÚREASON_PHRASESÚgetÚ
ValueErrorr\   r^   s      r3   rI   zStreamResponse._set_status�   sM   € Ü˜6“{ˆŒØˆ>Ü#×'Ñ'¨¯©°bÓ9ˆFð ˆ�ð �V‰^ÜÐ8Ó9Ð9Øˆ�r2   c                 ó   — | j                   S rM   ©r6   rN   s    r3   Ú
keep_alivezStreamResponse.keep_alive¥   s   € à×ÑÐr2   c                 ó   — d| _         y )NFrh   rN   s    r3   Úforce_closezStreamResponse.force_close©   s
   € Ø ˆÕr2   c                 ó   — | j                   S rM   )Ú_body_lengthrN   s    r3   Úbody_lengthzStreamResponse.body_length¬   rZ   r2   c                 ó~   — t        j                  dt        «       | j                  sJ ‚| j                  j                  S )Nzoutput_length is deprecated)ÚwarningsÚwarnÚDeprecationWarningr<   Úbuffer_sizerN   s    r3   Úoutput_lengthzStreamResponse.output_length°   s3   € ä�‰Ð3Ô5GÔHØ×#Ò#Ð#Ð#Ø×#Ñ#×/Ñ/Ð/r2   Ú
chunk_sizec                 ó˜   — t         j                  | j                  v rt        d«      ‚|�t	        j
                  dt        «       d| _        y)z,Enables automatic chunked transfer encoding.z>You can't enable chunked encoding when a content length is setNzChunk size is deprecated #1615T)r   ÚCONTENT_LENGTHrH   ÚRuntimeErrorrp   rq   rr   r7   )rJ   ru   s     r3   Úenable_chunked_encodingz&StreamResponse.enable_chunked_encoding¶   sC   € ä×Ñ $§-¡-Ñ/ÜØPóð ð Ð!Ü�M‰MÐ:Ô<NÔOØˆ�r2   ÚforceÚstrategyc                 óú   — t        |t        «      r=|rt        j                  nt        j                  }t        j                  dt        «       n|�t        |t        «      sJ d«       ‚d| _        || _	        || _
        y)z&Enables response compression encoding.z+Using boolean for force is deprecated #3318Nz1force should one of None, bool or ContentEncodingT)Ú
isinstanceÚboolr%   r+   r-   rp   rq   rr   r8   r:   r9   )rJ   rz   r{   s      r3   Úenable_compressionz!StreamResponse.enable_compressionÀ   sx   € ô �eœTÔ"Ù-2”M×)Ò)¼×8NÑ8NˆEÜ�M‰MØ=Ô?Qõð ÐÜØ”}ôð CàBóCð ð !ˆÔØ"'ˆÔØ%-ˆÕ"r2   c                 ó   — | j                   S rM   )rH   rN   s    r3   rC   zStreamResponse.headersÕ   rW   r2   c                 óP   — | j                   €t        «       | _         | j                   S rM   )r?   r   rN   s    r3   ÚcookieszStreamResponse.cookiesÙ   s   € à�=‰=Ð Ü(›NˆDŒMØ�}‰}Ðr2   Ú/)ÚexpiresÚdomainÚmax_ageÚpathÚsecureÚhttponlyÚversionÚsamesiteÚnameÚvaluer„   r…   r†   r‡   rˆ   r‰   rŠ   r‹   c                ó6  — | j                   €t        «       | _         || j                   |<   | j                   |   }|�||d<   n|j                  d«      dk(  r|d= |�||d<   |�t        |«      |d<   nd|v r|d= ||d<   |�||d<   |�||d<   |	�|	|d	<   |
�|
|d
<   yy)zŸSet or update response cookie.

        Sets new cookie or updates existent with new value.
        Also updates only those params which are not None.
        Nr„   úThu, 01 Jan 1970 00:00:00 GMTr…   zmax-ager‡   rˆ   r‰   rŠ   r‹   )r?   r   re   Ústr)rJ   rŒ   r�   r„   r…   r†   r‡   rˆ   r‰   rŠ   r‹   Úcs               r3   Ú
set_cookiezStreamResponse.set_cookieß   sÕ   € ð& �=‰=Ð Ü(›NˆDŒMà#ˆ�‰�dÑØ�M‰M˜$ÑˆàÐØ"ˆAˆiŠLØ�U‰U�9ÓÐ!@Ò@Ø�)�àÐØ ˆAˆh‰KàÐÜ˜w›<ˆAˆiŠLØ˜!‰^Ø�)�àˆˆ&‰	àÐØ ˆAˆh‰KØÐØ$ˆAˆj‰MØÐØ"ˆAˆi‰LØÐØ$ˆAˆjŠMð  r2   )r…   r‡   rˆ   r‰   r‹   c                óˆ   — | j                   �| j                   j                  |d«       | j                  |ddd|||||¬«	       y)zBDelete cookie.

        Creates new empty expired cookie.
        Nra   r   r�   )r†   r„   r…   r‡   rˆ   r‰   r‹   )r?   Úpopr’   )rJ   rŒ   r…   r‡   rˆ   r‰   r‹   s          r3   Ú
del_cookiezStreamResponse.del_cookie  sN   € ð �=‰=Ð$Ø�M‰M×Ñ˜d DÔ)Ø�‰ØØØØ3ØØØØØð 	õ 
	
r2   c                 ó   •— t         ‰| �  S rM   )ÚsuperÚcontent_length©rJ   Ú	__class__s    €r3   r˜   zStreamResponse.content_length-  s   ø€ ô ‰wÑ%Ð%r2   c                 óî   — |�It        |«      }| j                  rt        d«      ‚t        |«      | j                  t
        j                  <   y | j                  j                  t
        j                  d «       y )Nz<You can't set content length when chunked encoding is enable)rc   r7   rx   r�   rH   r   rw   r”   ©rJ   r�   s     r3   r˜   zStreamResponse.content_length2  s\   € àÐÜ˜“JˆEØ�}Š}Ü"ØRóð ô 25°U³ˆD�M‰Mœ$×-Ñ-Ò.à�M‰M×Ñœd×1Ñ1°4Õ8r2   c                 ó   •— t         ‰| �  S rM   )r—   Úcontent_typer™   s    €r3   rž   zStreamResponse.content_type>  s   ø€ ô ‰wÑ#Ð#r2   c                 ó\   — | j                    t        |«      | _        | j                  «        y rM   )rž   r�   Ú_content_typeÚ_generate_content_type_headerrœ   s     r3   rž   zStreamResponse.content_typeC  s#   € à×ÒÜ  ›ZˆÔØ×*Ñ*Õ,r2   c                 ó   •— t         ‰| �  S rM   )r—   Úcharsetr™   s    €r3   r£   zStreamResponse.charsetI  s   ø€ ô ‰w‰Ðr2   c                 ó  — | j                   }|dk(  rt        d«      ‚| j                  €J ‚|€| j                  j                  dd «       n&t	        |«      j                  «       | j                  d<   | j                  «        y )Núapplication/octet-streamzYSetting charset for application/octet-stream doesn't make sense, setup content_type firstr£   )rž   rx   Ú_content_dictr”   r�   Úlowerr¡   )rJ   r�   Úctypes      r3   r£   zStreamResponse.charsetN  s€   € à×!Ñ!ˆØÐ.Ò.Üð?óð ð ×!Ñ!Ð-Ð-Ð-Øˆ=Ø×Ñ×"Ñ" 9¨dÕ3ä,/°«J×,<Ñ,<Ó,>ˆD×Ñ˜yÑ)Ø×*Ñ*Õ,r2   c                 óf   — t        | j                  j                  t        j                  «      «      S )zuThe value of Last-Modified HTTP header, or None.

        This header is represented as a `datetime` object.
        )r   rH   re   r   ÚLAST_MODIFIEDrN   s    r3   Úlast_modifiedzStreamResponse.last_modified]  s$   € ô ˜tŸ}™}×0Ñ0´×1CÑ1CÓDÓEÐEr2   c                 óJ  — |€+| j                   j                  t        j                  d «       y t	        |t
        t        f«      rXt        j                  dt        j                  t        j                  |«      «      «      | j                   t        j                  <   y t	        |t        j                  «      r@t        j                  d|j                  «       «      | j                   t        j                  <   y t	        |t        «      r|| j                   t        j                  <   y y )Nz%a, %d %b %Y %H:%M:%S GMT)rH   r”   r   rª   r}   rc   ÚfloatÚtimeÚstrftimeÚgmtimeÚmathÚceilÚdatetimeÚutctimetupler�   rœ   s     r3   r«   zStreamResponse.last_modifiede  sÇ   € ð ˆ=Ø�M‰M×Ñœd×0Ñ0°$Õ7Ü˜¤¤U˜|Ô,Ü04·±Ø+¬T¯[©[¼¿¹À5Ó9IÓ-Jó1ˆD�M‰Mœ$×,Ñ,Ò-ô ˜œx×0Ñ0Ô1Ü04·±Ø+¨U×-?Ñ-?Ó-Aó1ˆD�M‰Mœ$×,Ñ,Ò-ô ˜œsÔ#Ø05ˆD�M‰Mœ$×,Ñ,Ò-ð $r2   c                 ó  — | j                   j                  t        j                  «      }|sy |t        k(  rt        t        ¬«      S t        j                  |«      }|sy |j                  dd«      \  }}t        t        |«      |¬«      S )N)r�   r   é   )Úis_weakr�   )
rH   re   r   ÚETAGr   r   r   Ú	fullmatchÚgroupr~   )rJ   Úquoted_valueÚmatchr·   r�   s        r3   ÚetagzStreamResponse.etagv  st   € à—}‘}×(Ñ(¬¯©Ó3ˆÙØØœXÒ%ÜœhÔ'Ð'Ü×(Ñ(¨Ó6ˆÙØØŸ™ Q¨Ó*‰ˆ�ÜÜ˜“MØô
ð 	
r2   c                 óÔ  — |€+| j                   j                  t        j                  d «       y t	        |t
        «      r	|t        k(  s#t	        |t        «      r5|j                  t        k(  r"t        | j                   t        j                  <   y t	        |t
        «      r-t        |«       d|› d�| j                   t        j                  <   y t	        |t        «      ryt	        |j                  t
        «      r_t        |j                  «       |j                  rd|j                  › d�nd|j                  › d�}|| j                   t        j                  <   y t        dt        |«      › d�«      ‚)NÚ"zW/"zUnsupported etag type: z . etag must be str, ETag or None)rH   r”   r   r¸   r}   r�   r   r   r�   r   r·   rf   Útype)rJ   r�   Ú	hdr_values      r3   r½   zStreamResponse.etag†  s  € àˆ=Ø�M‰M×ÑœdŸi™i¨Õ.Ü˜¤Ô$¨´(Ò):Ü�uœdÔ#¨¯©´xÒ(?ä'/ˆD�M‰Mœ$Ÿ)™)Ò$Ü˜œsÔ#Ü Ô&Ø)*¨5¨'° |ˆD�M‰Mœ$Ÿ)™)Ò$Ü˜œtÔ$¬°E·K±KÄÔ)EÜ §¡Ô,Ø05·²˜#˜eŸk™k˜]¨!Ñ,ÀQÀuÇ{Á{ÀmÐSTÐCUˆIØ'0ˆD�M‰Mœ$Ÿ)™)Ò$äØ)¬$¨u«+¨ð 71ð 2óð r2   ÚCONTENT_TYPEc                 óü   — | j                   €J ‚| j                  €J ‚dj                  d„ | j                   j                  «       D «       «      }|r| j                  dz   |z   }n| j                  }|| j                  |<   y )Nz; c              3   ó0   K  — | ]  \  }}|› d |› �–— Œ y­w)Ú=Nr1   )Ú.0ÚkÚvs      r3   Ú	<genexpr>z?StreamResponse._generate_content_type_header.<locals>.<genexpr>   s!   è ø€ ÐMÑ2L©$¨!¨Q˜a˜S  ! œ:Ñ2Lùs   ‚)r¦   r    ÚjoinÚitemsrH   )rJ   rÂ   Úparamsr¨   s       r3   r¡   z,StreamResponse._generate_content_type_header›  s|   € ð ×!Ñ!Ð-Ð-Ð-Ø×!Ñ!Ð-Ð-Ð-Ø—‘ÑM°$×2DÑ2D×2JÑ2JÔ2LÓMÓMˆÙØ×&Ñ&¨Ñ-°Ñ6‰Eà×&Ñ&ˆEØ&+ˆ�‰�lÒ#r2   Úcodingc              ƒ   óP  K  — |t         j                  u ry | j                  €J ‚|j                  | j                  t
        j                  <   | j                  j                  |j                  | j                  «       | j                  j                  t
        j                  d «       y ­wrM   )r%   r-   r<   r�   rH   r   ÚCONTENT_ENCODINGr   r9   Úpopallrw   )rJ   rÍ   s     r3   Ú_do_start_compressionz$StreamResponse._do_start_compression§  s€   è ø€ Ø”]×+Ñ+Ñ+ØØ×#Ñ#Ð/Ð/Ð/Ø/5¯|©|ˆ�‰”d×+Ñ+Ñ,Ø×Ñ×/Ñ/Ø�L‰L˜$×4Ñ4ô	
ð
 	�‰×ÑœT×0Ñ0°$Õ7ùs   ‚B$B&Úrequestc              ƒ   óZ  K  — | j                   r$| j                  | j                   «      ƒ d {  –—†  y |j                  j                  t        j
                  d«      j                  «       }t        j                  «       D ]$  \  }}||v sŒ| j                  |«      ƒ d {  –—†   y  y 7 Œy7 Œ
­w)Nra   )	r:   rÑ   rC   re   r   ÚACCEPT_ENCODINGr§   ÚCONTENT_CODINGSrË   )rJ   rÒ   Úaccept_encodingr�   rÍ   s        r3   Ú_start_compressionz!StreamResponse._start_compression³  s•   è ø€ Ø×"Ò"Ø×,Ñ,¨T×-DÑ-DÓE×EÐEØð "Ÿ/™/×-Ñ-¬d×.BÑ.BÀBÓG×MÑMÓOˆÜ,×2Ñ2Ö4‰MˆE�6Ø˜Ò'Ø×0Ñ0°Ó8×8Ð8Ùñ 5ð Føð 9ús(   ‚+B+­B'®AB+Â
B+ÂB)Â	B+Â)B+c              ƒ   óÔ   K  — | j                   ry | j                  �| j                  S t        |j                  | j                  «      | _        | j                  |«      ƒ d {  –—† S 7 Œ­wrM   )r=   r<   r   ÚmethodrA   r>   Ú_start)rJ   rÒ   s     r3   ÚpreparezStreamResponse.prepare¿  sT   è ø€ Ø�>Š>ØØ×ÑÐ+Ø×'Ñ'Ð'Ü#5°g·n±nÀdÇkÁkÓ#RˆÔ Ø—[‘[ Ó)×)Ð)Ð)ús   ‚AA(Á!A&Á"A(c              ƒ   óà   K  — || _         |j                  x}| _        | j                  «       ƒ d {  –—†  |j                  | «      ƒ d {  –—†  | j	                  «       ƒ d {  –—†  |S 7 Œ77 Œ 7 Œ
­wrM   )r;   r<   Ú_prepare_headersÚ_prepare_hookÚ_write_headers)rJ   rÒ   Úwriters      r3   rÚ   zStreamResponse._startÇ  sj   è ø€ ØˆŒ	Ø(/×(?Ñ(?Ð?ˆ�Ô%à×#Ñ#Ó%×%Ð%Ø×#Ñ# DÓ)×)Ð)Ø×!Ñ!Ó#×#Ð#àˆð	 	&øØ)øØ#ús3   ‚.A.°A(±A.Á	A*Á
A.Á!A,Á"A.Á*A.Á,A.c              ƒ   ó,  K  — | j                   }|€J ‚| j                  }|€J ‚| j                  }|€|j                  }|| _        |j                  }| j
                  }| j                  rT| j                  j                  «       D ]7  }|j                  d¬«      dd  }|j                  t        j                  |«       Œ9 | j                  r| j                  |«      ƒ d {  –—†  | j                  r]|t        k7  r$t!        dj#                  |j                  «      «      ‚| j$                  s”|j'                  «        d|t        j(                  <   np| j*                  rd| j,                  |_        |j.                  €G|t        k\  r0| j$                  s2|j'                  «        d|t        j(                  <   n| j$                  sd}| j$                  rgt        j0                  |v r1t3        |j4                  | j6                  «      r|t        j0                  = t        j(                  |v rY|t        j(                  = nG| j*                  r|j.                  n| j,                  dk7  r |j9                  t        j:                  d«       |j9                  t        j<                  t?        «       «       |j9                  t        j@                  tB        «       t        jD                  |vr>|r|tF        k(  rd	|t        jD                  <   y y |t        k(  rd
|t        jD                  <   y y y 7 �Œ5­w)Nra   )Úheaderr   z@Using chunked encoding is forbidden for HTTP/{0.major}.{0.minor}rV   Fr   r¥   z
keep-aliveÚclose)$r;   r<   r6   ri   rŠ   rH   r?   ÚvaluesÚoutputÚaddr   Ú
SET_COOKIEr8   r×   r7   r!   rx   Úformatr>   Úenable_chunkingÚTRANSFER_ENCODINGÚ_length_checkr˜   Úlengthrw   r   rÙ   rA   Ú
setdefaultrÂ   ÚDATEr   ÚSERVERr   Ú
CONNECTIONr    )rJ   rÒ   rà   ri   rŠ   rC   Úcookier�   s           r3   rÝ   zStreamResponse._prepare_headersÑ  sŒ  è ø€ Ø—)‘)ˆØÐ"Ð"Ð"Ø×%Ñ%ˆØÐ!Ð!Ð!Ø×%Ñ%ˆ
ØÐØ ×+Ñ+ˆJØ%ˆÔà—/‘/ˆà—-‘-ˆØ�=Š=ØŸ-™-×.Ñ.Ö0�ØŸ™¨R˜Ó0°°Ð4�Ø—‘œDŸO™O¨UÕ3ð 1ð ×ÒØ×)Ñ)¨'Ó2×2Ð2à�=Š=Øœ-Ò'Ü"ð3ß39±6¸'¿/¹/Ó3Jóð ð ×+Ò+Ø×&Ñ&Ô(Ø2;�œ×.Ñ.Ò/Ø×ÒØ ×/Ñ/ˆFŒMØ�}‰}Ð$ØœmÒ+Ø×3Ò3Ø×.Ñ.Ô0Ø:C˜¤× 6Ñ 6Ò7Ø×1Ò1Ø!&�Jð ×#Ò#Ü×"Ñ" gÑ-Ô2NØ—‘ §¡ô3ð œD×/Ñ/Ð0ô ×%Ñ%¨Ñ0ØœD×2Ñ2Ñ3Ø#×1Ò1ˆf�mŠm°t×7JÑ7JÈqÒPà×Ñœt×0Ñ0Ð2LÔMØ×Ñœ4Ÿ9™9Ô&;Ó&=Ô>Ø×Ñœ4Ÿ;™;¬Ô8ô �?‰? 'Ñ)ÙØœmÒ+Ø/;�GœDŸO™OÒ,ð ,àœMÒ)Ø+2�œŸ™Ò(ð *ð	 *ðO 3ûs   ‚CLÃLÃH5Lc              ƒ   ó   K  — | j                   }|€J ‚| j                  }|€J ‚|j                  }d|d   › d|d   › d| j                  › d| j                  › �}|j                  || j                  «      ƒ d {  –—†  y 7 Œ­w)NzHTTP/r   Ú.r   Ú )r;   r<   rŠ   rS   r\   Úwrite_headersrH   )rJ   rÒ   rà   rŠ   Ústatus_lines        r3   rß   zStreamResponse._write_headers  sƒ   è ø€ Ø—)‘)ˆØÐ"Ð"Ð"Ø×%Ñ%ˆØÐ!Ð!Ð!à—/‘/ˆØ˜g a™j˜\¨¨7°1©:¨,°a¸¿¹°~ÀQÀtÇ|Á|ÀnÐUˆØ×"Ñ" ;°·±Ó>×>Ò>ús   ‚A4A>Á6A<Á7A>Údatac              ƒ   ó  K  — t        |t        t        t        f«      sJ dt	        |«      z  «       ‚| j
                  rt        d«      ‚| j                  €t        d«      ‚| j                  j                  |«      ƒ d {  –—†  y 7 Œ­w)Nú#data argument must be byte-ish (%r)z%Cannot call write() after write_eof()z$Cannot call write() before prepare())	r}   ÚbytesÚ	bytearrayÚ
memoryviewrÀ   r=   rx   r<   Úwrite©rJ   r÷   s     r3   rý   zStreamResponse.write  s|   è ø€ ÜØ”5œ)¤ZÐ0ô
ð 	>à0´4¸³:Ñ=ó	>ð 
ð �>Š>ÜÐFÓGÐGØ×ÑÐ'ÜÐEÓFÐFà×"Ñ"×(Ñ(¨Ó.×.Ò.ús   ‚A;BÁ=BÁ>Bc              ƒ   óØ   K  — | j                   rJ d«       ‚| j                  €J d«       ‚t        j                  dt        d¬«       | j                  j                  «       ƒ d {  –—†  y 7 Œ­w)NzEOF has already been sentúResponse has not been startedz2drain method is deprecated, use await resp.write()r¶   )Ú
stacklevel)r=   r<   rp   rq   rr   ÚdrainrN   s    r3   r  zStreamResponse.drain(  s`   è ø€ Ø—>’>Ð>Ð#>Ó>Ð!Ø×#Ñ#Ð/ÐPÐ1PÓPÐ/Ü�‰Ø@ÜØõ	
ð
 ×"Ñ"×(Ñ(Ó*×*Ò*ús   ‚A A*Á"A(Á#A*c              ƒ   óR  K  — t        |t        t        t        f«      sJ dt	        |«      z  «       ‚| j
                  ry | j                  €J d«       ‚| j                  j                  |«      ƒ d {  –—†  d| _        d | _        | j                  j                  | _
        d | _        y 7 Œ5­w)Nrù   r   T)r}   rú   rû   rü   rÀ   r=   r<   Ú	write_eofr;   Úoutput_sizerm   rþ   s     r3   r  zStreamResponse.write_eof2  s¢   è ø€ ÜØ”5œ)¤ZÐ0ô
ð 	>à0´4¸³:Ñ=ó	>ð 
ð �>Š>Øà×#Ñ#Ð/ÐPÐ1PÓPÐ/à×"Ñ"×,Ñ,¨TÓ2×2Ð2ØˆŒØˆŒ	Ø ×0Ñ0×<Ñ<ˆÔØ#ˆÕð	 	3ús   ‚A-B'Á/B%Á06B'c                 ó  — | j                   rd}nM| j                  r?| j                  €J ‚| j                  j                  › d| j                  j                  › d�}nd}d| j
                  j                  › d| j                  › d|› d�S )NÚeofrô   znot preparedÚ<Ú>)r=   rO   r;   rÙ   r‡   rš   r.   rB   )rJ   Úinfos     r3   Ú__repr__zStreamResponse.__repr__B  sz   € Ø�>Š>Ø‰DØ�]Š]Ø—9‘9Ð(Ð(Ð(Ø—i‘i×&Ñ&Ð' q¨¯©¯©Ð(8¸Ð:‰Dà!ˆDØ�4—>‘>×*Ñ*Ð+¨1¨T¯[©[¨M¸¸4¸&ÀÐBÐBr2   Úkeyc                 ó    — | j                   |   S rM   ©rG   ©rJ   r  s     r3   Ú__getitem__zStreamResponse.__getitem__L  s   € Ø�{‰{˜3ÑÐr2   c                 ó"   — || j                   |<   y rM   r  )rJ   r  r�   s      r3   Ú__setitem__zStreamResponse.__setitem__O  s   € Ø ˆ�‰�CÒr2   c                 ó   — | j                   |= y rM   r  r  s     r3   Ú__delitem__zStreamResponse.__delitem__R  s   € Ø�K‰K˜Ñr2   c                 ó,   — t        | j                  «      S rM   )ÚlenrG   rN   s    r3   Ú__len__zStreamResponse.__len__U  s   € Ü�4—;‘;ÓÐr2   c                 ó,   — t        | j                  «      S rM   )ÚiterrG   rN   s    r3   Ú__iter__zStreamResponse.__iter__X  s   € Ü�D—K‘KÓ Ð r2   c                 ó*   — t        t        | «      «      S rM   )ÚhashÚidrN   s    r3   Ú__hash__zStreamResponse.__hash__[  s   € Ü”B�t“H‹~Ðr2   Úotherc                 ó
   — | |u S rM   r1   )rJ   r  s     r3   Ú__eq__zStreamResponse.__eq__^  s   € Ø�uˆ}Ðr2   )rE   zOptional[asyncio.Task[None]]rM   )rE   N)rE   zCIMultiDict[str])rÒ   r)   rE   N©r2   )Vr.   r/   r0   r   rú   rû   r"   Ú__annotations__rë   r5   r6   r   r~   r7   r8   ÚzlibÚZ_DEFAULT_STRATEGYr9   rc   r:   r%   r;   r<   r   r=   r>   rm   r?   r   r�   r$   r   rK   ÚpropertyrO   rQ   rA   rV   rY   rB   r_   rI   ri   rk   rn   rt   ry   r   rC   r‚   r’   r•   r˜   Úsetterrž   r£   r³   r«   r­   r   r½   r   rÂ   r   r¡   rÑ   r×   rÛ   rÚ   rÝ   rß   rý   r  r  r  r   r  r  r  r  r	   r  r  Úobjectr!  Ú__classcell__©rš   s   @r3   r&   r&   M   s¡  ø… à��u˜i¨Ð0Ñ1Ó1Ø€MØ€EØ"&€K�˜$‘Ó&Ø€HˆdÓØ€L�$ÓØ!%×!8Ñ!8Ð˜3Ó8Ø26Ð˜ Ñ/Ó6Ø$(€Dˆ(�=Ñ
!Ó(Ø6:€O�XÐ2Ñ3Ó:Ø€IˆtÓØ*.Ð˜ $™Ó.Ø€LØ'+€Hˆh�|Ñ$Ó+ð
 Ø $Ø*.Ø48ò)ð ð)ð ˜‘ð	)ð
 ˜,Ñ'ð)ð   ¨CÑ 0Ñ1ð)ð 
ó)ð4 ðB˜$ò Bó ðBð òó ðð ð˜ò ó ðð ð˜ò ó ðð ð!˜Tò !ó ð!ð ð˜ò ó ðð !%ñ)àð)ð ˜‘ð)ð 
ó	)ð #ð ¨x¸©}ð Àó ð ð ˜H T™Nò  ó ð ó!ð ð!˜Sò !ó ð!ð ð0˜sò 0ó ð0ñ
°(¸3±-ð È4ó ð 7;Ø×/Ñ/ñ.à˜˜d MÐ1Ñ2Ñ3ð.ð ð.ð 
ó	.ð* òó ðð ð˜ò ó ðð "&Ø $Ø-1ØØ!%Ø#'Ø!%Ø"&ò/%àð/%ð ð/%ð
 ˜#‘ð/%ð ˜‘ð/%ð ˜%  S ™/Ñ*ð/%ð ð/%ð ˜‘ð/%ð ˜4‘.ð/%ð ˜#‘ð/%ð ˜3‘-ð/%ð 
ó/%ðj !%ØØ!%Ø#'Ø"&ò
àð
ð ˜‘ð	
ð
 ð
ð ˜‘ð
ð ˜4‘.ð
ð ˜3‘-ð
ð 
ó
ð: ð& ¨¡ô &ó ð&ð ×Ñð	9 H¨S¡Mð 	9°dò 	9ó ð	9ð ð$˜cô $ó ð$ð ×Ñð- #ð -¨$ò -ó ð-ð
 ð˜ #™ô ó ðð ‡^�^ð-˜X c™]ð -¨tò -ó ð-ð ðF˜x¨×(9Ñ(9Ñ:ò Fó ðFð ×Ñð6Ø˜e C¨°×0AÑ0AÀ3Ð$FÑGÑHð6à	ò6ó ð6ð  ð
�h˜t‘nò 
ó ð
ð 
‡[�[ð˜( 5¨¨s¨Ñ#3Ñ4ð ¸ò ó ðð* $(×#4Ñ#4ñ
,Ø ð
,à	ó
,ð
8°-ð 
8ÀDó 
8ó
ð* ]ð *°xÐ@TÑ7Uó *ð Mð Ð6Jó ó?3óB?ð
/ ð 
/¨$ó 
/ó+ñ$ Eð $°Dó $ð C˜#ó Cð ˜sð   só  ð!˜sð !¨3ð !°4ó !ð˜sð  tó ð ˜ó  ð!˜( 3™-ó !ð˜#ó ð˜Fð  t÷ r2   r&   c                   óÊ  ‡ — e Zd ZU dZee   ed<   ddddddddddœ	dededee	   dee	   d	ee
   d
ee	   dee	   dee   dee   ddfˆ fd„Zedeeeef      fd„«       Zej"                  deddfd„«       Zedee	   fd„«       Zej"                  de	ddfd„«       Zedee   fd„«       Zej"                  dee   ddfd„«       Zddeddfˆ fd„Zdddefˆ fd„Zdeddfˆ fd„Zˆ xZS )r'   NÚ_compressed_bodyr@   )	ÚbodyrA   rB   ÚtextrC   rž   r£   Úzlib_executor_sizeÚzlib_executorr-  rA   rB   r.  rC   rž   r£   r/  r0  rE   c       	         ó|  •— |�|�t        d«      ‚|€t        «       }
nt        |t        «      st        |«      }
n|}
|�d|v rt        d«      ‚|�}t        j                  |
v r|s|r§t        d«      ‚t        |t
        «      st        dt        |«      z  «      ‚|€d}|€d}|dz   |z   |
t        j                  <   |j                  |«      }d }n@t        j                  |
v r|€|�*t        d«      ‚|�|�|d|z   z  }||
t        j                  <   t        ‰| �)  |||
¬	«       |�|| _        n|| _        || _        |	| _        y )
Nz&body and text are not allowed togetherr£   z,charset must not be in content_type argumentzPpassing both Content-Type header and content_type or charset params is forbiddenútext argument must be str (%r)ú
text/plainúutf-8z
; charset=)rA   rB   rD   )rf   r   r}   r   rÂ   r�   Ú	TypeErrorrÀ   Úencoder—   rK   r.  r-  Ú_zlib_executor_sizeÚ_zlib_executor)rJ   r-  rA   rB   r.  rC   rž   r£   r/  r0  Úreal_headersrš   s              €r3   rK   zResponse.__init__f  sy  ø€ ð Ð Ð 0ÜÐEÓFÐFàˆ?Ü-8«]‰LÜ˜G¤[Ô1Ü& wÓ/‰Là"ˆLàÐ#¨	°\Ñ(AÜÐKÓLÐLàÐÜ× Ñ  LÑ0Ù¡7Ü$ð'óð ô " $¬Ô,Ü#Ð$DÄtÈDÃzÑ$QÓRÐRØÐ'Ø#/�LØ�?Ø%�GØ2>ÀÑ2MÐPWÑ2W�œT×.Ñ.Ñ/Ø—{‘{ 7Ó+�Ø‘Ü×Ñ ,Ñ.ØÐ'¨7Ð+>Ü ð#óð ð
 Ð%ØÐ"Ø ¨wÑ 6Ñ6�Ø.:ˆLœ×*Ñ*Ñ+ä‰Ñ ¨vÀ\ÐÔRàÐØˆD�IàˆDŒIà#5ˆÔ Ø+ˆÕr2   c                 ó   — | j                   S rM   )r5   rN   s    r3   r-  zResponse.body©  s   € à�z‰zÐr2   c                 ó  — |€d | _         d | _        y t        |t        t        f«      r|| _         d | _        y 	 t        j
                  j                  |«      x| _         }| j                  }t        j                  |vr|j                  |t        j                  <   |j                  r,|j                  j                  «       D ]  \  }}||vsŒ|||<   Œ d | _        y # t        j                  $ r t        dt        |«      z  «      ‚w xY w)NzUnsupported body type %r)r5   r}   rú   rû   r   ÚPAYLOAD_REGISTRYre   ÚLookupErrorrf   rÀ   rH   r   rÂ   rž   rC   rË   r,  )rJ   r-  rC   r  r�   s        r3   r-  zResponse.body­  sû   € àˆ<ØˆDŒJð* !%ˆÕô) ˜œu¤iÐ0Ô1ØˆDŒJð& !%ˆÕð#JÜ$+×$<Ñ$<×$@Ñ$@ÀÓ$FÐF�”
˜Tð —m‘mˆGô × Ñ ¨Ñ/Ø-1×->Ñ->�œ×)Ñ)Ñ*ð �|Š|Ø"&§,¡,×"4Ñ"4Ö"6‘J�C˜Ø 'Ò)Ø',˜ šð #7ð !%ˆÕøô ×&Ñ&ò JÜ Ð!;¼dÀ4»jÑ!HÓIÐIðJús   ¸&C Ã+Dc                 ón   — | j                   €y | j                   j                  | j                  xs d«      S )Nr4  )r5   Údecoder£   rN   s    r3   r.  zResponse.textÇ  s-   € à�:‰:ÐØØ�z‰z× Ñ  §¡Ò!8°Ó9Ð9r2   c                 óî   — |�#t        |t        «      sJ dt        |«      z  «       ‚| j                  dk(  rd| _        | j                  €d| _        |j                  | j                  «      | _        d | _        y )Nr2  r¥   r3  r4  )r}   r�   rÀ   rž   r£   r6  r5   r,  )rJ   r.  s     r3   r.  zResponse.textÍ  st   € àˆ|œzØ”#ô 
ð 	9à+¬d°4«jÑ8ó	9ð 
ð ×ÑÐ :Ò:Ø ,ˆDÔØ�<‰<ÐØ"ˆDŒLà—[‘[ §¡Ó.ˆŒ
Ø $ˆÕr2   c                 ó\  — | j                   ry t        j                  | j                  v r&t	        | j                  t        j                     «      S | j
                  �t        | j
                  «      S t        | j                  t        «      ry | j                  �t        | j                  «      S y)Nr   )
r7   r   rw   rH   rc   r,  r  r}   r5   r"   rN   s    r3   r˜   zResponse.content_lengthÛ  s�   € à�=Š=Øä×Ñ $§-¡-Ñ/Ü�t—}‘}¤T×%8Ñ%8Ñ9Ó:Ð:à× Ñ Ð,ä�t×,Ñ,Ó-Ð-Ü˜Ÿ
™
¤GÔ,àØ�Z‰ZÐ#Ü�t—z‘z“?Ð"àr2   r�   c                 ó   — t        d«      ‚)Nz#Content length is set automatically)rx   rœ   s     r3   r˜   zResponse.content_lengthî  s   € äÐ@ÓAÐAr2   r÷   c              ƒ   ó"  •K  — | j                   ry | j                  €| j                  }n| j                  }|r
J d|›�«       ‚| j                  €J ‚| j                  €J ‚|�| j
                  rt        ‰| �  «       ƒ d {  –—†  y t        | j                  t        «      rD| j                  j                  | j                  «      ƒ d {  –—†  t        ‰| �  «       ƒ d {  –—†  y t        ‰| �  t        t        |«      «      ƒ d {  –—†  y 7 Œ‰7 ŒC7 Œ/7 Œ­w)Nzdata arg is not supported, got )r=   r,  r5   r;   r<   r>   r—   r  r}   r"   rý   r   rú   )rJ   r÷   r-  rš   s      €r3   r  zResponse.write_eofò  sî   øè ø€ Ø�>Š>ØØ× Ñ Ð(Ø48·J±J‰Dà×(Ñ(ˆDÙÐCÐ:¸4¸(ÐCÓCˆxØ�y‰yÐ$Ð$Ð$Ø×#Ñ#Ð/Ð/Ð/Øˆ<˜4×3Ò3Ü‘'Ñ#Ó%×%Ñ%Ü˜Ÿ
™
¤GÔ,Ø—*‘*×"Ñ" 4×#7Ñ#7Ó8×8Ð8Ü‘'Ñ#Ó%×%Ñ%ä‘'Ñ#¤D¬°Ó$5Ó6×6Ñ6ð &øà8øØ%øà6úsI   ƒA:DÁ=DÁ>ADÃD	ÃDÃDÃ%DÄDÄDÄ	DÄDÄDrÒ   r)   c              ƒ   óÐ  •K  — t         j                  | j                  v r=t        |j                  | j
                  «      �r| j                  t         j                  = nð| j                  sät        | j                  t        «      rQ| j                  j                  �´t        | j                  j                  «      | j                  t         j                  <   ny| j                  rt        | j                  «      nd}|dk7  s+| j
                  dk7  rB|j                  t         j                  vr&t        |«      | j                  t         j                  <   t        ‰| �=  |«      ƒ d {  –—† S 7 Œ­w)NÚ0i0  )r   rw   rH   r   rÙ   rA   r7   r}   r5   r"   Úsizer�   r  ÚMETH_HEAD_ALLr—   rÚ   )rJ   rÒ   Úbody_lenrš   s      €r3   rÚ   zResponse._start  sç   øè ø€ Ü×Ñ $§-¡-Ñ/Ü+¨G¯N©N¸D¿K¹KÕHØ—M‘M¤$×"5Ñ"5Ñ6Ø—’Ü˜$Ÿ*™*¤gÔ.Ø—:‘:—?‘?Ð.Ü9<¸T¿Z¹Z¿_¹_Ó9M�D—M‘M¤$×"5Ñ"5Ò6à.2¯jªjœ3˜tŸz™zœ?¸c�à˜s’?Ø—K‘K 3Ò&¨7¯>©>Ä×ASÑASÑ+Sä9<¸X»�D—M‘M¤$×"5Ñ"5Ñ6ä‘W‘^ GÓ,×,Ð,Ð,ús   ƒEE&ÅE$Å E&rÍ   c              ƒ   ó  •K  — | j                   st        | j                  t        «      rt        ‰| �  |«      ƒ d {  –—† S |t        j                  u ry t        |j                  | j                  | j                  ¬«      }| j                  €J ‚| j                  €Ht        | j                  «      t        kD  r,t        j                  dt        | j                  «      › d�«       |j!                  | j                  «      ƒ d {  –—† |j#                  «       z   | _        |j                  | j&                  t(        j*                  <   t-        t        | j$                  «      «      | j&                  t(        j.                  <   y 7 �Œ@7 Œ~­w)N)ÚencodingÚmax_sync_chunk_sizeÚexecutorz2Synchronous compression of large response bodies (z£ bytes) might block the async event loop. Consider providing a custom value to zlib_executor_size/zlib_executor response properties or disabling compression on it.)r7   r}   r5   r"   r—   rÑ   r%   r-   r   r�   r7  r8  r  ÚLARGE_BODY_SIZErp   rq   ÚcompressÚflushr,  rH   r   rÏ   r�   rw   )rJ   rÍ   Ú
compressorrš   s      €r3   rÑ   zResponse._do_start_compression  s2  øè ø€ Ø�=Š=œJ t§z¡z´7Ô;Ü™Ñ6°vÓ>×>Ð>Ø”]×+Ñ+Ñ+Øô $Ø—\‘\Ø $× 8Ñ 8Ø×(Ñ(ô
ˆ
ð
 �z‰zÐ%Ð%Ð%Ø×#Ñ#Ð+´°D·J±J³Ä/Ò0QÜ�M‰MðÜ˜Ÿ
™
“OÐ$ð %TðTôð ×%Ñ% d§j¡jÓ1×1°J×4DÑ4DÓ4FÑFð 	Ôð 06¯|©|ˆ�‰”d×+Ñ+Ñ,Ü-0´°T×5JÑ5JÓ1KÓ-Lˆ�‰”d×)Ñ)Ò*ð- ?ùð& 2ús#   ƒ9F¼E<½CFÄ E?ÄA<FÅ?Fr"  )r.   r/   r0   r,  r   rú   r#  r   rc   r�   r$   r   rK   r&  r   r"   r-  r'  r.  r˜   r  r   rÚ   r%   rÑ   r)  r*  s   @r3   r'   r'   b  sè  ø… à(,Ð�h˜u‘oÓ,ð
 ØØ $Ø"Ø*.Ø&*Ø!%Ø,0Ø,0òA,ð ðA,ð ð	A,ð
 ˜‘ðA,ð �s‰mðA,ð ˜,Ñ'ðA,ð ˜s‘mðA,ð ˜#‘ðA,ð % S™MðA,ð   Ñ)ðA,ð 
õA,ðF ð�h˜u U¨G ^Ñ4Ñ5ò ó ðð 
‡[�[ð%˜ð % ò %ó ð%ð2 ð:�h˜s‘mò :ó ð:ð
 
‡[�[ð%˜ð % ò %ó ð%ð ð ¨¡ò ó ðð$ ×ÑðB H¨S¡Mð B°dò Bó ðBñ7 Eð 7°Dõ 7ð$- Mð -Ð6Jõ -ð$M°-ð MÀD÷ Mñ Mr2   r'   r@   zapplication/json)r.  r-  rA   rB   rC   rž   Údumpsr÷   r.  r-  rA   rB   rC   rž   rQ  rE   c                ób   — | t         ur|s|rt        d«      ‚ || «      }t        ||||||¬«      S )Nz3only one of data, text, or body should be specified)r.  r-  rA   rB   rC   rž   )r   rf   r'   )r÷   r.  r-  rA   rB   rC   rž   rQ  s           r3   r(   r(   1  sE   € ð ”8ÑÙ‘4ÜÐRÓSÐSá˜“;ˆDÜØØØØØØ!ôð r2   )GÚasyncioÚcollections.abcÚcollectionsr³   ÚenumÚjsonr±   r®   rp   r$  Úconcurrent.futuresr   Úhttpr   Úhttp.cookiesr   Útypingr   r   r   r	   r
   r   r   r   Ú	multidictr   r   ra   r   r   Úabcr   Úcompression_utilsr   Úhelpersr   r   r   r   r   r   r   r   r   r   r   r    r!   r"   Útypedefsr#   r$   r�   Úphraserd   rM  Ú__all__Úweb_requestr)   r�   Ú	BaseClassÚEnumr%   rÕ   r&   r'   rQ  rú   rc   r(   )Úhttp_statusrÍ   s   00r3   Ú<module>rg     sª  ðÛ Û Û Û Û Û Û Û Û Ý 'Ý Ý %÷	÷ 	ó 	÷ (ç Ý %Ý -÷÷ ÷ ÷ @Ñ ?Ý ß /áKUÓVÉ:¸K�+×#Ñ# [×%7Ñ%7Ñ7È:ÑV€Ø€à
J€ñ Ý(à˜s C˜xÑ(�Ià—‘×.Ñ.€Iô�D—I‘Iô ñ 7DÓD±m¨F�6—<‘< Ñ'°mÑD€ôR�Y ô RôjLMˆ~ô LMð` ðð Ø ØØ Ø&*Ø*ØŸ™òØ
ðð �3‰-ðð �5‰/ð	ð
 ðð �S‰Mðð �lÑ#ðð ðð ðð ôùòI Wùò2 Es   ÂE%Ã?E*