U e5djã @sÖddlZddlZddlZddlZddlZdddgZGdd„deƒZddd„Zdd d „Z dd d „Z ddd„Z dd„Z zddl Z e je jfWnBeefk rÌz ddlZWnek rÂe ZYnXe ZYnXeZdS)éNÚgetpassÚgetuserÚGetPassWarningc@s eZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©rrú/usr/lib64/python3.8/getpass.pyrsú Password: c CsÀd}t ¡¨}zJt dtjtjB¡}t |d¡}| |¡t  |¡}| |¡|sX|}Wnpt k rÊ}zR|  ¡zt j  ¡}Wn&ttfk r¨d}t||ƒ}YnXt j }|sºt j}W5d}~XYnX|dk rœz„t |¡}|dd…} | dtjM<tj} ttdƒr| tjO} z t || | ¡t|||d}W5t || |¡| ¡XWn@tjk rš|dk rz‚||k rŒ|  ¡t||ƒ}YnX| d¡|W5QR£SQRXdS)Nz/dev/ttyzw+éÚ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Ú tcgetattrZECHOZ TCSAFLUSHÚhasattrr Ú tcsetattrÚflushÚ _raw_inputÚerrorÚwrite) ÚpromptÚstreamZpasswdÚstackÚfdZttyr ÚeÚoldÚnewZtcsetattr_flagsrrr Ú unix_getpasssR             r1cCsŒtjtjk rt||ƒS|D]}t |¡qd}t ¡}|dkst|dkrHqt|dkrTt‚|dkrj|dd…}q.||}q.t d¡t d¡|S)NÚú rúúéÿÿÿÿ)rrÚ __stdin__r ÚmsvcrtZputwchZgetwchÚKeyboardInterrupt)r*r+ÚcZpwrrr Ú win_getpassas       r;cCs0tjdtdd|stj}td|dt||ƒS)Nz%Can not control echo on the terminal.é)Ú stacklevelz&Warning: Password input may be echoed.)Úfile)ÚwarningsÚwarnrrr!Úprintr')r*r+rrr r xsÿ r r2cCsœ|s tj}|stj}t|ƒ}|rpz| |¡Wn8tk rf| |jd¡}| |j¡}| |¡YnX|  ¡|  ¡}|s€t ‚|ddkr˜|dd…}|S)NÚreplacer6r) rr!rÚstrr)ÚUnicodeEncodeErrorÚencodeÚencodingÚdecoder&ÚreadlineÚEOFError)r*r+r Úlinerrr r's&   r'cCs<dD]}tj |¡}|r|Sqddl}| t ¡¡dS)N)ZLOGNAMEZUSERZLNAMEZUSERNAMEr)rÚenvironÚgetÚpwdÚgetpwuidÚgetuid)ÚnameÚuserrMrrr ršs   )r N)r N)r N)r2NN)rrrrr?Ú__all__Ú UserWarningrr1r;r r'rr"r#r%Ú ImportErrorrr8rrrrr Ús*  D