bg~ddlZddlZddlZddlZddlZddlZddlZddlmZddl m Z ddl m Z m Z mZmZmZmZmZmZmZmZmZmZmZmZddlmZmZmZddlmZm Z m!Z!ddl"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/dd l0m1Z1dd l2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9dd l:m;Z;dZZ>Gdde?Z@Gdde?ZAdeeBdeeeBeeBeBfffdZC d(deeBeBfdeBdeeBfdZDGddZEGddZFe9eFe5jGGd d!e6ZHGd"d#ZIee6eBeBfZJGd$d%e6ZKGd&d'ZLdS))N)deque) TracebackType) TYPE_CHECKINGAny AsyncIteratorDequeDictIteratorListMappingOptionalSequenceTupleTypeUnioncast) parse_qslunquote urlencode) CIMultiDictCIMultiDictProxy MultiMapping)ZLibCompressorZLibDecompressor)CONTENT_DISPOSITIONCONTENT_ENCODINGCONTENT_LENGTHCONTENT_TRANSFER_ENCODING CONTENT_TYPE)CHARTOKENparse_mimetypereify) HeadersParser) JsonPayload LookupErrorOrderPayload StringPayload get_payload payload_type) StreamReader)MultipartReaderMultipartWriterBodyPartReaderBadContentDispositionHeaderBadContentDispositionParamparse_content_dispositioncontent_disposition_filename)ClientResponseceZdZdS)r1N__name__ __module__ __qualname__H/opt/cloudlinux/venv/lib64/python3.11/site-packages/aiohttp/multipart.pyr1r1BDr<r1ceZdZdS)r2Nr7r;r<r=r2r2Fr>r<r2headerreturncvdtdtfddtdtfd}dtdtffd }dtdtfd}dtdtfd}dttjt d d td tdtfd }|sdifS|d ^}}|s%tj t|difSi}|r| d} d| vr%tj t|difS| dd\} } | } | } | |vr%tj t|difS| s"tj t| || rP|| r|| dd} n| s#tj t| Cn_|| r|| r| dd\} } } | pd} n#tj t|  t!| | d} n#t"$r%tj t| YwxYwd}|| r)d}|| ddd} ne| rd}nW|rU| d |d}||r=| d||ddd} d}|r%tj t|difS| || <|| |fS)NstringrAcPt|ott|kSN)boolr"setrCs r=is_tokenz+parse_content_disposition..is_tokenMsF||4V 44r<c:|d|dcxkodkncS)Nr"r;rHs r= is_quotedz,parse_content_disposition..is_quotedPs,ayF2J----#-----r<cL|o|ddkS)N')count)rCrIs r= is_rfc5987z-parse_content_disposition..is_rfc5987Ss)x:FLL$5$5$::r<c,|dS)N*)endswithrHs r=is_extended_paramz4parse_content_disposition..is_extended_paramVss###r<c|ddz}|sdS|dr ||dn ||d}|S)NrTrFrK)findrUisdigit)rCpos substrings r=is_continuous_paramz6parse_content_disposition..is_continuous_paramYsakk#" 5&,ooc&:&:LF3r6NNstt   """r<)charstextr^c6tjd|dd|S)Nz\\([z])z\1)resub)r_r^s r=unescapez+parse_content_disposition..unescape`s"v(u(((%666r<;r=rrKrOrPutf-8strictTFz\/)strrFjoinmapraescaper!splitwarningswarnr1poplowerstriplstripr2rUnicodeDecodeError)r@rMrRrVr\rcdisptypepartsparamsitemkeyvalueencoding_failed_valuerIs @r=r3r3Js555555.#.$....;3;4;;;;;;$#$$$$$$#C#D####-/GGC 44H4H,I,I777s7c7c7777 Rx||C((Hu 8H   1&99:::RxF <yy|| d?? M5f== > > >8OZZQ'' Uiikk!!  &== M5f== > > >8Ox}}+ M4T:: ; ; ;   % %' y  qt--Xe__  8>>???  s # # z%   %*[[a%8%8"!U#.w 8>>??? x::%    8>>???  Fy # qt!3!3E!:!:;;% # #"..E!H..9V$$#IIaLLL$HVAbD\%8%8%?%?@@E"F  9&AABBBRxs y <| >>  V ##sJ))+KKfilenamervnamec2 d|z |sdS |vr| S||vr||Sg}t fd|D}t|D]i\}\}}|dd\}}|dr |dd}|t |kr||i|sdSd|}d|vr/|dd\} }}| pd } t|| d S|S) Nz%s*c3PK|] \}}|||fV!dSrE) startswith).0rxryname_sufs r= z/content_disposition_filename..sP  'S%S^^H=U=U %L      r<rTrrKr]rOrPrfrg) sorteditems enumeraterlrUrhappendrir) rvrrufnparamsnumrxryr{tailrzrs @r=r4r4sit|H t V  h d|    +1<<>>     "+8!4!4   C#uiiQ''GAt}}S!! !CRCys3xx U#### 4 %<|jjS)z2Returns True when all response data had been read.)rcontentat_eofrs r=rzMultipartResponseWrapper.at_eofsy '')))r<cK|jd{V}|jr|d{V|S)z#Emits next multipart reader object.N)rrrreleaserrws r=rzMultipartResponseWrapper.nextsh[%%'''''''' ;     !,,..  r<cHK|jd{VdS)z_Release the connection gracefully. All remaining content is read to the void. N)rrrs r=rz MultipartResponseWrapper.releases4 i!!!!!!!!!!!r<)rr5rr.rAN)rArrAN) r8r9r:__doc__rrrrrFrr rrr;r<r=rrs "   2 3***** %;< =""""""r<rceZdZdZdZdedddeddfd Zdedfd Z defd Z de efd Z d dde defdZefdedefdZdedefdZdedefdZdefdZd%dZddde edefdZddde ede eeeffdZddde edeeeeffdZde fdZdedefdZdedefdZdedefd Z d!edefd"Z!e"de efd#Z#e"de efd$Z$dS)&r0z&Multipart reader for single body part.i boundaryheadersCIMultiDictProxy[str]rrANc ||_||_||_d|_|jt d}|t |nd|_d|_t|_ d|_ d|_ i|_ dS)NFr)r _boundary_content_at_eofgetrint_length _read_bytesr_unread _prev_chunk _content_eof_cache)rrrrlengths r=rzBodyPartReader.__init__s{ !  !!.$77&,&8s6{{{d %*WW ,0&( r<c|SrEr;rs r=rzBodyPartReader.__aiter__rr<cPK|d{V}|t|SrErrs r=rzBodyPartReader.__anext__s5YY[[       <$ $ r<cFK|d{V}|sdS|SrE)readrs r=rzBodyPartReader.nexts7YY[[       4 r<FdecodercK|jrdSt}|js:|||jd{V|j:|r||S|S)zReads body part data. decode: Decodes data following by encoding method from Content-Encoding header. If it missed data remains untouched r<N)r bytearrayextend read_chunk chunk_sizer)rrdatas r=rzBodyPartReader.read s < 3{{, @ KKdoodo>>>>>>>> ? ? ?, @  %;;t$$ $ r<sizeclK|jrdS|jr||d{V}n||d{V}|xjt |z c_|j|jkrd|_|jr/|jd{V}d|ks Jd|S)zWReads body part content chunk of the specified size. size: chunk size r<NT z3reader did not read all the data or it is malformed)rr_read_chunk_from_length_read_chunk_from_streamrlenrreadline)rrchunkclrfs r=rzBodyPartReader.read_chunk0s < 3 < =66t<<<<<<<>?? m((44444444 r<c K|t|jdzks Jd|jdu}|r%|j|d{V|_|j|d{V}|xjt |jz c_|jdks Jd|jJ|j|z}d|jz}|r||}nF||tdt|jt|z }|dkrtj 5tj dt|j||ddddn #1swxYwY||kr|jd||_|t|j|}|sd |_|j}||_|S) NrPz%)]%7%7%=%=======D m((........ S!5!5!7!7888 1$$$&9$$$+++!E)&  M++c""CC++c3q#d.>*?*?#c((*J#K#KLLC !88(** 8 8';MNNNN ))&,777 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8czz#'#3DSD#9 3t/00367E $# !  s>FF#&F#c6K|jrdS|jr|j}n|jd{V}||jrV|d}|j}|jdz}||ks||kr#d|_|j|dSn]|jd{V}||jr |dd}|j||S)z Reads body part by line by line.r<Nr--T) rrpopleftrrrrrstripr)rlinesliner last_boundary next_lines r=rzBodyPartReader.readlineps8 < 3 < 2<''))DD//11111111D ??4> * * +KK((E~H NU2M  E]$:$:#  ##D)))s%; #m4466666666I##DN33 !CRCy L   * * * r<c|K|jrdS|js)||jd{V|j'dSdS)z0Like read(), but reads all the data to the void.N)rrrrs r=rzBodyPartReader.releasese <  F, 3//$/22 2 2 2 2 2 2 2, 3 3 3 3 3r<)rzrzcK|dd{V}|p|d}||S)z;Like read(), but assumes that body part contains text data.TrNrfdefault)r get_charsetrrrzrs r=r_zBodyPartReader.textsZYYdY++++++++@t///@@{{8$$$r<cK|dd{V}|sdS|p|d}tttt ft j||S)z>LL! X X XFVWW W X ""    s 'A''Bc|jS)zgzipdeflateT)rzsuppress_deflate_headerunknown content encoding: )rrrrprdecompress_sync RuntimeErrorrrrzs r=rzBodyPartReader._decode_contents<##$4b99??AA z ! !K * * *#!(,od## $ BBBCCCr<c|jtd}|dkrt j|S|dkrt j|S|dvr|Std |)Nr]base64quoted-printable)binary8bit7bit%unknown content transfer encoding: {}) rrrrpr b64decodebinasciia2b_qprformatrs r=rz'BodyPartReader._decode_content_transfers<##$=rBBHHJJ x  #D)) ) + + +?4(( ( 3 3 3K:AA(KK r<rc|jtd}t|}|jd|S)z>Returns charset parameter from Content-Type header or default.r]charset)rrr r# parameters)rrctypemimetypes r=rzBodyPartReader.get_charsets?   r22!%(("&&y':::r<ct|jt\}}t |dS)z|Returns name specified in Content-Disposition header. If the header is missing or malformed, returns None. rr3rrrr4rr{rvs r=rzBodyPartReader.names6 .dl.>.>?R.S.STT 6+FF;;;r<ct|jt\}}t |dS)zReturns filename specified in Content-Disposition header. Returns None if the header is missing or malformed. r~rrs r=r~zBodyPartReader.filenames6 .dl.>.>?R.S.STT 6+FJ???r<r)%r8r9r:rrbytesr-rrrrr rrFrrrrrrrrhr_r rrr rrrrrrrr$rr~r;r<r=r0r0sG00J ) )(? )JV )  ) ) ) )=)9: HUO ,1DU ,6S%,#% # %    D:33337;%%%hsm%s%%%%7;GGGhsmGxSRUX?WGGGG7;   hsm tE#s(O?T    ( 5 U     DE De D D D D U u    ;3;3;;;;   %!&F:   G (D ( F Fv F F F F F G Gr<writercK|j}|dd{V}|rN|||d{V|dd{V}|LdSdS)Ni)r)r}rwriter)rr$fieldrs r=r&zBodyPartReaderPayload.write s &&E&22222222 7,,u||E2233 3 3 3 3 3 3 3***66666666E 7 7 7 7 7r<)r8r9r:r0rrr& __classcell__r#s@r=rrs Gn GS GC GD G G G G G G7#7$77777777r<rcReZdZdZeZdZeZde e e fde ddfdZ de dfdZdeedeffd Zed d defd Zdefd ZdeedeffdZddZdedeffdZdddedeffdZde fdZdefdZddZddZddZddZ dS)r.zMultipart body reader.NrrrAc||_d|z|_||_d|_d|_d|_g|_dS)Nz--FT) r _get_boundaryencoderr _last_partr_at_bofr)rrrs r=rzMultipartReader.__init__sT !3!3!5!55==?? NR  $& r<r0c|SrEr;rs r=rzMultipartReader.__aiter__%s  r<cPK|d{V}|t|SrErrs r=rzMultipartReader.__anext__*rr<responser5cZ||||j|j}|S)zConstructs reader instance from HTTP response. :param response: :class:`~aiohttp.client.ClientResponse` instance )response_wrapper_clsrr)clsr2objs r= from_responsezMultipartReader.from_response2s7&& cc(*H,<==   r<c|jS)z@Returns True if the final boundary was reached, false otherwise.rrs r=rzMultipartReader.at_eof@rr<c0K|jrdS|d{V|jr"|d{Vd|_n|d{V|jrdS|d{V|_|jS)z#Emits the next multipart body part.NF)r_maybe_release_last_partr/_read_until_first_boundary_read_boundaryfetch_next_partr.rs r=rzMultipartReader.nextDs < 4++--------- < (1133 3 3 3 3 3 3 3 DLL%%'' ' ' ' ' ' ' ' < 4 $ 4 4 6 6666666r<cK|jsA|d{V}|dS|d{V|j?dSdS)z=Reads all the body parts to the void till the final boundary.N)rrrrs r=rzMultipartReader.releaseVsy, !$$$$$$D|,,.. , ! ! ! ! !r<cdK|d{V}||S)z"Returns the next body part reader.N) _read_headers_get_part_reader)rrs r=r=zMultipartReader.fetch_next_part^s?**,,,,,,,,$$W---r<rc.|td}t|}|jdkr@|jt|||jS|||jS||j||jS)zDispatches the response by the `Content-Type` header. Returns a suitable reader instance. :param dict headers: Response headers r] multipart)rr r#typemultipart_reader_clsrpart_reader_clsr)rrrrs r=rAz MultipartReader._get_part_readeres L"--!%(( =K ' '(0!tDzz'4=999,,WdmDD D''OO Or<c(t|jt}|jdks Jdd|jvr"t d|jtz|jd}t |dkrt d|z|S)NrCz!multipart/* content type expectedrz$boundary missed for Content-Type: %sFz&boundary %r is too long (70 chars max))r#rr rDrrr)rrrs r=r,zMultipartReader._get_boundaryys!$,|"<==} +++-P+++ X0 0 06l9SS &z2 x==2  EPQQ Qr<cK|jr|jS|jd{VSrE)rrorrrs r= _readlinezMultipartReader._readlinesJ < &<##%% %]++---------r<cK |d{V}|dkrtd|jz|}||jkrdS||jdzkr d|_dSp)NTr<z#Could not find starting boundary %rr)rJrrrrrrs r=r;z*MultipartReader._read_until_first_boundarys ..********E|| 9T^LLLNNE&&$.5000#  r<cK|d{V}||jkrdS||jdzkrd|_|d{V}|d{V}|dddkr|j|dS|j||gdStd|d|j)NrTrPzInvalid boundary z , expected )rJrrrrrrr)rrepiloguers r=r<zMultipartReader._read_boundarys~~''''''''//11 DN " " D dnu, , ,DL!^^--------H"nn........I !}%% ##I.....  ##Y$9:::::WWWT^WWXX Xr<cKdg} |jd{V}|}|||snLt }||\}}|S)Nr<)rrrqrr% parse_headers)rlinesrparserr raw_headerss r=r@zMultipartReader._read_headerss -0022222222EKKMME LL       %33E::r<cK|je|js|jd{V|j|jjd|_dSdS)z8Ensures that the last read body part is read completely.N)r.rrrrrs r=r:z(MultipartReader._maybe_release_last_partsx ? &?))++ 0o--///////// L   7 8 8 8"DOOO ' &r<r)rAr)!r8r9r:rrr4rEr0rFr rhr-rrrr rr classmethodr7rFrrrr=rAr,rrJr;r<r@r:r;r<r=r.r.s$  4 $O'S 1'L'T'''' ' (  %)>9: ; "  "   [  %)>9: ;$!!!!.  .0 1....P(P  .0 1PPPP(s .....    YYYY.    ######r<r.cNeZdZdZd dedeeddffd Zd!dZd eee d ee d ee ddfd Z de e fd ZdefdZdefdZejdZejdZedefdZedefdZd"dedeeedefdZdedefdZ d"dedeeedefdZ d"de e!e"eefe#eeffdeeedefdZ$edeefdZ%d#dededdfdZ&xZ'S)$r/zMultipart body writer.mixedNsubtyperrAc"||ntjj} |d|_n#t $rt ddwxYwd|d|j}t d|g|_ dS)Nasciiz(boundary should contain ASCII only charsz multipart/z ; boundary=) content_type) uuiduuid4hexr-rUnicodeEncodeErrorr_boundary_valuer!r_parts)rrXrrr#s r=rzMultipartWriter.__init__s'3889I  S%__W55DNN! S S SGHHd R SGWGG1EGG E222#% s :Ac|SrEr;rs r= __enter__zMultipartWriter.__enter__rr<exc_typeexc_valexc_tbcdSrEr;)rrdrerfs r=__exit__zMultipartWriter.__exit__s r<c*t|jSrE)iterrars r=__iter__zMultipartWriter.__iter__sDK   r<c*t|jSrE)rrars r=__len__zMultipartWriter.__len__s4;r<cdS)NTr;rs r=__bool__zMultipartWriter.__bool__str<s\A[!#$%&'*+\-.^_`|~\w]+\Zs[\x00-\x08\x0A-\x1F\x7F]cN|j}tj|j|r|dStj|j|rtd|dd}|dd}d|dzdzS)zzWrap boundary parameter value in quotes, if necessary. Reads self.boundary and returns a unicode string. rZz*boundary value contains invalid characters\s\\"s\"rL) rramatch_valid_tchar_regexrsearch_invalid_qdtext_char_regexrreplace)rryquoted_value_contents r=r`zMultipartWriter._boundary_values& 8D+U 3 3 )<<(( ( 9T4e < < KIJJ J %}}UG<<3;;D&II)00999C??r<c6|jdS)NrZ)rrrs r=rzMultipartWriter.boundarys~$$W---r<r6rc8|t}t|tr/|j|||S t ||}||S#t$rtd|zwxYw)NrzCannot create payload from %r) r isinstancer)rupdateappend_payloadr+r' TypeError)rr6rpayloads r=rzMultipartWriter.appends ?!mmG c7 # # 4 K  w ' ' '&&s++ + 4%c7;;;**7333 G G G ?# EFFF Gs A<<Brc|jtd}|r|dvrt d||dkrd}|jt d}|dvr"t d||dkrd}|j}| |s|st||jt<|j |||f|S) z)Adds a new body part to multipart writer.r])rrrrrN)r]rrrr r) rrrrprrrrrhrrar)rrrz te_encodingrs r=r~zMultipartWriter.append_payload)s)#*/"5"5  # #  %''   H(GGGFHFFGG G z ! !H&-_%8%8 % & &  %''  J J J:AA+NN  ( " "K|  X  .1$iiGON + GX{;<<<r<cj|t}|t||S)zHelper to append JSON part.Nr{)rr~r&)rr6rs r= append_jsonzMultipartWriter.append_jsonIs3 ?!mmG"";sG#D#D#DEEEr<c6t|ttfsJ|t}t|tr!t |}t |d}|t||dS)z&Helper to append form urlencoded part.NT)doseqz!application/x-www-form-urlencoded)rr[) r|rr rlistrrr~r*)rr6rrs r= append_formzMultipartWriter.append_formRs #'233333 ?!mmG c7 # # $syy{{##CD)))"" g4W      r<cd}|jD]^\}}}|s |s|jdS|tdt|jzdz|jzt|jzdzz }_|dt|jzdzz }|S)zSize of the payload.rNrP)rarrrr_binary_headers)rtotalrrzrs r=rzMultipartWriter.sizegs+/;   'D(K ; $)*;tt Sdn%%&)d*++ ,   EE S(((1,, r<Tr$close_boundaryc`K|jD]\}}}|d|jzdzd{V||jd{V|s|rst |}|r|||r||||d{V|d{Vn||d{V|dd{V|r(|d|jzdzd{VdSdS)z Write body.rrNs-- )rar&rrMultipartPayloadWriterenable_compressionenable_encoding write_eof)rr$rrrzrws r=r&zMultipartWriter.write{s+/; ( ( 'D(K,,ut~5?@@ @ @ @ @ @ @ @,,t344 4 4 4 4 4 4 4 ); )*6223((2223%%k222jjmm#######kkmm########jj(((((((((,,w'' ' ' ' ' ' ' ' '  C,,ut~5 ABB B B B B B B B B B C Cr<)rWN)rAr/rE)T)(r8r9r:rrhr rrcr BaseExceptionrrhr _PartrkrrmrFroracompilertrvpropertyr`rrrr)rr~rrrrr rrr&r(r)s@r=r/r/s  &&&#&RV&&&&&&" 4 ./ -( '       !(5/!!!!     $$$ABB!+,H!I!I @@@@X@>.#...X. 4 4# 4c1B(C 4w 4 4 4 4g'B@DFFF!),s*;!<F FFFF04  8E#s(O,gc3h.?? @ ,s+,       *hsmX&CC#CtCtCCCCCCCCr<r/cjeZdZdeddfdZdeddfdZdejfdede ddfd Z d d Z d e ddfd Z dS)rr$rANc>||_d|_d|_d|_dSrE)_writer _encoding _compress_encoding_buffer)rr$s r=rzMultipartPayloadWriter.__init__s% (,3759r<rzch|dkr||_t|_dS|dkr d|_dSdS)Nrr)rrr)rrzs r=rz&MultipartPayloadWriter.enable_encodingsE x  %DN$-KKD ! ! ! + + +/DNNN, +r<rstrategyc4t|d||_dS)NT)rzrr)rr)rrzrs r=rz)MultipartPayloadWriter.enable_compressions'($(   r<c,K|j=|j}|r"d|_||d{V|jdkr@|jr;|jt j|jd{VdSdSdS)Nr)rflushr&rrrr b64encoderLs r=rz MultipartPayloadWriter.write_eofs > %N((**E (!%jj''''''''' >X % %$ Rl(()9$:O)P)PQQQQQQQQQQQ & % R Rr<rctK|j&|r$|j|d{V}|sdS|jdkr|j}|J|||rxt t |d\}}|d|dz||dzdc}|_|r8tj|}|j |d{VdSdSdS|jdkr4|j tj |d{VdS|j |d{VdS)Nrrr) rcompressrrrdivmodrrrrr&r b2a_qp)rrbufdivmod enc_chunkb64chunks r=r&zMultipartPayloadWriter.writes > % "n55e<<<<<<<<F >X % %'C??? JJu    7!#c((A..S47 #' NCa N0 407%/ ::H,,,X66666666666  7 777^1 1 1,$$X_U%;%;<< < < < < < < < < <,$$U++ + + + + + + + + +r<r)r8r9r:rrrhrzlibZ_DEFAULT_STRATEGYrrrrr&r;r<r=rrs:s:t:::: 000000(9P   36      R R R R,,4,,,,,,r<r)r~)Mrr rrar\rmr collectionsrtypesrtypingrrrrr r r r r rrrrr urllib.parserrr multidictrrrcompression_utilsrrhdrsrrrrr helpersr!r"r#r$httpr%rr&r'r(r)r*r+r,streamsr-__all__ client_reqrepr5RuntimeWarningr1r2rhr3r4rr0 try_firstrr.rr/rr;r<r=rs    7666666666AAAAAAAAAA????????877777777777"!!!!! .------     .           `$ SM`$ 8C=$sCx. ()`$`$`$`$H,6 CH %( c]B,",",",",",",","^{@{@{@{@{@{@{@{@|nEO44477777G77547*t#t#t#t#t#t#t#t#n gsC DCDCDCDCDCgDCDCDCN7,7,7,7,7,7,7,7,7,7,r<