
    vKgZ%                     &   S SK r S SKJr  S SKJr  S SKJrJrJrJ	r	  SSK
JrJr  \S   rSrS	rS
rSrSrS r " S S\\5      r\ " S S5      5       r " S S\	SS9r\R0                  \R2                  \R4                  \R6                  S.r0 SS_SS_SS_SS_SS _S!S"_S#S$_S%S&_S'S(_S)S*_S+S,_S-S._S/S0_S1S2_S3S4_S5S6_S7S8_S9S:S;S<S=S>S?S@SASBSCSDSESFSG.Er0 S SH_SISJ_SSK_SLSM_SNSO_SPSQ_SRSS_STSU_SVSW_SXSY_SSZ_S[S\_S]S^_S_S`_SaSb_ScSd_SeSf_0 SgSh_SiSj_SkSl_SmSn_SoSp_SqSr_SsSt_SuSv_SwSx_SySz_S{S|_S}S~_SS_SS_SS_SS_SS_E0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_ESSSSSSSSSSSSS.ErSSSSSSSS.rS\ S\!4S jr"g)    N)	dataclass)Enum)ListLiteralOptional	TypedDict   )CurlOptCurlSslVersion)edge99edge101chrome99	chrome100	chrome101	chrome104	chrome107	chrome110	chrome116	chrome119	chrome120	chrome123	chrome124chrome99_android
safari15_3
safari15_5
safari17_0safari17_2_ioschromeedgesafari
safari_ioschrome_androidr   r   r   r   r   c                 ~    U S:X  a  [         $ U S:X  a  [        $ U S:X  a  [        $ U S:X  a  [        $ U S:X  a  [        $ U $ )Nr   r   r    r!   r"   )DEFAULT_CHROMEDEFAULT_EDGEDEFAULT_SAFARIDEFAULT_SAFARI_IOSDEFAULT_CHROME_ANDROID)items    ^/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/curl_cffi/requests/impersonate.pynormalize_browser_typer+   -   sM    x					!!	!	!%%    c                   \    \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rSrSrSrSrSrSrSrSrSrSrg)BrowserType<   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    N)__name__
__module____qualname____firstlineno__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes__r0   r,   r*   r.   r.   <   s]    FGHIIIIIIIIII)JJJ%Nr,   r.   c                       \ rS rSr% \R
                  r\\S'   Sr	\
\S'   Sr\
\S'   Sr\S   \S'   S	r\\\      \S
'   Sr\\S'   Sr\\S'   Srg	)ExtraFingerprintsQ   tls_min_versionF
tls_greasetls_permute_extensionsbrotlizlibr<   tls_cert_compressionNtls_signature_algorithms   http2_stream_weight   http2_stream_exclusiver0   )r1   r2   r3   r4   r   TLSv1_2r9   int__annotations__r:   boolr;   r?   r   r@   r   r   strrB   rD   r5   r0   r,   r*   r7   r7   Q   sb    )11OS1J#(D(6>'"23>48htCy18"""#C#r,   r7   c                   n    \ rS rSr% \\S'   \\S'   \\S'   \S   \S'   \\	\
      \S'   \\S'   \\S	'   S
rg)ExtraFpDict\   r9   r:   r;   r=   r?   r@   rB   rD   r0   N)r1   r2   r3   r4   rF   rG   rH   r   r   r   rI   r5   r0   r,   r*   rK   rK   \   s;      !"233&tCy11r,   rK   F)total)i  i  i  i  
   TLS_RSA_WITH_3DES_EDE_CBC_SHA/   TLS_RSA_WITH_AES_128_CBC_SHA5   TLS_RSA_WITH_AES_256_CBC_SHAr/   TLS_RSA_WITH_AES_128_CBC_SHA256=   TLS_RSA_WITH_AES_256_CBC_SHA256   TLS_PSK_WITH_AES_128_CBC_SHA   TLS_PSK_WITH_AES_256_CBC_SHA   TLS_RSA_WITH_AES_128_GCM_SHA256   TLS_RSA_WITH_AES_256_GCM_SHA384i  %TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHAi	  $TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHAi
  $TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHAi  #TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHAi  "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHAi  "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHAi#  'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256i$  'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384%TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256%TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256'TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384%TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256%TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA"TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA+TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256-TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256+TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256TLS_AES_128_GCM_SHA256TLS_AES_256_GCM_SHA384TLS_CHACHA20_POLY1305_SHA256)i'  i(  i+  i,  i/  i0  i5  i6  i  i  i  i  i  i  server_namerC   max_fragment_lengthclient_certificate_url   trusted_ca_keys   truncated_hmac   status_request   user_mapping   client_authz   server_authz	   	cert_typesupported_groups   ec_point_formats   srp   signature_algorithms   use_srtp   	heartbeat   &application_layer_protocol_negotiation   status_request_v2   signed_certificate_timestamp   client_certificate_type   server_certificate_type   padding   encrypt_then_mac   extended_master_secret   token_binding   cached_info   tls_lts   compress_certificate   record_size_limit   pwd_protect   	pwd_clear   password_salt    ticket_pinning!   tls_cert_with_extern_psk"   delegated_credential#   session_ticket$   TLMSP%   TLMSP_proxying&   TLMSP_delegate'   supported_ekt_ciphers)   pre_shared_key*   
early_data+   supported_versions,   cookie-   psk_key_exchange_modescertificate_authorities0   oid_filters1   post_handshake_auth2   signature_algorithms_cert3   	key_share4   transparency_infoconnection_idexternal_id_hashexternal_session_idquic_transport_parametersticket_requestdnssec_chain%sequence_number_encryption_algorithmsrrcapplication_settingsech_outer_extensionsencrypted_client_hellorenegotiation_info)6   7   8   9   :   ;   r/   rU   iD  i     i  zP-192zP-224zP-256zP-384zP-521X25519X25519Kyber768Draft00)r   r   r   r   r   r   ic  extension_idenablec                    US:X  aI  U(       a!  U R                  [        R                  S5        g U R                  [        R                  S5        g US:X  a^  U(       a6  [        R                  " SSS9  U R                  [        R
                  S5        g U R                  [        R
                  S5        g US	:X  aI  U(       a!  U R                  [        R                  S5        g U R                  [        R                  S
5        g US
:X  a  [        S5      eUS:X  a  [        S5      eUS:X  a)  U(       a!  U R                  [        R                  S5        g g US:X  a)  U(       a!  U R                  [        R                  S5        g g US:X  aI  U(       a!  U R                  [        R                  S5        g U R                  [        R                  S
5        g US:X  a  g [        SU S35      e)Nr   GREASE r   zTCert compression setting to brotli, you had better specify which to use: zlib/brotlirC   )
stacklevelr<   r   r   z>It's unlikely that the server_name(0) extension being changed.r   z8It's unlikely that the ALPN(16) extension being changed.r|   r   r   r   zThis extension(z6) can not be toggled for now, it may be updated later.)setoptr
   ECHwarningswarnSSL_CERT_COMPRESSIONSSL_ENABLE_ALPSNotImplementedErrorTLS_STATUS_REQUESTTLS_SIGNED_CERT_TIMESTAMPSSSL_ENABLE_TICKET)curlr   r   s      r*   toggle_extensionr     sz   uKKX.KKR(		MMC
 KK44h?KK44b9		KK//3KK//3		!"bcc		!"\]]		KK22A6  
	KK::A>  
	KK1115KK1115		!l^+ab
 	
r,   )#r   dataclassesr   enumr   typingr   r   r   r   constr
   r   BrowserTypeLiteralr$   r%   r&   r'   r(   r+   rI   r.   r7   rK   TLSv1_0TLSv1_1rE   TLSv1_3TLS_VERSION_MAPTLS_CIPHER_NAME_MAPTLS_EXTENSION_NAME_MAPTLS_EC_CURVES_MAPrF   rH   r   r0   r,   r*   <module>r
     s    !  5 5 + < % + &#t &* $ $ $ )5   """"""""	 
+ 
*  *  -	 
 -  *  *  -  -  3  2  2  1  0  0   5! " 5# $ 435533009;9$$*?  Jh}hh h 	h
 h h ~h ~h ~h {h h h h h 
h  !h" 0#h$ %h& &'h( !)h* !+h, 	-h. /h0  1h2 3h4 5h6 	7h8 9h: ;h< =h> ?h@ AhB ChD "EhF GhH IhJ KhL MhN OhP QhT UhV WhX YhZ [h\  ]h` !ahb chd ehf #ghh ihj khn 	#/!D "#  Mh X 	" 2
 2
d 2
r,   