
    j/                    X   % S r SSKJr  SSKrSSKrSSKrSSKrSSKrSSKrSSK	J
r
  SSKJrJrJrJrJr  SSKJr  SSKJrJrJr  SS	KJr  SS
KJr  \(       a  SSKJr  SSKJr  SSKJrJr  Sr S\!S'   Sr"S\!S'   SS jr# " S S5      r$ " S S\$5      r% " S S\%5      r& " S S\$5      r'g)z]
requests.auth
~~~~~~~~~~~~~

This module contains the authentication handlers for Requests.
    )annotationsN)	b64encode)TYPE_CHECKINGAnyFinalcastoverload   )to_native_string)
basestringstrurlparse)extract_cookies_to_jar)parse_dict_header)	CookieJar)r   )PreparedRequestResponsez!application/x-www-form-urlencodedr   CONTENT_TYPE_FORM_URLENCODEDzmultipart/form-dataCONTENT_TYPE_MULTI_PARTc           	        [        U [        5      (       d)  [        R                  " SU < S3[        S9  [        U 5      n [        U[        5      (       d2  [        R                  " S[        U5      < S3[        S9  [        U5      n[        U [
        5      (       a  U R                  S5      n [        U[
        5      (       a  UR                  S5      nS[        [        SR                  X45      5      R                  5       5      -   nU$ )zReturns a Basic Auth string.zpNon-string usernames will no longer be supported in Requests 3.0.0. Please convert the object you've passed in (zC) to a string or bytes object in the near future to avoid problems.)categoryzpNon-string passwords will no longer be supported in Requests 3.0.0. Please convert the object you've passed in (latin1zBasic    :)
isinstancer   warningswarnDeprecationWarningr   typeencoder   r   joinstrip)usernamepasswordauthstrs      P/var/www/html/Sattelite-Image/venv/lib/python3.13/site-packages/requests/auth.py_basic_auth_strr&   "   s     h
++BBJ N (	
 x=h
++BBFx.AS T (	
 x= (C  ??8,(C  ??8,)$))X01288: G N    c                  "    \ rS rSrSrSS jrSrg)AuthBaseN   z4Base class that all auth implementations derive fromc                    [        S5      e)NzAuth hooks must be callable.)NotImplementedErrorselfrs     r%   __call__AuthBase.__call__Q   s    !"@AAr'    Nr/   r   returnr   __name__
__module____qualname____firstlineno____doc__r0   __static_attributes__r2   r'   r%   r)   r)   N   s    >Br'   r)   c                  ~    \ rS rSr% SrS\S'   S\S'   \SS j5       r\SS j5       rSS jrSS	 jrSS
 jr	SS jr
Srg)HTTPBasicAuthU   z?Attaches HTTP Basic Authentication to the given Request object.bytes | strr"   r#   c                    g Nr2   r.   r"   r#   s      r%   __init__HTTPBasicAuth.__init__[       >Ar'   c                    g rA   r2   rB   s      r%   rC   rD   ]       BEr'   c                    Xl         X l        g rA   )r"   r#   rB   s      r%   rC   rD   `   s      r'   c           	     |    [        U R                  [        USS 5      :H  U R                  [        USS 5      :H  /5      $ Nr"   r#   allr"   getattrr#   r.   others     r%   __eq__HTTPBasicAuth.__eq__d   >    
D!AA
D!AA
 	
r'   c                    X:X  + $ rA   r2   rN   s     r%   __ne__HTTPBasicAuth.__ne__l         r'   c                `    [        U R                  U R                  5      UR                  S'   U$ )NAuthorizationr&   r"   r#   headersr-   s     r%   r0   HTTPBasicAuth.__call__o   s$    %4T]]DMM%R		/"r'   )r#   r"   Nr"   r   r#   r   r4   Noner"   bytesr#   r_   r4   r]   r"   r?   r#   r?   r4   r]   rO   objectr4   boolrO   r   r4   rc   r3   )r6   r7   r8   r9   r:   __annotations__r	   rC   rP   rT   r0   r;   r2   r'   r%   r=   r=   U   sA    IA AE E!
!r'   r=   c                  "    \ rS rSrSrSS jrSrg)HTTPProxyAutht   z=Attaches HTTP Proxy Authentication to a given Request object.c                `    [        U R                  U R                  5      UR                  S'   U$ )NzProxy-AuthorizationrY   r-   s     r%   r0   HTTPProxyAuth.__call__w   s%    +:4==$--+X		'(r'   r2   Nr3   r5   r2   r'   r%   rg   rg   t   s
    Gr'   rg   c                      \ rS rSr% SrS\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S\S'   S\S'   \SS j5       r\SS j5       rSS jrS S jrS!S jr	S"S jr
S#S jrS$S jrS%S jrS&S jrSrg)'HTTPDigestAuth|   z@Attaches HTTP Digest Authentication to the given Request object.r?   r"   r#   zthreading.local_thread_localr   
last_nonceintnonce_countzdict[str, str]chalz
int | Noneposnum_401_callsc                    g rA   r2   rB   s      r%   rC   HTTPDigestAuth.__init__   rE   r'   c                    g rA   r2   rB   s      r%   rC   rv      rG   r'   c                P    Xl         X l        [        R                  " 5       U l        g rA   )r"   r#   	threadinglocalrn   rB   s      r%   rC   rv      s      &__.r'   c                   [        U R                  S5      (       dg  SU R                  l        SU R                  l        SU R                  l        0 U R                  l        S U R                  l        S U R                  l        g g )NinitT r   )hasattrrn   r|   ro   rq   rr   rs   rt   )r.   s    r%   init_per_thread_state$HTTPDigestAuth.init_per_thread_state   sn    t))622&*D#,.D)-.D*&(D#%)D"/3D, 3r'   c                  ^ U R                   R                  S   nU R                   R                  S   nU R                   R                  R                  S5      nU R                   R                  R                  S5      nU R                   R                  R                  S5      nSmUc  SnOUR                  5       nUS:X  d  US:X  a  S*S	 jn	U	mO)US
:X  a  S*S jn
U
mOUS:X  a  S*S jnUmOUS:X  a  S*S jnUmTc  gS+U4S jjnSn[	        U5      nUR
                  =(       d    SnUR                  (       a  USUR                   3-  nU R                   SU SU R                   3nU SU 3nT" U5      nT" U5      nX@R                   R                  :X  a   U R                   =R                  S-  sl
        OSU R                   l
        U R                   R                  S n[        U R                   R                  5      R                  S5      nUUR                  S5      -  nU[        R                  " 5       R                  S5      -  nU[        R                   " S5      -  n["        R$                  " USS9R'                  5       SS nUS:X  a  T" U SU SU 35      nU(       d  U" UU SU 35      nO3US:X  d  SUR)                  S5      ;   a  U SU SU SU 3nU" UU5      nOgX@R                   l	        SU R                   SU S U S!U S"U S#3nU(       a	  US$U S#3-  nU(       a	  US%U S#3-  nU(       a	  US&U S#3-  nU(       a  US'U S(U S#3-  nS)U 3$ ),z
:rtype: str
realmnonceqop	algorithmopaqueNMD5zMD5-SESSc                    [        U [        5      (       a  U R                  S5      n [        R                  " U SS9R                  5       $ Nutf-8Fusedforsecurity)r   r   r   hashlibmd5	hexdigestxs    r%   md5_utf84HTTPDigestAuth.build_digest_header.<locals>.md5_utf8   s7    a%%)A{{1e<FFHHr'   SHAc                    [        U [        5      (       a  U R                  S5      n [        R                  " U SS9R                  5       $ r   )r   r   r   r   sha1r   r   s    r%   sha_utf84HTTPDigestAuth.build_digest_header.<locals>.sha_utf8   s7    a%%)A||Au=GGIIr'   zSHA-256c                    [        U [        5      (       a  U R                  S5      n [        R                  " U SS9R                  5       $ r   )r   r   r   r   sha256r   r   s    r%   sha256_utf87HTTPDigestAuth.build_digest_header.<locals>.sha256_utf8   7    a%%)A~~a?IIKKr'   zSHA-512c                    [        U [        5      (       a  U R                  S5      n [        R                  " U SS9R                  5       $ r   )r   r   r   r   sha512r   r   s    r%   sha512_utf87HTTPDigestAuth.build_digest_header.<locals>.sha512_utf8   r   r'   c                   > T" U  SU 35      $ )N:r2   )sd	hash_utf8s     r%   KD.HTTPDigestAuth.build_digest_header.<locals>.KD   s    s!A3Z((r'   /?r   r
   08xr      Fr      auth,z:auth:z
username="z
", realm="z
", nonce="z", uri="z", response=""z
, opaque="z, algorithm="z
, digest="z, qop="auth", nc=z
, cnonce="zDigest )r   zstr | bytesr4   r   )r   r   r   r   r4   r   )rn   rr   getupperr   pathqueryr"   r#   ro   rq   r   r   timectimeosurandomr   r   r   split)r.   methodurlr   r   r   r   r   
_algorithmr   r   r   r   r   entdigp_parsedr   A1A2HA1HA2ncvaluer   cnoncerespdignoncebitbaser   s                              @r%   build_digest_header"HTTPDigestAuth.build_digest_header   s   
 ""''0""''0  %%))%0&&++//<	##((,,X6	J"*J*
":I
 !I5 J
 !I9$L
 $I9$L
 $I	) C=}}#>>a'((Dawa7xqmm&&111**a/*-.D*''33C8""../66w?	U\\'""	TZZ\  ))	RZZ]a7AACCRH#se1UG1VH56Cq./GF]f		#6'!F86#?Hh'G (-% z%
5' J6wiq2 	 j**DmI;a00Dj**D'y
6(!DDDr'   c                J    UR                   (       a  SU R                  l        gg)z)Reset num_401_calls counter on redirects.r
   N)is_redirectrn   rt   )r.   r/   kwargss      r%   handle_redirectHTTPDigestAuth.handle_redirect  s    ==/0D, r'   c                   SUR                   s=::  a  S:  d  O  SU R                  l        U$ U R                  R                  b@  [	        UR
                  R                  SS5      =nb  U" U R                  R                  5        UR                  R                  SS5      nSUR                  5       ;   Ga  U R                  R                  S	:  Ga  U R                  =R                  S-  sl        [        R                  " S
[        R                  S9n[        UR                  SUSS95      U R                  l        UR                     UR#                  5         UR
                  R%                  5       n['        SUR(                  5      n[+        XqR
                  UR,                  5        UR/                  U5        U R1                  ['        [2        UR4                  5      ['        [2        UR6                  5      5      nU(       a  XR                  S'   UR8                  R:                  " U40 UD6n	U	R<                  R?                  U5        Xil        U	$ SU R                  l        U$ )zW
Takes the given response and tries digest-auth, if needed.

:rtype: requests.Response
i  i  r
   Nseekzwww-authenticater}   digest   zdigest )flags)countr   rX   ) status_codern   rt   rs   rM   requestbodyrZ   r   lowerrecompile
IGNORECASEr   subrr   contentclosecopyr   _cookiesr   rawprepare_cookiesr   r   r   r   
connectionsendhistoryappend)
r.   r/   r   r   s_authpatprep
cookie_jar_digest_auth_rs
             r%   
handle_401HTTPDigestAuth.handle_401  s    amm)c)/0D,H!!-  		==JT''++,126v||~%$*<*<*J*JQ*N,,1,**Zr}}=C&7FRS8T&UD# IIGGI99>>#Dk4==9J":yy!%%@  ,33S$++&S$(((;L 0<_-""4262BJJa JI+,(r'   c                    U R                  5         U R                  R                  (       aW  U R                  [	        [
        UR                  5      [	        [
        UR                  5      5      nU(       a  X!R                  S'   [        UR                  SS 5      =nb  U" 5       U R                  l        OS U R                  l        UR                  SU R                  5        UR                  SU R                  5        SU R                  l        U$ )NrX   tellresponser
   )r   rn   ro   r   r   r   r   r   rZ   rM   r   rs   register_hookr   r   rt   )r.   r/   r   r   s       r%   r0   HTTPDigestAuth.__call__A  s    ""$((33S!((#T#quu%5L -9		/*AFFFD11D>%)VD" &*D"	
DOO4	
D$8$89+,(r'   c           	     |    [        U R                  [        USS 5      :H  U R                  [        USS 5      :H  /5      $ rJ   rK   rN   s     r%   rP   HTTPDigestAuth.__eq__Y  rR   r'   c                    X:X  + $ rA   r2   rN   s     r%   rT   HTTPDigestAuth.__ne__a  rV   r'   )rn   r#   r"   Nr\   r^   r`   )r4   r]   )r   r   r   r   r4   z
str | None)r/   r   r   r   r4   r]   )r/   r   r   r   r4   r   r3   ra   rd   )r6   r7   r8   r9   r:   re   r	   rC   r   r   r   r   r0   rP   rT   r;   r2   r'   r%   rl   rl   |   sz    J""O
	OA AE E/4m ^1
.`0
!r'   rl   )r"   r?   r#   r?   r4   r   )(r:   
__future__r   r   r   r   ry   r   r   base64r   typingr   r   r   r   r	   _internal_utilsr   compatr   r   r   cookiesr   utilsr   http.cookiejarr   modelsr   r   r   re   r   r&   r)   r=   rg   rl   r2   r'   r%   <module>r     s    #  	 	     < < - - - + $(1&I e I!6  6)XB BH >M f!X f!r'   