PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  Ɵ[c@s=dZddlmZddlmZddlZdZdZdZd Zd Z d Z d Z d Z dZ dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdejfdYZd efd!YZdS("sThis implements an ANSI (VT100) terminal emulator as a subclass of screen. PEXPECT LICENSE This license is approved by the OSI and FSF as GPL-compatible. http://opensource.org/licenses/isc-license.txt Copyright (c) 2012, Noah Spurrier PERMISSION TO USE, COPY, MODIFY, AND/OR DISTRIBUTE THIS SOFTWARE FOR ANY PURPOSE WITH OR WITHOUT FEE IS HEREBY GRANTED, PROVIDED THAT THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE APPEAR IN ALL COPIES. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. i(tscreen(tFSMiNcCs!|jd}|j|jdS(Ni(tmemorytwrite_cht input_symbol(tfsmR((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pytDoEmit$s cCs|jj|jdS(N(RtappendR(R((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pyt DoStartNumber)scCs0|jj}||j}|jj|dS(N(RtpopRR(Rtns((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pyt DoBuildNumber-s cCs|jd}|jdS(Ni(Rt cursor_back(RR((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pyt DoBackOne3s cCs3t|jj}|jd}|j|dS(Ni(tintRR R (RtcountR((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pytDoBack8s cCs|jd}|jdS(Ni(Rt cursor_down(RR((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pyt DoDownOne>s cCs3t|jj}|jd}|j|dS(Ni(RRR R(RRR((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pytDoDownCs cCs|jd}|jdS(Ni(Rtcursor_forward(RR((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pyt DoForwardOneIs cCs3t|jj}|jd}|j|dS(Ni(RRR R(RRR((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pyt DoForwardNs cCs|jd}|jdS(Ni(Rtcursor_up_reverse(RR((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pyt DoUpReverseTs cCs|jd}|jdS(Ni(Rt cursor_up(RR((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pytDoUpOneYs cCs3t|jj}|jd}|j|dS(Ni(RRR R(RRR((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pytDoUp^s cCsKt|jj}t|jj}|jd}|j||dS(Ni(RRR t cursor_home(RtctrR((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pytDoHomeds cCs-d}d}|jd}|j||dS(Nii(RR(RRRR((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pyt DoHomeOriginks cCs|jd}|jdS(Ni(Rt erase_down(RR((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pyt DoEraseDownrs cCsqt|jj}|jd}|dkr;|jn2|dkrT|jn|dkrm|jndS(Niii(RRR R!terase_upt erase_screen(RtargR((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pytDoErasews      cCs|jd}|jdS(Ni(Rterase_end_of_line(RR((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pytDoEraseEndOfLines cCsqt|jj}|jd}|dkr;|jn2|dkrT|jn|dkrm|jndS(Niii(RRR R'terase_start_of_linet erase_line(RR%R((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pyt DoEraseLines      cCs|jd}|jdS(Ni(Rt scroll_screen(RR((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pytDoEnableScrolls cCs|jd}|jdS(Ni(Rtcursor_save_attrs(RR((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pyt DoCursorSaves cCs|jd}|jdS(Ni(Rtcursor_restore_attrs(RR((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pytDoCursorRestores cCsK|jd}t|jj}t|jj}|j||dS(Ni(RRR tscroll_screen_rows(RRtr2tr1((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pytDoScrollRegions cCs |jd}|jj}dS(Ni(RR (RRtmode((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pytDoModes cCsU|jd}|g|_tdd}|j|jd|jd|jdS(Nitlogtat,s (RtopentwriteRt current_statetclose(RRtfout((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pytDoLogs   ttermcBseZdZdddZRS(sThis class is an abstract, generic terminal. This does nothing. This is a placeholder that provides a common base class for other terminals such as an ANSI terminal. iiPcOs tjj|||||dS(N(Rt__init__(tselfRRtargstkwargs((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pyRBs(t__name__t __module__t__doc__RB(((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pyRAstANSIcBseeZdZdddZdZdZdZdZdZd Z d Z d Z RS( sThis class implements an ANSI (VT100) terminal. It is a stream filter that recognizes ANSI terminal escape sequences and maintains the state of a screen object. iiPcOs)tj|||||tjd|g|_|jjtd|jjdtd|jjdddd|jjdtd|jjdddd|jjdddd|jj dddd|jj dddd|jjd dt d|jjd dt d|jjd dt d|jjd dt d|jjd dt d|jjdddd|jjdddd|jjddd|jjdddd|jjddtd|jjddtd|jjddtd|jjddtd|jjddtd|jjddtd|jjddtd|jjddtd|jjdd|jd|jjdddd|jj tjdtd|jj tjdtd|jjddtd|jjddtd|jjddtd|jjddtd|jjddtd|jjddt d|jjddt!d|jjdd|jd|jjd d|j"d|jj tjdtd!|jj tjd!td!|jjdd!|j#d|jjd"d!|j#d|jjd#ddd$|jjd$td|jj tjd$td%|jj tjd%td%|jjd%td|jjdd%t$d|jjd&d%t$d|jjdd%t%d|jjdd%|jd|jjd d%|j"d|jjd#d%dd'|jjd'td|jj tjd'td(|jj tjd(td(|jjd(td|jjdd(|jd|jjd d(|j"d|jjd#d(dd'dS()NtINITstESCt(tG0SCSt)tG1SCStAB012t7t8tMt>th and [?l. If anyone wanted to actually use these, they'd need to add more states to the FSM rather than just improve or override this method. iN(R(RCRR((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pyRzZs ( RFRGRHRBR~RR<RRRvRyRz(((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pyRIsS    !  (RHtRRRwRRR R RRRRRRRRRR R"R&R(R+R-R/R1R5R7R@RARI(((s-/tmp/pip-build-ViqJzN/pexpect/pexpect/ANSI.pyts: