1061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown# Copyright (C) 2010 The Android Open Source Project
2061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown#
3061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown# Licensed under the Apache License, Version 2.0 (the "License");
4061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown# you may not use this file except in compliance with the License.
5061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown# You may obtain a copy of the License at
6061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown#
7061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown#      http://www.apache.org/licenses/LICENSE-2.0
8061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown#
9061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown# Unless required by applicable law or agreed to in writing, software
10061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown# distributed under the License is distributed on an "AS IS" BASIS,
11061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown# See the License for the specific language governing permissions and
13061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown# limitations under the License.
14061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
15061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown#
16061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown# Emulator keyboard character map #2.
17061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown#
18061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
19061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Browntype ALPHA
20061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
21061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey A {
22061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'A'
23061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '2'
24061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               'a'
25061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'A'
26061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                'a'
27061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            'A'
28061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
29061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
30061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey B {
31061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'B'
32061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '2'
33061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               'b'
34061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'B'
35061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                'b'
36061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            'B'
37061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
38061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
39061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey C {
40061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'C'
41061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '2'
42061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               'c'
43061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'C'
44061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '\u00e7'
45061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            '\u00e7'
46061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
47061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
48061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey D {
49061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'D'
50061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '3'
51061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               'd'
52061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'D'
53061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '\''
54061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            '\''
55061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
56061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
57061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey E {
58061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'E'
59061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '3'
60061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               'e'
61061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'E'
62061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '"'
63061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            '\u0301'
64061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
65061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
66061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey F {
67061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'F'
68061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '3'
69061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               'f'
70061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'F'
71061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '['
72061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            '['
73061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
74061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
75061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey G {
76061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'G'
77061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '4'
78061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               'g'
79061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'G'
80061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                ']'
81061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            ']'
82061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
83061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
84061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey H {
85061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'H'
86061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '4'
87061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               'h'
88061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'H'
89061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '<'
90061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            '<'
91061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
92061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
93061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey I {
94061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'I'
95061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '4'
96061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               'i'
97061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'I'
98061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '-'
99061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            '\u0302'
100061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
101061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
102061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey J {
103061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'J'
104061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '5'
105061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               'j'
106061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'J'
107061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '>'
108061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            '>'
109061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
110061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
111061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey K {
112061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'K'
113061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '5'
114061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               'k'
115061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'K'
116061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                ';'
117061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            '~'
118061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
119061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
120061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey L {
121061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'L'
122061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '5'
123061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               'l'
124061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'L'
125061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                ':'
126061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            '`'
127061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
128061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
129061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey M {
130061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'M'
131061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '6'
132061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               'm'
133061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'M'
134061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '%'
135061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            none
136061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
137061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
138061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey N {
139061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'N'
140061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '6'
141061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               'n'
142061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'N'
143061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                none
144061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            '\u0303'
145061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
146061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
147061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey O {
148061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'O'
149061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '6'
150061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               'o'
151061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'O'
152061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '+'
153061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            '+'
154061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
155061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
156061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey P {
157061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'P'
158061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '7'
159061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               'p'
160061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'P'
161061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '='
162061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            '\u00a5'
163061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
164061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
165061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey Q {
166061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'Q'
167061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '7'
168061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               'q'
169061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'Q'
170061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '|'
171061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            '\u0300'
172061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
173061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
174061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey R {
175061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'R'
176061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '7'
177061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               'r'
178061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'R'
179061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '`'
180061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            '\u20ac'
181061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
182061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
183061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey S {
184061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'S'
185061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '7'
186061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               's'
187061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'S'
188061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '\\'
189061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            '\u00df'
190061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
191061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
192061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey T {
193061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'T'
194061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '8'
195061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               't'
196061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'T'
197061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '{'
198061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            '\u00a3'
199061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
200061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
201061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey U {
202061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'U'
203061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '8'
204061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               'u'
205061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'U'
206061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '_'
207061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            '\u0308'
208061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
209061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
210061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey V {
211061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'V'
212061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '8'
213061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               'v'
214061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'V'
215061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                'v'
216061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            'V'
217061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
218061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
219061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey W {
220061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'W'
221061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '9'
222061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               'w'
223061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'W'
224061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '~'
225061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            '~'
226061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
227061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
228061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey X {
229061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'X'
230061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '9'
231061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               'x'
232061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'X'
233061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                'x'
234061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            '\uef00'
235061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
236061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
237061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey Y {
238061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'Y'
239061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '9'
240061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               'y'
241061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'Y'
242061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '}'
243061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            '\u00a1'
244061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
245061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
246061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey Z {
247061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              'Z'
248061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '9'
249061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               'z'
250061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift, capslock:                    'Z'
251061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                'z'
252061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt, capslock+alt:            'Z'
253061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
254061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
255061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey COMMA {
256061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              ','
257061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             ','
258061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               ','
259061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              '<'
260061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                ','
261061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          ','
262061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
263061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
264061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey PERIOD {
265061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              '.'
266061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '.'
267061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               '.'
268061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              '>'
269061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '.'
270061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          '\u2026'
271061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
272061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
273061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey AT {
274061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              '@'
275061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '@'
276061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               '@'
277061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              '@'
278061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '@'
279061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          '\u2022'
280061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
281061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
282061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey SLASH {
283061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              '/'
284061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '/'
285061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               '/'
286061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              '?'
287061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '?'
288061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          '?'
289061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
290061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
291061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey SPACE {
292061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              ' '
293061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             ' '
294061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               ' '
295061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              ' '
296061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '\uef01'
297061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          '\uef01'
298061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
299061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
300061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey ENTER {
301061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              '\n'
302061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '\n'
303061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               '\n'
304061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              '\n'
305061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '\n'
306061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          '\n'
307061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
308061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
309061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey TAB {
310061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              '\t'
311061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '\t'
312061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               '\t'
313061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              '\t'
314061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '\t'
315061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          '\t'
316061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
317061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
318061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey 0 {
319061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              '0'
320061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '0'
321061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               '0'
322061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              ')'
323061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                ')'
324061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          ')'
325061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
326061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
327061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey 1 {
328061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              '1'
329061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '1'
330061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               '1'
331061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              '!'
332061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '!'
333061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          '!'
334061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
335061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
336061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey 2 {
337061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              '2'
338061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '2'
339061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               '2'
340061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              '@'
341061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '@'
342061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          '@'
343061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
344061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
345061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey 3 {
346061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              '3'
347061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '3'
348061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               '3'
349061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              '#'
350061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '#'
351061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          '#'
352061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
353061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
354061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey 4 {
355061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              '4'
356061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '4'
357061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               '4'
358061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              '$'
359061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '$'
360061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          '$'
361061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
362061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
363061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey 5 {
364061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              '5'
365061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '5'
366061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               '5'
367061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              '%'
368061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '%'
369061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          '%'
370061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
371061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
372061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey 6 {
373061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              '6'
374061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '6'
375061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               '6'
376061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              '^'
377061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '^'
378061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          '^'
379061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
380061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
381061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey 7 {
382061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              '7'
383061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '7'
384061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               '7'
385061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              '&'
386061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '&'
387061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          '&'
388061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
389061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
390061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey 8 {
391061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              '8'
392061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '8'
393061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               '8'
394061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              '*'
395061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '*'
396061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          '*'
397061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
398061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
399061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey 9 {
400061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              '9'
401061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '9'
402061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               '9'
403061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              '('
404061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '('
405061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          '('
406061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
407061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
408061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey GRAVE {
409061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              '`'
410061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '`'
411061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               '`'
412061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              '~'
413061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '`'
414061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          '~'
415061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
416061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
417061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey MINUS {
418061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              '-'
419061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '-'
420061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               '-'
421061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              '_'
422061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '-'
423061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          '_'
424061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
425061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
426061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey EQUALS {
427061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              '='
428061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '='
429061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               '='
430061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              '+'
431061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '='
432061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          '+'
433061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
434061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
435061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey LEFT_BRACKET {
436061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              '['
437061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '['
438061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               '['
439061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              '{'
440061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '['
441061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          '{'
442061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
443061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
444061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey RIGHT_BRACKET {
445061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              ']'
446061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             ']'
447061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               ']'
448061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              '}'
449061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                ']'
450061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          '}'
451061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
452061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
453061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey BACKSLASH {
454061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              '\\'
455061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '\\'
456061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               '\\'
457061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              '|'
458061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '\\'
459061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          '|'
460061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
461061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
462061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey SEMICOLON {
463061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              ';'
464061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             ';'
465061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               ';'
466061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              ':'
467061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                ';'
468061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          ':'
469061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
470061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
471061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey APOSTROPHE {
472061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              '\''
473061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '\''
474061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               '\''
475061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              '"'
476061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '\''
477061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          '"'
478061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
479061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
480061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey STAR {
481061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              '*'
482061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '*'
483061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               '*'
484061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              '*'
485061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '*'
486061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          '*'
487061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
488061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
489061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey POUND {
490061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              '#'
491061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '#'
492061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               '#'
493061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              '#'
494061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '#'
495061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          '#'
496061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
497061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown
498061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brownkey PLUS {
499061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    label:                              '+'
500061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    number:                             '+'
501061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    base:                               '+'
502061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift:                              '+'
503061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    alt:                                '+'
504061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown    shift+alt:                          '+'
505061cf758841dfc972be3f0ec4857762fafe49aa6Jeff Brown}
506