Ë
    CØïiÑ)  ã                   óV  — U d dl 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mZmZmZmZmZ ddlmZ ddlmZ ddlmZmZmZ ddlmZmZ ddlmZmZmZm Z  dd	l!m"Z" d
Z#erddl$m%Z% ee	e&ged   f      Z' e(ejR                  jU                  d«      «      Z+e
e(   e,d<    G d„ de"«      Z-y)é    N)ÚIOÚTYPE_CHECKINGÚAnyÚ	AwaitableÚCallableÚFinalÚIteratorÚListÚOptionalÚTupleÚUnionÚcasté   )Úhdrs)ÚAbstractStreamWriter)ÚETAG_ANYÚETagÚmust_be_empty_body)ÚLooseHeadersÚPathLike)ÚHTTPNotModifiedÚHTTPPartialContentÚHTTPPreconditionFailedÚHTTPRequestRangeNotSatisfiable)ÚStreamResponse)ÚFileResponse)ÚBaseRequestÚAIOHTTP_NOSENDFILEÚ
NOSENDFILEc                   ó  ‡ — e Zd ZdZ	 	 	 	 ddedededee   dee   ddfˆ fd	„Z	d
e
dee   dedede
f
d„Zdddee   dedede
f
ˆ fd„Zededeedf   defd„«       Zdddededee
   fˆ fd„Zdddee
   fˆ fd„Zdddee
   fˆ fd„Zˆ xZS )r   z,A response object can be used to send files.NÚpathÚ
chunk_sizeÚstatusÚreasonÚheadersÚreturnc                 ól   •— t         ‰| �  |||¬«       t        j                  |«      | _        || _        y )N)r#   r$   r%   )ÚsuperÚ__init__ÚpathlibÚPathÚ_pathÚ_chunk_size)Úselfr!   r"   r#   r$   r%   Ú	__class__s         €úR/var/www/html/aiagents/fe/lib/python3.12/site-packages/aiohttp/web_fileresponse.pyr)   zFileResponse.__init__/   s1   ø€ ô 	‰Ñ ¨v¸wÐÔGä—\‘\ $Ó'ˆŒ
Ø%ˆÕó    ÚwriterÚfobjÚoffsetÚcountc              ƒ   óÖ  K  — | j                   }t        j                  «       }|j                  d |j                  |«      ƒ d {  –—†  |j                  d |j
                  |«      ƒ d {  –—† }|rV|j                  |«      ƒ d {  –—†  ||z
  }|dk  rn2|j                  d |j
                  t        ||«      «      ƒ d {  –—† }|rŒV|j                  «       ƒ d {  –—†  |S 7 Œ›7 Œx7 Œ_7 Œ'7 Œ­w©Nr   )	r-   ÚasyncioÚget_event_loopÚrun_in_executorÚseekÚreadÚwriteÚminÚdrain)r.   r2   r3   r4   r5   r"   ÚloopÚchunks           r0   Ú_sendfile_fallbackzFileResponse._sendfile_fallback<   s×   è ø€ ð ×%Ñ%ˆ
Ü×%Ñ%Ó'ˆà×"Ñ" 4¨¯©°FÓ;×;Ð;à×*Ñ*¨4°·±¸JÓG×GˆÙØ—,‘,˜uÓ%×%Ð%Ø˜JÑ&ˆEØ˜ŠzØØ×.Ñ.¨t°T·Y±YÄÀJÐPUÓ@VÓW×WˆEò ð �l‰l‹n×ÐØˆð 	<øàGøà%øð Xøàús`   ‚AC)ÁCÁ$C)Á(C!Á)C)ÂC#Â9C)Â=C%Â>C)ÃC)ÃC'ÃC)Ã!C)Ã#C)Ã%C)Ã'C)Úrequestr   c              ƒ   ó¨  •K  — t         ‰| �  |«      ƒ d {  –—† }|€J ‚t        s| j                  r| j	                  ||||«      ƒ d {  –—† S |j
                  }|j                  }|€J ‚	 |j                  ||||«      ƒ d {  –—†  t         ‰| �%  «       ƒ d {  –—†  |S 7 Œ‡7 ŒW7 Œ # t        $ r  | j	                  ||||«      ƒ d {  –—†7  cY S w xY w7 Œ8­w©N)
r(   Úpreparer   ÚcompressionrB   Ú_loopÚ	transportÚsendfileÚNotImplementedErrorÚ	write_eof)	r.   rC   r3   r4   r5   r2   r@   rI   r/   s	           €r0   Ú	_sendfilezFileResponse._sendfileR   sç   øè ø€ ô ‘w‘ wÓ/×/ˆØÐ!Ð!Ð!å˜×)Ò)Ø×0Ñ0°¸¸vÀuÓM×MÐMà�}‰}ˆØ×%Ñ%ˆ	ØÐ$Ð$Ð$ð	NØ—-‘- 	¨4°¸Ó?×?Ð?ô ‰gÑÓ!×!Ð!Øˆð! 0øð Nøð @ùÜ"ò 	NØ×0Ñ0°¸¸vÀuÓM×MÐMÒMð	Núð 	"úso   ƒC–B—1CÁB Á	 CÁ*B$ ÂB"ÂB$ ÂCÂCÂCÂ CÂ"B$ Â$ CÃCÃCÃ
CÃCÃCÚ
etag_valueÚetags.c                 óv   ‡ — t        |«      dk(  r|d   j                  t        k(  ryt        ˆ fd„|D «       «      S )Nr   r   Tc              3   óV   •K  — | ]   }|j                   rŒ|j                  ‰k(  –— Œ" y ­wrE   )Úis_weakÚvalue)Ú.0ÚetagrN   s     €r0   ú	<genexpr>z2FileResponse._strong_etag_match.<locals>.<genexpr>k   s    øè ø€ ÒR°ÀTÇ\Ã\�4—:‘: Õ+ÑRùs   ƒ)•))ÚlenrS   r   Úany)rN   rO   s   ` r0   Ú_strong_etag_matchzFileResponse._strong_etag_matchg   s1   ø€ äˆu‹:˜Š?˜u Q™xŸ~™~´Ò9ØÜÓR¸ÔRÓRÐRr1   Úlast_modifiedc              ƒ   ó¦   •K  — | j                  t        j                  «       d| _        || _        || _        t        ‰| �  |«      ƒ d {  –—† S 7 Œ­w)NF)Ú
set_statusr   Ústatus_codeÚ_length_checkrU   rZ   r(   rF   )r.   rC   rN   rZ   r/   s       €r0   Ú_not_modifiedzFileResponse._not_modifiedm   sI   øè ø€ ð 	�‰œ×3Ñ3Ô4Ø"ˆÔØˆŒ	Ø*ˆÔô ‘W‘_ WÓ-×-Ð-Ð-ús   ƒAAÁ
AÁAc              ƒ   óŠ   •K  — | j                  t        j                  «       d| _        t        ‰| �  |«      ƒ d {  –—† S 7 Œ­wr7   )r\   r   r]   Úcontent_lengthr(   rF   )r.   rC   r/   s     €r0   Ú_precondition_failedz!FileResponse._precondition_failedx   s9   øè ø€ ð 	�‰Ô.×:Ñ:Ô;ØˆÔÜ‘W‘_ WÓ-×-Ð-Ð-ús   ƒ9A¼A½Ac              ƒ   ó4  •K  — | j                   }d}d|j                  j                  t        j                  d«      v r2|j                  |j                  dz   «      }|j                  «       r|}d}t        j                  «       }|j                  d |j                  «      ƒ d {  –—† }|j                  d›d|j                  d›�}|j                  }|j                  }	|	�+| j!                  ||	«      s| j#                  |«      ƒ d {  –—† S |j$                  }
|
�8|	€6|j                  |
j'                  «       kD  r| j#                  |«      ƒ d {  –—† S |j(                  }|�-| j!                  ||«      r| j+                  |||«      ƒ d {  –—† S |j,                  }|�:|€8|j                  |j'                  «       k  r| j+                  |||«      ƒ d {  –—† S t        j.                  | j                  vr(t1        j2                  t5        |«      «      \  }}|sd}d}n|rdnd }d}| j6                  }|j                  }|}d }|j8                  }|�|j                  |j'                  «       k  rÑ	 |j:                  }|j<                  }|j>                  }|€|�¨|d
k  r|€||z  }|d
k  rd
}||z
  }ntO        |�|n||«      |z
  }||k\  rVd	|› �| j                  t        jB                  <   | jE                  tF        jH                  «       tJ        ‰| �™  |«      ƒ d {  –—† S tP        jH                  }| jE                  |«       |r| _)        |r|| j                  t        jT                  <   |r+t        j                  | j                  t        jV                  <   || _,        |j                  | _-        || _.        d| j                  t        j^                  <   ta        tb        |«      }|tP        jH                  k(  r4dje                  |||z   dz
  |«      | j                  t        jB                  <   |d
k(  s tg        |jh                  | jj                  «      rtJ        ‰| �™  |«      ƒ d {  –—† S |j                  d |jl                  d«      ƒ d {  –—† }|r|}nd
}	 | jo                  ||||«      ƒ d {  –—† t        jp                  |j                  d |jr                  «      «      ƒ d {  –—†  S 7 �Œ87 �ŒÙ7 �Œ–7 �Œ^7 �Œ# t@        $ rZ d	|› �| j                  t        jB                  <   | jE                  tF        jH                  «       tJ        ‰| �™  |«      ƒ d {  –—†7  cY S w xY w7 �Œ?7 Œü7 ŒÙ7 Œ·7 Œƒ# t        jp                  |j                  d |jr                  «      «      ƒ d {  –—†7   w xY w­w)NFÚgzipÚ z.gzTÚxú-zapplication/octet-streamzbytes */r   Úbyteszbytes {}-{}/{}r   Úrb):r,   r%   Úgetr   ÚACCEPT_ENCODINGÚ	with_nameÚnameÚis_filer8   r9   r:   ÚstatÚst_mtime_nsÚst_sizeÚst_mtimeÚif_matchrY   rb   Úif_unmodified_sinceÚ	timestampÚif_none_matchr_   Úif_modified_sinceÚCONTENT_TYPEÚ	mimetypesÚ
guess_typeÚstrÚ_statusÚif_rangeÚ
http_rangeÚstartÚstopÚ
ValueErrorÚCONTENT_RANGEr\   r   r]   r(   rF   r>   r   Úcontent_typeÚCONTENT_ENCODINGÚVARYrU   rZ   ra   ÚACCEPT_RANGESr   ÚintÚformatr   Úmethodr#   ÚopenrM   ÚshieldÚclose)r.   rC   Úfilepathrd   Ú	gzip_pathr@   ÚstrN   rZ   ÚifmatchÚ
unmodsinceÚifnonematchÚmodsinceÚctÚencodingÚshould_set_ctr#   Ú	file_sizer5   r   ÚifrangeÚrngÚendÚ
real_startr3   r4   r/   s                             €r0   rF   zFileResponse.prepare   s  øè ø€ Ø—:‘:ˆàˆØ�W—_‘_×(Ñ(¬×)=Ñ)=¸rÓBÑBØ ×*Ñ*¨8¯=©=¸5Ñ+@ÓAˆIà× Ñ Ô"Ø$�Ø�ä×%Ñ%Ó'ˆØ#'×#7Ñ#7¸¸h¿m¹mÓ#L×LˆàŸ™ qÐ)¨¨2¯:©:°a¨.Ð9ˆ
ØŸ™ˆð ×"Ñ"ˆØÐ t×'>Ñ'>¸zÈ7Ô'SØ×2Ñ2°7Ó;×;Ð;à×0Ñ0ˆ
àÐ"Ø�Ø—‘˜j×2Ñ2Ó4Ò4à×2Ñ2°7Ó;×;Ð;à×+Ñ+ˆØÐ" t×'>Ñ'>¸zÈ;Ô'WØ×+Ñ+¨G°ZÀÓO×OÐOà×,Ñ,ˆàÐ ØÐ#Ø—‘˜x×1Ñ1Ó3Ò3à×+Ñ+¨G°ZÀÓO×OÐOä×Ñ D§L¡LÑ0Ü$×/Ñ/´°H³Ó>‰LˆB�ÙØ/�Ø ‰Má!%‘v¨4ˆHØ!ˆMà—‘ˆØ—J‘Jˆ	Øˆàˆà×"Ñ"ˆØˆ?˜bŸk™k¨W×->Ñ->Ó-@Ò@ð6Ø×(Ñ(�ØŸ	™	�Ø—h‘h�ð" Ð  C OØ˜1’9  Ø˜YÑ&�EØ˜q’yð !"˜Ø%¨Ñ-‘Eô  3 ?™C¸	À9ÓMÐPUÑUð ð ˜IÒ%ð :BÀ)ÀÐ7M�D—L‘L¤×!3Ñ!3Ñ4Ø—O‘OÔ$B×$NÑ$NÔOÜ!&¡¡°Ó!9×9Ð9ä+×7Ñ7�ð —‘ Ô'áØ "ˆDÔÙØ2:ˆD�L‰Lœ×.Ñ.Ñ/ÙÜ&*×&:Ñ&:ˆD�L‰LœŸ™Ñ#àˆŒ	ØŸ[™[ˆÔØ#ˆÔà+2ˆ�‰”T×'Ñ'Ñ(äœ#˜uÓ%ˆ
àÔ'×3Ñ3Ò3Ø/?×/FÑ/FØ˜J¨Ñ.°Ñ2°Ió0ˆD�L‰Lœ×+Ñ+Ñ,ð
 �AŠ:Ô+¨G¯N©N¸D¿K¹KÔHÜ™™¨Ó1×1Ð1à×)Ñ)¨$°·±¸tÓD×DˆÙØ‰FàˆFð	IØŸ™¨°°v¸uÓE×Eä—.‘. ×!5Ñ!5°d¸D¿J¹JÓ!GÓH×HÑHðe Mùð <ùð <ùð Pùð Púô< ò 6ð 6>¸i¸[Ð3I�—‘œT×/Ñ/Ñ0Ø—‘Ô >× JÑ JÔKÜ"™W™_¨WÓ5×5Ð5Ò5ð6úð` :ùð: 2øàDøð FøàHù”'—.‘. ×!5Ñ!5°d¸D¿J¹JÓ!GÓH×HÒHüs	  ƒB VÂ#SÂ$A!VÄSÄAVÅS!Å:VÆS$ÆAVÇS'ÇBVÉ'$S* ÊBVÌUÌEVÑUÑ$VÑ;UÑ<VÒU ÒUÒ U Ò#2VÓUÓVÓVÓ!VÓ$VÓ'VÓ*AUÕUÕUÕ
VÕUÕVÕVÕVÕU ÕVÕ3VÖVÖVÖV)i   éÈ   NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r‡   r   r{   r   r)   r   r   r   rB   rM   Ústaticmethodr   r   ÚboolrY   Úfloatr_   rb   rF   Ú__classcell__)r/   s   @r0   r   r   ,   sa  ø„ Ù6ð
 %ØØ $Ø*.ñ&àð&ð ð&ð ð	&ð
 ˜‘ð&ð ˜,Ñ'ð&ð 
õ&ðØ*ðØ24°S±'ðØCFðØORðà	óð,Ø$ðØ,.¨s©GðØ=@ðØILðà	õð* ðS sð S°5¸¸s¸Ñ3Cð SÈò Só ðSð
	.Ø$ð	.Ø25ð	.ØFKð	.à	Ð&Ñ	'õ	.ð.Ø$ð.à	Ð&Ñ	'õ.ð^I ]ð ^I°xÐ@TÑ7U÷ ^Iñ ^Ir1   r   ).r8   ry   Úosr*   Útypingr   r   r   r   r   r   r	   r
   r   r   r   r   re   r   Úabcr   Úhelpersr   r   r   Útypedefsr   r   Úweb_exceptionsr   r   r   r   Úweb_responser   Ú__all__Úweb_requestr   rh   Ú_T_OnChunkSentr¢   Úenvironrj   r   Ú__annotations__r   © r1   r0   ú<module>r²      sŸ   ðÜ Û Û 	Û ÷÷ ÷ ó õ Ý %ß 7Ñ 7ß ,÷ó õ )à
€áÝ(ð ˜( E 7¨I°d©OÐ#;Ñ<Ñ=€ñ ˜rŸz™zŸ~™~Ð.BÓCÓD€
ˆE�$‰KÓ DôqI�>õ qIr1   