1067N/Apackage sun.awt;
1067N/A
1067N/Aimport java.util.Collections;
1067N/Aimport java.util.HashMap;
1067N/Aimport java.util.HashSet;
1067N/Aimport java.awt.event.KeyEvent;
1067N/A
1067N/Apublic class ExtendedKeyCodes {
1067N/A /**
1067N/A * ATTN: These are the readonly hashes with load factor == 1;
1067N/A * adding a value, please set the inital capacity to exact number of items
1067N/A * or higher.
1067N/A */
1067N/A // Keycodes declared in KeyEvent.java with corresponding Unicode values.
1067N/A private final static HashMap<Integer, Integer> regularKeyCodesMap =
4097N/A new HashMap<Integer,Integer>(98, 1.0f);
1067N/A
1067N/A // Keycodes derived from Unicode values. Here should be collected codes
1067N/A // for characters appearing on the primary layer of at least one
1067N/A // known keyboard layout. For instance, sterling sign is on the primary layer
1067N/A // of the Mac Italian layout.
1067N/A private final static HashSet<Integer> extendedKeyCodesSet =
1067N/A new HashSet<Integer>(501, 1.0f);
1067N/A final public static int getExtendedKeyCodeForChar( int c ) {
1067N/A int uc = Character.toUpperCase( c );
1067N/A int lc = Character.toLowerCase( c );
1067N/A if (regularKeyCodesMap.containsKey( c )) {
1067N/A if(regularKeyCodesMap.containsKey(uc)) {
1067N/A return regularKeyCodesMap.get( uc );
1067N/A }
1067N/A return regularKeyCodesMap.get( c );
1067N/A }
1067N/A uc += 0x01000000;
1067N/A lc += 0x01000000;
1067N/A if (extendedKeyCodesSet.contains( uc )) {
1067N/A return uc;
1067N/A }else if (extendedKeyCodesSet.contains( lc )) {
1067N/A return lc;
1067N/A }
2135N/A return KeyEvent.VK_UNDEFINED;
1067N/A }
1067N/A static {
1067N/A regularKeyCodesMap.put(0x08, KeyEvent.VK_BACK_SPACE);
1067N/A regularKeyCodesMap.put(0x09, KeyEvent.VK_TAB);
2135N/A regularKeyCodesMap.put(0x0a, KeyEvent.VK_ENTER);
1067N/A regularKeyCodesMap.put(0x1B, KeyEvent.VK_ESCAPE);
2135N/A regularKeyCodesMap.put(0x20AC, KeyEvent.VK_EURO_SIGN);
1067N/A regularKeyCodesMap.put(0x20, KeyEvent.VK_SPACE);
2135N/A regularKeyCodesMap.put(0x21, KeyEvent.VK_EXCLAMATION_MARK);
2135N/A regularKeyCodesMap.put(0x22, KeyEvent.VK_QUOTEDBL);
2135N/A regularKeyCodesMap.put(0x23, KeyEvent.VK_NUMBER_SIGN);
2135N/A regularKeyCodesMap.put(0x24, KeyEvent.VK_DOLLAR);
2135N/A regularKeyCodesMap.put(0x26, KeyEvent.VK_AMPERSAND);
2135N/A regularKeyCodesMap.put(0x27, KeyEvent.VK_QUOTE);
2135N/A regularKeyCodesMap.put(0x28, KeyEvent.VK_LEFT_PARENTHESIS);
2135N/A regularKeyCodesMap.put(0x29, KeyEvent.VK_RIGHT_PARENTHESIS);
2135N/A regularKeyCodesMap.put(0x2A, KeyEvent.VK_ASTERISK);
2135N/A regularKeyCodesMap.put(0x2B, KeyEvent.VK_PLUS);
1067N/A regularKeyCodesMap.put(0x2C, KeyEvent.VK_COMMA);
1067N/A regularKeyCodesMap.put(0x2D, KeyEvent.VK_MINUS);
1067N/A regularKeyCodesMap.put(0x2E, KeyEvent.VK_PERIOD);
1067N/A regularKeyCodesMap.put(0x2F, KeyEvent.VK_SLASH);
1067N/A regularKeyCodesMap.put(0x30, KeyEvent.VK_0);
1067N/A regularKeyCodesMap.put(0x31, KeyEvent.VK_1);
1067N/A regularKeyCodesMap.put(0x32, KeyEvent.VK_2);
1067N/A regularKeyCodesMap.put(0x33, KeyEvent.VK_3);
1067N/A regularKeyCodesMap.put(0x34, KeyEvent.VK_4);
1067N/A regularKeyCodesMap.put(0x35, KeyEvent.VK_5);
1067N/A regularKeyCodesMap.put(0x36, KeyEvent.VK_6);
1067N/A regularKeyCodesMap.put(0x37, KeyEvent.VK_7);
1067N/A regularKeyCodesMap.put(0x38, KeyEvent.VK_8);
1067N/A regularKeyCodesMap.put(0x39, KeyEvent.VK_9);
2135N/A regularKeyCodesMap.put(0x3A, KeyEvent.VK_COLON);
1067N/A regularKeyCodesMap.put(0x3B, KeyEvent.VK_SEMICOLON);
2135N/A regularKeyCodesMap.put(0x3C, KeyEvent.VK_LESS);
1067N/A regularKeyCodesMap.put(0x3D, KeyEvent.VK_EQUALS);
2135N/A regularKeyCodesMap.put(0x3E, KeyEvent.VK_GREATER);
2135N/A regularKeyCodesMap.put(0x40, KeyEvent.VK_AT);
1067N/A regularKeyCodesMap.put(0x41, KeyEvent.VK_A);
1067N/A regularKeyCodesMap.put(0x42, KeyEvent.VK_B);
1067N/A regularKeyCodesMap.put(0x43, KeyEvent.VK_C);
1067N/A regularKeyCodesMap.put(0x44, KeyEvent.VK_D);
1067N/A regularKeyCodesMap.put(0x45, KeyEvent.VK_E);
1067N/A regularKeyCodesMap.put(0x46, KeyEvent.VK_F);
1067N/A regularKeyCodesMap.put(0x47, KeyEvent.VK_G);
1067N/A regularKeyCodesMap.put(0x48, KeyEvent.VK_H);
1067N/A regularKeyCodesMap.put(0x49, KeyEvent.VK_I);
1067N/A regularKeyCodesMap.put(0x4A, KeyEvent.VK_J);
1067N/A regularKeyCodesMap.put(0x4B, KeyEvent.VK_K);
1067N/A regularKeyCodesMap.put(0x4C, KeyEvent.VK_L);
1067N/A regularKeyCodesMap.put(0x4D, KeyEvent.VK_M);
1067N/A regularKeyCodesMap.put(0x4E, KeyEvent.VK_N);
1067N/A regularKeyCodesMap.put(0x4F, KeyEvent.VK_O);
1067N/A regularKeyCodesMap.put(0x50, KeyEvent.VK_P);
1067N/A regularKeyCodesMap.put(0x51, KeyEvent.VK_Q);
1067N/A regularKeyCodesMap.put(0x52, KeyEvent.VK_R);
1067N/A regularKeyCodesMap.put(0x53, KeyEvent.VK_S);
1067N/A regularKeyCodesMap.put(0x54, KeyEvent.VK_T);
1067N/A regularKeyCodesMap.put(0x55, KeyEvent.VK_U);
1067N/A regularKeyCodesMap.put(0x56, KeyEvent.VK_V);
1067N/A regularKeyCodesMap.put(0x57, KeyEvent.VK_W);
1067N/A regularKeyCodesMap.put(0x58, KeyEvent.VK_X);
1067N/A regularKeyCodesMap.put(0x59, KeyEvent.VK_Y);
1067N/A regularKeyCodesMap.put(0x5A, KeyEvent.VK_Z);
1067N/A regularKeyCodesMap.put(0x5B, KeyEvent.VK_OPEN_BRACKET);
1067N/A regularKeyCodesMap.put(0x5C, KeyEvent.VK_BACK_SLASH);
1067N/A regularKeyCodesMap.put(0x5D, KeyEvent.VK_CLOSE_BRACKET);
2135N/A regularKeyCodesMap.put(0x5E, KeyEvent.VK_CIRCUMFLEX);
2135N/A regularKeyCodesMap.put(0x5F, KeyEvent.VK_UNDERSCORE);
2135N/A regularKeyCodesMap.put(0x60, KeyEvent.VK_BACK_QUOTE);
4097N/A regularKeyCodesMap.put(0x61, KeyEvent.VK_A);
4097N/A regularKeyCodesMap.put(0x62, KeyEvent.VK_B);
4097N/A regularKeyCodesMap.put(0x63, KeyEvent.VK_C);
4097N/A regularKeyCodesMap.put(0x64, KeyEvent.VK_D);
4097N/A regularKeyCodesMap.put(0x65, KeyEvent.VK_E);
4097N/A regularKeyCodesMap.put(0x66, KeyEvent.VK_F);
4097N/A regularKeyCodesMap.put(0x67, KeyEvent.VK_G);
4097N/A regularKeyCodesMap.put(0x68, KeyEvent.VK_H);
4097N/A regularKeyCodesMap.put(0x69, KeyEvent.VK_I);
4097N/A regularKeyCodesMap.put(0x6A, KeyEvent.VK_J);
4097N/A regularKeyCodesMap.put(0x6B, KeyEvent.VK_K);
4097N/A regularKeyCodesMap.put(0x6C, KeyEvent.VK_L);
4097N/A regularKeyCodesMap.put(0x6D, KeyEvent.VK_M);
4097N/A regularKeyCodesMap.put(0x6E, KeyEvent.VK_N);
4097N/A regularKeyCodesMap.put(0x6F, KeyEvent.VK_O);
2135N/A regularKeyCodesMap.put(0x70, KeyEvent.VK_P);
2135N/A regularKeyCodesMap.put(0x71, KeyEvent.VK_Q);
2135N/A regularKeyCodesMap.put(0x72, KeyEvent.VK_R);
2135N/A regularKeyCodesMap.put(0x73, KeyEvent.VK_S);
2135N/A regularKeyCodesMap.put(0x74, KeyEvent.VK_T);
2135N/A regularKeyCodesMap.put(0x75, KeyEvent.VK_U);
2135N/A regularKeyCodesMap.put(0x76, KeyEvent.VK_V);
2135N/A regularKeyCodesMap.put(0x77, KeyEvent.VK_W);
2135N/A regularKeyCodesMap.put(0x78, KeyEvent.VK_X);
2135N/A regularKeyCodesMap.put(0x79, KeyEvent.VK_Y);
2135N/A regularKeyCodesMap.put(0x7A, KeyEvent.VK_Z);
1067N/A regularKeyCodesMap.put(0x7B, KeyEvent.VK_BRACELEFT);
1067N/A regularKeyCodesMap.put(0x7D, KeyEvent.VK_BRACERIGHT);
2135N/A regularKeyCodesMap.put(0x7F, KeyEvent.VK_DELETE);
1067N/A regularKeyCodesMap.put(0xA1, KeyEvent.VK_INVERTED_EXCLAMATION_MARK);
1067N/A
1067N/A extendedKeyCodesSet.add(0x01000000+0x0060);
1067N/A extendedKeyCodesSet.add(0x01000000+0x007C);
1067N/A extendedKeyCodesSet.add(0x01000000+0x007E);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00A2);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00A3);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00A5);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00A7);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00A8);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00AB);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00B0);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00B1);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00B2);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00B3);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00B4);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00B5);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00B6);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00B7);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00B9);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00BA);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00BB);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00BC);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00BD);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00BE);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00BF);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00C4);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00C5);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00C6);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00C7);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00D1);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00D6);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00D7);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00D8);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00DF);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00E0);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00E1);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00E2);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00E4);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00E5);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00E6);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00E7);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00E8);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00E9);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00EA);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00EB);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00EC);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00ED);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00EE);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00F0);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00F1);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00F2);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00F3);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00F4);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00F5);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00F6);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00F7);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00F8);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00F9);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00FA);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00FB);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00FC);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00FD);
1067N/A extendedKeyCodesSet.add(0x01000000+0x00FE);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0105);
1067N/A extendedKeyCodesSet.add(0x01000000+0x02DB);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0142);
1067N/A extendedKeyCodesSet.add(0x01000000+0x013E);
1067N/A extendedKeyCodesSet.add(0x01000000+0x015B);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0161);
1067N/A extendedKeyCodesSet.add(0x01000000+0x015F);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0165);
1067N/A extendedKeyCodesSet.add(0x01000000+0x017E);
1067N/A extendedKeyCodesSet.add(0x01000000+0x017C);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0103);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0107);
1067N/A extendedKeyCodesSet.add(0x01000000+0x010D);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0119);
1067N/A extendedKeyCodesSet.add(0x01000000+0x011B);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0111);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0148);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0151);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0171);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0159);
1067N/A extendedKeyCodesSet.add(0x01000000+0x016F);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0163);
1067N/A extendedKeyCodesSet.add(0x01000000+0x02D9);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0130);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0127);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0125);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0131);
1067N/A extendedKeyCodesSet.add(0x01000000+0x011F);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0135);
1067N/A extendedKeyCodesSet.add(0x01000000+0x010B);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0109);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0121);
1067N/A extendedKeyCodesSet.add(0x01000000+0x011D);
1067N/A extendedKeyCodesSet.add(0x01000000+0x016D);
1067N/A extendedKeyCodesSet.add(0x01000000+0x015D);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0138);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0157);
1067N/A extendedKeyCodesSet.add(0x01000000+0x013C);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0113);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0123);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0167);
1067N/A extendedKeyCodesSet.add(0x01000000+0x014B);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0101);
1067N/A extendedKeyCodesSet.add(0x01000000+0x012F);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0117);
1067N/A extendedKeyCodesSet.add(0x01000000+0x012B);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0146);
1067N/A extendedKeyCodesSet.add(0x01000000+0x014D);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0137);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0173);
1067N/A extendedKeyCodesSet.add(0x01000000+0x016B);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0153);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30FC);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30A2);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30A4);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30A6);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30A8);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30AA);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30AB);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30AD);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30AF);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30B1);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30B3);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30B5);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30B7);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30B9);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30BB);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30BD);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30BF);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30C1);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30C4);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30C6);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30C8);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30CA);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30CB);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30CC);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30CD);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30CE);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30CF);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30D2);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30D5);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30D8);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30DB);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30DE);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30DF);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30E0);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30E1);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30E2);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30E4);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30E6);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30E8);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30E9);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30EA);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30EB);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30EC);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30ED);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30EF);
1067N/A extendedKeyCodesSet.add(0x01000000+0x30F3);
1067N/A extendedKeyCodesSet.add(0x01000000+0x309B);
1067N/A extendedKeyCodesSet.add(0x01000000+0x309C);
1067N/A extendedKeyCodesSet.add(0x01000000+0x06F0);
1067N/A extendedKeyCodesSet.add(0x01000000+0x06F1);
1067N/A extendedKeyCodesSet.add(0x01000000+0x06F2);
1067N/A extendedKeyCodesSet.add(0x01000000+0x06F3);
1067N/A extendedKeyCodesSet.add(0x01000000+0x06F4);
1067N/A extendedKeyCodesSet.add(0x01000000+0x06F5);
1067N/A extendedKeyCodesSet.add(0x01000000+0x06F6);
1067N/A extendedKeyCodesSet.add(0x01000000+0x06F7);
1067N/A extendedKeyCodesSet.add(0x01000000+0x06F8);
1067N/A extendedKeyCodesSet.add(0x01000000+0x06F9);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0670);
1067N/A extendedKeyCodesSet.add(0x01000000+0x067E);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0686);
1067N/A extendedKeyCodesSet.add(0x01000000+0x060C);
1067N/A extendedKeyCodesSet.add(0x01000000+0x06D4);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0660);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0661);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0662);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0663);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0664);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0665);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0666);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0667);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0668);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0669);
1067N/A extendedKeyCodesSet.add(0x01000000+0x061B);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0621);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0624);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0626);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0627);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0628);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0629);
1067N/A extendedKeyCodesSet.add(0x01000000+0x062A);
1067N/A extendedKeyCodesSet.add(0x01000000+0x062B);
1067N/A extendedKeyCodesSet.add(0x01000000+0x062C);
1067N/A extendedKeyCodesSet.add(0x01000000+0x062D);
1067N/A extendedKeyCodesSet.add(0x01000000+0x062E);
1067N/A extendedKeyCodesSet.add(0x01000000+0x062F);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0630);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0631);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0632);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0633);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0634);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0635);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0636);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0637);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0638);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0639);
1067N/A extendedKeyCodesSet.add(0x01000000+0x063A);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0641);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0642);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0643);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0644);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0645);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0646);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0647);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0648);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0649);
1067N/A extendedKeyCodesSet.add(0x01000000+0x064A);
1067N/A extendedKeyCodesSet.add(0x01000000+0x064E);
1067N/A extendedKeyCodesSet.add(0x01000000+0x064F);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0650);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0652);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0698);
1067N/A extendedKeyCodesSet.add(0x01000000+0x06A4);
1067N/A extendedKeyCodesSet.add(0x01000000+0x06A9);
1067N/A extendedKeyCodesSet.add(0x01000000+0x06AF);
1067N/A extendedKeyCodesSet.add(0x01000000+0x06BE);
1067N/A extendedKeyCodesSet.add(0x01000000+0x06CC);
1067N/A extendedKeyCodesSet.add(0x01000000+0x06CC);
1067N/A extendedKeyCodesSet.add(0x01000000+0x06D2);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0493);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0497);
1067N/A extendedKeyCodesSet.add(0x01000000+0x049B);
1067N/A extendedKeyCodesSet.add(0x01000000+0x049D);
1067N/A extendedKeyCodesSet.add(0x01000000+0x04A3);
1067N/A extendedKeyCodesSet.add(0x01000000+0x04AF);
1067N/A extendedKeyCodesSet.add(0x01000000+0x04B1);
1067N/A extendedKeyCodesSet.add(0x01000000+0x04B3);
1067N/A extendedKeyCodesSet.add(0x01000000+0x04B9);
1067N/A extendedKeyCodesSet.add(0x01000000+0x04BB);
1067N/A extendedKeyCodesSet.add(0x01000000+0x04D9);
1067N/A extendedKeyCodesSet.add(0x01000000+0x04E9);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0452);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0453);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0451);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0454);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0455);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0456);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0457);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0458);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0459);
1067N/A extendedKeyCodesSet.add(0x01000000+0x045A);
1067N/A extendedKeyCodesSet.add(0x01000000+0x045B);
1067N/A extendedKeyCodesSet.add(0x01000000+0x045C);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0491);
1067N/A extendedKeyCodesSet.add(0x01000000+0x045E);
1067N/A extendedKeyCodesSet.add(0x01000000+0x045F);
1067N/A extendedKeyCodesSet.add(0x01000000+0x2116);
1067N/A extendedKeyCodesSet.add(0x01000000+0x044E);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0430);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0431);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0446);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0434);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0435);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0444);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0433);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0445);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0438);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0439);
1067N/A extendedKeyCodesSet.add(0x01000000+0x043A);
1067N/A extendedKeyCodesSet.add(0x01000000+0x043B);
1067N/A extendedKeyCodesSet.add(0x01000000+0x043C);
1067N/A extendedKeyCodesSet.add(0x01000000+0x043D);
1067N/A extendedKeyCodesSet.add(0x01000000+0x043E);
1067N/A extendedKeyCodesSet.add(0x01000000+0x043F);
1067N/A extendedKeyCodesSet.add(0x01000000+0x044F);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0440);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0441);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0442);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0443);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0436);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0432);
1067N/A extendedKeyCodesSet.add(0x01000000+0x044C);
1067N/A extendedKeyCodesSet.add(0x01000000+0x044B);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0437);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0448);
1067N/A extendedKeyCodesSet.add(0x01000000+0x044D);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0449);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0447);
1067N/A extendedKeyCodesSet.add(0x01000000+0x044A);
1067N/A extendedKeyCodesSet.add(0x01000000+0x2015);
1067N/A extendedKeyCodesSet.add(0x01000000+0x03B1);
1067N/A extendedKeyCodesSet.add(0x01000000+0x03B2);
1067N/A extendedKeyCodesSet.add(0x01000000+0x03B3);
1067N/A extendedKeyCodesSet.add(0x01000000+0x03B4);
1067N/A extendedKeyCodesSet.add(0x01000000+0x03B5);
1067N/A extendedKeyCodesSet.add(0x01000000+0x03B6);
1067N/A extendedKeyCodesSet.add(0x01000000+0x03B7);
1067N/A extendedKeyCodesSet.add(0x01000000+0x03B8);
1067N/A extendedKeyCodesSet.add(0x01000000+0x03B9);
1067N/A extendedKeyCodesSet.add(0x01000000+0x03BA);
1067N/A extendedKeyCodesSet.add(0x01000000+0x03BB);
1067N/A extendedKeyCodesSet.add(0x01000000+0x03BC);
1067N/A extendedKeyCodesSet.add(0x01000000+0x03BD);
1067N/A extendedKeyCodesSet.add(0x01000000+0x03BE);
1067N/A extendedKeyCodesSet.add(0x01000000+0x03BF);
1067N/A extendedKeyCodesSet.add(0x01000000+0x03C0);
1067N/A extendedKeyCodesSet.add(0x01000000+0x03C1);
1067N/A extendedKeyCodesSet.add(0x01000000+0x03C3);
1067N/A extendedKeyCodesSet.add(0x01000000+0x03C2);
1067N/A extendedKeyCodesSet.add(0x01000000+0x03C4);
1067N/A extendedKeyCodesSet.add(0x01000000+0x03C5);
1067N/A extendedKeyCodesSet.add(0x01000000+0x03C6);
1067N/A extendedKeyCodesSet.add(0x01000000+0x03C7);
1067N/A extendedKeyCodesSet.add(0x01000000+0x03C8);
1067N/A extendedKeyCodesSet.add(0x01000000+0x03C9);
1067N/A extendedKeyCodesSet.add(0x01000000+0x2190);
1067N/A extendedKeyCodesSet.add(0x01000000+0x2192);
1067N/A extendedKeyCodesSet.add(0x01000000+0x2193);
1067N/A extendedKeyCodesSet.add(0x01000000+0x2013);
1067N/A extendedKeyCodesSet.add(0x01000000+0x201C);
1067N/A extendedKeyCodesSet.add(0x01000000+0x201D);
1067N/A extendedKeyCodesSet.add(0x01000000+0x201E);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05D0);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05D1);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05D2);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05D3);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05D4);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05D5);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05D6);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05D7);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05D8);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05D9);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05DA);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05DB);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05DC);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05DD);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05DE);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05DF);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05E0);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05E1);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05E2);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05E3);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05E4);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05E5);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05E6);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05E7);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05E8);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05E9);
1067N/A extendedKeyCodesSet.add(0x01000000+0x05EA);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E01);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E02);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E03);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E04);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E05);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E07);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E08);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E0A);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E0C);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E14);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E15);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E16);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E17);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E19);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E1A);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E1B);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E1C);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E1D);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E1E);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E1F);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E20);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E21);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E22);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E23);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E25);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E27);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E2A);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E2B);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E2D);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E30);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E31);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E32);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E33);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E34);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E35);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E36);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E37);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E38);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E39);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E3F);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E40);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E41);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E43);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E44);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E45);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E46);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E47);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E48);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E49);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E50);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E51);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E52);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E53);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E54);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E55);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E56);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E57);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E58);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0E59);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0587);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0589);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0589);
1067N/A extendedKeyCodesSet.add(0x01000000+0x055D);
1067N/A extendedKeyCodesSet.add(0x01000000+0x055D);
1067N/A extendedKeyCodesSet.add(0x01000000+0x055B);
1067N/A extendedKeyCodesSet.add(0x01000000+0x055B);
1067N/A extendedKeyCodesSet.add(0x01000000+0x055E);
1067N/A extendedKeyCodesSet.add(0x01000000+0x055E);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0561);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0562);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0563);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0564);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0565);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0566);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0567);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0568);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0569);
1067N/A extendedKeyCodesSet.add(0x01000000+0x056A);
1067N/A extendedKeyCodesSet.add(0x01000000+0x056B);
1067N/A extendedKeyCodesSet.add(0x01000000+0x056C);
1067N/A extendedKeyCodesSet.add(0x01000000+0x056D);
1067N/A extendedKeyCodesSet.add(0x01000000+0x056E);
1067N/A extendedKeyCodesSet.add(0x01000000+0x056F);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0570);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0571);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0572);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0573);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0574);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0575);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0576);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0577);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0578);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0579);
1067N/A extendedKeyCodesSet.add(0x01000000+0x057A);
1067N/A extendedKeyCodesSet.add(0x01000000+0x057B);
1067N/A extendedKeyCodesSet.add(0x01000000+0x057C);
1067N/A extendedKeyCodesSet.add(0x01000000+0x057D);
1067N/A extendedKeyCodesSet.add(0x01000000+0x057E);
1067N/A extendedKeyCodesSet.add(0x01000000+0x057F);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0580);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0581);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0582);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0583);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0584);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0585);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0586);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10D0);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10D1);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10D2);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10D3);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10D4);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10D5);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10D6);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10D7);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10D8);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10D9);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10DA);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10DB);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10DC);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10DD);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10DE);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10DF);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10E0);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10E1);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10E2);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10E3);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10E4);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10E5);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10E6);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10E7);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10E8);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10E9);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10EA);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10EB);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10EC);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10ED);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10EE);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10EF);
1067N/A extendedKeyCodesSet.add(0x01000000+0x10F0);
1067N/A extendedKeyCodesSet.add(0x01000000+0x01E7);
1067N/A extendedKeyCodesSet.add(0x01000000+0x0259);
1067N/A extendedKeyCodesSet.add(0x01000000+0x1EB9);
1067N/A extendedKeyCodesSet.add(0x01000000+0x1ECB);
1067N/A extendedKeyCodesSet.add(0x01000000+0x1ECD);
1067N/A extendedKeyCodesSet.add(0x01000000+0x1EE5);
1067N/A extendedKeyCodesSet.add(0x01000000+0x01A1);
1067N/A extendedKeyCodesSet.add(0x01000000+0x01B0);
1067N/A extendedKeyCodesSet.add(0x01000000+0x20AB);
1067N/A }
1067N/A}