i'SrSrSrSrSrSrSrSrSrS r S r S r S r S r SrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrS r S!r!S"r"S#r#S$r$S%r%S&r&S'r'S(r(S r)Sr*Sr+S)r,S*r-S+r.S,r/S-r0S.r1S/r2S0r3S1r4S2r5S3r6S4r7S5r8S6r9S7r:S8r;S9rSrA0S?\_S@\_SA\_SB\_SC\_SD\_SE\_SF\_SG\ _SH\ _SI\ _SJ\ _SK\_SL\_SM\_SN\_SO\_0SP\_SQ\_SR\_SS\_ST\_SU\_SV\_SW\ _SX\!_SY\"_SZ\#_S[\$_S\\%_S]\&_S^\'_S_\(_S`\)_E0Sa\*_Sb\*_Sc\,_Sd\._Se\/_Sf\0_Sg\1_Sh\2_Si\3_Sj\-_Sk\-_Sl\6_Sm\7_Sn\8_So\9_Sp\:_Sq\;_E\<\=\>\?\@\ASr.ErBSs\CSt\C4SujrDSv\CSt\C4SwjrEgx)yzz Key sequence definitions for terminal input simulation. These escape sequences follow standard xterm/VT100 conventions. zzzz     zbzczdzfzlztzuzyz.zz[3~zzz[5~z[6~z[2~z[1~z[4~zOPzOQzORzOSz[15~z[17~z[18~z[19~z[20~z[21~z[23~z[24~UpDownRightLeftzC-azC-bzC-czC-dzC-ezC-fzC-gzC-hzC-kzC-lzC-nzC-pzC-rzC-szC-tzC-uzC-wzC-yzC-zzM-bzM-czM-dzM-fzM-lzM-tzM-uzM-yzM-.z M-BackspaceTabEnterReturn BackspaceDeleteHomeEndPageUpPageDownInsertEscapeEscF1F2F3F4F5F6)F7F8F9F10F11F12namereturnc U[;a,[SUS[[R5535e[U$)z Get the escape sequence for a key name. Args: name: Key name (e.g., "Up", "C-a", "M-f", "Enter") Returns: The escape sequence for that key Raises: KeyError: If the key name is not recognized z Unknown key: z. Available keys: )KEYSKeyErrorsortedkeys)r:s T/home/mfwolffe/GithubOrgs/FortranGoingOnForty/fortsh/tests/interactive/utils/keys.pyget_keyrBs; 4tf,>vdiik?R>STUU :r@c2SRSU55$)z Build a sequence of multiple keys. Args: *keys: Key names to combine Returns: Combined escape sequence string Example: key_sequence("C-a", "C-k") # Move to beginning, kill to end c38# UHn[U5v M g7f)N)rB).0ks rA key_sequence..s,t!71::ts)join)r@s rA key_sequencerLs 77,t, ,,rCN)F__doc__ARROW_UP ARROW_DOWN ARROW_RIGHT ARROW_LEFTCTRL_ACTRL_BCTRL_CCTRL_DCTRL_ECTRL_FCTRL_GCTRL_HCTRL_ICTRL_JCTRL_KCTRL_LCTRL_MCTRL_NCTRL_OCTRL_PCTRL_QCTRL_RCTRL_SCTRL_TCTRL_UCTRL_VCTRL_WCTRL_XCTRL_YCTRL_ZALT_BALT_CALT_DALT_FALT_LALT_TALT_UALT_YALT_DOT ALT_BACKSPACETABENTERNEWLINE BACKSPACEESCAPEDELETEHOMEENDPAGE_UP PAGE_DOWNINSERTHOME_ALTEND_ALTr.r/r0r1r2r3r4r5r6r7r8r9r=strrBrLrCrArso                                                C(C JC [ C  J C 6C 6C 6C 6C 6C 6C 6C 6C  6!C" 6#C$ 6%C& 6'C( 6)C* 6+C, 6-C. 6/C0 61C2 63C4 65C: 5;C< 5=C> 5?C@ 5ACB 5CCD 5ECF 5GCH 5ICJ 7KCL=MCR 3SCT UUCV eWCXYCZ f[C\ D]C^ 3_C` gaCb cCd feCf fgCh 6iCn "oCp "qCr "sCt "uCv "wCx "yCz   ECL##$ - - -rC