B )9©Èì~Ðã@sŽddlmZddlZddlZdddgZdZdZdZdZdd„Zd d „Z d d „Z d d„Z dd„Z dd„Z dd„Zeefdd„Zeefdd„ZdS)é)ÚselectNÚopenptyÚforkÚspawnééc Cs<yt ¡Sttfk r YnXtƒ\}}t|ƒ}||fS)N)ÚosrÚAttributeErrorÚOSErrorÚ_open_terminalÚ slave_open)Ú master_fdÚ slave_nameÚslave_fd©rú&/opt/alt/python37/lib/python3.7/pty.pyrs c CsLyt ¡\}}Wnttfk r(YnXt |¡}t |¡||fStƒS)N)rrr r ÚttynameÚcloser )r rrrrrÚ master_open!s  rc Cslx^dD]V}xPdD]H}d||}yt |tj¡}Wntk rHwYnX|d||fSWqWtdƒ‚dS)NZpqrstuvwxyzPQRSTZ0123456789abcdefz/dev/ptyz/dev/ttyzout of pty devices)rÚopenÚO_RDWRr )ÚxÚyZpty_nameÚfdrrrr 1s   r cCsnt |tj¡}yddlm}m}Wntk r6|SXy|||dƒ|||dƒWntk rhYnX|S)Nr)ÚioctlÚI_PUSHZptemZldterm)rrrZfcntlrrÚ ImportErrorr )Ztty_nameÚresultrrrrrr =s r c Csðyt ¡\}}Wnttfk r(Yn4X|tkrTy t ¡Wntk rRYnX||fStƒ\}}t ¡}|tkrÞt ¡t |¡t  |t ¡t  |t ¡t  |t ¡|t kr¾t |¡t  t t ¡tj¡}t |¡n t |¡||fS)N)rÚforkptyr r ÚCHILDÚsetsidrrrÚdup2Ú STDIN_FILENOÚ STDOUT_FILENOÚ STDERR_FILENOrrr)Úpidrr rZtmp_fdrrrrOs0         cCs&x |r t ||¡}||d…}qWdS)N)rÚwrite)rÚdataÚnrrrÚ_writenws r)cCs t |d¡S)Ni)rÚread)rrrrÚ_read}sr+cCsz|tg}xlt|ggƒ\}}}||krH||ƒ}|s<| |¡n t t|¡t|kr |tƒ}|sh| t¡q t||ƒq WdS)N)r"rÚremoverr&r#r))r Ú master_readÚ stdin_readZfdsZrfdsZwfdsZxfdsr'rrrÚ_copys   r/cCsÈt|ƒtdƒkr|f}tƒ\}}|tkr s    (