bgUddlZddlZddlZddlZddlmZddlmZddlm Z m Z m Z m Z m Z mZmZmZmZmZmZmZmZmZddlmZmZmZddlmZddlmZdd lm Z dd l!m"Z"m#Z#m$Z$dd l%m&Z&m'Z'm(Z(m)Z)m*Z*dd l+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3dd l4m5Z5m6Z6ddl7m8Z8ddl9m:Z:m;Z;ddledZ?e@ejAZBe eeCeDd<ejEdZFe eCeDd<ejGdeFdZHe eeCeDd<ejGdejIZJe eeCeDd<ejGdejIZKe eeCeDd<ejGdZLe eeMeDd<Gdd eZNGd!d"eZOed#eNeOZPGd$d%eZQGd&d'eZRGd(d)ZSGd*d+ejTe ePZUGd,d-eUeNZVGd.d/eUeOZWGd0d1ZXGd2d3ZYeVZZeWZ[eNZ\eOZ] e'sdd4l^mVZVmWZWmNZNmOZOeVZ_eWZ`eNZaeOZbdSdS#ec$rYdSwxYw)5N)suppress)IntEnum)AnyClassVarFinalGenericListLiteral NamedTupleOptionalPatternSetTupleTypeTypeVarUnion) CIMultiDictCIMultiDictProxyistr)URL)hdrs) BaseProtocol) HAS_BROTLIBrotliDecompressorZLibDecompressor)DEBUG NO_EXTENSIONSBaseTimerContextmethod_must_be_empty_bodystatus_code_must_be_empty_body)BadHttpMessage BadStatusLineContentEncodingErrorContentLengthError InvalidHeaderInvalidURLError LineTooLongTransferEncodingError) HttpVersion HttpVersion10)internal_logger) EMPTY_PAYLOAD StreamReader) RawHeaders) HeadersParser HttpParserHttpRequestParserHttpResponseParserRawRequestMessageRawResponseMessage)  ASCIISETz!#$%&'*+-.^_`|~_TCHAR_SPECIALSz [0-9A-Za-zz]+TOKENREzHTTP/(\d)\.(\d)VERSREz\d+DIGITSs [0-9a-fA-F]+ HEXDIGITSceZdZUeed<eed<eed<ded<eed<eed<eeed<eed <eed <e ed <d S) r4methodpathversionCIMultiDictProxy[str]headers raw_headers should_close compressionupgradechunkedurlN) __name__ __module__ __qualname__str__annotations__r*r/boolr rJ/opt/cloudlinux/venv/lib64/python3.11/site-packages/aiohttp/http_parser.pyr4r4Os} KKK III  $$$$# MMM MMM HHHHHrQr4ceZdZUeed<eed<eed<eeed<eed<e ed<e eed<e ed<e ed <d S) r5rAcodereasonrCrDrErFrGrHN) rJrKrLr*rNintrMrr/rOr rPrQrRr5r5\sy  III KKK c """"# MMM MMMMMrQr5_MsgTceZdZdZdZdZdZdS) ParseStaterrN)rJrKrL PARSE_NONE PARSE_LENGTH PARSE_CHUNKEDPARSE_UNTIL_EOFrPrQrRrYrYks"JLMOOOrQrYc"eZdZdZdZdZdZdZdS) ChunkStaterrrZr[N)rJrKrLPARSE_CHUNKED_SIZEPARSE_CHUNKED_CHUNKPARSE_CHUNKED_CHUNK_EOFPARSE_MAYBE_TRAILERSPARSE_TRAILERSrPrQrRrarass+NNNrQrac ZeZdZ d dedededdfdZd eeded effd Z dS) r0 max_line_size max_headersmax_field_sizereturnNc0||_||_||_dSN)rkrlrm)selfrkrlrms rR__init__zHeadersParser.__init__|s" +&,rQlinesrBc t}g}d}|d}t|}|r |dd\}}n#t$rt |dwxYwt|dkrt ||d|dhddhzrt ||d}t||jkrdtd| d d t|jtt|| d d } t | st |t|} |dz }||}|o |dd v} | r|g} | r| t|z } | |jkrWtd| d d t|jt| | ||dz }||kr||}|r |dd v} nd}n| d| }nb| |jkrWtd| d d t|jt| |d}| d d } d| vsd| vsd| vrt ||| | | ||f|t#|t%|fS)Nr:r s zrequest header name {}utf8backslashreplaceutf-8surrogateescape)rwrxzrequest header field {}rQ  )rlensplit ValueErrorr&lstriprmr(formatdecoderMr: fullmatchappendjoinstripaddrtuple)rqrsrCrD lines_idxline line_countbnamebvaluename header_length continuation bvalue_lstvalues rR parse_headerszHeadersParser.parse_headerss%0MM  QxZZ O 0 4 $ 4 3 3 vv 4 4 4#D))t3 45zzQ#E***a%)$Aw. *#D)))]]6**F5zzD///!,33 V-?@@+,,E OO <<):;;D$$T** +#E***KKM NI#D 6DGw$6L $X "!SYY.M$t':::)5<< % V5G H H  344 .. %%d+++NI :--$Y/>+/7g+=L")#**-- 4#666%188!LL1CDDD/00M** \\&))FMM'+<==Eu}} 5#F+++ KKe $ $ $   v / / /_O 0b!))5+=+=>>s AA#)rirjri) rJrKrLrVrrr bytesrr/rrPrQrRr0r0{s" " ---- -  ----\?%[\? & 2 3\?\?\?\?\?\?rQr0ceZdZUdZeeed< d(deed ee j d e d e d e d e dee dee dee dedeeededededdfdZejdeedefdZdeefdZddejejejfdededed ed!e d"edeeeeefeeffd#Z deeded$e!eeee eeffd%Z"d&eddfd'Z#dS))r1FlaxNrirjTprotocollooplimitrkrlrmtimerrTr?readallpayload_exceptionresponse_with_bodyread_until_eofauto_decompressrnc<||_||_||_||_||_||_||_| |_| |_| |_ | |_ | |_ g|_ d|_ d|_d|_d|_||_||_t'||||_dS)NrQF)rrrkrlrmrrTr?rrrr_lines_tail _upgraded_payload_payload_parser_auto_decompress_limitr0_headers_parser)rqrrrrkrlrmrrTr?rrrrrs rRrrzHttpParser.__init__s"!  *&,    !2"4,#%   <@ / ,]KXXrQrscdSrprP)rqrss rR parse_messagezHttpParser.parse_messages rQc|j!|jd|_n|jr|j|j|jrq|jddkr|jdt t 5||jcdddS#1swxYwYdS)Nrvz rQ)rfeed_eofrrrr Exceptionrrqs rRrzHttpParser.feed_eofs   +  ) ) + + +#'D z / ""4:...{ ;;r?f,,K&&s+++i((;;--dk::;;;;;;;;;;;;;;;;tsB<<CCr6rQdataSEPEMPTYCONTENT_LENGTH METH_CONNECTSEC_WEBSOCKET_KEY1c F g}|jr|j|zdc}|_t|}d} |j} | |krG|j?|js7||| } | | kr|js| t|z} M| | kr|| | } |dkr| d} |j| | t|z} |jd|kr | |j|j n#|j wxYwdttffd } | }|j vrt|j|_t!d|j}t!d d}|jJt'|pt)|ot+|}|s||dksjrtjsmt/|j|j| |j }t5||j|j|j|j|j|j|j }|j!s||_n||krotEtFsJt/|j|j| |j }d |_t5|jjd |j|j |_nz|sq|o|j$rht/|j|j| |j }t5||j|j|jd |j|j|j }|j!s||_ntJ}||fn || d|_|}n|j|jr |jrJn|r| |kr|jrJ|jJ |j&|| d|\}}n#tN$rt}|j(@|jj)*|(tW|n|jj)*|d }d}Yd}~nd}~wwxYw|rd} t|}d|_Enn| |kG|r| |kr || d}n|}||j|fS)NrQrr7 rvrncj}|dSt|st t |Srp)rCgetr<rr&rV) length_hdrrmsgs rRget_content_lengthz0HttpParser.feed_data..get_content_lengthPsT),)H)HJ)1'+t $*#3#3J#?#?D&3N&C&C C#&z??2rQr?rT)rrr) lengthrHr?rFrTrrrrT)r?rFrrr),rrrrrfindrrstriprrclearr rVrCr&rGgetattrr?rr!rOr rHr.rrHttpPayloadParserrFrTrrrrdone isinstancer4rr- feed_data BaseExceptionrpayload set_exceptionrM)rqrrrrrrmessagesdata_len start_posrposrrrr?rT empty_bodyrpayload_parsereofexcrs ` @rRrzHttpParser.feed_data#s : 6#zD0# D$*t99 y(""#+DN+iiY//)##DK# #c#hhI)## # .De||#{{511K&&t,,, #c#hhI{2%//0)-););DK)H)HC K--////DK--//// 3HSM 3 3 3 3 3 3 3"4!3!5!5-<<"/0B"C"CC),!(h !D!D&sFA66#}888%CD%I%I&T"H'@'H'HNN  *@4#/FQJJ"{5?$'K5?'3 $ &*j%)&*k '''G .? ''-(+ '-,/O%)Y(, 373J040E$(H . . .N$2#6F7E 4#|33#-c3D#E#EEE#E&2 $ &*j%)&*k '''G .2DN3D ''*z,/O(,040E$(H 444D00",44CV&2 $ &*j%)&*k '''G .? ''-(+ '-,/O%)Y(,373J040E$(H . . .N$2#6F7E 4&3G g777!%ijj!1DJ D%-$.-;&& )h..;&&+777  $ 4 > >tIJJ?OQT U UIC$   -9,4BB 223s88<<,4BB3GGGCDDDDDD  !I"4yyH+/D(  y(""|  I(( #DDD--s%.D""D=7&O Q(A*QQrBc  |j|\ }d}d}d}d}tjtjtjtjtjtjtj tj tj tj f }t fd|Dd}|td|d tj} | rM| } | dkrd}n0| dkrd}n'| d kr! tjrd} tj} | r| } | d vr| } tj } | Gd | krd}ntd tj vrtd  |||||fS)zParses RFC 5322 headers from a stream. Line continuations are supported. Returns list of header name and value pairs. Header name is in upper case. NFc3jK|]-}t|ddk)|V.dS)rPrN)rgetall).0hrCs rR z+HttpParser.parse_headers..sCPPaW^^Ar5J5J1K1Ka1O1O1O1O1O1OPPrQz Duplicate 'z' header found.closeTz keep-aliverG)gzipdeflatebrrHz'Request has invalid `Transfer-Encoding`z6Transfer-Encoding can't be present with Content-Length)rrrrCONTENT_LOCATION CONTENT_RANGE CONTENT_TYPEETAGHOST MAX_FORWARDSSERVERTRANSFER_ENCODING USER_AGENTnextr"r CONNECTIONlowerUPGRADECONTENT_ENCODING)rqrsrD close_connencodingrGrH singletonsbad_hdrconnvencterCs @rRrzHttpParser.parse_headerss $3AA%HH     !     I I   K  " O  PPPP:PPPRVWW   !Gw!G!G!GHH H{{4?++   AG||! l""" iGKK $=$=kk$/00  ))++C///[[/ 0 0 >BHHJJ&&$%NOOO"g--$Lj(GWMMrQvalc||_dS)zZSet connection upgraded (to websocket) mode. :param bool val: new state. N)r)rqrs rR set_upgradedzHttpParser.set_upgradeds rQ)NNrrirjriNNNFNTFT)$rJrKrLrrrOrNr rasyncioAbstractEventLooprVrrMrrrrabcabstractmethodr rrWrrrrrr_SEPrrr.rr/rrrPrQrRr1r1sC$,048! ",0" $;?#'$ $%Y%Y<(%Yw01%Y %Y  %Y  %Y%Y()%Ysm%Y %Y%Y$D$78%Y!%Y%Y%Y !%Y%Y%Y%YN  4; 5    (5/&#2 -#'#:v.v.v.v. v.  v.  v.!v. tE%-./u< =v.v.v.v.pBN%[BN Xd^Xc]DRVV BNBNBNBNHrQr1c.eZdZdZdeedefdZdS)r2zRead request status line. Exception .http_exceptions.BadStatusLine could be raised in case of any errors in status line. Returns RawRequestMessage. rsrnc |ddd} |dd\}}}n#t$rt|dwxYwt ||jkr=t dt|jtt |t |st|t |}|t|tt| dt| d}|d krtj|d }n|d rK|d \} } } | d\} } } tj| | | d }np|dkr|dkrt|d }nRt|d }|jdkr6t'|dd||\}}}}}}||t,krd }nd}t/|||||||||| S)Nrr{r| rZmaxsplitStatus line is too longrCONNECTT) authorityencoded/#?)r@ query_stringfragmentr*OPTIONS)r)errorslatin1F)rrrr#rrkr(rMr:rr;r*rVgrouprbuild startswith partitionschemer'encoderr+r4)rqrsrr?r@rAmatch version_orI path_part_hash_separator url_fragment_question_mark_separatorqs_partrCrDrrFrGrHs rRrzHttpRequestParser.parse_message/sQxw(9:: 0$(JJsQJ$?$? !FD'' 0 0 0%%4 / 0 t99t) ) ))3t/A+B+BCD NN    (( ('' '  )) =%% %EKKNN 3 3SQ5H5HII Y  )dD999CC __S ! ! 8<~~c7J7J 4I ;D;N;Ns;S;S 8I/ )$% CC S[[Vy00dD)))CCdD)))CzR%KK'8K99@@JJ   u % %       =M))             s :AN)rJrKrL__doc__r rr4rrPrQrRr2r2'sMS 4;S 3DS S S S S S rQr2ceZdZdZe Z d dedeede de de e e e e feeff fd Zd e ede fd ZxZS) r3zRead response status line and headers. BadStatusLine could be raised in case of any errors in status line. Returns RawResponseMessage. NrrargskwargsrncZ| trdnd}tj||g|Ri|S)Nr6r7)rsuperr)rqrrrr __class__s rRrzHttpResponseParser.feed_datasA ;"-''C uww s>&"7 %dsd 2 27rs rRr>z&DeflateBuffer.end_http_chunk_receivings ))+++++rQrE)rJrKrLrrrNr.r rMrrrrrrVrrr=r>rPrQrRr2r2sNNDLDHSMDdDDDD"$$4$$$$2u2C2D2222@....,,,,,,rQr2)r2r3r4r5)drrr<string contextlibrenumrtypingrrrrr r r r r rrrrr multidictrrryarlrr r base_protocolrcompression_utilsrrrhelpersrrrr r!http_exceptionsr"r#r$r%r&r'r(r) http_writerr*r+logr,streamsr-r.typedefsr/__all__rset printabler8rMrNescaper9compiler:ASCIIr;r<r=rr4r5rWrYrar0ABCr1r2r3rr2HttpRequestParserPyHttpResponseParserPyRawRequestMessagePyRawResponseMessagePy _http_parserHttpRequestParserCHttpResponseParserCRawRequestMessageCRawResponseMessageC ImportErrorrPrQrRrts  ":999999999''''''OOOOOOOOOO                    43333333 00000000  ~C 011%C/111(bi(9::s:::)rz*J*J*J*JKKws| KKK(bj);RXFFgclFFF(bj::gcl:::#-2:.>#?#? 5 ???                  *,>??g?g?g?g?g?g?g?g?T'%.D [ [ [ [ [ #45[ [ [ |I I I I I $67I I I XDDDDDDDDNG,G,G,G,G,G,G,G,T()')  1            /0.0 1 1   DD s3I II