+
    '(jg              D      `  a  0 t $ ^ RIHt . R^Ot^ RIt^ RIt^ RIt^ RI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HtHt ^ R	IHtHtHtHtHtHt ^R
I H!t!H"t"H#t#H$t$ ^RI%H&t&H't' ^RI(H)t) ^RI*H+t+ ^RI,H-t-H.t. ^RI/H0t0 ^RI1H2t2H3t3H4t4H5t5H6t6H7t7 ^RI8H9t9 ]'       d!   ^RI%H:t: ^RI*H;t; ^RI/H<t< ^RI1H=t=H>t> ^RI?H@t@ ]R_,          tA]R`,          tB]C! R4      tD] ! R R4      4       tE]E! 4       tFR]GR&   R R ltHR R ltIRaR  R! lltJR" R# ltK]L! Rb4      tMR$ R% ltNR& R' ltORcR( R) lltPRdR* R+ lltQRdR, R- lltRR. R/ ltSRcR0 R1 lltTR2 R3 ltUR4 R5 ltVR6 R7 ltWR8. R9RR:RR;RR<. R=. R>RR?RR@]FRARBRC^RD. RERRFRRG. RHRRIRJRKRRLRRMRRNRRORRPRRQRBRRRRSRRTRRURRVRRW^ RXRRYRRZRR[R/"R\ R] lltXR# )e    )annotationsNOT_SETN)Counter)Callable)BytesIO)dumps)TYPE_CHECKINGAnyFinalLiteralOptionalUnioncastfinal)ParseResult	parse_qslquote	urlencodeurljoinurlparse)
CurlFollowCurlHttpVersionCurlOptCurlSslVersion)CURL_WRITEFUNC_ERRORCurlMime)CurlCffiWarning)Cookies)ImpersonateError
InvalidURL)Headers)TLS_CIPHER_NAME_MAPTLS_EC_CURVES_MAPTLS_VERSION_MAPExtraFingerprintsnormalize_browser_typetoggle_extension)Request)Curl)CookieTypes)HeaderTypes)BrowserTypeLiteralExtraFpDict)	ProxySpecz!#$%&'()*+,/:;=?@[]~c                  6    ] tR t^2tRtRtR R ltR R ltRtR# )
NotSetTypez8
Unique single initialized type distinct from ``None``.
c                   V ^8  d   QhRR/# )   returnstr )formats   "M/home/ubuntu/cf-venv/lib/python3.14/site-packages/curl_cffi/requests/utils.py__annotate__NotSetType.__annotate__:   s      #     c                	    R # r   r5   selfs   &r7   __repr__NotSetType.__repr__:       r:   c                   V ^8  d   QhRR/# )r2   r3   zLiteral['NOT_SET']r5   )r6   s   "r7   r8   r9   =   s      . r:   c                	    R # r<   r5   r=   s   &r7   
__reduce__NotSetType.__reduce__=   rA   r:   r5   N)	__name__
__module____qualname____firstlineno____doc__	__slots__r?   rD   __static_attributes__r5   r:   r7   r0   r0   2   s     I r:   r0   zFinal[NotSetType]c                    V ^8  d   QhRRRR/# )r2   versionz*Union[CurlHttpVersion, HttpVersionLiteral]r3   r   r5   )r6   s   "r7   r8   r8   E   s      7r:   c                   V R 8X  d   \         P                  # V R8X  d   \         P                  # V R8X  d   \         P                  # V R8X  d   \         P                  # V R8X  d   \         P
                  # V R8X  d   \         P                  # V # )v1v3v3onlyv2v2tlsv2_prior_knowledge)r   V1_1V3V3ONLYV2_0V2TLSV2_PRIOR_KNOWLEDGE)rN   s   &r7   normalize_http_versionr\   E   s     $###	D!!!	H	%%%	D###	G	$$$	(	(111Nr:   c                    V ^8  d   QhRRRR/# )r2   urlr4   r3   boolr5   )r6   s   "r7   r8   r8   X   s     ; ; ; ;r:   c                j    \        V 4      p\        VP                  ;'       d    VP                  4      # )z,Check if the provided url is an absolute url)r   r_   schemehostname)r^   
parsed_urls   & r7   is_absolute_urlrd   X   s*    #J
!!99j&9&9::r:    c                    V ^8  d   QhRRRR/# )r2   r^   r4   	quote_strr5   )r6   s   "r7   r8   r8   ^   s      s s r:   c           	     b   R P                  \        \        V4      ,
          4      p\        V 4      p\	        VP
                  RR7      p\        VRVR7      p\        VP                  VP                  \        VP                  VR7      VP                  VVP                  4      P                  4       # )re   Tkeep_blank_values)doseqsaferl   )join
SAFE_CHARSsetr   r   queryr   r   ra   netlocr   pathparamsfragmentgeturl)r^   rg   rl   rc   parsed_get_argsencoded_get_argss   &&    r7   quote_path_and_paramsry   ^   s    77:I./D#J
 0 0DIO 4HjooD) fhr:   c               $    V ^8  d   QhRRRRRR/# )r2   r^   r4   rt   zUnion[dict, list, tuple]r3   r5   )r6   s   "r7   r8   r8   m   s"     4 43 4(@ 4S 4r:   c                   \        V 4      p\        VP                  RR7      p\        R V 4       4      p\	        V\
        4      '       d   \        VP                  4       4      p\        R V 4       4      pV F  w  rg\	        V\        \
        ,          4      '       d   \        V4      pVP                  V4      ^8X  d:   VP                  V4      ^8X  d$   V Uu. uF  q^ ,          V8w  d   TMWg3NK  	  ppK  VP                  Wg34       K  	  \        VRR7      p	\        VP                  VP                  VP                   VP"                  V	VP$                  4      P'                  4       p
V
# u upi )a  Add URL query params to provided URL being aware of existing.

Args:
    url: string of target URL
    params: dict containing requested params to be added

Returns:
    string with updated URL

>> url = 'http://stackoverflow.com/test?answers=true'
>> new_params = {'answers': False, 'data': ['some','values']}
>> update_url_params(url, new_params)
'http://stackoverflow.com/test?data=some&data=values&answers=false'
Tri   c              3  2   "   T F  q^ ,          x  K  	  R# 5ir   Nr5   .0xs   & r7   	<genexpr>$update_url_params.<locals>.<genexpr>   s     =_tt_   c              3  2   "   T F  q^ ,          x  K  	  R# 5ir}   r5   r~   s   & r7   r   r      s     4VttVr   )rk   )r   r   rq   r   
isinstancedictlistitemsr_   r   getappendr   r   ra   rr   rs   rt   ru   rv   )r^   rt   rc   rw   old_args_counternew_args_counterkeyvaluer   rx   new_urls   &&         r7   update_url_paramsr   m   sN     #J  
 0 0DIO =_==&$flln%4V44
eTD[))%LE$).>.B.B3.G1.L>M>Mdck|3o  O ""C<0  !=  fh  N)s   E-c                    V ^8  d   QhRRRR/# r2   urir4   r3   r5   )r6   s   "r7   r8   r8      s      C C r:   c                   V P                  R4      p\        ^\        V4      4       F  pW,          R,          p\        V4      ^8X  da   VP                  4       '       dK    \	        \        V^4      4      pT\        9   d   YAT,          R,          ,           Y&   Ks  RY,           2Y&   K  RW,           2W&   K  	  RP                  V4      #   \         d   p\        RT R24      ThRp?ii ; i)zUn-escape any percent-escape sequences in a URI that are unreserved
characters. This leaves all reserved, illegal and non-ASCII bytes encoded.
%:r   r2   Nz"Invalid percent-escape sequence: ''N:r2   NNre   )
splitrangelenisalnumchrint
ValueErrorr    UNRESERVED_SETrn   )r   partsihces   &     r7   unquote_unreservedr      s     IIcNE1c%j!HSMq6Q;199;;SAr
O N"Qx|+uxj>58*~EH " 775>  S #EaS!JKQRRSs    CC+C&&C+c                    V ^8  d   QhRRRR/# r   r5   )r6   s   "r7   r8   r8      s     5 5S 5S 5r:   c                r    RpRp \        \        V 4      VR7      #   \         d    \        YR7      u # i ; i)zRe-quote the given URI.

This function passes the given URI through an unquote/quote cycle to
ensure that it is fully and consistently quoted.
z!#$%&'()*+,/:;=?@[]~|z!#$&'()*+,/:;=?@[]~|rm   )r   r   r    )r   safe_with_percentsafe_without_percents   &  r7   requote_urir      sG     01	5 ',3DEE 5 S44	5s    66c               (    V ^8  d   QhRRRRRRRR/# )r2   header_linesz	list[str]r   r4   r   replacer_   r5   )r6   s   "r7   r8   r8      s,     / //"%/.1/<@/r:   c                   Rp\        V 4       FT  w  rVVP                  4       P                  VP                  4       R,           4      '       g   KA  RpV'       d
   V RV 2W&    M	  V'       g   V P                  V RV 24       R# R# )z*Update header line list by key value pair.F:T: N)	enumeratelower
startswithr   )r   r   r   r   foundidxlines   &&&&   r7   update_header_liner      s}     E|,	::<""399;#455E'*e2eW$5! - se2eW-. r:   c                   V ^8  d   QhRR/# )r2   qzqueue.Queuer5   )r6   s   "r7   r8   r8      s      + r:   c                P     V P                   ^ ,          #   \         d    Tu # i ; ir   )queue
IndexErrorr   defaults   &&r7   
peek_queuer      s)    wwqz     %%c                   V ^8  d   QhRR/# )r2   r   zasyncio.Queuer5   )r6   s   "r7   r8   r8      s      m r:   c                P     V P                   ^ ,          #   \         d    Tu # i ; ir   )_queuer   r   s   &&r7   peek_aio_queuer      s)    xx{ r   c                   V ^8  d   QhRR/# )r2   curlr)   r5   )r6   s   "r7   r8   r8      s     5 54 5r:   c                    0 RmpW,
          pV F  p\        WRR7       K  	  W!,
          pV F  p\        WRR7       K  	  R# )r   T)enableFN>   r     
               #   +   -   3   )r'   )r   extension_idsdefault_enabledto_enable_idsext_idto_disable_idss   &&    r7   toggle_extensions_by_idsr      sA    DO!3Md3  
 %4N e4 !r:   c               $    V ^8  d   QhRRRRRR/# )r2   r   r)   ja3r4   permuter_   r5   )r6   s   "r7   r8   r8     s&     +L +L$ +LS +L4 +Lr:   c                `   VP                  R4      w  r4rVp\        \        V4      ,          pV P                  \        P
                  V\        P                  ,          4       V\        P                  8X  g   Q R4       h. p	VP                  R4       FU  p
\        V
4      p\        P                  ! V4      pV'       g   \        R\        V4       R24      hV	P                  V4       KW  	  V P                  \        P                  RP                  V	4      4       VP!                  R4      '       d#   VRR p\"        P$                  ! R	\&        ^R
7       \)        R VP                  R4       4       4      p\+        W4       V'       g!   V P                  \        P,                  V4       . pVP                  R4       F,  p\        V4      p\.        V,          pVP                  V4       K.  	  V P                  \        P0                  RP                  V4      4       \        V4      ^ 8X  g   Q R4       hR# )zm
Detailed explanation: https://engineering.salesforce.com/tls-fingerprinting-with-ja3-and-ja3s-247362855967/
,zOnly TLS v1.2 works for now.-zCipher z is not foundr   z-21NzPadding(21) extension found in ja3 string, whether to add it should be managed by the SSL engine. The TLS client hello packet may contain or not contain this extension, any of which should be correct.
stacklevelc              3  8   "   T F  p\        V4      x  K  	  R # 5iN)r   )r   r   s   & r7   r   "set_ja3_options.<locals>.<genexpr>#  s     >(=1A(=s   z%Only curve_formats == 0 is supported.)r   r$   r   setoptr   
SSLVERSIONr   MAX_DEFAULTTLSv1_2r"   r   r   hexr   SSL_CIPHER_LISTrn   endswithwarningswarnr   rp   r   TLS_EXTENSION_ORDERr#   SSL_EC_CURVES)r   r   r   tls_versionciphers
extensionscurvescurve_formatscurl_tls_versioncipher_namescipher	cipher_idcipher_namer   curve_namescurvecurve_id
curve_names   &&&               r7   set_ja3_optionsr     s    ?Biin;K*m&s;'78KK""$4~7Q7Q$QR~555U7UU5L--$K	)--i8"WS^,<M#JKKK( % 	KK'',)?@5!!_
M 	
 >
(8(8(=>>MT1G//<Kc"u:&x0
:& #
 	KK%%sxx'<=}"K$KK"r:   c                    V ^8  d   QhRRRR/# )r2   r   r)   akamair4   r5   )r6   s   "r7   r8   r8   4  s     S ST S3 Sr:   c                   VP                  R4      w  r#rEVP                  RR4      pV P                  \        P                  \
        P                  4       V P                  \        P                  V4       V P                  \        P                  \        V4      4       VR8w  d!   V P                  \        P                  V4       V P                  \        P                  VP                  RR4      4       R# )z
Detailed explanation: https://www.blackhat.com/docs/eu-17/materials/eu-17-Shuster-Passive-Fingerprinting-Of-HTTP2-Clients-wp.pdf
|r   ;0re   N)r   r   r   r   HTTP_VERSIONr   rY   HTTP2_SETTINGSHTTP2_WINDOW_UPDATEr   HTTP2_STREAMSHTTP2_PSEUDO_HEADERS_ORDER)r   r   settingswindow_updatestreamsheader_orders   &&    r7   set_akamai_optionsr  4  s     6<\\#5F2HW S)HKK$$o&:&:;KK&&1KK++S-?@#~G))73 	KK22L4H4Hb4QRr:   c                    V ^8  d   QhRRRR/# )r2   r   r)   perkr4   r5   )r6   s   "r7   r8   r8   J  s     	N 	N4 	Ns 	Nr:   c                   VP                  R 4      w  r#pV P                  \        P                  V4       V P                  \        P                  VP                  RR4      4       V P                  \        P                  V4       R# )r  r   re   N)r   r   r   HTTP3_SETTINGSHTTP3_PSEUDO_HEADERS_ORDERr   QUIC_TRANSPORT_PARAMETERS)r   r  r
  r  quic_transport_parameterss   &&   r7   set_perk_optionsr  J  sa    8<

35H5KK&&1 	KK22L4H4Hb4QRKK113LMr:   c                    V ^8  d   QhRRRR/# )r2   r   r)   fpr%   r5   )r6   s   "r7   r8   r8   V  s     U Ut U!2 Ur:   c                   VP                   '       d:   V P                  \        P                  R P	                  VP                   4      4       V P                  \        P
                  VP                  \        P                  ,          4       V P                  \        P                  \        VP                  4      4       V P                  \        P                  \        VP                  4      4       V P                  \        P                  VP                  4       V P                  \        P                   VP"                  4       V P                  \        P$                  VP&                  4       VP(                  '       d+   V P                  \        P*                  VP(                  4       VP,                  '       d+   V P                  \        P.                  VP,                  4       VP0                  '       d+   V P                  \        P2                  VP0                  4       VP4                  e+   V P                  \        P6                  VP4                  4       VP8                  e+   V P                  \        P:                  VP8                  4       VP<                  e+   V P                  \        P>                  VP@                  4       VPB                  e-   V P                  \        PD                  VPB                  4       R# R# )r   N)#tls_signature_algorithmsr   r   SSL_SIG_HASH_ALGSrn   r   tls_min_versionr   r   
TLS_GREASEr   
tls_greaseSSL_PERMUTE_EXTENSIONStls_permute_extensionsSSL_CERT_COMPRESSIONtls_cert_compressionSTREAM_WEIGHThttp2_stream_weightSTREAM_EXCLUSIVEhttp2_stream_exclusivetls_delegated_credentialTLS_DELEGATED_CREDENTIALStls_record_size_limitTLS_RECORD_SIZE_LIMIThttp2_no_priorityHTTP2_NO_PRIORITYform_boundaryFORM_BOUNDARYsplit_cookiesSPLIT_COOKIEShttp3_sig_hash_algsHTTP3_SIG_HASH_ALGSsig_hash_algshttp3_tls_extension_orderHTTP3_TLS_EXTENSION_ORDER)r   r  s   &&r7   set_extra_fpr6  V  s   	"""G--sxx8S8S/TUKK""B$6$69S9S$STKK""C$67KK..B4M4M0NOKK,,b.E.EFKK%%r'='=>KK(("*C*CD	"""G55r7R7RS	G1123K3KL	G--r/C/CD	#G))2+;+;<	#G))2+;+;<	)G//1A1AB	##/G55r7S7ST 0r:   params_listbase_urldatajsonheaders_listcookies_listfilesauthtimeoutallow_redirectsTmax_redirectsproxies_listproxy
proxy_authverify_listrefereraccept_encodingzgzip, deflate, br, zstdcontent_callbackimpersonater   r   r  extra_fpdefault_headersr   http_version	interfacecertstreammax_recv_speed	multipartqueue_classevent_classcurl_optionsc          J         V ^8  d   Qh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R!R"R#R
R$R
R%R&R'R(R)R
R*R
R+R
R,R-R.R/R0R1R2R3R4R
R5R6R7R8R9R:R;R<R=R>R?R>R@RA/%# )Br2   r   r)   method
HttpMethodr^   r4   r7  zFlist[Union[dict[str, object], list[object], tuple[object, ...], None]]r8  zOptional[str]r9  zIOptional[Union[dict[str, str], list[tuple[object]], str, BytesIO, bytes]]r:  z-Optional[dict[object, object] | list[object]]r;  zlist[Optional[HeaderTypes]]r<  zlist[Optional[CookieTypes]]r=  zOptional[dict[object, object]]r>  zOptional[tuple[str, str]]r?  z3Optional[Union[float, tuple[float, float], object]]r@  z&Optional[Union[bool, CurlFollow, str]]rA  zOptional[int]rB  zlist[Optional[ProxySpec]]rC  rD  rE  zlist[Union[bool, str, None]]rF  rG  rH  zOptional[Callable[..., object]]rI  z(Optional[Union[BrowserTypeLiteral, str]]r   r   r  rJ  z/Optional[Union[ExtraFingerprints, ExtraFpDict]]rK  r_   r   zUnion[str, Literal[False]]rL  z4Optional[Union[CurlHttpVersion, HttpVersionLiteral]]rM  rN  z%Optional[Union[str, tuple[str, str]]]rO  zOptional[bool]rP  r   rQ  zOptional[CurlMime]rR  r
   rS  rT  zOptional[dict[CurlOpt, str]]r5   )r6   s   "r7   r8   r8   p  s    BB BB
BBBB 
BB
BB BBBB 8BB .BB .BB *BB  $!BB" A#BB$ <%BB& !'BB( ,)BB* +BB, *-BB. ./BB0 1BB2 #3BB4 65BB6 :7BB8 
9BB: ;BB< =BB> >?BB@ ABBB &CBBD GEBBF GBBH 0IBBJ KBBL MBBN "OBBP QBBR SBBT /UBBr:   c       "   	       aJaKaL T p%VP                  4       pVR 8X  d"   V%P                  \        P                  ^4       M5VR8w  d/   V%P                  \        P                  VP                  4       4       VR8X  d!   V%P                  \        P                  ^4       Vw  p&p'V&'       d   \        VV&4      pV''       d   \        VV'4      pV'       d   \        WB4      pV'       d   \        VVR7      pVRJd   \        V4      pV%P                  \        P                  VP                  4       4       \        V\        \        ,          \        ,          4      '       d   \!        V4      P                  4       p(My\        V\"        4      '       d   VP                  4       p(MR\        V\$        4      '       d   VP'                  4       p(M+\        V\(        4      '       d   Tp(MVf   Rp(M\+        R4      hVe   \-        VR-R	7      P                  4       p(VRJ;'       g    VRJp)V)'       d   V!f   T(MRp*V('       g   VR.9   dq   V%P                  \        P.                  V(4       V%P                  \        P0                  \3        V(4      4       VR8X  d!   V%P                  \        P                  V4       Vw  p+p,\        V,\4        4      '       d   V,P6                  MRp-\5        V+V-R
7      p.V.P9                  V,4       . p/V.P;                  4        FS  w  p0p1V1f   V/P=                  V0 R24       K   V1R8X  d   V/P=                  V0 R24       K=  V/P=                  V0 RV1 24       KU  	  Ve   \?        V/RR4       \        V\        4      '       d   VR 8w  d   \?        V/RR4       \        V\"        \(        ,          4      '       d   V'       d   \?        V/RR4       \?        V/RRRR7       T%P                  \        P@                  V/ U.u. uF  p.V.P                  4       NK  	  up.4       \C        VX.VV*4      p2V%P                  \        PD                  R4       V%P                  \        PF                  R4       Vw  p3p4V3'       dG   V3PI                  V24       F1  p5V P                  \        PF                  V5PK                  4       4       K3  	  V4'       dR   \M        V44      p6V6PI                  V24       F1  p5V P                  \        PF                  V5PK                  4       4       K3  	  V	'       d   \O        R4      hV!'       d   \Q        \        T;'       g    / 4      PS                  4        F?  w  p0p1T!PU                  T0\        V1\"        4      '       d   V1P                  4       MT1R7       KA  	  V%P                  \        PV                  V!PX                  4       V
'       db   V
w  p7p8V%P                  \        PZ                  V7P                  4       4       V%P                  \        P\                  V8P                  4       4       Vf   ^ p\        V\        4      '       d   Vw  p9p:V9V:,           p;V%P                  \        P^                  \a        V9R,          4      4       V'       g3   V%P                  \        Pb                  \a        V;R,          4      4       EM3V%P                  \        Pd                  ^4       V%P                  \        Pf                  \h        Pj                  ! V;4      4       M\        V\`        \l        ,          4      '       d   V'       g2   V%P                  \        Pb                  \a        VR,          4      4       MV%P                  \        P^                  \a        VR,          4      4       V%P                  \        Pd                  ^4       V%P                  \        Pf                  \h        Pj                  ! V4      4       \        V\n        4      '       d+   V%P                  \        Pp                  \a        V4      4       MhVR8X  d9   V%P                  \        Pp                  \a        \n        Pr                  4      4       M)V%P                  \        Pp                  \a        V4      4       V%P                  \        Pt                  V4       Vw  p<p=V'       d   V='       d   \+        R4      hV'       d   RV/p=V=f   T<p=V='       Ed   V%P                  \        Pv                  ^4       \y        V4      p>\Q        \z        \"        ,          V=P}                  V>P~                  V=P}                  R4      4      4      pV>P                  '       dR   V=P}                  V>P~                   RV>P                   2V=P}                  RV>P                   24      4      ;'       g    TpVEe   V%P                  \        P                  V4       V>P~                  R8X  dl   VP                  R4      '       d   \        P                  ! R \        ^R!7       VP                  R"4      '       g!   V%P                  \        P                  ^4       V'       db   Vw  p7p8V%P                  \        P                  V7P                  4       4       V%P                  \        P                  V8P                  4       4       Vw  p?p@V@RJ ;'       g    V?'       * ;'       d    X@RJ pAVAV%nI        VA'       dA   V%P                  \        P                  ^ 4       V%P                  \        P                  ^ 4       \        X@\"        4      '       d!   V%P                  \        P                  X@4       X@R/9   d7   \        V?\"        4      '       d!   V%P                  \        P                  V?4       V'       d/   V%P                  \        P                  VP                  4       4       Ve/   V%P                  \        P                  VP                  4       4       V'       d}   \        V\"        4      '       d"   V%P                  \        P                  V4       MEVw  ppBV%P                  \        P                  V4       V%P                  \        P                  VB4       V'       d,   \        V4      pV%P                  \        P                  V4       V'       d5   \        V4      pV%P                  VVR#7      pCVC^ 8w  d   \        R$V R%24      hV'       d   V'       d   \        P                  ! R&\        ^R!7       RpD\        V\        4      '       d   VP                  '       d   RpD\        V\        4      '       d   VP}                  R'4      '       d   RpD\        V%VXDR(7       V'       dS   \        V\        4      '       d   \        R0/ VB pV'       d   \        P                  ! R)\        ^R!7       \        V%V4       V'       d2   V'       d   \        P                  ! R*\        ^R!7       \        V%V4       V'       d2   V'       d   \        P                  ! R+\        ^R!7       \        V%V4       RpERoKRoJRoLV'       d?   V"! 4       oKV#! 4       oJV#! 4       oLVJVKVL3R, lpFV%P                  \        P                  VF4       MOVe"   V%P                  \        P                  V4       M*\%        4       pEV%P                  \        P                  VE4       \%        4       pGV%P                  \        P                  VG4       V'       d/   V%P                  \        P                  VP                  4       4       V%P                  \        P                  V 4       V$'       d-   V$PS                  4        F  w  pHpIV%P                  VHVI4       K  	  V2XEXGSKSJSL3# u up.i )1POSTGETHEAD)rg   FNr:   z3data must be dict/list/tuple, str, BytesIO or bytesr   )
separators)encodingre   r  r   zContent-Typezapplication/jsonz!application/x-www-form-urlencodedzapplication/octet-streamExpectT)r   ALLzfiles is not supported, use `multipart`. See examples here: https://github.com/lexiforest/curl_cffi/blob/main/examples/upload.py)namer9  i  rl   z)Cannot specify both 'proxy' and 'proxies'allz://zall://httpszhttps://zMake sure you are using https over https proxy, otherwise, the proxy prefix should be 'http://' not 'https://', see: https://github.com/lexiforest/curl_cffi/issues/6r   socks)rK  zImpersonating z is not supportedz?JA3 fingerprint was altered after impersonated version was set.r   )r   zBExtra fingerprints was altered after impersonated version was set.zBAkamai fingerprint was altered after impersonated version was set.z@Perk fingerprint was altered after impersonated version was set.c                   < SP                  4       '       g   SP                  4        SP                  4       '       d   \        # SP                  V 4       \	        V 4      # r   )is_setrp   r   
put_nowaitr   )chunkheader_recvedr   quit_nows   &r7   qputset_curl_options.<locals>.qput  sG     ''))!!#  ++LLu:r:   )r   r   )rY  PUTPATCH)NTr5   )`upperr   r   rY  CUSTOMREQUESTencodeNOBODYr   r   ry   r   URLr   r   r   tupler   r4   r   readbytes	TypeErrorr   
POSTFIELDSPOSTFIELDSIZEr   r!   r]  updatemulti_itemsr   r   
HTTPHEADERr(   
COOKIEFILE
COOKIELISTget_cookies_for_curlto_curl_formatr   NotImplementedErrorr   r   addpartMIMEPOST_formUSERNAMEPASSWORDCONNECTTIMEOUT_MSr   
TIMEOUT_MSLOW_SPEED_LIMITLOW_SPEED_TIMEmathceilfloatr   FOLLOWLOCATIONSAFE	MAXREDIRSPROXY_CREDENTIAL_NO_REUSEr   r   r   ra   rb   PROXYr   r   r   r   HTTPPROXYTUNNELPROXYUSERNAMEPROXYPASSWORD_skip_cacertSSL_VERIFYPEERSSL_VERIFYHOSTCAINFOREFERERACCEPT_ENCODINGSSLCERTSSLKEYr\   r  r&   rI  r   r%   r   r   r6  r  WRITEFUNCTION	WRITEDATA
HEADERDATA	INTERFACEMAX_RECV_SPEED_LARGE)Mr   rV  r^   r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  r   r   r  rJ  rK  r   rL  rM  rN  rO  rP  rQ  rR  rS  rT  r   base_paramsrt   bodybody_providedrequest_bodybase_headersheadersr]  r   r   kvreqbase_cookiescookiesmorseltemp_cookiesusernamepasswordconnect_timeoutread_timeoutall_timeoutbase_proxiesproxiesr   base_verifyverifydisable_verifyr   retr   bufferrj  header_bufferoptionsettingrh  r   ri  sM   &&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$                                     @@@r7   set_curl_optionsr  p  s   X 	A\\^F 	q!	5	&&8	# &K[1V,h$#C59E#HHW[[#**,' $te+,,%%'	D#		{{}	D'	"	"yy{	D%	 	 	MNNTj188:$88D(8M(Y->4DL v11	##T*	&&D	2U?HHW**F3 )L' $.gw#?#?wTHx0AHHW L191#Q("W1#Q(1#Rs,   <9KL$&F"2.*M	
 $e$$<9ST |Xr4@HHWl!Cl!((*l!CD
#q&,
/C HHW%HHW'(L'"77<FKK**F,A,A,CD =w'"77<FKK**F,A,A,CD = !S
 	
 tzzr*002DAq1As9K9K188:QRS 3	!!9??3 !(	!!8??#45	!!8??#45 '5!!(/%%4	**C$0F,GHHHW''[4-?)@A HHW,,a0HHW++TYY{-CD	GS5[	)	)HHW''Wt^)<=HHW..GdN0CDHHW,,a0HHW++TYYw-?@ /:..	''_)=>	F	"	''Z__)=>	''_)=> HHW. )L'CDD%.w
 	
22A6Xc]GKKgkk%>P$QR>>>||nC'78KK&(8 9:     HHW]]E*||w&##J//MMP (#$ ''00HHW44a8 %/"(..0AB..0AB &Ku_JJK(J(JFdNN#AN	''+	''+ &#	( *[#">">	- 	'.."23 "	((/*@*@*BC dC  HHW__d+ID#HHW__d+HHW^^S) -l;	%%|4 ,[9mmKmI!8"^K=@Q#RSS MMQ
 h 122x7V7V7VGh%%(,,7O*P*PG30 h%%(484HMMT
 	Q! MMT
 	1f% MMR
 	1d#FAMHM#=	 	
&&-		%	&&(89	""F+IMHHW/ 	""I$4$4$67 HHW))>: +113OFGHHVW%  4 q-AAy "Ds   9
)HttpVersionLiteralr  r   )	rZ  rY  rl  DELETEOPTIONSr[  TRACErm  QUERY)rP   rS   rT   rU   rQ   rR   )re   zBABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~)Fr   )Y__conditional_annotations__
__future__r   __all__asyncior  r   r   collectionsr   collections.abcr   ior   r:  r   typingr	   r
   r   r   r   r   r   r   urllib.parser   r   r   r   r   r   constr   r   r   r   r   r   r   utilsr   r  r   
exceptionsr   r    r  r!   rI  r"   r#   r$   r%   r&   r'   modelsr(   r)   r*   r+   r,   r-   sessionr.   rW  r  rp   ro   r0   r   __annotations__r\   rd   ry   r   	frozensetr   r   r   r   r   r   r   r   r  r  r6  r  )r  s   @r7   <module>r     s   " "
?      $   S S S T T H H 1 #  4   $$<" P
 VW '(
    (\	 )&;4v M
,5*/5"+L\S,	NU4BB 	BB #BB 	BB ;?BB 13BB 13BB -1BB  '+!BB" DK#BB$ ?C%BB& $&'BB( /1)BB*  +BB, -1-BB. 13/BB0 "1BB2 &?3BB4 9=5BB6 =A7BB8 9BB: !;BB< =BB> AE?BB@ !ABBB )+CBBD JNEBBF  $GBBH 37IBBJ "KBBL MBBN %)OBBP QBBR SBBT 26UBB BBr:   