§
    £”jÉ/  ã                  óf  — U d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	m
Z
 ddlmZmZmZmZmZ ddlmZ ddlmZmZmZ dd	lmZ dd
lmZ erddlmZ ddlmZ ddlmZmZ dZ de!d<   dZ"de!d<   d!d„Z# G d„ d¦  «        Z$ G d„ de$¦  «        Z% G d„ de%¦  «        Z& G d„ d e$¦  «        Z'dS )"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_PARTÚusernameúbytes | strÚpasswordÚreturnr   c           	     ó`  — t          | t          ¦  «        s.t          j        d| ›d�t          ¬¦  «         t          | ¦  «        } t          |t          ¦  «        s;t          j        dt          |¦  «        ›d�t          ¬¦  «         t          |¦  «        }t          | t
          ¦  «        r|                      d¦  «        } t          |t
          ¦  «        r|                     d¦  «        }dt          t          d 
                    | |f¦  «        ¦  «                             ¦   «         ¦  «        z   }|S )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)r   r   Úauthstrs      ú\/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/requests/auth.pyÚ_basic_auth_strr(   "   s@  € õ �h¥
Ñ+Ô+ð !ÝŒðØBJðð ð õ (ð	
ñ 	
ô 	
ð 	
õ �x‘=”=ˆå�h¥
Ñ+Ô+ð !ÝŒðÝBFÀxÁ.Ä.ðð ð õ (ð	
ñ 	
ô 	
ð 	
õ �x‘=”=ˆõ �(�CÑ Ô ð -Ø—?’? 8Ñ,Ô,ˆå�(�CÑ Ô ð -Ø—?’? 8Ñ,Ô,ˆàÕ)Ý�$—)’)˜X xÐ0Ñ1Ô1Ñ2Ô2×8Ò8Ñ:Ô:ñô ñ €Gð €Nó    c                  ó   — e Zd ZdZdd„ZdS )ÚAuthBasez4Base class that all auth implementations derive fromÚrr   r   c                ó    — t          d¦  «        ‚)NzAuth hooks must be callable.)ÚNotImplementedError©Úselfr,   s     r'   Ú__call__zAuthBase.__call__Q   s   € Ý!Ð"@ÑAÔAÐAr)   N©r,   r   r   r   ©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r1   © r)   r'   r+   r+   N   s4   € € € € € Ø>Ð>ðBð Bð Bð Bð Bð Br)   r+   c                  óx   — e Zd ZU dZded<   ded<   edd„¦   «         Zedd
„¦   «         Zdd„Zdd„Zdd„Zdd„Z	dS )ÚHTTPBasicAuthz?Attaches HTTP Basic Authentication to the given Request object.r   r   r   r   r   ÚNonec                ó   — d S ©Nr8   ©r0   r   r   s      r'   Ú__init__zHTTPBasicAuth.__init__[   ó   € Ø>A¸cr)   Úbytesc                ó   — d S r=   r8   r>   s      r'   r?   zHTTPBasicAuth.__init__]   ó   € ØBEÀ#r)   c                ó"   — || _         || _        d S r=   )r   r   r>   s      r'   r?   zHTTPBasicAuth.__init__`   s   € Ø ˆŒØ ˆŒˆˆr)   ÚotherÚobjectÚboolc           	     ó„   — t          | j        t          |dd ¦  «        k    | j        t          |dd ¦  «        k    g¦  «        S ©Nr   r   ©Úallr   Úgetattrr   ©r0   rE   s     r'   Ú__eq__zHTTPBasicAuth.__eq__d   óE   € Ýà”¥¨°
¸DÑ!AÔ!AÒAØ”¥¨°
¸DÑ!AÔ!AÒAðñ
ô 
ð 	
r)   r   c                ó   — | |k     S r=   r8   rM   s     r'   Ú__ne__zHTTPBasicAuth.__ne__l   ó   € Ø˜5’=Ð Ð r)   r,   r   c                óJ   — t          | j        | j        ¦  «        |j        d<   |S )NÚAuthorization©r(   r   r   Úheadersr/   s     r'   r1   zHTTPBasicAuth.__call__o   s!   € Ý%4°T´]ÀDÄMÑ%RÔ%RˆŒ	�/Ñ"Øˆr)   N©r   r   r   r   r   r;   ©r   rA   r   rA   r   r;   ©r   r   r   r   r   r;   ©rE   rF   r   rG   ©rE   r   r   rG   r2   )
r4   r5   r6   r7   Ú__annotations__r	   r?   rN   rQ   r1   r8   r)   r'   r:   r:   U   s°   € € € € € € ØIÐIàÐÐÑØÐÐÑàØAÐAÐAñ „XØAØØEÐEÐEñ „XØEð!ð !ð !ð !ð
ð 
ð 
ð 
ð!ð !ð !ð !ðð ð ð ð ð r)   r:   c                  ó   — e Zd ZdZdd„ZdS )ÚHTTPProxyAuthz=Attaches HTTP Proxy Authentication to a given Request object.r,   r   r   c                óJ   — t          | j        | j        ¦  «        |j        d<   |S )NzProxy-AuthorizationrU   r/   s     r'   r1   zHTTPProxyAuth.__call__w   s"   € Ý+:¸4¼=È$Ì-Ñ+XÔ+XˆŒ	Ð'Ñ(Øˆr)   Nr2   r3   r8   r)   r'   r^   r^   t   s.   € € € € € ØGÐGðð ð ð ð ð r)   r^   c                  óÔ   — e Zd ZU dZded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ded<   ed)d„¦   «         Zed*d„¦   «         Zd+d„Zd,d„Zd-d„Zd.d„Z	d/d „Z
d0d"„Zd1d&„Zd2d'„Zd(S )3ÚHTTPDigestAuthz@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_callsr   r;   c                ó   — d S r=   r8   r>   s      r'   r?   zHTTPDigestAuth.__init__ˆ   r@   r)   rA   c                ó   — d S r=   r8   r>   s      r'   r?   zHTTPDigestAuth.__init__Š   rC   r)   c                óR   — || _         || _        t          j        ¦   «         | _        d S r=   )r   r   Ú	threadingÚlocalrb   r>   s      r'   r?   zHTTPDigestAuth.__init__�   s&   € Ø ˆŒØ ˆŒå&œ_Ñ.Ô.ˆÔÐÐr)   c                óÄ   — t          | j        d¦  «        sJd| j        _        d| j        _        d| j        _        i | j        _        d | j        _        d | j        _        d S d S )NÚinitTÚ r   )Úhasattrrb   ro   rc   re   rf   rg   rh   )r0   s    r'   Úinit_per_thread_statez$HTTPDigestAuth.init_per_thread_state“   si   € å�tÔ)¨6Ñ2Ô2ð 	4Ø&*ˆDÔÔ#Ø,.ˆDÔÔ)Ø-.ˆDÔÔ*Ø&(ˆDÔÔ#Ø%)ˆDÔÔ"Ø/3ˆDÔÔ,Ð,Ð,ð	4ð 	4r)   ÚmethodÚurlú
str | Nonec                óâ  ‡— | j         j        d         }| j         j        d         }| j         j                             d¦  «        }| j         j                             d¦  «        }| j         j                             d¦  «        }dŠ|€d}n|                     ¦   «         }|dk    s|dk    rd0d„}	|	Šn&|dk    rd0d„}
|
Šn|dk    rd0d„}|Šn|dk    rd0d„}|Š‰€dS d1ˆfd„}d}t	          |¦  «        }|j        pd}|j        r|d|j        › �z  }| j        › d|› d| j        › �}|› d|› �} ‰|¦  «        } ‰|¦  «        }|| j         j	        k    r| j         xj
        dz  c_
        nd| j         _
        | j         j
        d›}t          | j         j
        ¦  «                             d¦  «        }||                     d¦  «        z  }|t          j        ¦   «                              d¦  «        z  }|t          j        d¦  «        z  }t#          j        |d¬¦  «                             ¦   «         dd …         }|dk    r ‰|› d|› d|› �¦  «        }|s |||› d|› �¦  «        }n9|d!k    sd!|                     d"¦  «        v r|› d|› d|› d#|› �} |||¦  «        }ndS || j         _	        d$| j        › d%|› d&|› d'|› d(|› d)�}|r	|d*|› d)�z  }|r	|d+|› d)�z  }|r	|d,|› d)�z  }|r|d-|› d.|› d)�z  }d/|› �S )2z
        :rtype: str
        ÚrealmÚnonceÚqopÚ	algorithmÚopaqueNÚMD5zMD5-SESSÚxústr | bytesr   r   c                ó¦   — t          | t          ¦  «        r|                      d¦  «        } t          j        | d¬¦  «                             ¦   «         S ©Núutf-8F©Úusedforsecurity)r   r   r#   ÚhashlibÚmd5Ú	hexdigest©r}   s    r'   Úmd5_utf8z4HTTPDigestAuth.build_digest_header.<locals>.md5_utf8°   sF   € Ý˜a¥Ñ%Ô%ð *ØŸš Ñ)Ô)�AÝ”{ 1°eÐ<Ñ<Ô<×FÒFÑHÔHÐHr)   ÚSHAc                ó¦   — t          | t          ¦  «        r|                      d¦  «        } t          j        | d¬¦  «                             ¦   «         S r€   )r   r   r#   r„   Úsha1r†   r‡   s    r'   Úsha_utf8z4HTTPDigestAuth.build_digest_header.<locals>.sha_utf8¸   sF   € Ý˜a¥Ñ%Ô%ð *ØŸš Ñ)Ô)�AÝ”| A°uÐ=Ñ=Ô=×GÒGÑIÔIÐIr)   zSHA-256c                ó¦   — t          | t          ¦  «        r|                      d¦  «        } t          j        | d¬¦  «                             ¦   «         S r€   )r   r   r#   r„   Úsha256r†   r‡   s    r'   Úsha256_utf8z7HTTPDigestAuth.build_digest_header.<locals>.sha256_utf8À   óF   € Ý˜a¥Ñ%Ô%ð *ØŸš Ñ)Ô)�AÝ”~ a¸Ð?Ñ?Ô?×IÒIÑKÔKÐKr)   zSHA-512c                ó¦   — t          | t          ¦  «        r|                      d¦  «        } t          j        | d¬¦  «                             ¦   «         S r€   )r   r   r#   r„   Úsha512r†   r‡   s    r'   Úsha512_utf8z7HTTPDigestAuth.build_digest_header.<locals>.sha512_utf8È   r�   r)   ÚsÚdc                ó$   •—  ‰| › d|› �¦  «        S )Nú:r8   )r”   r•   Ú	hash_utf8s     €r'   ÚKDz.HTTPDigestAuth.build_digest_header.<locals>.KDÒ   s   ø€ Ø�9 ˜Z˜Z A˜Z˜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}   r~   r   r   )r”   r   r•   r   r   r   )rb   rf   ÚgetÚupperr   ÚpathÚqueryr   r   rc   re   r   r#   ÚtimeÚctimeÚosÚurandomr„   r‹   r†   Úsplit)r0   rs   rt   rw   rx   ry   rz   r{   Ú
_algorithmrˆ   rŒ   r�   r“   r™   ÚentdigÚp_parsedr¤   ÚA1ÚA2ÚHA1ÚHA2Úncvaluer”   ÚcnonceÚrespdigÚnoncebitÚbaser˜   s                              @r'   Úbuild_digest_headerz"HTTPDigestAuth.build_digest_header�   sp  ø€ ð
 Ô"Ô'¨Ô0ˆØÔ"Ô'¨Ô0ˆØÔ Ô%×)Ò)¨%Ñ0Ô0ˆØÔ&Ô+×/Ò/°Ñ<Ô<ˆ	ØÔ#Ô(×,Ò,¨XÑ6Ô6ˆØˆ	àÐØˆJˆJà"ŸšÑ*Ô*ˆJà˜ÒÐ *°
Ò":Ð":ðIð Ið Ið Ið
 !ˆIˆIØ˜5Ò Ð ðJð Jð Jð Jð
 !ˆIˆIØ˜9Ò$Ð$ðLð Lð Lð Lð
 $ˆIˆIØ˜9Ò$Ð$ðLð Lð Lð Lð
 $ˆIàÐØ�4ð	)ð 	)ð 	)ð 	)ð 	)ð 	)ð ˆÝ˜C‘=”=ˆàŒ}Ð# ˆØŒ>ð 	)ØÐ(˜œÐ(Ð(Ñ(ˆDà”Ð7Ð7 Ð7Ð7¨¬Ð7Ð7ˆØÐÐ˜ÐÐˆàˆi˜‰mŒmˆØˆi˜‰mŒmˆà�DÔ&Ô1Ò1Ð1ØÔÐ*Ô*¨aÑ/Ð*Ô*Ð*à-.ˆDÔÔ*ØÔ'Ô3Ð9Ð9ˆÝ�Ô"Ô.Ñ/Ô/×6Ò6°wÑ?Ô?ˆØ	ˆU�\Š\˜'Ñ"Ô"Ñ"ˆØ	�TŒZ‰\Œ\× Ò  Ñ)Ô)Ñ)ˆØ	�RŒZ˜‰]Œ]Ñˆå”˜a°Ð7Ñ7Ô7×AÒAÑCÔCÀCÀRÀCÔHˆØ˜Ò#Ð#Ø�)˜sÐ5Ð5 UÐ5Ð5¨VÐ5Ð5Ñ6Ô6ˆCàð 	Ø�b˜ Ð.Ð.¨Ð.Ð.Ñ/Ô/ˆGˆGØ�FŠ]ˆ]˜f¨¯	ª	°#©¬Ð6Ð6ØÐ?Ð? 'Ð?Ð?¨FÐ?Ð?¸#Ð?Ð?ˆHØ�b˜˜hÑ'Ô'ˆGˆGð �4à(-ˆÔÔ%ð2˜œð 2ð 2°%ð 2ð 2À5ð 2ð 2Øð2ð 2Ø'.ð2ð 2ð 2ð 	ð ð 	+ØÐ* Ð*Ð*Ð*Ñ*ˆDØð 	1ØÐ0 IÐ0Ð0Ð0Ñ0ˆDØð 	+ØÐ* Ð*Ð*Ð*Ñ*ˆDØð 	EØÐD¨ÐDÐD¸6ÐDÐDÐDÑDˆDà˜ÐÐÐr)   r,   r   Úkwargsr   c                ó0   — |j         rd| j        _        dS dS )z)Reset num_401_calls counter on redirects.r
   N)Úis_redirectrb   rh   )r0   r,   r¸   s      r'   Úhandle_redirectzHTTPDigestAuth.handle_redirect  s'   € àŒ=ð 	1Ø/0ˆDÔÔ,Ð,Ð,ð	1ð 	1r)   c                ó.  — d|j         cxk    rdk     sn d| j        _        |S | j        j        �2t	          |j        j        dd¦  «        x}� || j        j        ¦  «         |j                             dd¦  «        }d| 	                    ¦   «         v �rv| j        j        d	k     �re| j        xj        dz  c_        t          j        d
t          j        ¬¦  «        }t          |                     d|d¬¦  «        ¦  «        | j        _        |j         |                     ¦   «          |j                             ¦   «         }t'          d|j        ¦  «        }t+          ||j        |j        ¦  «         |                     |¦  «         |                      t'          t2          |j        ¦  «        t'          t2          |j        ¦  «        ¦  «        }|r
||j        d<    |j        j        |fi |¤Ž}	|	j                             |¦  «         ||	_        |	S d| j        _        |S )zo
        Takes the given response and tries digest-auth, if needed.

        :rtype: requests.Response
        i�  iô  r
   NÚseekzwww-authenticaterp   Údigesté   zdigest )Úflags)Úcountr   rT   ) Ústatus_coderb   rh   rg   rL   ÚrequestÚbodyrV   r¢   ÚlowerÚreÚcompileÚ
IGNORECASEr   Úsubrf   ÚcontentÚcloseÚcopyr   Ú_cookiesr   ÚrawÚprepare_cookiesr·   r   rs   rt   Ú
connectionÚsendÚhistoryÚappend)
r0   r,   r¸   r½   Ús_authÚpatÚprepÚ
cookie_jarÚ_digest_authÚ_rs
             r'   Ú
handle_401zHTTPDigestAuth.handle_401  sø  € ð �a”mÐ)Ð)Ò)Ð) cÒ)Ð)Ð)Ð)Ø/0ˆDÔÔ,ØˆHàÔÔ!Ð-õ   ¤	¤°¸Ñ=Ô=Ð=�ÐJØ��TÔ'Ô+Ñ,Ô,Ð,Ø”—’Ð1°2Ñ6Ô6ˆà�v—|’|‘~”~Ð%Ñ%¨$Ô*<Ô*JÈQÒ*NÑ*NØÔÐ,Ô,°Ñ1Ð,Ô,Ý”*˜Z­r¬}Ð=Ñ=Ô=ˆCÝ&7¸¿ºÀÀFÐRS¸Ñ8TÔ8TÑ&UÔ&UˆDÔÔ#ð ŒIˆIØ�GŠG‰IŒIˆIØ”9—>’>Ñ#Ô#ˆDÝ˜k¨4¬=Ñ9Ô9ˆJÝ" :¨q¬y¸!¼%Ñ@Ô@Ð@Ø× Ò  Ñ,Ô,Ð,à×3Ò3Ý•S˜$œ+Ñ&Ô&­­S°$´(Ñ(;Ô(;ñô ˆLð ð =Ø0<�”˜_Ñ-Ø"�”Ô" 4Ð2Ð2¨6Ð2Ð2ˆBØŒJ×Ò˜aÑ Ô Ð ØˆBŒJàˆIà+,ˆÔÔ(Øˆr)   r   c                óà  — |                       ¦   «          | j        j        rR|                      t	          t
          |j        ¦  «        t	          t
          |j        ¦  «        ¦  «        }|r
||j        d<   t          |j
        dd ¦  «        x}� |¦   «         | j        _        nd | j        _        |                     d| j        ¦  «         |                     d| j        ¦  «         d| j        _        |S )NrT   ÚtellÚresponser
   )rr   rb   rc   r·   r   r   rs   rt   rV   rL   rÄ   rg   Úregister_hookrÚ   r»   rh   )r0   r,   rØ   rÜ   s       r'   r1   zHTTPDigestAuth.__call__A  sá   € à×"Ò"Ñ$Ô$Ð$àÔÔ(ð 	:Ø×3Ò3Ý•S˜!œ(Ñ#Ô#¥T­#¨q¬uÑ%5Ô%5ñô ˆLð ð :Ø-9�”	˜/Ñ*Ý˜AœF F¨DÑ1Ô1Ð1ˆDÐ>Ø%) T¡V¤VˆDÔÔ"Ð"ð &*ˆDÔÔ"Ø	�Š˜
 D¤OÑ4Ô4Ð4Ø	�Š˜
 DÔ$8Ñ9Ô9Ð9Ø+,ˆÔÔ(àˆr)   rE   rF   rG   c           	     ó„   — t          | j        t          |dd ¦  «        k    | j        t          |dd ¦  «        k    g¦  «        S rI   rJ   rM   s     r'   rN   zHTTPDigestAuth.__eq__Y  rO   r)   c                ó   — | |k     S r=   r8   rM   s     r'   rQ   zHTTPDigestAuth.__ne__a  rR   r)   NrW   rX   rY   )r   r;   )rs   r   rt   r   r   ru   )r,   r   r¸   r   r   r;   )r,   r   r¸   r   r   r   r2   rZ   r[   )r4   r5   r6   r7   r\   r	   r?   rr   r·   r»   rÚ   r1   rN   rQ   r8   r)   r'   ra   ra   |   sH  € € € € € € ØJÐJàÐÐÑØÐÐÑØ"Ð"Ð"Ñ"Ø€O€O�OØÐÐÑØÐÐÑØ€O€O�OØÐÐÑàØAÐAÐAñ „XØAØØEÐEÐEñ „XØEð/ð /ð /ð /ð4ð 4ð 4ð 4ðm ð m ð m ð m ð^1ð 1ð 1ð 1ð
.ð .ð .ð .ð`ð ð ð ð0
ð 
ð 
ð 
ð!ð !ð !ð !ð !ð !r)   ra   )r   r   r   r   r   r   )(r7   Ú
__future__r   r„   r¨   rÆ   rl   r¦   r   Úbase64r   Útypingr   r   r   r   r	   Ú_internal_utilsr   Úcompatr   r   r   Úcookiesr   Úutilsr   Úhttp.cookiejarr   Úmodelsr   r   r   r\   r   r(   r+   r:   r^   ra   r8   r)   r'   ú<module>rê      s0  ððð ð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	Ø 	€	€	€	Ø Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <à -Ð -Ð -Ð -Ð -Ð -Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø +Ð +Ð +Ð +Ð +Ð +Ø $Ð $Ð $Ð $Ð $Ð $àð 2Ø(Ð(Ð(Ð(Ð(Ð(ØÐÐÐÐÐà1Ð1Ð1Ð1Ð1Ð1Ð1Ð1à&IÐ Ð IÐ IÐ IÑ IØ!6Ð Ð 6Ð 6Ð 6Ñ 6ð)ð )ð )ð )ðXBð Bð Bð Bð Bñ Bô Bð Bðð ð ð ð �Hñ ô ð ð>ð ð ð ð �Mñ ô ð ðf!ð f!ð f!ð f!ð f!�Xñ f!ô f!ð f!ð f!ð f!r)   