JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbra XC?h@sddlmZddlZddlZddlZgdZdZdZdZdZddZ dd Z d d Z d d Z ddZ ddZddZeefddZeefddZdS))selectN)openptyforkspawnc Cs<z tWSttfy Yn0t\}}t|}||fSN)osrAttributeErrorOSError_open_terminal slave_open) master_fd slave_nameslave_fdr(/opt/alt/python39/lib64/python3.9/pty.pyrs  rc CsJzt\}}Wnttfy&Yn0t|}t|||fStSr)r rr r ttynamecloser )rrrrrr master_open"s  rc CsldD]Z}dD]P}d||}zt|tj}WntyDYq Yn0|d||fSqtddS)NZpqrstuvwxyzPQRSTZ0123456789abcdefz/dev/ptyz/dev/ttyzout of pty devices)r openO_RDWRr )xyZpty_namefdrrrr 2s   r cCsnt|tj}zddlm}m}Wnty8|YS0z|||d|||dWntyhYn0|S)Nr)ioctlI_PUSHZptemZldterm)r rrZfcntlrr ImportErrorr )Ztty_nameresultrrrrrr >s    r c Cszt\}}Wnttfy&Yn20|tkrPz tWntyNYn0||fSt\}}t}|tkrtt|t |t t |t t |t |t krt|t tt tj}t|n t|||fSr)r forkptyr r CHILDsetsidrrrdup2 STDIN_FILENO STDOUT_FILENO STDERR_FILENOrrr)pidrrrZtmp_fdrrrrPs0          rcCs"|rt||}||d}qdSr)r write)rdatanrrr_writenxs r*cCs t|dS)Ni)r read)rrrr_read~sr,cCsv|tg}t|gg\}}}||vrF||}|s:||n tt|t|vr|t}|sf|tqt||qdSr)r#rremover r'r$r*)r master_read stdin_readZfdsZrfdsZwfdsZxfdsr(rrr_copys   r0cCst|tdkr|f}td|t\}}|tkrJtj|dg|Rztt }t t d}Wntj y~d}Yn0zt |||Wn&t y|rtt tj|Yn0t|t|ddS)Nz pty.spawnrr)typesysauditrr r execlpttyZ tcgetattrr#Zsetrawerrorr0r Z tcsetattrZ TCSAFLUSHrwaitpid)argvr.r/r&rmodeZrestorerrrrs&       r)rr r3r6__all__r#r$r%r rrr r rr*r,r0rrrrr s"   (