
    q*iw                        % S 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	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  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SS	KJr  SS
K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.J/r/J0r0J1r1J2r2J3r3J4r4  SSK5J6r6  SSK7J8r8J9r9  SSK:r:SSK;J<r<J=r=J>r>  SSK?J@rA  SSKBJCrC  SSKDJErE  SSKFJGrG  \R                  S:  a  SSKrIOSSKIrISrJ\R                  " 5       S:H  rL\R                  " 5       S:H  rM\R                  S:  rN\R                  S:  rO\1" S5      rP\1" S5      rQ\R                  " SS5      rS\SR                  rT\U" \
R                  R                  S5      5      rX\Y" SS /\Z" S!S"5      Q75      r[\ER                  r]\R                  R                  =(       dC    \R                  R                  (       + =(       a!    \U" \
R                  R                  S#5      5      ra\Z" SS$5       V s1 s H  n \b" U 5      iM     sn rc\Z" SS%5       V s1 s H  n \b" U 5      iM     sn \b" S&5      1-  rdS'S(S)S*S+S,S-S.S/S0S1S2S3S4S5S6S7S8\b" S95      1re\c\d-  \e-  rf " S: S;5      rg " S< S=\" S=/ S>Q5      5      rhS?\CS@\/\C\-\h   4   4SA jriS@\-\	R                     4SB jrj\:R                  " SCSCSCSD9 " SE SF5      5       rlSG\-\	R                     SH\mS@\h4SI jrnS@\&\m\l4   4SJ jroS?\CS@\/\C\-\h   4   4SK jrp\:R                  " SCSCSCSD9 " SL SM5      5       rq\R                  " SNSO9SP\mS@\q4SQ j5       rs " SR SS\5      rt\R                  " SNSO9ST\mS@\/\m\ \m\m4   4   4SU j5       ruSSV\#SW\-\m   S@\-\m   4SX jjrv\R                  " SY5      rx\Z" S%S&5       V s1 s H  n \b" U 5      iM     sn SZ1-  ryS[\mS@\m4S\ jrz SS]\mS^\US_\mS`\mS@\m4
Sa jjr{SH\-\m   S@\U4Sb jr|Sq}\-\~   \Sc'   SdqS@\m4Se jrSSf jr SSg\Sh\mSi\Sj\GR
                  Sk\S@\-\GR                     4Sl jjr SSm\$/ \#4   Si\Sj\GR
                  Sk\S@\-\GR                     4
Sn jjrSo\Si\Sp\S@\4Sq jr " Sr Ss5      r " St Su\%Su   5      r " Sv Sw\5      r " Sx Sy\5      r SSz\-\   S{\S@\IGR                  4S| jjr " S} S~5      rSSS\PS@S4S jr\" 5       r " S S\.5      r\4SSS\S\S@S4S jjr\GR,                   " S S\(\P   5      5       r " S S\,\2\m\\#   4   \#4   5      rSr\R                  " \5      rS\ S3r\R                  " \5      r\R                  " S'\ S35      rSr\:R                  " SCSCSCSD9 " S S5      5       rS\mS@S4S jrS\-\m   S@\-\R
                     4S jr\R                  S\mS\~S@\U4S j5       rS\mS\~S@\U4S jrgs  sn f s  sn f s  sn f )zVarious helper functions    N)
namedtuple)suppress)EmailMessage)HeaderParser)HTTP)	parsedateceil)Path)MappingProxyTypeTracebackType)AnyCallableContextManagerDict	GeneratorGenericIterableIteratorListMappingOptionalProtocolTupleTypeTypeVarUnionget_argsoverload)quote)
getproxiesproxy_bypass)	MultiDictMultiDictProxyMultiMapping)under_cached_property)URL   )hdrs)client_logger      )	BasicAuthChainMapProxyETagreifyDarwinWindows)r,   
   _T_S	_SENTINELsentinelAIOHTTP_NO_EXTENSIONS   i0  d      PYTHONASYNCIODEBUG          ()<>@,;:\"/[]?={} 	   c                   (    \ rS rSrS\S   4S jrSrg)noopw   return)NNNc              #      #    S v   g 7fN selfs    O/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/aiohttp/helpers.py	__await__noop.__await__x   s     s   rZ   N)__name__
__module____qualname____firstlineno__r   r^   __static_attributes__rZ       r]   rU   rU   w   s    9%56 re   rU   c            	          ^  \ rS rSrSr SS\S\S\SS 4U 4S jjjr\SS	\S\SS 4S
 jj5       r\SS.S\	S\S\
S    4S jj5       rS\4S jrSrU =r$ )r.   |   z!Http basic authentication helper.latin1loginpasswordencodingrW   c                 ~   > Uc  [        S5      eUc  [        S5      eSU;   a  [        S5      e[        TU ]	  XX#5      $ )Nz"None is not allowed as login valuez%None is not allowed as password valuerH   z5A ":" is not allowed in login (RFC 1945#section-11.1))
ValueErrorsuper__new__)clsri   rj   rk   	__class__s       r]   ro   BasicAuth.__new__   sL     =ABBDEE%<TUUws8>>re   auth_headerc                     UR                  SS5      u  p4UR                  5       S:w  a  [        SU-  5      e [        R                  " UR                  S5      SS9R                  U5      n UR                  S
S5      u  pgU " XgUS9$ ! [         a    [        S5      ef = f! [        R                   a    [        S	5      ef = f! [         a    [        S5      ef = f)z<Create a BasicAuth object from an Authorization HTTP header.rR   r(   z%Could not parse authorization header.basiczUnknown authorization method %sasciiT)validatezInvalid base64 encoding.rH   zInvalid credentials.rk   )	splitrm   lowerbase64	b64decodeencodedecodebinasciiError)rp   rs   rk   	auth_typeencoded_credentialsdecodedusernamerj   s           r]   r~   BasicAuth.decode   s    	F-8->->sA-F*I ??'>JKK	9&&#**73dfX 	5
 ")sA!6H 899-  	FDEE	F ~~ 	9788	9  	5344	5s"   B 3B! -C B! CCrx   urlc                    [        U[        5      (       d  [        S5      eUR                  c  UR                  c  gU " UR
                  =(       d    SUR                  =(       d    SUS9$ )zCreate BasicAuth from url.zurl should be yarl.URL instanceN rx   )
isinstancer'   	TypeErrorraw_userraw_passworduserrj   )rp   r   rk   s      r]   from_urlBasicAuth.from_url   sW     #s##=>> <<C$4$4$<388>r3<<#52IIre   c                     U R                    SU R                   3R                  U R                  5      nS[        R
                  " U5      R                  U R                  5      -  $ )zEncode credentials.rH   zBasic %s)ri   rj   r}   rk   r{   	b64encoder~   )r\   credss     r]   r}   BasicAuth.encode   sN    JJ<q088GF,,U3::4==IIIre   rZ   )r   rh   )rh   )r`   ra   rb   rc   __doc__strro   classmethodr~   r'   r   r   r}   rd   __classcell__rq   s   @r]   r.   r.   |   s    + >F??#&?7:?	? ? : : :; : :8 3; J3 JS J@U J JJ J Jre   r.   )ri   rj   rk   r   rW   c                     U R                   c  U R                  c  U S4$ U R                  S5      [        U R                  =(       d    SU R
                  =(       d    S5      4$ )zIRemove user and password from URL if present and return BasicAuth object.Nr   )r   r   	with_userr.   r   rj   )r   s    r]   strip_auth_from_urlr      sO     || 0 0 8Dy==	#((.b#,,:L" MMMre   c                     [         R                  R                  S5      n U b  [        U 5      nO( [        R                  " 5       nU[        (       a  SOS-  n [        R                  " [        U5      5      $ ! [
         a!  n[        R                  " SU5         SnAgSnAff = f! [        R                   a!  n[        R                  " SU5         SnAgSnAf[         av  nSn[        R                  " [        5         UR!                  5       nSSS5        O! , (       d  f       O= fU (       d  U(       a  [        R                  " SU5         SnAgSnAff = f)	zLoad netrc from file.

Attempt to load it from the path specified by the env-var
NETRC or in the default location in the user's home directory.

Returns None if it couldn't be found or fails to parse.
NETRCNzHCould not resolve home directory when trying to look for .netrc file: %s_netrcz.netrczCould not parse .netrc file: %sFzCould not read .netrc file: %s)osenvirongetr   homeRuntimeErrorr*   debug
IS_WINDOWSnetrcr   NetrcParseErrorwarningOSError
contextlibr   is_file)	netrc_env
netrc_pathhome_direnetrc_existss        r]   netrc_from_envr      s    

w'I)_
		yy{H ZZXF
G{{3z?++  	5
 	    D?CC   G  )%--/L *))  !!"BAFGsS   A7 B% 7
B"BB"%E9CE"E>D	E
D&	",EET)auto_attribsfrozenslotsc                   0    \ rS rSr% \\S'   \\   \S'   Srg)	ProxyInfo   proxy
proxy_authrZ   N)	r`   ra   rb   rc   r'   __annotations__r   r.   rd   rZ   re   r]   r   r      s    J##re   r   	netrc_objhostc                     U c  [        S5      eU R                  U5      nUc  [        SU< S35      eUu  p4nU(       d  Uc  UOUnUc  Sn[        Xe5      $ )z
Return :py:class:`~aiohttp.BasicAuth` credentials for ``host`` from ``netrc_obj``.

:raises LookupError: if ``netrc_obj`` is :py:data:`None` or if no
        entry is found for the ``host``.
zNo .netrc file foundzNo entry for z found in the `.netrc` file.r   )LookupErrorauthenticatorsr.   )r   r   auth_from_netrcri   accountrj   r   s          r]   basicauth_from_netrcr      sr     011..t4OM$1MNOO.EH '/uH X((re   c                  d   [        5       R                  5        V Vs0 s H  u  pU S;   d  M  U [        U5      _M     nn n[        5       nUR                  5        V Vs0 s H  u  pU [	        U5      _M     nn n0 nUR                  5        H  u  pgUu  pUR
                  S;   a2  [        R                  " SUR
                  R                  5       U5        MK  U(       a&  U	c#  UR                  b   [        X8R                  5      n	[        X5      XV'   M     U$ s  snn f s  snn f ! [         a    S n	 N-f = f)N)httphttpswswss)r   r   z)%s proxies %s are not supported, ignoring)r!   itemsr'   r   r   schemer*   r   upperr   r   r   r   )
kv
proxy_urlsr   strippedretprotovalr   auths
             r]   proxies_from_envr     s(    L&&((DA.. 	3q6	(  
  I6@6F6F6HI6Hda&q))6HHI
Cnn&
<<++!!;U\\=O=O=QSX zz% /	::FD u+
 ' J- J #  D s"   DDD,D  D/.D/c                 "   U R                   b4  [        U R                   5      (       a  [        SU R                   < S35      e[        5       n XR                     nUR
                  UR                  4$ ! [         a    [        SU < S35      ef = f)z5Get a permitted proxy for the given URL from the env.zProxying is disallowed for ``zNo proxies found for `z` in the env)r   r"   r   r   r   r   r   KeyError)r   proxies_in_env
proxy_infos      r]   get_env_proxy_for_urlr   ,  s    
xxSXX 6 68AFGG%'N7#JJ/
 !6!666  H23'FGGHs   A3 3Bc                   >    \ rS rSr% \\S'   \\S'   \\S'   S\S'   Srg)	MimeTypei:  typesubtypesuffixzMultiDictProxy[str]
parametersrZ   N)r`   ra   rb   rc   r   r   rd   rZ   re   r]   r   r   :  s    
ILK%%re   r   8   )maxsizemimetypec           	         U (       d  [        SSS[        [        5       5      S9$ U R                  S5      n[        5       nUSS  H]  nU(       d  M  UR	                  S5      u  pEnUR                  UR                  5       R                  5       UR                  S5      5        M_     US   R                  5       R                  5       nUS	:X  a  S
nUR	                  S5      u  pn	U	R	                  S5      u  pn
[        XU
[        U5      S9$ )zParses a MIME type into its components.

mimetype is a MIME type string.

Returns a MimeType object.

Example:

>>> parse_mimetype('text/html; charset=utf-8')
MimeType(type='text', subtype='html', suffix='',
         parameters={'charset': 'utf-8'})

r   )r   r   r   r   rG   r(   NrO   z "r   *z*/*rK   +)r   r$   r#   ry   	partitionaddrz   strip)r   partsparamsitemkey_valuefulltypemtypestyper   s              r]   parse_mimetyper   B  s     R~ik7R
 	
 NN3E&[Fab	s+

399;$$&D(9:	  Qx~~%%'H3((-OEes+Ef&^F=S re   c                   :   ^  \ rS rSrSU 4S jjrS\4S jrSrU =r$ )EnsureOctetStreamij  rW   c                 D   > [         TU ]  5         U R                  S5        g Nzapplication/octet-stream)rn   __init__set_default_type)r\   rq   s    r]   r   EnsureOctetStream.__init__k  s    89re   c                     U R                  SS5      R                  5       nUR                  S5      u  n  nUR                  5       nUR	                  S5      S:w  a  U R                  5       $ U$ )zRe-implementation from Message

Returns application/octet-stream in place of plain/text when
value is wrong.

The way this class is used guarantees that content-type will
be present so simplify the checks wrt to the base implementation.
zcontent-typer   rG   rK   r(   )r   rz   r   r   countget_default_type)r\   r   ctyper   s       r]   get_content_type"EnsureOctetStream.get_content_typep  sc     ,224 ooc*q!;;sq ((**re   rZ   rW   N)	r`   ra   rb   rc   r   r   r   rd   r   r   s   @r]   r   r   j  s    :
#  re   r   rawc                     [        [        [        S9R                  SU  35      nUR	                  5       nUR                  S5      n[        USS 5      nU[        U5      4$ )zParse Content-Type header.

Returns a tuple of the parsed content type and a
MappingProxyType of parameters. The default returned value
is `application/octet-stream`
)policyzContent-Type: rZ   r(   N)r   r   r   parsestrr   
get_paramsdictr   )r  msgcontent_typer   content_dicts        r]   parse_content_typer
    sb     (
6
?
?.QTPU@V
WC'')L^^BFqr
#L),777re   objdefaultc                     [        U SS 5      nU(       a<  [        U[        5      (       a'  US   S:w  a  US   S:w  a  [        U5      R                  $ U$ )Nnamer   rC   rD   )getattrr   r   r   r  )r  r  r  s      r]   guess_filenamer    sF    3%D
4%%$q'S.T"X_DzNre   z[^\041\043-\133\135-\176]	contentc                 t    [         [        U 5      :  d  [        SU < 35      e[        R	                  S U 5      $ )a   Return 7-bit content as quoted-string.

Format content into a quoted-string as defined in RFC5322 for
Internet Message Format. Notice that this is not the 8-bit HTTP
format, but the 7-bit email format. Content must be in usascii or
a ValueError is raised.
zbad content for quoted-string c                 *    SU R                  S5      -   $ )NrI   r   )group)xs    r]   <lambda>quoted_string.<locals>.<lambda>  s    dQWWQZ&7re   )QCONTENTsetrm   not_qtext_resub)r  s    r]   quoted_stringr    s7     s7|#9'EFF7AAre   disptypequote_fields_charsetr   c                    U (       a  [         [        U 5      :  d  [        SU < 35      eU nU(       Ga  / nUR                  5        H  u  pgU(       a  [         [        U5      :  d  [        SU< SU< 35      eU(       a[  UR	                  5       S:X  a#  [        USUS9nUR                  USU-  45        Mp   [        U5      nUR                  USU-  45        M  UR                  S
S5      R                  SS5      nUR                  USU-  45        M     SR                  S U 5       5      n	SR                  XI45      nU$ ! [         a8    SR                  US[        USUS945      nUR                  US	-   U45         GM=  f = f)a?  Sets ``Content-Disposition`` header for MIME.

This is the MIME payload Content-Disposition header from RFC 2183
and RFC 7579 section 4.2, not the HTTP Content-Disposition from
RFC 6266.

disptype is a disposition type: inline, attachment, form-data.
Should be valid extension token (see RFC 2183)

quote_fields performs value quoting to 7-bit MIME headers
according to RFC 7578. Set to quote_fields to False if recipient
can take 8-bit file names and field values.

_charset specifies the charset to use when quote_fields is True.

params is a dict with disposition params.
zbad content disposition type z"bad content disposition parameter rO   filenamer   rx   z"%s"z''r   rI   z\\rJ   z\"z; c              3   D   #    U  H  nS R                  U5      v   M     g7f)rO   N)join).0pairs     r]   	<genexpr>-content_disposition_header.<locals>.<genexpr>  s     ?wtCHHTNNws    )
TOKENr  rm   r   rz   r    appendr  r%  replace)
r  r   r!  r   r   lparamsr   r   qvalsparamss
             r]   content_disposition_headerr0    so   ( ECM18EFFEHCus3x/ #EcWAcW!UVV99;*, b8<DNNC$#78=,S1  Vd]';<{{4088eDVd]34' '( ))?w??		5*+L & :!ww%tU3X-NO   c	4'899	:s   7E=FFc                 j    U (       d  gSU ;   =(       d     U R                  SS5      R                  5       $ )z}Check if host looks like an IP Address.

This check is only meant as a heuristic to ensure that
a host is not a domain name.
FrH   .r   )r,  isdigit)r   s    r]   is_ip_addressr4    s/      $;9$,,sB/7799re   _cached_current_datetimer   c                      [        [        R                  " 5       5      n U [        :w  a0  SnSn[        R                  " U 5      tp4pVpxpSX   UX$   UUUU4-  qU q[        $ )N)MonTueWedThuFriSatSun)r   JanFebMarAprMayJunJulAugSepOctNovDecz#%s, %02d %3s %4d %02d:%02d:%02d GMT)inttimer5  gmtime_cached_formatted_datetime)now_weekdayname
_monthnameyearmonthdayhhmmsswdtails              r]   rfc822_formatted_timerY    s     diik
C
&& I

  37++c2B/Sbb%JN
 &
" $' %%re   c                     U u  pU" 5       nUb)  [        [        5         [        X25      " 5         S S S 5        g g ! , (       d  f       g = frY   )r   	Exceptionr  )inforefr  obs       r]   _weakref_handler_    s<    IC	B	~i B !    s	   9
Ar^  r  timeoutlooptimeout_ceil_thresholdc                     UbV  US:  aP  UR                  5       U-   nX$:  a  [        U5      nUR                  U[        [        R
                  " U 5      U45      $ g Nr   )rK  r
   call_atr_  weakrefr]  )r^  r  r`  ra  rb  whens         r]   weakref_handlerh    sR     w{yy{W$,:D||D/GKKOT3JKKre   cbc                 p    Ub  US::  a  g UR                  5       n[        XAU5      nUR                  XP5      $ rd  )rK  calculate_timeout_whenre  )ri  r`  ra  rb  rN  rg  s         r]   
call_laterrl  .  s9     'Q,
))+C!#0FGD<<!!re   	loop_timetimeout_ceiling_thresholdc                 .    X-   nX:  a  [        U5      $ U$ )z$Calculate when to execute a timeout.r	   )rm  r`  rn  rg  s       r]   rk  rk  ;  s!     D*DzKre   c            	           \ rS rSrSrSr SS\R                  S\\	   S\	SS4S	 jjr
S
\S   S\S\SS4S jrSS jrS\\R                     4S jrSS jrSS jrSrg)TimeoutHandleiG  zTimeout handle_timeout_loop_ceil_threshold
_callbacksra  r`  ceil_thresholdrW   Nc                 6    X l         Xl        X0l        / U l        g rY   rr  )r\   ra  r`  rw  s       r]   r   TimeoutHandle.__init__L  s       
-  	re   callback).Nargskwargsc                 >    U R                   R                  XU45        g rY   )rv  r+  )r\   rz  r{  r|  s       r]   registerTimeoutHandle.registerY  s     	78re   c                 8    U R                   R                  5         g rY   )rv  clearr[   s    r]   closeTimeoutHandle.close^  s    re   c                     U R                   nUbb  US:  a\  U R                  R                  5       U-   nXR                  :  a  [	        U5      nU R                  R                  X R                  5      $ g rd  )rs  rt  rK  ru  r
   re  __call__)r\   r`  rg  s      r]   startTimeoutHandle.starta  s]    --7Q;::??$w.D...Dz::%%dMM::re   c                     U R                   bB  U R                   S:  a2  [        U R                  5      nU R                  UR                  5        U$ [        5       $ rd  )rs  TimerContextrt  r~  r`  	TimerNoop)r\   timers     r]   r  TimeoutHandle.timerk  sB    ==$): ,EMM%--(L;re   c                     U R                    H&  u  pn[        [        5         U" U0 UD6  S S S 5        M(     U R                   R                  5         g ! , (       d  f       MT  = frY   )rv  r   r[  r  )r\   ri  r{  r|  s       r]   r  TimeoutHandle.__call__s  sM     $Bf)$D#F# %$ !0 	 %$s   	A
A!	)rv  ru  rt  rs     r   )rW   BaseTimerContext)r`   ra   rb   rc   r   	__slots__asyncioAbstractEventLoopr   floatr   r   r   r~  r  TimerHandler  r  r  rd   rZ   re   r]   rq  rq  G  s    FI !"	'' % 	
 
9 +9479CF9	9
 x 3 34  re   rq  c                   "    \ rS rSrSrSS jrSrg)r  i{  rZ   Nc                     g)z0Raise TimeoutError if timeout has been exceeded.NrZ   r[   s    r]   assert_timeoutBaseTimerContext.assert_timeout  s    re   r   )r`   ra   rb   rc   r  r  rd   rZ   re   r]   r  r  {  s    I?re   r  c                   X    \ rS rSrSrS\4S jrS\\\	      S\\	   S\\
   SS4S	 jrSrg)
r  i  rZ   rW   c                     U $ rY   rZ   r[   s    r]   	__enter__TimerNoop.__enter__  s    re   exc_typeexc_valexc_tbNc                     g rY   rZ   )r\   r  r  r  s       r]   __exit__TimerNoop.__exit__  s     	re   )r`   ra   rb   rc   r  r  r  r   r   BaseExceptionr   r  rd   rZ   re   r]   r  r    sS    I+ 4./ -( '	
 
re   r  c            	           \ rS rSrSrSrS\R                  SS4S jrSS jr	S\
4S	 jrS
\\\      S\\   S\\   S\\   4S jrSS jrSrg)r  i  z&Low resolution timeout context managerrt  _tasks
_cancelled_cancellingra  rW   Nc                 :    Xl         / U l        SU l        SU l        g )NFr   r  )r\   ra  s     r]   r   TimerContext.__init__  s    
/1re   c                 H    U R                   (       a  [        R                  Seg)z7Raise TimeoutError if timer has already been cancelled.N)r  r  TimeoutErrorr[   s    r]   r  TimerContext.assert_timeout  s    ??&&D0 re   c                 *   [         R                  " U R                  S9nUc  [        S5      e[        R
                  S:  a  UR                  5       U l        U R                  (       a  [         R                  S eU R                  R                  U5        U $ )N)ra  z4Timeout context manager should be used inside a taskr+   )r  current_taskrt  r   sysversion_info
cancellingr  r  r  r  r+  r\   tasks     r]   r  TimerContext.__enter__  sr    ##4<UVVw&  $0D??&&D04 re   r  r  r  c                 8   S nU R                   (       a  U R                   R                  5       nU[        R                  L aZ  U R                  (       aI  Uc   e[
        R                  S:  a  UR                  5       U R                  :  a  g [        R                  Ueg )Nr+   )
r  popr  CancelledErrorr  r  r  uncancelr  r  )r\   r  r  r  
enter_tasks        r]   r  TimerContext.__exit__  s}     37
;;*Jw---$//))) 7* &&(4+;+;;&&G3re   c                     U R                   (       d4  [        U R                  5       H  nUR                  5         M     SU l         g g NT)r  r  r  cancelr  s     r]   r`  TimerContext.timeout  s3    DKK( ) #DO	 re   )r  r  rt  r  r   )r`   ra   rb   rc   r   r  r  r  r   r  r  r  r   r   r  r   boolr  r`  rd   rZ   re   r]   r  r    s}    0@IW66 4 1
+ "4./ -( '	
 
$0#re   r  delayrw  c                     U b  U S::  a  [         R                  " S 5      $ [        R                  " 5       nUR	                  5       nX0-   nX:  a  [        U5      n[         R                  " U5      $ rd  )async_timeoutr`  r  get_running_looprK  r
   
timeout_at)r  rw  ra  rN  rg  s        r]   ceil_timeoutr    s`     }
$$T**##%D
))+C;DDz##D))re   c                       \ rS rSr% Sr\" / SQ5      r\\   \	S'   Sr
\\   \	S'   Sr\\\\4      \	S'   \r\\S\4   \	S'   S	\\   S
S4S jr\S
\4S j5       r\S
\\   4S j5       r\S
\\   4S j5       rSrg)HeadersMixini  zMixin for handling headers.)_content_type_content_dict_stored_content_type_headersNr  r  r  r  rW   c                     Xl         Uc  SU l        0 U l        g [        U5      u  p#X l        UR	                  5       U l        g r   )r  r  r  r
  copy)r\   r  r  content_mapping_proxys       r]   _parse_content_type HeadersMixin._parse_content_type  sA    $'!;!;D!#D2DS2I/L!-!6!;!;!=Dre   c                     U R                   R                  [        R                  5      nU R                  U:w  a  U R                  U5        U R                  c   eU R                  $ )z7The value of content part for Content-Type HTTP header.)r  r   r)   CONTENT_TYPEr  r  r  r\   r  s     r]   r  HeadersMixin.content_type  sX     mm 1 12$$+$$S)!!---!!!re   c                     U R                   R                  [        R                  5      nU R                  U:w  a  U R                  U5        U R                  c   eU R                  R                  S5      $ )z7The value of charset part for Content-Type HTTP header.charset)r  r   r)   r  r  r  r  r  s     r]   r  HeadersMixin.charset  sc     mm 1 12$$+$$S)!!---!!%%i00re   c                 t    U R                   R                  [        R                  5      nUc  S$ [	        U5      $ )z(The value of Content-Length HTTP header.N)r  r   r)   CONTENT_LENGTHrJ  )r\   content_lengths     r]   r  HeadersMixin.content_length
  s3     **4+>+>?%-tF3~3FFre   )r  r  r  )r`   ra   rb   rc   r   	frozensetATTRSr%   r   r   r  r   r  r   r8   r  r   r7   r  propertyr  r  rJ  r  rd   rZ   re   r]   r  r    s    %PQE3#'M8C='.2M8DcN+28@%T9 45@
>x} 
> 
> "c " " 1# 1 1 G G Gre   r  futzasyncio.Future[_T]resultc                 R    U R                  5       (       d  U R                  U5        g g rY   )done
set_result)r  r  s     r]   r  r    s    88::v re   c                   0    \ rS rSr SS\S\SS4S jjrSrg)	ErrorableProtocoli  exc	exc_causerW   Nc                     g rY   rZ   )r\   r  r  s      r]   set_exceptionErrorableProtocol.set_exception  s     re   rZ   .)r`   ra   rb   rc   r  r  rd   rZ   re   r]   r  r    s-     $' ! 
	 re   r  z&asyncio.Future[_T] | ErrorableProtocolr  r  c                     [         R                  " U 5      (       a  U R                  5       (       a  gU[        L nXL nU(       d  U(       d  X!l        U R                  U5        g)zSet future exception.

If the future is marked as complete, this function is a no-op.

:param exc_cause: An exception that is a direct cause of ``exc``.
                  Only set if provided.
N)r  isfuturer  _EXC_SENTINEL	__cause__r  )r  r  r  exc_is_sentinelexc_causes_itselfs        r]   r  r  !  sN     =0O(#4!cre   c                   p    \ rS rSr% SrSr\\   \S'   SS\	S\
\\      4S jjrS	\S
\4S jrS
\	4S jrSrg)AppKeyi8  z.Keys for static typing support in Application.)_name_t__orig_class__r  Nr  tc                     [         R                  " 5       nU(       a?  UR                  R                  S:X  a  UR                  S   nOUR
                  nU(       a  M?  WS-   U-   U l        X l        g )Nz<module>r`   r2  )inspectcurrentframef_codeco_name	f_globalsf_backr  r  )r\   r  r  framemodules        r]   r   AppKey.__init__C  s]    $$&||##z1#ooj9LLE	 e c\D(
re   otherrW   c                 `    [        U[        5      (       a  U R                  UR                  :  $ gr  )r   r  r  )r\   r  s     r]   __lt__AppKey.__lt__O  s%    eV$$::++re   c                    U R                   nUc0  [        [        5         [        U R                  5      S   nS S S 5        Uc  SnOY[        U[        5      (       a9  UR                  S:X  a  UR                  nO'UR                   SUR                   3nO[        U5      nSU R                   SU S3$ ! , (       d  f       N= f)Nr   z<<Unknown>>builtinsr2  z<AppKey(z, type=z)>)r  r   AttributeErrorr   r  r   r   ra   rb   reprr  )r\   r  t_reprs      r]   __repr__AppKey.__repr__T  s    GG9.)T001!4 * 9"F4  ||z)LL>1>>*:;!WF$**WVHB77 *)s   B22
C )r  r  rY   )r`   ra   rb   rc   r   r  r   objectr   r   r   r5   r   r  r  r  rd   rZ   re   r]   r  r  8  sQ    81I
 L 
S 
Xd2h%7 
F t 
8# 8re   r  c            	          \ rS rSrSrS\\\\\	\
   4   \
4      SS4S jrSS jr\S\	\   S\4S	 j5       r\S\S\
4S
 j5       rS\\\	\   4   S\
4S jr\S\	\   S\S\\\4   4S j5       r\SS\	\   SSS\\   4S jj5       r\SS\S\
S\
4S jj5       rSS\\\	\   4   S\
S\
4S jjrS\4S jrS\\\\	\
   4      4S jrS\S\4S jrS\4S jrS\4S jrSrg)r/   ig  )_mapsmapsrW   Nc                 $    [        U5      U l        g rY   )tupler  )r\   r  s     r]   r   ChainMapProxy.__init__j  s    4[
re   c                 J    [        SR                  U R                  5      5      e)Nz4Inheritance class {} from ChainMapProxy is forbidden)r   formatr`   )rp   s    r]   __init_subclass__ChainMapProxy.__init_subclass__m  s"    !6#,,/
 	
re   r   c                     g rY   rZ   r\   r   s     r]   __getitem__ChainMapProxy.__getitem__s  s    25re   c                     g rY   rZ   r  s     r]   r  r  v  s    ,/re   c                 j    U R                    H  n X!   s  $    [        U5      e! [         a     M$  f = frY   )r  r   )r\   r   mappings      r]   r  r  y  s=    zzG|# "
 sm  s   $
22r  c                     g rY   rZ   r\   r   r  s      r]   r   ChainMapProxy.get  s    BEre   c                     g rY   rZ   r#  s      r]   r   r$    s    ILre   c                     g rY   rZ   r#  s      r]   r   r$    s    8;re   c                 0     X   $ ! [          a    Us $ f = frY   )r   r#  s      r]   r   r$    s#    	9 	N	s    c                 V    [        [        5       R                  " U R                  6 5      $ rY   )lenr  unionr  r[   s    r]   __len__ChainMapProxy.__len__  s    35;;

+,,re   c                 v    0 n[        U R                  5       H  nUR                  U5        M     [        U5      $ rY   )reversedr  updateiter)r\   dr!  s      r]   __iter__ChainMapProxy.__iter__  s1    02

+GHHW , Awre   c                 B   ^ [        U4S jU R                   5       5      $ )Nc              3   .   >#    U  H
  nTU;   v   M     g 7frY   rZ   )r&  mr   s     r]   r(  -ChainMapProxy.__contains__.<locals>.<genexpr>  s     0Z3!8Zs   anyr  r  s    `r]   __contains__ChainMapProxy.__contains__  s    0TZZ000re   c                 ,    [        U R                  5      $ rY   r8  r[   s    r]   __bool__ChainMapProxy.__bool__  s    4::re   c                 `    SR                  [        [        U R                  5      5      nSU S3$ )Nz, zChainMapProxy(rB   )r%  mapr  r  )r\   r  s     r]   r  ChainMapProxy.__repr__  s*    ))Cdjj12y**re   r   r  rY   )r`   ra   rb   rc   r  r   r   r   r   r  r   r   r  r   r5   r  r6   r   r   rJ  r+  r   r2  r  r  r:  r=  r  rd   rZ   re   r]   r/   r/   g  s}   I!XgeC4D.Es.J&KL !QU !
 5vbz5b5 5/s/s/ /uS&*_5 #  EvbzEBE5R=E ELvbzLDL8B<L L;s;S;3; ;uS&*_-  s - -(5fSk)9#:; 1 14 1$ +# +re   r/   z[!\x23-\x7E\x80-\xff]+z(W/)?"(z)"z)(?:\s*,\s*|$)|(.)r   c                   .    \ rS rSr% \\S'   Sr\\S'   Srg)r0   i  r   Fis_weakrZ   N)	r`   ra   rb   rc   r   r   rC  r  rd   rZ   re   r]   r0   r0     s    JGTre   r0   r   c                 n    U [         :w  a+  [        R                  U 5      (       d  [        SU < S35      eg g )NzValue z, is not a valid etag. Maybe it contains '"'?)ETAG_ANY	_ETAGC_RE	fullmatchrm   )r   s    r]   validate_etag_valuerH    s<    !4!4U!;!;UIJK
 	
 "<re   date_strc                     U bX  [        U 5      nUbJ  [        [        5         [        R                  " USS S[        R                  R
                  06sSSS5        $ g! , (       d  f       g= f)z/Process a date string, return a datetime objectN   tzinfo)r   r   rm   datetimetimezoneutc)rI  	timetuples     r]   parse_http_daterQ    s\    h'	 *%(()BQ-V@Q@Q@U@UV &% &%s   1A
A+methodcodec                     U[         ;   =(       d?    U [        ;   =(       d/    SUs=:*  =(       a    S:  Os  =(       a    U [        R                  ;   $ )z-Check if a request must return an empty body.r<   ,  )EMPTY_BODY_STATUS_CODESEMPTY_BODY_METHODSr)   METH_CONNECT_ALLrR  rS  s     r]   must_be_empty_bodyrZ    sG     	'' 	C''	C4#A&D,A,A"Are   c                     U[         ;   =(       d/    SUs=:*  =(       a    S:  Os  =(       a    U [        R                  ;   $ )zjCheck if a Content-Length header should be removed.

This should always be a subset of must_be_empty_body
r<   rU  )rV  r)   rX  rY  s     r]   should_remove_content_lengthr\    s7     ** tc=f(=(==re   rY   )Tzutf-8)r\  zTuple[weakref.ref[object], str]rW   Nr  )r   r  r{   r   r   rM  enum	functoolsr  r   r   platformrer  rK  rf  collectionsr   r   email.messager   email.parserr   email.policyr   email.utilsr   mathr
   pathlibr   typesr   r   typingr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   urllib.parser    urllib.requestr!   r"   attr	multidictr#   r$   r%   propcache.apir&   r1   yarlr'   r   r)   logr*   r  r  __all__systemIS_MACOSr   PY_310PY_311r5   r6   Enumr7   r8   r  r   r   NO_EXTENSIONSr  rangerV  METH_HEAD_ALLrW  flagsdev_modeignore_environmentDEBUGchrCHARCTL
SEPARATORSr*  rU   r.   r   r   sr   r   r   r   r   r   	lru_cacher   r   r
  r  compiler  r  r  r0  r4  r5  rJ  r   rM  rY  r_  r  r  r  r  rh  rl  rk  rq  r  r  r  Timeoutr  r  r  r  r  r  r  total_orderingr  r/   _ETAGCrF  _QUOTED_ETAGQUOTED_ETAG_RELIST_QUOTED_ETAG_RErE  r0   rH  rQ  rZ  r\  )is   0r]   <module>r     s             	  	 
   "  & %  !   1    (  3  = = 8   w#
9??(__)+
			W	$			W	$ T]T]IIk:.	RZZ^^$;<= $S#$@c3$@A  '' 		 			$$$Sbjjnn=Q.R)S 
 a&1A&Q|$|!s1v|$H(  F'
* 	s
Z 
<J
;(IJ <J~NS NU30C+C%D N(- (V T$d3$ $ 4$
)HU[[$9 ) ) ):$sI~. 47s 7uS(92E-E'F 7 T$d3& & 4& R $S $X $ !$N 2 R 8C 8E#/?S/I*I$J 8 !8 hsm x}  zz67!$-.-qCF-.$7
B3 
B3 
B ?F00!%08;0QT00f
: 
:$ 
: +/ (3- . %&s %&P  %&
  
#
#	
 " g!!"( %&	
"S
"
" 
#
#
" "	
"
 g!!"
"			  %	 		1  1 h?~&89 ?   >## >#D 56*E?*,1**,G ,G^( "  
    -	1	  
	. +8WR[ +8 +8\<+GE#vc{"23S89 <+@ 
#JJv	&$L)jjAl^3E!FG  T$d3  4

s 
t 
hsm 9J9J0K  s # $  	 	C 	D 	m '$|	 /s   W	0W%W