/* demo4g.c : demos de EZ-Draw reecrits en gtk+ 2.x * * Edouard.Thiel@lif.univ-mrs.fr - 13/05/2009 - version 0.9 * * Compilation sous Unix : * gcc -Wall demo4g.c ez-gtk.c -o demo4g `pkg-config gtk+-2.0 --cflags --libs` * * This program is free software under the terms of the * GNU Lesser General Public License (LGPL) version 2.1. */ #include "ez-gtk.h" /* Definie a la fin du fichier */ char *get_key_name (int keyval); /* * Appele'e par gtk_main lorsqu'il faut tout redessiner. */ gint area1_onExpose (GtkWidget *widget, GdkEventExpose *ev) { GdkGC *gc = ezg_get_gc (widget); ezg_area_clear (widget); ezg_draw_text (widget, gc, NULL, EZG_MC, 200, 150, "L'affichage des evenements\nest fait dans la console.\n\n" "Tapez 'q' pour quitter."); /* Affichage de l'evenement dans la console */ printf ("expose_event xwin = 0x%x count = %d\n", (int) GDK_WINDOW_XWINDOW (ev->window), ev->count); return TRUE; /* L'evenement a ete traite' */ } /* * Appele'e par gtk_main lorsque la taille de la fenetre a change'. */ gint area1_onConfigure (GtkWidget *widget, GdkEventConfigure *ev) { printf ("configure_event xwin = 0x%x width = %d height = %d\n", (int) GDK_WINDOW_XWINDOW (ev->window), ev->width, ev->height); return TRUE; /* L'evenement a ete traite' */ } /* * Appele'e par gtk_main lorsqu'une touche a ete presse'e. */ gint area1_onKeyPress (GtkWidget *widget, GdkEventKey *ev) { printf ("key_press_event xwin = 0x%x string = \"%s\" length = %d " "keyval = 0x%x = GDK_%s\n", (int) GDK_WINDOW_XWINDOW (ev->window), ev->keyval == GDK_Return || ev->keyval == GDK_KP_Enter ? "" : ev->string, ev->length, ev->keyval, get_key_name (ev->keyval)); /* ev->keyval contient le symbole de la touche pressee */ switch (ev->keyval) { case GDK_q : gtk_main_quit (); break; /* touche 'q' */ } return TRUE; /* L'evenement a ete traite' */ } /* * Appele'e par gtk_main lorsqu'une touche a ete relache'e. */ gint area1_onKeyRelease (GtkWidget *widget, GdkEventKey *ev) { printf ("key_release_event xwin = 0x%x string = \"%s\" length = %d " "keyval = 0x%x = GDK_%s\n", (int) GDK_WINDOW_XWINDOW (ev->window), ev->keyval == GDK_Return || ev->keyval == GDK_KP_Enter ? "" : ev->string, ev->length, ev->keyval, get_key_name (ev->keyval)); return TRUE; /* L'evenement a ete traite' */ } /* * Appele'e par gtk_main lorsqu'un bouton de la souris est enfonce' */ gint area1_onButtonPress (GtkWidget *widget, GdkEventButton *ev) { printf ("button_press_event xwin = 0x%x x = %d y = %d button = %d\n", (int) GDK_WINDOW_XWINDOW (ev->window), (int) ev->x, (int) ev->y, ev->button); return TRUE; /* L'evenement a ete traite' */ } /* * Appele'e par gtk_main lorsqu'un bouton de la souris est relache' */ gint area1_onButtonRelease (GtkWidget *widget, GdkEventButton *ev) { printf ("button_release_event xwin = 0x%x x = %d y = %d button = %d\n", (int) GDK_WINDOW_XWINDOW (ev->window), (int) ev->x, (int) ev->y, ev->button); return TRUE; /* L'evenement a ete traite' */ } /* * Appele'e par gtk_main lorsque la souris est bouge'e */ gint area1_onMotionNotify (GtkWidget *widget, GdkEventMotion *ev) { /* Pour limiter un peu l'affichage */ static guint last_state = -1, dropped = 0; static guint32 last_time = 0; if (ev->time - last_time < 1000 && ev->state == last_state) { dropped++; return TRUE; } last_time = ev->time; last_state = ev-> state; if (dropped > 0) { printf ("motion_notify_event %d evenements non affiche's\n", dropped); dropped = 0; } printf ("motion_notify_event xwin = 0x%x x = %d y = %d state = 0x%x\n", (int) GDK_WINDOW_XWINDOW (ev->window), (int) ev->x, (int) ev->y, ev->state); return TRUE; /* L'evenement a ete traite' */ } /* * Appele'e par gtk_main lorsque l'icone de fermeture de fenetre est enfonce' */ gint win1_onDelete (GtkWidget *widget, GdkEventKey *ev) { printf ("delete_event xwin = 0x%x\n", (int) GDK_WINDOW_XWINDOW (ev->window)); return TRUE; /* Intercepte l'evenement "fermeture de fenetre" */ } int main (int argc, char *argv[]) { GtkWidget *win1, *area1; /* Initialise gtk et analyse la ligne de commande */ gtk_init (&argc, &argv); /* Cree une fenetre, donne un titre et une taille */ win1 = ezg_window_create (400, 300, "Demo 4g : trace les evenements"); /* La destruction de la fenetre fera sortir de gtk_main */ g_signal_connect (G_OBJECT (win1), "destroy", gtk_main_quit, NULL); /* On cree une zone de dessin, qui prend toute la place dans la fenetre */ area1 = ezg_area_create (win1); /* On autorise certains evenements */ GTK_WIDGET_SET_FLAGS (area1, GTK_CAN_FOCUS); gtk_widget_set_events (area1, GDK_EXPOSURE_MASK | GDK_STRUCTURE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK); /* On attache des callbacks pour gerer certains evenements */ g_signal_connect (G_OBJECT (area1), "expose_event" , G_CALLBACK (area1_onExpose) , NULL); g_signal_connect (G_OBJECT (area1), "configure_event" , G_CALLBACK (area1_onConfigure) , NULL); g_signal_connect (G_OBJECT (area1), "key_press_event" , G_CALLBACK (area1_onKeyPress) , NULL); g_signal_connect (G_OBJECT (area1), "key_release_event" , G_CALLBACK (area1_onKeyRelease) , NULL); g_signal_connect (G_OBJECT (area1), "button_press_event" , G_CALLBACK (area1_onButtonPress) , NULL); g_signal_connect (G_OBJECT (area1), "button_release_event", G_CALLBACK (area1_onButtonRelease), NULL); g_signal_connect (G_OBJECT (area1), "motion_notify_event" , G_CALLBACK (area1_onMotionNotify) , NULL); g_signal_connect (G_OBJECT (win1) , "delete_event" , G_CALLBACK (win1_onDelete) , NULL); /* Rend visibles la fenetre et son contenu */ gtk_widget_show_all (win1); /* Boucle d'evenements qui fait "vivre" la fenetre */ gtk_main (); exit (0); } /* * Convertit un numero de touche en symbole de * * La fonction gdk_keyval_name () fait la meme chose mais elle * comporte des erreurs sur certaines versions anciennes de gdk. */ char *get_key_name (int keyval) { switch (keyval) { case 0xffffff : return "VoidSymbol"; case 0xff08 : return "BackSpace"; case 0xff09 : return "Tab"; case 0xff0a : return "Linefeed"; case 0xff0b : return "Clear"; case 0xff0d : return "Return"; case 0xff13 : return "Pause"; case 0xff14 : return "Scroll_Lock"; case 0xff15 : return "Sys_Req"; case 0xff1b : return "Escape"; case 0xffff : return "Delete"; case 0xff20 : return "Multi_key"; case 0xff37 : return "Codeinput"; case 0xff3c : return "SingleCandidate"; case 0xff3d : return "MultipleCandidate"; case 0xff3e : return "PreviousCandidate"; case 0xff21 : return "Kanji"; case 0xff22 : return "Muhenkan"; // case 0xff23 : return "Henkan_Mode"; case 0xff23 : return "Henkan"; case 0xff24 : return "Romaji"; case 0xff25 : return "Hiragana"; case 0xff26 : return "Katakana"; case 0xff27 : return "Hiragana_Katakana"; case 0xff28 : return "Zenkaku"; case 0xff29 : return "Hankaku"; case 0xff2a : return "Zenkaku_Hankaku"; case 0xff2b : return "Touroku"; case 0xff2c : return "Massyo"; case 0xff2d : return "Kana_Lock"; case 0xff2e : return "Kana_Shift"; case 0xff2f : return "Eisu_Shift"; case 0xff30 : return "Eisu_toggle"; // case 0xff37 : return "Kanji_Bangou"; // case 0xff3d : return "Zen_Koho"; // case 0xff3e : return "Mae_Koho"; case 0xff50 : return "Home"; case 0xff51 : return "Left"; case 0xff52 : return "Up"; case 0xff53 : return "Right"; case 0xff54 : return "Down"; // case 0xff55 : return "Prior"; case 0xff55 : return "Page_Up"; // case 0xff56 : return "Next"; case 0xff56 : return "Page_Down"; case 0xff57 : return "End"; case 0xff58 : return "Begin"; case 0xff60 : return "Select"; case 0xff61 : return "Print"; case 0xff62 : return "Execute"; case 0xff63 : return "Insert"; case 0xff65 : return "Undo"; case 0xff66 : return "Redo"; case 0xff67 : return "Menu"; case 0xff68 : return "Find"; case 0xff69 : return "Cancel"; case 0xff6a : return "Help"; case 0xff6b : return "Break"; case 0xff7e : return "Mode_switch"; // case 0xff7e : return "script_switch"; case 0xff7f : return "Num_Lock"; case 0xff80 : return "KP_Space"; case 0xff89 : return "KP_Tab"; case 0xff8d : return "KP_Enter"; case 0xff91 : return "KP_F1"; case 0xff92 : return "KP_F2"; case 0xff93 : return "KP_F3"; case 0xff94 : return "KP_F4"; case 0xff95 : return "KP_Home"; case 0xff96 : return "KP_Left"; case 0xff97 : return "KP_Up"; case 0xff98 : return "KP_Right"; case 0xff99 : return "KP_Down"; // case 0xff9a : return "KP_Prior"; case 0xff9a : return "KP_Page_Up"; // case 0xff9b : return "KP_Next"; case 0xff9b : return "KP_Page_Down"; case 0xff9c : return "KP_End"; case 0xff9d : return "KP_Begin"; case 0xff9e : return "KP_Insert"; case 0xff9f : return "KP_Delete"; case 0xffbd : return "KP_Equal"; case 0xffaa : return "KP_Multiply"; case 0xffab : return "KP_Add"; case 0xffac : return "KP_Separator"; case 0xffad : return "KP_Subtract"; case 0xffae : return "KP_Decimal"; case 0xffaf : return "KP_Divide"; case 0xffb0 : return "KP_0"; case 0xffb1 : return "KP_1"; case 0xffb2 : return "KP_2"; case 0xffb3 : return "KP_3"; case 0xffb4 : return "KP_4"; case 0xffb5 : return "KP_5"; case 0xffb6 : return "KP_6"; case 0xffb7 : return "KP_7"; case 0xffb8 : return "KP_8"; case 0xffb9 : return "KP_9"; case 0xffbe : return "F1"; case 0xffbf : return "F2"; case 0xffc0 : return "F3"; case 0xffc1 : return "F4"; case 0xffc2 : return "F5"; case 0xffc3 : return "F6"; case 0xffc4 : return "F7"; case 0xffc5 : return "F8"; case 0xffc6 : return "F9"; case 0xffc7 : return "F10"; case 0xffc8 : return "F11"; // case 0xffc8 : return "L1"; case 0xffc9 : return "F12"; // case 0xffc9 : return "L2"; case 0xffca : return "F13"; // case 0xffca : return "L3"; case 0xffcb : return "F14"; // case 0xffcb : return "L4"; case 0xffcc : return "F15"; // case 0xffcc : return "L5"; case 0xffcd : return "F16"; // case 0xffcd : return "L6"; case 0xffce : return "F17"; // case 0xffce : return "L7"; case 0xffcf : return "F18"; // case 0xffcf : return "L8"; case 0xffd0 : return "F19"; // case 0xffd0 : return "L9"; case 0xffd1 : return "F20"; // case 0xffd1 : return "L10"; case 0xffd2 : return "F21"; // case 0xffd2 : return "R1"; case 0xffd3 : return "F22"; // case 0xffd3 : return "R2"; case 0xffd4 : return "F23"; // case 0xffd4 : return "R3"; case 0xffd5 : return "F24"; // case 0xffd5 : return "R4"; case 0xffd6 : return "F25"; // case 0xffd6 : return "R5"; case 0xffd7 : return "F26"; // case 0xffd7 : return "R6"; case 0xffd8 : return "F27"; // case 0xffd8 : return "R7"; case 0xffd9 : return "F28"; // case 0xffd9 : return "R8"; case 0xffda : return "F29"; // case 0xffda : return "R9"; case 0xffdb : return "F30"; // case 0xffdb : return "R10"; case 0xffdc : return "F31"; // case 0xffdc : return "R11"; case 0xffdd : return "F32"; // case 0xffdd : return "R12"; case 0xffde : return "F33"; // case 0xffde : return "R13"; case 0xffdf : return "F34"; // case 0xffdf : return "R14"; case 0xffe0 : return "F35"; // case 0xffe0 : return "R15"; case 0xffe1 : return "Shift_L"; case 0xffe2 : return "Shift_R"; case 0xffe3 : return "Control_L"; case 0xffe4 : return "Control_R"; case 0xffe5 : return "Caps_Lock"; case 0xffe6 : return "Shift_Lock"; case 0xffe7 : return "Meta_L"; case 0xffe8 : return "Meta_R"; case 0xffe9 : return "Alt_L"; case 0xffea : return "Alt_R"; case 0xffeb : return "Super_L"; case 0xffec : return "Super_R"; case 0xffed : return "Hyper_L"; case 0xffee : return "Hyper_R"; case 0xfe01 : return "ISO_Lock"; case 0xfe02 : return "ISO_Level2_Latch"; case 0xfe03 : return "ISO_Level3_Shift"; case 0xfe04 : return "ISO_Level3_Latch"; case 0xfe05 : return "ISO_Level3_Lock"; // case 0xff7e : return "ISO_Group_Shift"; case 0xfe06 : return "ISO_Group_Latch"; case 0xfe07 : return "ISO_Group_Lock"; case 0xfe08 : return "ISO_Next_Group"; case 0xfe09 : return "ISO_Next_Group_Lock"; case 0xfe0a : return "ISO_Prev_Group"; case 0xfe0b : return "ISO_Prev_Group_Lock"; case 0xfe0c : return "ISO_First_Group"; case 0xfe0d : return "ISO_First_Group_Lock"; case 0xfe0e : return "ISO_Last_Group"; case 0xfe0f : return "ISO_Last_Group_Lock"; case 0xfe20 : return "ISO_Left_Tab"; case 0xfe21 : return "ISO_Move_Line_Up"; case 0xfe22 : return "ISO_Move_Line_Down"; case 0xfe23 : return "ISO_Partial_Line_Up"; case 0xfe24 : return "ISO_Partial_Line_Down"; case 0xfe25 : return "ISO_Partial_Space_Left"; case 0xfe26 : return "ISO_Partial_Space_Right"; case 0xfe27 : return "ISO_Set_Margin_Left"; case 0xfe28 : return "ISO_Set_Margin_Right"; case 0xfe29 : return "ISO_Release_Margin_Left"; case 0xfe2a : return "ISO_Release_Margin_Right"; case 0xfe2b : return "ISO_Release_Both_Margins"; case 0xfe2c : return "ISO_Fast_Cursor_Left"; case 0xfe2d : return "ISO_Fast_Cursor_Right"; case 0xfe2e : return "ISO_Fast_Cursor_Up"; case 0xfe2f : return "ISO_Fast_Cursor_Down"; case 0xfe30 : return "ISO_Continuous_Underline"; case 0xfe31 : return "ISO_Discontinuous_Underline"; case 0xfe32 : return "ISO_Emphasize"; case 0xfe33 : return "ISO_Center_Object"; case 0xfe34 : return "ISO_Enter"; case 0xfe50 : return "dead_grave"; case 0xfe51 : return "dead_acute"; case 0xfe52 : return "dead_circumflex"; case 0xfe53 : return "dead_tilde"; case 0xfe54 : return "dead_macron"; case 0xfe55 : return "dead_breve"; case 0xfe56 : return "dead_abovedot"; case 0xfe57 : return "dead_diaeresis"; case 0xfe58 : return "dead_abovering"; case 0xfe59 : return "dead_doubleacute"; case 0xfe5a : return "dead_caron"; case 0xfe5b : return "dead_cedilla"; case 0xfe5c : return "dead_ogonek"; case 0xfe5d : return "dead_iota"; case 0xfe5e : return "dead_voiced_sound"; case 0xfe5f : return "dead_semivoiced_sound"; case 0xfe60 : return "dead_belowdot"; case 0xfe61 : return "dead_hook"; case 0xfe62 : return "dead_horn"; case 0xfed0 : return "First_Virtual_Screen"; case 0xfed1 : return "Prev_Virtual_Screen"; case 0xfed2 : return "Next_Virtual_Screen"; case 0xfed4 : return "Last_Virtual_Screen"; case 0xfed5 : return "Terminate_Server"; case 0xfe70 : return "AccessX_Enable"; case 0xfe71 : return "AccessX_Feedback_Enable"; case 0xfe72 : return "RepeatKeys_Enable"; case 0xfe73 : return "SlowKeys_Enable"; case 0xfe74 : return "BounceKeys_Enable"; case 0xfe75 : return "StickyKeys_Enable"; case 0xfe76 : return "MouseKeys_Enable"; case 0xfe77 : return "MouseKeys_Accel_Enable"; case 0xfe78 : return "Overlay1_Enable"; case 0xfe79 : return "Overlay2_Enable"; case 0xfe7a : return "AudibleBell_Enable"; case 0xfee0 : return "Pointer_Left"; case 0xfee1 : return "Pointer_Right"; case 0xfee2 : return "Pointer_Up"; case 0xfee3 : return "Pointer_Down"; case 0xfee4 : return "Pointer_UpLeft"; case 0xfee5 : return "Pointer_UpRight"; case 0xfee6 : return "Pointer_DownLeft"; case 0xfee7 : return "Pointer_DownRight"; case 0xfee8 : return "Pointer_Button_Dflt"; case 0xfee9 : return "Pointer_Button1"; case 0xfeea : return "Pointer_Button2"; case 0xfeeb : return "Pointer_Button3"; case 0xfeec : return "Pointer_Button4"; case 0xfeed : return "Pointer_Button5"; case 0xfeee : return "Pointer_DblClick_Dflt"; case 0xfeef : return "Pointer_DblClick1"; case 0xfef0 : return "Pointer_DblClick2"; case 0xfef1 : return "Pointer_DblClick3"; case 0xfef2 : return "Pointer_DblClick4"; case 0xfef3 : return "Pointer_DblClick5"; case 0xfef4 : return "Pointer_Drag_Dflt"; case 0xfef5 : return "Pointer_Drag1"; case 0xfef6 : return "Pointer_Drag2"; case 0xfef7 : return "Pointer_Drag3"; case 0xfef8 : return "Pointer_Drag4"; case 0xfefd : return "Pointer_Drag5"; case 0xfef9 : return "Pointer_EnableKeys"; case 0xfefa : return "Pointer_Accelerate"; case 0xfefb : return "Pointer_DfltBtnNext"; case 0xfefc : return "Pointer_DfltBtnPrev"; case 0xfd01 : return "3270_Duplicate"; case 0xfd02 : return "3270_FieldMark"; case 0xfd03 : return "3270_Right2"; case 0xfd04 : return "3270_Left2"; case 0xfd05 : return "3270_BackTab"; case 0xfd06 : return "3270_EraseEOF"; case 0xfd07 : return "3270_EraseInput"; case 0xfd08 : return "3270_Reset"; case 0xfd09 : return "3270_Quit"; case 0xfd0a : return "3270_PA1"; case 0xfd0b : return "3270_PA2"; case 0xfd0c : return "3270_PA3"; case 0xfd0d : return "3270_Test"; case 0xfd0e : return "3270_Attn"; case 0xfd0f : return "3270_CursorBlink"; case 0xfd10 : return "3270_AltCursor"; case 0xfd11 : return "3270_KeyClick"; case 0xfd12 : return "3270_Jump"; case 0xfd13 : return "3270_Ident"; case 0xfd14 : return "3270_Rule"; case 0xfd15 : return "3270_Copy"; case 0xfd16 : return "3270_Play"; case 0xfd17 : return "3270_Setup"; case 0xfd18 : return "3270_Record"; case 0xfd19 : return "3270_ChangeScreen"; case 0xfd1a : return "3270_DeleteWord"; case 0xfd1b : return "3270_ExSelect"; case 0xfd1c : return "3270_CursorSelect"; case 0xfd1d : return "3270_PrintScreen"; case 0xfd1e : return "3270_Enter"; case 0x020 : return "space"; case 0x021 : return "exclam"; case 0x022 : return "quotedbl"; case 0x023 : return "numbersign"; case 0x024 : return "dollar"; case 0x025 : return "percent"; case 0x026 : return "ampersand"; // case 0x027 : return "apostrophe"; case 0x027 : return "quoteright"; case 0x028 : return "parenleft"; case 0x029 : return "parenright"; case 0x02a : return "asterisk"; case 0x02b : return "plus"; case 0x02c : return "comma"; case 0x02d : return "minus"; case 0x02e : return "period"; case 0x02f : return "slash"; case 0x030 : return "0"; case 0x031 : return "1"; case 0x032 : return "2"; case 0x033 : return "3"; case 0x034 : return "4"; case 0x035 : return "5"; case 0x036 : return "6"; case 0x037 : return "7"; case 0x038 : return "8"; case 0x039 : return "9"; case 0x03a : return "colon"; case 0x03b : return "semicolon"; case 0x03c : return "less"; case 0x03d : return "equal"; case 0x03e : return "greater"; case 0x03f : return "question"; case 0x040 : return "at"; case 0x041 : return "A"; case 0x042 : return "B"; case 0x043 : return "C"; case 0x044 : return "D"; case 0x045 : return "E"; case 0x046 : return "F"; case 0x047 : return "G"; case 0x048 : return "H"; case 0x049 : return "I"; case 0x04a : return "J"; case 0x04b : return "K"; case 0x04c : return "L"; case 0x04d : return "M"; case 0x04e : return "N"; case 0x04f : return "O"; case 0x050 : return "P"; case 0x051 : return "Q"; case 0x052 : return "R"; case 0x053 : return "S"; case 0x054 : return "T"; case 0x055 : return "U"; case 0x056 : return "V"; case 0x057 : return "W"; case 0x058 : return "X"; case 0x059 : return "Y"; case 0x05a : return "Z"; case 0x05b : return "bracketleft"; case 0x05c : return "backslash"; case 0x05d : return "bracketright"; case 0x05e : return "asciicircum"; case 0x05f : return "underscore"; // case 0x060 : return "grave"; case 0x060 : return "quoteleft"; case 0x061 : return "a"; case 0x062 : return "b"; case 0x063 : return "c"; case 0x064 : return "d"; case 0x065 : return "e"; case 0x066 : return "f"; case 0x067 : return "g"; case 0x068 : return "h"; case 0x069 : return "i"; case 0x06a : return "j"; case 0x06b : return "k"; case 0x06c : return "l"; case 0x06d : return "m"; case 0x06e : return "n"; case 0x06f : return "o"; case 0x070 : return "p"; case 0x071 : return "q"; case 0x072 : return "r"; case 0x073 : return "s"; case 0x074 : return "t"; case 0x075 : return "u"; case 0x076 : return "v"; case 0x077 : return "w"; case 0x078 : return "x"; case 0x079 : return "y"; case 0x07a : return "z"; case 0x07b : return "braceleft"; case 0x07c : return "bar"; case 0x07d : return "braceright"; case 0x07e : return "asciitilde"; case 0x0a0 : return "nobreakspace"; case 0x0a1 : return "exclamdown"; case 0x0a2 : return "cent"; case 0x0a3 : return "sterling"; case 0x0a4 : return "currency"; case 0x0a5 : return "yen"; case 0x0a6 : return "brokenbar"; case 0x0a7 : return "section"; case 0x0a8 : return "diaeresis"; case 0x0a9 : return "copyright"; case 0x0aa : return "ordfeminine"; case 0x0ab : return "guillemotleft"; case 0x0ac : return "notsign"; case 0x0ad : return "hyphen"; case 0x0ae : return "registered"; case 0x0af : return "macron"; case 0x0b0 : return "degree"; case 0x0b1 : return "plusminus"; case 0x0b2 : return "twosuperior"; case 0x0b3 : return "threesuperior"; case 0x0b4 : return "acute"; case 0x0b5 : return "mu"; case 0x0b6 : return "paragraph"; case 0x0b7 : return "periodcentered"; case 0x0b8 : return "cedilla"; case 0x0b9 : return "onesuperior"; case 0x0ba : return "masculine"; case 0x0bb : return "guillemotright"; case 0x0bc : return "onequarter"; case 0x0bd : return "onehalf"; case 0x0be : return "threequarters"; case 0x0bf : return "questiondown"; case 0x0c0 : return "Agrave"; case 0x0c1 : return "Aacute"; case 0x0c2 : return "Acircumflex"; case 0x0c3 : return "Atilde"; case 0x0c4 : return "Adiaeresis"; case 0x0c5 : return "Aring"; case 0x0c6 : return "AE"; case 0x0c7 : return "Ccedilla"; case 0x0c8 : return "Egrave"; case 0x0c9 : return "Eacute"; case 0x0ca : return "Ecircumflex"; case 0x0cb : return "Ediaeresis"; case 0x0cc : return "Igrave"; case 0x0cd : return "Iacute"; case 0x0ce : return "Icircumflex"; case 0x0cf : return "Idiaeresis"; case 0x0d0 : return "ETH"; // case 0x0d0 : return "Eth"; case 0x0d1 : return "Ntilde"; case 0x0d2 : return "Ograve"; case 0x0d3 : return "Oacute"; case 0x0d4 : return "Ocircumflex"; case 0x0d5 : return "Otilde"; case 0x0d6 : return "Odiaeresis"; case 0x0d7 : return "multiply"; case 0x0d8 : return "Oslash"; // case 0x0d8 : return "Ooblique"; case 0x0d9 : return "Ugrave"; case 0x0da : return "Uacute"; case 0x0db : return "Ucircumflex"; case 0x0dc : return "Udiaeresis"; case 0x0dd : return "Yacute"; // case 0x0de : return "THORN"; case 0x0de : return "Thorn"; case 0x0df : return "ssharp"; case 0x0e0 : return "agrave"; case 0x0e1 : return "aacute"; case 0x0e2 : return "acircumflex"; case 0x0e3 : return "atilde"; case 0x0e4 : return "adiaeresis"; case 0x0e5 : return "aring"; case 0x0e6 : return "ae"; case 0x0e7 : return "ccedilla"; case 0x0e8 : return "egrave"; case 0x0e9 : return "eacute"; case 0x0ea : return "ecircumflex"; case 0x0eb : return "ediaeresis"; case 0x0ec : return "igrave"; case 0x0ed : return "iacute"; case 0x0ee : return "icircumflex"; case 0x0ef : return "idiaeresis"; case 0x0f0 : return "eth"; case 0x0f1 : return "ntilde"; case 0x0f2 : return "ograve"; case 0x0f3 : return "oacute"; case 0x0f4 : return "ocircumflex"; case 0x0f5 : return "otilde"; case 0x0f6 : return "odiaeresis"; case 0x0f7 : return "division"; case 0x0f8 : return "oslash"; // case 0x0f8 : return "ooblique"; case 0x0f9 : return "ugrave"; case 0x0fa : return "uacute"; case 0x0fb : return "ucircumflex"; case 0x0fc : return "udiaeresis"; case 0x0fd : return "yacute"; case 0x0fe : return "thorn"; case 0x0ff : return "ydiaeresis"; case 0x1a1 : return "Aogonek"; case 0x1a2 : return "breve"; case 0x1a3 : return "Lstroke"; case 0x1a5 : return "Lcaron"; case 0x1a6 : return "Sacute"; case 0x1a9 : return "Scaron"; case 0x1aa : return "Scedilla"; case 0x1ab : return "Tcaron"; case 0x1ac : return "Zacute"; case 0x1ae : return "Zcaron"; case 0x1af : return "Zabovedot"; case 0x1b1 : return "aogonek"; case 0x1b2 : return "ogonek"; case 0x1b3 : return "lstroke"; case 0x1b5 : return "lcaron"; case 0x1b6 : return "sacute"; case 0x1b7 : return "caron"; case 0x1b9 : return "scaron"; case 0x1ba : return "scedilla"; case 0x1bb : return "tcaron"; case 0x1bc : return "zacute"; case 0x1bd : return "doubleacute"; case 0x1be : return "zcaron"; case 0x1bf : return "zabovedot"; case 0x1c0 : return "Racute"; case 0x1c3 : return "Abreve"; case 0x1c5 : return "Lacute"; case 0x1c6 : return "Cacute"; case 0x1c8 : return "Ccaron"; case 0x1ca : return "Eogonek"; case 0x1cc : return "Ecaron"; case 0x1cf : return "Dcaron"; case 0x1d0 : return "Dstroke"; case 0x1d1 : return "Nacute"; case 0x1d2 : return "Ncaron"; case 0x1d5 : return "Odoubleacute"; case 0x1d8 : return "Rcaron"; case 0x1d9 : return "Uring"; case 0x1db : return "Udoubleacute"; case 0x1de : return "Tcedilla"; case 0x1e0 : return "racute"; case 0x1e3 : return "abreve"; case 0x1e5 : return "lacute"; case 0x1e6 : return "cacute"; case 0x1e8 : return "ccaron"; case 0x1ea : return "eogonek"; case 0x1ec : return "ecaron"; case 0x1ef : return "dcaron"; case 0x1f0 : return "dstroke"; case 0x1f1 : return "nacute"; case 0x1f2 : return "ncaron"; case 0x1f5 : return "odoubleacute"; case 0x1fb : return "udoubleacute"; case 0x1f8 : return "rcaron"; case 0x1f9 : return "uring"; case 0x1fe : return "tcedilla"; case 0x1ff : return "abovedot"; case 0x2a1 : return "Hstroke"; case 0x2a6 : return "Hcircumflex"; case 0x2a9 : return "Iabovedot"; case 0x2ab : return "Gbreve"; case 0x2ac : return "Jcircumflex"; case 0x2b1 : return "hstroke"; case 0x2b6 : return "hcircumflex"; case 0x2b9 : return "idotless"; case 0x2bb : return "gbreve"; case 0x2bc : return "jcircumflex"; case 0x2c5 : return "Cabovedot"; case 0x2c6 : return "Ccircumflex"; case 0x2d5 : return "Gabovedot"; case 0x2d8 : return "Gcircumflex"; case 0x2dd : return "Ubreve"; case 0x2de : return "Scircumflex"; case 0x2e5 : return "cabovedot"; case 0x2e6 : return "ccircumflex"; case 0x2f5 : return "gabovedot"; case 0x2f8 : return "gcircumflex"; case 0x2fd : return "ubreve"; case 0x2fe : return "scircumflex"; // case 0x3a2 : return "kra"; case 0x3a2 : return "kappa"; case 0x3a3 : return "Rcedilla"; case 0x3a5 : return "Itilde"; case 0x3a6 : return "Lcedilla"; case 0x3aa : return "Emacron"; case 0x3ab : return "Gcedilla"; case 0x3ac : return "Tslash"; case 0x3b3 : return "rcedilla"; case 0x3b5 : return "itilde"; case 0x3b6 : return "lcedilla"; case 0x3ba : return "emacron"; case 0x3bb : return "gcedilla"; case 0x3bc : return "tslash"; case 0x3bd : return "ENG"; case 0x3bf : return "eng"; case 0x3c0 : return "Amacron"; case 0x3c7 : return "Iogonek"; case 0x3cc : return "Eabovedot"; case 0x3cf : return "Imacron"; case 0x3d1 : return "Ncedilla"; case 0x3d2 : return "Omacron"; case 0x3d3 : return "Kcedilla"; case 0x3d9 : return "Uogonek"; case 0x3dd : return "Utilde"; case 0x3de : return "Umacron"; case 0x3e0 : return "amacron"; case 0x3e7 : return "iogonek"; case 0x3ec : return "eabovedot"; case 0x3ef : return "imacron"; case 0x3f1 : return "ncedilla"; case 0x3f2 : return "omacron"; case 0x3f3 : return "kcedilla"; case 0x3f9 : return "uogonek"; case 0x3fd : return "utilde"; case 0x3fe : return "umacron"; case 0x1001e02 : return "Babovedot"; case 0x1001e03 : return "babovedot"; case 0x1001e0a : return "Dabovedot"; case 0x1001e80 : return "Wgrave"; case 0x1001e82 : return "Wacute"; case 0x1001e0b : return "dabovedot"; case 0x1001ef2 : return "Ygrave"; case 0x1001e1e : return "Fabovedot"; case 0x1001e1f : return "fabovedot"; case 0x1001e40 : return "Mabovedot"; case 0x1001e41 : return "mabovedot"; case 0x1001e56 : return "Pabovedot"; case 0x1001e81 : return "wgrave"; case 0x1001e57 : return "pabovedot"; case 0x1001e83 : return "wacute"; case 0x1001e60 : return "Sabovedot"; case 0x1001ef3 : return "ygrave"; case 0x1001e84 : return "Wdiaeresis"; case 0x1001e85 : return "wdiaeresis"; case 0x1001e61 : return "sabovedot"; case 0x1000174 : return "Wcircumflex"; case 0x1001e6a : return "Tabovedot"; case 0x1000176 : return "Ycircumflex"; case 0x1000175 : return "wcircumflex"; case 0x1001e6b : return "tabovedot"; case 0x1000177 : return "ycircumflex"; case 0x13bc : return "OE"; case 0x13bd : return "oe"; case 0x13be : return "Ydiaeresis"; case 0x47e : return "overline"; case 0x4a1 : return "kana_fullstop"; case 0x4a2 : return "kana_openingbracket"; case 0x4a3 : return "kana_closingbracket"; case 0x4a4 : return "kana_comma"; // case 0x4a5 : return "kana_conjunctive"; case 0x4a5 : return "kana_middledot"; case 0x4a6 : return "kana_WO"; case 0x4a7 : return "kana_a"; case 0x4a8 : return "kana_i"; case 0x4a9 : return "kana_u"; case 0x4aa : return "kana_e"; case 0x4ab : return "kana_o"; case 0x4ac : return "kana_ya"; case 0x4ad : return "kana_yu"; case 0x4ae : return "kana_yo"; case 0x4af : return "kana_tsu"; // case 0x4af : return "kana_tu"; case 0x4b0 : return "prolongedsound"; case 0x4b1 : return "kana_A"; case 0x4b2 : return "kana_I"; case 0x4b3 : return "kana_U"; case 0x4b4 : return "kana_E"; case 0x4b5 : return "kana_O"; case 0x4b6 : return "kana_KA"; case 0x4b7 : return "kana_KI"; case 0x4b8 : return "kana_KU"; case 0x4b9 : return "kana_KE"; case 0x4ba : return "kana_KO"; case 0x4bb : return "kana_SA"; case 0x4bc : return "kana_SHI"; case 0x4bd : return "kana_SU"; case 0x4be : return "kana_SE"; case 0x4bf : return "kana_SO"; case 0x4c0 : return "kana_TA"; // case 0x4c1 : return "kana_CHI"; case 0x4c1 : return "kana_TI"; // case 0x4c2 : return "kana_TSU"; case 0x4c2 : return "kana_TU"; case 0x4c3 : return "kana_TE"; case 0x4c4 : return "kana_TO"; case 0x4c5 : return "kana_NA"; case 0x4c6 : return "kana_NI"; case 0x4c7 : return "kana_NU"; case 0x4c8 : return "kana_NE"; case 0x4c9 : return "kana_NO"; case 0x4ca : return "kana_HA"; case 0x4cb : return "kana_HI"; case 0x4cc : return "kana_FU"; // case 0x4cc : return "kana_HU"; case 0x4cd : return "kana_HE"; case 0x4ce : return "kana_HO"; case 0x4cf : return "kana_MA"; case 0x4d0 : return "kana_MI"; case 0x4d1 : return "kana_MU"; case 0x4d2 : return "kana_ME"; case 0x4d3 : return "kana_MO"; case 0x4d4 : return "kana_YA"; case 0x4d5 : return "kana_YU"; case 0x4d6 : return "kana_YO"; case 0x4d7 : return "kana_RA"; case 0x4d8 : return "kana_RI"; case 0x4d9 : return "kana_RU"; case 0x4da : return "kana_RE"; case 0x4db : return "kana_RO"; case 0x4dc : return "kana_WA"; case 0x4dd : return "kana_N"; case 0x4de : return "voicedsound"; case 0x4df : return "semivoicedsound"; // case 0xff7e : return "kana_switch"; case 0x10006f0 : return "Farsi_0"; case 0x10006f1 : return "Farsi_1"; case 0x10006f2 : return "Farsi_2"; case 0x10006f3 : return "Farsi_3"; case 0x10006f4 : return "Farsi_4"; case 0x10006f5 : return "Farsi_5"; case 0x10006f6 : return "Farsi_6"; case 0x10006f7 : return "Farsi_7"; case 0x10006f8 : return "Farsi_8"; case 0x10006f9 : return "Farsi_9"; case 0x100066a : return "Arabic_percent"; case 0x1000670 : return "Arabic_superscript_alef"; case 0x1000679 : return "Arabic_tteh"; case 0x100067e : return "Arabic_peh"; case 0x1000686 : return "Arabic_tcheh"; case 0x1000688 : return "Arabic_ddal"; case 0x1000691 : return "Arabic_rreh"; case 0x5ac : return "Arabic_comma"; case 0x10006d4 : return "Arabic_fullstop"; case 0x1000660 : return "Arabic_0"; case 0x1000661 : return "Arabic_1"; case 0x1000662 : return "Arabic_2"; case 0x1000663 : return "Arabic_3"; case 0x1000664 : return "Arabic_4"; case 0x1000665 : return "Arabic_5"; case 0x1000666 : return "Arabic_6"; case 0x1000667 : return "Arabic_7"; case 0x1000668 : return "Arabic_8"; case 0x1000669 : return "Arabic_9"; case 0x5bb : return "Arabic_semicolon"; case 0x5bf : return "Arabic_question_mark"; case 0x5c1 : return "Arabic_hamza"; case 0x5c2 : return "Arabic_maddaonalef"; case 0x5c3 : return "Arabic_hamzaonalef"; case 0x5c4 : return "Arabic_hamzaonwaw"; case 0x5c5 : return "Arabic_hamzaunderalef"; case 0x5c6 : return "Arabic_hamzaonyeh"; case 0x5c7 : return "Arabic_alef"; case 0x5c8 : return "Arabic_beh"; case 0x5c9 : return "Arabic_tehmarbuta"; case 0x5ca : return "Arabic_teh"; case 0x5cb : return "Arabic_theh"; case 0x5cc : return "Arabic_jeem"; case 0x5cd : return "Arabic_hah"; case 0x5ce : return "Arabic_khah"; case 0x5cf : return "Arabic_dal"; case 0x5d0 : return "Arabic_thal"; case 0x5d1 : return "Arabic_ra"; case 0x5d2 : return "Arabic_zain"; case 0x5d3 : return "Arabic_seen"; case 0x5d4 : return "Arabic_sheen"; case 0x5d5 : return "Arabic_sad"; case 0x5d6 : return "Arabic_dad"; case 0x5d7 : return "Arabic_tah"; case 0x5d8 : return "Arabic_zah"; case 0x5d9 : return "Arabic_ain"; case 0x5da : return "Arabic_ghain"; case 0x5e0 : return "Arabic_tatweel"; case 0x5e1 : return "Arabic_feh"; case 0x5e2 : return "Arabic_qaf"; case 0x5e3 : return "Arabic_kaf"; case 0x5e4 : return "Arabic_lam"; case 0x5e5 : return "Arabic_meem"; case 0x5e6 : return "Arabic_noon"; // case 0x5e7 : return "Arabic_ha"; case 0x5e7 : return "Arabic_heh"; case 0x5e8 : return "Arabic_waw"; case 0x5e9 : return "Arabic_alefmaksura"; case 0x5ea : return "Arabic_yeh"; case 0x5eb : return "Arabic_fathatan"; case 0x5ec : return "Arabic_dammatan"; case 0x5ed : return "Arabic_kasratan"; case 0x5ee : return "Arabic_fatha"; case 0x5ef : return "Arabic_damma"; case 0x5f0 : return "Arabic_kasra"; case 0x5f1 : return "Arabic_shadda"; case 0x5f2 : return "Arabic_sukun"; case 0x1000653 : return "Arabic_madda_above"; case 0x1000654 : return "Arabic_hamza_above"; case 0x1000655 : return "Arabic_hamza_below"; case 0x1000698 : return "Arabic_jeh"; case 0x10006a4 : return "Arabic_veh"; case 0x10006a9 : return "Arabic_keheh"; case 0x10006af : return "Arabic_gaf"; case 0x10006ba : return "Arabic_noon_ghunna"; case 0x10006be : return "Arabic_heh_doachashmee"; // case 0x10006cc : return "Farsi_yeh"; case 0x10006cc : return "Arabic_farsi_yeh"; case 0x10006d2 : return "Arabic_yeh_baree"; case 0x10006c1 : return "Arabic_heh_goal"; // case 0xff7e : return "Arabic_switch"; case 0x1000492 : return "Cyrillic_GHE_bar"; case 0x1000493 : return "Cyrillic_ghe_bar"; case 0x1000496 : return "Cyrillic_ZHE_descender"; case 0x1000497 : return "Cyrillic_zhe_descender"; case 0x100049a : return "Cyrillic_KA_descender"; case 0x100049b : return "Cyrillic_ka_descender"; case 0x100049c : return "Cyrillic_KA_vertstroke"; case 0x100049d : return "Cyrillic_ka_vertstroke"; case 0x10004a2 : return "Cyrillic_EN_descender"; case 0x10004a3 : return "Cyrillic_en_descender"; case 0x10004ae : return "Cyrillic_U_straight"; case 0x10004af : return "Cyrillic_u_straight"; case 0x10004b0 : return "Cyrillic_U_straight_bar"; case 0x10004b1 : return "Cyrillic_u_straight_bar"; case 0x10004b2 : return "Cyrillic_HA_descender"; case 0x10004b3 : return "Cyrillic_ha_descender"; case 0x10004b6 : return "Cyrillic_CHE_descender"; case 0x10004b7 : return "Cyrillic_che_descender"; case 0x10004b8 : return "Cyrillic_CHE_vertstroke"; case 0x10004b9 : return "Cyrillic_che_vertstroke"; case 0x10004ba : return "Cyrillic_SHHA"; case 0x10004bb : return "Cyrillic_shha"; case 0x10004d8 : return "Cyrillic_SCHWA"; case 0x10004d9 : return "Cyrillic_schwa"; case 0x10004e2 : return "Cyrillic_I_macron"; case 0x10004e3 : return "Cyrillic_i_macron"; case 0x10004e8 : return "Cyrillic_O_bar"; case 0x10004e9 : return "Cyrillic_o_bar"; case 0x10004ee : return "Cyrillic_U_macron"; case 0x10004ef : return "Cyrillic_u_macron"; case 0x6a1 : return "Serbian_dje"; case 0x6a2 : return "Macedonia_gje"; case 0x6a3 : return "Cyrillic_io"; case 0x6a4 : return "Ukrainian_ie"; // case 0x6a4 : return "Ukranian_je"; case 0x6a5 : return "Macedonia_dse"; case 0x6a6 : return "Ukrainian_i"; // case 0x6a6 : return "Ukranian_i"; case 0x6a7 : return "Ukrainian_yi"; // case 0x6a7 : return "Ukranian_yi"; case 0x6a8 : return "Cyrillic_je"; // case 0x6a8 : return "Serbian_je"; case 0x6a9 : return "Cyrillic_lje"; // case 0x6a9 : return "Serbian_lje"; case 0x6aa : return "Cyrillic_nje"; // case 0x6aa : return "Serbian_nje"; case 0x6ab : return "Serbian_tshe"; case 0x6ac : return "Macedonia_kje"; case 0x6ad : return "Ukrainian_ghe_with_upturn"; case 0x6ae : return "Byelorussian_shortu"; case 0x6af : return "Cyrillic_dzhe"; // case 0x6af : return "Serbian_dze"; case 0x6b0 : return "numerosign"; case 0x6b1 : return "Serbian_DJE"; case 0x6b2 : return "Macedonia_GJE"; case 0x6b3 : return "Cyrillic_IO"; case 0x6b4 : return "Ukrainian_IE"; // case 0x6b4 : return "Ukranian_JE"; case 0x6b5 : return "Macedonia_DSE"; case 0x6b6 : return "Ukrainian_I"; // case 0x6b6 : return "Ukranian_I"; case 0x6b7 : return "Ukrainian_YI"; // case 0x6b7 : return "Ukranian_YI"; case 0x6b8 : return "Cyrillic_JE"; // case 0x6b8 : return "Serbian_JE"; case 0x6b9 : return "Cyrillic_LJE"; // case 0x6b9 : return "Serbian_LJE"; case 0x6ba : return "Cyrillic_NJE"; // case 0x6ba : return "Serbian_NJE"; case 0x6bb : return "Serbian_TSHE"; case 0x6bc : return "Macedonia_KJE"; case 0x6bd : return "Ukrainian_GHE_WITH_UPTURN"; case 0x6be : return "Byelorussian_SHORTU"; case 0x6bf : return "Cyrillic_DZHE"; // case 0x6bf : return "Serbian_DZE"; case 0x6c0 : return "Cyrillic_yu"; case 0x6c1 : return "Cyrillic_a"; case 0x6c2 : return "Cyrillic_be"; case 0x6c3 : return "Cyrillic_tse"; case 0x6c4 : return "Cyrillic_de"; case 0x6c5 : return "Cyrillic_ie"; case 0x6c6 : return "Cyrillic_ef"; case 0x6c7 : return "Cyrillic_ghe"; case 0x6c8 : return "Cyrillic_ha"; case 0x6c9 : return "Cyrillic_i"; case 0x6ca : return "Cyrillic_shorti"; case 0x6cb : return "Cyrillic_ka"; case 0x6cc : return "Cyrillic_el"; case 0x6cd : return "Cyrillic_em"; case 0x6ce : return "Cyrillic_en"; case 0x6cf : return "Cyrillic_o"; case 0x6d0 : return "Cyrillic_pe"; case 0x6d1 : return "Cyrillic_ya"; case 0x6d2 : return "Cyrillic_er"; case 0x6d3 : return "Cyrillic_es"; case 0x6d4 : return "Cyrillic_te"; case 0x6d5 : return "Cyrillic_u"; case 0x6d6 : return "Cyrillic_zhe"; case 0x6d7 : return "Cyrillic_ve"; case 0x6d8 : return "Cyrillic_softsign"; case 0x6d9 : return "Cyrillic_yeru"; case 0x6da : return "Cyrillic_ze"; case 0x6db : return "Cyrillic_sha"; case 0x6dc : return "Cyrillic_e"; case 0x6dd : return "Cyrillic_shcha"; case 0x6de : return "Cyrillic_che"; case 0x6df : return "Cyrillic_hardsign"; case 0x6e0 : return "Cyrillic_YU"; case 0x6e1 : return "Cyrillic_A"; case 0x6e2 : return "Cyrillic_BE"; case 0x6e3 : return "Cyrillic_TSE"; case 0x6e4 : return "Cyrillic_DE"; case 0x6e5 : return "Cyrillic_IE"; case 0x6e6 : return "Cyrillic_EF"; case 0x6e7 : return "Cyrillic_GHE"; case 0x6e8 : return "Cyrillic_HA"; case 0x6e9 : return "Cyrillic_I"; case 0x6ea : return "Cyrillic_SHORTI"; case 0x6eb : return "Cyrillic_KA"; case 0x6ec : return "Cyrillic_EL"; case 0x6ed : return "Cyrillic_EM"; case 0x6ee : return "Cyrillic_EN"; case 0x6ef : return "Cyrillic_O"; case 0x6f0 : return "Cyrillic_PE"; case 0x6f1 : return "Cyrillic_YA"; case 0x6f2 : return "Cyrillic_ER"; case 0x6f3 : return "Cyrillic_ES"; case 0x6f4 : return "Cyrillic_TE"; case 0x6f5 : return "Cyrillic_U"; case 0x6f6 : return "Cyrillic_ZHE"; case 0x6f7 : return "Cyrillic_VE"; case 0x6f8 : return "Cyrillic_SOFTSIGN"; case 0x6f9 : return "Cyrillic_YERU"; case 0x6fa : return "Cyrillic_ZE"; case 0x6fb : return "Cyrillic_SHA"; case 0x6fc : return "Cyrillic_E"; case 0x6fd : return "Cyrillic_SHCHA"; case 0x6fe : return "Cyrillic_CHE"; case 0x6ff : return "Cyrillic_HARDSIGN"; case 0x7a1 : return "Greek_ALPHAaccent"; case 0x7a2 : return "Greek_EPSILONaccent"; case 0x7a3 : return "Greek_ETAaccent"; case 0x7a4 : return "Greek_IOTAaccent"; case 0x7a5 : return "Greek_IOTAdieresis"; // case 0x7a5 : return "Greek_IOTAdiaeresis"; case 0x7a7 : return "Greek_OMICRONaccent"; case 0x7a8 : return "Greek_UPSILONaccent"; case 0x7a9 : return "Greek_UPSILONdieresis"; case 0x7ab : return "Greek_OMEGAaccent"; case 0x7ae : return "Greek_accentdieresis"; case 0x7af : return "Greek_horizbar"; case 0x7b1 : return "Greek_alphaaccent"; case 0x7b2 : return "Greek_epsilonaccent"; case 0x7b3 : return "Greek_etaaccent"; case 0x7b4 : return "Greek_iotaaccent"; case 0x7b5 : return "Greek_iotadieresis"; case 0x7b6 : return "Greek_iotaaccentdieresis"; case 0x7b7 : return "Greek_omicronaccent"; case 0x7b8 : return "Greek_upsilonaccent"; case 0x7b9 : return "Greek_upsilondieresis"; case 0x7ba : return "Greek_upsilonaccentdieresis"; case 0x7bb : return "Greek_omegaaccent"; case 0x7c1 : return "Greek_ALPHA"; case 0x7c2 : return "Greek_BETA"; case 0x7c3 : return "Greek_GAMMA"; case 0x7c4 : return "Greek_DELTA"; case 0x7c5 : return "Greek_EPSILON"; case 0x7c6 : return "Greek_ZETA"; case 0x7c7 : return "Greek_ETA"; case 0x7c8 : return "Greek_THETA"; case 0x7c9 : return "Greek_IOTA"; case 0x7ca : return "Greek_KAPPA"; // case 0x7cb : return "Greek_LAMDA"; case 0x7cb : return "Greek_LAMBDA"; case 0x7cc : return "Greek_MU"; case 0x7cd : return "Greek_NU"; case 0x7ce : return "Greek_XI"; case 0x7cf : return "Greek_OMICRON"; case 0x7d0 : return "Greek_PI"; case 0x7d1 : return "Greek_RHO"; case 0x7d2 : return "Greek_SIGMA"; case 0x7d4 : return "Greek_TAU"; case 0x7d5 : return "Greek_UPSILON"; case 0x7d6 : return "Greek_PHI"; case 0x7d7 : return "Greek_CHI"; case 0x7d8 : return "Greek_PSI"; case 0x7d9 : return "Greek_OMEGA"; case 0x7e1 : return "Greek_alpha"; case 0x7e2 : return "Greek_beta"; case 0x7e3 : return "Greek_gamma"; case 0x7e4 : return "Greek_delta"; case 0x7e5 : return "Greek_epsilon"; case 0x7e6 : return "Greek_zeta"; case 0x7e7 : return "Greek_eta"; case 0x7e8 : return "Greek_theta"; case 0x7e9 : return "Greek_iota"; case 0x7ea : return "Greek_kappa"; // case 0x7eb : return "Greek_lamda"; case 0x7eb : return "Greek_lambda"; case 0x7ec : return "Greek_mu"; case 0x7ed : return "Greek_nu"; case 0x7ee : return "Greek_xi"; case 0x7ef : return "Greek_omicron"; case 0x7f0 : return "Greek_pi"; case 0x7f1 : return "Greek_rho"; case 0x7f2 : return "Greek_sigma"; case 0x7f3 : return "Greek_finalsmallsigma"; case 0x7f4 : return "Greek_tau"; case 0x7f5 : return "Greek_upsilon"; case 0x7f6 : return "Greek_phi"; case 0x7f7 : return "Greek_chi"; case 0x7f8 : return "Greek_psi"; case 0x7f9 : return "Greek_omega"; // case 0xff7e : return "Greek_switch"; case 0x8a1 : return "leftradical"; case 0x8a2 : return "topleftradical"; case 0x8a3 : return "horizconnector"; case 0x8a4 : return "topintegral"; case 0x8a5 : return "botintegral"; case 0x8a6 : return "vertconnector"; case 0x8a7 : return "topleftsqbracket"; case 0x8a8 : return "botleftsqbracket"; case 0x8a9 : return "toprightsqbracket"; case 0x8aa : return "botrightsqbracket"; case 0x8ab : return "topleftparens"; case 0x8ac : return "botleftparens"; case 0x8ad : return "toprightparens"; case 0x8ae : return "botrightparens"; case 0x8af : return "leftmiddlecurlybrace"; case 0x8b0 : return "rightmiddlecurlybrace"; case 0x8b1 : return "topleftsummation"; case 0x8b2 : return "botleftsummation"; case 0x8b3 : return "topvertsummationconnector"; case 0x8b4 : return "botvertsummationconnector"; case 0x8b5 : return "toprightsummation"; case 0x8b6 : return "botrightsummation"; case 0x8b7 : return "rightmiddlesummation"; case 0x8bc : return "lessthanequal"; case 0x8bd : return "notequal"; case 0x8be : return "greaterthanequal"; case 0x8bf : return "integral"; case 0x8c0 : return "therefore"; case 0x8c1 : return "variation"; case 0x8c2 : return "infinity"; case 0x8c5 : return "nabla"; case 0x8c8 : return "approximate"; case 0x8c9 : return "similarequal"; case 0x8cd : return "ifonlyif"; case 0x8ce : return "implies"; case 0x8cf : return "identical"; case 0x8d6 : return "radical"; case 0x8da : return "includedin"; case 0x8db : return "includes"; case 0x8dc : return "intersection"; case 0x8dd : return "union"; case 0x8de : return "logicaland"; case 0x8df : return "logicalor"; case 0x8ef : return "partialderivative"; case 0x8f6 : return "function"; case 0x8fb : return "leftarrow"; case 0x8fc : return "uparrow"; case 0x8fd : return "rightarrow"; case 0x8fe : return "downarrow"; case 0x9df : return "blank"; case 0x9e0 : return "soliddiamond"; case 0x9e1 : return "checkerboard"; case 0x9e2 : return "ht"; case 0x9e3 : return "ff"; case 0x9e4 : return "cr"; case 0x9e5 : return "lf"; case 0x9e8 : return "nl"; case 0x9e9 : return "vt"; case 0x9ea : return "lowrightcorner"; case 0x9eb : return "uprightcorner"; case 0x9ec : return "upleftcorner"; case 0x9ed : return "lowleftcorner"; case 0x9ee : return "crossinglines"; case 0x9ef : return "horizlinescan1"; case 0x9f0 : return "horizlinescan3"; case 0x9f1 : return "horizlinescan5"; case 0x9f2 : return "horizlinescan7"; case 0x9f3 : return "horizlinescan9"; case 0x9f4 : return "leftt"; case 0x9f5 : return "rightt"; case 0x9f6 : return "bott"; case 0x9f7 : return "topt"; case 0x9f8 : return "vertbar"; case 0xaa1 : return "emspace"; case 0xaa2 : return "enspace"; case 0xaa3 : return "em3space"; case 0xaa4 : return "em4space"; case 0xaa5 : return "digitspace"; case 0xaa6 : return "punctspace"; case 0xaa7 : return "thinspace"; case 0xaa8 : return "hairspace"; case 0xaa9 : return "emdash"; case 0xaaa : return "endash"; case 0xaac : return "signifblank"; case 0xaae : return "ellipsis"; case 0xaaf : return "doubbaselinedot"; case 0xab0 : return "onethird"; case 0xab1 : return "twothirds"; case 0xab2 : return "onefifth"; case 0xab3 : return "twofifths"; case 0xab4 : return "threefifths"; case 0xab5 : return "fourfifths"; case 0xab6 : return "onesixth"; case 0xab7 : return "fivesixths"; case 0xab8 : return "careof"; case 0xabb : return "figdash"; case 0xabc : return "leftanglebracket"; case 0xabd : return "decimalpoint"; case 0xabe : return "rightanglebracket"; case 0xabf : return "marker"; case 0xac3 : return "oneeighth"; case 0xac4 : return "threeeighths"; case 0xac5 : return "fiveeighths"; case 0xac6 : return "seveneighths"; case 0xac9 : return "trademark"; case 0xaca : return "signaturemark"; case 0xacb : return "trademarkincircle"; case 0xacc : return "leftopentriangle"; case 0xacd : return "rightopentriangle"; case 0xace : return "emopencircle"; case 0xacf : return "emopenrectangle"; case 0xad0 : return "leftsinglequotemark"; case 0xad1 : return "rightsinglequotemark"; case 0xad2 : return "leftdoublequotemark"; case 0xad3 : return "rightdoublequotemark"; case 0xad4 : return "prescription"; case 0xad6 : return "minutes"; case 0xad7 : return "seconds"; case 0xad9 : return "latincross"; case 0xada : return "hexagram"; case 0xadb : return "filledrectbullet"; case 0xadc : return "filledlefttribullet"; case 0xadd : return "filledrighttribullet"; case 0xade : return "emfilledcircle"; case 0xadf : return "emfilledrect"; case 0xae0 : return "enopencircbullet"; case 0xae1 : return "enopensquarebullet"; case 0xae2 : return "openrectbullet"; case 0xae3 : return "opentribulletup"; case 0xae4 : return "opentribulletdown"; case 0xae5 : return "openstar"; case 0xae6 : return "enfilledcircbullet"; case 0xae7 : return "enfilledsqbullet"; case 0xae8 : return "filledtribulletup"; case 0xae9 : return "filledtribulletdown"; case 0xaea : return "leftpointer"; case 0xaeb : return "rightpointer"; case 0xaec : return "club"; case 0xaed : return "diamond"; case 0xaee : return "heart"; case 0xaf0 : return "maltesecross"; case 0xaf1 : return "dagger"; case 0xaf2 : return "doubledagger"; case 0xaf3 : return "checkmark"; case 0xaf4 : return "ballotcross"; case 0xaf5 : return "musicalsharp"; case 0xaf6 : return "musicalflat"; case 0xaf7 : return "malesymbol"; case 0xaf8 : return "femalesymbol"; case 0xaf9 : return "telephone"; case 0xafa : return "telephonerecorder"; case 0xafb : return "phonographcopyright"; case 0xafc : return "caret"; case 0xafd : return "singlelowquotemark"; case 0xafe : return "doublelowquotemark"; case 0xaff : return "cursor"; case 0xba3 : return "leftcaret"; case 0xba6 : return "rightcaret"; case 0xba8 : return "downcaret"; case 0xba9 : return "upcaret"; case 0xbc0 : return "overbar"; case 0xbc2 : return "downtack"; case 0xbc3 : return "upshoe"; case 0xbc4 : return "downstile"; case 0xbc6 : return "underbar"; case 0xbca : return "jot"; case 0xbcc : return "quad"; case 0xbce : return "uptack"; case 0xbcf : return "circle"; case 0xbd3 : return "upstile"; case 0xbd6 : return "downshoe"; case 0xbd8 : return "rightshoe"; case 0xbda : return "leftshoe"; case 0xbdc : return "lefttack"; case 0xbfc : return "righttack"; case 0xcdf : return "hebrew_doublelowline"; case 0xce0 : return "hebrew_aleph"; // case 0xce1 : return "hebrew_bet"; case 0xce1 : return "hebrew_beth"; // case 0xce2 : return "hebrew_gimel"; case 0xce2 : return "hebrew_gimmel"; // case 0xce3 : return "hebrew_dalet"; case 0xce3 : return "hebrew_daleth"; case 0xce4 : return "hebrew_he"; case 0xce5 : return "hebrew_waw"; // case 0xce6 : return "hebrew_zain"; case 0xce6 : return "hebrew_zayin"; // case 0xce7 : return "hebrew_chet"; case 0xce7 : return "hebrew_het"; // case 0xce8 : return "hebrew_tet"; case 0xce8 : return "hebrew_teth"; case 0xce9 : return "hebrew_yod"; case 0xcea : return "hebrew_finalkaph"; case 0xceb : return "hebrew_kaph"; case 0xcec : return "hebrew_lamed"; case 0xced : return "hebrew_finalmem"; case 0xcee : return "hebrew_mem"; case 0xcef : return "hebrew_finalnun"; case 0xcf0 : return "hebrew_nun"; // case 0xcf1 : return "hebrew_samech"; case 0xcf1 : return "hebrew_samekh"; case 0xcf2 : return "hebrew_ayin"; case 0xcf3 : return "hebrew_finalpe"; case 0xcf4 : return "hebrew_pe"; case 0xcf5 : return "hebrew_finalzade"; // case 0xcf5 : return "hebrew_finalzadi"; case 0xcf6 : return "hebrew_zade"; // case 0xcf6 : return "hebrew_zadi"; case 0xcf7 : return "hebrew_qoph"; // case 0xcf7 : return "hebrew_kuf"; case 0xcf8 : return "hebrew_resh"; case 0xcf9 : return "hebrew_shin"; // case 0xcfa : return "hebrew_taw"; case 0xcfa : return "hebrew_taf"; // case 0xff7e : return "Hebrew_switch"; case 0xda1 : return "Thai_kokai"; case 0xda2 : return "Thai_khokhai"; case 0xda3 : return "Thai_khokhuat"; case 0xda4 : return "Thai_khokhwai"; case 0xda5 : return "Thai_khokhon"; case 0xda6 : return "Thai_khorakhang"; case 0xda7 : return "Thai_ngongu"; case 0xda8 : return "Thai_chochan"; case 0xda9 : return "Thai_choching"; case 0xdaa : return "Thai_chochang"; case 0xdab : return "Thai_soso"; case 0xdac : return "Thai_chochoe"; case 0xdad : return "Thai_yoying"; case 0xdae : return "Thai_dochada"; case 0xdaf : return "Thai_topatak"; case 0xdb0 : return "Thai_thothan"; case 0xdb1 : return "Thai_thonangmontho"; case 0xdb2 : return "Thai_thophuthao"; case 0xdb3 : return "Thai_nonen"; case 0xdb4 : return "Thai_dodek"; case 0xdb5 : return "Thai_totao"; case 0xdb6 : return "Thai_thothung"; case 0xdb7 : return "Thai_thothahan"; case 0xdb8 : return "Thai_thothong"; case 0xdb9 : return "Thai_nonu"; case 0xdba : return "Thai_bobaimai"; case 0xdbb : return "Thai_popla"; case 0xdbc : return "Thai_phophung"; case 0xdbd : return "Thai_fofa"; case 0xdbe : return "Thai_phophan"; case 0xdbf : return "Thai_fofan"; case 0xdc0 : return "Thai_phosamphao"; case 0xdc1 : return "Thai_moma"; case 0xdc2 : return "Thai_yoyak"; case 0xdc3 : return "Thai_rorua"; case 0xdc4 : return "Thai_ru"; case 0xdc5 : return "Thai_loling"; case 0xdc6 : return "Thai_lu"; case 0xdc7 : return "Thai_wowaen"; case 0xdc8 : return "Thai_sosala"; case 0xdc9 : return "Thai_sorusi"; case 0xdca : return "Thai_sosua"; case 0xdcb : return "Thai_hohip"; case 0xdcc : return "Thai_lochula"; case 0xdcd : return "Thai_oang"; case 0xdce : return "Thai_honokhuk"; case 0xdcf : return "Thai_paiyannoi"; case 0xdd0 : return "Thai_saraa"; case 0xdd1 : return "Thai_maihanakat"; case 0xdd2 : return "Thai_saraaa"; case 0xdd3 : return "Thai_saraam"; case 0xdd4 : return "Thai_sarai"; case 0xdd5 : return "Thai_saraii"; case 0xdd6 : return "Thai_saraue"; case 0xdd7 : return "Thai_sarauee"; case 0xdd8 : return "Thai_sarau"; case 0xdd9 : return "Thai_sarauu"; case 0xdda : return "Thai_phinthu"; case 0xdde : return "Thai_maihanakat_maitho"; case 0xddf : return "Thai_baht"; case 0xde0 : return "Thai_sarae"; case 0xde1 : return "Thai_saraae"; case 0xde2 : return "Thai_sarao"; case 0xde3 : return "Thai_saraaimaimuan"; case 0xde4 : return "Thai_saraaimaimalai"; case 0xde5 : return "Thai_lakkhangyao"; case 0xde6 : return "Thai_maiyamok"; case 0xde7 : return "Thai_maitaikhu"; case 0xde8 : return "Thai_maiek"; case 0xde9 : return "Thai_maitho"; case 0xdea : return "Thai_maitri"; case 0xdeb : return "Thai_maichattawa"; case 0xdec : return "Thai_thanthakhat"; case 0xded : return "Thai_nikhahit"; case 0xdf0 : return "Thai_leksun"; case 0xdf1 : return "Thai_leknung"; case 0xdf2 : return "Thai_leksong"; case 0xdf3 : return "Thai_leksam"; case 0xdf4 : return "Thai_leksi"; case 0xdf5 : return "Thai_lekha"; case 0xdf6 : return "Thai_lekhok"; case 0xdf7 : return "Thai_lekchet"; case 0xdf8 : return "Thai_lekpaet"; case 0xdf9 : return "Thai_lekkao"; case 0xff31 : return "Hangul"; case 0xff32 : return "Hangul_Start"; case 0xff33 : return "Hangul_End"; case 0xff34 : return "Hangul_Hanja"; case 0xff35 : return "Hangul_Jamo"; case 0xff36 : return "Hangul_Romaja"; // case 0xff37 : return "Hangul_Codeinput"; case 0xff38 : return "Hangul_Jeonja"; case 0xff39 : return "Hangul_Banja"; case 0xff3a : return "Hangul_PreHanja"; case 0xff3b : return "Hangul_PostHanja"; // case 0xff3c : return "Hangul_SingleCandidate"; // case 0xff3d : return "Hangul_MultipleCandidate"; // case 0xff3e : return "Hangul_PreviousCandidate"; case 0xff3f : return "Hangul_Special"; // case 0xff7e : return "Hangul_switch"; case 0xea1 : return "Hangul_Kiyeog"; case 0xea2 : return "Hangul_SsangKiyeog"; case 0xea3 : return "Hangul_KiyeogSios"; case 0xea4 : return "Hangul_Nieun"; case 0xea5 : return "Hangul_NieunJieuj"; case 0xea6 : return "Hangul_NieunHieuh"; case 0xea7 : return "Hangul_Dikeud"; case 0xea8 : return "Hangul_SsangDikeud"; case 0xea9 : return "Hangul_Rieul"; case 0xeaa : return "Hangul_RieulKiyeog"; case 0xeab : return "Hangul_RieulMieum"; case 0xeac : return "Hangul_RieulPieub"; case 0xead : return "Hangul_RieulSios"; case 0xeae : return "Hangul_RieulTieut"; case 0xeaf : return "Hangul_RieulPhieuf"; case 0xeb0 : return "Hangul_RieulHieuh"; case 0xeb1 : return "Hangul_Mieum"; case 0xeb2 : return "Hangul_Pieub"; case 0xeb3 : return "Hangul_SsangPieub"; case 0xeb4 : return "Hangul_PieubSios"; case 0xeb5 : return "Hangul_Sios"; case 0xeb6 : return "Hangul_SsangSios"; case 0xeb7 : return "Hangul_Ieung"; case 0xeb8 : return "Hangul_Jieuj"; case 0xeb9 : return "Hangul_SsangJieuj"; case 0xeba : return "Hangul_Cieuc"; case 0xebb : return "Hangul_Khieuq"; case 0xebc : return "Hangul_Tieut"; case 0xebd : return "Hangul_Phieuf"; case 0xebe : return "Hangul_Hieuh"; case 0xebf : return "Hangul_A"; case 0xec0 : return "Hangul_AE"; case 0xec1 : return "Hangul_YA"; case 0xec2 : return "Hangul_YAE"; case 0xec3 : return "Hangul_EO"; case 0xec4 : return "Hangul_E"; case 0xec5 : return "Hangul_YEO"; case 0xec6 : return "Hangul_YE"; case 0xec7 : return "Hangul_O"; case 0xec8 : return "Hangul_WA"; case 0xec9 : return "Hangul_WAE"; case 0xeca : return "Hangul_OE"; case 0xecb : return "Hangul_YO"; case 0xecc : return "Hangul_U"; case 0xecd : return "Hangul_WEO"; case 0xece : return "Hangul_WE"; case 0xecf : return "Hangul_WI"; case 0xed0 : return "Hangul_YU"; case 0xed1 : return "Hangul_EU"; case 0xed2 : return "Hangul_YI"; case 0xed3 : return "Hangul_I"; case 0xed4 : return "Hangul_J_Kiyeog"; case 0xed5 : return "Hangul_J_SsangKiyeog"; case 0xed6 : return "Hangul_J_KiyeogSios"; case 0xed7 : return "Hangul_J_Nieun"; case 0xed8 : return "Hangul_J_NieunJieuj"; case 0xed9 : return "Hangul_J_NieunHieuh"; case 0xeda : return "Hangul_J_Dikeud"; case 0xedb : return "Hangul_J_Rieul"; case 0xedc : return "Hangul_J_RieulKiyeog"; case 0xedd : return "Hangul_J_RieulMieum"; case 0xede : return "Hangul_J_RieulPieub"; case 0xedf : return "Hangul_J_RieulSios"; case 0xee0 : return "Hangul_J_RieulTieut"; case 0xee1 : return "Hangul_J_RieulPhieuf"; case 0xee2 : return "Hangul_J_RieulHieuh"; case 0xee3 : return "Hangul_J_Mieum"; case 0xee4 : return "Hangul_J_Pieub"; case 0xee5 : return "Hangul_J_PieubSios"; case 0xee6 : return "Hangul_J_Sios"; case 0xee7 : return "Hangul_J_SsangSios"; case 0xee8 : return "Hangul_J_Ieung"; case 0xee9 : return "Hangul_J_Jieuj"; case 0xeea : return "Hangul_J_Cieuc"; case 0xeeb : return "Hangul_J_Khieuq"; case 0xeec : return "Hangul_J_Tieut"; case 0xeed : return "Hangul_J_Phieuf"; case 0xeee : return "Hangul_J_Hieuh"; case 0xeef : return "Hangul_RieulYeorinHieuh"; case 0xef0 : return "Hangul_SunkyeongeumMieum"; case 0xef1 : return "Hangul_SunkyeongeumPieub"; case 0xef2 : return "Hangul_PanSios"; case 0xef3 : return "Hangul_KkogjiDalrinIeung"; case 0xef4 : return "Hangul_SunkyeongeumPhieuf"; case 0xef5 : return "Hangul_YeorinHieuh"; case 0xef6 : return "Hangul_AraeA"; case 0xef7 : return "Hangul_AraeAE"; case 0xef8 : return "Hangul_J_PanSios"; case 0xef9 : return "Hangul_J_KkogjiDalrinIeung"; case 0xefa : return "Hangul_J_YeorinHieuh"; case 0xeff : return "Korean_Won"; case 0x1000587 : return "Armenian_ligature_ew"; case 0x1000589 : return "Armenian_full_stop"; // case 0x1000589 : return "Armenian_verjaket"; case 0x100055d : return "Armenian_separation_mark"; // case 0x100055d : return "Armenian_but"; case 0x100058a : return "Armenian_hyphen"; // case 0x100058a : return "Armenian_yentamna"; case 0x100055c : return "Armenian_exclam"; // case 0x100055c : return "Armenian_amanak"; case 0x100055b : return "Armenian_accent"; // case 0x100055b : return "Armenian_shesht"; case 0x100055e : return "Armenian_question"; // case 0x100055e : return "Armenian_paruyk"; case 0x1000531 : return "Armenian_AYB"; case 0x1000561 : return "Armenian_ayb"; case 0x1000532 : return "Armenian_BEN"; case 0x1000562 : return "Armenian_ben"; case 0x1000533 : return "Armenian_GIM"; case 0x1000563 : return "Armenian_gim"; case 0x1000534 : return "Armenian_DA"; case 0x1000564 : return "Armenian_da"; case 0x1000535 : return "Armenian_YECH"; case 0x1000565 : return "Armenian_yech"; case 0x1000536 : return "Armenian_ZA"; case 0x1000566 : return "Armenian_za"; case 0x1000537 : return "Armenian_E"; case 0x1000567 : return "Armenian_e"; case 0x1000538 : return "Armenian_AT"; case 0x1000568 : return "Armenian_at"; case 0x1000539 : return "Armenian_TO"; case 0x1000569 : return "Armenian_to"; case 0x100053a : return "Armenian_ZHE"; case 0x100056a : return "Armenian_zhe"; case 0x100053b : return "Armenian_INI"; case 0x100056b : return "Armenian_ini"; case 0x100053c : return "Armenian_LYUN"; case 0x100056c : return "Armenian_lyun"; case 0x100053d : return "Armenian_KHE"; case 0x100056d : return "Armenian_khe"; case 0x100053e : return "Armenian_TSA"; case 0x100056e : return "Armenian_tsa"; case 0x100053f : return "Armenian_KEN"; case 0x100056f : return "Armenian_ken"; case 0x1000540 : return "Armenian_HO"; case 0x1000570 : return "Armenian_ho"; case 0x1000541 : return "Armenian_DZA"; case 0x1000571 : return "Armenian_dza"; case 0x1000542 : return "Armenian_GHAT"; case 0x1000572 : return "Armenian_ghat"; case 0x1000543 : return "Armenian_TCHE"; case 0x1000573 : return "Armenian_tche"; case 0x1000544 : return "Armenian_MEN"; case 0x1000574 : return "Armenian_men"; case 0x1000545 : return "Armenian_HI"; case 0x1000575 : return "Armenian_hi"; case 0x1000546 : return "Armenian_NU"; case 0x1000576 : return "Armenian_nu"; case 0x1000547 : return "Armenian_SHA"; case 0x1000577 : return "Armenian_sha"; case 0x1000548 : return "Armenian_VO"; case 0x1000578 : return "Armenian_vo"; case 0x1000549 : return "Armenian_CHA"; case 0x1000579 : return "Armenian_cha"; case 0x100054a : return "Armenian_PE"; case 0x100057a : return "Armenian_pe"; case 0x100054b : return "Armenian_JE"; case 0x100057b : return "Armenian_je"; case 0x100054c : return "Armenian_RA"; case 0x100057c : return "Armenian_ra"; case 0x100054d : return "Armenian_SE"; case 0x100057d : return "Armenian_se"; case 0x100054e : return "Armenian_VEV"; case 0x100057e : return "Armenian_vev"; case 0x100054f : return "Armenian_TYUN"; case 0x100057f : return "Armenian_tyun"; case 0x1000550 : return "Armenian_RE"; case 0x1000580 : return "Armenian_re"; case 0x1000551 : return "Armenian_TSO"; case 0x1000581 : return "Armenian_tso"; case 0x1000552 : return "Armenian_VYUN"; case 0x1000582 : return "Armenian_vyun"; case 0x1000553 : return "Armenian_PYUR"; case 0x1000583 : return "Armenian_pyur"; case 0x1000554 : return "Armenian_KE"; case 0x1000584 : return "Armenian_ke"; case 0x1000555 : return "Armenian_O"; case 0x1000585 : return "Armenian_o"; case 0x1000556 : return "Armenian_FE"; case 0x1000586 : return "Armenian_fe"; case 0x100055a : return "Armenian_apostrophe"; case 0x10010d0 : return "Georgian_an"; case 0x10010d1 : return "Georgian_ban"; case 0x10010d2 : return "Georgian_gan"; case 0x10010d3 : return "Georgian_don"; case 0x10010d4 : return "Georgian_en"; case 0x10010d5 : return "Georgian_vin"; case 0x10010d6 : return "Georgian_zen"; case 0x10010d7 : return "Georgian_tan"; case 0x10010d8 : return "Georgian_in"; case 0x10010d9 : return "Georgian_kan"; case 0x10010da : return "Georgian_las"; case 0x10010db : return "Georgian_man"; case 0x10010dc : return "Georgian_nar"; case 0x10010dd : return "Georgian_on"; case 0x10010de : return "Georgian_par"; case 0x10010df : return "Georgian_zhar"; case 0x10010e0 : return "Georgian_rae"; case 0x10010e1 : return "Georgian_san"; case 0x10010e2 : return "Georgian_tar"; case 0x10010e3 : return "Georgian_un"; case 0x10010e4 : return "Georgian_phar"; case 0x10010e5 : return "Georgian_khar"; case 0x10010e6 : return "Georgian_ghan"; case 0x10010e7 : return "Georgian_qar"; case 0x10010e8 : return "Georgian_shin"; case 0x10010e9 : return "Georgian_chin"; case 0x10010ea : return "Georgian_can"; case 0x10010eb : return "Georgian_jil"; case 0x10010ec : return "Georgian_cil"; case 0x10010ed : return "Georgian_char"; case 0x10010ee : return "Georgian_xan"; case 0x10010ef : return "Georgian_jhan"; case 0x10010f0 : return "Georgian_hae"; case 0x10010f1 : return "Georgian_he"; case 0x10010f2 : return "Georgian_hie"; case 0x10010f3 : return "Georgian_we"; case 0x10010f4 : return "Georgian_har"; case 0x10010f5 : return "Georgian_hoe"; case 0x10010f6 : return "Georgian_fi"; case 0x1001e8a : return "Xabovedot"; case 0x100012c : return "Ibreve"; case 0x10001b5 : return "Zstroke"; case 0x10001e6 : return "Gcaron"; case 0x10001d1 : return "Ocaron"; case 0x100019f : return "Obarred"; case 0x1001e8b : return "xabovedot"; case 0x100012d : return "ibreve"; case 0x10001b6 : return "zstroke"; case 0x10001e7 : return "gcaron"; case 0x10001d2 : return "ocaron"; case 0x1000275 : return "obarred"; case 0x100018f : return "SCHWA"; case 0x1000259 : return "schwa"; case 0x1001e36 : return "Lbelowdot"; case 0x1001e37 : return "lbelowdot"; case 0x1001ea0 : return "Abelowdot"; case 0x1001ea1 : return "abelowdot"; case 0x1001ea2 : return "Ahook"; case 0x1001ea3 : return "ahook"; case 0x1001ea4 : return "Acircumflexacute"; case 0x1001ea5 : return "acircumflexacute"; case 0x1001ea6 : return "Acircumflexgrave"; case 0x1001ea7 : return "acircumflexgrave"; case 0x1001ea8 : return "Acircumflexhook"; case 0x1001ea9 : return "acircumflexhook"; case 0x1001eaa : return "Acircumflextilde"; case 0x1001eab : return "acircumflextilde"; case 0x1001eac : return "Acircumflexbelowdot"; case 0x1001ead : return "acircumflexbelowdot"; case 0x1001eae : return "Abreveacute"; case 0x1001eaf : return "abreveacute"; case 0x1001eb0 : return "Abrevegrave"; case 0x1001eb1 : return "abrevegrave"; case 0x1001eb2 : return "Abrevehook"; case 0x1001eb3 : return "abrevehook"; case 0x1001eb4 : return "Abrevetilde"; case 0x1001eb5 : return "abrevetilde"; case 0x1001eb6 : return "Abrevebelowdot"; case 0x1001eb7 : return "abrevebelowdot"; case 0x1001eb8 : return "Ebelowdot"; case 0x1001eb9 : return "ebelowdot"; case 0x1001eba : return "Ehook"; case 0x1001ebb : return "ehook"; case 0x1001ebc : return "Etilde"; case 0x1001ebd : return "etilde"; case 0x1001ebe : return "Ecircumflexacute"; case 0x1001ebf : return "ecircumflexacute"; case 0x1001ec0 : return "Ecircumflexgrave"; case 0x1001ec1 : return "ecircumflexgrave"; case 0x1001ec2 : return "Ecircumflexhook"; case 0x1001ec3 : return "ecircumflexhook"; case 0x1001ec4 : return "Ecircumflextilde"; case 0x1001ec5 : return "ecircumflextilde"; case 0x1001ec6 : return "Ecircumflexbelowdot"; case 0x1001ec7 : return "ecircumflexbelowdot"; case 0x1001ec8 : return "Ihook"; case 0x1001ec9 : return "ihook"; case 0x1001eca : return "Ibelowdot"; case 0x1001ecb : return "ibelowdot"; case 0x1001ecc : return "Obelowdot"; case 0x1001ecd : return "obelowdot"; case 0x1001ece : return "Ohook"; case 0x1001ecf : return "ohook"; case 0x1001ed0 : return "Ocircumflexacute"; case 0x1001ed1 : return "ocircumflexacute"; case 0x1001ed2 : return "Ocircumflexgrave"; case 0x1001ed3 : return "ocircumflexgrave"; case 0x1001ed4 : return "Ocircumflexhook"; case 0x1001ed5 : return "ocircumflexhook"; case 0x1001ed6 : return "Ocircumflextilde"; case 0x1001ed7 : return "ocircumflextilde"; case 0x1001ed8 : return "Ocircumflexbelowdot"; case 0x1001ed9 : return "ocircumflexbelowdot"; case 0x1001eda : return "Ohornacute"; case 0x1001edb : return "ohornacute"; case 0x1001edc : return "Ohorngrave"; case 0x1001edd : return "ohorngrave"; case 0x1001ede : return "Ohornhook"; case 0x1001edf : return "ohornhook"; case 0x1001ee0 : return "Ohorntilde"; case 0x1001ee1 : return "ohorntilde"; case 0x1001ee2 : return "Ohornbelowdot"; case 0x1001ee3 : return "ohornbelowdot"; case 0x1001ee4 : return "Ubelowdot"; case 0x1001ee5 : return "ubelowdot"; case 0x1001ee6 : return "Uhook"; case 0x1001ee7 : return "uhook"; case 0x1001ee8 : return "Uhornacute"; case 0x1001ee9 : return "uhornacute"; case 0x1001eea : return "Uhorngrave"; case 0x1001eeb : return "uhorngrave"; case 0x1001eec : return "Uhornhook"; case 0x1001eed : return "uhornhook"; case 0x1001eee : return "Uhorntilde"; case 0x1001eef : return "uhorntilde"; case 0x1001ef0 : return "Uhornbelowdot"; case 0x1001ef1 : return "uhornbelowdot"; case 0x1001ef4 : return "Ybelowdot"; case 0x1001ef5 : return "ybelowdot"; case 0x1001ef6 : return "Yhook"; case 0x1001ef7 : return "yhook"; case 0x1001ef8 : return "Ytilde"; case 0x1001ef9 : return "ytilde"; case 0x10001a0 : return "Ohorn"; case 0x10001a1 : return "ohorn"; case 0x10001af : return "Uhorn"; case 0x10001b0 : return "uhorn"; case 0x10020a0 : return "EcuSign"; case 0x10020a1 : return "ColonSign"; case 0x10020a2 : return "CruzeiroSign"; case 0x10020a3 : return "FFrancSign"; case 0x10020a4 : return "LiraSign"; case 0x10020a5 : return "MillSign"; case 0x10020a6 : return "NairaSign"; case 0x10020a7 : return "PesetaSign"; case 0x10020a8 : return "RupeeSign"; case 0x10020a9 : return "WonSign"; case 0x10020aa : return "NewSheqelSign"; case 0x10020ab : return "DongSign"; case 0x20ac : return "EuroSign"; case 0x1002070 : return "zerosuperior"; case 0x1002074 : return "foursuperior"; case 0x1002075 : return "fivesuperior"; case 0x1002076 : return "sixsuperior"; case 0x1002077 : return "sevensuperior"; case 0x1002078 : return "eightsuperior"; case 0x1002079 : return "ninesuperior"; case 0x1002080 : return "zerosubscript"; case 0x1002081 : return "onesubscript"; case 0x1002082 : return "twosubscript"; case 0x1002083 : return "threesubscript"; case 0x1002084 : return "foursubscript"; case 0x1002085 : return "fivesubscript"; case 0x1002086 : return "sixsubscript"; case 0x1002087 : return "sevensubscript"; case 0x1002088 : return "eightsubscript"; case 0x1002089 : return "ninesubscript"; case 0x1002202 : return "partdifferential"; case 0x1002205 : return "emptyset"; case 0x1002208 : return "elementof"; case 0x1002209 : return "notelementof"; case 0x100220b : return "containsas"; case 0x100221a : return "squareroot"; case 0x100221b : return "cuberoot"; case 0x100221c : return "fourthroot"; case 0x100222c : return "dintegral"; case 0x100222d : return "tintegral"; case 0x1002235 : return "because"; case 0x1002248 : return "approxeq"; case 0x1002247 : return "notapproxeq"; case 0x1002262 : return "notidentical"; case 0x1002263 : return "stricteq"; default : return "(unknown symbol)"; } }