ó
    &ÝNjÉ/  ã                  ó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      ÚJ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/requests/auth.pyÚ_basic_auth_strr&   "   sõ   € ô �h¤
×+Ñ+Ü�ŠðBØBJÁð Nðô (ò	
ô �x“=ˆä�h¤
×+Ñ+Ü�ŠðBÜBFÀxÃ.Ñ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)ÚAuthBaseéN   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)ÚHTTPBasicAuthéU   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$   € Ü%4°T·]±]ÀDÇMÁMÓ%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)ÚHTTPProxyAuthét   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×ÑÔ"Ø/3ˆD×ÑÕ,ð 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_utf8Ú4HTTPDigestAuth.build_digest_header.<locals>.md5_utf8°   s7   € Ü˜a¤×%Ñ%ØŸ™ Ó)�AÜ—{’{ 1°eÑ<×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_utf8Ú4HTTPDigestAuth.build_digest_header.<locals>.sha_utf8¸   s7   € Ü˜a¤×%Ñ%ØŸ™ Ó)�AÜ—|’| A°uÑ=×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_utf8Ú7HTTPDigestAuth.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_utf8Ú7HTTPDigestAuth.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 ! A 3˜ZÓ(Ð(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 ˜w a¨¯© Ð7ˆØˆx�q˜˜Ðˆá˜‹mˆÙ˜‹mˆà×&Ñ&×1Ñ1Ó1Ø×Ñ×*Ò*¨aÑ/Ö*à-.ˆD×ÑÔ*Ø×'Ñ'×3Ñ3°CÐ8ˆÜ�×"Ñ"×.Ñ.Ó/×6Ñ6°wÓ?ˆØ	ˆU�\‰\˜'Ó"Ñ"ˆØ	ŒT�ZŠZ‹\× Ñ  Ó)Ñ)ˆØ	ŒR�ZŠZ˜‹]Ñˆä—’˜a°Ñ7×AÑAÓCÀCÀRÐHˆØ˜Ó#Ù˜s˜e 1 U G¨1¨V¨HÐ5Ó6ˆCæÙ˜   q¨¨Ð.Ó/‰GØ�F‹]˜f¨¯	©	°#«Ó6Ø˜  ' ¨!¨F¨8°6¸#¸Ð?ˆHÙ˜˜hÓ'‰Gð à(-×ÑÔ%ð ˜Ÿ™˜ z°%°¸
À5À'ð JØ�6˜ w i¨qð2ð 	ö Ø�j  ¨Ð*Ñ*ˆDÞØ�m I ;¨aÐ0Ñ0ˆDÞØ�j  ¨Ð*Ñ*ˆDÞØÐ'¨ y°
¸6¸(À!ÐDÑDˆDà˜˜ÐÐ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   € à�=�=Ø/0ˆD×ÑÕ,ð 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  X†R                  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Æ  € ð �a—m‘mÕ) cÕ)Ø/0ˆD×ÑÔ,ØˆHà×Ñ×!Ñ!Ñ-ô   §	¡	§¡°¸Ó=Ð=�ÑJÙ�T×'Ñ'×+Ñ+Ô,Ø—‘—‘Ð1°2Ó6ˆà�v—|‘|“~Ô%¨$×*<Ñ*<×*JÑ*JÈQÔ*NØ×Ñ×,Ò,°Ñ1Õ,Ü—*’*˜Z¬r¯}©}Ñ=ˆCÜ&7¸¿¹ÀÀFÐRS¸Ð8TÓ&UˆD×ÑÔ#ð �IŠIØ�G‰GŒIØ—9‘9—>‘>Ó#ˆDÜ˜k¨4¯=©=Ó9ˆJÜ" :¯y©y¸!¿%¹%Ô@Ø× Ñ  Ô,à×3Ñ3Ü”S˜$Ÿ+™+Ó&¬¬S°$·(±(Ó(;óˆLö Ø0<—‘˜_Ñ-Ø—‘×"Ò" 4Ñ2¨6Ñ2ˆBØ�J‰J×Ñ˜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¬#¨q¯u©uÓ%5óˆLö Ø-9—	‘	˜/Ñ*Ü˜AŸF™F F¨DÓ1Ð1ˆDÑ>Ù%)£VˆD×ÑÕ"ð &*ˆD×ÑÔ"Ø	�‰˜
 D§O¡OÔ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'   