+
    TŎit                       a  R) td0 t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RIH
t
 ^ RIHtHtHtHtHtHtHtHtHtHtHtHt ^ RIHt ^ RIt^ RIHtHtHtHtH t  ^ RI!H"t" ^RI#H$t$ ^RI%H&t& ^R	I'H(t( ^R
I)H*t*H+t+H,t,H-t-H.t.H/t/H0t0H1t1H2t2H3t3H4t4 ^RI5H6t6 ^RI7H8t8 ^RI9H:t:H;t; ^RI<H=t=H>t> ^RI?H@t@HAtAHBtBHCtCHDtD ^RIEHFtF ^RIGHHtH R*tI]'       d   ^RIJHKtK ^RILHMtM ^RINHOtO ]P                  ! RRRR7       ! R R4      4       tQ]P                  ]P                  ,           R,           tT] ^ k R]T R2tU] ^k RP                  RP                  R  R+]X! ]Y! ^#^4      4      ,            4       4      4      tZ] ^k R!t[] ^k R"P                  ]Z][R#7      t\] ^k R$P                  ]U]\R%7      t]] ^k ]P                  ! R&4      t_] ^k ]P                  ! ]]4      t`] ^k  ! R' R]]a]3,          ]04      tb ! R( R]b4      tcR# ),    N)MappingProxyType)TYPE_CHECKINGAnyDictFinalIteratorMappingMutableMappingOptionalPatternTupleUnioncast)	parse_qsl)CIMultiDictCIMultiDictProxy	MultiDictMultiDictProxyMultiMappingURL)hdrs)parse_cookie_headerAbstractStreamWriter)	_SENTINELDEBUGETAG_ANYLIST_QUOTED_ETAG_REChainMapProxyETagHeadersMixinparse_http_datereifysentinelset_exceptionRawRequestMessageHttpVersion)BodyPartReaderMultipartReader)EmptyStreamReaderStreamReader)DEFAULT_JSON_DECODERJSONDecoderLooseHeaders
RawHeadersStrOrURL)HTTPRequestEntityTooLargeStreamResponseBaseRequest	FileFieldRequest)Application)RequestHandler)UrlMappingMatchInfoT)auto_attribsfrozenslotsc                   ,   a  ] tR t^Lt o V 3R ltRtV tR# )r8   c                z   < V ^8  d   Qh/ S[ ;R&   S[ ;R&   S[P                  ;R&   S[ ;R&   S[S[ ,          ;R&   # )   namefilenamefilecontent_typeheaders)strioBufferedReaderr   )format__classdict__s   "b/Users/ahmad/.openclaw/workspace/scripts/.venv/lib/python3.14/site-packages/aiohttp/web_request.py__annotate__FileField.__annotate__L   sM     
I  M  

	 
   c""      N)__name__
__module____qualname____firstlineno____annotate_func____static_attributes____classdictcell__rL   s   @rM   r8   r8   L   s      rP   z!#$%&'*+.^_`|~-[z]+z[{}] c              #   8   "   T F  p\        V4      x  K  	  R # 5iN)chr).0cs   & rM   	<genexpr>ra   [   s     KJSVVJs   z
\\[\t !-~]z"(?:{quoted_pair}|{qdtext})*")qdtextquoted_pairz0({token})=({token}|{quoted_string})(:\d{{1,4}})?)tokenquoted_stringz\\([\t !-~])c                     a  ] tR t^vt o ]P
                  ]P                  ]P                  ]P                  ]P                  0t
]P                  ]! . RO4      ,          tRtRtRRRRRRRRRR/V 3R lR lltR	]R
]R]R]R]R]R]/V 3R lR llt]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       tV 3R lR ltV 3R  lR! ltV 3R" lR# ltV 3R$ lR% lt V 3R& lR' lt!]V 3R( lR) l4       t"]V 3R* lR+ l4       t#]V 3R, lR- l4       t$]V 3R. lR/ l4       t%]V 3R0 lR1 l4       t&]V 3R2 lR3 l4       t']V 3R4 lR5 l4       t(]V 3R6 lR7 l4       t)]V 3R8 lR9 l4       t*]V 3R: lR; l4       t+]V 3R< lR= l4       t,]V 3R> lR? l4       t-]V 3R@ lRA l4       t.]V 3RB lRC l4       t/]V 3RD lRE l4       t0]V 3RF lRG l4       t1]V 3RH lRI l4       t2]3V 3RJ lRK l4       t4]5V 3RL lRM l4       t6]V 3RN lRO l4       t7]V 3RP lRQ l4       t8]V 3RR lRS l4       t9]V 3RT lRU l4       t:]V 3RV lRW l4       t;]V 3RX lRY l4       t<]V 3RZ lR[ l4       t=]V 3R\ lR] l4       t>]V 3R^ lR_ l4       t?]V 3R` lRa l4       t@V 3Rb lRc ltAV 3Rd lRe ltBV 3Rf lRg ltCRh]D/V 3Ri lRj lltEV 3Rk lRl ltFV 3Rm lRn ltGRV 3Ro lRp lltHV 3Rq lRr ltIV 3Rs lRt ltJV 3Ru lRv ltKV 3Rw lRx ltLV 3Ry lRz ltMV 3R{ lR| ltNV 3R} ltOR~tPV tQR# )r7   Nclient_max_sizestateschemehostremotec                   < V ^8  d   QhRS[ RS[RRRS[RRRS[P                  R	S[R
S[S[S[S[	3,          ,          RS[S[,          RS[S[,          RS[S[,          RR/# )rB   messagepayloadprotocolr;   payload_writertaskasyncio.Task[None]looprg   rh   ri   rj   rk   returnN)
r(   r.   r   asyncioAbstractEventLoopintr   r   rH   r   )rK   rL   s   "rM   rN   BaseRequest.__annotate__   s     5+ 5+"5+ 5+ #	5+
 -5+ #5+ ''5+ 5+ S#X'5+ 5+ sm5+ 5+ 
5+rP   c                  Wn         W0n        W@n        W n        VP                  V n        VP                  V n        VP                  V n	        / V n
        VP                  pVP                  '       d   V	e   VP                  V	4      pV
e   VP                  V
4      pWP                  R&   VP                  V P                  R&   VP                   V P                  R&   VP#                  4       V n        M*Wn        V	e   WP                  R&   V
e   WP                  R&   Vf   / MTV n        WPn        Wpn        W`n        VP.                  V n        VP2                  V n        Ve   WP                  R&   R # R # )Nurlrj   ri   rk   )_message	_protocol_payload_writer_payloadrG   _headersmethod_methodversion_version_cacherz   absolutewith_scheme	with_hostrj   ri   relative_rel_url_state_task_client_max_size_loopssl_context_transport_sslcontextpeername_transport_peername)selfrm   rn   ro   rp   rq   rs   rg   rh   ri   rj   rk   rz   s   &&&&&&&$$$$$ rM   __init__BaseRequest.__init__   s3     !-/6~~&(kk<<<!oof-mmD) "%KK"%((DKK$'JJDKK!LLNDMM!(.H%&*F#!Mbu
 /
%-%9%9"#+#4#4 $*KK! rP   r   rel_urlrG   c                   < V ^8  d   QhRS[ S[S[3,          RS[ S[S[3,          RS[ S[S[3,          RS[ S[S[3,          RS[ S[S[3,          RS[ S[S[3,          RS[ S[S[3,          RR	/# )
rB   r   r   rG   ri   rj   rk   rg   rt   r7   r   rH   r   r3   r1   rw   )rK   rL   s   "rM   rN   rx      s     9
 9
 c9n%9
 x*+	9

 |Y./9
 c9n%9
 CN#9
 c9n%9
 sI~.9
 
9
rP   c               &   V P                   '       d   \        R4      h/ pV\        Jd   WR&   V\        Jd   \        V4      p	WR&   \	        V	4      VR&   V\        Jdq   \        \        V4      4      VR&   \        ;QJ d)    . R VR,          P                  4        4       F  NK  	  5M"! R VR,          P                  4        4       4      VR&   V P                  P                  ! R/ VB p
/ pV\        Jd   WKR&   V\        Jd   W[R	&   V\        Jd   WkR
&   V\        J d   V P                  pV P                  ! V
V P                  V P                  V P                  V P                   V P"                  3RVRV P$                  P'                  4       /VB # )zClone itself with replacement some attributes.

Creates and returns a new instance of Request object. If no parameters
are given, an exact copy is returned. If a parameter is not passed, it
will reuse the one from the current request object.
z.Cannot clone request after reading its contentr   rz   pathrG   c              3   j   "   T F)  w  rVP                  R 4      VP                  R 4      3x  K+  	  R# 5i)utf-8N)encode)r_   kvs   &  rM   ra   $BaseRequest.clone.<locals>.<genexpr>   s0      '2DA '"AHHW$562s   13raw_headersri   rj   rk   rg   rh   rQ   )_read_bytesRuntimeErrorr%   r   rH   r   r   tupleitemsr{   _replacer   	__class__r~   r|   r}   r   r   r   copy)r   r   r   rG   ri   rj   rk   rg   dctnew_urlrm   kwargss   &$$$$$$$    rM   cloneBaseRequest.clone   s}   " OPP !"M("w<G Jg,CK("-k'.BCC	N!& '	N002' '	N002' "C
 --((/3/!%8x!6N!%8h&"33O~~MMNN  JJJJ

 ,

 ++""$

 

 
	
rP   c                   < V ^8  d   QhRR/# )rB   rt   rr   rQ   )rK   rL   s   "rM   rN   rx     s      * rP   c                    V P                   # r]   )r   r   s   &rM   rq   BaseRequest.task
  s    zzrP   c                   < V ^8  d   QhRR/# )rB   rt   r;   rQ   )rK   rL   s   "rM   rN   rx     s      * rP   c                    V P                   # r]   )r|   r   s   &rM   ro   BaseRequest.protocol  s    ~~rP   c                D   < V ^8  d   QhRS[ S[P                  ,          /# rB   rt   )r   ru   	Transport)rK   rL   s   "rM   rN   rx     s     ( (8G$5$56 (rP   c                N    V P                   f   R # V P                   P                  # r]   )r|   	transportr   s   &rM   r   BaseRequest.transport  s    >>!~~'''rP   c                    < V ^8  d   QhRS[ /# r   r   )rK   rL   s   "rM   rN   rx     s     $ $, $rP   c                    V P                   # r]   )r}   r   s   &rM   writerBaseRequest.writer  s    ###rP   c                    < V ^8  d   QhRS[ /# r   rw   )rK   rL   s   "rM   rN   rx     s     % % %rP   c                    V P                   # r]   )r   r   s   &rM   rg   BaseRequest.client_max_size  s    $$$rP   c                    < V ^8  d   QhRS[ /# r   r'   )rK   rL   s   "rM   rN   rx   !  s      * rP   c                T    \         P                  ! R \        ^R7       V P                  # )zRequest.message is deprecated
stacklevel)warningswarnDeprecationWarningr{   r   s   &rM   rm   BaseRequest.message   s    57IVWX}}rP   c                    < V ^8  d   QhRS[ /# r   r   )rK   rL   s   "rM   rN   rx   &  s       rP   c                    V P                   # r]   )r   r   s   &rM   r   BaseRequest.rel_url%  s    }}rP   c                4   < V ^8  d   QhRS[ P                  /# r   )ru   rv   )rK   rL   s   "rM   rN   rx   *  s      g// rP   c                T    \         P                  ! R \        ^R7       V P                  # )z#request.loop property is deprecatedr   )r   r   r   r   r   s   &rM   rs   BaseRequest.loop)  s#    13ERS	
 zzrP   c                &   < V ^8  d   QhRS[ RS[/# )rB   keyrt   rH   r   )rK   rL   s   "rM   rN   rx   2  s        s  s  rP   c                (    V P                   V,          # r]   r   r   r   s   &&rM   __getitem__BaseRequest.__getitem__2  s    {{3rP   c                *   < V ^8  d   QhRS[ RS[RR/# )rB   r   valuert   Nr   )rK   rL   s   "rM   rN   rx   5  s"     ! !s !3 !4 !rP   c                "    W P                   V&   R # r]   r   )r   r   r   s   &&&rM   __setitem__BaseRequest.__setitem__5  s     CrP   c                $   < V ^8  d   QhRS[ RR/# )rB   r   rt   NrH   )rK   rL   s   "rM   rN   rx   8  s      s t rP   c                     V P                   V R # r]   r   r   s   &&rM   __delitem__BaseRequest.__delitem__8  s    KKrP   c                    < V ^8  d   QhRS[ /# r   r   )rK   rL   s   "rM   rN   rx   ;  s          rP   c                ,    \        V P                  4      # r]   )lenr   r   s   &rM   __len__BaseRequest.__len__;  s    4;;rP   c                0   < V ^8  d   QhRS[ S[,          /# r   )r   rH   )rK   rL   s   "rM   rN   rx   >  s     ! !(3- !rP   c                ,    \        V P                  4      # r]   )iterr   r   s   &rM   __iter__BaseRequest.__iter__>  s    DKK  rP   c                    < V ^8  d   QhRS[ /# r   bool)rK   rL   s   "rM   rN   rx   D  s     & & &rP   c                     V P                   R8H  # )z5A bool indicating if the request is handled with SSL.https)ri   r   s   &rM   secureBaseRequest.secureC  s     {{g%%rP   c                J   < V ^8  d   QhRS[ S[S[S[3,          R3,          /# rB   rt   .)r   r	   rH   )rK   rL   s   "rM   rN   rx   I  s'     : :5c!2C!78 :rP   c                   . pV P                   P                  P                  \        P                  R4       EF  p\        V4      p^ pRp/ pVP                  \        P                  ! V4      4       ^ Tu;8:  d
   V8  g   KK  M KO  \        P                  W$4      pVe   V'       d   VP                  RV4      pKJ  VP                  4       w  rp
V	^ ,          R8X  d   \        P                  RV	^R	 4      p	V
'       d	   W,          p	WVP                  4       &   V\        VP!                  ^ 4      4      ,          pRpK  W$,          R8X  d6   Rp/ pVP                  \        P                  ! V4      4       V^,          pEK  W$,          R8X  d   RpV^,          pEK(  W$,          R9   d   V^,          pEKA  VP                  RV4      pEKV  	  \#        V4      # )
a(  A tuple containing all parsed Forwarded header(s).

Makes an effort to parse Forwarded headers as specified by RFC 7239:

- It adds one (immutable) dictionary per Forwarded 'field-value', ie
  per proxy. The element corresponds to the data in the Forwarded
  field-value added by the first proxy encountered by the client. Each
  subsequent item corresponds to those added by later proxies.
- It checks that every value has valid syntax in general as specified
  in section 4: either a 'token' or a 'quoted-string'.
- It un-escapes found escape sequences.
- It does NOT validate 'by' and 'for' contents as specified in section
  6.
- It does NOT validate 'host' contents (Host ABNF).
- It does NOT validate 'proto' contents for valid URI scheme names.

Returns a tuple containing one or more immutable dicts
F,"z\1T;z 	rQ   )r{   rG   getallr   	FORWARDEDr   appendtypesr   _FORWARDED_PAIR_REmatchfindgroups_QUOTED_PAIR_REPLACE_REsublowergroupr   )r   elemsfield_valuelengthposneed_separatorelemr   rC   r   ports   &          rM   	forwardedBaseRequest.forwardedH  s   ( ==0077KK%FC"N#%DLL//56s#V##*00B$%)..sC8,1LLN)T 8s?$;$?$?uQr{$SE!ME-2TZZ\*s5;;q>22)- %,%*NDLL!7!7!=>1HC %,%*N1HC %. 1HC &**34CK LL U|rP   c                    < V ^8  d   QhRS[ /# r   r   )rK   rL   s   "rM   rN   rx     s       rP   c                .    V P                   '       d   R# R# )zA string representing the scheme of the request.

Hostname is resolved in this order:

- overridden value by .clone(scheme=new_scheme) call.
- type of connection to peer: HTTPS if socket is SSL, HTTP otherwise.

'http' or 'https'.
r   http)r   r   s   &rM   ri   BaseRequest.scheme  s     %%%rP   c                    < V ^8  d   QhRS[ /# r   r   )rK   rL   s   "rM   rN   rx     s       rP   c                    V P                   # )ziRead only property for getting HTTP method.

The value is upper-cased str like 'GET', 'POST', 'PUT' etc.
)r   r   s   &rM   r   BaseRequest.method  s     ||rP   c                    < V ^8  d   QhRS[ /# r   r)   )rK   rL   s   "rM   rN   rx     s       rP   c                    V P                   # )zhRead only property for getting HTTP version of request.

Returns aiohttp.protocol.HttpVersion instance.
)r   r   s   &rM   r   BaseRequest.version  s     }}rP   c                    < V ^8  d   QhRS[ /# r   r   )rK   rL   s   "rM   rN   rx     s        c  rP   c                    V P                   P                  P                  \        P                  4      pVe   V# \
        P                  ! 4       # )a  Hostname of the request.

Hostname is resolved in this order:

- overridden value by .clone(host=new_host) call.
- HOST HTTP header
- socket.getfqdn() value

For example, 'example.com' or 'localhost:8080'.

For historical reasons, the port number may be included.
)r{   rG   getr   HOSTsocketgetfqdn)r   rj   s   & rM   rj   BaseRequest.host  s:     }}$$((3K~~rP   c                0   < V ^8  d   QhRS[ S[,          /# r   )r   rH   )rK   rL   s   "rM   rN   rx     s     - - -rP   c                    V P                   f   R# \        V P                   \        \        34      '       d   \	        V P                   ^ ,          4      # \	        V P                   4      # )zRemote IP of client initiated HTTP request.

The IP is resolved in this order:

- overridden value by .clone(remote=new_remote) call.
- peername of opened socket
N)r   
isinstancelistr   rH   r   s   &rM   rk   BaseRequest.remote  sQ     ##+d..u>>t//2334++,,rP   c                    < V ^8  d   QhRS[ /# r   r   )rK   rL   s   "rM   rN   rx     s     V VS VrP   c                    \         P                  ! V P                  V P                  R7      P	                  V P
                  4      # )zThe full URL of the request.)ri   	authority)r   buildri   rj   joinr   r   s   &rM   rz   BaseRequest.url  s,    
 yytyyAFFt}}UUrP   c                    < V ^8  d   QhRS[ /# r   r   )rK   rL   s   "rM   rN   rx     s     " "c "rP   c                .    V P                   P                  # )zOThe URL including *PATH INFO* without the host or scheme.

E.g., ``/app/blog``
)r   r   r   s   &rM   r   BaseRequest.path  s     }}!!!rP   c                    < V ^8  d   QhRS[ /# r   r   )rK   rL   s   "rM   rN   rx     s     " " "rP   c                ,    \        V P                  4      # )zHThe URL including PATH_INFO and the query string.

E.g, /app/blog?id=10
)rH   r   r   s   &rM   path_qsBaseRequest.path_qs  s     4==!!rP   c                    < V ^8  d   QhRS[ /# r   r   )rK   rL   s   "rM   rN   rx     s     " "# "rP   c                .    V P                   P                  # )zThe URL including raw *PATH INFO* without the host or scheme.

Warning, the path is unquoted and may contains non valid URL characters

E.g., ``/my%2Fpath%7Cwith%21some%25strange%24characters``
)r{   r   r   s   &rM   raw_pathBaseRequest.raw_path  s     }}!!!rP   c                   < V ^8  d   QhRR/# )rB   rt   zMultiMapping[str]rQ   )rK   rL   s   "rM   rN   rx     s     # #* #rP   c                .    V P                   P                  # )z7A multidict with all the variables in the query string.)r   queryr   s   &rM   r8  BaseRequest.query  s     }}"""rP   c                    < V ^8  d   QhRS[ /# r   r   )rK   rL   s   "rM   rN   rx     s     * *c *rP   c                .    V P                   P                  # )z*The query string in the URL.

E.g., id=10
)r   query_stringr   s   &rM   r<  BaseRequest.query_string  s     }})))rP   c                0   < V ^8  d   QhRS[ S[,          /# r   )r   rH   )rK   rL   s   "rM   rN   rx     s      )#. rP   c                    V P                   # )z4A case-insensitive multidict proxy with all headers.)r   r   s   &rM   rG   BaseRequest.headers       }}rP   c                    < V ^8  d   QhRS[ /# r   )r2   )rK   rL   s   "rM   rN   rx     s     ) )Z )rP   c                .    V P                   P                  # )z$A sequence of pairs for all headers.)r{   r   r   s   &rM   r   BaseRequest.raw_headers  s     }}(((rP   c                D   < V ^8  d   QhRS[ S[P                  ,          /# r   r   datetime)rK   rL   s   "rM   rN   rx      s"     I I8H,=,=#> IrP   c                f    \        V P                  P                  \        P                  4      4      # )ziThe value of If-Modified-Since HTTP header, or None.

This header is represented as a `datetime` object.
)r#   rG   r  r   IF_MODIFIED_SINCEr   s   &rM   if_modified_sinceBaseRequest.if_modified_since  s$     t||//0F0FGHHrP   c                D   < V ^8  d   QhRS[ S[P                  ,          /# r   rF  )rK   rL   s   "rM   rN   rx     s"     K KXh.?.?%@ KrP   c                f    \        V P                  P                  \        P                  4      4      # )zkThe value of If-Unmodified-Since HTTP header, or None.

This header is represented as a `datetime` object.
)r#   rG   r  r   IF_UNMODIFIED_SINCEr   s   &rM   if_unmodified_sinceBaseRequest.if_unmodified_since  s$     t||//0H0HIJJrP   c                6   < V ^8  d   QhRS[ RS[S[,          /# )rB   etag_headerrt   )rH   r   r!   )rK   rL   s   "rM   rN   rx     s      # (4. rP   c              #     "   V \         8X  d   \        R\         R7      x  R# \        P                  ! V 4       F<  pVP	                  ^^^4      w  r#pV'       d    R# \        \        V4      VR7      x  K>  	  R# 5i)z'Extract `ETag` objects from raw header.F)is_weakr   N)r   r!   r   finditerr  r   )rR  r   rT  r   garbages   &    rM   _etag_valuesBaseRequest._etag_values  sp      (" 
 -55kB*/++aA*>'  M  Cs   A9A;c                Z   < V ^8  d   QhRS[ S[,          RS[ S[S[R3,          ,          /# )rB   header_valuert   .)r   rH   r   r!   )rK   rL   s   "rM   rN   rx   %  s/     5 5#C=5	%c	"	#5rP   c                J    V'       g   R # \        V P                  V4      4      # r]   )r   rW  )clsrZ  s   &&rM   _if_match_or_none_impl"BaseRequest._if_match_or_none_impl$  s      S%%l344rP   c                D   < V ^8  d   QhRS[ S[S[R3,          ,          /# r   r   r   r!   )rK   rL   s   "rM   rN   rx   .  s%     L L(5s#34 LrP   c                r    V P                  V P                  P                  \        P                  4      4      # )zhThe value of If-Match HTTP header, or None.

This header is represented as a `tuple` of `ETag` objects.
)r]  rG   r  r   IF_MATCHr   s   &rM   if_matchBaseRequest.if_match-  s(     **4<<+;+;DMM+JKKrP   c                D   < V ^8  d   QhRS[ S[S[R3,          ,          /# r   r`  )rK   rL   s   "rM   rN   rx   6  s%     Q QxdCi(89 QrP   c                r    V P                  V P                  P                  \        P                  4      4      # )zmThe value of If-None-Match HTTP header, or None.

This header is represented as a `tuple` of `ETag` objects.
)r]  rG   r  r   IF_NONE_MATCHr   s   &rM   if_none_matchBaseRequest.if_none_match5  s*     **4<<+;+;D<N<N+OPPrP   c                D   < V ^8  d   QhRS[ S[P                  ,          /# r   rF  )rK   rL   s   "rM   rN   rx   >  s"     @ @(8#4#45 @rP   c                f    \        V P                  P                  \        P                  4      4      # )z`The value of If-Range HTTP header, or None.

This header is represented as a `datetime` object.
)r#   rG   r  r   IF_RANGEr   s   &rM   if_rangeBaseRequest.if_range=  s"     t||//>??rP   c                    < V ^8  d   QhRS[ /# r   r   )rK   rL   s   "rM   rN   rx   F  s     . .D .rP   c                8    V P                   P                  '       * # )zIs keepalive enabled by client?)r{   should_closer   s   &rM   
keep_aliveBaseRequest.keep_aliveE  s     ==----rP   c                6   < V ^8  d   QhRS[ S[S[3,          /# r   )r	   rH   )rK   rL   s   "rM   rN   rx   K  s      	Q 	Qc* 	QrP   c                    \        V P                  P                  \        P                  R4      4      p\        V UUu/ uF  w  r#W#P                  bK  	  upp4      # u uppi )z=Return request cookies.

A read-only dictionary-like object.
r[   )r   rG   r  r   COOKIEr   r   )r   parsedrC   morsels   &   rM   cookiesBaseRequest.cookiesJ  sI     %T\\%5%5dkk2%FG O||!3 OPP Os   A
c                    < V ^8  d   QhRS[ /# r   )slice)rK   rL   s   "rM   rN   rx   W  s     !$ !$E !$rP   c                   V P                   P                  \        P                  4      pRRr2Ve    Rp\        P
                  ! WA\        P                  4      ^ ,          w  r#T'       d   \        T4      MRpT'       d   \        T4      MRpTf
   Te   T) pRpTe   Te   T^,          pY#8  d   \        R4      hY#u;J d   f   M M\        R4      h\        W#^4      #   \         d    \        R4      hi ; i)z=The content of Range HTTP header.

Return a slice instance.

Nz^bytes=(\d*)-(\d*)$zrange not in acceptable formatzstart cannot be after endz"No start or end of range specified)r   r  r   RANGErefindallASCII
IndexError
ValueErrorrw   r|  )r   rngstartendpatterns   &    rM   
http_rangeBaseRequest.http_rangeV  s     mm

+4s?C0ZZbhh?B
 "#c(tC"'CJTE} S_q<$%@AA## !EFFU##+  C !ABBCs   0C C6c                    < V ^8  d   QhRS[ /# r   )r.   )rK   rL   s   "rM   rN   rx   {  s       rP   c                    V P                   # )zReturn raw payload stream.)r~   r   s   &rM   contentBaseRequest.contentz  rA  rP   c                    < V ^8  d   QhRS[ /# r   r   )rK   rL   s   "rM   rN   rx     s     * *$ *rP   c                z    \         P                  ! R\        ^R7       V P                  P	                  4       '       * # )@Return True if request's HTTP BODY can be read, False otherwise.z$Deprecated, use .can_read_body #2005r   )r   r   r   r~   at_eofr   s   &rM   has_bodyBaseRequest.has_body  s1     	24FST	
 =='')))rP   c                    < V ^8  d   QhRS[ /# r   r   )rK   rL   s   "rM   rN   rx     s     * *t *rP   c                @    V P                   P                  4       '       * # )r  )r~   r  r   s   &rM   can_read_bodyBaseRequest.can_read_body  s     =='')))rP   c                    < V ^8  d   QhRS[ /# r   r   )rK   rL   s   "rM   rN   rx     s     < <T <rP   c                8    \        V P                  4      \        J# )z6Return True if request has HTTP BODY, False otherwise.)typer~   r-   r   s   &rM   body_existsBaseRequest.body_exists  s     DMM"*;;;rP   c                   < V ^8  d   QhRR/# rB   rt   NrQ   )rK   rL   s   "rM   rN   rx     s     * *t *rP   c                   "   V P                   P                  4       '       g%   V P                   P                  4       G Rj  xL
  KD  R#  L5i)z;Release request.

Eat unread part of HTTP BODY if present.
N)r~   r  readanyr   s   &rM   releaseBaseRequest.release  s8     
 --&&((--''))) ))s    AA A		Ac                    < V ^8  d   QhRS[ /# r   )bytes)rK   rL   s   "rM   rN   rx     s        E  rP   c                |  "   V P                   f   \        4       p V P                  P                  4       G Rj  xL
 pVP	                  V4       V P
                  '       d3   \        V4      pW0P
                  8  d   \        V P
                  VR7      hV'       d   K   \        T4      T n         V P                   #  L5i)zORead request body if present.

Returns bytes object with full request content.
Nmax_sizeactual_size)	r   	bytearrayr~   r  extendr   r   r4   r  )r   bodychunk	body_sizes   &   rM   readBaseRequest.read  s     
 #;D"mm3355E"((( #D	I $9$997%)%:%:	  u$T{D 6s   7B<B:&B<!7B<B<c                    < V ^8  d   QhRS[ /# r   r   )rK   rL   s   "rM   rN   rx     s     + +C +rP   c                   "   V P                  4       G Rj  xL
 pV P                  ;'       g    RpVP                  V4      #  L+5i)z1Return BODY as text using encoding from .charset.Nr   )r  charsetdecode)r   
bytes_bodyencodings   &  rM   textBaseRequest.text  s:     99;&
<<**7  ** 's   AAAAloadsc                &   < V ^8  d   QhRS[ RS[/# )rB   r  rt   )r0   r   )rK   rL   s   "rM   rN   rx     s      ; # rP   c               N   "   V P                  4       G Rj  xL
 pV! V4      #  L5i)zReturn BODY as JSON.N)r  )r   r  r  s   &$ rM   jsonBaseRequest.json  s"     YY[ T{ !s   %#%c                    < V ^8  d   QhRS[ /# r   )r,   )rK   rL   s   "rM   rN   rx     s     = = =rP   c                J   "   \        V P                  V P                  4      # 5i)z3Return async iterator to process BODY as multipart.)r,   r   r~   r   s   &rM   	multipartBaseRequest.multipart  s     t}}dmm<<s   !#c                   < V ^8  d   QhRR/# )rB   rt   z,MultiDictProxy[Union[str, bytes, FileField]]rQ   )rK   rL   s   "rM   rN   rx     s     ^ ^J ^rP   c                	  "   V P                   e   V P                   # V P                  V P                  9  d%   \        \	        4       4      V n         V P                   # V P
                  pVR9  d%   \        \	        4       4      V n         V P                   # \	        4       pVR8X  Ed/   V P                  4       G Rj  xL
 pV P                  p^ pVP                  4       G Rj  xL
 ;pEe   VP                  P                  \        P                  4      p\        V\        4      '       Ed   VP                  f   \!        R4      hVP"                  '       Ed   V P$                  P'                  R\(        P*                  4      G Rj  xL
 pVP-                  RR7      G Rj  xL
 p	V	'       d   VP/                  V	4      G Rj  xL
 p	V P$                  P'                  RVP0                  V	4      G Rj  xL
  V\3        V	4      ,          p^ Tu;8  d   V8  d>   M M:V P$                  P'                  RVP4                  4      G Rj  xL
  \7        WER7      hVP-                  RR7      G Rj  xL
 p	K  V P$                  P'                  RVP8                  ^ 4      G Rj  xL
  Vf   Rp\;        VP                  VP"                  \=        \>        P@                  V4      VVP                  4      p
VPC                  VP                  V
4       EK8  VPE                  RR7      G Rj  xL
 pVe   VPG                  R	4      '       d?   VPI                  R
R7      pVPC                  VP                  VP/                  V4      4       MVPC                  VP                  V4       V\3        V4      ,          p^ Tu;8  d   V8  d   M EK  \7        WER7      hEK  \!        R4      hMpV PE                  4       G Rj  xL
 pV'       dQ   V PJ                  ;'       g    R
pVPM                  \O        VPQ                  4       P/                  V4      RVR7      4       \        V4      V n         V P                   #  EL EL EL EL EL EL EL4 EL EL ELb L5i)zReturn POST parameters.Nmultipart/form-datazMultipart field missing name.)sizer  zapplication/octet-streamT)r  ztext/r   )defaultz8To decode nested multipart you need to use custom reader)keep_blank_valuesr  )r[   z!application/x-www-form-urlencodedr  i   ))_postr   POST_METHODSr   r   rF   r  r   nextrG   r  r   CONTENT_TYPEr"  r+   rC   r  rD   r   run_in_executortempfileTemporaryFile
read_chunkr  writer   closer4   seekr8   r   rI   rJ   addr  
startswithget_charsetr  r  r   rstrip)r   rF   outr  r  r  fieldfield_cttmpr  ffr   r  datas   &             rM   postBaseRequest.post  s    ::!::<<t000'	4DJ::((  
 

 (	4DJ::7@{00"nn..I,,HD"+.."2225? ==,,T->->?e^44zz)()HII ~~~$(JJ$>$> ("8"8%  ',&6&6E&6&B B#*/,,u*=$=E"&**"<"<T399e"TTT CJ.D 82d2&*jj&@&@syy&Q Q Q&?-5'" !" +0*:*:*:*F$FE"jj88sxxKKK#+'AH&!JJ!NN !2!2C8$!MM 

B/ ',jjj&= =#+x/B/B7/K/K&+&7&7&7&HGGGEJJW0EFGGEJJ6E
*x.$..";)1#  /
 %R m @t $D,,11'

,,W5*.!( $C(
zzU / 3 !C$=T !R %GK !>  %s   B6Q?8Q9%Q?Q"A4Q?-Q?Q%Q?Q(Q?(Q?<Q+=.Q?+Q.,AQ?=Q1>%Q?#Q4$0Q?Q7BQ?Q:Q?8B.Q?&Q='Q?3Q?AQ?"Q?%Q?(Q?+Q?.Q?1Q?4Q?7Q?:Q?=Q?c                ,   < V ^8  d   QhRS[ RS[RS[/# )rB   rC   r  rt   r   )rK   rL   s   "rM   rN   rx     s"     
7 
73 
7 
7 
7rP   c                l    V P                   pVf   V# VP                  pVf   V# VP                  W4      # )z"Extra info from protocol transport)r|   r   get_extra_info)r   rC   r  ro   r   s   &&&  rM   r  BaseRequest.get_extra_info  s=    >>N&&	N''66rP   c                    < V ^8  d   QhRS[ /# r   r   )rK   rL   s   "rM   rN   rx   )  s     
 
# 
rP   c                    V P                   P                  R R4      P                  R 4      pRP                  V P                  P
                  V P                  V4      # )asciibackslashreplacez<{} {} {} >)r   r   r  rK   r   rR   r   )r   ascii_encodable_paths   & rM   __repr__BaseRequest.__repr__)  sS    #yy//9KLSS 
 ##NN##T\\3G
 	
rP   c                &   < V ^8  d   QhRS[ RS[/# )rB   otherrt   )objectr   )rK   rL   s   "rM   rN   rx   1  s     % %F %t %rP   c                0    \        V 4      \        V4      8H  # r]   )id)r   r  s   &&rM   __eq__BaseRequest.__eq__1  s    $x2e9$$rP   c                    < V ^8  d   QhRS[ /# r   r   )rK   rL   s   "rM   rN   rx   4  s      $ rP   c                    R # )TrQ   r   s   &rM   __bool__BaseRequest.__bool__4  s    rP   c                $   < V ^8  d   QhRS[ RR/# rB   responsert   Nr5   )rK   rL   s   "rM   rN   rx   7  s      N t rP   c                   "   R # 5ir]   rQ   )r   r  s   &&rM   _prepare_hookBaseRequest._prepare_hook7  s     s   c                $   < V ^8  d   QhRS[ RR/# )rB   excrt   N)BaseException)rK   rL   s   "rM   rN   rx   :  s     * *= *T *rP   c                2    \        V P                  V4       R # r]   )r&   r~   )r   r  s   &&rM   _cancelBaseRequest._cancel:  s    dmmS)rP   c                   < V ^8  d   QhRR/# r  rQ   )rK   rL   s   "rM   rN   rx   =  s     
/ 
/ 
/rP   c                    V P                   e   V P                  R8w  d   R # V P                   P                  4        F7  w  r\        V\        4      '       g   K  VP
                  P                  4        K9  	  R # )Nr  )r  rF   r   r"  r8   rE   r  )r   	file_namefile_field_objects   &  rM   _finishBaseRequest._finish=  sY    ::!2!26K!K -1JJ,<,<,>(I+Y77!&&,,. -?rP   c                |   < V ^8  d   Qh/ S[ S[S[S[S[S[3,          ,          ,          ;R&   S[ S[,          ;R&   # )rB   r  r   )r   r   r   rH   r  r8   )rK   rL   s   "rM   rN   rx   v   s;     > N5eY)>#?@AH? @ %'A rP   )r   r   r   r   r{   r   r~   r}   r  r|   r   r   r   r   r   r   r   )r{   r|   r}   r~   r   r   r   r   r  r   r   r   r   r   r   r   r   i   r]   )RrR   rS   rT   rU   r   
METH_PATCH	METH_POSTMETH_PUT
METH_TRACEMETH_DELETEr  r"   ATTRS	frozensetr  r   r   r%   r   propertyrq   ro   r   r   rg   r$   rm   r   rs   r   r   r   r   r   r   r  ri   r   r   rj   rk   rz   r   r0  r4  r8  r<  rG   r   rJ  rO  staticmethodrW  classmethodr]  rc  rh  rm  rr  ry  r  r  r  r  r  r  r  r  r/   r  r  r  r  r  r  r  r  r  r  rV   rW   rX   rY   s   @rM   r7   r7   v   s     	L 	
" E* EIE#'K5+  '5+ +/5+ !%5+ #5+ !%5+ 5+n9
 )19
 /7	9

 3;9
 )19
 '/9
 )19
 2:9
 9
v     ( (
 $ $ % %         ! !    ! !
 & & : :x          $ - - V V " " " " " " # # * *   ) ) I I K K  ( 5 5 L L Q Q @ @ . . 	Q 	Q !$ !$F   * * * * < <* *   *+ +1E  
= =^ ^@
7 
7
 
% %  * *
/ 
/O  rP   c                   0  a a ] tR tRt o]P
                  ]! R.4      ,          tRt]'       d   V3R lV 3R llt	R]
R]
R]
R	]
R
]
R]
R]
/V3R lV 3R lllt]V3R lR l4       t]V3R lR l4       t]V3R lR l4       tV3R lR ltV3R ltRtVtV ;t# )r9   iJ  _match_infoNc                *   < V ^8  d   QhRS[ RS[RR/# )rB   rC   valrt   Nr   )rK   rL   s   "rM   rN   Request.__annotate__R  s"     	+ 	+C 	+c 	+d 	+rP   c                   < WP                   9  dB   \        P                  ! R P                  V P                  P
                  V4      \        ^R7       \        SV `!  W4       R# )z-Setting custom {}.{} attribute is discouragedr   N)	r  r   r   rK   r   rR   r   super__setattr__)r   rC   r  r   s   &&&rM   r  Request.__setattr__R  sI    ::%%%+VDNN,C,CT%J& 	 G*rP   r   r   rG   ri   rj   rk   rg   c                   < V ^8  d   QhRS[ S[S[3,          RS[ S[S[3,          RS[ S[S[3,          RS[ S[S[3,          RS[ S[S[3,          RS[ S[S[3,          RS[ S[S[3,          RR	/# )
rB   r   r   rG   ri   rj   rk   rg   rt   r9   r   )rK   rL   s   "rM   rN   r  \  s       c9n% x*+	
 |Y./ c9n% CN# c9n% sI~. 
rP   c          
     v   < \         S
V `  VVVVVVVR 7      p\        \        V4      p	V P                  V	n        V	# ))r   r   rG   ri   rj   rk   rg   )r  r   r   r9   r  )r   r   r   rG   ri   rj   rk   rg   retnew_retr   s   &$$$$$$$  rM   r   Request.clone\  sN     gm+  
 w$"..rP   c                   < V ^8  d   QhRR/# )rB   rt   r<   rQ   )rK   rL   s   "rM   rN   r  u  s      1 rP   c                *    V P                   pVf   Q hV# )zResult of route resolving.)r  r   
match_infos   & rM   r"  Request.match_infot  s!     %%
%%%rP   c                   < V ^8  d   QhRR/# )rB   rt   r:   rQ   )rK   rL   s   "rM   rN   r  |  s     & &] &rP   c                >    V P                   pVf   Q hVP                  # )zApplication instance.)r  current_appr!  s   & rM   appRequest.app{  s'     %%
%%%%%%rP   c                    < V ^8  d   QhRS[ /# r   )r    )rK   rL   s   "rM   rN   r    s     & &] &rP   c                    V P                   pVf   Q hVP                  pV P                  pVP                  V4      p\	        \        VR V^,            4      4      p\        V4      # r]   )r  appsr'  indexr#  reversedr    )r   r"  lstr'  idxsublists   &     rM   config_dictRequest.config_dict  s\    %%
%%%oohhiinxIcAg/0W%%rP   c                $   < V ^8  d   QhRS[ RR/# r  r5   )rK   rL   s   "rM   rN   r    s     ? ?N ?t ?rP   c                   "   V P                   pVf   R # VP                   F2  pVP                  ;p'       g   K  VP                  W4      G R j  xL
  K4  	  R #  L
5ir]   )r  _appson_response_preparesend)r   r  r"  r'  r6  s   &&   rM   r  Request._prepare_hook  sU     %%
##C&)&=&=="==)..t>>> $>s   3AAAAc                4   < V ^8  d   Qh/ S[ R,          ;R&   # )rB   r<   r  )r   )rK   rL   s   "rM   rN   r  J  s      /07	 rP   rQ   )rR   rS   rT   rU   r7   r  r  r  r   r  r%   r   r$   r"  r  r'  r1  r  rV   rW   rX   __classcell__)r   rL   s   @@rM   r9   r9   J  s     	=/ ::E37K	+ 	+ )1 /7	
 3; )1 '/ )1 2: 0   & & & &? ?E  rP   c                4   V ^8  d   Qh/ ^ \         9   d   \        \        ,          ;R&   ^\         9   d   \        \        ,          ;R&   ^\         9   d   \        \        ,          ;R&   ^\         9   d   \        \        ,          ;R&   ^\         9   d   \        \        ,          ;R&   ^\         9   d   \        \        ,          ;R&   ^\         9   d    \        \        \        ,          ,          ;R&   ^\         9   d    \        \        \        ,          ,          ;R&   # )	rB   _TCHAR_TOKEN_QDTEXT_QUOTED_PAIR_QUOTED_STRING_FORWARDED_PAIRr  r   )__conditional_annotations__r   rH   r   )rK   s   "rM   rN   rN      s    h O Nc
 Ni n % $c
 $o r s s ~ ) (eCj ( B c
 C J s K V K Jws|, JW \ F EE'#,' E] rP   )r7   r8   r9   )	       !   )erB  ru   rG  rI   r  r  stringr  r   r   r   typingr   r   r   r   r   r	   r
   r   r   r   r   r   urllib.parser   attr	multidictr   r   r   r   r   yarlr   r[   r   _cookie_helpersr   abcr   helpersr   r   r   r   r    r!   r"   r#   r$   r%   r&   http_parserr(   http_writerr*   r  r+   r,   streamsr-   r.   typedefsr/   r0   r1   r2   r3   web_exceptionsr4   web_responser6   __all__web_appr:   web_protocolr;   web_urldispatcherr<   sr8   digitsascii_lettersr<  r=  rK   r)  r   ranger>  r?  r@  rA  compiler  r   rH   r7   r9   rN   )rB  s   @rM   <module>r^     s     	 	      "    #     0 %    + $ 6 4  6 (
1 $,6 T$d3# # 4# ]]V%9%99<NN N &_ $nnHHK/%dD8I2JJKK  ) (=DD E  
 8>>N ?    02zz//J  J +-**_*E  EQ/.c*L Q/hH?k H?rP   