+// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
+// Jad home page: http://www.kpdus.com/jad.html
+// Decompiler options: packimports(3) fieldsfirst nonlb space
+
+package mcsClient;
+
+import java.awt.event.KeyEvent;
+import java.util.HashMap;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+public class KeyMap {
+
+ public static final int US_104_KEY = 0;
+ public static final int BELGIAN_105_KEY = 1;
+ public static final int FRENCH_105_KEY = 2;
+ public static final int GERMAN_105_KEY = 3;
+ public static final int ITALIAN_105_KEY = 4;
+ public static final int JAPAN_109_KEY = 5;
+ public static final int SPANISH_105_KEY = 6;
+ public static final int UK_105_KEY = 7;
+ public static final int TILDE_ICON = 1;
+ public static final int CIRCUMFLEX_ICON = 2;
+ public static final int DIAERESIS_ICON = 3;
+ public static final int GRAVE_ICON = 4;
+ public static final int ACUTE_ICON = 5;
+ public static final int LEFT_SQUARE_BRACKET_ICON = 6;
+ public static final int RIGHT_SQUARE_BRACKET_ICON = 7;
+ public static final int LEFT_CURLY_BRACKET_ICON = 8;
+ public static final int RIGHT_CURLY_BRACKET_ICON = 9;
+ public static final int BACKSLASH_ICON = 10;
+ public static final int AT_ICON = 11;
+ public static final int A_KEY = 4;
+ public static final int B_KEY = 5;
+ public static final int C_KEY = 6;
+ public static final int D_KEY = 7;
+ public static final int E_KEY = 8;
+ public static final int F_KEY = 9;
+ public static final int G_KEY = 10;
+ public static final int H_KEY = 11;
+ public static final int I_KEY = 12;
+ public static final int J_KEY = 13;
+ public static final int K_KEY = 14;
+ public static final int L_KEY = 15;
+ public static final int M_KEY = 16;
+ public static final int N_KEY = 17;
+ public static final int O_KEY = 18;
+ public static final int P_KEY = 19;
+ public static final int Q_KEY = 20;
+ public static final int R_KEY = 21;
+ public static final int S_KEY = 22;
+ public static final int T_KEY = 23;
+ public static final int U_KEY = 24;
+ public static final int V_KEY = 25;
+ public static final int W_KEY = 26;
+ public static final int X_KEY = 27;
+ public static final int Y_KEY = 28;
+ public static final int Z_KEY = 29;
+ public static final int NUM_1_KEY = 30;
+ public static final int NUM_2_KEY = 31;
+ public static final int NUM_3_KEY = 32;
+ public static final int NUM_4_KEY = 33;
+ public static final int NUM_5_KEY = 34;
+ public static final int NUM_6_KEY = 35;
+ public static final int NUM_7_KEY = 36;
+ public static final int NUM_8_KEY = 37;
+ public static final int NUM_9_KEY = 38;
+ public static final int NUM_0_KEY = 39;
+ public static final int RETURN_KEY = 40;
+ public static final int ESCAPE_KEY = 41;
+ public static final int BACKSPACE_KEY = 42;
+ public static final int TAB_KEY = 43;
+ public static final int SPACE_KEY = 44;
+ public static final int MINUS_UNDERSCORE_KEY = 45;
+ public static final int EQUALS_PLUS_KEY = 46;
+ public static final int LEFT_BRACKETS_KEY = 47;
+ public static final int RIGHT_BRACKETS_KEY = 48;
+ public static final int BACKSLASH_BAR_KEY = 49;
+ public static final int EUROPE1_KEY = 50;
+ public static final int COLONS_KEY = 51;
+ public static final int QUOTES_KEY = 52;
+ public static final int GRAVE_TILDE_KEY = 53;
+ public static final int COMMA_LESS_KEY = 54;
+ public static final int PERIOD_GREATER_KEY = 55;
+ public static final int SLASH_QUESTION_KEY = 56;
+ public static final int CAPS_KEY = 57;
+ public static final int F1_KEY = 58;
+ public static final int F2_KEY = 59;
+ public static final int F3_KEY = 60;
+ public static final int F4_KEY = 61;
+ public static final int F5_KEY = 62;
+ public static final int F6_KEY = 63;
+ public static final int F7_KEY = 64;
+ public static final int F8_KEY = 65;
+ public static final int F9_KEY = 66;
+ public static final int F10_KEY = 67;
+ public static final int F11_KEY = 68;
+ public static final int F12_KEY = 69;
+ public static final int PRINT_SCREEN_KEY = 70;
+ public static final int SCROLL_KEY = 71;
+ public static final int BREAK_KEY = 72;
+ public static final int INSERT_KEY = 73;
+ public static final int HOME_KEY = 74;
+ public static final int PAGE_UP_KEY = 75;
+ public static final int DELETE_KEY = 76;
+ public static final int END_KEY = 77;
+ public static final int PAGE_DOWN_KEY = 78;
+ public static final int RIGHT_KEY = 79;
+ public static final int LEFT_KEY = 80;
+ public static final int DOWN_KEY = 81;
+ public static final int UP_KEY = 82;
+ public static final int NUM_KEY = 83;
+ public static final int KP_DIV_KEY = 84;
+ public static final int KP_MULT_KEY = 85;
+ public static final int KP_SUB_KEY = 86;
+ public static final int KP_ADD_KEY = 87;
+ public static final int KP_ENTER_KEY = 88;
+ public static final int KP_1_KEY = 89;
+ public static final int KP_2_KEY = 90;
+ public static final int KP_3_KEY = 91;
+ public static final int KP_4_KEY = 92;
+ public static final int KP_5_KEY = 93;
+ public static final int KP_6_KEY = 94;
+ public static final int KP_7_KEY = 95;
+ public static final int KP_8_KEY = 96;
+ public static final int KP_9_KEY = 97;
+ public static final int KP_0_KEY = 98;
+ public static final int KP_DEL_KEY = 99;
+ public static final int EUROPE2_KEY = 100;
+ public static final int KP_EQUALS_KEY = 103;
+ public static final int INTL_1_KEY = 135;
+ public static final int INTL_2_KEY = 136;
+ public static final int INTL_3_KEY = 137;
+ public static final int INTL_4_KEY = 138;
+ public static final int INTL_5_KEY = 139;
+ public static final int L_CTRL_KEY = 224;
+ public static final int L_SHIFT_KEY = 225;
+ public static final int L_ALT_KEY = 226;
+ public static final int R_CTRL_KEY = 228;
+ public static final int R_SHIFT_KEY = 229;
+ public static final int R_ALT_KEY = 230;
+ public static final int ALTGR_KEY = 230;
+ public static final int JAPAN1_KEY = 53;
+ public static final int JAPAN30_KEY = 57;
+ public static final int JAPAN131_KEY = 139;
+ public static final int JAPAN132_KEY = 138;
+ public static final int JAPAN133_KEY = 136;
+ private HashMap countryMap;
+ private final int keyCodeMap[];
+ private final HashMap japanKeyCharMap;
+ private final HashMap ukKeyCharMap;
+ private final HashMap spanishKeyCharMap;
+ private final HashMap italianKeyCharMap;
+ private final HashMap germanKeyCharMap;
+ private final HashMap frenchKeyCharMap;
+ private final HashMap belgianKeyCharMap;
+ private static Logger logger = Logger.getAnonymousLogger();
+
+ public KeyMap() {
+ this(0);
+ }
+
+ public KeyMap(int i) {
+ keyCodeMap = new int[0x10000];
+ japanKeyCharMap = new HashMap(22, 1.0F);
+ ukKeyCharMap = new HashMap(20, 1.0F);
+ spanishKeyCharMap = new HashMap(39, 1.0F);
+ italianKeyCharMap = new HashMap(35, 1.0F);
+ germanKeyCharMap = new HashMap(50, 1.0F);
+ frenchKeyCharMap = new HashMap(55, 1.0F);
+ belgianKeyCharMap = new HashMap(55, 1.0F);
+ logger.setLevel(Level.WARNING);
+ String s = System.getProperty("mcs.debug");
+ if (s != null && s.equalsIgnoreCase("true"))
+ logger.setLevel(Level.ALL);
+ buildKeyMaps();
+ setKeyboardType(i);
+ }
+
+ public void setKeyboardType(int i) {
+ switch (i) {
+ case 0: // '\0'
+ countryMap = new HashMap(0);
+ break;
+
+ case 5: // '\005'
+ countryMap = japanKeyCharMap;
+ break;
+
+ case 7: // '\007'
+ countryMap = ukKeyCharMap;
+ break;
+
+ case 6: // '\006'
+ countryMap = spanishKeyCharMap;
+ break;
+
+ case 4: // '\004'
+ countryMap = italianKeyCharMap;
+ break;
+
+ case 3: // '\003'
+ countryMap = germanKeyCharMap;
+ break;
+
+ case 2: // '\002'
+ countryMap = frenchKeyCharMap;
+ break;
+
+ case 1: // '\001'
+ countryMap = belgianKeyCharMap;
+ break;
+
+ default:
+ logger.warning("Invalid country keyboard selected.");
+ break;
+ }
+ }
+
+ public int getButtonCode(int i) {
+ switch (i) {
+ default:
+ break;
+
+ case 1: // '\001'
+ if (countryMap == spanishKeyCharMap)
+ return 33;
+ if (countryMap == frenchKeyCharMap)
+ return 31;
+ if (countryMap == italianKeyCharMap)
+ return 48;
+ if (countryMap == belgianKeyCharMap)
+ return 56;
+ break;
+
+ case 2: // '\002'
+ if (countryMap == spanishKeyCharMap || countryMap == frenchKeyCharMap || countryMap == belgianKeyCharMap)
+ return 47;
+ if (countryMap == germanKeyCharMap)
+ return 53;
+ break;
+
+ case 3: // '\003'
+ if (countryMap == frenchKeyCharMap || countryMap == belgianKeyCharMap)
+ return 47;
+ if (countryMap == spanishKeyCharMap)
+ return 52;
+ break;
+
+ case 4: // '\004'
+ if (countryMap == frenchKeyCharMap)
+ return 36;
+ if (countryMap == spanishKeyCharMap)
+ return 47;
+ if (countryMap == italianKeyCharMap || countryMap == belgianKeyCharMap)
+ return 50;
+ if (countryMap == germanKeyCharMap)
+ return 46;
+ break;
+
+ case 5: // '\005'
+ if (countryMap == spanishKeyCharMap || countryMap == belgianKeyCharMap)
+ return 52;
+ if (countryMap == germanKeyCharMap)
+ return 46;
+ break;
+
+ case 10: // '\n'
+ if (countryMap == spanishKeyCharMap)
+ return 53;
+ if (countryMap == germanKeyCharMap)
+ return 45;
+ // fall through
+
+ case 6: // '\006'
+ return 47;
+
+ case 7: // '\007'
+ return 48;
+
+ case 8: // '\b'
+ return 52;
+
+ case 9: // '\t'
+ return 50;
+
+ case 11: // '\013'
+ return 51;
+ }
+ return 0;
+ }
+
+ public int getButtonModifierCode(int i) {
+ switch (i) {
+ default:
+ break;
+
+ case 1: // '\001'
+ if (countryMap == spanishKeyCharMap || countryMap == frenchKeyCharMap || countryMap == italianKeyCharMap || countryMap == belgianKeyCharMap)
+ return 230;
+ break;
+
+ case 2: // '\002'
+ if (countryMap == spanishKeyCharMap)
+ return 225;
+ break;
+
+ case 3: // '\003'
+ if (countryMap == spanishKeyCharMap || countryMap == frenchKeyCharMap || countryMap == belgianKeyCharMap)
+ return 225;
+ break;
+
+ case 4: // '\004'
+ if (countryMap == frenchKeyCharMap || countryMap == italianKeyCharMap || countryMap == belgianKeyCharMap)
+ return 230;
+ if (countryMap == germanKeyCharMap)
+ return 225;
+ break;
+
+ case 5: // '\005'
+ if (countryMap == belgianKeyCharMap)
+ return 230;
+ break;
+
+ case 6: // '\006'
+ case 7: // '\007'
+ case 8: // '\b'
+ case 9: // '\t'
+ case 10: // '\n'
+ return 230;
+
+ case 11: // '\013'
+ return 230;
+ }
+ return 0;
+ }
+
+ public int getKey(KeyEvent keyevent) {
+ char c = keyevent.getKeyChar();
+ int i = keyevent.getKeyCode();
+ switch (keyevent.getKeyLocation()) {
+ case 4: // '\004'
+ switch (i) {
+ case 10: // '\n'
+ return 88;
+
+ case 109: // 'm'
+ return 86;
+
+ case 107: // 'k'
+ return 87;
+
+ case 106: // 'j'
+ return 85;
+
+ case 111: // 'o'
+ return 84;
+
+ case 155:
+ return 98;
+
+ case 36: // '$'
+ return 95;
+
+ case 33: // '!'
+ return 97;
+
+ case 44: // ','
+ case 46: // '.'
+ case 110: // 'n'
+ case 127: // '\177'
+ return 99;
+
+ case 35: // '#'
+ return 89;
+
+ case 34: // '"'
+ return 91;
+
+ case 39: // '\''
+ return 94;
+
+ case 37: // '%'
+ return 92;
+
+ case 40: // '('
+ return 90;
+
+ case 38: // '&'
+ return 96;
+
+ case 12: // '\f'
+ return 93;
+ }
+ // fall through
+
+ case 2: // '\002'
+ switch (i) {
+ case 17: // '\021'
+ return 224;
+
+ case 16: // '\020'
+ return 225;
+
+ case 18: // '\022'
+ return 226;
+ }
+ // fall through
+
+ case 3: // '\003'
+ switch (i) {
+ case 17: // '\021'
+ return 228;
+
+ case 16: // '\020'
+ return 229;
+
+ case 18: // '\022'
+ return 230;
+ }
+ break;
+ }
+ if (i == 69)
+ return 8;
+ if (countryMap == frenchKeyCharMap) {
+ if (i == 522 && c == '\uFFFF')
+ return 45;
+ if (i == 515)
+ return 48;
+ }
+ if (countryMap == belgianKeyCharMap) {
+ if (i == 130)
+ return 47;
+ if (i == 515)
+ return 48;
+ if (i == 54)
+ return 35;
+ if (i == 153)
+ return 100;
+ }
+ if ((countryMap == germanKeyCharMap || countryMap == italianKeyCharMap) && i == 521)
+ return 48;
+ Integer integer = (Integer)countryMap.get(new Integer(c));
+ if (integer != null)
+ return integer.intValue();
+ if (countryMap == germanKeyCharMap)
+ switch (i) {
+ case 81: // 'Q'
+ return 20;
+
+ case 153:
+ return 100;
+
+ case 77: // 'M'
+ return 16;
+ }
+ return keyCodeMap[i];
+ }
+
+ private void buildKeyMaps() {
+ keyCodeMap[65] = 4;
+ keyCodeMap[66] = 5;
+ keyCodeMap[67] = 6;
+ keyCodeMap[68] = 7;
+ keyCodeMap[69] = 8;
+ keyCodeMap[70] = 9;
+ keyCodeMap[71] = 10;
+ keyCodeMap[72] = 11;
+ keyCodeMap[73] = 12;
+ keyCodeMap[74] = 13;
+ keyCodeMap[75] = 14;
+ keyCodeMap[76] = 15;
+ keyCodeMap[77] = 16;
+ keyCodeMap[78] = 17;
+ keyCodeMap[79] = 18;
+ keyCodeMap[80] = 19;
+ keyCodeMap[81] = 20;
+ keyCodeMap[82] = 21;
+ keyCodeMap[83] = 22;
+ keyCodeMap[84] = 23;
+ keyCodeMap[85] = 24;
+ keyCodeMap[86] = 25;
+ keyCodeMap[87] = 26;
+ keyCodeMap[88] = 27;
+ keyCodeMap[89] = 28;
+ keyCodeMap[90] = 29;
+ keyCodeMap[49] = 30;
+ keyCodeMap[517] = 30;
+ keyCodeMap[50] = 31;
+ keyCodeMap[512] = 31;
+ keyCodeMap[51] = 32;
+ keyCodeMap[520] = 32;
+ keyCodeMap[52] = 33;
+ keyCodeMap[515] = 33;
+ keyCodeMap[53] = 34;
+ keyCodeMap[54] = 35;
+ keyCodeMap[514] = 35;
+ keyCodeMap[55] = 36;
+ keyCodeMap[150] = 36;
+ keyCodeMap[56] = 37;
+ keyCodeMap[151] = 37;
+ keyCodeMap[57] = 38;
+ keyCodeMap[519] = 38;
+ keyCodeMap[48] = 39;
+ keyCodeMap[522] = 39;
+ keyCodeMap[10] = 40;
+ keyCodeMap[27] = 41;
+ keyCodeMap[8] = 42;
+ keyCodeMap[9] = 43;
+ keyCodeMap[32] = 44;
+ keyCodeMap[45] = 45;
+ keyCodeMap[523] = 45;
+ keyCodeMap[521] = 46;
+ keyCodeMap[61] = 46;
+ keyCodeMap[91] = 47;
+ keyCodeMap[161] = 47;
+ keyCodeMap[93] = 48;
+ keyCodeMap[162] = 48;
+ keyCodeMap[92] = 49;
+ keyCodeMap[59] = 51;
+ keyCodeMap[513] = 51;
+ keyCodeMap[222] = 52;
+ keyCodeMap[152] = 52;
+ keyCodeMap[192] = 53;
+ keyCodeMap[44] = 54;
+ keyCodeMap[153] = 54;
+ keyCodeMap[46] = 55;
+ keyCodeMap[160] = 55;
+ keyCodeMap[47] = 56;
+ keyCodeMap[20] = 57;
+ keyCodeMap[112] = 58;
+ keyCodeMap[113] = 59;
+ keyCodeMap[114] = 60;
+ keyCodeMap[115] = 61;
+ keyCodeMap[116] = 62;
+ keyCodeMap[117] = 63;
+ keyCodeMap[118] = 64;
+ keyCodeMap[119] = 65;
+ keyCodeMap[120] = 66;
+ keyCodeMap[121] = 67;
+ keyCodeMap[122] = 68;
+ keyCodeMap[123] = 69;
+ keyCodeMap[154] = 70;
+ keyCodeMap[145] = 71;
+ keyCodeMap[19] = 72;
+ keyCodeMap[155] = 73;
+ keyCodeMap[36] = 74;
+ keyCodeMap[33] = 75;
+ keyCodeMap[127] = 76;
+ keyCodeMap[35] = 77;
+ keyCodeMap[34] = 78;
+ keyCodeMap[39] = 79;
+ keyCodeMap[37] = 80;
+ keyCodeMap[40] = 81;
+ keyCodeMap[38] = 82;
+ keyCodeMap[144] = 83;
+ keyCodeMap[97] = 89;
+ keyCodeMap[98] = 90;
+ keyCodeMap[99] = 91;
+ keyCodeMap[100] = 92;
+ keyCodeMap[101] = 93;
+ keyCodeMap[12] = 93;
+ keyCodeMap[102] = 94;
+ keyCodeMap[103] = 95;
+ keyCodeMap[104] = 96;
+ keyCodeMap[105] = 97;
+ keyCodeMap[96] = 98;
+ keyCodeMap[28] = 138;
+ keyCodeMap[29] = 139;
+ keyCodeMap[241] = 136;
+ keyCodeMap[245] = 136;
+ keyCodeMap[243] = 53;
+ keyCodeMap[244] = 53;
+ keyCodeMap[263] = 53;
+ keyCodeMap[65406] = 230;
+ japanKeyCharMap.put(new Integer(34), new Integer(31));
+ japanKeyCharMap.put(new Integer(37), new Integer(34));
+ japanKeyCharMap.put(new Integer(38), new Integer(35));
+ japanKeyCharMap.put(new Integer(39), new Integer(36));
+ japanKeyCharMap.put(new Integer(40), new Integer(37));
+ japanKeyCharMap.put(new Integer(41), new Integer(38));
+ japanKeyCharMap.put(new Integer(42), new Integer(52));
+ japanKeyCharMap.put(new Integer(43), new Integer(51));
+ japanKeyCharMap.put(new Integer(58), new Integer(52));
+ japanKeyCharMap.put(new Integer(61), new Integer(45));
+ japanKeyCharMap.put(new Integer(64), new Integer(47));
+ japanKeyCharMap.put(new Integer(91), new Integer(48));
+ japanKeyCharMap.put(new Integer(92), new Integer(135));
+ japanKeyCharMap.put(new Integer(93), new Integer(50));
+ japanKeyCharMap.put(new Integer(94), new Integer(46));
+ japanKeyCharMap.put(new Integer(95), new Integer(135));
+ japanKeyCharMap.put(new Integer(96), new Integer(47));
+ japanKeyCharMap.put(new Integer(123), new Integer(48));
+ japanKeyCharMap.put(new Integer(124), new Integer(137));
+ japanKeyCharMap.put(new Integer(125), new Integer(50));
+ japanKeyCharMap.put(new Integer(126), new Integer(46));
+ ukKeyCharMap.put(new Integer(201), new Integer(8));
+ ukKeyCharMap.put(new Integer(233), new Integer(8));
+ ukKeyCharMap.put(new Integer(205), new Integer(12));
+ ukKeyCharMap.put(new Integer(237), new Integer(12));
+ ukKeyCharMap.put(new Integer(211), new Integer(18));
+ ukKeyCharMap.put(new Integer(243), new Integer(18));
+ ukKeyCharMap.put(new Integer(218), new Integer(24));
+ ukKeyCharMap.put(new Integer(250), new Integer(24));
+ ukKeyCharMap.put(new Integer(8364), new Integer(33));
+ ukKeyCharMap.put(new Integer(166), new Integer(53));
+ ukKeyCharMap.put(new Integer(172), new Integer(53));
+ ukKeyCharMap.put(new Integer(34), new Integer(31));
+ ukKeyCharMap.put(new Integer(163), new Integer(32));
+ ukKeyCharMap.put(new Integer(35), new Integer(50));
+ ukKeyCharMap.put(new Integer(126), new Integer(50));
+ ukKeyCharMap.put(new Integer(64), new Integer(52));
+ ukKeyCharMap.put(new Integer(215), new Integer(85));
+ ukKeyCharMap.put(new Integer(124), new Integer(100));
+ ukKeyCharMap.put(new Integer(92), new Integer(100));
+ spanishKeyCharMap.put(new Integer(8364), new Integer(8));
+ spanishKeyCharMap.put(new Integer(124), new Integer(30));
+ spanishKeyCharMap.put(new Integer(64), new Integer(31));
+ spanishKeyCharMap.put(new Integer(34), new Integer(31));
+ spanishKeyCharMap.put(new Integer(35), new Integer(32));
+ spanishKeyCharMap.put(new Integer(183), new Integer(32));
+ spanishKeyCharMap.put(new Integer(126), new Integer(33));
+ spanishKeyCharMap.put(new Integer(38), new Integer(35));
+ spanishKeyCharMap.put(new Integer(172), new Integer(35));
+ spanishKeyCharMap.put(new Integer(47), new Integer(36));
+ spanishKeyCharMap.put(new Integer(40), new Integer(37));
+ spanishKeyCharMap.put(new Integer(41), new Integer(38));
+ spanishKeyCharMap.put(new Integer(61), new Integer(39));
+ spanishKeyCharMap.put(new Integer(39), new Integer(45));
+ spanishKeyCharMap.put(new Integer(63), new Integer(45));
+ spanishKeyCharMap.put(new Integer(161), new Integer(46));
+ spanishKeyCharMap.put(new Integer(191), new Integer(46));
+ spanishKeyCharMap.put(new Integer(96), new Integer(47));
+ spanishKeyCharMap.put(new Integer(94), new Integer(47));
+ spanishKeyCharMap.put(new Integer(43), new Integer(48));
+ spanishKeyCharMap.put(new Integer(42), new Integer(48));
+ spanishKeyCharMap.put(new Integer(231), new Integer(50));
+ spanishKeyCharMap.put(new Integer(199), new Integer(50));
+ spanishKeyCharMap.put(new Integer(125), new Integer(50));
+ spanishKeyCharMap.put(new Integer(209), new Integer(51));
+ spanishKeyCharMap.put(new Integer(241), new Integer(51));
+ spanishKeyCharMap.put(new Integer(168), new Integer(52));
+ spanishKeyCharMap.put(new Integer(180), new Integer(52));
+ spanishKeyCharMap.put(new Integer(123), new Integer(52));
+ spanishKeyCharMap.put(new Integer(186), new Integer(53));
+ spanishKeyCharMap.put(new Integer(170), new Integer(53));
+ spanishKeyCharMap.put(new Integer(92), new Integer(53));
+ spanishKeyCharMap.put(new Integer(59), new Integer(54));
+ spanishKeyCharMap.put(new Integer(58), new Integer(55));
+ spanishKeyCharMap.put(new Integer(45), new Integer(56));
+ spanishKeyCharMap.put(new Integer(95), new Integer(56));
+ spanishKeyCharMap.put(new Integer(215), new Integer(85));
+ spanishKeyCharMap.put(new Integer(60), new Integer(100));
+ spanishKeyCharMap.put(new Integer(62), new Integer(100));
+ italianKeyCharMap.put(new Integer(8364), new Integer(8));
+ italianKeyCharMap.put(new Integer(34), new Integer(31));
+ italianKeyCharMap.put(new Integer(163), new Integer(32));
+ italianKeyCharMap.put(new Integer(38), new Integer(35));
+ italianKeyCharMap.put(new Integer(47), new Integer(36));
+ italianKeyCharMap.put(new Integer(40), new Integer(37));
+ italianKeyCharMap.put(new Integer(41), new Integer(38));
+ italianKeyCharMap.put(new Integer(61), new Integer(39));
+ italianKeyCharMap.put(new Integer(39), new Integer(45));
+ italianKeyCharMap.put(new Integer(63), new Integer(45));
+ italianKeyCharMap.put(new Integer(94), new Integer(46));
+ italianKeyCharMap.put(new Integer(236), new Integer(46));
+ italianKeyCharMap.put(new Integer(64), new Integer(20));
+ italianKeyCharMap.put(new Integer(232), new Integer(47));
+ italianKeyCharMap.put(new Integer(233), new Integer(47));
+ italianKeyCharMap.put(new Integer(43), new Integer(48));
+ italianKeyCharMap.put(new Integer(42), new Integer(48));
+ italianKeyCharMap.put(new Integer(126), new Integer(48));
+ italianKeyCharMap.put(new Integer(249), new Integer(50));
+ italianKeyCharMap.put(new Integer(167), new Integer(50));
+ italianKeyCharMap.put(new Integer(96), new Integer(50));
+ italianKeyCharMap.put(new Integer(242), new Integer(51));
+ italianKeyCharMap.put(new Integer(231), new Integer(51));
+ italianKeyCharMap.put(new Integer(224), new Integer(52));
+ italianKeyCharMap.put(new Integer(176), new Integer(52));
+ italianKeyCharMap.put(new Integer(35), new Integer(52));
+ italianKeyCharMap.put(new Integer(92), new Integer(53));
+ italianKeyCharMap.put(new Integer(124), new Integer(53));
+ italianKeyCharMap.put(new Integer(59), new Integer(54));
+ italianKeyCharMap.put(new Integer(58), new Integer(55));
+ italianKeyCharMap.put(new Integer(45), new Integer(56));
+ italianKeyCharMap.put(new Integer(95), new Integer(56));
+ italianKeyCharMap.put(new Integer(215), new Integer(85));
+ italianKeyCharMap.put(new Integer(60), new Integer(100));
+ italianKeyCharMap.put(new Integer(62), new Integer(100));
+ germanKeyCharMap.put(new Integer(8364), new Integer(8));
+ germanKeyCharMap.put(new Integer(181), new Integer(16));
+ germanKeyCharMap.put(new Integer(64), new Integer(20));
+ germanKeyCharMap.put(new Integer(122), new Integer(28));
+ germanKeyCharMap.put(new Integer(90), new Integer(28));
+ germanKeyCharMap.put(new Integer(121), new Integer(29));
+ germanKeyCharMap.put(new Integer(89), new Integer(29));
+ germanKeyCharMap.put(new Integer(34), new Integer(31));
+ germanKeyCharMap.put(new Integer(178), new Integer(31));
+ germanKeyCharMap.put(new Integer(167), new Integer(32));
+ germanKeyCharMap.put(new Integer(179), new Integer(32));
+ germanKeyCharMap.put(new Integer(38), new Integer(35));
+ germanKeyCharMap.put(new Integer(47), new Integer(36));
+ germanKeyCharMap.put(new Integer(123), new Integer(36));
+ germanKeyCharMap.put(new Integer(40), new Integer(37));
+ germanKeyCharMap.put(new Integer(91), new Integer(37));
+ germanKeyCharMap.put(new Integer(41), new Integer(38));
+ germanKeyCharMap.put(new Integer(93), new Integer(38));
+ germanKeyCharMap.put(new Integer(61), new Integer(39));
+ germanKeyCharMap.put(new Integer(125), new Integer(39));
+ germanKeyCharMap.put(new Integer(92), new Integer(45));
+ germanKeyCharMap.put(new Integer(63), new Integer(45));
+ germanKeyCharMap.put(new Integer(223), new Integer(45));
+ germanKeyCharMap.put(new Integer(96), new Integer(46));
+ germanKeyCharMap.put(new Integer(180), new Integer(46));
+ germanKeyCharMap.put(new Integer(252), new Integer(47));
+ germanKeyCharMap.put(new Integer(220), new Integer(47));
+ germanKeyCharMap.put(new Integer(43), new Integer(48));
+ germanKeyCharMap.put(new Integer(42), new Integer(48));
+ germanKeyCharMap.put(new Integer(126), new Integer(48));
+ germanKeyCharMap.put(new Integer(35), new Integer(50));
+ germanKeyCharMap.put(new Integer(39), new Integer(50));
+ germanKeyCharMap.put(new Integer(246), new Integer(51));
+ germanKeyCharMap.put(new Integer(214), new Integer(51));
+ germanKeyCharMap.put(new Integer(228), new Integer(52));
+ germanKeyCharMap.put(new Integer(196), new Integer(52));
+ germanKeyCharMap.put(new Integer(94), new Integer(53));
+ germanKeyCharMap.put(new Integer(176), new Integer(53));
+ germanKeyCharMap.put(new Integer(44), new Integer(54));
+ germanKeyCharMap.put(new Integer(59), new Integer(54));
+ germanKeyCharMap.put(new Integer(46), new Integer(55));
+ germanKeyCharMap.put(new Integer(58), new Integer(55));
+ germanKeyCharMap.put(new Integer(45), new Integer(56));
+ germanKeyCharMap.put(new Integer(95), new Integer(56));
+ germanKeyCharMap.put(new Integer(215), new Integer(85));
+ germanKeyCharMap.put(new Integer(60), new Integer(100));
+ germanKeyCharMap.put(new Integer(62), new Integer(100));
+ germanKeyCharMap.put(new Integer(124), new Integer(100));
+ frenchKeyCharMap.put(new Integer(113), new Integer(4));
+ frenchKeyCharMap.put(new Integer(81), new Integer(4));
+ frenchKeyCharMap.put(new Integer(8364), new Integer(8));
+ frenchKeyCharMap.put(new Integer(44), new Integer(16));
+ frenchKeyCharMap.put(new Integer(63), new Integer(16));
+ frenchKeyCharMap.put(new Integer(97), new Integer(20));
+ frenchKeyCharMap.put(new Integer(65), new Integer(20));
+ frenchKeyCharMap.put(new Integer(122), new Integer(26));
+ frenchKeyCharMap.put(new Integer(90), new Integer(26));
+ frenchKeyCharMap.put(new Integer(119), new Integer(29));
+ frenchKeyCharMap.put(new Integer(87), new Integer(29));
+ frenchKeyCharMap.put(new Integer(38), new Integer(30));
+ frenchKeyCharMap.put(new Integer(126), new Integer(31));
+ frenchKeyCharMap.put(new Integer(233), new Integer(31));
+ frenchKeyCharMap.put(new Integer(34), new Integer(32));
+ frenchKeyCharMap.put(new Integer(35), new Integer(32));
+ frenchKeyCharMap.put(new Integer(39), new Integer(33));
+ frenchKeyCharMap.put(new Integer(123), new Integer(33));
+ frenchKeyCharMap.put(new Integer(40), new Integer(34));
+ frenchKeyCharMap.put(new Integer(91), new Integer(34));
+ frenchKeyCharMap.put(new Integer(45), new Integer(35));
+ frenchKeyCharMap.put(new Integer(124), new Integer(35));
+ frenchKeyCharMap.put(new Integer(232), new Integer(36));
+ frenchKeyCharMap.put(new Integer(96), new Integer(36));
+ frenchKeyCharMap.put(new Integer(95), new Integer(37));
+ frenchKeyCharMap.put(new Integer(92), new Integer(37));
+ frenchKeyCharMap.put(new Integer(231), new Integer(38));
+ frenchKeyCharMap.put(new Integer(94), new Integer(38));
+ frenchKeyCharMap.put(new Integer(224), new Integer(39));
+ frenchKeyCharMap.put(new Integer(64), new Integer(39));
+ frenchKeyCharMap.put(new Integer(176), new Integer(45));
+ frenchKeyCharMap.put(new Integer(41), new Integer(45));
+ frenchKeyCharMap.put(new Integer(93), new Integer(45));
+ frenchKeyCharMap.put(new Integer(125), new Integer(46));
+ frenchKeyCharMap.put(new Integer(168), new Integer(47));
+ frenchKeyCharMap.put(new Integer(164), new Integer(48));
+ frenchKeyCharMap.put(new Integer(36), new Integer(48));
+ frenchKeyCharMap.put(new Integer(163), new Integer(48));
+ frenchKeyCharMap.put(new Integer(42), new Integer(50));
+ frenchKeyCharMap.put(new Integer(181), new Integer(50));
+ frenchKeyCharMap.put(new Integer(109), new Integer(51));
+ frenchKeyCharMap.put(new Integer(77), new Integer(51));
+ frenchKeyCharMap.put(new Integer(249), new Integer(52));
+ frenchKeyCharMap.put(new Integer(37), new Integer(52));
+ frenchKeyCharMap.put(new Integer(178), new Integer(53));
+ frenchKeyCharMap.put(new Integer(59), new Integer(54));
+ frenchKeyCharMap.put(new Integer(46), new Integer(54));
+ frenchKeyCharMap.put(new Integer(58), new Integer(55));
+ frenchKeyCharMap.put(new Integer(47), new Integer(55));
+ frenchKeyCharMap.put(new Integer(33), new Integer(56));
+ frenchKeyCharMap.put(new Integer(167), new Integer(56));
+ frenchKeyCharMap.put(new Integer(215), new Integer(85));
+ frenchKeyCharMap.put(new Integer(60), new Integer(100));
+ frenchKeyCharMap.put(new Integer(62), new Integer(100));
+ belgianKeyCharMap.put(new Integer(113), new Integer(4));
+ belgianKeyCharMap.put(new Integer(81), new Integer(4));
+ belgianKeyCharMap.put(new Integer(8364), new Integer(8));
+ belgianKeyCharMap.put(new Integer(44), new Integer(16));
+ belgianKeyCharMap.put(new Integer(63), new Integer(16));
+ belgianKeyCharMap.put(new Integer(97), new Integer(20));
+ belgianKeyCharMap.put(new Integer(65), new Integer(20));
+ belgianKeyCharMap.put(new Integer(122), new Integer(26));
+ belgianKeyCharMap.put(new Integer(90), new Integer(26));
+ belgianKeyCharMap.put(new Integer(119), new Integer(29));
+ belgianKeyCharMap.put(new Integer(87), new Integer(29));
+ belgianKeyCharMap.put(new Integer(38), new Integer(30));
+ belgianKeyCharMap.put(new Integer(124), new Integer(30));
+ belgianKeyCharMap.put(new Integer(64), new Integer(31));
+ belgianKeyCharMap.put(new Integer(233), new Integer(31));
+ belgianKeyCharMap.put(new Integer(34), new Integer(32));
+ belgianKeyCharMap.put(new Integer(35), new Integer(32));
+ belgianKeyCharMap.put(new Integer(39), new Integer(33));
+ belgianKeyCharMap.put(new Integer(123), new Integer(33));
+ belgianKeyCharMap.put(new Integer(40), new Integer(34));
+ belgianKeyCharMap.put(new Integer(91), new Integer(34));
+ belgianKeyCharMap.put(new Integer(167), new Integer(35));
+ belgianKeyCharMap.put(new Integer(94), new Integer(35));
+ belgianKeyCharMap.put(new Integer(232), new Integer(36));
+ belgianKeyCharMap.put(new Integer(33), new Integer(37));
+ belgianKeyCharMap.put(new Integer(231), new Integer(38));
+ belgianKeyCharMap.put(new Integer(123), new Integer(38));
+ belgianKeyCharMap.put(new Integer(224), new Integer(39));
+ belgianKeyCharMap.put(new Integer(125), new Integer(39));
+ belgianKeyCharMap.put(new Integer(176), new Integer(45));
+ belgianKeyCharMap.put(new Integer(41), new Integer(45));
+ belgianKeyCharMap.put(new Integer(45), new Integer(46));
+ belgianKeyCharMap.put(new Integer(95), new Integer(46));
+ belgianKeyCharMap.put(new Integer(168), new Integer(47));
+ belgianKeyCharMap.put(new Integer(42), new Integer(48));
+ belgianKeyCharMap.put(new Integer(36), new Integer(48));
+ belgianKeyCharMap.put(new Integer(163), new Integer(50));
+ belgianKeyCharMap.put(new Integer(181), new Integer(50));
+ belgianKeyCharMap.put(new Integer(109), new Integer(51));
+ belgianKeyCharMap.put(new Integer(77), new Integer(51));
+ belgianKeyCharMap.put(new Integer(249), new Integer(52));
+ belgianKeyCharMap.put(new Integer(37), new Integer(52));
+ belgianKeyCharMap.put(new Integer(178), new Integer(53));
+ belgianKeyCharMap.put(new Integer(179), new Integer(53));
+ belgianKeyCharMap.put(new Integer(59), new Integer(54));
+ belgianKeyCharMap.put(new Integer(46), new Integer(54));
+ belgianKeyCharMap.put(new Integer(58), new Integer(55));
+ belgianKeyCharMap.put(new Integer(47), new Integer(55));
+ belgianKeyCharMap.put(new Integer(43), new Integer(56));
+ belgianKeyCharMap.put(new Integer(61), new Integer(56));
+ belgianKeyCharMap.put(new Integer(215), new Integer(85));
+ belgianKeyCharMap.put(new Integer(60), new Integer(100));
+ belgianKeyCharMap.put(new Integer(62), new Integer(100));
+ belgianKeyCharMap.put(new Integer(92), new Integer(100));
+ }
+
+}