github.com/MontFerret/ferret@v0.18.0/pkg/drivers/cdp/input/layout.go (about)

     1  package input
     2  
     3  var usKeyboardLayout = map[string]KeyboardKey{
     4  	"0": {
     5  		KeyCode: 48,
     6  		Key:     "0",
     7  		Code:    "Digit0",
     8  	},
     9  	"1": {
    10  		KeyCode: 49,
    11  		Key:     "1",
    12  		Code:    "Digit1",
    13  	},
    14  	"2": {
    15  		KeyCode: 50,
    16  		Key:     "2",
    17  		Code:    "Digit2",
    18  	},
    19  	"3": {
    20  		KeyCode: 51,
    21  		Key:     "3",
    22  		Code:    "Digit3",
    23  	},
    24  	"4": {
    25  		KeyCode: 52,
    26  		Key:     "4",
    27  		Code:    "Digit4",
    28  	},
    29  	"5": {
    30  		KeyCode: 53,
    31  		Key:     "5",
    32  		Code:    "Digit5",
    33  	},
    34  	"6": {
    35  		KeyCode: 54,
    36  		Key:     "6",
    37  		Code:    "Digit6",
    38  	},
    39  	"7": {
    40  		KeyCode: 55,
    41  		Key:     "7",
    42  		Code:    "Digit7",
    43  	},
    44  	"8": {
    45  		KeyCode: 56,
    46  		Key:     "8",
    47  		Code:    "Digit8",
    48  	},
    49  	"9": {
    50  		KeyCode: 57,
    51  		Key:     "9",
    52  		Code:    "Digit9",
    53  	},
    54  	"Power": {
    55  		Key:  "Power",
    56  		Code: "Power",
    57  	},
    58  	"Eject": {
    59  		Key:  "Eject",
    60  		Code: "Eject",
    61  	},
    62  	"Abort": {
    63  		KeyCode: 3,
    64  		Code:    "Abort",
    65  		Key:     "Cancel",
    66  	},
    67  	"Help": {
    68  		KeyCode: 6,
    69  		Code:    "Help",
    70  		Key:     "Help",
    71  	},
    72  	"Backspace": {
    73  		KeyCode: 8,
    74  		Code:    "Backspace",
    75  		Key:     "Backspace",
    76  	},
    77  	"Tab": {
    78  		KeyCode: 9,
    79  		Code:    "Tab",
    80  		Key:     "Tab",
    81  	},
    82  	"Numpad5": {
    83  		KeyCode:  12,
    84  		Key:      "Clear",
    85  		Code:     "Numpad5",
    86  		Modifier: KeyboardModifierShift,
    87  		Location: 3,
    88  	},
    89  	"NumpadEnter": {
    90  		KeyCode:  13,
    91  		Code:     "NumpadEnter",
    92  		Key:      "Enter",
    93  		Location: 3,
    94  	},
    95  	"Enter": {
    96  		KeyCode: 13,
    97  		Code:    "Enter",
    98  		Key:     "Enter",
    99  	},
   100  	`\r`: {
   101  		KeyCode: 13,
   102  		Code:    "Enter",
   103  		Key:     "Enter",
   104  	},
   105  	`\n`: {
   106  		KeyCode: 13,
   107  		Code:    "Enter",
   108  		Key:     "Enter",
   109  	},
   110  	"ShiftLeft": {
   111  		KeyCode:  16,
   112  		Code:     "ShiftLeft",
   113  		Key:      "Shift",
   114  		Location: 1,
   115  	},
   116  	"ShiftRight": {
   117  		KeyCode:  16,
   118  		Code:     "ShiftRight",
   119  		Key:      "Shift",
   120  		Location: 2,
   121  	},
   122  	"ControlLeft": {
   123  		KeyCode:  17,
   124  		Code:     "ControlLeft",
   125  		Key:      "Control",
   126  		Location: 1,
   127  	},
   128  	"ControlRight": {
   129  		KeyCode:  17,
   130  		Code:     "ControlRight",
   131  		Key:      "Control",
   132  		Location: 2,
   133  	},
   134  	"AltLeft": {
   135  		KeyCode:  18,
   136  		Code:     "AltLeft",
   137  		Key:      "Alt",
   138  		Location: 1,
   139  	},
   140  	"AltRight": {
   141  		KeyCode:  18,
   142  		Code:     "AltRight",
   143  		Key:      "Alt",
   144  		Location: 2,
   145  	},
   146  	"Pause": {
   147  		KeyCode: 19,
   148  		Code:    "Pause",
   149  		Key:     "Pause",
   150  	},
   151  	"CapsLock": {
   152  		KeyCode: 20,
   153  		Code:    "CapsLock",
   154  		Key:     "CapsLock",
   155  	},
   156  	"Escape": {
   157  		KeyCode: 27,
   158  		Code:    "Escape",
   159  		Key:     "Escape",
   160  	},
   161  	"Convert": {
   162  		KeyCode: 28,
   163  		Code:    "Convert",
   164  		Key:     "Convert",
   165  	},
   166  	"NonConvert": {
   167  		KeyCode: 29,
   168  		Code:    "NonConvert",
   169  		Key:     "NonConvert",
   170  	},
   171  	"Space": {
   172  		KeyCode: 32,
   173  		Code:    "Space",
   174  		Key:     " ",
   175  	},
   176  	"Numpad9": {
   177  		KeyCode:  33,
   178  		Key:      "PageUp",
   179  		Code:     "Numpad9",
   180  		Modifier: KeyboardModifierShift,
   181  		Location: 3,
   182  	},
   183  	"PageUp": {
   184  		KeyCode: 33,
   185  		Code:    "PageUp",
   186  		Key:     "PageUp",
   187  	},
   188  	"Numpad3": {
   189  		KeyCode:  34,
   190  		Key:      "PageDown",
   191  		Code:     "Numpad3",
   192  		Modifier: KeyboardModifierShift,
   193  		Location: 3,
   194  	},
   195  	"PageDown": {
   196  		KeyCode: 34,
   197  		Code:    "PageDown",
   198  		Key:     "PageDown",
   199  	},
   200  	"End": {
   201  		KeyCode: 35,
   202  		Code:    "End",
   203  		Key:     "End",
   204  	},
   205  	"Numpad1": {
   206  		KeyCode:  35,
   207  		Key:      "End",
   208  		Code:     "Numpad1",
   209  		Modifier: KeyboardModifierShift,
   210  		Location: 3,
   211  	},
   212  	"Home": {
   213  		KeyCode: 36,
   214  		Code:    "Home",
   215  		Key:     "Home",
   216  	},
   217  	"Numpad7": {
   218  		KeyCode:  36,
   219  		Key:      "Home",
   220  		Code:     "Numpad7",
   221  		Modifier: KeyboardModifierShift,
   222  		Location: 3,
   223  	},
   224  	"ArrowLeft": {
   225  		KeyCode: 37,
   226  		Code:    "ArrowLeft",
   227  		Key:     "ArrowLeft",
   228  	},
   229  	"Numpad4": {
   230  		KeyCode:  37,
   231  		Key:      "ArrowLeft",
   232  		Code:     "Numpad4",
   233  		Modifier: KeyboardModifierShift,
   234  		Location: 3,
   235  	},
   236  	"Numpad8": {
   237  		KeyCode:  38,
   238  		Key:      "ArrowUp",
   239  		Code:     "Numpad8",
   240  		Modifier: KeyboardModifierShift,
   241  		Location: 3,
   242  	},
   243  	"ArrowUp": {
   244  		KeyCode: 38,
   245  		Code:    "ArrowUp",
   246  		Key:     "ArrowUp",
   247  	},
   248  	"ArrowRight": {
   249  		KeyCode: 39,
   250  		Code:    "ArrowRight",
   251  		Key:     "ArrowRight",
   252  	},
   253  	"Numpad6": {
   254  		KeyCode:  39,
   255  		Key:      "ArrowRight",
   256  		Code:     "Numpad6",
   257  		Modifier: KeyboardModifierShift,
   258  		Location: 3,
   259  	},
   260  	"Numpad2": {
   261  		KeyCode:  40,
   262  		Key:      "ArrowDown",
   263  		Code:     "Numpad2",
   264  		Modifier: KeyboardModifierShift,
   265  		Location: 3,
   266  	},
   267  	"ArrowDown": {
   268  		KeyCode: 40,
   269  		Code:    "ArrowDown",
   270  		Key:     "ArrowDown",
   271  	},
   272  	"Select": {
   273  		KeyCode: 41,
   274  		Code:    "Select",
   275  		Key:     "Select",
   276  	},
   277  	"Open": {
   278  		KeyCode: 43,
   279  		Code:    "Open",
   280  		Key:     "Execute",
   281  	},
   282  	"PrintScreen": {
   283  		KeyCode: 44,
   284  		Code:    "PrintScreen",
   285  		Key:     "PrintScreen",
   286  	},
   287  	"Insert": {
   288  		KeyCode: 45,
   289  		Code:    "Insert",
   290  		Key:     "Insert",
   291  	},
   292  	"Numpad0": {
   293  		KeyCode: 45,
   294  		// "shiftKeyCode": 96,
   295  		Key:      "Insert",
   296  		Code:     "Numpad0",
   297  		Modifier: KeyboardModifierShift,
   298  		Location: 3,
   299  	},
   300  	"Delete": {
   301  		KeyCode: 46,
   302  		Code:    "Delete",
   303  		Key:     "Delete",
   304  	},
   305  	"NumpadDecimal": {
   306  		KeyCode: 46,
   307  		// "shiftKeyCode": 110,
   308  		Code:     "NumpadDecimal",
   309  		Key:      "\u0000",
   310  		Modifier: KeyboardModifierShift,
   311  		Location: 3,
   312  	},
   313  	"Digit0": {
   314  		KeyCode:  48,
   315  		Code:     "Digit0",
   316  		Modifier: KeyboardModifierShift,
   317  		Key:      "0",
   318  	},
   319  	"Digit1": {
   320  		KeyCode:  49,
   321  		Code:     "Digit1",
   322  		Modifier: KeyboardModifierShift,
   323  		Key:      "1",
   324  	},
   325  	"Digit2": {
   326  		KeyCode:  50,
   327  		Code:     "Digit2",
   328  		Modifier: KeyboardModifierShift,
   329  		Key:      "2",
   330  	},
   331  	"Digit3": {
   332  		KeyCode:  51,
   333  		Code:     "Digit3",
   334  		Modifier: KeyboardModifierShift,
   335  		Key:      "3",
   336  	},
   337  	"Digit4": {
   338  		KeyCode:  52,
   339  		Code:     "Digit4",
   340  		Modifier: KeyboardModifierShift,
   341  		Key:      "4",
   342  	},
   343  	"Digit5": {
   344  		KeyCode:  53,
   345  		Code:     "Digit5",
   346  		Modifier: KeyboardModifierShift,
   347  		Key:      "5",
   348  	},
   349  	"Digit6": {
   350  		KeyCode:  54,
   351  		Code:     "Digit6",
   352  		Modifier: KeyboardModifierShift,
   353  		Key:      "6",
   354  	},
   355  	"Digit7": {
   356  		KeyCode:  55,
   357  		Code:     "Digit7",
   358  		Modifier: KeyboardModifierShift,
   359  		Key:      "7",
   360  	},
   361  	"Digit8": {
   362  		KeyCode:  56,
   363  		Code:     "Digit8",
   364  		Modifier: KeyboardModifierShift,
   365  		Key:      "8",
   366  	},
   367  	"Digit9": {
   368  		KeyCode:  57,
   369  		Code:     "Digit9",
   370  		Modifier: KeyboardModifierShift,
   371  		Key:      "9",
   372  	},
   373  	"KeyA": {
   374  		KeyCode:  65,
   375  		Code:     "KeyA",
   376  		Modifier: KeyboardModifierShift,
   377  		Key:      "a",
   378  	},
   379  	"KeyB": {
   380  		KeyCode:  66,
   381  		Code:     "KeyB",
   382  		Modifier: KeyboardModifierShift,
   383  		Key:      "b",
   384  	},
   385  	"KeyC": {
   386  		KeyCode:  67,
   387  		Code:     "KeyC",
   388  		Modifier: KeyboardModifierShift,
   389  		Key:      "c",
   390  	},
   391  	"KeyD": {
   392  		KeyCode:  68,
   393  		Code:     "KeyD",
   394  		Modifier: KeyboardModifierShift,
   395  		Key:      "d",
   396  	},
   397  	"KeyE": {
   398  		KeyCode:  69,
   399  		Code:     "KeyE",
   400  		Modifier: KeyboardModifierShift,
   401  		Key:      "e",
   402  	},
   403  	"KeyF": {
   404  		KeyCode:  70,
   405  		Code:     "KeyF",
   406  		Modifier: KeyboardModifierShift,
   407  		Key:      "f",
   408  	},
   409  	"KeyG": {
   410  		KeyCode:  71,
   411  		Code:     "KeyG",
   412  		Modifier: KeyboardModifierShift,
   413  		Key:      "g",
   414  	},
   415  	"KeyH": {
   416  		KeyCode:  72,
   417  		Code:     "KeyH",
   418  		Modifier: KeyboardModifierShift,
   419  		Key:      "h",
   420  	},
   421  	"KeyI": {
   422  		KeyCode:  73,
   423  		Code:     "KeyI",
   424  		Modifier: KeyboardModifierShift,
   425  		Key:      "i",
   426  	},
   427  	"KeyJ": {
   428  		KeyCode:  74,
   429  		Code:     "KeyJ",
   430  		Modifier: KeyboardModifierShift,
   431  		Key:      "j",
   432  	},
   433  	"KeyK": {
   434  		KeyCode:  75,
   435  		Code:     "KeyK",
   436  		Modifier: KeyboardModifierShift,
   437  		Key:      "k",
   438  	},
   439  	"KeyL": {
   440  		KeyCode:  76,
   441  		Code:     "KeyL",
   442  		Modifier: KeyboardModifierShift,
   443  		Key:      "l",
   444  	},
   445  	"KeyM": {
   446  		KeyCode:  77,
   447  		Code:     "KeyM",
   448  		Modifier: KeyboardModifierShift,
   449  		Key:      "m",
   450  	},
   451  	"KeyN": {
   452  		KeyCode:  78,
   453  		Code:     "KeyN",
   454  		Modifier: KeyboardModifierShift,
   455  		Key:      "n",
   456  	},
   457  	"KeyO": {
   458  		KeyCode:  79,
   459  		Code:     "KeyO",
   460  		Modifier: KeyboardModifierShift,
   461  		Key:      "o",
   462  	},
   463  	"KeyP": {
   464  		KeyCode:  80,
   465  		Code:     "KeyP",
   466  		Modifier: KeyboardModifierShift,
   467  		Key:      "p",
   468  	},
   469  	"KeyQ": {
   470  		KeyCode:  81,
   471  		Code:     "KeyQ",
   472  		Modifier: KeyboardModifierShift,
   473  		Key:      "q",
   474  	},
   475  	"KeyR": {
   476  		KeyCode:  82,
   477  		Code:     "KeyR",
   478  		Modifier: KeyboardModifierShift,
   479  		Key:      "r",
   480  	},
   481  	"KeyS": {
   482  		KeyCode:  83,
   483  		Code:     "KeyS",
   484  		Modifier: KeyboardModifierShift,
   485  		Key:      "s",
   486  	},
   487  	"KeyT": {
   488  		KeyCode:  84,
   489  		Code:     "KeyT",
   490  		Modifier: KeyboardModifierShift,
   491  		Key:      "t",
   492  	},
   493  	"KeyU": {
   494  		KeyCode:  85,
   495  		Code:     "KeyU",
   496  		Modifier: KeyboardModifierShift,
   497  		Key:      "u",
   498  	},
   499  	"KeyV": {
   500  		KeyCode:  86,
   501  		Code:     "KeyV",
   502  		Modifier: KeyboardModifierShift,
   503  		Key:      "v",
   504  	},
   505  	"KeyW": {
   506  		KeyCode:  87,
   507  		Code:     "KeyW",
   508  		Modifier: KeyboardModifierShift,
   509  		Key:      "w",
   510  	},
   511  	"KeyX": {
   512  		KeyCode:  88,
   513  		Code:     "KeyX",
   514  		Modifier: KeyboardModifierShift,
   515  		Key:      "x",
   516  	},
   517  	"KeyY": {
   518  		KeyCode:  89,
   519  		Code:     "KeyY",
   520  		Modifier: KeyboardModifierShift,
   521  		Key:      "y",
   522  	},
   523  	"KeyZ": {
   524  		KeyCode:  90,
   525  		Code:     "KeyZ",
   526  		Modifier: KeyboardModifierShift,
   527  		Key:      "z",
   528  	},
   529  	"MetaLeft": {
   530  		KeyCode:  91,
   531  		Code:     "MetaLeft",
   532  		Key:      "Meta",
   533  		Location: 1,
   534  	},
   535  	"MetaRight": {
   536  		KeyCode:  92,
   537  		Code:     "MetaRight",
   538  		Key:      "Meta",
   539  		Location: 2,
   540  	},
   541  	"ContextMenu": {
   542  		KeyCode: 93,
   543  		Code:    "ContextMenu",
   544  		Key:     "ContextMenu",
   545  	},
   546  	"NumpadMultiply": {
   547  		KeyCode:  106,
   548  		Code:     "NumpadMultiply",
   549  		Key:      "*",
   550  		Location: 3,
   551  	},
   552  	"NumpadAdd": {
   553  		KeyCode:  107,
   554  		Code:     "NumpadAdd",
   555  		Key:      "+",
   556  		Location: 3,
   557  	},
   558  	"NumpadSubtract": {
   559  		KeyCode:  109,
   560  		Code:     "NumpadSubtract",
   561  		Key:      "-",
   562  		Location: 3,
   563  	},
   564  	"NumpadDivide": {
   565  		KeyCode:  111,
   566  		Code:     "NumpadDivide",
   567  		Key:      "/",
   568  		Location: 3,
   569  	},
   570  	"F1": {
   571  		KeyCode: 112,
   572  		Code:    "F1",
   573  		Key:     "F1",
   574  	},
   575  	"F2": {
   576  		KeyCode: 113,
   577  		Code:    "F2",
   578  		Key:     "F2",
   579  	},
   580  	"F3": {
   581  		KeyCode: 114,
   582  		Code:    "F3",
   583  		Key:     "F3",
   584  	},
   585  	"F4": {
   586  		KeyCode: 115,
   587  		Code:    "F4",
   588  		Key:     "F4",
   589  	},
   590  	"F5": {
   591  		KeyCode: 116,
   592  		Code:    "F5",
   593  		Key:     "F5",
   594  	},
   595  	"F6": {
   596  		KeyCode: 117,
   597  		Code:    "F6",
   598  		Key:     "F6",
   599  	},
   600  	"F7": {
   601  		KeyCode: 118,
   602  		Code:    "F7",
   603  		Key:     "F7",
   604  	},
   605  	"F8": {
   606  		KeyCode: 119,
   607  		Code:    "F8",
   608  		Key:     "F8",
   609  	},
   610  	"F9": {
   611  		KeyCode: 120,
   612  		Code:    "F9",
   613  		Key:     "F9",
   614  	},
   615  	"F10": {
   616  		KeyCode: 121,
   617  		Code:    "F10",
   618  		Key:     "F10",
   619  	},
   620  	"F11": {
   621  		KeyCode: 122,
   622  		Code:    "F11",
   623  		Key:     "F11",
   624  	},
   625  	"F12": {
   626  		KeyCode: 123,
   627  		Code:    "F12",
   628  		Key:     "F12",
   629  	},
   630  	"F13": {
   631  		KeyCode: 124,
   632  		Code:    "F13",
   633  		Key:     "F13",
   634  	},
   635  	"F14": {
   636  		KeyCode: 125,
   637  		Code:    "F14",
   638  		Key:     "F14",
   639  	},
   640  	"F15": {
   641  		KeyCode: 126,
   642  		Code:    "F15",
   643  		Key:     "F15",
   644  	},
   645  	"F16": {
   646  		KeyCode: 127,
   647  		Code:    "F16",
   648  		Key:     "F16",
   649  	},
   650  	"F17": {
   651  		KeyCode: 128,
   652  		Code:    "F17",
   653  		Key:     "F17",
   654  	},
   655  	"F18": {
   656  		KeyCode: 129,
   657  		Code:    "F18",
   658  		Key:     "F18",
   659  	},
   660  	"F19": {
   661  		KeyCode: 130,
   662  		Code:    "F19",
   663  		Key:     "F19",
   664  	},
   665  	"F20": {
   666  		KeyCode: 131,
   667  		Code:    "F20",
   668  		Key:     "F20",
   669  	},
   670  	"F21": {
   671  		KeyCode: 132,
   672  		Code:    "F21",
   673  		Key:     "F21",
   674  	},
   675  	"F22": {
   676  		KeyCode: 133,
   677  		Code:    "F22",
   678  		Key:     "F22",
   679  	},
   680  	"F23": {
   681  		KeyCode: 134,
   682  		Code:    "F23",
   683  		Key:     "F23",
   684  	},
   685  	"F24": {
   686  		KeyCode: 135,
   687  		Code:    "F24",
   688  		Key:     "F24",
   689  	},
   690  	"NumLock": {
   691  		KeyCode: 144,
   692  		Code:    "NumLock",
   693  		Key:     "NumLock",
   694  	},
   695  	"ScrollLock": {
   696  		KeyCode: 145,
   697  		Code:    "ScrollLock",
   698  		Key:     "ScrollLock",
   699  	},
   700  	"AudioVolumeMute": {
   701  		KeyCode: 173,
   702  		Code:    "AudioVolumeMute",
   703  		Key:     "AudioVolumeMute",
   704  	},
   705  	"AudioVolumeDown": {
   706  		KeyCode: 174,
   707  		Code:    "AudioVolumeDown",
   708  		Key:     "AudioVolumeDown",
   709  	},
   710  	"AudioVolumeUp": {
   711  		KeyCode: 175,
   712  		Code:    "AudioVolumeUp",
   713  		Key:     "AudioVolumeUp",
   714  	},
   715  	"MediaTrackNext": {
   716  		KeyCode: 176,
   717  		Code:    "MediaTrackNext",
   718  		Key:     "MediaTrackNext",
   719  	},
   720  	"MediaTrackPrevious": {
   721  		KeyCode: 177,
   722  		Code:    "MediaTrackPrevious",
   723  		Key:     "MediaTrackPrevious",
   724  	},
   725  	"MediaStop": {
   726  		KeyCode: 178,
   727  		Code:    "MediaStop",
   728  		Key:     "MediaStop",
   729  	},
   730  	"MediaPlayPause": {
   731  		KeyCode: 179,
   732  		Code:    "MediaPlayPause",
   733  		Key:     "MediaPlayPause",
   734  	},
   735  	"Semicolon": {
   736  		KeyCode: 186,
   737  		Code:    "Semicolon",
   738  		Key:     ";",
   739  	},
   740  	"Equal": {
   741  		KeyCode: 187,
   742  		Code:    "Equal",
   743  		Key:     "=",
   744  	},
   745  	"NumpadEqual": {
   746  		KeyCode:  187,
   747  		Code:     "NumpadEqual",
   748  		Key:      "=",
   749  		Location: 3,
   750  	},
   751  	"Comma": {
   752  		KeyCode: 188,
   753  		Code:    "Comma",
   754  		Key:     ",",
   755  	},
   756  	"Minus": {
   757  		KeyCode: 189,
   758  		Code:    "Minus",
   759  		Key:     "-",
   760  	},
   761  	"Period": {
   762  		KeyCode: 190,
   763  		Code:    "Period",
   764  		Key:     ".",
   765  	},
   766  	"Slash": {
   767  		KeyCode: 191,
   768  		Code:    "Slash",
   769  		Key:     "/",
   770  	},
   771  	"Backquote": {
   772  		KeyCode: 192,
   773  		Code:    "Backquote",
   774  		Key:     "`",
   775  	},
   776  	"BracketLeft": {
   777  		KeyCode: 219,
   778  		Code:    "BracketLeft",
   779  		Key:     "[",
   780  	},
   781  	"Backslash": {
   782  		KeyCode: 220,
   783  		Code:    "Backslash",
   784  		Key:     "\\",
   785  	},
   786  	"BracketRight": {
   787  		KeyCode: 221,
   788  		Code:    "BracketRight",
   789  		Key:     "]",
   790  	},
   791  	"Quote": {
   792  		KeyCode: 222,
   793  		Code:    "Quote",
   794  		Key:     "\"",
   795  	},
   796  	"AltGraph": {
   797  		KeyCode: 225,
   798  		Code:    "AltGraph",
   799  		Key:     "AltGraph",
   800  	},
   801  	"Props": {
   802  		KeyCode: 247,
   803  		Code:    "Props",
   804  		Key:     "CrSel",
   805  	},
   806  	"Cancel": {
   807  		KeyCode: 3,
   808  		Key:     "Cancel",
   809  		Code:    "Abort",
   810  	},
   811  	"Clear": {
   812  		KeyCode:  12,
   813  		Key:      "Clear",
   814  		Code:     "Numpad5",
   815  		Location: 3,
   816  	},
   817  	"Shift": {
   818  		KeyCode:  16,
   819  		Key:      "Shift",
   820  		Code:     "ShiftLeft",
   821  		Location: 1,
   822  	},
   823  	"Control": {
   824  		KeyCode:  17,
   825  		Key:      "Control",
   826  		Code:     "ControlLeft",
   827  		Location: 1,
   828  	},
   829  	"Alt": {
   830  		KeyCode:  18,
   831  		Key:      "Alt",
   832  		Code:     "AltLeft",
   833  		Location: 1,
   834  	},
   835  	"Accept": {
   836  		KeyCode: 30,
   837  		Key:     "Accept",
   838  	},
   839  	"ModeChange": {
   840  		KeyCode: 31,
   841  		Key:     "ModeChange",
   842  	},
   843  	" ": {
   844  		KeyCode: 32,
   845  		Key:     " ",
   846  		Code:    "Space",
   847  	},
   848  	"Print": {
   849  		KeyCode: 42,
   850  		Key:     "Print",
   851  	},
   852  	"Execute": {
   853  		KeyCode: 43,
   854  		Key:     "Execute",
   855  		Code:    "Open",
   856  	},
   857  	"": {
   858  		KeyCode:  46,
   859  		Key:      "\u0000",
   860  		Code:     "NumpadDecimal",
   861  		Location: 3,
   862  	},
   863  	"a": {
   864  		KeyCode: 65,
   865  		Key:     "a",
   866  		Code:    "KeyA",
   867  	},
   868  	"b": {
   869  		KeyCode: 66,
   870  		Key:     "b",
   871  		Code:    "KeyB",
   872  	},
   873  	"c": {
   874  		KeyCode: 67,
   875  		Key:     "c",
   876  		Code:    "KeyC",
   877  	},
   878  	"d": {
   879  		KeyCode: 68,
   880  		Key:     "d",
   881  		Code:    "KeyD",
   882  	},
   883  	"e": {
   884  		KeyCode: 69,
   885  		Key:     "e",
   886  		Code:    "KeyE",
   887  	},
   888  	"f": {
   889  		KeyCode: 70,
   890  		Key:     "f",
   891  		Code:    "KeyF",
   892  	},
   893  	"g": {
   894  		KeyCode: 71,
   895  		Key:     "g",
   896  		Code:    "KeyG",
   897  	},
   898  	"h": {
   899  		KeyCode: 72,
   900  		Key:     "h",
   901  		Code:    "KeyH",
   902  	},
   903  	"i": {
   904  		KeyCode: 73,
   905  		Key:     "i",
   906  		Code:    "KeyI",
   907  	},
   908  	"j": {
   909  		KeyCode: 74,
   910  		Key:     "j",
   911  		Code:    "KeyJ",
   912  	},
   913  	"k": {
   914  		KeyCode: 75,
   915  		Key:     "k",
   916  		Code:    "KeyK",
   917  	},
   918  	"l": {
   919  		KeyCode: 76,
   920  		Key:     "l",
   921  		Code:    "KeyL",
   922  	},
   923  	"m": {
   924  		KeyCode: 77,
   925  		Key:     "m",
   926  		Code:    "KeyM",
   927  	},
   928  	"n": {
   929  		KeyCode: 78,
   930  		Key:     "n",
   931  		Code:    "KeyN",
   932  	},
   933  	"o": {
   934  		KeyCode: 79,
   935  		Key:     "o",
   936  		Code:    "KeyO",
   937  	},
   938  	"p": {
   939  		KeyCode: 80,
   940  		Key:     "p",
   941  		Code:    "KeyP",
   942  	},
   943  	"q": {
   944  		KeyCode: 81,
   945  		Key:     "q",
   946  		Code:    "KeyQ",
   947  	},
   948  	"r": {
   949  		KeyCode: 82,
   950  		Key:     "r",
   951  		Code:    "KeyR",
   952  	},
   953  	"s": {
   954  		KeyCode: 83,
   955  		Key:     "s",
   956  		Code:    "KeyS",
   957  	},
   958  	"t": {
   959  		KeyCode: 84,
   960  		Key:     "t",
   961  		Code:    "KeyT",
   962  	},
   963  	"u": {
   964  		KeyCode: 85,
   965  		Key:     "u",
   966  		Code:    "KeyU",
   967  	},
   968  	"v": {
   969  		KeyCode: 86,
   970  		Key:     "v",
   971  		Code:    "KeyV",
   972  	},
   973  	"w": {
   974  		KeyCode: 87,
   975  		Key:     "w",
   976  		Code:    "KeyW",
   977  	},
   978  	"x": {
   979  		KeyCode: 88,
   980  		Key:     "x",
   981  		Code:    "KeyX",
   982  	},
   983  	"y": {
   984  		KeyCode: 89,
   985  		Key:     "y",
   986  		Code:    "KeyY",
   987  	},
   988  	"z": {
   989  		KeyCode: 90,
   990  		Key:     "z",
   991  		Code:    "KeyZ",
   992  	},
   993  	"Meta": {
   994  		KeyCode:  91,
   995  		Key:      "Meta",
   996  		Code:     "MetaLeft",
   997  		Location: 1,
   998  	},
   999  	"*": {
  1000  		KeyCode:  106,
  1001  		Key:      "*",
  1002  		Code:     "NumpadMultiply",
  1003  		Location: 3,
  1004  	},
  1005  	"+": {
  1006  		KeyCode:  107,
  1007  		Key:      "+",
  1008  		Code:     "NumpadAdd",
  1009  		Location: 3,
  1010  	},
  1011  	"-": {
  1012  		KeyCode:  109,
  1013  		Key:      "-",
  1014  		Code:     "NumpadSubtract",
  1015  		Location: 3,
  1016  	},
  1017  	"/": {
  1018  		KeyCode:  111,
  1019  		Key:      "/",
  1020  		Code:     "NumpadDivide",
  1021  		Location: 3,
  1022  	},
  1023  	";": {
  1024  		KeyCode: 186,
  1025  		Key:     ";",
  1026  		Code:    "Semicolon",
  1027  	},
  1028  	"=": {
  1029  		KeyCode: 187,
  1030  		Key:     "=",
  1031  		Code:    "Equal",
  1032  	},
  1033  	",": {
  1034  		KeyCode: 188,
  1035  		Key:     ",",
  1036  		Code:    "Comma",
  1037  	},
  1038  	".": {
  1039  		KeyCode: 190,
  1040  		Key:     ".",
  1041  		Code:    "Period",
  1042  	},
  1043  	"`": {
  1044  		KeyCode: 192,
  1045  		Key:     "`",
  1046  		Code:    "Backquote",
  1047  	},
  1048  	"[": {
  1049  		KeyCode: 219,
  1050  		Key:     "[",
  1051  		Code:    "BracketLeft",
  1052  	},
  1053  	`\`: {
  1054  		KeyCode: 220,
  1055  		Key:     "\\",
  1056  		Code:    "Backslash",
  1057  	},
  1058  	"]": {
  1059  		KeyCode: 221,
  1060  		Key:     "]",
  1061  		Code:    "BracketRight",
  1062  	},
  1063  	`"`: {
  1064  		KeyCode: 222,
  1065  		Key:     "\"",
  1066  		Code:    "Quote",
  1067  	},
  1068  	"Attn": {
  1069  		KeyCode: 246,
  1070  		Key:     "Attn",
  1071  	},
  1072  	"CrSel": {
  1073  		KeyCode: 247,
  1074  		Key:     "CrSel",
  1075  		Code:    "Props",
  1076  	},
  1077  	"ExSel": {
  1078  		KeyCode: 248,
  1079  		Key:     "ExSel",
  1080  	},
  1081  	"EraseEof": {
  1082  		KeyCode: 249,
  1083  		Key:     "EraseEof",
  1084  	},
  1085  	"Play": {
  1086  		KeyCode: 250,
  1087  		Key:     "Play",
  1088  	},
  1089  	"ZoomOut": {
  1090  		KeyCode: 251,
  1091  		Key:     "ZoomOut",
  1092  	},
  1093  	")": {
  1094  		KeyCode: 48,
  1095  		Key:     ")",
  1096  		Code:    "Digit0",
  1097  	},
  1098  	"!": {
  1099  		KeyCode: 49,
  1100  		Key:     "!",
  1101  		Code:    "Digit1",
  1102  	},
  1103  	"@": {
  1104  		KeyCode: 50,
  1105  		Key:     "@",
  1106  		Code:    "Digit2",
  1107  	},
  1108  	"#": {
  1109  		KeyCode: 51,
  1110  		Key:     "#",
  1111  		Code:    "Digit3",
  1112  	},
  1113  	"$": {
  1114  		KeyCode: 52,
  1115  		Key:     "$",
  1116  		Code:    "Digit4",
  1117  	},
  1118  	"%": {
  1119  		KeyCode: 53,
  1120  		Key:     "%",
  1121  		Code:    "Digit5",
  1122  	},
  1123  	"^": {
  1124  		KeyCode: 54,
  1125  		Key:     "^",
  1126  		Code:    "Digit6",
  1127  	},
  1128  	"&": {
  1129  		KeyCode: 55,
  1130  		Key:     "&",
  1131  		Code:    "Digit7",
  1132  	},
  1133  	"(": {
  1134  		KeyCode: 57,
  1135  		Key:     "\\(",
  1136  		Code:    "Digit9",
  1137  	},
  1138  	"A": {
  1139  		KeyCode: 65,
  1140  		Key:     "A",
  1141  		Code:    "KeyA",
  1142  	},
  1143  	"B": {
  1144  		KeyCode: 66,
  1145  		Key:     "B",
  1146  		Code:    "KeyB",
  1147  	},
  1148  	"C": {
  1149  		KeyCode: 67,
  1150  		Key:     "C",
  1151  		Code:    "KeyC",
  1152  	},
  1153  	"D": {
  1154  		KeyCode: 68,
  1155  		Key:     "D",
  1156  		Code:    "KeyD",
  1157  	},
  1158  	"E": {
  1159  		KeyCode: 69,
  1160  		Key:     "E",
  1161  		Code:    "KeyE",
  1162  	},
  1163  	"F": {
  1164  		KeyCode: 70,
  1165  		Key:     "F",
  1166  		Code:    "KeyF",
  1167  	},
  1168  	"G": {
  1169  		KeyCode: 71,
  1170  		Key:     "G",
  1171  		Code:    "KeyG",
  1172  	},
  1173  	"H": {
  1174  		KeyCode: 72,
  1175  		Key:     "H",
  1176  		Code:    "KeyH",
  1177  	},
  1178  	"I": {
  1179  		KeyCode: 73,
  1180  		Key:     "I",
  1181  		Code:    "KeyI",
  1182  	},
  1183  	"J": {
  1184  		KeyCode: 74,
  1185  		Key:     "J",
  1186  		Code:    "KeyJ",
  1187  	},
  1188  	"K": {
  1189  		KeyCode: 75,
  1190  		Key:     "K",
  1191  		Code:    "KeyK",
  1192  	},
  1193  	"L": {
  1194  		KeyCode: 76,
  1195  		Key:     "L",
  1196  		Code:    "KeyL",
  1197  	},
  1198  	"M": {
  1199  		KeyCode: 77,
  1200  		Key:     "M",
  1201  		Code:    "KeyM",
  1202  	},
  1203  	"N": {
  1204  		KeyCode: 78,
  1205  		Key:     "N",
  1206  		Code:    "KeyN",
  1207  	},
  1208  	"O": {
  1209  		KeyCode: 79,
  1210  		Key:     "O",
  1211  		Code:    "KeyO",
  1212  	},
  1213  	"P": {
  1214  		KeyCode: 80,
  1215  		Key:     "P",
  1216  		Code:    "KeyP",
  1217  	},
  1218  	"Q": {
  1219  		KeyCode: 81,
  1220  		Key:     "Q",
  1221  		Code:    "KeyQ",
  1222  	},
  1223  	"R": {
  1224  		KeyCode: 82,
  1225  		Key:     "R",
  1226  		Code:    "KeyR",
  1227  	},
  1228  	"S": {
  1229  		KeyCode: 83,
  1230  		Key:     "S",
  1231  		Code:    "KeyS",
  1232  	},
  1233  	"T": {
  1234  		KeyCode: 84,
  1235  		Key:     "T",
  1236  		Code:    "KeyT",
  1237  	},
  1238  	"U": {
  1239  		KeyCode: 85,
  1240  		Key:     "U",
  1241  		Code:    "KeyU",
  1242  	},
  1243  	"V": {
  1244  		KeyCode: 86,
  1245  		Key:     "V",
  1246  		Code:    "KeyV",
  1247  	},
  1248  	"W": {
  1249  		KeyCode: 87,
  1250  		Key:     "W",
  1251  		Code:    "KeyW",
  1252  	},
  1253  	"X": {
  1254  		KeyCode: 88,
  1255  		Key:     "X",
  1256  		Code:    "KeyX",
  1257  	},
  1258  	"Y": {
  1259  		KeyCode: 89,
  1260  		Key:     "Y",
  1261  		Code:    "KeyY",
  1262  	},
  1263  	"Z": {
  1264  		KeyCode: 90,
  1265  		Key:     "Z",
  1266  		Code:    "KeyZ",
  1267  	},
  1268  	":": {
  1269  		KeyCode: 186,
  1270  		Key:     ":",
  1271  		Code:    "Semicolon",
  1272  	},
  1273  	"<": {
  1274  		KeyCode: 188,
  1275  		Key:     "\\<",
  1276  		Code:    "Comma",
  1277  	},
  1278  	"_": {
  1279  		KeyCode: 189,
  1280  		Key:     "_",
  1281  		Code:    "Minus",
  1282  	},
  1283  	">": {
  1284  		KeyCode: 190,
  1285  		Key:     ">",
  1286  		Code:    "Period",
  1287  	},
  1288  	"?": {
  1289  		KeyCode: 191,
  1290  		Key:     "?",
  1291  		Code:    "Slash",
  1292  	},
  1293  	"~": {
  1294  		KeyCode: 192,
  1295  		Key:     "~",
  1296  		Code:    "Backquote",
  1297  	},
  1298  	"{": {
  1299  		KeyCode: 219,
  1300  		Key:     "{",
  1301  		Code:    "BracketLeft",
  1302  	},
  1303  	"|": {
  1304  		KeyCode: 220,
  1305  		Key:     "|",
  1306  		Code:    "Backslash",
  1307  	},
  1308  	"}": {
  1309  		KeyCode: 221,
  1310  		Key:     "}",
  1311  		Code:    "BracketRight",
  1312  	},
  1313  	"SoftLeft": {
  1314  		Key:      "SoftLeft",
  1315  		Code:     "SoftLeft",
  1316  		Location: 4,
  1317  	},
  1318  	"SoftRight": {
  1319  		Key:      "SoftRight",
  1320  		Code:     "SoftRight",
  1321  		Location: 4,
  1322  	},
  1323  	"Camera": {
  1324  		KeyCode:  44,
  1325  		Key:      "Camera",
  1326  		Code:     "Camera",
  1327  		Location: 4,
  1328  	},
  1329  	"Call": {
  1330  		Key:      "Call",
  1331  		Code:     "Call",
  1332  		Location: 4,
  1333  	},
  1334  	"EndCall": {
  1335  		KeyCode:  95,
  1336  		Key:      "EndCall",
  1337  		Code:     "EndCall",
  1338  		Location: 4,
  1339  	},
  1340  	"VolumeDown": {
  1341  		KeyCode:  182,
  1342  		Key:      "VolumeDown",
  1343  		Code:     "VolumeDown",
  1344  		Location: 4,
  1345  	},
  1346  	"VolumeUp": {
  1347  		KeyCode:  183,
  1348  		Key:      "VolumeUp",
  1349  		Code:     "VolumeUp",
  1350  		Location: 4,
  1351  	},
  1352  }