§
    (¶Õif  ã                   óî   — d Z ddlZddlZddlZddlZddlZg d¢Z G d„ de¦  «        Zdd„Z	dd„Z
dd	„Zdd„Zd„ Z	 ddlZej        ej        f e	ZdS # eef$ r 	 ddlZe
ZY dS # e$ r eZY Y dS w xY ww xY w)a‡  Utilities to get a password and/or the current user name.

getpass(prompt[, stream]) - Prompt for a password, with echo turned off.
getuser() - Get the user name from the environment or password database.

GetPassWarning - This UserWarning is issued when getpass() cannot prevent
                 echoing of the password contents while reading.

On Windows, the msvcrt module will be used.

é    N)ÚgetpassÚgetuserÚGetPassWarningc                   ó   — e Zd ZdS )r   N)Ú__name__Ú
__module__Ú__qualname__© ó    ú/usr/lib/python3.11/getpass.pyr   r      s   € € € € € € € r   r   ú
Password: c                 ó  — d}t          j        ¦   «         5 }	 t          j        dt          j        t          j        z  ¦  «        }t          j        |d¦  «        }|                     |¦  «         t          j	        |¦  «        }|                     |¦  «         |s|}n‡# t          $ rz |                     ¦   «          	 t          j                             ¦   «         }n)# t          t           f$ r d}t#          | |¦  «        }Y nw xY wt          j        }|st          j        }Y nw xY w|��.	 t'          j        |¦  «        }|dd…         }|dxx         t&          j         z  cc<   t&          j        }	t/          t&          d¦  «        r|	t&          j        z  }		 t'          j        ||	|¦  «         t5          | ||¬¦  «        }t'          j        ||	|¦  «         |                     ¦   «          n/# t'          j        ||	|¦  «         |                     ¦   «          w xY wn@# t&          j        $ r. |�‚ ||ur|                     ¦   «          t#          | |¦  «        }Y nw xY w|                     d¦  «         |cddd¦  «         S # 1 swxY w Y   dS )a  Prompt for a password, with echo turned off.

    Args:
      prompt: Written on stream to ask for the input.  Default: 'Password: '
      stream: A writable file object to display the prompt.  Defaults to
              the tty.  If no tty is available defaults to sys.stderr.
    Returns:
      The seKr3t input.
    Raises:
      EOFError: If our input tty or stdin was closed.
      GetPassWarning: When we were unable to turn echo off on the input.

    Always restores terminal settings before returning.
    Nz/dev/ttyzw+é   ÚTCSASOFT)Úinputú
)Ú
contextlibÚ	ExitStackÚosÚopenÚO_RDWRÚO_NOCTTYÚioÚFileIOÚenter_contextÚTextIOWrapperÚOSErrorÚcloseÚsysÚstdinÚfilenoÚAttributeErrorÚ
ValueErrorÚfallback_getpassÚstderrÚtermiosÚ	tcgetattrÚECHOÚ	TCSAFLUSHÚhasattrr   Ú	tcsetattrÚ
_raw_inputÚflushÚerrorÚwrite)
ÚpromptÚstreamÚpasswdÚstackÚfdÚttyr   ÚoldÚnewÚtcsetattr_flagss
             r   Úunix_getpassr9      sØ  € ð €FÝ	Ô	Ñ	Ô	ð 1 5ð	$å”˜¥R¤Y­r¬{Ñ%:Ñ;Ô;ˆBÝ”)˜B Ñ%Ô%ˆCØ×Ò Ñ$Ô$Ð$ÝÔ$ SÑ)Ô)ˆEØ×Ò Ñ&Ô&Ð&Øð Ø�øøÝð 
	$ð 
	$ð 
	$à�KŠK‰MŒMˆMð:Ý”Y×%Ò%Ñ'Ô'��øÝ"¥JÐ/ð :ð :ð :Ø�Ý)¨&°&Ñ9Ô9���ð:øøøõ ”IˆEØð $Ýœ�øøð
	$øøøð ‰>ð:ÝÔ'¨Ñ+Ô+�Ø˜!˜!˜!”f�Ø�A��”�7œ<˜-Ñ'��‘Ý")Ô"3�Ý�7 JÑ/Ô/ð 8Ø#¥wÔ'7Ñ7�Oð#ÝÔ% b¨/¸3Ñ?Ô?Ð?Ý'¨°¸eÐDÑDÔD�FåÔ% b¨/¸3Ñ?Ô?Ð?Ø—L’L‘N”N�N�Nøõ Ô% b¨/¸3Ñ?Ô?Ð?Ø—L’L‘N”N�N�Nøøø�NøÝ”=ð 
:ð 
:ð 
:ØÐ%ð ð  Ð&Ð&à—K’K‘M”M�MÝ)¨&°&Ñ9Ô9���ð
:øøøð 	�Š�TÑÔÐØðc1ð 1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 1ð 1s–   –I7˜BBÂI7ÂD Â;CÃD Ã#D Ã=D Ã?D Ä D ÄI7ÄD Ä I7Ä'A)HÆ(G$Æ9+HÇ$,HÈHÈI7È:IÉI7ÉIÉI7É7I;É>I;c                 óf  — t           j        t           j        urt          | |¦  «        S | D ]}t	          j        |¦  «         Œd}	 t	          j        ¦   «         }|dk    s|dk    rn$|dk    rt          ‚|dk    r|dd…         }n||z   }ŒDt	          j        d¦  «         t	          j        d¦  «         |S )	z:Prompt for password with echo off, using Windows getwch().Ú é   úr   úúNéÿÿÿÿ)r   r    Ú	__stdin__r$   ÚmsvcrtÚputwchÚgetwchÚKeyboardInterrupt)r0   r1   ÚcÚpws       r   Úwin_getpassrH   a   sÈ   € å
„y�œÐ%Ð%Ý ¨Ñ/Ô/Ð/àð ð ˆÝŒ�aÑÔÐÐØ	€Bð	ÝŒM‰OŒOˆØ�Š9ˆ9˜˜Tš	˜	ØØ�Š;ˆ;Ý#Ð#Ø�Š9ˆ9Ø�C�R�C”ˆBˆBà�a‘ˆBð	õ „M�$ÑÔÐÝ
„M�$ÑÔÐØ€Ir   c                 ó˜   — t          j        dt          d¬¦  «         |st          j        }t          d|¬¦  «         t          | |¦  «        S )Nz%Can not control echo on the terminal.é   )Ú
stacklevelz&Warning: Password input may be echoed.)Úfile)ÚwarningsÚwarnr   r   r%   Úprintr,   )r0   r1   s     r   r$   r$   x   sV   € Ý„MÐ9½>Øð ñ  ô  ð  àð Ý”ˆÝ	Ð
2¸Ð@Ñ@Ô@Ð@Ý�f˜fÑ%Ô%Ð%r   r;   c                 óÐ  — |st           j        }|st           j        }t          | ¦  «        } | r…	 |                     | ¦  «         nZ# t
          $ rM |                      |j        d¦  «        } |                      |j        ¦  «        } |                     | ¦  «         Y nw xY w| 	                    ¦   «          | 
                    ¦   «         }|st          ‚|d         dk    r
|d d…         }|S )NÚreplacer@   r   )r   r%   r    Ústrr/   ÚUnicodeEncodeErrorÚencodeÚencodingÚdecoder-   ÚreadlineÚEOFError)r0   r1   r   Úlines       r   r,   r,   �   sô   € àð Ý”ˆØð Ý”	ˆÝ�‰[Œ[€FØð ð	!Ø�LŠL˜Ñ Ô Ð Ð øÝ!ð 	!ð 	!ð 	!à—]’] 6¤?°IÑ>Ô>ˆFØ—]’] 6¤?Ñ3Ô3ˆFØ�LŠL˜Ñ Ô Ð Ð Ð ð		!øøøð
 	�Š‰Œˆà�>Š>ÑÔ€DØð ÝˆØˆB„x�4ÒÐØ�C�R�CŒyˆØ€Ks   ¯A ÁABÂBc                  ó¶   — dD ]'} t           j                             | ¦  «        }|r|c S Œ(ddl}|                     t          j        ¦   «         ¦  «        d         S )zÂGet the username from the environment or password database.

    First try various environment variables, then the password
    database.  This works on Windows as long as USERNAME is set.

    )ÚLOGNAMEÚUSERÚLNAMEÚUSERNAMEr   N)r   ÚenvironÚgetÚpwdÚgetpwuidÚgetuid)ÚnameÚuserra   s      r   r   r   š   sd   € ð 9ð ð ˆÝŒz�~Š~˜dÑ#Ô#ˆØð 	ØˆKˆKˆKð	ð €J€J€JØ�<Š<�œ	™œÑ$Ô$ QÔ'Ð'r   )r   N)r;   NN)Ú__doc__r   r   r   r   rM   Ú__all__ÚUserWarningr   r9   rH   r$   r,   r   r&   r'   r+   r   ÚImportErrorr"   rB   r
   r   r   ú<module>rj      s_  ðð
ð 
ð  Ð Ð Ð Ø 	€	€	€	Ø 	€	€	€	Ø 
€
€
€
Ø €€€à
0Ð
0Ð
0€ð (Ð 'Ð 'Ð 'Ð '�[Ñ 'Ô 'Ð 'ðAð Að Að AðHð ð ð ð.&ð &ð &ð &ðð ð ð ð2(ð (ð (ð$Ø€N€N€Nð Ô�wÔ(Ð(Ð(ð €G€G€Gøð 	�^Ð$ð ð ð ðØˆˆˆð ˆˆˆˆøð ð #ð #ð #Ø"ˆˆˆˆˆð#øøøðøøøs/   ½A ÁA4ÁA$ÁA4Á$A0Á+A4Á/A0Á0A4