/* * noVNC: HTML5 VNC client * Copyright (C) 2012 Hirokazu Takahashi * Licensed under MPL 2.0 or any later version (see LICENSE.txt) */ "use strict"; /*jslint white: false */ var Kmap = {}; Kmap.getKeymap = function (kb) { return Kmap.keymaps[kb]; }; Kmap.keymaps = { 'ar': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: true, altgr: false, name: "numbersign" }, 36: { shift: true, altgr: false, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 39: { shift: true, altgr: true, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: true, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: false, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: false, altgr: false, name: "semicolon" }, 60: { shift: true, altgr: false, name: "less" }, 61: { shift: false, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: true, altgr: false, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: true, altgr: true, name: "bracketleft" }, 92: { shift: false, altgr: false, name: "backslash" }, 93: { shift: true, altgr: true, name: "bracketright" }, 94: { shift: true, altgr: false, name: "asciicircum" }, 95: { shift: true, altgr: false, name: "underscore" }, 96: { shift: false, altgr: false, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: true, altgr: false, name: "braceleft" }, 124: { shift: true, altgr: false, name: "bar" }, 125: { shift: true, altgr: false, name: "braceright" }, 126: { shift: true, altgr: true, name: "asciitilde" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 215: { shift: true, altgr: true, name: "multiply" }, 247: { shift: true, altgr: true, name: "division" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'bepo': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: false, altgr: false, name: "quotedbl" }, 35: { shift: true, altgr: false, name: "numbersign" }, 36: { shift: false, altgr: false, name: "dollar" }, 37: { shift: false, altgr: false, name: "percent" }, 38: { shift: false, altgr: true, name: "ampersand" }, 39: { shift: false, altgr: false, name: "apostrophe" }, 40: { shift: false, altgr: false, name: "parenleft" }, 41: { shift: false, altgr: false, name: "parenright" }, 42: { shift: false, altgr: false, name: "asterisk" }, 43: { shift: false, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: false, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: true, altgr: false, name: "semicolon" }, 60: { shift: false, altgr: true, name: "less" }, 61: { shift: false, altgr: false, name: "equal" }, 62: { shift: false, altgr: true, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: false, altgr: false, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: true, name: "bracketleft" }, 92: { shift: false, altgr: true, name: "backslash" }, 93: { shift: false, altgr: true, name: "bracketright" }, 94: { shift: false, altgr: true, name: "asciicircum" }, 95: { shift: false, altgr: true, name: "underscore" }, 96: { shift: true, altgr: false, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: false, altgr: true, name: "braceleft" }, 124: { shift: false, altgr: true, name: "bar" }, 125: { shift: false, altgr: true, name: "braceright" }, 126: { shift: false, altgr: true, name: "asciitilde" }, 160: { shift: true, altgr: false, name: "nobreakspace" }, 161: { shift: false, altgr: true, name: "exclamdown" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 169: { shift: false, altgr: true, name: "copyright" }, 170: { shift: true, altgr: true, name: "ordfeminine" }, 171: { shift: false, altgr: false, name: "guillemotleft" }, 174: { shift: false, altgr: true, name: "registered" }, 181: { shift: false, altgr: true, name: "mu" }, 183: { shift: true, altgr: true, name: "periodcentered" }, 186: { shift: true, altgr: true, name: "masculine" }, 187: { shift: false, altgr: false, name: "guillemotright" }, 191: { shift: false, altgr: true, name: "questiondown" }, 192: { shift: true, altgr: false, name: "Agrave" }, 198: { shift: true, altgr: true, name: "AE" }, 199: { shift: true, altgr: false, name: "Ccedilla" }, 200: { shift: true, altgr: false, name: "Egrave" }, 201: { shift: true, altgr: false, name: "Eacute" }, 202: { shift: true, altgr: false, name: "Ecircumflex" }, 208: { shift: true, altgr: true, name: "ETH" }, 217: { shift: true, altgr: true, name: "Ugrave" }, 222: { shift: true, altgr: true, name: "THORN" }, 223: { shift: false, altgr: true, name: "ssharp" }, 224: { shift: false, altgr: false, name: "agrave" }, 230: { shift: false, altgr: true, name: "ae" }, 231: { shift: false, altgr: false, name: "ccedilla" }, 232: { shift: false, altgr: false, name: "egrave" }, 233: { shift: false, altgr: false, name: "eacute" }, 234: { shift: false, altgr: false, name: "ecircumflex" }, 240: { shift: false, altgr: true, name: "eth" }, 249: { shift: false, altgr: true, name: "ugrave" }, 254: { shift: false, altgr: true, name: "thorn" }, 65104: { shift: false, altgr: true, name: "dead_grave" }, 65105: { shift: false, altgr: true, name: "dead_acute" }, 65106: { shift: false, altgr: false, name: "dead_circumflex" }, 65107: { shift: false, altgr: true, name: "dead_tilde" }, 65111: { shift: false, altgr: true, name: "dead_diaeresis" }, 65114: { shift: false, altgr: true, name: "dead_caron" }, 65115: { shift: false, altgr: true, name: "dead_cedilla" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'da': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: true, altgr: false, name: "numbersign" }, 36: { shift: false, altgr: true, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 39: { shift: false, altgr: false, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: false, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: true, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: true, altgr: false, name: "semicolon" }, 60: { shift: false, altgr: false, name: "less" }, 61: { shift: true, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: false, altgr: true, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: true, name: "bracketleft" }, 92: { shift: false, altgr: true, name: "backslash" }, 93: { shift: false, altgr: true, name: "bracketright" }, 95: { shift: true, altgr: false, name: "underscore" }, 96: { shift: true, altgr: true, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: false, altgr: true, name: "braceleft" }, 124: { shift: false, altgr: true, name: "bar" }, 125: { shift: false, altgr: true, name: "braceright" }, 160: { shift: false, altgr: true, name: "nobreakspace" }, 161: { shift: false, altgr: true, name: "exclamdown" }, 162: { shift: true, altgr: true, name: "cent" }, 163: { shift: false, altgr: true, name: "sterling" }, 164: { shift: true, altgr: false, name: "currency" }, 165: { shift: true, altgr: true, name: "yen" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 167: { shift: true, altgr: false, name: "section" }, 169: { shift: false, altgr: true, name: "copyright" }, 170: { shift: true, altgr: true, name: "ordfeminine" }, 171: { shift: false, altgr: true, name: "guillemotleft" }, 172: { shift: true, altgr: true, name: "notsign" }, 173: { shift: false, altgr: true, name: "hyphen" }, 174: { shift: false, altgr: true, name: "registered" }, 175: { shift: true, altgr: true, name: "macron" }, 176: { shift: true, altgr: true, name: "degree" }, 177: { shift: false, altgr: true, name: "plusminus" }, 178: { shift: true, altgr: true, name: "twosuperior" }, 179: { shift: true, altgr: true, name: "threesuperior" }, 181: { shift: false, altgr: true, name: "mu" }, 182: { shift: true, altgr: true, name: "paragraph" }, 183: { shift: false, altgr: true, name: "periodcentered" }, 185: { shift: true, altgr: true, name: "onesuperior" }, 186: { shift: true, altgr: true, name: "masculine" }, 187: { shift: false, altgr: true, name: "guillemotright" }, 188: { shift: true, altgr: true, name: "onequarter" }, 189: { shift: false, altgr: false, name: "onehalf" }, 190: { shift: false, altgr: true, name: "threequarters" }, 191: { shift: true, altgr: true, name: "questiondown" }, 197: { shift: true, altgr: false, name: "Aring" }, 198: { shift: true, altgr: false, name: "AE" }, 208: { shift: true, altgr: true, name: "ETH" }, 215: { shift: true, altgr: true, name: "multiply" }, 216: { shift: true, altgr: false, name: "Ooblique" }, 222: { shift: true, altgr: true, name: "THORN" }, 223: { shift: false, altgr: true, name: "ssharp" }, 229: { shift: false, altgr: false, name: "aring" }, 230: { shift: false, altgr: false, name: "ae" }, 240: { shift: false, altgr: true, name: "eth" }, 247: { shift: true, altgr: true, name: "division" }, 248: { shift: false, altgr: false, name: "oslash" }, 254: { shift: false, altgr: true, name: "thorn" }, 419: { shift: true, altgr: true, name: "Lstroke" }, 435: { shift: false, altgr: true, name: "lstroke" }, 8364: { shift: false, altgr: true, name: "EuroSign" }, 65104: { shift: true, altgr: false, name: "dead_grave" }, 65105: { shift: false, altgr: false, name: "dead_acute" }, 65106: { shift: true, altgr: false, name: "dead_circumflex" }, 65107: { shift: false, altgr: true, name: "dead_tilde" }, 65110: { shift: true, altgr: true, name: "dead_abovedot" }, 65111: { shift: false, altgr: false, name: "dead_diaeresis" }, 65112: { shift: true, altgr: true, name: "dead_abovering" }, 65113: { shift: false, altgr: true, name: "dead_doubleacute" }, 65114: { shift: true, altgr: true, name: "dead_caron" }, 65115: { shift: false, altgr: true, name: "dead_cedilla" }, 65116: { shift: true, altgr: true, name: "dead_ogonek" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'de': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: false, altgr: false, name: "numbersign" }, 36: { shift: true, altgr: false, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 39: { shift: true, altgr: false, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: false, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: true, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: true, altgr: false, name: "semicolon" }, 60: { shift: false, altgr: false, name: "less" }, 61: { shift: true, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: false, altgr: true, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: true, name: "bracketleft" }, 92: { shift: false, altgr: true, name: "backslash" }, 93: { shift: false, altgr: true, name: "bracketright" }, 94: { shift: false, altgr: false, name: "asciicircum" }, 95: { shift: true, altgr: false, name: "underscore" }, 96: { shift: true, altgr: false, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: false, altgr: true, name: "braceleft" }, 124: { shift: false, altgr: true, name: "bar" }, 125: { shift: false, altgr: true, name: "braceright" }, 126: { shift: false, altgr: true, name: "asciitilde" }, 161: { shift: true, altgr: true, name: "exclamdown" }, 162: { shift: false, altgr: true, name: "cent" }, 163: { shift: true, altgr: true, name: "sterling" }, 164: { shift: true, altgr: true, name: "currency" }, 165: { shift: true, altgr: true, name: "yen" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 167: { shift: true, altgr: false, name: "section" }, 169: { shift: true, altgr: true, name: "copyright" }, 170: { shift: true, altgr: true, name: "ordfeminine" }, 171: { shift: false, altgr: true, name: "guillemotleft" }, 172: { shift: false, altgr: true, name: "notsign" }, 174: { shift: true, altgr: true, name: "registered" }, 176: { shift: true, altgr: false, name: "degree" }, 177: { shift: true, altgr: true, name: "plusminus" }, 178: { shift: false, altgr: true, name: "twosuperior" }, 179: { shift: false, altgr: true, name: "threesuperior" }, 180: { shift: false, altgr: false, name: "acute" }, 181: { shift: false, altgr: true, name: "mu" }, 182: { shift: false, altgr: true, name: "paragraph" }, 183: { shift: false, altgr: true, name: "periodcentered" }, 185: { shift: false, altgr: true, name: "onesuperior" }, 186: { shift: true, altgr: true, name: "masculine" }, 187: { shift: false, altgr: true, name: "guillemotright" }, 188: { shift: false, altgr: true, name: "onequarter" }, 189: { shift: false, altgr: true, name: "onehalf" }, 190: { shift: false, altgr: true, name: "threequarters" }, 191: { shift: true, altgr: true, name: "questiondown" }, 196: { shift: true, altgr: false, name: "Adiaeresis" }, 198: { shift: true, altgr: true, name: "AE" }, 208: { shift: true, altgr: true, name: "ETH" }, 214: { shift: true, altgr: false, name: "Odiaeresis" }, 215: { shift: true, altgr: true, name: "multiply" }, 216: { shift: true, altgr: true, name: "Ooblique" }, 220: { shift: true, altgr: false, name: "Udiaeresis" }, 222: { shift: true, altgr: true, name: "THORN" }, 223: { shift: false, altgr: false, name: "ssharp" }, 228: { shift: false, altgr: false, name: "adiaeresis" }, 230: { shift: false, altgr: true, name: "ae" }, 240: { shift: false, altgr: true, name: "eth" }, 246: { shift: false, altgr: false, name: "odiaeresis" }, 247: { shift: true, altgr: true, name: "division" }, 248: { shift: false, altgr: true, name: "oslash" }, 252: { shift: false, altgr: false, name: "udiaeresis" }, 254: { shift: false, altgr: true, name: "thorn" }, 8364: { shift: false, altgr: true, name: "EuroSign" }, 65104: { shift: true, altgr: false, name: "dead_grave" }, 65105: { shift: false, altgr: false, name: "dead_acute" }, 65106: { shift: false, altgr: false, name: "dead_circumflex" }, 65107: { shift: false, altgr: true, name: "dead_tilde" }, 65108: { shift: true, altgr: true, name: "dead_macron" }, 65109: { shift: true, altgr: true, name: "dead_breve" }, 65110: { shift: true, altgr: true, name: "dead_abovedot" }, 65111: { shift: false, altgr: true, name: "dead_diaeresis" }, 65112: { shift: true, altgr: true, name: "dead_abovering" }, 65113: { shift: false, altgr: true, name: "dead_doubleacute" }, 65114: { shift: true, altgr: true, name: "dead_caron" }, 65115: { shift: false, altgr: true, name: "dead_cedilla" }, 65116: { shift: true, altgr: true, name: "dead_ogonek" }, 65120: { shift: false, altgr: true, name: "dead_belowdot" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'de-ch': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: false, altgr: true, name: "numbersign" }, 36: { shift: false, altgr: false, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 39: { shift: false, altgr: false, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: true, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: true, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: true, altgr: false, name: "semicolon" }, 60: { shift: false, altgr: false, name: "less" }, 61: { shift: true, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: false, altgr: true, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: true, name: "bracketleft" }, 92: { shift: false, altgr: true, name: "backslash" }, 93: { shift: false, altgr: true, name: "bracketright" }, 95: { shift: true, altgr: false, name: "underscore" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: false, altgr: true, name: "braceleft" }, 124: { shift: false, altgr: true, name: "bar" }, 125: { shift: false, altgr: true, name: "braceright" }, 162: { shift: false, altgr: true, name: "cent" }, 163: { shift: true, altgr: false, name: "sterling" }, 166: { shift: false, altgr: true, name: "brokenbar" }, 167: { shift: false, altgr: false, name: "section" }, 171: { shift: false, altgr: true, name: "guillemotleft" }, 172: { shift: false, altgr: true, name: "notsign" }, 176: { shift: true, altgr: false, name: "degree" }, 181: { shift: false, altgr: true, name: "mu" }, 182: { shift: false, altgr: true, name: "paragraph" }, 187: { shift: false, altgr: true, name: "guillemotright" }, 188: { shift: false, altgr: true, name: "onequarter" }, 189: { shift: false, altgr: true, name: "onehalf" }, 223: { shift: false, altgr: true, name: "ssharp" }, 224: { shift: true, altgr: false, name: "agrave" }, 228: { shift: false, altgr: false, name: "adiaeresis" }, 230: { shift: false, altgr: true, name: "ae" }, 231: { shift: true, altgr: false, name: "ccedilla" }, 232: { shift: true, altgr: false, name: "egrave" }, 233: { shift: true, altgr: false, name: "eacute" }, 240: { shift: false, altgr: true, name: "eth" }, 246: { shift: false, altgr: false, name: "odiaeresis" }, 248: { shift: false, altgr: true, name: "oslash" }, 252: { shift: false, altgr: false, name: "udiaeresis" }, 254: { shift: false, altgr: true, name: "thorn" }, 435: { shift: false, altgr: true, name: "lstroke" }, 8364: { shift: false, altgr: true, name: "EuroSign" }, 65104: { shift: true, altgr: false, name: "dead_grave" }, 65105: { shift: false, altgr: true, name: "dead_acute" }, 65106: { shift: false, altgr: false, name: "dead_circumflex" }, 65107: { shift: false, altgr: true, name: "dead_tilde" }, 65111: { shift: false, altgr: false, name: "dead_diaeresis" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'en-gb': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: false, altgr: false, name: "numbersign" }, 36: { shift: true, altgr: false, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 39: { shift: false, altgr: false, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: true, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: false, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: false, altgr: false, name: "semicolon" }, 60: { shift: true, altgr: false, name: "less" }, 61: { shift: false, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: true, altgr: false, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: false, name: "bracketleft" }, 92: { shift: false, altgr: false, name: "backslash" }, 93: { shift: false, altgr: false, name: "bracketright" }, 94: { shift: true, altgr: false, name: "asciicircum" }, 95: { shift: true, altgr: false, name: "underscore" }, 96: { shift: false, altgr: false, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: true, altgr: false, name: "braceleft" }, 124: { shift: true, altgr: false, name: "bar" }, 125: { shift: true, altgr: false, name: "braceright" }, 126: { shift: true, altgr: false, name: "asciitilde" }, 161: { shift: true, altgr: true, name: "exclamdown" }, 162: { shift: false, altgr: true, name: "cent" }, 163: { shift: true, altgr: false, name: "sterling" }, 165: { shift: true, altgr: true, name: "yen" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 167: { shift: true, altgr: true, name: "section" }, 169: { shift: true, altgr: true, name: "copyright" }, 170: { shift: true, altgr: true, name: "ordfeminine" }, 171: { shift: false, altgr: true, name: "guillemotleft" }, 172: { shift: true, altgr: false, name: "notsign" }, 174: { shift: true, altgr: true, name: "registered" }, 176: { shift: true, altgr: true, name: "degree" }, 177: { shift: true, altgr: true, name: "plusminus" }, 178: { shift: false, altgr: true, name: "twosuperior" }, 179: { shift: false, altgr: true, name: "threesuperior" }, 181: { shift: false, altgr: true, name: "mu" }, 182: { shift: false, altgr: true, name: "paragraph" }, 183: { shift: false, altgr: true, name: "periodcentered" }, 185: { shift: false, altgr: true, name: "onesuperior" }, 186: { shift: true, altgr: true, name: "masculine" }, 187: { shift: false, altgr: true, name: "guillemotright" }, 189: { shift: false, altgr: true, name: "onehalf" }, 190: { shift: false, altgr: true, name: "threequarters" }, 191: { shift: true, altgr: true, name: "questiondown" }, 198: { shift: true, altgr: true, name: "AE" }, 208: { shift: true, altgr: true, name: "ETH" }, 215: { shift: true, altgr: true, name: "multiply" }, 216: { shift: true, altgr: true, name: "Ooblique" }, 222: { shift: true, altgr: true, name: "THORN" }, 223: { shift: false, altgr: true, name: "ssharp" }, 230: { shift: false, altgr: true, name: "ae" }, 240: { shift: false, altgr: true, name: "eth" }, 247: { shift: true, altgr: true, name: "division" }, 248: { shift: false, altgr: true, name: "oslash" }, 254: { shift: false, altgr: true, name: "thorn" }, 419: { shift: true, altgr: true, name: "Lstroke" }, 435: { shift: false, altgr: true, name: "lstroke" }, 8364: { shift: false, altgr: true, name: "EuroSign" }, 65104: { shift: false, altgr: true, name: "dead_grave" }, 65105: { shift: false, altgr: true, name: "dead_acute" }, 65106: { shift: false, altgr: true, name: "dead_circumflex" }, 65107: { shift: false, altgr: true, name: "dead_tilde" }, 65108: { shift: true, altgr: true, name: "dead_macron" }, 65109: { shift: true, altgr: true, name: "dead_breve" }, 65110: { shift: true, altgr: true, name: "dead_abovedot" }, 65111: { shift: false, altgr: true, name: "dead_diaeresis" }, 65112: { shift: true, altgr: true, name: "dead_abovering" }, 65113: { shift: true, altgr: true, name: "dead_doubleacute" }, 65114: { shift: true, altgr: true, name: "dead_caron" }, 65115: { shift: false, altgr: true, name: "dead_cedilla" }, 65116: { shift: true, altgr: true, name: "dead_ogonek" }, 65120: { shift: false, altgr: true, name: "dead_belowdot" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'en-us': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: true, altgr: false, name: "numbersign" }, 36: { shift: true, altgr: false, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 39: { shift: false, altgr: false, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: true, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: false, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: false, altgr: false, name: "semicolon" }, 60: { shift: true, altgr: false, name: "less" }, 61: { shift: false, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: true, altgr: false, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: false, name: "bracketleft" }, 92: { shift: false, altgr: false, name: "backslash" }, 93: { shift: false, altgr: false, name: "bracketright" }, 94: { shift: true, altgr: false, name: "asciicircum" }, 95: { shift: true, altgr: false, name: "underscore" }, 96: { shift: false, altgr: false, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: true, altgr: false, name: "braceleft" }, 124: { shift: true, altgr: false, name: "bar" }, 125: { shift: true, altgr: false, name: "braceright" }, 126: { shift: true, altgr: false, name: "asciitilde" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'es': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: false, altgr: true, name: "numbersign" }, 36: { shift: true, altgr: false, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 39: { shift: false, altgr: false, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: false, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: true, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: true, altgr: false, name: "semicolon" }, 60: { shift: false, altgr: false, name: "less" }, 61: { shift: true, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: false, altgr: true, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: true, name: "bracketleft" }, 92: { shift: false, altgr: true, name: "backslash" }, 93: { shift: false, altgr: true, name: "bracketright" }, 95: { shift: true, altgr: false, name: "underscore" }, 96: { shift: true, altgr: true, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: false, altgr: true, name: "braceleft" }, 124: { shift: false, altgr: true, name: "bar" }, 125: { shift: false, altgr: true, name: "braceright" }, 126: { shift: false, altgr: true, name: "asciitilde" }, 161: { shift: false, altgr: false, name: "exclamdown" }, 162: { shift: false, altgr: true, name: "cent" }, 163: { shift: true, altgr: true, name: "sterling" }, 165: { shift: true, altgr: true, name: "yen" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 167: { shift: true, altgr: true, name: "section" }, 169: { shift: true, altgr: true, name: "copyright" }, 170: { shift: true, altgr: false, name: "ordfeminine" }, 171: { shift: false, altgr: true, name: "guillemotleft" }, 172: { shift: false, altgr: true, name: "notsign" }, 174: { shift: true, altgr: true, name: "registered" }, 176: { shift: true, altgr: true, name: "degree" }, 177: { shift: true, altgr: true, name: "plusminus" }, 181: { shift: false, altgr: true, name: "mu" }, 182: { shift: false, altgr: true, name: "paragraph" }, 183: { shift: true, altgr: false, name: "periodcentered" }, 186: { shift: false, altgr: false, name: "masculine" }, 187: { shift: false, altgr: true, name: "guillemotright" }, 189: { shift: false, altgr: true, name: "onehalf" }, 191: { shift: true, altgr: false, name: "questiondown" }, 198: { shift: true, altgr: true, name: "AE" }, 199: { shift: true, altgr: false, name: "Ccedilla" }, 208: { shift: true, altgr: true, name: "ETH" }, 209: { shift: true, altgr: false, name: "Ntilde" }, 215: { shift: true, altgr: true, name: "multiply" }, 216: { shift: true, altgr: true, name: "Ooblique" }, 222: { shift: true, altgr: true, name: "THORN" }, 223: { shift: false, altgr: true, name: "ssharp" }, 230: { shift: false, altgr: true, name: "ae" }, 231: { shift: false, altgr: false, name: "ccedilla" }, 240: { shift: false, altgr: true, name: "eth" }, 241: { shift: false, altgr: false, name: "ntilde" }, 247: { shift: true, altgr: true, name: "division" }, 248: { shift: false, altgr: true, name: "oslash" }, 254: { shift: false, altgr: true, name: "thorn" }, 419: { shift: true, altgr: true, name: "Lstroke" }, 435: { shift: false, altgr: true, name: "lstroke" }, 8364: { shift: false, altgr: true, name: "EuroSign" }, 65104: { shift: false, altgr: false, name: "dead_grave" }, 65105: { shift: false, altgr: false, name: "dead_acute" }, 65106: { shift: true, altgr: false, name: "dead_circumflex" }, 65108: { shift: true, altgr: true, name: "dead_macron" }, 65109: { shift: true, altgr: true, name: "dead_breve" }, 65110: { shift: true, altgr: true, name: "dead_abovedot" }, 65111: { shift: true, altgr: false, name: "dead_diaeresis" }, 65112: { shift: true, altgr: true, name: "dead_abovering" }, 65113: { shift: true, altgr: true, name: "dead_doubleacute" }, 65120: { shift: false, altgr: true, name: "dead_belowdot" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'et': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: true, altgr: false, name: "numbersign" }, 36: { shift: false, altgr: true, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 39: { shift: false, altgr: false, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: false, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: true, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: true, altgr: false, name: "semicolon" }, 60: { shift: false, altgr: false, name: "less" }, 61: { shift: true, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: false, altgr: true, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: true, name: "bracketleft" }, 92: { shift: false, altgr: true, name: "backslash" }, 93: { shift: false, altgr: true, name: "bracketright" }, 94: { shift: false, altgr: true, name: "asciicircum" }, 95: { shift: true, altgr: false, name: "underscore" }, 96: { shift: true, altgr: false, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: false, altgr: true, name: "braceleft" }, 124: { shift: false, altgr: true, name: "bar" }, 125: { shift: false, altgr: true, name: "braceright" }, 163: { shift: false, altgr: true, name: "sterling" }, 164: { shift: true, altgr: false, name: "currency" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 167: { shift: false, altgr: true, name: "section" }, 180: { shift: false, altgr: false, name: "acute" }, 189: { shift: false, altgr: true, name: "onehalf" }, 196: { shift: true, altgr: false, name: "Adiaeresis" }, 213: { shift: true, altgr: false, name: "Otilde" }, 214: { shift: true, altgr: false, name: "Odiaeresis" }, 220: { shift: true, altgr: false, name: "Udiaeresis" }, 228: { shift: false, altgr: false, name: "adiaeresis" }, 245: { shift: false, altgr: false, name: "otilde" }, 246: { shift: false, altgr: false, name: "odiaeresis" }, 252: { shift: false, altgr: false, name: "udiaeresis" }, 8364: { shift: false, altgr: true, name: "EuroSign" }, 65104: { shift: true, altgr: false, name: "dead_grave" }, 65105: { shift: false, altgr: false, name: "dead_acute" }, 65107: { shift: true, altgr: false, name: "dead_tilde" }, 65114: { shift: false, altgr: false, name: "dead_caron" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'fi': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: true, altgr: false, name: "numbersign" }, 36: { shift: false, altgr: true, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: true, name: "ampersand" }, 39: { shift: true, altgr: true, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: false, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: true, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: true, altgr: false, name: "semicolon" }, 60: { shift: true, altgr: true, name: "less" }, 61: { shift: true, altgr: false, name: "equal" }, 62: { shift: true, altgr: true, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: false, altgr: true, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: true, name: "bracketleft" }, 92: { shift: false, altgr: true, name: "backslash" }, 93: { shift: false, altgr: true, name: "bracketright" }, 95: { shift: true, altgr: false, name: "underscore" }, 96: { shift: true, altgr: true, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: false, altgr: true, name: "braceleft" }, 124: { shift: false, altgr: true, name: "bar" }, 125: { shift: false, altgr: true, name: "braceright" }, 160: { shift: false, altgr: true, name: "nobreakspace" }, 161: { shift: false, altgr: true, name: "exclamdown" }, 162: { shift: true, altgr: true, name: "cent" }, 163: { shift: false, altgr: true, name: "sterling" }, 164: { shift: true, altgr: false, name: "currency" }, 165: { shift: true, altgr: true, name: "yen" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 167: { shift: false, altgr: false, name: "section" }, 169: { shift: false, altgr: true, name: "copyright" }, 170: { shift: true, altgr: true, name: "ordfeminine" }, 171: { shift: false, altgr: true, name: "guillemotleft" }, 172: { shift: true, altgr: true, name: "notsign" }, 173: { shift: false, altgr: true, name: "hyphen" }, 174: { shift: false, altgr: true, name: "registered" }, 175: { shift: true, altgr: true, name: "macron" }, 176: { shift: true, altgr: true, name: "degree" }, 177: { shift: false, altgr: true, name: "plusminus" }, 178: { shift: true, altgr: true, name: "twosuperior" }, 179: { shift: true, altgr: true, name: "threesuperior" }, 180: { shift: false, altgr: true, name: "acute" }, 181: { shift: false, altgr: true, name: "mu" }, 182: { shift: false, altgr: true, name: "paragraph" }, 183: { shift: false, altgr: true, name: "periodcentered" }, 185: { shift: true, altgr: true, name: "onesuperior" }, 186: { shift: true, altgr: true, name: "masculine" }, 187: { shift: false, altgr: true, name: "guillemotright" }, 188: { shift: true, altgr: true, name: "onequarter" }, 189: { shift: true, altgr: false, name: "onehalf" }, 190: { shift: true, altgr: true, name: "threequarters" }, 191: { shift: true, altgr: true, name: "questiondown" }, 196: { shift: true, altgr: false, name: "Adiaeresis" }, 197: { shift: true, altgr: false, name: "Aring" }, 198: { shift: true, altgr: true, name: "AE" }, 208: { shift: true, altgr: true, name: "ETH" }, 214: { shift: true, altgr: false, name: "Odiaeresis" }, 215: { shift: true, altgr: true, name: "multiply" }, 216: { shift: true, altgr: true, name: "Ooblique" }, 222: { shift: true, altgr: true, name: "THORN" }, 223: { shift: false, altgr: true, name: "ssharp" }, 228: { shift: false, altgr: false, name: "adiaeresis" }, 229: { shift: false, altgr: false, name: "aring" }, 230: { shift: false, altgr: true, name: "ae" }, 240: { shift: false, altgr: true, name: "eth" }, 246: { shift: false, altgr: false, name: "odiaeresis" }, 247: { shift: true, altgr: true, name: "division" }, 248: { shift: false, altgr: true, name: "oslash" }, 254: { shift: false, altgr: true, name: "thorn" }, 419: { shift: true, altgr: true, name: "Lstroke" }, 435: { shift: false, altgr: true, name: "lstroke" }, 8364: { shift: false, altgr: true, name: "EuroSign" }, 65104: { shift: true, altgr: false, name: "dead_grave" }, 65105: { shift: false, altgr: false, name: "dead_acute" }, 65106: { shift: true, altgr: false, name: "dead_circumflex" }, 65107: { shift: false, altgr: true, name: "dead_tilde" }, 65110: { shift: true, altgr: true, name: "dead_abovedot" }, 65111: { shift: false, altgr: false, name: "dead_diaeresis" }, 65112: { shift: true, altgr: true, name: "dead_abovering" }, 65114: { shift: true, altgr: true, name: "dead_caron" }, 65115: { shift: false, altgr: true, name: "dead_cedilla" }, 65116: { shift: true, altgr: true, name: "dead_ogonek" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'fo': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: true, altgr: false, name: "numbersign" }, 36: { shift: false, altgr: true, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 39: { shift: false, altgr: false, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: false, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: true, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: true, altgr: false, name: "semicolon" }, 60: { shift: false, altgr: false, name: "less" }, 61: { shift: true, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: false, altgr: true, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: true, name: "bracketleft" }, 92: { shift: false, altgr: true, name: "backslash" }, 93: { shift: false, altgr: true, name: "bracketright" }, 95: { shift: true, altgr: false, name: "underscore" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: false, altgr: true, name: "braceleft" }, 124: { shift: false, altgr: true, name: "bar" }, 125: { shift: false, altgr: true, name: "braceright" }, 126: { shift: false, altgr: true, name: "asciitilde" }, 163: { shift: false, altgr: true, name: "sterling" }, 164: { shift: true, altgr: false, name: "currency" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 167: { shift: true, altgr: false, name: "section" }, 177: { shift: false, altgr: true, name: "plusminus" }, 189: { shift: false, altgr: false, name: "onehalf" }, 197: { shift: true, altgr: false, name: "Aring" }, 198: { shift: true, altgr: false, name: "AE" }, 208: { shift: true, altgr: false, name: "ETH" }, 216: { shift: true, altgr: false, name: "Ooblique" }, 229: { shift: false, altgr: false, name: "aring" }, 230: { shift: false, altgr: false, name: "ae" }, 240: { shift: false, altgr: false, name: "eth" }, 248: { shift: false, altgr: false, name: "oslash" }, 8364: { shift: false, altgr: true, name: "EuroSign" }, 65105: { shift: false, altgr: false, name: "dead_acute" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'fr': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: false, altgr: false, name: "exclam" }, 34: { shift: false, altgr: false, name: "quotedbl" }, 35: { shift: false, altgr: true, name: "numbersign" }, 36: { shift: false, altgr: false, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: false, altgr: false, name: "ampersand" }, 39: { shift: false, altgr: false, name: "apostrophe" }, 40: { shift: false, altgr: false, name: "parenleft" }, 41: { shift: false, altgr: false, name: "parenright" }, 42: { shift: false, altgr: false, name: "asterisk" }, 43: { shift: true, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: true, altgr: false, name: "period" }, 47: { shift: true, altgr: false, name: "slash" }, 48: { shift: true, altgr: false, name: "0" }, 49: { shift: true, altgr: false, name: "1" }, 50: { shift: true, altgr: false, name: "2" }, 51: { shift: true, altgr: false, name: "3" }, 52: { shift: true, altgr: false, name: "4" }, 53: { shift: true, altgr: false, name: "5" }, 54: { shift: true, altgr: false, name: "6" }, 55: { shift: true, altgr: false, name: "7" }, 56: { shift: true, altgr: false, name: "8" }, 57: { shift: true, altgr: false, name: "9" }, 58: { shift: false, altgr: false, name: "colon" }, 59: { shift: false, altgr: false, name: "semicolon" }, 60: { shift: false, altgr: false, name: "less" }, 61: { shift: false, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: false, altgr: true, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: true, name: "bracketleft" }, 92: { shift: false, altgr: true, name: "backslash" }, 93: { shift: false, altgr: true, name: "bracketright" }, 94: { shift: false, altgr: true, name: "asciicircum" }, 95: { shift: false, altgr: false, name: "underscore" }, 96: { shift: false, altgr: true, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: false, altgr: true, name: "braceleft" }, 124: { shift: false, altgr: true, name: "bar" }, 125: { shift: false, altgr: true, name: "braceright" }, 126: { shift: false, altgr: true, name: "asciitilde" }, 161: { shift: true, altgr: true, name: "exclamdown" }, 162: { shift: false, altgr: true, name: "cent" }, 163: { shift: true, altgr: false, name: "sterling" }, 164: { shift: false, altgr: true, name: "currency" }, 165: { shift: true, altgr: true, name: "yen" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 167: { shift: true, altgr: false, name: "section" }, 169: { shift: true, altgr: true, name: "copyright" }, 170: { shift: true, altgr: true, name: "ordfeminine" }, 171: { shift: false, altgr: true, name: "guillemotleft" }, 172: { shift: false, altgr: true, name: "notsign" }, 174: { shift: true, altgr: true, name: "registered" }, 176: { shift: true, altgr: false, name: "degree" }, 177: { shift: true, altgr: true, name: "plusminus" }, 178: { shift: false, altgr: false, name: "twosuperior" }, 181: { shift: true, altgr: false, name: "mu" }, 182: { shift: false, altgr: true, name: "paragraph" }, 183: { shift: false, altgr: true, name: "periodcentered" }, 185: { shift: false, altgr: true, name: "onesuperior" }, 186: { shift: true, altgr: true, name: "masculine" }, 187: { shift: false, altgr: true, name: "guillemotright" }, 191: { shift: true, altgr: true, name: "questiondown" }, 198: { shift: true, altgr: true, name: "AE" }, 208: { shift: true, altgr: true, name: "ETH" }, 215: { shift: true, altgr: true, name: "multiply" }, 216: { shift: true, altgr: true, name: "Ooblique" }, 222: { shift: true, altgr: true, name: "THORN" }, 223: { shift: false, altgr: true, name: "ssharp" }, 224: { shift: false, altgr: false, name: "agrave" }, 230: { shift: false, altgr: true, name: "ae" }, 231: { shift: false, altgr: false, name: "ccedilla" }, 232: { shift: false, altgr: false, name: "egrave" }, 233: { shift: false, altgr: false, name: "eacute" }, 240: { shift: false, altgr: true, name: "eth" }, 247: { shift: true, altgr: true, name: "division" }, 248: { shift: false, altgr: true, name: "oslash" }, 249: { shift: false, altgr: false, name: "ugrave" }, 254: { shift: false, altgr: true, name: "thorn" }, 419: { shift: true, altgr: true, name: "Lstroke" }, 435: { shift: false, altgr: true, name: "lstroke" }, 8364: { shift: false, altgr: true, name: "EuroSign" }, 65104: { shift: false, altgr: true, name: "dead_grave" }, 65105: { shift: false, altgr: true, name: "dead_acute" }, 65106: { shift: false, altgr: false, name: "dead_circumflex" }, 65108: { shift: true, altgr: true, name: "dead_macron" }, 65109: { shift: true, altgr: true, name: "dead_breve" }, 65110: { shift: true, altgr: true, name: "dead_abovedot" }, 65111: { shift: true, altgr: false, name: "dead_diaeresis" }, 65112: { shift: true, altgr: true, name: "dead_abovering" }, 65113: { shift: true, altgr: true, name: "dead_doubleacute" }, 65114: { shift: true, altgr: true, name: "dead_caron" }, 65116: { shift: true, altgr: true, name: "dead_ogonek" }, 65120: { shift: false, altgr: true, name: "dead_belowdot" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'fr-be': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: false, altgr: false, name: "exclam" }, 34: { shift: false, altgr: false, name: "quotedbl" }, 35: { shift: false, altgr: true, name: "numbersign" }, 36: { shift: false, altgr: false, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: false, altgr: false, name: "ampersand" }, 39: { shift: false, altgr: false, name: "apostrophe" }, 40: { shift: false, altgr: false, name: "parenleft" }, 41: { shift: false, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: true, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: true, altgr: false, name: "period" }, 47: { shift: true, altgr: false, name: "slash" }, 48: { shift: true, altgr: false, name: "0" }, 49: { shift: true, altgr: false, name: "1" }, 50: { shift: true, altgr: false, name: "2" }, 51: { shift: true, altgr: false, name: "3" }, 52: { shift: true, altgr: false, name: "4" }, 53: { shift: true, altgr: false, name: "5" }, 54: { shift: true, altgr: false, name: "6" }, 55: { shift: true, altgr: false, name: "7" }, 56: { shift: true, altgr: false, name: "8" }, 57: { shift: true, altgr: false, name: "9" }, 58: { shift: false, altgr: false, name: "colon" }, 59: { shift: false, altgr: false, name: "semicolon" }, 60: { shift: false, altgr: false, name: "less" }, 61: { shift: false, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: false, altgr: true, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: true, name: "bracketleft" }, 92: { shift: false, altgr: true, name: "backslash" }, 93: { shift: false, altgr: true, name: "bracketright" }, 94: { shift: false, altgr: true, name: "asciicircum" }, 95: { shift: true, altgr: false, name: "underscore" }, 96: { shift: true, altgr: true, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: false, altgr: true, name: "braceleft" }, 124: { shift: false, altgr: true, name: "bar" }, 125: { shift: false, altgr: true, name: "braceright" }, 161: { shift: true, altgr: true, name: "exclamdown" }, 162: { shift: false, altgr: true, name: "cent" }, 163: { shift: true, altgr: false, name: "sterling" }, 165: { shift: true, altgr: true, name: "yen" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 167: { shift: false, altgr: false, name: "section" }, 169: { shift: true, altgr: true, name: "copyright" }, 170: { shift: true, altgr: true, name: "ordfeminine" }, 171: { shift: false, altgr: true, name: "guillemotleft" }, 172: { shift: false, altgr: true, name: "notsign" }, 174: { shift: true, altgr: true, name: "registered" }, 176: { shift: true, altgr: false, name: "degree" }, 177: { shift: true, altgr: true, name: "plusminus" }, 178: { shift: false, altgr: false, name: "twosuperior" }, 179: { shift: true, altgr: false, name: "threesuperior" }, 181: { shift: false, altgr: false, name: "mu" }, 182: { shift: false, altgr: true, name: "paragraph" }, 183: { shift: false, altgr: true, name: "periodcentered" }, 186: { shift: true, altgr: true, name: "masculine" }, 187: { shift: false, altgr: true, name: "guillemotright" }, 188: { shift: false, altgr: true, name: "onequarter" }, 189: { shift: false, altgr: true, name: "onehalf" }, 191: { shift: true, altgr: true, name: "questiondown" }, 198: { shift: true, altgr: true, name: "AE" }, 208: { shift: true, altgr: true, name: "ETH" }, 215: { shift: true, altgr: true, name: "multiply" }, 216: { shift: true, altgr: true, name: "Ooblique" }, 222: { shift: true, altgr: true, name: "THORN" }, 223: { shift: false, altgr: true, name: "ssharp" }, 224: { shift: false, altgr: false, name: "agrave" }, 230: { shift: false, altgr: true, name: "ae" }, 231: { shift: false, altgr: false, name: "ccedilla" }, 232: { shift: false, altgr: false, name: "egrave" }, 233: { shift: false, altgr: false, name: "eacute" }, 240: { shift: false, altgr: true, name: "eth" }, 247: { shift: true, altgr: true, name: "division" }, 248: { shift: false, altgr: true, name: "oslash" }, 249: { shift: false, altgr: false, name: "ugrave" }, 254: { shift: false, altgr: true, name: "thorn" }, 419: { shift: true, altgr: true, name: "Lstroke" }, 435: { shift: false, altgr: true, name: "lstroke" }, 8364: { shift: false, altgr: true, name: "EuroSign" }, 65104: { shift: false, altgr: true, name: "dead_grave" }, 65105: { shift: false, altgr: true, name: "dead_acute" }, 65106: { shift: false, altgr: false, name: "dead_circumflex" }, 65107: { shift: false, altgr: true, name: "dead_tilde" }, 65108: { shift: true, altgr: true, name: "dead_macron" }, 65109: { shift: true, altgr: true, name: "dead_breve" }, 65110: { shift: true, altgr: true, name: "dead_abovedot" }, 65111: { shift: true, altgr: false, name: "dead_diaeresis" }, 65112: { shift: true, altgr: true, name: "dead_abovering" }, 65113: { shift: true, altgr: true, name: "dead_doubleacute" }, 65114: { shift: true, altgr: true, name: "dead_caron" }, 65115: { shift: false, altgr: true, name: "dead_cedilla" }, 65116: { shift: true, altgr: true, name: "dead_ogonek" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'fr-ca': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 36: { shift: true, altgr: false, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: true, altgr: false, name: "plus" }, 47: { shift: true, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 60: { shift: false, altgr: false, name: "less" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: false, altgr: true, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: true, name: "bracketleft" }, 92: { shift: false, altgr: true, name: "backslash" }, 93: { shift: false, altgr: true, name: "bracketright" }, 95: { shift: true, altgr: false, name: "underscore" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: false, altgr: true, name: "braceleft" }, 124: { shift: true, altgr: false, name: "bar" }, 125: { shift: false, altgr: true, name: "braceright" }, 126: { shift: false, altgr: true, name: "asciitilde" }, 162: { shift: false, altgr: true, name: "cent" }, 163: { shift: false, altgr: true, name: "sterling" }, 164: { shift: false, altgr: true, name: "currency" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 167: { shift: false, altgr: true, name: "section" }, 171: { shift: false, altgr: false, name: "guillemotleft" }, 172: { shift: false, altgr: true, name: "notsign" }, 176: { shift: false, altgr: true, name: "degree" }, 177: { shift: false, altgr: true, name: "plusminus" }, 178: { shift: false, altgr: true, name: "twosuperior" }, 179: { shift: false, altgr: true, name: "threesuperior" }, 181: { shift: false, altgr: true, name: "mu" }, 182: { shift: false, altgr: true, name: "paragraph" }, 187: { shift: true, altgr: false, name: "guillemotright" }, 188: { shift: false, altgr: true, name: "onequarter" }, 189: { shift: false, altgr: true, name: "onehalf" }, 190: { shift: false, altgr: true, name: "threequarters" }, 233: { shift: false, altgr: false, name: "eacute" }, 65104: { shift: false, altgr: false, name: "dead_grave" }, 65105: { shift: false, altgr: true, name: "dead_acute" }, 65106: { shift: true, altgr: false, name: "dead_circumflex" }, 65111: { shift: true, altgr: false, name: "dead_diaeresis" }, 65115: { shift: false, altgr: false, name: "dead_cedilla" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'fr-ch': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: false, altgr: false, name: "numbersign" }, 36: { shift: true, altgr: false, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 39: { shift: true, altgr: false, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: false, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: true, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: true, altgr: false, name: "semicolon" }, 60: { shift: false, altgr: false, name: "less" }, 61: { shift: true, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: false, altgr: true, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: true, name: "bracketleft" }, 92: { shift: false, altgr: true, name: "backslash" }, 93: { shift: false, altgr: true, name: "bracketright" }, 94: { shift: false, altgr: false, name: "asciicircum" }, 95: { shift: true, altgr: false, name: "underscore" }, 96: { shift: true, altgr: false, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: false, altgr: true, name: "braceleft" }, 124: { shift: false, altgr: true, name: "bar" }, 125: { shift: false, altgr: true, name: "braceright" }, 126: { shift: false, altgr: true, name: "asciitilde" }, 161: { shift: true, altgr: true, name: "exclamdown" }, 162: { shift: false, altgr: true, name: "cent" }, 163: { shift: true, altgr: true, name: "sterling" }, 164: { shift: true, altgr: true, name: "currency" }, 165: { shift: true, altgr: true, name: "yen" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 167: { shift: true, altgr: false, name: "section" }, 169: { shift: true, altgr: true, name: "copyright" }, 170: { shift: true, altgr: true, name: "ordfeminine" }, 171: { shift: false, altgr: true, name: "guillemotleft" }, 172: { shift: false, altgr: true, name: "notsign" }, 174: { shift: true, altgr: true, name: "registered" }, 176: { shift: true, altgr: false, name: "degree" }, 177: { shift: true, altgr: true, name: "plusminus" }, 178: { shift: false, altgr: true, name: "twosuperior" }, 179: { shift: false, altgr: true, name: "threesuperior" }, 180: { shift: false, altgr: false, name: "acute" }, 181: { shift: false, altgr: true, name: "mu" }, 182: { shift: false, altgr: true, name: "paragraph" }, 183: { shift: false, altgr: true, name: "periodcentered" }, 185: { shift: false, altgr: true, name: "onesuperior" }, 186: { shift: true, altgr: true, name: "masculine" }, 187: { shift: false, altgr: true, name: "guillemotright" }, 188: { shift: false, altgr: true, name: "onequarter" }, 189: { shift: false, altgr: true, name: "onehalf" }, 190: { shift: false, altgr: true, name: "threequarters" }, 191: { shift: true, altgr: true, name: "questiondown" }, 196: { shift: true, altgr: false, name: "Adiaeresis" }, 198: { shift: true, altgr: true, name: "AE" }, 208: { shift: true, altgr: true, name: "ETH" }, 214: { shift: true, altgr: false, name: "Odiaeresis" }, 215: { shift: true, altgr: true, name: "multiply" }, 216: { shift: true, altgr: true, name: "Ooblique" }, 220: { shift: true, altgr: false, name: "Udiaeresis" }, 222: { shift: true, altgr: true, name: "THORN" }, 223: { shift: false, altgr: false, name: "ssharp" }, 228: { shift: false, altgr: false, name: "adiaeresis" }, 230: { shift: false, altgr: true, name: "ae" }, 240: { shift: false, altgr: true, name: "eth" }, 246: { shift: false, altgr: false, name: "odiaeresis" }, 247: { shift: true, altgr: true, name: "division" }, 248: { shift: false, altgr: true, name: "oslash" }, 252: { shift: false, altgr: false, name: "udiaeresis" }, 254: { shift: false, altgr: true, name: "thorn" }, 8364: { shift: false, altgr: true, name: "EuroSign" }, 65104: { shift: true, altgr: false, name: "dead_grave" }, 65105: { shift: false, altgr: false, name: "dead_acute" }, 65106: { shift: false, altgr: false, name: "dead_circumflex" }, 65107: { shift: false, altgr: true, name: "dead_tilde" }, 65108: { shift: true, altgr: true, name: "dead_macron" }, 65109: { shift: true, altgr: true, name: "dead_breve" }, 65110: { shift: true, altgr: true, name: "dead_abovedot" }, 65111: { shift: false, altgr: true, name: "dead_diaeresis" }, 65112: { shift: true, altgr: true, name: "dead_abovering" }, 65113: { shift: false, altgr: true, name: "dead_doubleacute" }, 65114: { shift: true, altgr: true, name: "dead_caron" }, 65115: { shift: false, altgr: true, name: "dead_cedilla" }, 65116: { shift: true, altgr: true, name: "dead_ogonek" }, 65120: { shift: false, altgr: true, name: "dead_belowdot" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'hr': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: true, altgr: false, name: "numbersign" }, 36: { shift: true, altgr: false, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: true, name: "ampersand" }, 39: { shift: true, altgr: true, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: false, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: true, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: true, altgr: false, name: "semicolon" }, 60: { shift: true, altgr: true, name: "less" }, 61: { shift: true, altgr: false, name: "equal" }, 62: { shift: true, altgr: true, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: false, altgr: true, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: true, name: "bracketleft" }, 92: { shift: false, altgr: true, name: "backslash" }, 93: { shift: false, altgr: true, name: "bracketright" }, 94: { shift: false, altgr: true, name: "asciicircum" }, 95: { shift: true, altgr: false, name: "underscore" }, 96: { shift: true, altgr: true, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: false, altgr: true, name: "braceleft" }, 124: { shift: false, altgr: true, name: "bar" }, 125: { shift: false, altgr: true, name: "braceright" }, 126: { shift: false, altgr: true, name: "asciitilde" }, 162: { shift: false, altgr: true, name: "cent" }, 164: { shift: false, altgr: true, name: "currency" }, 165: { shift: true, altgr: true, name: "yen" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 167: { shift: false, altgr: true, name: "section" }, 168: { shift: true, altgr: true, name: "diaeresis" }, 169: { shift: true, altgr: true, name: "copyright" }, 170: { shift: true, altgr: true, name: "ordfeminine" }, 171: { shift: false, altgr: true, name: "guillemotleft" }, 172: { shift: false, altgr: true, name: "notsign" }, 174: { shift: true, altgr: true, name: "registered" }, 176: { shift: false, altgr: true, name: "degree" }, 182: { shift: false, altgr: true, name: "paragraph" }, 183: { shift: false, altgr: true, name: "periodcentered" }, 184: { shift: true, altgr: true, name: "cedilla" }, 186: { shift: true, altgr: true, name: "masculine" }, 187: { shift: false, altgr: true, name: "guillemotright" }, 198: { shift: true, altgr: true, name: "AE" }, 208: { shift: true, altgr: true, name: "ETH" }, 215: { shift: true, altgr: true, name: "multiply" }, 216: { shift: true, altgr: true, name: "Ooblique" }, 222: { shift: true, altgr: true, name: "THORN" }, 223: { shift: false, altgr: true, name: "ssharp" }, 230: { shift: false, altgr: true, name: "ae" }, 240: { shift: false, altgr: true, name: "eth" }, 247: { shift: true, altgr: true, name: "division" }, 248: { shift: false, altgr: true, name: "oslash" }, 254: { shift: false, altgr: true, name: "thorn" }, 419: { shift: false, altgr: true, name: "Lstroke" }, 435: { shift: false, altgr: true, name: "lstroke" }, 454: { shift: true, altgr: false, name: "Cacute" }, 486: { shift: false, altgr: false, name: "cacute" }, 8364: { shift: false, altgr: true, name: "EuroSign" }, 65104: { shift: true, altgr: true, name: "dead_grave" }, 65105: { shift: false, altgr: true, name: "dead_acute" }, 65106: { shift: true, altgr: true, name: "dead_circumflex" }, 65107: { shift: true, altgr: true, name: "dead_tilde" }, 65108: { shift: true, altgr: true, name: "dead_macron" }, 65109: { shift: true, altgr: true, name: "dead_breve" }, 65110: { shift: true, altgr: true, name: "dead_abovedot" }, 65111: { shift: true, altgr: false, name: "dead_diaeresis" }, 65112: { shift: true, altgr: true, name: "dead_abovering" }, 65113: { shift: true, altgr: true, name: "dead_doubleacute" }, 65114: { shift: true, altgr: true, name: "dead_caron" }, 65115: { shift: false, altgr: false, name: "dead_cedilla" }, 65116: { shift: false, altgr: true, name: "dead_ogonek" }, 65120: { shift: false, altgr: true, name: "dead_belowdot" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'hu': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: false, altgr: true, name: "numbersign" }, 36: { shift: false, altgr: true, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: false, altgr: true, name: "ampersand" }, 39: { shift: true, altgr: false, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: false, altgr: true, name: "asterisk" }, 43: { shift: true, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: true, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: false, altgr: true, name: "semicolon" }, 60: { shift: false, altgr: true, name: "less" }, 61: { shift: true, altgr: false, name: "equal" }, 62: { shift: false, altgr: true, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: false, altgr: true, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: true, name: "bracketleft" }, 92: { shift: false, altgr: true, name: "backslash" }, 93: { shift: false, altgr: true, name: "bracketright" }, 94: { shift: false, altgr: true, name: "asciicircum" }, 95: { shift: true, altgr: false, name: "underscore" }, 96: { shift: false, altgr: true, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: false, altgr: true, name: "braceleft" }, 124: { shift: false, altgr: true, name: "bar" }, 125: { shift: false, altgr: true, name: "braceright" }, 126: { shift: false, altgr: true, name: "asciitilde" }, 164: { shift: false, altgr: true, name: "currency" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 167: { shift: true, altgr: false, name: "section" }, 168: { shift: false, altgr: true, name: "diaeresis" }, 172: { shift: false, altgr: true, name: "notsign" }, 176: { shift: false, altgr: true, name: "degree" }, 180: { shift: false, altgr: true, name: "acute" }, 184: { shift: false, altgr: true, name: "cedilla" }, 193: { shift: true, altgr: false, name: "Aacute" }, 201: { shift: true, altgr: false, name: "Eacute" }, 205: { shift: false, altgr: true, name: "Iacute" }, 211: { shift: true, altgr: false, name: "Oacute" }, 214: { shift: true, altgr: false, name: "Odiaeresis" }, 215: { shift: false, altgr: true, name: "multiply" }, 218: { shift: true, altgr: false, name: "Uacute" }, 220: { shift: true, altgr: false, name: "Udiaeresis" }, 223: { shift: false, altgr: true, name: "ssharp" }, 225: { shift: false, altgr: false, name: "aacute" }, 233: { shift: false, altgr: false, name: "eacute" }, 237: { shift: false, altgr: true, name: "iacute" }, 243: { shift: false, altgr: false, name: "oacute" }, 246: { shift: false, altgr: false, name: "odiaeresis" }, 247: { shift: false, altgr: true, name: "division" }, 250: { shift: false, altgr: false, name: "uacute" }, 252: { shift: false, altgr: false, name: "udiaeresis" }, 419: { shift: false, altgr: true, name: "Lstroke" }, 435: { shift: false, altgr: true, name: "lstroke" }, 8364: { shift: false, altgr: true, name: "EuroSign" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65482: { shift: true, altgr: false, name: "F13" }, 65483: { shift: true, altgr: false, name: "F14" }, 65484: { shift: true, altgr: false, name: "F15" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'is': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: true, altgr: false, name: "numbersign" }, 36: { shift: true, altgr: false, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 39: { shift: false, altgr: false, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: false, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: true, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: true, altgr: false, name: "semicolon" }, 60: { shift: false, altgr: false, name: "less" }, 61: { shift: true, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: false, altgr: true, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: true, name: "bracketleft" }, 92: { shift: false, altgr: true, name: "backslash" }, 93: { shift: false, altgr: true, name: "bracketright" }, 95: { shift: true, altgr: false, name: "underscore" }, 96: { shift: false, altgr: true, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: false, altgr: true, name: "braceleft" }, 124: { shift: false, altgr: true, name: "bar" }, 125: { shift: false, altgr: true, name: "braceright" }, 126: { shift: false, altgr: true, name: "asciitilde" }, 161: { shift: true, altgr: true, name: "exclamdown" }, 162: { shift: false, altgr: true, name: "cent" }, 163: { shift: true, altgr: true, name: "sterling" }, 164: { shift: true, altgr: true, name: "currency" }, 165: { shift: true, altgr: true, name: "yen" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 169: { shift: true, altgr: true, name: "copyright" }, 170: { shift: true, altgr: true, name: "ordfeminine" }, 171: { shift: false, altgr: true, name: "guillemotleft" }, 174: { shift: true, altgr: true, name: "registered" }, 177: { shift: true, altgr: true, name: "plusminus" }, 178: { shift: false, altgr: true, name: "twosuperior" }, 179: { shift: false, altgr: true, name: "threesuperior" }, 180: { shift: false, altgr: false, name: "acute" }, 181: { shift: false, altgr: true, name: "mu" }, 182: { shift: false, altgr: true, name: "paragraph" }, 183: { shift: false, altgr: true, name: "periodcentered" }, 185: { shift: false, altgr: true, name: "onesuperior" }, 186: { shift: true, altgr: true, name: "masculine" }, 187: { shift: false, altgr: true, name: "guillemotright" }, 188: { shift: false, altgr: true, name: "onequarter" }, 189: { shift: false, altgr: true, name: "onehalf" }, 190: { shift: false, altgr: true, name: "threequarters" }, 191: { shift: true, altgr: true, name: "questiondown" }, 198: { shift: true, altgr: false, name: "AE" }, 208: { shift: true, altgr: false, name: "ETH" }, 214: { shift: true, altgr: false, name: "Odiaeresis" }, 215: { shift: true, altgr: true, name: "multiply" }, 216: { shift: true, altgr: true, name: "Ooblique" }, 222: { shift: true, altgr: false, name: "THORN" }, 230: { shift: false, altgr: false, name: "ae" }, 240: { shift: false, altgr: false, name: "eth" }, 246: { shift: false, altgr: false, name: "odiaeresis" }, 247: { shift: true, altgr: true, name: "division" }, 248: { shift: false, altgr: true, name: "oslash" }, 254: { shift: false, altgr: false, name: "thorn" }, 8364: { shift: false, altgr: true, name: "EuroSign" }, 65105: { shift: false, altgr: false, name: "dead_acute" }, 65110: { shift: true, altgr: true, name: "dead_abovedot" }, 65113: { shift: false, altgr: true, name: "dead_doubleacute" }, 65115: { shift: false, altgr: true, name: "dead_cedilla" }, 65116: { shift: true, altgr: true, name: "dead_ogonek" }, 65120: { shift: false, altgr: true, name: "dead_belowdot" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'it': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: false, altgr: true, name: "numbersign" }, 36: { shift: true, altgr: false, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 39: { shift: false, altgr: false, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: false, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: true, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: true, altgr: false, name: "semicolon" }, 60: { shift: false, altgr: false, name: "less" }, 61: { shift: true, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: false, altgr: true, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: true, name: "bracketleft" }, 92: { shift: false, altgr: false, name: "backslash" }, 93: { shift: false, altgr: true, name: "bracketright" }, 94: { shift: true, altgr: false, name: "asciicircum" }, 95: { shift: true, altgr: false, name: "underscore" }, 96: { shift: true, altgr: true, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: false, altgr: true, name: "braceleft" }, 124: { shift: true, altgr: false, name: "bar" }, 125: { shift: false, altgr: true, name: "braceright" }, 126: { shift: false, altgr: true, name: "asciitilde" }, 161: { shift: true, altgr: true, name: "exclamdown" }, 162: { shift: false, altgr: true, name: "cent" }, 163: { shift: true, altgr: false, name: "sterling" }, 165: { shift: true, altgr: true, name: "yen" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 167: { shift: true, altgr: false, name: "section" }, 169: { shift: true, altgr: true, name: "copyright" }, 170: { shift: true, altgr: true, name: "ordfeminine" }, 171: { shift: false, altgr: true, name: "guillemotleft" }, 172: { shift: false, altgr: true, name: "notsign" }, 174: { shift: true, altgr: true, name: "registered" }, 176: { shift: true, altgr: false, name: "degree" }, 177: { shift: true, altgr: true, name: "plusminus" }, 178: { shift: false, altgr: true, name: "twosuperior" }, 179: { shift: false, altgr: true, name: "threesuperior" }, 181: { shift: false, altgr: true, name: "mu" }, 182: { shift: false, altgr: true, name: "paragraph" }, 183: { shift: false, altgr: true, name: "periodcentered" }, 185: { shift: false, altgr: true, name: "onesuperior" }, 186: { shift: true, altgr: true, name: "masculine" }, 187: { shift: false, altgr: true, name: "guillemotright" }, 188: { shift: false, altgr: true, name: "onequarter" }, 189: { shift: false, altgr: true, name: "onehalf" }, 190: { shift: false, altgr: true, name: "threequarters" }, 191: { shift: true, altgr: true, name: "questiondown" }, 198: { shift: true, altgr: true, name: "AE" }, 208: { shift: true, altgr: true, name: "ETH" }, 215: { shift: true, altgr: true, name: "multiply" }, 216: { shift: true, altgr: true, name: "Ooblique" }, 222: { shift: true, altgr: true, name: "THORN" }, 223: { shift: false, altgr: true, name: "ssharp" }, 224: { shift: false, altgr: false, name: "agrave" }, 230: { shift: false, altgr: true, name: "ae" }, 231: { shift: true, altgr: false, name: "ccedilla" }, 232: { shift: false, altgr: false, name: "egrave" }, 233: { shift: true, altgr: false, name: "eacute" }, 236: { shift: false, altgr: false, name: "igrave" }, 240: { shift: false, altgr: true, name: "eth" }, 242: { shift: false, altgr: false, name: "ograve" }, 247: { shift: true, altgr: true, name: "division" }, 248: { shift: false, altgr: true, name: "oslash" }, 249: { shift: false, altgr: false, name: "ugrave" }, 254: { shift: false, altgr: true, name: "thorn" }, 419: { shift: true, altgr: true, name: "Lstroke" }, 435: { shift: false, altgr: true, name: "lstroke" }, 8364: { shift: false, altgr: true, name: "EuroSign" }, 65104: { shift: false, altgr: true, name: "dead_grave" }, 65108: { shift: true, altgr: true, name: "dead_macron" }, 65109: { shift: true, altgr: true, name: "dead_breve" }, 65110: { shift: true, altgr: true, name: "dead_abovedot" }, 65112: { shift: true, altgr: true, name: "dead_abovering" }, 65113: { shift: true, altgr: true, name: "dead_doubleacute" }, 65116: { shift: true, altgr: true, name: "dead_ogonek" }, 65120: { shift: false, altgr: true, name: "dead_belowdot" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'ja': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: true, altgr: false, name: "numbersign" }, 36: { shift: true, altgr: false, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 39: { shift: true, altgr: false, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: true, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: false, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: false, altgr: false, name: "colon" }, 59: { shift: false, altgr: false, name: "semicolon" }, 60: { shift: true, altgr: false, name: "less" }, 61: { shift: true, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: false, altgr: false, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: false, name: "bracketleft" }, 92: { shift: false, altgr: false, name: "backslash" }, 93: { shift: false, altgr: false, name: "bracketright" }, 94: { shift: false, altgr: false, name: "asciicircum" }, 95: { shift: true, altgr: false, name: "underscore" }, 96: { shift: true, altgr: false, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: true, altgr: false, name: "braceleft" }, 124: { shift: true, altgr: false, name: "bar" }, 125: { shift: true, altgr: false, name: "braceright" }, 126: { shift: true, altgr: false, name: "asciitilde" }, 165: { shift: false, altgr: false, name: "yen" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65314: { shift: false, altgr: false, name: "Muhenkan" }, 65315: { shift: false, altgr: false, name: "Henkan_Mode_Real" }, 65317: { shift: false, altgr: false, name: "Katakana_Real" }, 65319: { shift: false, altgr: false, name: "Katakana" }, 65322: { shift: false, altgr: false, name: "Zenkaku_Hankaku" }, 65328: { shift: true, altgr: false, name: "Eisu_toggle" }, 65342: { shift: false, altgr: false, name: "Henkan_Mode_Ultra" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65445: { shift: false, altgr: false, name: "backslash_ja" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'lt': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: true, altgr: false, name: "numbersign" }, 36: { shift: true, altgr: false, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 39: { shift: false, altgr: false, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: true, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: false, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: false, altgr: false, name: "semicolon" }, 60: { shift: true, altgr: false, name: "less" }, 61: { shift: false, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: true, altgr: false, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: false, name: "bracketleft" }, 92: { shift: false, altgr: false, name: "backslash" }, 93: { shift: false, altgr: false, name: "bracketright" }, 94: { shift: true, altgr: false, name: "asciicircum" }, 95: { shift: true, altgr: false, name: "underscore" }, 96: { shift: false, altgr: false, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: true, altgr: false, name: "braceleft" }, 124: { shift: true, altgr: false, name: "bar" }, 125: { shift: true, altgr: false, name: "braceright" }, 126: { shift: true, altgr: false, name: "asciitilde" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 417: { shift: true, altgr: true, name: "Aogonek" }, 433: { shift: false, altgr: true, name: "aogonek" }, 458: { shift: true, altgr: true, name: "Eogonek" }, 490: { shift: false, altgr: true, name: "eogonek" }, 8364: { shift: true, altgr: false, name: "EuroSign" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'lv': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: true, altgr: false, name: "numbersign" }, 36: { shift: true, altgr: false, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 39: { shift: true, altgr: true, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: true, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: false, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: false, altgr: false, name: "semicolon" }, 60: { shift: true, altgr: false, name: "less" }, 61: { shift: false, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: false, altgr: true, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: false, name: "bracketleft" }, 92: { shift: false, altgr: false, name: "backslash" }, 93: { shift: false, altgr: false, name: "bracketright" }, 94: { shift: true, altgr: false, name: "asciicircum" }, 95: { shift: true, altgr: false, name: "underscore" }, 96: { shift: true, altgr: true, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: true, altgr: false, name: "braceleft" }, 124: { shift: true, altgr: false, name: "bar" }, 125: { shift: true, altgr: false, name: "braceright" }, 126: { shift: true, altgr: false, name: "asciitilde" }, 160: { shift: false, altgr: true, name: "nobreakspace" }, 161: { shift: true, altgr: true, name: "exclamdown" }, 162: { shift: true, altgr: true, name: "cent" }, 163: { shift: true, altgr: true, name: "sterling" }, 165: { shift: true, altgr: true, name: "yen" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 170: { shift: true, altgr: true, name: "ordfeminine" }, 172: { shift: false, altgr: true, name: "notsign" }, 176: { shift: true, altgr: true, name: "degree" }, 177: { shift: true, altgr: true, name: "plusminus" }, 178: { shift: false, altgr: true, name: "twosuperior" }, 179: { shift: false, altgr: true, name: "threesuperior" }, 181: { shift: false, altgr: true, name: "mu" }, 183: { shift: false, altgr: true, name: "periodcentered" }, 185: { shift: false, altgr: true, name: "onesuperior" }, 186: { shift: true, altgr: true, name: "masculine" }, 187: { shift: false, altgr: true, name: "guillemotright" }, 189: { shift: false, altgr: true, name: "onehalf" }, 190: { shift: false, altgr: true, name: "threequarters" }, 191: { shift: true, altgr: true, name: "questiondown" }, 208: { shift: true, altgr: true, name: "ETH" }, 215: { shift: true, altgr: true, name: "multiply" }, 222: { shift: true, altgr: true, name: "THORN" }, 240: { shift: false, altgr: true, name: "eth" }, 247: { shift: true, altgr: true, name: "division" }, 254: { shift: false, altgr: true, name: "thorn" }, 419: { shift: true, altgr: true, name: "Lstroke" }, 435: { shift: false, altgr: true, name: "lstroke" }, 8364: { shift: false, altgr: true, name: "EuroSign" }, 65104: { shift: false, altgr: true, name: "dead_grave" }, 65105: { shift: false, altgr: true, name: "dead_acute" }, 65107: { shift: false, altgr: true, name: "dead_tilde" }, 65108: { shift: true, altgr: true, name: "dead_macron" }, 65109: { shift: true, altgr: true, name: "dead_breve" }, 65110: { shift: true, altgr: true, name: "dead_abovedot" }, 65111: { shift: false, altgr: true, name: "dead_diaeresis" }, 65112: { shift: true, altgr: true, name: "dead_abovering" }, 65113: { shift: true, altgr: true, name: "dead_doubleacute" }, 65115: { shift: false, altgr: true, name: "dead_cedilla" }, 65116: { shift: true, altgr: true, name: "dead_ogonek" }, 65120: { shift: false, altgr: true, name: "dead_belowdot" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'mk': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: true, altgr: false, name: "numbersign" }, 36: { shift: true, altgr: false, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 39: { shift: false, altgr: false, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: true, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: false, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: true, name: "colon" }, 59: { shift: true, altgr: true, name: "semicolon" }, 60: { shift: true, altgr: false, name: "less" }, 61: { shift: false, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: true, altgr: false, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: false, name: "bracketleft" }, 92: { shift: false, altgr: false, name: "backslash" }, 93: { shift: false, altgr: false, name: "bracketright" }, 94: { shift: true, altgr: false, name: "asciicircum" }, 95: { shift: true, altgr: false, name: "underscore" }, 96: { shift: false, altgr: false, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: true, altgr: false, name: "braceleft" }, 124: { shift: true, altgr: false, name: "bar" }, 125: { shift: true, altgr: false, name: "braceright" }, 126: { shift: true, altgr: false, name: "asciitilde" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'nl': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 35: { shift: true, altgr: false, name: "numbersign" }, 36: { shift: true, altgr: false, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 39: { shift: true, altgr: false, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: false, altgr: false, name: "asterisk" }, 43: { shift: false, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: false, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: true, altgr: false, name: "semicolon" }, 60: { shift: false, altgr: false, name: "less" }, 61: { shift: true, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: false, altgr: false, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: true, altgr: false, name: "bracketleft" }, 92: { shift: false, altgr: true, name: "backslash" }, 93: { shift: false, altgr: false, name: "bracketright" }, 95: { shift: true, altgr: false, name: "underscore" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: false, altgr: true, name: "braceleft" }, 124: { shift: true, altgr: false, name: "bar" }, 125: { shift: false, altgr: true, name: "braceright" }, 163: { shift: false, altgr: true, name: "sterling" }, 166: { shift: false, altgr: true, name: "brokenbar" }, 167: { shift: true, altgr: false, name: "section" }, 169: { shift: false, altgr: true, name: "copyright" }, 171: { shift: false, altgr: true, name: "guillemotleft" }, 172: { shift: false, altgr: true, name: "notsign" }, 173: { shift: false, altgr: false, name: "hyphen" }, 176: { shift: false, altgr: false, name: "degree" }, 177: { shift: true, altgr: false, name: "plusminus" }, 178: { shift: false, altgr: true, name: "twosuperior" }, 179: { shift: false, altgr: true, name: "threesuperior" }, 181: { shift: false, altgr: true, name: "mu" }, 182: { shift: false, altgr: true, name: "paragraph" }, 183: { shift: false, altgr: true, name: "periodcentered" }, 185: { shift: false, altgr: true, name: "onesuperior" }, 187: { shift: false, altgr: true, name: "guillemotright" }, 188: { shift: false, altgr: true, name: "onequarter" }, 189: { shift: false, altgr: true, name: "onehalf" }, 190: { shift: false, altgr: true, name: "threequarters" }, 223: { shift: false, altgr: true, name: "ssharp" }, 8364: { shift: false, altgr: true, name: "EuroSign" }, 65104: { shift: true, altgr: false, name: "dead_grave" }, 65105: { shift: false, altgr: false, name: "dead_acute" }, 65106: { shift: true, altgr: false, name: "dead_circumflex" }, 65107: { shift: true, altgr: false, name: "dead_tilde" }, 65111: { shift: false, altgr: false, name: "dead_diaeresis" }, 65115: { shift: false, altgr: true, name: "dead_cedilla" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'nl-be': { 32: { shift: false, altgr: false, name: "space" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 60: { shift: false, altgr: false, name: "less" }, 62: { shift: true, altgr: false, name: "greater" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 124: { shift: false, altgr: true, name: "bar" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'no': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: true, altgr: false, name: "numbersign" }, 36: { shift: false, altgr: true, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 39: { shift: false, altgr: false, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: false, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: true, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: true, altgr: false, name: "semicolon" }, 60: { shift: false, altgr: false, name: "less" }, 61: { shift: true, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: false, altgr: true, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: true, name: "bracketleft" }, 92: { shift: false, altgr: false, name: "backslash" }, 93: { shift: false, altgr: true, name: "bracketright" }, 94: { shift: true, altgr: false, name: "asciicircum" }, 95: { shift: true, altgr: false, name: "underscore" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: false, altgr: true, name: "braceleft" }, 124: { shift: false, altgr: false, name: "bar" }, 125: { shift: false, altgr: true, name: "braceright" }, 126: { shift: false, altgr: true, name: "asciitilde" }, 160: { shift: false, altgr: true, name: "nobreakspace" }, 161: { shift: false, altgr: true, name: "exclamdown" }, 162: { shift: true, altgr: true, name: "cent" }, 163: { shift: false, altgr: true, name: "sterling" }, 164: { shift: true, altgr: false, name: "currency" }, 165: { shift: true, altgr: true, name: "yen" }, 166: { shift: false, altgr: true, name: "brokenbar" }, 167: { shift: true, altgr: false, name: "section" }, 169: { shift: false, altgr: true, name: "copyright" }, 170: { shift: true, altgr: true, name: "ordfeminine" }, 171: { shift: false, altgr: true, name: "guillemotleft" }, 172: { shift: true, altgr: true, name: "notsign" }, 173: { shift: false, altgr: true, name: "hyphen" }, 174: { shift: false, altgr: true, name: "registered" }, 175: { shift: true, altgr: true, name: "macron" }, 176: { shift: true, altgr: true, name: "degree" }, 177: { shift: false, altgr: true, name: "plusminus" }, 178: { shift: true, altgr: true, name: "twosuperior" }, 179: { shift: true, altgr: true, name: "threesuperior" }, 181: { shift: false, altgr: true, name: "mu" }, 182: { shift: true, altgr: true, name: "paragraph" }, 183: { shift: false, altgr: true, name: "periodcentered" }, 185: { shift: true, altgr: true, name: "onesuperior" }, 186: { shift: true, altgr: true, name: "masculine" }, 187: { shift: false, altgr: true, name: "guillemotright" }, 188: { shift: true, altgr: true, name: "onequarter" }, 189: { shift: false, altgr: true, name: "onehalf" }, 190: { shift: true, altgr: true, name: "threequarters" }, 191: { shift: true, altgr: true, name: "questiondown" }, 197: { shift: true, altgr: false, name: "Aring" }, 198: { shift: true, altgr: false, name: "AE" }, 208: { shift: true, altgr: true, name: "ETH" }, 215: { shift: true, altgr: true, name: "multiply" }, 216: { shift: true, altgr: false, name: "Ooblique" }, 222: { shift: true, altgr: true, name: "THORN" }, 223: { shift: false, altgr: true, name: "ssharp" }, 229: { shift: false, altgr: false, name: "aring" }, 230: { shift: false, altgr: false, name: "ae" }, 240: { shift: false, altgr: true, name: "eth" }, 247: { shift: true, altgr: true, name: "division" }, 248: { shift: false, altgr: false, name: "oslash" }, 254: { shift: false, altgr: true, name: "thorn" }, 419: { shift: true, altgr: true, name: "Lstroke" }, 435: { shift: false, altgr: true, name: "lstroke" }, 8364: { shift: false, altgr: true, name: "EuroSign" }, 65104: { shift: true, altgr: false, name: "dead_grave" }, 65105: { shift: false, altgr: true, name: "dead_acute" }, 65106: { shift: true, altgr: false, name: "dead_circumflex" }, 65107: { shift: false, altgr: true, name: "dead_tilde" }, 65110: { shift: true, altgr: true, name: "dead_abovedot" }, 65111: { shift: false, altgr: false, name: "dead_diaeresis" }, 65112: { shift: true, altgr: true, name: "dead_abovering" }, 65113: { shift: true, altgr: true, name: "dead_doubleacute" }, 65114: { shift: true, altgr: true, name: "dead_caron" }, 65115: { shift: false, altgr: true, name: "dead_cedilla" }, 65116: { shift: true, altgr: true, name: "dead_ogonek" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'pl': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: true, altgr: false, name: "numbersign" }, 36: { shift: true, altgr: false, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 39: { shift: false, altgr: false, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: true, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: false, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: false, altgr: false, name: "semicolon" }, 60: { shift: true, altgr: false, name: "less" }, 61: { shift: false, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: true, altgr: false, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: false, name: "bracketleft" }, 92: { shift: false, altgr: false, name: "backslash" }, 93: { shift: false, altgr: false, name: "bracketright" }, 94: { shift: true, altgr: false, name: "asciicircum" }, 95: { shift: true, altgr: false, name: "underscore" }, 96: { shift: true, altgr: true, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: true, altgr: false, name: "braceleft" }, 124: { shift: true, altgr: false, name: "bar" }, 125: { shift: true, altgr: false, name: "braceright" }, 126: { shift: true, altgr: false, name: "asciitilde" }, 161: { shift: true, altgr: true, name: "exclamdown" }, 163: { shift: true, altgr: true, name: "sterling" }, 165: { shift: true, altgr: true, name: "yen" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 170: { shift: true, altgr: true, name: "ordfeminine" }, 172: { shift: false, altgr: true, name: "notsign" }, 174: { shift: true, altgr: true, name: "registered" }, 176: { shift: true, altgr: true, name: "degree" }, 177: { shift: true, altgr: true, name: "plusminus" }, 178: { shift: false, altgr: true, name: "twosuperior" }, 179: { shift: false, altgr: true, name: "threesuperior" }, 181: { shift: false, altgr: true, name: "mu" }, 182: { shift: false, altgr: true, name: "paragraph" }, 183: { shift: false, altgr: true, name: "periodcentered" }, 185: { shift: false, altgr: true, name: "onesuperior" }, 186: { shift: true, altgr: true, name: "masculine" }, 188: { shift: false, altgr: true, name: "onequarter" }, 189: { shift: false, altgr: true, name: "onehalf" }, 190: { shift: false, altgr: true, name: "threequarters" }, 191: { shift: true, altgr: true, name: "questiondown" }, 208: { shift: true, altgr: true, name: "ETH" }, 211: { shift: true, altgr: true, name: "Oacute" }, 215: { shift: true, altgr: true, name: "multiply" }, 222: { shift: true, altgr: true, name: "THORN" }, 240: { shift: false, altgr: true, name: "eth" }, 243: { shift: false, altgr: true, name: "oacute" }, 247: { shift: true, altgr: true, name: "division" }, 254: { shift: false, altgr: true, name: "thorn" }, 417: { shift: true, altgr: true, name: "Aogonek" }, 419: { shift: true, altgr: true, name: "Lstroke" }, 422: { shift: true, altgr: true, name: "Sacute" }, 428: { shift: true, altgr: true, name: "Zacute" }, 431: { shift: true, altgr: true, name: "Zabovedot" }, 433: { shift: false, altgr: true, name: "aogonek" }, 435: { shift: false, altgr: true, name: "lstroke" }, 438: { shift: false, altgr: true, name: "sacute" }, 444: { shift: false, altgr: true, name: "zacute" }, 447: { shift: false, altgr: true, name: "zabovedot" }, 454: { shift: true, altgr: true, name: "Cacute" }, 458: { shift: true, altgr: true, name: "Eogonek" }, 465: { shift: true, altgr: true, name: "Nacute" }, 486: { shift: false, altgr: true, name: "cacute" }, 490: { shift: false, altgr: true, name: "eogonek" }, 497: { shift: false, altgr: true, name: "nacute" }, 8364: { shift: false, altgr: true, name: "EuroSign" }, 65104: { shift: false, altgr: true, name: "dead_grave" }, 65105: { shift: false, altgr: true, name: "dead_acute" }, 65106: { shift: false, altgr: true, name: "dead_circumflex" }, 65107: { shift: false, altgr: true, name: "dead_tilde" }, 65108: { shift: true, altgr: true, name: "dead_macron" }, 65109: { shift: true, altgr: true, name: "dead_breve" }, 65110: { shift: true, altgr: true, name: "dead_abovedot" }, 65111: { shift: false, altgr: true, name: "dead_diaeresis" }, 65112: { shift: true, altgr: true, name: "dead_abovering" }, 65113: { shift: true, altgr: true, name: "dead_doubleacute" }, 65114: { shift: true, altgr: true, name: "dead_caron" }, 65115: { shift: false, altgr: true, name: "dead_cedilla" }, 65116: { shift: true, altgr: true, name: "dead_ogonek" }, 65120: { shift: false, altgr: true, name: "dead_belowdot" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'pt': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: true, altgr: false, name: "numbersign" }, 36: { shift: true, altgr: false, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 39: { shift: false, altgr: false, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: false, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: true, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: true, altgr: false, name: "semicolon" }, 60: { shift: false, altgr: false, name: "less" }, 61: { shift: true, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: false, altgr: true, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: true, name: "bracketleft" }, 92: { shift: false, altgr: false, name: "backslash" }, 93: { shift: false, altgr: true, name: "bracketright" }, 95: { shift: true, altgr: false, name: "underscore" }, 96: { shift: true, altgr: true, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: false, altgr: true, name: "braceleft" }, 124: { shift: true, altgr: false, name: "bar" }, 125: { shift: false, altgr: true, name: "braceright" }, 161: { shift: true, altgr: true, name: "exclamdown" }, 162: { shift: false, altgr: true, name: "cent" }, 163: { shift: false, altgr: true, name: "sterling" }, 165: { shift: true, altgr: true, name: "yen" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 167: { shift: false, altgr: true, name: "section" }, 169: { shift: true, altgr: true, name: "copyright" }, 170: { shift: true, altgr: false, name: "ordfeminine" }, 171: { shift: false, altgr: false, name: "guillemotleft" }, 172: { shift: false, altgr: true, name: "notsign" }, 174: { shift: true, altgr: true, name: "registered" }, 176: { shift: true, altgr: true, name: "degree" }, 177: { shift: true, altgr: true, name: "plusminus" }, 181: { shift: false, altgr: true, name: "mu" }, 182: { shift: false, altgr: true, name: "paragraph" }, 183: { shift: false, altgr: true, name: "periodcentered" }, 185: { shift: false, altgr: true, name: "onesuperior" }, 186: { shift: false, altgr: false, name: "masculine" }, 187: { shift: true, altgr: false, name: "guillemotright" }, 189: { shift: false, altgr: true, name: "onehalf" }, 190: { shift: false, altgr: true, name: "threequarters" }, 191: { shift: true, altgr: true, name: "questiondown" }, 198: { shift: true, altgr: true, name: "AE" }, 199: { shift: true, altgr: false, name: "Ccedilla" }, 208: { shift: true, altgr: true, name: "ETH" }, 215: { shift: true, altgr: true, name: "multiply" }, 216: { shift: true, altgr: true, name: "Ooblique" }, 222: { shift: true, altgr: true, name: "THORN" }, 223: { shift: false, altgr: true, name: "ssharp" }, 230: { shift: false, altgr: true, name: "ae" }, 231: { shift: false, altgr: false, name: "ccedilla" }, 240: { shift: false, altgr: true, name: "eth" }, 247: { shift: true, altgr: true, name: "division" }, 248: { shift: false, altgr: true, name: "oslash" }, 254: { shift: false, altgr: true, name: "thorn" }, 419: { shift: true, altgr: true, name: "Lstroke" }, 435: { shift: false, altgr: true, name: "lstroke" }, 8364: { shift: false, altgr: true, name: "EuroSign" }, 65104: { shift: true, altgr: false, name: "dead_grave" }, 65105: { shift: false, altgr: false, name: "dead_acute" }, 65106: { shift: true, altgr: false, name: "dead_circumflex" }, 65107: { shift: false, altgr: false, name: "dead_tilde" }, 65108: { shift: true, altgr: true, name: "dead_macron" }, 65109: { shift: true, altgr: true, name: "dead_breve" }, 65110: { shift: true, altgr: true, name: "dead_abovedot" }, 65111: { shift: false, altgr: true, name: "dead_diaeresis" }, 65112: { shift: true, altgr: true, name: "dead_abovering" }, 65113: { shift: true, altgr: true, name: "dead_doubleacute" }, 65114: { shift: true, altgr: true, name: "dead_caron" }, 65115: { shift: false, altgr: true, name: "dead_cedilla" }, 65116: { shift: true, altgr: true, name: "dead_ogonek" }, 65120: { shift: false, altgr: true, name: "dead_belowdot" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'pt-br': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: true, altgr: false, name: "numbersign" }, 36: { shift: true, altgr: false, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 39: { shift: false, altgr: false, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: true, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: false, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: false, altgr: false, name: "semicolon" }, 60: { shift: true, altgr: false, name: "less" }, 61: { shift: false, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: true, altgr: false, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: false, name: "bracketleft" }, 92: { shift: false, altgr: false, name: "backslash" }, 93: { shift: false, altgr: false, name: "bracketright" }, 94: { shift: true, altgr: true, name: "asciicircum" }, 95: { shift: true, altgr: false, name: "underscore" }, 96: { shift: true, altgr: true, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: true, altgr: false, name: "braceleft" }, 124: { shift: true, altgr: false, name: "bar" }, 125: { shift: true, altgr: false, name: "braceright" }, 126: { shift: false, altgr: true, name: "asciitilde" }, 161: { shift: true, altgr: true, name: "exclamdown" }, 162: { shift: false, altgr: true, name: "cent" }, 163: { shift: false, altgr: true, name: "sterling" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 167: { shift: false, altgr: true, name: "section" }, 168: { shift: true, altgr: true, name: "diaeresis" }, 169: { shift: false, altgr: true, name: "copyright" }, 170: { shift: false, altgr: true, name: "ordfeminine" }, 172: { shift: false, altgr: true, name: "notsign" }, 174: { shift: false, altgr: true, name: "registered" }, 176: { shift: false, altgr: true, name: "degree" }, 178: { shift: false, altgr: true, name: "twosuperior" }, 179: { shift: false, altgr: true, name: "threesuperior" }, 180: { shift: false, altgr: true, name: "acute" }, 181: { shift: false, altgr: true, name: "mu" }, 185: { shift: false, altgr: true, name: "onesuperior" }, 186: { shift: false, altgr: true, name: "masculine" }, 188: { shift: true, altgr: true, name: "onequarter" }, 189: { shift: true, altgr: true, name: "onehalf" }, 190: { shift: true, altgr: true, name: "threequarters" }, 199: { shift: true, altgr: false, name: "Ccedilla" }, 231: { shift: false, altgr: false, name: "ccedilla" }, 8364: { shift: false, altgr: true, name: "EuroSign" }, 65104: { shift: true, altgr: false, name: "dead_grave" }, 65105: { shift: false, altgr: false, name: "dead_acute" }, 65106: { shift: true, altgr: false, name: "dead_circumflex" }, 65107: { shift: false, altgr: false, name: "dead_tilde" }, 65111: { shift: true, altgr: false, name: "dead_diaeresis" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'ru': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: true, altgr: false, name: "numbersign" }, 36: { shift: true, altgr: false, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 39: { shift: false, altgr: false, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: true, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: false, altgr: true, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: false, altgr: false, name: "semicolon" }, 60: { shift: true, altgr: false, name: "less" }, 61: { shift: false, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: true, altgr: false, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: false, name: "bracketleft" }, 92: { shift: false, altgr: false, name: "backslash" }, 93: { shift: false, altgr: false, name: "bracketright" }, 94: { shift: true, altgr: false, name: "asciicircum" }, 95: { shift: true, altgr: false, name: "underscore" }, 96: { shift: false, altgr: false, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: true, altgr: false, name: "braceleft" }, 124: { shift: true, altgr: true, name: "bar" }, 125: { shift: true, altgr: false, name: "braceright" }, 126: { shift: true, altgr: false, name: "asciitilde" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'sl': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: true, altgr: false, name: "numbersign" }, 36: { shift: true, altgr: false, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 39: { shift: false, altgr: false, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: false, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: true, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: true, altgr: false, name: "semicolon" }, 60: { shift: false, altgr: false, name: "less" }, 61: { shift: true, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: false, altgr: true, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: true, name: "bracketleft" }, 92: { shift: false, altgr: true, name: "backslash" }, 93: { shift: false, altgr: true, name: "bracketright" }, 94: { shift: false, altgr: true, name: "asciicircum" }, 95: { shift: true, altgr: false, name: "underscore" }, 96: { shift: false, altgr: true, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: false, altgr: true, name: "braceleft" }, 124: { shift: false, altgr: true, name: "bar" }, 125: { shift: false, altgr: true, name: "braceright" }, 126: { shift: false, altgr: true, name: "asciitilde" }, 162: { shift: false, altgr: true, name: "cent" }, 164: { shift: false, altgr: true, name: "currency" }, 165: { shift: true, altgr: true, name: "yen" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 167: { shift: false, altgr: true, name: "section" }, 168: { shift: true, altgr: true, name: "diaeresis" }, 169: { shift: true, altgr: true, name: "copyright" }, 170: { shift: true, altgr: true, name: "ordfeminine" }, 171: { shift: false, altgr: true, name: "guillemotleft" }, 172: { shift: false, altgr: true, name: "notsign" }, 174: { shift: true, altgr: true, name: "registered" }, 176: { shift: false, altgr: true, name: "degree" }, 182: { shift: false, altgr: true, name: "paragraph" }, 183: { shift: false, altgr: true, name: "periodcentered" }, 184: { shift: true, altgr: true, name: "cedilla" }, 186: { shift: true, altgr: true, name: "masculine" }, 187: { shift: false, altgr: true, name: "guillemotright" }, 198: { shift: true, altgr: true, name: "AE" }, 208: { shift: true, altgr: true, name: "ETH" }, 215: { shift: false, altgr: true, name: "multiply" }, 216: { shift: true, altgr: true, name: "Ooblique" }, 222: { shift: true, altgr: true, name: "THORN" }, 223: { shift: false, altgr: true, name: "ssharp" }, 230: { shift: false, altgr: true, name: "ae" }, 240: { shift: false, altgr: true, name: "eth" }, 247: { shift: false, altgr: true, name: "division" }, 248: { shift: false, altgr: true, name: "oslash" }, 254: { shift: false, altgr: true, name: "thorn" }, 419: { shift: false, altgr: true, name: "Lstroke" }, 435: { shift: false, altgr: true, name: "lstroke" }, 454: { shift: true, altgr: false, name: "Cacute" }, 486: { shift: false, altgr: false, name: "cacute" }, 8364: { shift: false, altgr: true, name: "EuroSign" }, 65104: { shift: true, altgr: true, name: "dead_grave" }, 65105: { shift: false, altgr: true, name: "dead_acute" }, 65106: { shift: true, altgr: true, name: "dead_circumflex" }, 65107: { shift: true, altgr: true, name: "dead_tilde" }, 65108: { shift: true, altgr: true, name: "dead_macron" }, 65109: { shift: false, altgr: true, name: "dead_breve" }, 65110: { shift: false, altgr: true, name: "dead_abovedot" }, 65111: { shift: false, altgr: true, name: "dead_diaeresis" }, 65112: { shift: true, altgr: true, name: "dead_abovering" }, 65113: { shift: false, altgr: true, name: "dead_doubleacute" }, 65114: { shift: false, altgr: true, name: "dead_caron" }, 65115: { shift: false, altgr: false, name: "dead_cedilla" }, 65116: { shift: false, altgr: true, name: "dead_ogonek" }, 65120: { shift: false, altgr: true, name: "dead_belowdot" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'sv': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: true, altgr: false, name: "numbersign" }, 36: { shift: false, altgr: true, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 39: { shift: false, altgr: false, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: false, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: true, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: true, altgr: false, name: "semicolon" }, 60: { shift: false, altgr: false, name: "less" }, 61: { shift: true, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: false, altgr: true, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: true, name: "bracketleft" }, 92: { shift: false, altgr: true, name: "backslash" }, 93: { shift: false, altgr: true, name: "bracketright" }, 95: { shift: true, altgr: false, name: "underscore" }, 96: { shift: true, altgr: false, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: false, altgr: true, name: "braceleft" }, 124: { shift: false, altgr: true, name: "bar" }, 125: { shift: false, altgr: true, name: "braceright" }, 163: { shift: false, altgr: true, name: "sterling" }, 164: { shift: true, altgr: false, name: "currency" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 167: { shift: false, altgr: false, name: "section" }, 180: { shift: false, altgr: false, name: "acute" }, 181: { shift: false, altgr: true, name: "mu" }, 189: { shift: true, altgr: false, name: "onehalf" }, 196: { shift: true, altgr: false, name: "Adiaeresis" }, 197: { shift: true, altgr: false, name: "Aring" }, 214: { shift: true, altgr: false, name: "Odiaeresis" }, 228: { shift: false, altgr: false, name: "adiaeresis" }, 229: { shift: false, altgr: false, name: "aring" }, 246: { shift: false, altgr: false, name: "odiaeresis" }, 8364: { shift: false, altgr: true, name: "EuroSign" }, 65104: { shift: true, altgr: false, name: "dead_grave" }, 65105: { shift: false, altgr: false, name: "dead_acute" }, 65106: { shift: true, altgr: false, name: "dead_circumflex" }, 65107: { shift: false, altgr: true, name: "dead_tilde" }, 65111: { shift: false, altgr: false, name: "dead_diaeresis" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'th': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: true, altgr: false, name: "numbersign" }, 36: { shift: true, altgr: false, name: "dollar" }, 37: { shift: true, altgr: true, name: "percent" }, 38: { shift: true, altgr: false, name: "ampersand" }, 39: { shift: false, altgr: false, name: "apostrophe" }, 40: { shift: true, altgr: true, name: "parenleft" }, 41: { shift: true, altgr: true, name: "parenright" }, 42: { shift: true, altgr: false, name: "asterisk" }, 43: { shift: true, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: false, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: false, altgr: false, name: "semicolon" }, 60: { shift: true, altgr: false, name: "less" }, 61: { shift: false, altgr: false, name: "equal" }, 62: { shift: true, altgr: false, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: true, altgr: false, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: false, name: "bracketleft" }, 92: { shift: false, altgr: false, name: "backslash" }, 93: { shift: false, altgr: false, name: "bracketright" }, 94: { shift: true, altgr: false, name: "asciicircum" }, 95: { shift: false, altgr: true, name: "underscore" }, 96: { shift: false, altgr: false, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: true, altgr: false, name: "braceleft" }, 124: { shift: true, altgr: false, name: "bar" }, 125: { shift: true, altgr: false, name: "braceright" }, 126: { shift: true, altgr: false, name: "asciitilde" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } }, 'tr': { 32: { shift: false, altgr: false, name: "space" }, 33: { shift: true, altgr: false, name: "exclam" }, 34: { shift: true, altgr: false, name: "quotedbl" }, 35: { shift: false, altgr: true, name: "numbersign" }, 36: { shift: false, altgr: true, name: "dollar" }, 37: { shift: true, altgr: false, name: "percent" }, 38: { shift: true, altgr: true, name: "ampersand" }, 39: { shift: true, altgr: true, name: "apostrophe" }, 40: { shift: true, altgr: false, name: "parenleft" }, 41: { shift: true, altgr: false, name: "parenright" }, 42: { shift: false, altgr: false, name: "asterisk" }, 43: { shift: true, altgr: false, name: "plus" }, 44: { shift: false, altgr: false, name: "comma" }, 45: { shift: false, altgr: false, name: "minus" }, 46: { shift: false, altgr: false, name: "period" }, 47: { shift: true, altgr: false, name: "slash" }, 48: { shift: false, altgr: false, name: "0" }, 49: { shift: false, altgr: false, name: "1" }, 50: { shift: false, altgr: false, name: "2" }, 51: { shift: false, altgr: false, name: "3" }, 52: { shift: false, altgr: false, name: "4" }, 53: { shift: false, altgr: false, name: "5" }, 54: { shift: false, altgr: false, name: "6" }, 55: { shift: false, altgr: false, name: "7" }, 56: { shift: false, altgr: false, name: "8" }, 57: { shift: false, altgr: false, name: "9" }, 58: { shift: true, altgr: false, name: "colon" }, 59: { shift: true, altgr: false, name: "semicolon" }, 60: { shift: false, altgr: true, name: "less" }, 61: { shift: true, altgr: false, name: "equal" }, 62: { shift: false, altgr: true, name: "greater" }, 63: { shift: true, altgr: false, name: "question" }, 64: { shift: false, altgr: true, name: "at" }, 65: { shift: true, altgr: false, name: "A" }, 66: { shift: true, altgr: false, name: "B" }, 67: { shift: true, altgr: false, name: "C" }, 68: { shift: true, altgr: false, name: "D" }, 69: { shift: true, altgr: false, name: "E" }, 70: { shift: true, altgr: false, name: "F" }, 71: { shift: true, altgr: false, name: "G" }, 72: { shift: true, altgr: false, name: "H" }, 73: { shift: true, altgr: false, name: "I" }, 74: { shift: true, altgr: false, name: "J" }, 75: { shift: true, altgr: false, name: "K" }, 76: { shift: true, altgr: false, name: "L" }, 77: { shift: true, altgr: false, name: "M" }, 78: { shift: true, altgr: false, name: "N" }, 79: { shift: true, altgr: false, name: "O" }, 80: { shift: true, altgr: false, name: "P" }, 81: { shift: true, altgr: false, name: "Q" }, 82: { shift: true, altgr: false, name: "R" }, 83: { shift: true, altgr: false, name: "S" }, 84: { shift: true, altgr: false, name: "T" }, 85: { shift: true, altgr: false, name: "U" }, 86: { shift: true, altgr: false, name: "V" }, 87: { shift: true, altgr: false, name: "W" }, 88: { shift: true, altgr: false, name: "X" }, 89: { shift: true, altgr: false, name: "Y" }, 90: { shift: true, altgr: false, name: "Z" }, 91: { shift: false, altgr: true, name: "bracketleft" }, 92: { shift: false, altgr: false, name: "backslash" }, 93: { shift: false, altgr: true, name: "bracketright" }, 94: { shift: false, altgr: true, name: "asciicircum" }, 95: { shift: true, altgr: false, name: "underscore" }, 96: { shift: true, altgr: true, name: "grave" }, 97: { shift: false, altgr: false, name: "a" }, 98: { shift: false, altgr: false, name: "b" }, 99: { shift: false, altgr: false, name: "c" }, 100: { shift: false, altgr: false, name: "d" }, 101: { shift: false, altgr: false, name: "e" }, 102: { shift: false, altgr: false, name: "f" }, 103: { shift: false, altgr: false, name: "g" }, 104: { shift: false, altgr: false, name: "h" }, 105: { shift: false, altgr: false, name: "i" }, 106: { shift: false, altgr: false, name: "j" }, 107: { shift: false, altgr: false, name: "k" }, 108: { shift: false, altgr: false, name: "l" }, 109: { shift: false, altgr: false, name: "m" }, 110: { shift: false, altgr: false, name: "n" }, 111: { shift: false, altgr: false, name: "o" }, 112: { shift: false, altgr: false, name: "p" }, 113: { shift: false, altgr: false, name: "q" }, 114: { shift: false, altgr: false, name: "r" }, 115: { shift: false, altgr: false, name: "s" }, 116: { shift: false, altgr: false, name: "t" }, 117: { shift: false, altgr: false, name: "u" }, 118: { shift: false, altgr: false, name: "v" }, 119: { shift: false, altgr: false, name: "w" }, 120: { shift: false, altgr: false, name: "x" }, 121: { shift: false, altgr: false, name: "y" }, 122: { shift: false, altgr: false, name: "z" }, 123: { shift: false, altgr: true, name: "braceleft" }, 124: { shift: false, altgr: true, name: "bar" }, 125: { shift: false, altgr: true, name: "braceright" }, 126: { shift: false, altgr: true, name: "asciitilde" }, 161: { shift: true, altgr: true, name: "exclamdown" }, 162: { shift: false, altgr: true, name: "cent" }, 163: { shift: true, altgr: true, name: "sterling" }, 165: { shift: true, altgr: true, name: "yen" }, 166: { shift: true, altgr: true, name: "brokenbar" }, 167: { shift: true, altgr: true, name: "section" }, 169: { shift: true, altgr: true, name: "copyright" }, 170: { shift: true, altgr: true, name: "ordfeminine" }, 171: { shift: false, altgr: true, name: "guillemotleft" }, 174: { shift: true, altgr: true, name: "registered" }, 176: { shift: true, altgr: true, name: "degree" }, 177: { shift: true, altgr: true, name: "plusminus" }, 181: { shift: false, altgr: true, name: "mu" }, 182: { shift: false, altgr: true, name: "paragraph" }, 185: { shift: false, altgr: true, name: "onesuperior" }, 186: { shift: true, altgr: true, name: "masculine" }, 187: { shift: false, altgr: true, name: "guillemotright" }, 189: { shift: false, altgr: true, name: "onehalf" }, 191: { shift: true, altgr: true, name: "questiondown" }, 198: { shift: true, altgr: true, name: "AE" }, 199: { shift: true, altgr: false, name: "Ccedilla" }, 208: { shift: true, altgr: true, name: "ETH" }, 214: { shift: true, altgr: false, name: "Odiaeresis" }, 215: { shift: true, altgr: true, name: "multiply" }, 216: { shift: true, altgr: true, name: "Ooblique" }, 220: { shift: true, altgr: false, name: "Udiaeresis" }, 222: { shift: true, altgr: true, name: "THORN" }, 223: { shift: false, altgr: true, name: "ssharp" }, 230: { shift: false, altgr: true, name: "ae" }, 231: { shift: false, altgr: false, name: "ccedilla" }, 240: { shift: false, altgr: true, name: "eth" }, 246: { shift: false, altgr: false, name: "odiaeresis" }, 247: { shift: true, altgr: true, name: "division" }, 248: { shift: false, altgr: true, name: "oslash" }, 252: { shift: false, altgr: false, name: "udiaeresis" }, 254: { shift: false, altgr: true, name: "thorn" }, 419: { shift: true, altgr: true, name: "Lstroke" }, 435: { shift: false, altgr: true, name: "lstroke" }, 8364: { shift: false, altgr: true, name: "EuroSign" }, 65105: { shift: false, altgr: true, name: "dead_acute" }, 65106: { shift: false, altgr: true, name: "dead_circumflex" }, 65108: { shift: true, altgr: true, name: "dead_macron" }, 65109: { shift: true, altgr: true, name: "dead_breve" }, 65110: { shift: true, altgr: true, name: "dead_abovedot" }, 65111: { shift: false, altgr: true, name: "dead_diaeresis" }, 65112: { shift: true, altgr: true, name: "dead_abovering" }, 65113: { shift: true, altgr: true, name: "dead_doubleacute" }, 65114: { shift: true, altgr: true, name: "dead_caron" }, 65115: { shift: false, altgr: true, name: "dead_cedilla" }, 65116: { shift: true, altgr: true, name: "dead_ogonek" }, 65120: { shift: false, altgr: true, name: "dead_belowdot" }, 65288: { shift: false, altgr: false, name: "BackSpace" }, 65289: { shift: false, altgr: false, name: "Tab" }, 65293: { shift: false, altgr: false, name: "Return" }, 65300: { shift: false, altgr: false, name: "Scroll_Lock" }, 65301: { shift: false, altgr: false, name: "Sys_Req" }, 65307: { shift: false, altgr: false, name: "Escape" }, 65360: { shift: false, altgr: false, name: "Home" }, 65361: { shift: false, altgr: false, name: "Left" }, 65362: { shift: false, altgr: false, name: "Up" }, 65363: { shift: false, altgr: false, name: "Right" }, 65364: { shift: false, altgr: false, name: "Down" }, 65365: { shift: false, altgr: false, name: "Page_Up" }, 65366: { shift: false, altgr: false, name: "Page_Down" }, 65367: { shift: false, altgr: false, name: "End" }, 65377: { shift: false, altgr: false, name: "Print" }, 65379: { shift: false, altgr: false, name: "Insert" }, 65407: { shift: false, altgr: false, name: "Num_Lock" }, 65421: { shift: false, altgr: false, name: "KP_Enter" }, 65429: { shift: false, altgr: false, name: "KP_Home" }, 65430: { shift: false, altgr: false, name: "KP_Left" }, 65431: { shift: false, altgr: false, name: "KP_Up" }, 65432: { shift: false, altgr: false, name: "KP_Right" }, 65433: { shift: false, altgr: false, name: "KP_Down" }, 65434: { shift: false, altgr: false, name: "KP_Prior" }, 65435: { shift: false, altgr: false, name: "KP_Next" }, 65436: { shift: false, altgr: false, name: "KP_End" }, 65437: { shift: false, altgr: false, name: "KP_Begin" }, 65438: { shift: false, altgr: false, name: "KP_Insert" }, 65439: { shift: false, altgr: false, name: "KP_Delete" }, 65450: { shift: false, altgr: false, name: "KP_Multiply" }, 65451: { shift: false, altgr: false, name: "KP_Add" }, 65452: { shift: false, altgr: false, name: "KP_Separator" }, 65453: { shift: false, altgr: false, name: "KP_Subtract" }, 65454: { shift: false, altgr: false, name: "KP_Decimal" }, 65455: { shift: false, altgr: false, name: "KP_Divide" }, 65456: { shift: false, altgr: false, name: "KP_0" }, 65457: { shift: false, altgr: false, name: "KP_1" }, 65458: { shift: false, altgr: false, name: "KP_2" }, 65459: { shift: false, altgr: false, name: "KP_3" }, 65460: { shift: false, altgr: false, name: "KP_4" }, 65461: { shift: false, altgr: false, name: "KP_5" }, 65462: { shift: false, altgr: false, name: "KP_6" }, 65463: { shift: false, altgr: false, name: "KP_7" }, 65464: { shift: false, altgr: false, name: "KP_8" }, 65465: { shift: false, altgr: false, name: "KP_9" }, 65470: { shift: false, altgr: false, name: "F1" }, 65471: { shift: false, altgr: false, name: "F2" }, 65472: { shift: false, altgr: false, name: "F3" }, 65473: { shift: false, altgr: false, name: "F4" }, 65474: { shift: false, altgr: false, name: "F5" }, 65475: { shift: false, altgr: false, name: "F6" }, 65476: { shift: false, altgr: false, name: "F7" }, 65477: { shift: false, altgr: false, name: "F8" }, 65478: { shift: false, altgr: false, name: "F9" }, 65479: { shift: false, altgr: false, name: "F10" }, 65480: { shift: false, altgr: false, name: "F11" }, 65481: { shift: false, altgr: false, name: "F12" }, 65509: { shift: false, altgr: false, name: "Caps_Lock" }, 65535: { shift: false, altgr: false, name: "Delete" } } };