- '\u001BOB' : '\u001B[B'; break;
- case 45: /* Insert */ ch = '\u001B[2~'; break;
- case 46: /* Delete */ ch = '\u001B[3~'; break;
- case 91: /* Left Window */ return;
- case 92: /* Right Window */ return;
- case 93: /* Select */ return;
- case 96: /* 0 */ ch = '0'; break;
- case 97: /* 1 */ ch = '1'; break;
- case 98: /* 2 */ ch = '2'; break;
- case 99: /* 3 */ ch = '3'; break;
- case 100: /* 4 */ ch = '4'; break;
- case 101: /* 5 */ ch = '5'; break;
- case 102: /* 6 */ ch = '6'; break;
- case 103: /* 7 */ ch = '7'; break;
- case 104: /* 8 */ ch = '8'; break;
- case 105: /* 9 */ ch = '9'; break;
- case 106: /* * */ ch = '*'; break;
- case 107: /* + */ ch = '+'; break;
- case 109: /* - */ ch = '-'; break;
- case 110: /* . */ ch = '.'; break;
- case 111: /* / */ ch = '/'; break;
- case 112: /* F1 */ ch = '\u001BOP'; break;
- case 113: /* F2 */ ch = '\u001BOQ'; break;
- case 114: /* F3 */ ch = '\u001BOR'; break;
- case 115: /* F4 */ ch = '\u001BOS'; break;
- case 116: /* F5 */ ch = '\u001B[15~'; break;
- case 117: /* F6 */ ch = '\u001B[17~'; break;
- case 118: /* F7 */ ch = '\u001B[18~'; break;
- case 119: /* F8 */ ch = '\u001B[19~'; break;
- case 120: /* F9 */ ch = '\u001B[20~'; break;
- case 121: /* F10 */ ch = '\u001B[21~'; break;
- case 122: /* F11 */ ch = '\u001B[23~'; break;
- case 123: /* F12 */ ch = '\u001B[24~'; break;
- case 144: /* Num Lock */ return;
- case 145: /* Scroll Lock */ return;
- default: return;
+ '\u001BOB' : '\u001B[B'; break;
+ case 45: /* Insert */ ch = '\u001B[2~'; break;
+ case 46: /* Delete */ ch = '\u001B[3~'; break;
+ case 91: /* Left Window */ return;
+ case 92: /* Right Window */ return;
+ case 93: /* Select */ return;
+ case 96: /* 0 */ ch = this.applyModifiers(48, event); break;
+ case 97: /* 1 */ ch = this.applyModifiers(49, event); break;
+ case 98: /* 2 */ ch = this.applyModifiers(50, event); break;
+ case 99: /* 3 */ ch = this.applyModifiers(51, event); break;
+ case 100: /* 4 */ ch = this.applyModifiers(52, event); break;
+ case 101: /* 5 */ ch = this.applyModifiers(53, event); break;
+ case 102: /* 6 */ ch = this.applyModifiers(54, event); break;
+ case 103: /* 7 */ ch = this.applyModifiers(55, event); break;
+ case 104: /* 8 */ ch = this.applyModifiers(56, event); break;
+ case 105: /* 9 */ ch = this.applyModifiers(58, event); break;
+ case 106: /* * */ ch = this.applyModifiers(42, event); break;
+ case 107: /* + */ ch = this.applyModifiers(43, event); break;
+ case 109: /* - */ ch = this.applyModifiers(45, event); break;
+ case 110: /* . */ ch = this.applyModifiers(46, event); break;
+ case 111: /* / */ ch = this.applyModifiers(47, event); break;
+ case 112: /* F1 */ ch = '\u001BOP'; break;
+ case 113: /* F2 */ ch = '\u001BOQ'; break;
+ case 114: /* F3 */ ch = '\u001BOR'; break;
+ case 115: /* F4 */ ch = '\u001BOS'; break;
+ case 116: /* F5 */ ch = '\u001B[15~'; break;
+ case 117: /* F6 */ ch = '\u001B[17~'; break;
+ case 118: /* F7 */ ch = '\u001B[18~'; break;
+ case 119: /* F8 */ ch = '\u001B[19~'; break;
+ case 120: /* F9 */ ch = '\u001B[20~'; break;
+ case 121: /* F10 */ ch = '\u001B[21~'; break;
+ case 122: /* F11 */ ch = '\u001B[23~'; break;
+ case 123: /* F12 */ ch = '\u001B[24~'; break;
+ case 144: /* Num Lock */ return;
+ case 145: /* Scroll Lock */ return;
+ case 186: /* ; */ ch = this.applyModifiers(59, event); break;
+ case 187: /* = */ ch = this.applyModifiers(61, event); break;
+ case 188: /* , */ ch = this.applyModifiers(44, event); break;
+ case 189: /* - */ ch = this.applyModifiers(45, event); break;
+ case 190: /* . */ ch = this.applyModifiers(46, event); break;
+ case 191: /* / */ ch = this.applyModifiers(47, event); break;
+ case 192: /* ` */ ch = this.applyModifiers(96, event); break;
+ case 219: /* [ */ ch = this.applyModifiers(91, event); break;
+ case 220: /* \ */ ch = this.applyModifiers(92, event); break;
+ case 221: /* ] */ ch = this.applyModifiers(93, event); break;
+ case 222: /* ' */ ch = this.applyModifiers(39, event); break;
+ default: return;