
    h                     <   S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	J
r
JrJr  S SKJrJrJr  S SKJrJr  S SKJrJrJrJrJrJrJrJrJrJrJrJ r   S SK!r!S SK"J#r#J$r$J%r%J&r&  S SK'J(r(  SS	K)J*r*J+r+J,r,J-r-J.r.  SS
K/J0r0  SSK1J2r2J3r3J4r4J5r5J6r6J7r7  SSK8J9r9  SSK:J;r;  SSK+J<r<J=r=J>r>J?r?J@r@JArAJBrBJCrCJDrDJErEJFrF  SSK,JGrGJHrHJIrIJJrJJKrK  SSKLJMrM  SSKNJOrO  SSKPJQrQJRrRJSrSJTrTJUrUJVrV  \(       a  S SKWrWS SKWJXrX  O S SKWrWS SKWJXrX  Sr[\(       a  SSK\J]r]  SSK^J_r_  SSK`Jara  \R                  " S5      rc\R                  " S5      rdS\e4S jrf\!R                  " SSSS9 " S S5      5       rh " S  S!\5      ri " S" S#\i5      rj " S$ S%5      rk\Wb  \WR                  \l\k\m" S5      4rnO
\l\m" S5      4rnS&\ S'\l\k4   S(\\l   S)\S'   S*\\o   S\ S'\l\k4   4
S+ jrp\q" S,5      rr " S- S.\5      rsS/\eS0\eS\l4S1 jrt " S2 S35      ru\2" S45      rv " S5 S6\?5      rwg! \Y a    SrW\ZrX GNf = f)7    N)md5sha1sha256)CookieErrorMorselSimpleCookie)MappingProxyTypeTracebackType)TYPE_CHECKINGAnyCallableDictIterableListMapping
NamedTupleOptionalTupleTypeUnion)CIMultiDictCIMultiDictProxy	MultiDictMultiDictProxy)URL   )hdrshelpershttp	multipartpayload)AbstractStreamWriter)ClientConnectionErrorClientOSErrorClientResponseErrorContentTypeError
InvalidURLServerFingerprintMismatch
HAS_BROTLI)FormData)	_SENTINELBaseTimerContext	BasicAuthHeadersMixin	TimerNoopbasicauth_from_netrcnetrc_from_envnoopreifyset_exception
set_result)SERVER_SOFTWAREHttpVersionHttpVersion10HttpVersion11StreamWriter)client_logger)StreamReader)DEFAULT_JSON_DECODERJSONDecoderLooseCookiesLooseHeadersQuery
RawHeaders)
SSLContext)ClientRequestClientResponseRequestInfoFingerprint)ClientSession)
Connection)Tracez[^-!#$%&'*+.^_`|~0-9a-zA-Z]z!^application/(?:[\w.+-]+?\+)?jsonreturnc                       [         (       a  S$ S$ )Nzgzip, deflate, brzgzip, deflater)        G/var/www/html/env/lib/python3.13/site-packages/aiohttp/client_reqrep.py_gen_default_accept_encodingrQ   d   s    ",*A/ArO   T)auto_attribsfrozenslotsc                   @    \ rS rSr% \\   \S'   S\S'   \\   \S'   Srg)ContentDispositionh   typezMappingProxyType[str, str]
parametersfilenamerN   N)__name__
__module____qualname____firstlineno__r   str__annotations____static_attributes__rN   rO   rP   rV   rV   h   s    
3-,,smrO   rV   c                   >    \ rS rSr% \\S'   \\S'   S\S'   \\S'   Srg)	_RequestInfoo   urlmethodCIMultiDictProxy[str]headersreal_urlrN   N)r[   r\   r]   r^   r   r`   r_   ra   rN   rO   rP   rc   rc   o   s    	HK$$MrO   rc   c                   8    \ rS rSr\4S\S\SSS\SS 4
S jjrS	rg
)rG   v   re   rf   rh   rg   ri   rL   c                 R    [         R                  XX#U[        L a  U45      $ U45      $ )zeCreate a new RequestInfo instance.

For backwards compatibility, the real_url parameter is optional.
)tuple__new__r,   )clsre   rf   rh   ri   s        rP   rn   RequestInfo.__new__x   s6     }}vx9/DS
 	
JRS
 	
rO   rN   N)	r[   r\   r]   r^   r,   r   r_   rn   ra   rN   rO   rP   rG   rG   v   sA     "

 
 )	

 
 

 
rO   rG   c                   p    \ rS rSr\\\S.rS\SS4S jr	\
S\4S j5       rS\R                  SS4S	 jrS
rg)rH      )          fingerprintrL   Nc                     [        U5      nU R                  R                  U5      nU(       d  [        S5      eU[        L d	  U[
        L a  [        S5      eX0l        Xl        g )Nzfingerprint has invalid lengthz8md5 and sha1 are insecure and not supported. Use sha256.)lenHASHFUNC_BY_DIGESTLENget
ValueErrorr   r   	_hashfunc_fingerprint)selfrv   	digestlenhashfuncs       rP   __init__Fingerprint.__init__   sV    $	--11)<=>>_D 0WXX!'rO   c                     U R                   $ N)r}   r~   s    rP   rv   Fingerprint.fingerprint          rO   	transportc                 "   UR                  S5      (       d  g UR                  S5      nUR                  SS9nU R                  U5      R                  5       nX@R                  :w  a*  UR                  S5      tpVn[        U R                  XEU5      eg )N
sslcontext
ssl_objectT)binary_formpeername)get_extra_infogetpeercertr|   digestr}   r(   )r~   r   sslobjcertgothostport_s           rP   checkFingerprint.check   s    ''55)),7!!d!3nnT"))+###&55jAND+D,=,=s$OO $rO   )r}   r|   )r[   r\   r]   r^   r   r   r   ry   bytesr   propertyrv   asyncio	Transportr   ra   rN   rO   rP   rH   rH      s]    (E (d ( !U ! !Pw00 PT PrO   rH   sslrD   
verify_sslssl_contextrv   c                    U c  Sn Ub3  U(       d,  [         R                  " S[        SS9  U SLa  [        S5      eSn Ub,  [         R                  " S[        SS9  U SLa  [        S5      eUn Ub5  [         R                  " S[        SS9  U SLa  [        S5      e[	        U5      n [        U [        5      (       d  [        S	R                  U 5      5      eU $ )
NTz/verify_ssl is deprecated, use ssl=False instead   
stacklevelzNverify_ssl, ssl_context, fingerprint and ssl parameters are mutually exclusiveFz2ssl_context is deprecated, use ssl=context insteadzCfingerprint is deprecated, use ssl=Fingerprint(fingerprint) insteadzFssl should be SSLContext, bool, Fingerprint or None, got {!r} instead.)	warningswarnDeprecationWarningr{   rH   
isinstanceSSL_ALLOWED_TYPES	TypeErrorformat)r   r   r   rv   s       rP   _merge_ssl_paramsr      s     {j=	

 d?4 
 C@	

 d?4 
 CQ	

 d?4 
 k*Cc,--  &s
 	
 JrO   )httpswssc                       \ rS rSr% \\S'   \\   \S'   \\S'   \	\
\\4   \S'   \\   \S'   \\   \S'   \\   \S'   S	rg
)ConnectionKey   r   r   is_sslr   proxy
proxy_authproxy_headers_hashrN   N)r[   r\   r]   r^   r_   r`   r   intboolr   rD   rH   r   r.   ra   rN   rO   rP   r   r      sI     I
3-L	z4,	--C=## %rO   r   response_content_typeexpected_content_typec                 D    US:X  a  [         R                  U 5      S L$ X;   $ )Napplication/json)json_rematch)r   r   s     rP   _is_expected_content_typer      s+      22}}234?? 99rO   c            0       h   \ rS rSr% \R
                  \R                  \R                  \R                  1r	\R                  \R                  \R                  1r\	R                  \5      R                  \R                  15      r\R"                  S\R$                  \" 5       0rSr\\S'   SrSrSrSrSr\S   \S'   SSSSSS\R>                  SSSSSSSSSS	SSSSS
.S\ S\!S\"S\\#   S\\$\       S\S\\%   S\\&   S\RN                  S\(\ \)S4   S\\)   S\)S\\*RV                     S\\,S      S\\!   S\\&   S\\-   S\S   S\(\.\)\/4   S \\#   S!\\0S"      S#\)S$\\    4.S% jjr1SLS&\2S'S4S( jjr3\4S'\5S   4S) j5       r6\4S'\S*   4S+ j5       r7\7Rp                  SMS- j5       r7S'\)4S. jr9\4S'\(S/\)\/4   4S0 j5       r:\4S'\;4S1 j5       r<\4S'\ 4S2 j5       r=\4S'\\>   4S3 j5       r?\4S'\@4S4 j5       rAS\!S'S4S5 jrBS\(\RN                  \ 4   S'S4S6 jrCS\\#   S'S4S7 jrDS\\$\       S'S4S8 jrES\\%   S'S4S9 jrFS\S'S4S: jrGSNS; jrHSOS\\&   S#\)S'S4S< jjrIS\S'S4S= jrJSOS>\)S'S4S? jjrKS\\!   S\\&   S \\#   S'S4S@ jrLS,\MSASBS'S4SC jrNSPSD jrOSNSE jrPSNSF jrQS\ S\!SG\RS'S4SH jrSS\ S\!SSIS'S4SJ jrTSKrUg)QrE      z*/*rO   bodyNzCIMultiDict[None]_skip_auto_headersFT)paramsrh   skip_auto_headersdatacookiesauthversioncompresschunked	expect100loopresponse_classr   r   timersessionr   proxy_headerstraces	trust_envserver_hostnamerf   re   r   rh   r   r   r   r   r   r   r   r   r   r   rF   r   r   r   r   rI   r   r   r   rK   r   r   c                   Uc  [         R                  " 5       n[        R                  U5      =n(       a"  [	        SU< SUR                  5       < S35      e[        U5      [        L d   U5       eUb  [        U5      [        L d   U5       e[        (       a  Uc   eUU l	        U(       a  UR                  U5      nX l        UR                  (       a  UR                  S 5      OUU l        UR                  5       U l        Xl        Xl        Xl        S U l        Uc  [*        nOUnUU l        Ub  UO	[/        5       U l        Ub  UOSU l        UU l        UR7                  5       (       a/  [8        R:                  " [<        R>                  " S5      5      U l         U RC                  U	5        U RE                  U5        U RG                  U5        U RI                  U5        U RK                  U5        U RM                  U5        U RO                  UU5        U RQ                  UUU5        U RS                  U5        Uc  U R                   U RT                  ;  a  U RW                  5         U RY                  U5        Uc  / U l-        g UU l-        g )Nz+Method cannot contain non-token characters z (found at least )Tr   ).r   get_event_loop_CONTAINS_CONTROL_CHAR_REsearchr{   grouprX   r   r   _sessionextend_queryoriginal_urlraw_fragmentwith_fragmentre   upperrf   r   r   r   lengthrF   r   r0   _timer_sslr   	get_debug	tracebackextract_stacksys	_getframe_source_tracebackupdate_versionupdate_hostupdate_headersupdate_auto_headersupdate_cookiesupdate_content_encodingupdate_authupdate_proxyupdate_body_from_dataGET_METHODSupdate_transfer_encodingupdate_expect_continue_traces)r~   rf   re   r   rh   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   real_response_classs                             rP   r   ClientRequest.__init__  s1   6 <))+D-44V<<5<=fZ H##(;;="316 
 CyC$$;#%,u,% =&&&""6*C.1.>.>3$$T*Clln 	!"0"04G$0eik?C	.>>%.%<%<S]]1=M%ND"G$G$  !23G$$$T*y)%];""4(t{{$2B2BB))+##I.#^rrO   r   rL   c                     S U l         g r   _ClientRequest__writerr~   r   s     rP   __reset_writerClientRequest.__reset_writerl  	    rO   c                 <    U R                   =(       d
    [        5       $ r   )r   r   r   s    rP   r   ClientRequest.skip_auto_headerso  s    &&7+-7rO   asyncio.Task[None]c                     U R                   $ r   r   r   s    rP   _writerClientRequest._writers      }}rO   writerc                     U R                   b%  U R                   R                  U R                  5        Xl         UR                  U R                  5        g r   )r   remove_done_callback_ClientRequest__reset_writeradd_done_callbackr~   r  s     rP   r  r  w  s=    ==$MM..t/B/BC  !4!45rO   c                 <    U R                   R                  [        ;   $ r   )re   scheme_SSL_SCHEMESr   s    rP   r   ClientRequest.is_ssl~  s    xx,..rO   rD   c                     U R                   $ r   )r   r   s    rP   r   ClientRequest.ssl      yyrO   c           
      d   U R                   =n(       a#  [        [        UR                  5       5      5      nOS nU R                  n[        R                  [        UR                  =(       d    SUR                  UR                  [        ;   U R                  U R                  U R                  U45      $ )N )r   hashrm   itemsre   rn   r   raw_hostr   r  r  r   r   r   )r~   r   hre   s       rP   connection_keyClientRequest.connection_key  s     ...=.#E-*=*=*?$@AAAhh}}"

l*		


 	
rO   c                 <    U R                   R                  nUc   eU$ r   )re   r  )r~   rets     rP   r   ClientRequest.host  s     hh
rO   c                 .    U R                   R                  $ r   )re   r   r   s    rP   r   ClientRequest.port  s    xx}}rO   c                     [        U R                  5      n[        R                  [        U R
                  U R                  XR                  45      $ r   )r   rh   rm   rn   rG   re   rf   r   )r~   rh   s     rP   request_infoClientRequest.request_info  s=    )9$,,)G
 }}$((DKK:K:KL
 	
rO   c                    UR                   (       d  [        U5      eUR                  (       d  UR                  (       aC  [        R
                  " UR                  =(       d    SUR                  =(       d    S5      U l        gg)z8Update destination host, port and connection type (ssl).r  N)	r  r'   raw_userraw_passwordr   r.   userpasswordr   )r~   re   s     rP   r   ClientRequest.update_host  sP     ||S/! <<3++))#((.b#,,:L"MDI ,rO   c                 <   [        U[        5      (       a_  UR                  SS5       Vs/ s H  o"R                  5       PM     nn [        R
                  " [        US   5      [        US   5      5      nXl        gs  snf ! [         a    [        SU 35      Sef = f)zTConvert request version to two elements tuple.

parser HTTP version '1.1' => (1, 1)
.r   r   z#Can not parse http version number: N)	r   r_   splitstripr   r8   r   r{   r   )r~   r   partvs       rP   r   ClientRequest.update_version  s    
 gs##*1--Q*?@*?$*?A@**3qt9c!A$i@
  A   9'Cs   A</B Bc                    [        5       U l        U R                  R                  nUc   eX R                  [        R
                  '   U(       d  g[        U[        [        [        45      (       a  UR                  5       nU HD  u  p4U[        R                  ;   a  X@R                  U'   M)  U R                  R                  X45        MF     g)zUpdate request headers.N)r   rh   re   host_port_subcomponentr   HOSTr   dictr   r   r  HOST_ALLadd)r~   rh   r   keyvalues        rP   r   ClientRequest.update_headers  s    )4 xx.. "&TYYgni@AAmmoG!JCdmm#$)S!  , "rO   c                    UbV  [        S [        U5       5       5      U l        U R                  R	                  5       nUR                  U R                  5        OU R                  nU R                  R                  5        H  u  p4X2;  d  M  X@R                  U'   M     [        R                  U;  a"  [        U R                  [        R                  '   g g )Nc              3   (   #    U  H  oS 4v   M
     g 7fr   rN   ).0hdrs     rP   	<genexpr>4ClientRequest.update_auto_headers.<locals>.<genexpr>  s      2'@d'@s   )r   sortedr   rh   copyextendDEFAULT_HEADERSr  r   
USER_AGENTr7   )r~   r   used_headersr;  vals        rP   r   !ClientRequest.update_auto_headers  s    (&1 2'-.?'@2 'D#  <<,,.L 7 78  <<L,,224HC&$'S! 5 ??,.,;DLL) /rO   c                    U(       d  g[        5       n[        R                  U R                  ;   aT  UR	                  U R                  R                  [        R                  S5      5        U R                  [        R                  	 [        U[        5      (       a  UR                  5       nOUnU Hy  u  pE[        U[        5      (       a[  UR                  UR                  [        5       5      nUR                  UR                  UR                  UR                  5        XbU'   Mu  XRU'   M{     UR                  SSS9R                  5       U R                  [        R                  '   g)zUpdate request cookies header.Nr  ;)headersep)r   r   COOKIErh   loadrz   r   r   r  r   r5  setr6  coded_valueoutputr+  )r~   r   citer_cookiesnamer6  mrsl_vals          rP   r   ClientRequest.update_cookies  s    N;;$,,&FF4<<##DKK45T[[)gw''"==?L"L'KD%(( 99UYY9UYYU5F5FG"$$ ( %&HHBCH$@$F$F$HT[[!rO   c                    U(       d  SU l         gU R                  R                  [        R                  5      (       a  U R                   (       a  [        S5      egU R                   (       aU  [        U R                   [        5      (       d  SU l         U R                   U R                  [        R                  '   SU l        gg)zSet request content encoding.Nz9compress can not be set if Content-Encoding header is setdeflateT)	r   rh   rz   r   CONTENT_ENCODINGr{   r   r_   r   )r~   r   s     rP   r   %ClientRequest.update_content_encoding  s     DM<<D1122}} O   ]]dmmS11 )26--DLL../DL	 rO   c                    U R                   R                  [        R                  S5      R	                  5       nSU;   a  U R
                  (       a  [        S5      egU R
                  (       aG  [        R                  U R                   ;   a  [        S5      eSU R                   [        R                  '   g[        R                  U R                   ;  a:  [        [        U R                  5      5      U R                   [        R                  '   gg)z!Analyze transfer-encoding header.r  r   zDchunked can not be set if "Transfer-Encoding: chunked" header is setz6chunked can not be set if Content-Length header is setN)rh   rz   r   TRANSFER_ENCODINGlowerr   r{   CONTENT_LENGTHr_   rx   r   )r~   tes     rP   r   &ClientRequest.update_transfer_encoding  s    \\d44b9??A?|| D   \\""dll2 L  4=DLL//0""$,,647DII4GT001 7rO   c                    Uc  U R                   nUcj  U(       ac  U R                  R                  bL  [        5       n[        R
                  " [        5         [        X0R                  R                  5      nSSS5        Uc  g[        U[        R                  5      (       d  [        S5      eUR                  5       U R                  [        R                  '   g! , (       d  f       Nh= f)zSet basic auth.Nz%BasicAuth() tuple is required instead)r   re   r   r2   
contextlibsuppressLookupErrorr1   r   r   r.   r   encoderh   r   AUTHORIZATION)r~   r   r   	netrc_objs       rP   r   ClientRequest.update_auth4  s    <99D<I$((--*C&(I$$[1+Ixx}}E 2<$ 1 122CDD+/;;=T''( 21s    C
C%c                 |   Uc  g [        U[        5      (       a  U" 5       n [        R                  R	                  US S9nXl        U R                  (       d[  [        R                  U R                  ;  a=  UR                  =nb'  [        U5      U R                  [        R                  '   OSU l        UR                  (       d   eU R                  nU R                  nUR                  R                  5        H  u  pVXS;   d  Ub  XT;   a  M  XcU'   M     g ! [        R
                   a    [        U5      " 5       n Nf = f)N)dispositionT)r   r+   r!   PAYLOAD_REGISTRYrz   ra  r   r   r   r[  rh   sizer_   r   r  )r~   r   ri  rh   skip_headersr5  r6  s          rP   r   #ClientRequest.update_body_from_dataD  s   < dH%%6D	$++//$/GD 	 || 3 34<< G		!.47IT001# |||,,..,,,,.JC~,":s?R CL /! "" 	$D>#D	$s   D $D;:D;expectc                 :   U(       a  SU R                   [        R                  '   OO[        R                  U R                   ;   a1  U R                   [        R                     R                  5       S:X  a  SnU(       a   U R                  R                  5       U l        g g )Nz100-continueT)rh   r   EXPECTrZ  r   create_future	_continue)r~   rl  s     rP   r   $ClientRequest.update_expect_continuec  sf    (6DLL%KK4<<'T[[)//1^CF!YY446DN rO   c                     Xl         Uc  S U l        S U l        g U(       a*  [        U[        R
                  5      (       d  [        S5      eX l        Ub&  [        U[        [        45      (       d  [        U5      nX0l        g )Nz,proxy_auth must be None or BasicAuth() tuple)
r   r   r   r   r   r.   r{   r   r   r   )r~   r   r   r   s       rP   r   ClientRequest.update_proxyo  st     
="DO!%DjW5F5FGGKLL$$ZI~6.
 .
 (6M*rO   connrJ   c                   #    U R                   b,  UR                  5       I Sh  vN   U R                   I Sh  vN   UR                  nUc   e [        U R                  [
        R                  5      (       a$  U R                  R                  U5      I Sh  vN   Oc[        U R                  [        [        45      (       a  U R                  4U l        U R                   H  nUR                  U5      I Sh  vN   M     UR                  5       I Sh  vN   UR                  5         g GN N N N8 N! [         aw  nUnUR                  SL=(       d    [        U[        R                  5      (       + nU(       a$  [!        UR                  SU R"                  < 35      n[%        X6U5         SnAgSnAf[        R&                   a    UR)                  5         e [*         a$  n[%        U[-        SU< 35      U5         SnAgSnAff = f7f)z-Support coroutines that yields bytes objects.NzCan not write request body for z4Failed to send bytes into the underlying connection )rp  drainprotocolr   r   r!   Payloadwriter   	bytearray	write_eofstart_timeoutOSErrorerrnor   TimeoutErrorr$   re   r5   CancelledErrorclose	Exceptionr#   )r~   r  rt  rw  chunkunderlying_excreraised_excexc_is_not_timeouts           rP   write_bytesClientRequest.write_bytes  s    
 >>%,,.  ..  ==###$	%$))W__55iioof---dii%);<<!%DI!YYE ,,u--- '8 ""$$$""$S !  . .6 %5  	B)L!/!5!5T!A " 4 4J F ","((5dhh]C 
 (.AA%% 	JJL 	%J4)T  	s   !HD'HD*HAD2 D,AD2 5D.6D2 >HD0H*H,D2 .D2 0H2
H<A-F.)H.1HG>9H>HHc                   #    U R                   [        R                  :X  a7  U R                  R                  nUc   eU SU R                  R
                   3nORU R                  (       a+  U R                  5       (       d  [        U R                  5      nOU R                  R                  nUR                  nUc   e[        UU R                  U R                  (       a6  [        R                  " U R                   U R                   U R                  5      OS U R                  (       a6  [        R                  " U R"                  U R                   U R                  5      OS S9nU R$                  (       a  UR'                  U R$                  5        U R(                  b  UR+                  5         U R                   U R,                  ;   af  U R.                  b  [        R0                  U R.                  ;  a;  [        R0                  U R2                  ;  a  SU R2                  [        R0                  '   U R4                  n[        R6                  U R2                  ;  aj  UR8                  R:                  (       a(  U[<        :X  a  SU R2                  [        R6                  '   O'U[>        :X  a  SU R2                  [        R6                  '   U R                    SU SUR@                   SURB                   3nURE                  XpR2                  5      I S h  vN   U RF                  (       d  U RH                  c  URJ                  (       a  U RM                  XQ5      n[N        RP                  S	:  a   [R        RT                  " XR                  S
S9n	OU R                  RW                  U5      n	U	RY                  5       (       a  S n	O)Xl-        O"UR]                  5         UR_                  5         S n	U R`                  n
U
c   eU
" U R                   U Rb                  U	U RH                  U Rd                  U Rf                  U R                  U R                  U Rh                  S9	U l5        U Rj                  $  GNU7f)N:)on_chunk_senton_headers_sentzapplication/octet-streamr  z
keep-alive z HTTP/r)  )r      T)r   eager_start)r  continue100r   r   r   r   r   )6rf   r   METH_CONNECTre   host_subcomponentr   r   r   r_   raw_path_qsrw  r;   r   r   	functoolspartial_on_chunk_request_sent_on_headers_request_sentr   enable_compressionr   enable_chunkingPOST_METHODSr   CONTENT_TYPErh   r   
CONNECTION
_connectorforce_closer:   r9   majorminorwrite_headersr   rp  writing_pausedr  r   version_infor   Taskcreate_taskdoner  r|  set_eofr   r   r   r   r   response)r~   rt  connect_hostpathrw  r  r-  status_linecorotaskr   s              rP   sendClientRequest.send  s,    
 ;;$+++8855L+++"^1TXX]]O4DZZtxx=D88''D==###II << !!$"="=t{{DHHU << !!$"?"?dhhW
 ==%%dmm4<<#""$ KK4,,,''/$$D,C,CC!!5.HDLL**+LL??$,,.**%4;DLL1m#0<T__- QtfF177)1QWWIF"";===992h6M6M##F1D7* ||DyydKyy,,T2yy{{# ""$NND,,)))&KK++**<<MM

 }}I 	>s   LQQEQc                   #    U R                   b   U R                   I S h  vN   g g  N! [        R                   aM    [        R                  S:  a6  [        R
                  " 5       =n(       a  UR                  5       (       a  e  g  g  g f = f7fN)r      )r   r   r  r   r  current_task
cancellingr~   r  s     rP   r  ClientRequest.close  s~     ==$mm## %#)) $$/!(!5!5!777)) * 8 0s2   B) ') B) AB
B	B

Bc                     U R                   bf  U R                  R                  5       (       d  U R                   R                  5         U R                   R	                  U R
                  5        S U l         g g r   )r   r   	is_closedcancelr  r  r   s    rP   	terminateClientRequest.terminate"  sS    ==$99&&(($$&MM..t/B/BC DM	 %rO   r  c                 j   #    U R                    H  nUR                  XU5      I S h  vN   M     g  N	7fr   )r   send_request_chunk_sent)r~   rf   re   r  traces        rP   r  $ClientRequest._on_chunk_request_sent)  s,     \\E//UCCC "C   %31
3zCIMultiDict[str]c                 j   #    U R                    H  nUR                  XU5      I S h  vN   M     g  N	7fr   )r   send_request_headers)r~   rf   re   rh   r  s        rP   r  &ClientRequest._on_headers_request_sent-  s.      \\E,,V'BBB "Br  )__writerrp  r   r   r   r   r   r   r  r   r   r   r   rh   r   r   rf   r   r   r   r   r  r   r   re   r   r   )r  r   rL   NrL   N)F)rt  rJ   rL   rF   )Vr[   r\   r]   r^   r   METH_GET	METH_HEADMETH_OPTIONS
METH_TRACEr   
METH_PATCH	METH_POSTMETH_PUTr  unionMETH_DELETEALL_METHODSACCEPTACCEPT_ENCODINGrQ   rA  r   r   r`   r   r  r   rp  r   r   r   r:   r_   r   rB   rA   r   r@   r.   r8   r   r   r   AbstractEventLoopr   r-   rD   rH   r   r   objectr  r   r   r   r  setterr   r   r   r  r   r   r   rG   r   r   r   r   r   r   r   r   r   r   r   r   r"   r  r  r  r  r   r  r  ra   rN   rO   rP   rE   rE      s$   	K OOT^^T]]CL##L1779I9I8JKK 	U:<O D#ODHHI8<!45< *.59*.$($($6$6+/"&48;?#*.,0-14804*.)-3M8M8 M8
 M8 ,'M8 $HSM2M8 M8 ,'M8 y!M8 !!M8 T4(M8 $M8 M8 w001M8  !&6!78!M8" }#M8$ Y'%M8& ()'M8( /*)M8* :t[01+M8,  --M8. g'/M80 1M82 "#3M8^ $  8;t#4 8 8 "67   ^^6 6/ / U<{:;   
 
 
& c  
 hsm   
k 
 
Ns Nt NeD,<,<c,A&B t -h|&< - -2<Xhsm5L <QU <&Ih|&< I I2 C  D  $H,9 3 9 9QU 9 !# !$ !>
7T 
7d 
7+}+ Y'+  -	+
 
+,/%*/%2>/%	/%b^@
!D3 DS D DSW DCC #C.@C	CrO   rE   Connection closedc                      \ rS rSr% Sr\\   \S'   Sr\	\S'   Sr
\\   \S'   Sr\\S'   Sr\\   \S'   Sr\\   \S'   S	r\S
   \S'   Sr\\S'   Sr\S   \S'   Sr\\   \S'   Sr\S   \S'   Sr\\R8                     \S'   Sr\S   \S'   SrSrSr S r!\"S \/\4   \S'   Sr#\S   \S'   S\S\$SSS\S   S \%S!\&S"\'S#   S$\(RR                  S%SS&S4S' jr*SYS(\+S&S4S) jjr,\-S&\S   4S* j5       r.\.R^                  S\S   S&S4S+ j5       r.\-S&\4S, j5       r0\0R^                  S-\S&S4S. j5       r0\1S&\$4S/ j5       r2\1S&\$4S0 j5       r3\1S&\$4S1 j5       r4\1S&\4S2 j5       r5\1SZS3 j5       r6\1S&\4S4 j5       r7\1S&\&4S5 j5       r8\1S&\\9   4S6 j5       r:\;4S7\<S&S4S8 jjr=S&\4S9 jr>\-S&\S   4S: j5       r?\1S&\S
   4S; j5       r@\1S[S< j5       rAS\S= jrBS]S> jrC\-S&\D4S? j5       rES]S@ jrFS&\<4SA jrG\-S&\D4SB j5       rHS]SC jrIS]SD jrJS]SE jrKS]SF jrLS]SG jrMS]SH jrNS&\4SI jrOS&\4SJ jrPS^SK\\   SL\S&\4SM jjrQS\RSNSO.SK\\   SP\SSQ\\   S&\<4SR jjrTS_SS jrUST\\V\W      SU\\W   SV\\X   S&S4SW jrYSXrZg)`rF   i7  Nr   statusreasoncontent_body_headersrN   )rF   ._history_raw_headersrJ   _connection_cookieszasyncio.Future[bool]rp  r   rI   r   TFc                      g)Nutf-8rN   )r   s    rP   <lambda>ClientResponse.<lambda>R  s    GrO   _resolve_charsetr   _ClientResponse__writerrf   re   r  zOptional[asyncio.Task[None]]r  r   r   r   rK   r   r   rL   c                   [        U5      [        L d   eXl        X l        UR                  (       a  UR                  S 5      OUU l        Ub  X0l        Ub  X@l        X`l	        Ub  UO	[        5       U l        0 U l        Xpl        Xl        U	b  Xl        U	R                   U l        UR#                  5       (       a0  [$        R&                  " [(        R*                  " S5      5      U l        g g )Nr   )rX   r   rf   	_real_urlr   r   _urlr  rp  _request_infor0   r   _cacher   _loopr   r  r   r   r   r   r   r   )
r~   rf   re   r  r  r   r   r   r   r   s
             rP   r   ClientResponse.__init__V  s     CyC/2/?/?C%%d+S	!L"(N)$0eik&(
 #M$+$<$<D!>>%.%<%<S]]1=M%ND" rO   r   c                     S U l         g r   r  r   s     rP   r   ClientResponse.__reset_writer}  r   rO   c                     U R                   $ )zThe writer task for streaming data.

_writer is only provided for backwards compatibility
for subclasses that may need to access it.
r  r   s    rP   r  ClientResponse._writer  s     }}rO   c                     U R                   b%  U R                   R                  U R                  5        Xl         Uc  gUR                  5       (       a  SU l         gUR	                  U R                  5        g)z'Set the writer task for streaming data.N)r  r  _ClientResponse__reset_writerr  r	  r
  s     rP   r  r    sY     ==$MM..t/B/BC>;;== DM$$T%8%89rO   c                 R    U R                   c  [        5       U l         U R                   $ r   )r  r   r   s    rP   r   ClientResponse.cookies  s    == (NDM}}rO   r   c                     Xl         g r   )r  )r~   r   s     rP   r   r    s    rO   c                     U R                   $ r   )r  r   s    rP   re   ClientResponse.url  r  rO   c                 N    [         R                  " S[        SS9  U R                  $ )NzDeprecated, use .url #1654   r   )r   r   r   r  r   s    rP   url_objClientResponse.url_obj  s    24FSTUyyrO   c                     U R                   $ r   )r  r   s    rP   ri   ClientResponse.real_url  s    ~~rO   c                 `    U R                   R                  c   eU R                   R                  $ r   )r  r   r   s    rP   r   ClientResponse.host  s$    yy~~)))yy~~rO   c                     U R                   $ r   )r  r   s    rP   rh   ClientResponse.headers  r  rO   c                     U R                   $ r   )r  r   s    rP   raw_headersClientResponse.raw_headers  r   rO   c                     U R                   $ r   )r  r   s    rP   r   ClientResponse.request_info  s    !!!rO   c                     U R                   R                  [        R                  5      nUc  g [        R
                  " U5      u  p#[        U5      n[        R                  " U5      n[        X$U5      $ r   )	r  rz   r   CONTENT_DISPOSITIONr    parse_content_dispositionr	   content_disposition_filenamerV   )r~   rawdisposition_type
params_dctr   rZ   s         rP   content_disposition"ClientResponse.content_disposition  s`    mm 8 89;'0'J'J3'O$!*-99&A!"2HEErO   	_warningsc                    U R                   (       a  g U R                  b  U R                  R                  5         U R                  5         U R                  R                  5       (       aa  SU 0nUR                  " SU < 3[        40 UD6  U SS.nU R                  (       a  U R                  US'   U R                  R                  U5        g g g )NsourcezUnclosed response zUnclosed response)client_responsemessagesource_traceback)
_closedr  release_cleanup_writerr  r   r   ResourceWarningr   call_exception_handler)r~   r  kwargscontexts       rP   __del__ClientResponse.__del__  s    <<'$$&  "zz##%%"D)!3D8<oXQWX.2?RS))262H2HG./

11': &	 (rO   c                 d   [         R                  " 5       n[        U R                  5      nU R                  (       a,  U R                  R                  SS5      R                  S5      nOSn[        SR                  X R                  U5      US9  [        U R                  US9  UR                  5       $ )NasciibackslashreplaceNonez<ClientResponse({}) [{} {}]>)file)ioStringIOr_   re   r  rb  decodeprintr   r  rh   getvalue)r~   outascii_encodable_urlascii_encodable_reasons       rP   __repr__ClientResponse.__repr__  s    kkm!$((m;;%)[[%7%7+&fWo # &,"*11#[[2H 		
 	dll%||~rO   c                     U R                   $ r   )r  r   s    rP   
connectionClientResponse.connection  s    rO   c                     U R                   $ )z2A sequence of of responses, if redirects occurred.)r  r   s    rP   historyClientResponse.history  s     }}rO   c           	         SR                  U R                  R                  S/ 5      5      nU(       d  [        [	        5       5      $ [	        5       n[
        R                  " SU5       GH  n[
        R                  " SU5      nUc  M   UR                  5       u  pVUR                  S5      SS  n[	        5       nU HR  n	[
        R                  " SU	[
        R                  5      nUc  M.  UR                  5       u  ppUR                  X5        MT     UR                  SU5      n
UR                  S	U R                  R                  [        U5      5      5        UR                  [        U
5      [        U5      5        GM     [        U5      $ )
Nz, linkz	,(?=\s*<)z\s*<(.*)>(.*)rG  r   z%^\s*(\S*)\s*=\s*(['\"]?)(.*?)(\2)\s*$relre   )joinrh   getallr   r   rer*  r   groupsMr4  rz   re   r   r_   )r~   	links_strlinksrD  r   re   
params_strr   r6  paramr5  r   r6  s                rP   r>  ClientResponse.links  s.   IIdll11&"=>	!)+..<EK88L)4CHH-s3E}#llnOC%%c*12.F/8{D!I5RTRVRVW=#(<<> $   ((5#&CHHUDHHMM#c(34IIc#ht 45/ 52 e$$rO   c           
      d  #    SU l         UR                  U l        Xl        U R                       U R                  nUR                  5       I Sh  vN u  p4UR                  S:  d   UR                  S:  d  UR                  S:X  a  O,U R                  b  [        U R                  S5        SU l        M  SSS5        WR                   " U R"                  5        WR$                  U l        UR                  U l        UR(                  U l        UR                  U l        UR,                  U l        X@l        U R                  R3                  [4        R6                  S5      =n(       a+  [9        5       nU H  n UR;                  U5        M     Xpl!        U $  GNA! [        R                   aE  n[        U R                  U R                  UR                  UR                  UR                  S9UeSnAff = f! , (       d  f       GNC= f! [<         a"  n[>        R@                  " S	U5         SnAM  SnAff = f7f)
zStart response processing.FTNr  r  rh   d      e   rN   z!Can not load response cookies: %s)"r  rw  	_protocolr  r   readr   HttpProcessingErrorr%   r   r3  coder  rh   rp  r6   on_eof_response_eofr   r  r  r  r  r  r  r9  r   
SET_COOKIEr   rK  r   r<   warningr  )	r~   r0  rw  r  r!   exccookie_hdrsr   r;  s	            rP   startClientResponse.start  s    #,,%[[
#~~H-5]]_'<$G <<#%);w||s?R>>-t~~t4%)DN'  . 	t))* llnn  #//  ,,--doorBB;B"nG"TLL% #
 $MS (=// -))"xx # #  [V # T!))*MsSSTs~   +H0G/FFFAG/3B?H03HH0FG,'A G''G,,G//
G>9H0
H-H("H0(H--H0c                     U R                   (       a  g U R                  =(       a    U R                  R                  nUb  UR                  (       a  g SU l         U R	                  5         U R                  5         g NT)r  r  rw  upgradedr  _release_connection)r~   rw  s     rP   rL  ClientResponse._response_eofN  sZ    << ##A(8(8(A(AH$5$5  "rO   c                     U R                   $ r   )r  r   s    rP   closedClientResponse.closed[  s    ||rO   c                 ,   U R                   (       d  U R                  5         SU l        U R                  b  U R                  R	                  5       (       a  g U R                  5         U R                  b"  U R                  R                  5         S U l        g g rT  )	_released_notify_contentr  r  r  r  r  r  r   s    rP   r  ClientResponse.close_  sr    ~~  "::!5!5!7!7'""$#D (rO   c                     U R                   (       d  U R                  5         SU l        U R                  5         U R	                  5         [        5       $ rT  )r\  r]  r  r  rV  r3   r   s    rP   r  ClientResponse.releasel  s;    ~~  "  "vrO   c                      SU R                   :  $ )zReturns ``True`` if ``status`` is less than ``400``, ``False`` if not.

This is **not** a check for ``200 OK`` but a check that the response
status is under 400.
i  )r  r   s    rP   okClientResponse.okv  s     T[[  rO   c                    U R                   (       do  U R                  c   eU R                  (       d  U R                  5         [	        U R
                  U R                  U R                  U R                  U R                  S9eg )NrC  )	rb  r  _in_contextr  r%   r   r3  r  rh   r   s    rP   raise_for_statusClientResponse.raise_for_status  sd    ww;;*** ##%!!{{  rO   c                    ^  T R                   bO  T R                  c"  T R                   R                  5         S T l         g T R                  R                  U 4S j5        g g )Nc                 $   > TR                  5       $ r   )rV  )fr~   s    rP   r  4ClientResponse._release_connection.<locals>.<lambda>  s    $:R:R:TrO   )r  r  r  r	  r   s   `rP   rV  "ClientResponse._release_connection  sK    '}}$  ((*#' //0TU (rO   c                 4  #    U R                   b   U R                   I S h  vN   U R                  5         g  N! [        R                   aI    [        R                  S:  a2  [        R
                  " 5       =n(       a  UR                  5       (       a  e  Nof = f7fr  )r  r   r  r   r  r  r  rV  r  s     rP   _wait_releasedClientResponse._wait_released  s{     ==$mm## 	  " $)) $$/!(!5!5!777))2   B8 68 B8 ABBBBc                 `    U R                   b  U R                   R                  5         S U l        g r   )r  r  r   r   s    rP   r  ClientResponse._cleanup_writer  s#    ==$MM  "rO   c                 z    U R                   nU(       a!  UR                  5       c  [        U[        5        SU l        g rT  )r  	exceptionr5   _CONNECTION_CLOSED_EXCEPTIONr\  )r~   r  s     rP   r]  ClientResponse._notify_content  s.    ,,w((*2'#?@rO   c                 4  #    U R                   b   U R                   I S h  vN   U R                  5         g  N! [        R                   aI    [        R                  S:  a2  [        R
                  " 5       =n(       a  UR                  5       (       a  e  Nof = f7fr  )r  r   r  r   r  r  r  r  r  s     rP   wait_for_closeClientResponse.wait_for_close  sx     ==$mm## 	 $)) $$/!(!5!5!777))rp  c                 R  #    U R                   cu   U R                  R                  5       I Sh  vN U l         U R                   H<  nUR	                  U R
                  U R                  U R                   5      I Sh  vN   M>     OU R                  (       a  [        S5      eU R                  =(       a    U R                  R                  nUb  UR                  (       d  U R                  5       I Sh  vN   U R                   $  N N! [         a    U R                  5         e f = f N37f)zRead response payload.Nr  )r  r  rH  r   send_response_chunk_receivedrf   re   BaseExceptionr  r\  r#   r  rw  rU  rn  )r~   r  rw  s      rP   rH  ClientResponse.read  s     ::#'<<#4#4#66
!\\E<<TXXtzz   * ^^'(;<<##A(8(8(A(A8#4#4%%'''zz 7 ! 

 (sL   D'D DAD ;D<D A-D'1D%2D'D D D""D'c                 ^   U R                   R                  [        R                  S5      R	                  5       n[
        R                  " U5      nUR                  R                  S5      nU(       aI  [        R                  " [        [        5         [        R                  " U5      R                  sS S S 5        $ UR                  S:X  a!  UR                   S:X  d  UR                   S:X  a  gU R"                  c  [%        S5      eU R'                  X R"                  5      $ ! , (       d  f       Nr= f)Nr  charsetapplicationjsonrdapr  z7Cannot compute fallback encoding of a not yet read body)rh   rz   r   r  rZ  r   parse_mimetyperY   r_  r`  ra  r{   codecslookuprQ  rX   subtyper  RuntimeErrorr  )r~   ctypemimetypeencodings       rP   get_encodingClientResponse.get_encoding  s      !2!2B7==?))%0&&**95$$[*=}}X.33 >= ==M)&(*:*:f*D ::I  $$T::66 >=s    D
D,r  errorsc                    #    U R                   c  U R                  5       I Sh  vN   Uc  U R                  5       nU R                   R                  XS9$  N07f)z!Read response payload and decode.N)r  )r  rH  r  r'  )r~   r  r  s      rP   textClientResponse.text  sO     ::))+((*Hzz   99 s   !AA1Ar   )r  loadscontent_typer  r  c                  #    U R                   c  U R                  5       I Sh  vN   U(       a  U R                  R                  [        R
                  S5      R                  5       n[        XC5      (       d8  [        U R                  U R                  U R                  SU-  U R                  S9eU R                   R                  5       nU(       d  gUc  U R                  5       nU" UR                  U5      5      $  N7f)zRead and decodes JSON response.Nr  z3Attempt to decode JSON with unexpected mimetype: %srC  )r  rH  rh   rz   r   r  rZ  r   r&   r   r3  r  r+  r  r'  )r~   r  r  r  r  strippeds         rP   r  ClientResponse.json  s      ::))+LL$$T%6%6;AACE,UAA&%%LL;;MPUU LL  ::##%((*HX__X.//- s   !C=C;CC=c                    #    SU l         U $ 7frT  )re  r   s    rP   
__aenter__ClientResponse.__aenter__  s     s   
exc_typeexc_valexc_tbc                 n   #    SU l         U R                  5         U R                  5       I S h  vN   g  N7f)NF)re  r  rx  )r~   r  r  r  s       rP   	__aexit__ClientResponse.__aexit__  s,      ! 	!!###s   +535)r  r  r  r  r  rp  r  r  re  r  rG  r  r  r\  r  r  r   r   r   r   r  r  r  rf   r  r  r   r   )rL   rg   )rL   z/MultiDictProxy[MultiDictProxy[Union[str, URL]]])r0  rJ   rL   rF   r  )Nstrict)rL   rF   )[r[   r\   r]   r^   r   r   r8   r`   r  r   r  r_   r  r=   r  r   r  r   r  r   r  rC   r  r  r   rp  r   r   StackSummaryr   r  r\  re  r  r   r  r   r-   rG   r   r   r  r   r  r  r   r  r  r   r4   re   r  ri   r   rh   r  r   rV   r  r   r   r  r-  r0  r3  r>  rQ  rL  r   rY  r  r  rb  rf  rV  rn  r  r]  rx  rH  r  r  r>   r?   r  r  r   r|  r
   r  ra   rN   rO   rP   rF   rF   7  s    &*GXk")FC FHSM  G\ !E8E?!&*Hs#*-/He)*/#L*#*.K,'.'+Hh|$+26Ix./6:>x	 6 67>*.Hh'. GIKASh 0%8#=>S/3Hh+,3%O%O %O
 /%O 45%O  %O "%O W%O ''%O !%O 
%ON $  "67   ^^:h';< : : :   
 ^^ |       S      #   c     !Z ! ! "k " " FX.@%A F F (0 ; ;D ; # $  H\2     45   !% !%F4l#   $  !D ! !$V#
E (7c 7.:8C= : :TW : #'1&80 3-0 	0
 sm0 
0B$4./$ -($ '	$
 
$rO   rF   )xr   r  r_  r  r%  r:  r   r   r   hashlibr   r   r   http.cookiesr   r   r   typesr	   r
   typingr   r   r   r   r   r   r   r   r   r   r   r   attr	multidictr   r   r   r   yarlr   r  r   r   r   r    r!   abcr"   client_exceptionsr#   r$   r%   r&   r'   r(   compression_utilsr*   formdatar+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   logr<   streamsr=   typedefsr>   r?   r@   rA   rB   rC   r   rD   ImportErrorr  __all__clientrI   	connectorrJ   tracingrK   compiler   r   r_   rQ   srV   rc   rG   rH   r   rX   r   r   r   	frozensetr  r   r   rE   ru  rF   rN   rO   rP   <module>r     sE       	 	 
   % % : : 1     N N  5 5 %  *       !  " L %% JJ'EF 
**9
:Bc B T$d3  4: 
, 
$P P@ ?{DJGtDz*4	|T;.	/44 ,'4 %	4
 <{*+4n )*	&J 	&::7::	:rC rCj  55HI l$\ l$K  
s   :
H 
HH