add src files decompiled via jad
[rsa2client.git] / src / mcsClient / KeyMap.java
1 // Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
2 // Jad home page: http://www.kpdus.com/jad.html
3 // Decompiler options: packimports(3) fieldsfirst nonlb space 
4
5 package mcsClient;
6
7 import java.awt.event.KeyEvent;
8 import java.util.HashMap;
9 import java.util.logging.Level;
10 import java.util.logging.Logger;
11
12 public class KeyMap {
13
14     public static final int US_104_KEY = 0;
15     public static final int BELGIAN_105_KEY = 1;
16     public static final int FRENCH_105_KEY = 2;
17     public static final int GERMAN_105_KEY = 3;
18     public static final int ITALIAN_105_KEY = 4;
19     public static final int JAPAN_109_KEY = 5;
20     public static final int SPANISH_105_KEY = 6;
21     public static final int UK_105_KEY = 7;
22     public static final int TILDE_ICON = 1;
23     public static final int CIRCUMFLEX_ICON = 2;
24     public static final int DIAERESIS_ICON = 3;
25     public static final int GRAVE_ICON = 4;
26     public static final int ACUTE_ICON = 5;
27     public static final int LEFT_SQUARE_BRACKET_ICON = 6;
28     public static final int RIGHT_SQUARE_BRACKET_ICON = 7;
29     public static final int LEFT_CURLY_BRACKET_ICON = 8;
30     public static final int RIGHT_CURLY_BRACKET_ICON = 9;
31     public static final int BACKSLASH_ICON = 10;
32     public static final int AT_ICON = 11;
33     public static final int A_KEY = 4;
34     public static final int B_KEY = 5;
35     public static final int C_KEY = 6;
36     public static final int D_KEY = 7;
37     public static final int E_KEY = 8;
38     public static final int F_KEY = 9;
39     public static final int G_KEY = 10;
40     public static final int H_KEY = 11;
41     public static final int I_KEY = 12;
42     public static final int J_KEY = 13;
43     public static final int K_KEY = 14;
44     public static final int L_KEY = 15;
45     public static final int M_KEY = 16;
46     public static final int N_KEY = 17;
47     public static final int O_KEY = 18;
48     public static final int P_KEY = 19;
49     public static final int Q_KEY = 20;
50     public static final int R_KEY = 21;
51     public static final int S_KEY = 22;
52     public static final int T_KEY = 23;
53     public static final int U_KEY = 24;
54     public static final int V_KEY = 25;
55     public static final int W_KEY = 26;
56     public static final int X_KEY = 27;
57     public static final int Y_KEY = 28;
58     public static final int Z_KEY = 29;
59     public static final int NUM_1_KEY = 30;
60     public static final int NUM_2_KEY = 31;
61     public static final int NUM_3_KEY = 32;
62     public static final int NUM_4_KEY = 33;
63     public static final int NUM_5_KEY = 34;
64     public static final int NUM_6_KEY = 35;
65     public static final int NUM_7_KEY = 36;
66     public static final int NUM_8_KEY = 37;
67     public static final int NUM_9_KEY = 38;
68     public static final int NUM_0_KEY = 39;
69     public static final int RETURN_KEY = 40;
70     public static final int ESCAPE_KEY = 41;
71     public static final int BACKSPACE_KEY = 42;
72     public static final int TAB_KEY = 43;
73     public static final int SPACE_KEY = 44;
74     public static final int MINUS_UNDERSCORE_KEY = 45;
75     public static final int EQUALS_PLUS_KEY = 46;
76     public static final int LEFT_BRACKETS_KEY = 47;
77     public static final int RIGHT_BRACKETS_KEY = 48;
78     public static final int BACKSLASH_BAR_KEY = 49;
79     public static final int EUROPE1_KEY = 50;
80     public static final int COLONS_KEY = 51;
81     public static final int QUOTES_KEY = 52;
82     public static final int GRAVE_TILDE_KEY = 53;
83     public static final int COMMA_LESS_KEY = 54;
84     public static final int PERIOD_GREATER_KEY = 55;
85     public static final int SLASH_QUESTION_KEY = 56;
86     public static final int CAPS_KEY = 57;
87     public static final int F1_KEY = 58;
88     public static final int F2_KEY = 59;
89     public static final int F3_KEY = 60;
90     public static final int F4_KEY = 61;
91     public static final int F5_KEY = 62;
92     public static final int F6_KEY = 63;
93     public static final int F7_KEY = 64;
94     public static final int F8_KEY = 65;
95     public static final int F9_KEY = 66;
96     public static final int F10_KEY = 67;
97     public static final int F11_KEY = 68;
98     public static final int F12_KEY = 69;
99     public static final int PRINT_SCREEN_KEY = 70;
100     public static final int SCROLL_KEY = 71;
101     public static final int BREAK_KEY = 72;
102     public static final int INSERT_KEY = 73;
103     public static final int HOME_KEY = 74;
104     public static final int PAGE_UP_KEY = 75;
105     public static final int DELETE_KEY = 76;
106     public static final int END_KEY = 77;
107     public static final int PAGE_DOWN_KEY = 78;
108     public static final int RIGHT_KEY = 79;
109     public static final int LEFT_KEY = 80;
110     public static final int DOWN_KEY = 81;
111     public static final int UP_KEY = 82;
112     public static final int NUM_KEY = 83;
113     public static final int KP_DIV_KEY = 84;
114     public static final int KP_MULT_KEY = 85;
115     public static final int KP_SUB_KEY = 86;
116     public static final int KP_ADD_KEY = 87;
117     public static final int KP_ENTER_KEY = 88;
118     public static final int KP_1_KEY = 89;
119     public static final int KP_2_KEY = 90;
120     public static final int KP_3_KEY = 91;
121     public static final int KP_4_KEY = 92;
122     public static final int KP_5_KEY = 93;
123     public static final int KP_6_KEY = 94;
124     public static final int KP_7_KEY = 95;
125     public static final int KP_8_KEY = 96;
126     public static final int KP_9_KEY = 97;
127     public static final int KP_0_KEY = 98;
128     public static final int KP_DEL_KEY = 99;
129     public static final int EUROPE2_KEY = 100;
130     public static final int KP_EQUALS_KEY = 103;
131     public static final int INTL_1_KEY = 135;
132     public static final int INTL_2_KEY = 136;
133     public static final int INTL_3_KEY = 137;
134     public static final int INTL_4_KEY = 138;
135     public static final int INTL_5_KEY = 139;
136     public static final int L_CTRL_KEY = 224;
137     public static final int L_SHIFT_KEY = 225;
138     public static final int L_ALT_KEY = 226;
139     public static final int R_CTRL_KEY = 228;
140     public static final int R_SHIFT_KEY = 229;
141     public static final int R_ALT_KEY = 230;
142     public static final int ALTGR_KEY = 230;
143     public static final int JAPAN1_KEY = 53;
144     public static final int JAPAN30_KEY = 57;
145     public static final int JAPAN131_KEY = 139;
146     public static final int JAPAN132_KEY = 138;
147     public static final int JAPAN133_KEY = 136;
148     private HashMap countryMap;
149     private final int keyCodeMap[];
150     private final HashMap japanKeyCharMap;
151     private final HashMap ukKeyCharMap;
152     private final HashMap spanishKeyCharMap;
153     private final HashMap italianKeyCharMap;
154     private final HashMap germanKeyCharMap;
155     private final HashMap frenchKeyCharMap;
156     private final HashMap belgianKeyCharMap;
157     private static Logger logger = Logger.getAnonymousLogger();
158
159     public KeyMap() {
160         this(0);
161     }
162
163     public KeyMap(int i) {
164         keyCodeMap = new int[0x10000];
165         japanKeyCharMap = new HashMap(22, 1.0F);
166         ukKeyCharMap = new HashMap(20, 1.0F);
167         spanishKeyCharMap = new HashMap(39, 1.0F);
168         italianKeyCharMap = new HashMap(35, 1.0F);
169         germanKeyCharMap = new HashMap(50, 1.0F);
170         frenchKeyCharMap = new HashMap(55, 1.0F);
171         belgianKeyCharMap = new HashMap(55, 1.0F);
172         logger.setLevel(Level.WARNING);
173         String s = System.getProperty("mcs.debug");
174         if (s != null && s.equalsIgnoreCase("true"))
175             logger.setLevel(Level.ALL);
176         buildKeyMaps();
177         setKeyboardType(i);
178     }
179
180     public void setKeyboardType(int i) {
181         switch (i) {
182         case 0: // '\0'
183             countryMap = new HashMap(0);
184             break;
185
186         case 5: // '\005'
187             countryMap = japanKeyCharMap;
188             break;
189
190         case 7: // '\007'
191             countryMap = ukKeyCharMap;
192             break;
193
194         case 6: // '\006'
195             countryMap = spanishKeyCharMap;
196             break;
197
198         case 4: // '\004'
199             countryMap = italianKeyCharMap;
200             break;
201
202         case 3: // '\003'
203             countryMap = germanKeyCharMap;
204             break;
205
206         case 2: // '\002'
207             countryMap = frenchKeyCharMap;
208             break;
209
210         case 1: // '\001'
211             countryMap = belgianKeyCharMap;
212             break;
213
214         default:
215             logger.warning("Invalid country keyboard selected.");
216             break;
217         }
218     }
219
220     public int getButtonCode(int i) {
221         switch (i) {
222         default:
223             break;
224
225         case 1: // '\001'
226             if (countryMap == spanishKeyCharMap)
227                 return 33;
228             if (countryMap == frenchKeyCharMap)
229                 return 31;
230             if (countryMap == italianKeyCharMap)
231                 return 48;
232             if (countryMap == belgianKeyCharMap)
233                 return 56;
234             break;
235
236         case 2: // '\002'
237             if (countryMap == spanishKeyCharMap || countryMap == frenchKeyCharMap || countryMap == belgianKeyCharMap)
238                 return 47;
239             if (countryMap == germanKeyCharMap)
240                 return 53;
241             break;
242
243         case 3: // '\003'
244             if (countryMap == frenchKeyCharMap || countryMap == belgianKeyCharMap)
245                 return 47;
246             if (countryMap == spanishKeyCharMap)
247                 return 52;
248             break;
249
250         case 4: // '\004'
251             if (countryMap == frenchKeyCharMap)
252                 return 36;
253             if (countryMap == spanishKeyCharMap)
254                 return 47;
255             if (countryMap == italianKeyCharMap || countryMap == belgianKeyCharMap)
256                 return 50;
257             if (countryMap == germanKeyCharMap)
258                 return 46;
259             break;
260
261         case 5: // '\005'
262             if (countryMap == spanishKeyCharMap || countryMap == belgianKeyCharMap)
263                 return 52;
264             if (countryMap == germanKeyCharMap)
265                 return 46;
266             break;
267
268         case 10: // '\n'
269             if (countryMap == spanishKeyCharMap)
270                 return 53;
271             if (countryMap == germanKeyCharMap)
272                 return 45;
273             // fall through
274
275         case 6: // '\006'
276             return 47;
277
278         case 7: // '\007'
279             return 48;
280
281         case 8: // '\b'
282             return 52;
283
284         case 9: // '\t'
285             return 50;
286
287         case 11: // '\013'
288             return 51;
289         }
290         return 0;
291     }
292
293     public int getButtonModifierCode(int i) {
294         switch (i) {
295         default:
296             break;
297
298         case 1: // '\001'
299             if (countryMap == spanishKeyCharMap || countryMap == frenchKeyCharMap || countryMap == italianKeyCharMap || countryMap == belgianKeyCharMap)
300                 return 230;
301             break;
302
303         case 2: // '\002'
304             if (countryMap == spanishKeyCharMap)
305                 return 225;
306             break;
307
308         case 3: // '\003'
309             if (countryMap == spanishKeyCharMap || countryMap == frenchKeyCharMap || countryMap == belgianKeyCharMap)
310                 return 225;
311             break;
312
313         case 4: // '\004'
314             if (countryMap == frenchKeyCharMap || countryMap == italianKeyCharMap || countryMap == belgianKeyCharMap)
315                 return 230;
316             if (countryMap == germanKeyCharMap)
317                 return 225;
318             break;
319
320         case 5: // '\005'
321             if (countryMap == belgianKeyCharMap)
322                 return 230;
323             break;
324
325         case 6: // '\006'
326         case 7: // '\007'
327         case 8: // '\b'
328         case 9: // '\t'
329         case 10: // '\n'
330             return 230;
331
332         case 11: // '\013'
333             return 230;
334         }
335         return 0;
336     }
337
338     public int getKey(KeyEvent keyevent) {
339         char c = keyevent.getKeyChar();
340         int i = keyevent.getKeyCode();
341         switch (keyevent.getKeyLocation()) {
342         case 4: // '\004'
343             switch (i) {
344             case 10: // '\n'
345                 return 88;
346
347             case 109: // 'm'
348                 return 86;
349
350             case 107: // 'k'
351                 return 87;
352
353             case 106: // 'j'
354                 return 85;
355
356             case 111: // 'o'
357                 return 84;
358
359             case 155: 
360                 return 98;
361
362             case 36: // '$'
363                 return 95;
364
365             case 33: // '!'
366                 return 97;
367
368             case 44: // ','
369             case 46: // '.'
370             case 110: // 'n'
371             case 127: // '\177'
372                 return 99;
373
374             case 35: // '#'
375                 return 89;
376
377             case 34: // '"'
378                 return 91;
379
380             case 39: // '\''
381                 return 94;
382
383             case 37: // '%'
384                 return 92;
385
386             case 40: // '('
387                 return 90;
388
389             case 38: // '&'
390                 return 96;
391
392             case 12: // '\f'
393                 return 93;
394             }
395             // fall through
396
397         case 2: // '\002'
398             switch (i) {
399             case 17: // '\021'
400                 return 224;
401
402             case 16: // '\020'
403                 return 225;
404
405             case 18: // '\022'
406                 return 226;
407             }
408             // fall through
409
410         case 3: // '\003'
411             switch (i) {
412             case 17: // '\021'
413                 return 228;
414
415             case 16: // '\020'
416                 return 229;
417
418             case 18: // '\022'
419                 return 230;
420             }
421             break;
422         }
423         if (i == 69)
424             return 8;
425         if (countryMap == frenchKeyCharMap) {
426             if (i == 522 && c == '\uFFFF')
427                 return 45;
428             if (i == 515)
429                 return 48;
430         }
431         if (countryMap == belgianKeyCharMap) {
432             if (i == 130)
433                 return 47;
434             if (i == 515)
435                 return 48;
436             if (i == 54)
437                 return 35;
438             if (i == 153)
439                 return 100;
440         }
441         if ((countryMap == germanKeyCharMap || countryMap == italianKeyCharMap) && i == 521)
442             return 48;
443         Integer integer = (Integer)countryMap.get(new Integer(c));
444         if (integer != null)
445             return integer.intValue();
446         if (countryMap == germanKeyCharMap)
447             switch (i) {
448             case 81: // 'Q'
449                 return 20;
450
451             case 153: 
452                 return 100;
453
454             case 77: // 'M'
455                 return 16;
456             }
457         return keyCodeMap[i];
458     }
459
460     private void buildKeyMaps() {
461         keyCodeMap[65] = 4;
462         keyCodeMap[66] = 5;
463         keyCodeMap[67] = 6;
464         keyCodeMap[68] = 7;
465         keyCodeMap[69] = 8;
466         keyCodeMap[70] = 9;
467         keyCodeMap[71] = 10;
468         keyCodeMap[72] = 11;
469         keyCodeMap[73] = 12;
470         keyCodeMap[74] = 13;
471         keyCodeMap[75] = 14;
472         keyCodeMap[76] = 15;
473         keyCodeMap[77] = 16;
474         keyCodeMap[78] = 17;
475         keyCodeMap[79] = 18;
476         keyCodeMap[80] = 19;
477         keyCodeMap[81] = 20;
478         keyCodeMap[82] = 21;
479         keyCodeMap[83] = 22;
480         keyCodeMap[84] = 23;
481         keyCodeMap[85] = 24;
482         keyCodeMap[86] = 25;
483         keyCodeMap[87] = 26;
484         keyCodeMap[88] = 27;
485         keyCodeMap[89] = 28;
486         keyCodeMap[90] = 29;
487         keyCodeMap[49] = 30;
488         keyCodeMap[517] = 30;
489         keyCodeMap[50] = 31;
490         keyCodeMap[512] = 31;
491         keyCodeMap[51] = 32;
492         keyCodeMap[520] = 32;
493         keyCodeMap[52] = 33;
494         keyCodeMap[515] = 33;
495         keyCodeMap[53] = 34;
496         keyCodeMap[54] = 35;
497         keyCodeMap[514] = 35;
498         keyCodeMap[55] = 36;
499         keyCodeMap[150] = 36;
500         keyCodeMap[56] = 37;
501         keyCodeMap[151] = 37;
502         keyCodeMap[57] = 38;
503         keyCodeMap[519] = 38;
504         keyCodeMap[48] = 39;
505         keyCodeMap[522] = 39;
506         keyCodeMap[10] = 40;
507         keyCodeMap[27] = 41;
508         keyCodeMap[8] = 42;
509         keyCodeMap[9] = 43;
510         keyCodeMap[32] = 44;
511         keyCodeMap[45] = 45;
512         keyCodeMap[523] = 45;
513         keyCodeMap[521] = 46;
514         keyCodeMap[61] = 46;
515         keyCodeMap[91] = 47;
516         keyCodeMap[161] = 47;
517         keyCodeMap[93] = 48;
518         keyCodeMap[162] = 48;
519         keyCodeMap[92] = 49;
520         keyCodeMap[59] = 51;
521         keyCodeMap[513] = 51;
522         keyCodeMap[222] = 52;
523         keyCodeMap[152] = 52;
524         keyCodeMap[192] = 53;
525         keyCodeMap[44] = 54;
526         keyCodeMap[153] = 54;
527         keyCodeMap[46] = 55;
528         keyCodeMap[160] = 55;
529         keyCodeMap[47] = 56;
530         keyCodeMap[20] = 57;
531         keyCodeMap[112] = 58;
532         keyCodeMap[113] = 59;
533         keyCodeMap[114] = 60;
534         keyCodeMap[115] = 61;
535         keyCodeMap[116] = 62;
536         keyCodeMap[117] = 63;
537         keyCodeMap[118] = 64;
538         keyCodeMap[119] = 65;
539         keyCodeMap[120] = 66;
540         keyCodeMap[121] = 67;
541         keyCodeMap[122] = 68;
542         keyCodeMap[123] = 69;
543         keyCodeMap[154] = 70;
544         keyCodeMap[145] = 71;
545         keyCodeMap[19] = 72;
546         keyCodeMap[155] = 73;
547         keyCodeMap[36] = 74;
548         keyCodeMap[33] = 75;
549         keyCodeMap[127] = 76;
550         keyCodeMap[35] = 77;
551         keyCodeMap[34] = 78;
552         keyCodeMap[39] = 79;
553         keyCodeMap[37] = 80;
554         keyCodeMap[40] = 81;
555         keyCodeMap[38] = 82;
556         keyCodeMap[144] = 83;
557         keyCodeMap[97] = 89;
558         keyCodeMap[98] = 90;
559         keyCodeMap[99] = 91;
560         keyCodeMap[100] = 92;
561         keyCodeMap[101] = 93;
562         keyCodeMap[12] = 93;
563         keyCodeMap[102] = 94;
564         keyCodeMap[103] = 95;
565         keyCodeMap[104] = 96;
566         keyCodeMap[105] = 97;
567         keyCodeMap[96] = 98;
568         keyCodeMap[28] = 138;
569         keyCodeMap[29] = 139;
570         keyCodeMap[241] = 136;
571         keyCodeMap[245] = 136;
572         keyCodeMap[243] = 53;
573         keyCodeMap[244] = 53;
574         keyCodeMap[263] = 53;
575         keyCodeMap[65406] = 230;
576         japanKeyCharMap.put(new Integer(34), new Integer(31));
577         japanKeyCharMap.put(new Integer(37), new Integer(34));
578         japanKeyCharMap.put(new Integer(38), new Integer(35));
579         japanKeyCharMap.put(new Integer(39), new Integer(36));
580         japanKeyCharMap.put(new Integer(40), new Integer(37));
581         japanKeyCharMap.put(new Integer(41), new Integer(38));
582         japanKeyCharMap.put(new Integer(42), new Integer(52));
583         japanKeyCharMap.put(new Integer(43), new Integer(51));
584         japanKeyCharMap.put(new Integer(58), new Integer(52));
585         japanKeyCharMap.put(new Integer(61), new Integer(45));
586         japanKeyCharMap.put(new Integer(64), new Integer(47));
587         japanKeyCharMap.put(new Integer(91), new Integer(48));
588         japanKeyCharMap.put(new Integer(92), new Integer(135));
589         japanKeyCharMap.put(new Integer(93), new Integer(50));
590         japanKeyCharMap.put(new Integer(94), new Integer(46));
591         japanKeyCharMap.put(new Integer(95), new Integer(135));
592         japanKeyCharMap.put(new Integer(96), new Integer(47));
593         japanKeyCharMap.put(new Integer(123), new Integer(48));
594         japanKeyCharMap.put(new Integer(124), new Integer(137));
595         japanKeyCharMap.put(new Integer(125), new Integer(50));
596         japanKeyCharMap.put(new Integer(126), new Integer(46));
597         ukKeyCharMap.put(new Integer(201), new Integer(8));
598         ukKeyCharMap.put(new Integer(233), new Integer(8));
599         ukKeyCharMap.put(new Integer(205), new Integer(12));
600         ukKeyCharMap.put(new Integer(237), new Integer(12));
601         ukKeyCharMap.put(new Integer(211), new Integer(18));
602         ukKeyCharMap.put(new Integer(243), new Integer(18));
603         ukKeyCharMap.put(new Integer(218), new Integer(24));
604         ukKeyCharMap.put(new Integer(250), new Integer(24));
605         ukKeyCharMap.put(new Integer(8364), new Integer(33));
606         ukKeyCharMap.put(new Integer(166), new Integer(53));
607         ukKeyCharMap.put(new Integer(172), new Integer(53));
608         ukKeyCharMap.put(new Integer(34), new Integer(31));
609         ukKeyCharMap.put(new Integer(163), new Integer(32));
610         ukKeyCharMap.put(new Integer(35), new Integer(50));
611         ukKeyCharMap.put(new Integer(126), new Integer(50));
612         ukKeyCharMap.put(new Integer(64), new Integer(52));
613         ukKeyCharMap.put(new Integer(215), new Integer(85));
614         ukKeyCharMap.put(new Integer(124), new Integer(100));
615         ukKeyCharMap.put(new Integer(92), new Integer(100));
616         spanishKeyCharMap.put(new Integer(8364), new Integer(8));
617         spanishKeyCharMap.put(new Integer(124), new Integer(30));
618         spanishKeyCharMap.put(new Integer(64), new Integer(31));
619         spanishKeyCharMap.put(new Integer(34), new Integer(31));
620         spanishKeyCharMap.put(new Integer(35), new Integer(32));
621         spanishKeyCharMap.put(new Integer(183), new Integer(32));
622         spanishKeyCharMap.put(new Integer(126), new Integer(33));
623         spanishKeyCharMap.put(new Integer(38), new Integer(35));
624         spanishKeyCharMap.put(new Integer(172), new Integer(35));
625         spanishKeyCharMap.put(new Integer(47), new Integer(36));
626         spanishKeyCharMap.put(new Integer(40), new Integer(37));
627         spanishKeyCharMap.put(new Integer(41), new Integer(38));
628         spanishKeyCharMap.put(new Integer(61), new Integer(39));
629         spanishKeyCharMap.put(new Integer(39), new Integer(45));
630         spanishKeyCharMap.put(new Integer(63), new Integer(45));
631         spanishKeyCharMap.put(new Integer(161), new Integer(46));
632         spanishKeyCharMap.put(new Integer(191), new Integer(46));
633         spanishKeyCharMap.put(new Integer(96), new Integer(47));
634         spanishKeyCharMap.put(new Integer(94), new Integer(47));
635         spanishKeyCharMap.put(new Integer(43), new Integer(48));
636         spanishKeyCharMap.put(new Integer(42), new Integer(48));
637         spanishKeyCharMap.put(new Integer(231), new Integer(50));
638         spanishKeyCharMap.put(new Integer(199), new Integer(50));
639         spanishKeyCharMap.put(new Integer(125), new Integer(50));
640         spanishKeyCharMap.put(new Integer(209), new Integer(51));
641         spanishKeyCharMap.put(new Integer(241), new Integer(51));
642         spanishKeyCharMap.put(new Integer(168), new Integer(52));
643         spanishKeyCharMap.put(new Integer(180), new Integer(52));
644         spanishKeyCharMap.put(new Integer(123), new Integer(52));
645         spanishKeyCharMap.put(new Integer(186), new Integer(53));
646         spanishKeyCharMap.put(new Integer(170), new Integer(53));
647         spanishKeyCharMap.put(new Integer(92), new Integer(53));
648         spanishKeyCharMap.put(new Integer(59), new Integer(54));
649         spanishKeyCharMap.put(new Integer(58), new Integer(55));
650         spanishKeyCharMap.put(new Integer(45), new Integer(56));
651         spanishKeyCharMap.put(new Integer(95), new Integer(56));
652         spanishKeyCharMap.put(new Integer(215), new Integer(85));
653         spanishKeyCharMap.put(new Integer(60), new Integer(100));
654         spanishKeyCharMap.put(new Integer(62), new Integer(100));
655         italianKeyCharMap.put(new Integer(8364), new Integer(8));
656         italianKeyCharMap.put(new Integer(34), new Integer(31));
657         italianKeyCharMap.put(new Integer(163), new Integer(32));
658         italianKeyCharMap.put(new Integer(38), new Integer(35));
659         italianKeyCharMap.put(new Integer(47), new Integer(36));
660         italianKeyCharMap.put(new Integer(40), new Integer(37));
661         italianKeyCharMap.put(new Integer(41), new Integer(38));
662         italianKeyCharMap.put(new Integer(61), new Integer(39));
663         italianKeyCharMap.put(new Integer(39), new Integer(45));
664         italianKeyCharMap.put(new Integer(63), new Integer(45));
665         italianKeyCharMap.put(new Integer(94), new Integer(46));
666         italianKeyCharMap.put(new Integer(236), new Integer(46));
667         italianKeyCharMap.put(new Integer(64), new Integer(20));
668         italianKeyCharMap.put(new Integer(232), new Integer(47));
669         italianKeyCharMap.put(new Integer(233), new Integer(47));
670         italianKeyCharMap.put(new Integer(43), new Integer(48));
671         italianKeyCharMap.put(new Integer(42), new Integer(48));
672         italianKeyCharMap.put(new Integer(126), new Integer(48));
673         italianKeyCharMap.put(new Integer(249), new Integer(50));
674         italianKeyCharMap.put(new Integer(167), new Integer(50));
675         italianKeyCharMap.put(new Integer(96), new Integer(50));
676         italianKeyCharMap.put(new Integer(242), new Integer(51));
677         italianKeyCharMap.put(new Integer(231), new Integer(51));
678         italianKeyCharMap.put(new Integer(224), new Integer(52));
679         italianKeyCharMap.put(new Integer(176), new Integer(52));
680         italianKeyCharMap.put(new Integer(35), new Integer(52));
681         italianKeyCharMap.put(new Integer(92), new Integer(53));
682         italianKeyCharMap.put(new Integer(124), new Integer(53));
683         italianKeyCharMap.put(new Integer(59), new Integer(54));
684         italianKeyCharMap.put(new Integer(58), new Integer(55));
685         italianKeyCharMap.put(new Integer(45), new Integer(56));
686         italianKeyCharMap.put(new Integer(95), new Integer(56));
687         italianKeyCharMap.put(new Integer(215), new Integer(85));
688         italianKeyCharMap.put(new Integer(60), new Integer(100));
689         italianKeyCharMap.put(new Integer(62), new Integer(100));
690         germanKeyCharMap.put(new Integer(8364), new Integer(8));
691         germanKeyCharMap.put(new Integer(181), new Integer(16));
692         germanKeyCharMap.put(new Integer(64), new Integer(20));
693         germanKeyCharMap.put(new Integer(122), new Integer(28));
694         germanKeyCharMap.put(new Integer(90), new Integer(28));
695         germanKeyCharMap.put(new Integer(121), new Integer(29));
696         germanKeyCharMap.put(new Integer(89), new Integer(29));
697         germanKeyCharMap.put(new Integer(34), new Integer(31));
698         germanKeyCharMap.put(new Integer(178), new Integer(31));
699         germanKeyCharMap.put(new Integer(167), new Integer(32));
700         germanKeyCharMap.put(new Integer(179), new Integer(32));
701         germanKeyCharMap.put(new Integer(38), new Integer(35));
702         germanKeyCharMap.put(new Integer(47), new Integer(36));
703         germanKeyCharMap.put(new Integer(123), new Integer(36));
704         germanKeyCharMap.put(new Integer(40), new Integer(37));
705         germanKeyCharMap.put(new Integer(91), new Integer(37));
706         germanKeyCharMap.put(new Integer(41), new Integer(38));
707         germanKeyCharMap.put(new Integer(93), new Integer(38));
708         germanKeyCharMap.put(new Integer(61), new Integer(39));
709         germanKeyCharMap.put(new Integer(125), new Integer(39));
710         germanKeyCharMap.put(new Integer(92), new Integer(45));
711         germanKeyCharMap.put(new Integer(63), new Integer(45));
712         germanKeyCharMap.put(new Integer(223), new Integer(45));
713         germanKeyCharMap.put(new Integer(96), new Integer(46));
714         germanKeyCharMap.put(new Integer(180), new Integer(46));
715         germanKeyCharMap.put(new Integer(252), new Integer(47));
716         germanKeyCharMap.put(new Integer(220), new Integer(47));
717         germanKeyCharMap.put(new Integer(43), new Integer(48));
718         germanKeyCharMap.put(new Integer(42), new Integer(48));
719         germanKeyCharMap.put(new Integer(126), new Integer(48));
720         germanKeyCharMap.put(new Integer(35), new Integer(50));
721         germanKeyCharMap.put(new Integer(39), new Integer(50));
722         germanKeyCharMap.put(new Integer(246), new Integer(51));
723         germanKeyCharMap.put(new Integer(214), new Integer(51));
724         germanKeyCharMap.put(new Integer(228), new Integer(52));
725         germanKeyCharMap.put(new Integer(196), new Integer(52));
726         germanKeyCharMap.put(new Integer(94), new Integer(53));
727         germanKeyCharMap.put(new Integer(176), new Integer(53));
728         germanKeyCharMap.put(new Integer(44), new Integer(54));
729         germanKeyCharMap.put(new Integer(59), new Integer(54));
730         germanKeyCharMap.put(new Integer(46), new Integer(55));
731         germanKeyCharMap.put(new Integer(58), new Integer(55));
732         germanKeyCharMap.put(new Integer(45), new Integer(56));
733         germanKeyCharMap.put(new Integer(95), new Integer(56));
734         germanKeyCharMap.put(new Integer(215), new Integer(85));
735         germanKeyCharMap.put(new Integer(60), new Integer(100));
736         germanKeyCharMap.put(new Integer(62), new Integer(100));
737         germanKeyCharMap.put(new Integer(124), new Integer(100));
738         frenchKeyCharMap.put(new Integer(113), new Integer(4));
739         frenchKeyCharMap.put(new Integer(81), new Integer(4));
740         frenchKeyCharMap.put(new Integer(8364), new Integer(8));
741         frenchKeyCharMap.put(new Integer(44), new Integer(16));
742         frenchKeyCharMap.put(new Integer(63), new Integer(16));
743         frenchKeyCharMap.put(new Integer(97), new Integer(20));
744         frenchKeyCharMap.put(new Integer(65), new Integer(20));
745         frenchKeyCharMap.put(new Integer(122), new Integer(26));
746         frenchKeyCharMap.put(new Integer(90), new Integer(26));
747         frenchKeyCharMap.put(new Integer(119), new Integer(29));
748         frenchKeyCharMap.put(new Integer(87), new Integer(29));
749         frenchKeyCharMap.put(new Integer(38), new Integer(30));
750         frenchKeyCharMap.put(new Integer(126), new Integer(31));
751         frenchKeyCharMap.put(new Integer(233), new Integer(31));
752         frenchKeyCharMap.put(new Integer(34), new Integer(32));
753         frenchKeyCharMap.put(new Integer(35), new Integer(32));
754         frenchKeyCharMap.put(new Integer(39), new Integer(33));
755         frenchKeyCharMap.put(new Integer(123), new Integer(33));
756         frenchKeyCharMap.put(new Integer(40), new Integer(34));
757         frenchKeyCharMap.put(new Integer(91), new Integer(34));
758         frenchKeyCharMap.put(new Integer(45), new Integer(35));
759         frenchKeyCharMap.put(new Integer(124), new Integer(35));
760         frenchKeyCharMap.put(new Integer(232), new Integer(36));
761         frenchKeyCharMap.put(new Integer(96), new Integer(36));
762         frenchKeyCharMap.put(new Integer(95), new Integer(37));
763         frenchKeyCharMap.put(new Integer(92), new Integer(37));
764         frenchKeyCharMap.put(new Integer(231), new Integer(38));
765         frenchKeyCharMap.put(new Integer(94), new Integer(38));
766         frenchKeyCharMap.put(new Integer(224), new Integer(39));
767         frenchKeyCharMap.put(new Integer(64), new Integer(39));
768         frenchKeyCharMap.put(new Integer(176), new Integer(45));
769         frenchKeyCharMap.put(new Integer(41), new Integer(45));
770         frenchKeyCharMap.put(new Integer(93), new Integer(45));
771         frenchKeyCharMap.put(new Integer(125), new Integer(46));
772         frenchKeyCharMap.put(new Integer(168), new Integer(47));
773         frenchKeyCharMap.put(new Integer(164), new Integer(48));
774         frenchKeyCharMap.put(new Integer(36), new Integer(48));
775         frenchKeyCharMap.put(new Integer(163), new Integer(48));
776         frenchKeyCharMap.put(new Integer(42), new Integer(50));
777         frenchKeyCharMap.put(new Integer(181), new Integer(50));
778         frenchKeyCharMap.put(new Integer(109), new Integer(51));
779         frenchKeyCharMap.put(new Integer(77), new Integer(51));
780         frenchKeyCharMap.put(new Integer(249), new Integer(52));
781         frenchKeyCharMap.put(new Integer(37), new Integer(52));
782         frenchKeyCharMap.put(new Integer(178), new Integer(53));
783         frenchKeyCharMap.put(new Integer(59), new Integer(54));
784         frenchKeyCharMap.put(new Integer(46), new Integer(54));
785         frenchKeyCharMap.put(new Integer(58), new Integer(55));
786         frenchKeyCharMap.put(new Integer(47), new Integer(55));
787         frenchKeyCharMap.put(new Integer(33), new Integer(56));
788         frenchKeyCharMap.put(new Integer(167), new Integer(56));
789         frenchKeyCharMap.put(new Integer(215), new Integer(85));
790         frenchKeyCharMap.put(new Integer(60), new Integer(100));
791         frenchKeyCharMap.put(new Integer(62), new Integer(100));
792         belgianKeyCharMap.put(new Integer(113), new Integer(4));
793         belgianKeyCharMap.put(new Integer(81), new Integer(4));
794         belgianKeyCharMap.put(new Integer(8364), new Integer(8));
795         belgianKeyCharMap.put(new Integer(44), new Integer(16));
796         belgianKeyCharMap.put(new Integer(63), new Integer(16));
797         belgianKeyCharMap.put(new Integer(97), new Integer(20));
798         belgianKeyCharMap.put(new Integer(65), new Integer(20));
799         belgianKeyCharMap.put(new Integer(122), new Integer(26));
800         belgianKeyCharMap.put(new Integer(90), new Integer(26));
801         belgianKeyCharMap.put(new Integer(119), new Integer(29));
802         belgianKeyCharMap.put(new Integer(87), new Integer(29));
803         belgianKeyCharMap.put(new Integer(38), new Integer(30));
804         belgianKeyCharMap.put(new Integer(124), new Integer(30));
805         belgianKeyCharMap.put(new Integer(64), new Integer(31));
806         belgianKeyCharMap.put(new Integer(233), new Integer(31));
807         belgianKeyCharMap.put(new Integer(34), new Integer(32));
808         belgianKeyCharMap.put(new Integer(35), new Integer(32));
809         belgianKeyCharMap.put(new Integer(39), new Integer(33));
810         belgianKeyCharMap.put(new Integer(123), new Integer(33));
811         belgianKeyCharMap.put(new Integer(40), new Integer(34));
812         belgianKeyCharMap.put(new Integer(91), new Integer(34));
813         belgianKeyCharMap.put(new Integer(167), new Integer(35));
814         belgianKeyCharMap.put(new Integer(94), new Integer(35));
815         belgianKeyCharMap.put(new Integer(232), new Integer(36));
816         belgianKeyCharMap.put(new Integer(33), new Integer(37));
817         belgianKeyCharMap.put(new Integer(231), new Integer(38));
818         belgianKeyCharMap.put(new Integer(123), new Integer(38));
819         belgianKeyCharMap.put(new Integer(224), new Integer(39));
820         belgianKeyCharMap.put(new Integer(125), new Integer(39));
821         belgianKeyCharMap.put(new Integer(176), new Integer(45));
822         belgianKeyCharMap.put(new Integer(41), new Integer(45));
823         belgianKeyCharMap.put(new Integer(45), new Integer(46));
824         belgianKeyCharMap.put(new Integer(95), new Integer(46));
825         belgianKeyCharMap.put(new Integer(168), new Integer(47));
826         belgianKeyCharMap.put(new Integer(42), new Integer(48));
827         belgianKeyCharMap.put(new Integer(36), new Integer(48));
828         belgianKeyCharMap.put(new Integer(163), new Integer(50));
829         belgianKeyCharMap.put(new Integer(181), new Integer(50));
830         belgianKeyCharMap.put(new Integer(109), new Integer(51));
831         belgianKeyCharMap.put(new Integer(77), new Integer(51));
832         belgianKeyCharMap.put(new Integer(249), new Integer(52));
833         belgianKeyCharMap.put(new Integer(37), new Integer(52));
834         belgianKeyCharMap.put(new Integer(178), new Integer(53));
835         belgianKeyCharMap.put(new Integer(179), new Integer(53));
836         belgianKeyCharMap.put(new Integer(59), new Integer(54));
837         belgianKeyCharMap.put(new Integer(46), new Integer(54));
838         belgianKeyCharMap.put(new Integer(58), new Integer(55));
839         belgianKeyCharMap.put(new Integer(47), new Integer(55));
840         belgianKeyCharMap.put(new Integer(43), new Integer(56));
841         belgianKeyCharMap.put(new Integer(61), new Integer(56));
842         belgianKeyCharMap.put(new Integer(215), new Integer(85));
843         belgianKeyCharMap.put(new Integer(60), new Integer(100));
844         belgianKeyCharMap.put(new Integer(62), new Integer(100));
845         belgianKeyCharMap.put(new Integer(92), new Integer(100));
846     }
847
848 }