| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923 | /* ANSI-C code produced by gperf version 3.0.4 *//* Command-line: gperf -L ANSI-C -t -N keyboard_lookup_key -H hash_key_name -p -C  *//* Computed positions: -k'1-4,$' */#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))/* The character set is not based on ISO-646.  */#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."#endifstruct key { const char* name; unsigned short id; };#define TOTAL_KEYWORDS 392#define MIN_WORD_LENGTH 1#define MAX_WORD_LENGTH 16#define MIN_HASH_VALUE 1#define MAX_HASH_VALUE 1503/* maximum key range = 1503, duplicates = 0 */#ifdef __GNUC____inline#else#ifdef __cplusplusinline#endif#endifstatic unsigned inthash_key_name (register const char *str, register unsigned int len){  static const unsigned short asso_values[] =    {      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,  130,  165,       295,  285,  310,  370,  335,  220,  215,   75, 1504, 1504,      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,      1504, 1504, 1504, 1504, 1504,   75, 1504,   10,  330,   25,        80,    5,  395,  260,  345,  185,   50,  300,  110,   30,       145,   35,   15,   45,   65,   20,    0,  210,  455,  375,        55,   95,   85, 1504, 1504, 1504, 1504, 1504, 1504, 1504,      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,      1504, 1504, 1504, 1504, 1504, 1504    };  register int hval = len;  switch (hval)    {      default:        hval += asso_values[(unsigned char)str[3]];      /*FALLTHROUGH*/      case 3:        hval += asso_values[(unsigned char)str[2]];      /*FALLTHROUGH*/      case 2:        hval += asso_values[(unsigned char)str[1]];      /*FALLTHROUGH*/      case 1:        hval += asso_values[(unsigned char)str[0]];        break;    }  return hval + asso_values[(unsigned char)str[len - 1]];}#ifdef __GNUC____inline#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE____attribute__ ((__gnu_inline__))#endif#endifconst struct key *keyboard_lookup_key (register const char *str, register unsigned int len){  static const struct key wordlist[] =    {      {(char*)0},      {"t", KEY_T},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0},      {"e", KEY_E},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0},      {"a", KEY_A},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0},      {"p", KEY_P},      {(char*)0},      {"sat", KEY_SAT},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0},      {"tape", KEY_TAPE},      {(char*)0},      {"s", KEY_S},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0},      {"c", KEY_C},      {(char*)0}, {(char*)0}, {(char*)0},      {"paste", KEY_PASTE},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0},      {"m", KEY_M},      {(char*)0}, {(char*)0},      {"text", KEY_TEXT},      {(char*)0}, {(char*)0},      {"pc", KEY_PC},      {(char*)0}, {(char*)0}, {(char*)0},      {"o", KEY_O},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0},      {"esc", KEY_ESC},      {(char*)0},      {"space", KEY_SPACE},      {"camera_left", KEY_CAMERA_LEFT},      {"camera_right", KEY_CAMERA_RIGHT},      {(char*)0},      {"camera_zoomout", KEY_CAMERA_ZOOMOUT},      {(char*)0},      {"camera", KEY_CAMERA},      {(char*)0}, {(char*)0},      {"stop", KEY_STOP},      {(char*)0},      {"q", KEY_Q},      {(char*)0}, {(char*)0},      {"camera_up", KEY_CAMERA_UP},      {"apostrophe", KEY_APOSTROPHE},      {(char*)0},      {"restart", KEY_RESTART},      {(char*)0}, {(char*)0}, {(char*)0},      {"j", KEY_J},      {"camera_focus", KEY_CAMERA_FOCUS},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"x", KEY_X},      {(char*)0},      {"database", KEY_DATABASE},      {(char*)0}, {(char*)0},      {"spreadsheet", KEY_SPREADSHEET},      {"compose", KEY_COMPOSE},      {"dot", KEY_DOT},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"r", KEY_R},      {(char*)0}, {(char*)0}, {(char*)0},      {"comma", KEY_COMMA},      {(char*)0},      {"ro", KEY_RO},      {"alterase", KEY_ALTERASE},      {"memo", KEY_MEMO},      {"sport", KEY_SPORT},      {(char*)0}, {(char*)0}, {(char*)0},      {"last", KEY_LAST},      {(char*)0},      {"select", KEY_SELECT},      {(char*)0}, {(char*)0},      {"messenger", KEY_MESSENGER},      {(char*)0},      {"9", KEY_9},      {(char*)0}, {(char*)0}, {(char*)0},      {"props", KEY_PROPS},      {"stopcd", KEY_STOPCD},      {(char*)0}, {(char*)0},      {"mode", KEY_MODE},      {"sleep", KEY_SLEEP},      {"d", KEY_D},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0},      {"scrollup", KEY_SCROLLUP},      {(char*)0},      {"macro", KEY_MACRO},      {"z", KEY_Z},      {"ejectcd", KEY_EJECTCD},      {(char*)0}, {(char*)0},      {"scale", KEY_SCALE},      {(char*)0},      {"ejectclosecd", KEY_EJECTCLOSECD},      {"computer", KEY_COMPUTER},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"reserved", KEY_RESERVED},      {(char*)0}, {(char*)0}, {(char*)0},      {"cd", KEY_CD},      {(char*)0}, {(char*)0},      {"msdos", KEY_MSDOS},      {"y", KEY_Y},      {"zoomout", KEY_ZOOMOUT},      {(char*)0},      {"zoomreset", KEY_ZOOMRESET},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"calc", KEY_CALC},      {"close", KEY_CLOSE},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"next", KEY_NEXT},      {(char*)0},      {"delete", KEY_DELETE},      {(char*)0}, {(char*)0}, {(char*)0},      {"deletefile", KEY_DELETEFILE},      {"record", KEY_RECORD},      {(char*)0}, {(char*)0},      {"zoom", KEY_ZOOM},      {"clear", KEY_CLEAR},      {"l", KEY_L},      {(char*)0},      {"calendar", KEY_CALENDAR},      {"redo", KEY_REDO},      {"enter", KEY_ENTER},      {"camera_down", KEY_CAMERA_DOWN},      {(char*)0},      {"camera_zoomin", KEY_CAMERA_ZOOMIN},      {"time", KEY_TIME},      {(char*)0}, {(char*)0}, {(char*)0},      {"red", KEY_RED},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"cut", KEY_CUT},      {(char*)0}, {(char*)0}, {(char*)0},      {"up", KEY_UP},      {(char*)0},      {"playpause", KEY_PLAYPAUSE},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"exit", KEY_EXIT},      {"sysrq", KEY_SYSRQ},      {(char*)0}, {(char*)0}, {(char*)0},      {"mute", KEY_MUTE},      {"setup", KEY_SETUP},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0},      {"0", KEY_0},      {"presentation", KEY_PRESENTATION},      {"sendfile", KEY_SENDFILE},      {(char*)0},      {"pause", KEY_PAUSE},      {"screen", KEY_SCREEN},      {(char*)0}, {(char*)0},      {"copy", KEY_COPY},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"edit", KEY_EDIT},      {(char*)0}, {(char*)0},      {"closecd", KEY_CLOSECD},      {"iso", KEY_ISO},      {(char*)0}, {(char*)0}, {(char*)0},      {"micmute", KEY_MICMUTE},      {"del_line", KEY_DEL_LINE},      {(char*)0}, {(char*)0}, {(char*)0},      {"cyclewindows", KEY_CYCLEWINDOWS},      {(char*)0}, {(char*)0},      {"touchpad_toggle", KEY_TOUCHPAD_TOGGLE},      {"n", KEY_N},      {(char*)0}, {(char*)0}, {(char*)0},      {"reply", KEY_REPLY},      {(char*)0},      {"del_eos", KEY_DEL_EOS},      {(char*)0}, {(char*)0},      {"scrolldown", KEY_SCROLLDOWN},      {"player", KEY_PLAYER},      {(char*)0}, {(char*)0},      {"teen", KEY_TEEN},      {"title", KEY_TITLE},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0},      {"pageup", KEY_PAGEUP},      {"media_repeat", KEY_MEDIA_REPEAT},      {"end", KEY_END},      {(char*)0},      {"media", KEY_MEDIA},      {"playcd", KEY_PLAYCD},      {(char*)0},      {"displaytoggle", KEY_DISPLAYTOGGLE},      {"list", KEY_LIST},      {(char*)0},      {"cancel", KEY_CANCEL},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0},      {"play", KEY_PLAY},      {"games", KEY_GAMES},      {"1", KEY_1},      {(char*)0},      {"aux", KEY_AUX},      {"send", KEY_SEND},      {(char*)0},      {"zoomin", KEY_ZOOMIN},      {(char*)0},      {"katakana", KEY_KATAKANA},      {(char*)0}, {(char*)0},      {"editor", KEY_EDITOR},      {"pausecd", KEY_PAUSECD},      {(char*)0}, {(char*)0},      {"email", KEY_EMAIL},      {"katakanahiragana", KEY_KATAKANAHIRAGANA},      {(char*)0}, {(char*)0},      {"open", KEY_OPEN},      {(char*)0}, {(char*)0},      {"suspend", KEY_SUSPEND},      {(char*)0},      {"euro", KEY_EURO},      {(char*)0}, {(char*)0},      {"connect", KEY_CONNECT},      {(char*)0}, {(char*)0}, {(char*)0},      {"insert", KEY_INSERT},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0},      {"goto", KEY_GOTO},      {(char*)0},      {"i", KEY_I},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0},      {"hp", KEY_HP},      {"capslock", KEY_CAPSLOCK},      {"documents", KEY_DOCUMENTS},      {"radio", KEY_RADIO},      {(char*)0}, {(char*)0}, {(char*)0},      {"chat", KEY_CHAT},      {"equal", KEY_EQUAL},      {"option", KEY_OPTION},      {"del_eol", KEY_DEL_EOL},      {(char*)0},      {"bassboost", KEY_BASSBOOST},      {(char*)0}, {(char*)0},      {"kpcomma", KEY_KPCOMMA},      {"yen", KEY_YEN},      {"semicolon", KEY_SEMICOLON},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"kpjpcomma", KEY_KPJPCOMMA},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0},      {"dollar", KEY_DOLLAR},      {(char*)0},      {"mhp", KEY_MHP},      {(char*)0}, {(char*)0}, {(char*)0},      {"program", KEY_PROGRAM},      {(char*)0}, {(char*)0},      {"print", KEY_PRINT},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0},      {"u", KEY_U},      {(char*)0}, {(char*)0},      {"home", KEY_HOME},      {"screenlock", KEY_SCREENLOCK},      {"touchpad_on", KEY_TOUCHPAD_ON},      {"context_menu", KEY_CONTEXT_MENU},      {"homepage", KEY_HOMEPAGE},      {"graphicseditor", KEY_GRAPHICSEDITOR},      {"tuner", KEY_TUNER},      {"8", KEY_8},      {(char*)0},      {"question", KEY_QUESTION},      {"shop", KEY_SHOP},      {"kpdot", KEY_KPDOT},      {(char*)0}, {(char*)0},      {"ins_line", KEY_INS_LINE},      {"directory", KEY_DIRECTORY},      {(char*)0},      {"7", KEY_7},      {"battery", KEY_BATTERY},      {"pagedown", KEY_PAGEDOWN},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0},      {"mail", KEY_MAIL},      {(char*)0},      {"search", KEY_SEARCH},      {(char*)0}, {(char*)0}, {(char*)0},      {"scrolllock", KEY_SCROLLLOCK},      {(char*)0},      {"archive", KEY_ARCHIVE},      {(char*)0}, {(char*)0},      {"spellcheck", KEY_SPELLCHECK},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0},      {"kpplus", KEY_KPPLUS},      {"numeric_star", KEY_NUMERIC_STAR},      {"kp9", KEY_KP9},      {(char*)0}, {(char*)0},      {"kpplusminus", KEY_KPPLUSMINUS},      {(char*)0},      {"nextsong", KEY_NEXTSONG},      {"numeric_9", KEY_NUMERIC_9},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0},      {"kpequal", KEY_KPEQUAL},      {"numeric_pound", KEY_NUMERIC_POUND},      {(char*)0},      {"green", KEY_GREEN},      {(char*)0}, {(char*)0}, {(char*)0},      {"direction", KEY_DIRECTION},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"help", KEY_HELP},      {"sound", KEY_SOUND},      {(char*)0}, {(char*)0}, {(char*)0},      {"save", KEY_SAVE},      {"power", KEY_POWER},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"undo", KEY_UNDO},      {"slash", KEY_SLASH},      {"images", KEY_IMAGES},      {(char*)0}, {(char*)0},      {"left", KEY_LEFT},      {(char*)0},      {"fastforward", KEY_FASTFORWARD},      {"leftalt", KEY_LEFTALT},      {(char*)0},      {"leftshift", KEY_LEFTSHIFT},      {(char*)0},      {"g", KEY_G},      {(char*)0}, {(char*)0},      {"leftbrace", KEY_LEFTBRACE},      {"audio", KEY_AUDIO},      {(char*)0}, {(char*)0},      {"leftmeta", KEY_LEFTMETA},      {"numeric_0", KEY_NUMERIC_0},      {(char*)0}, {(char*)0}, {(char*)0},      {"linefeed", KEY_LINEFEED},      {"move", KEY_MOVE},      {"angle", KEY_ANGLE},      {(char*)0},      {"kpenter", KEY_KPENTER},      {"language", KEY_LANGUAGE},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"epg", KEY_EPG},      {"dashboard", KEY_DASHBOARD},      {"prog1", KEY_PROG1},      {"addressbook", KEY_ADDRESSBOOK},      {"f9", KEY_F9},      {(char*)0},      {"channelup", KEY_CHANNELUP},      {"phone", KEY_PHONE},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0},      {"kpminus", KEY_KPMINUS},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0},      {"numeric_1", KEY_NUMERIC_1},      {"hanja", KEY_HANJA},      {(char*)0}, {(char*)0},      {"previous", KEY_PREVIOUS},      {"news", KEY_NEWS},      {(char*)0},      {"3", KEY_3},      {(char*)0},      {"subtitle", KEY_SUBTITLE},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"kp0", KEY_KP0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0},      {"kpleftparen", KEY_KPLEFTPAREN},      {(char*)0}, {(char*)0},      {"xfer", KEY_XFER},      {(char*)0},      {"2", KEY_2},      {"frameforward", KEY_FRAMEFORWARD},      {(char*)0}, {(char*)0},      {"minus", KEY_MINUS},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"switchvideomode", KEY_SWITCHVIDEOMODE},      {"k", KEY_K},      {(char*)0},      {"pvr", KEY_PVR},      {"menu", KEY_MENU},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"vcr", KEY_VCR},      {"numeric_8", KEY_NUMERIC_8},      {"again", KEY_AGAIN},      {(char*)0}, {(char*)0},      {"mp3", KEY_MP3},      {"numeric_7", KEY_NUMERIC_7},      {(char*)0},      {"4", KEY_4},      {(char*)0},      {"hiragana", KEY_HIRAGANA},      {"sat2", KEY_SAT2},      {(char*)0}, {(char*)0}, {(char*)0},      {"leftctrl", KEY_LEFTCTRL},      {"fn_e", KEY_FN_E},      {(char*)0}, {(char*)0}, {(char*)0},      {"wordprocessor", KEY_WORDPROCESSOR},      {(char*)0}, {(char*)0}, {(char*)0},      {"ok", KEY_OK},      {(char*)0}, {(char*)0},      {"wps_button", KEY_WPS_BUTTON},      {(char*)0},      {"channel", KEY_CHANNEL},      {(char*)0}, {(char*)0},      {"front", KEY_FRONT},      {(char*)0}, {(char*)0},      {"kp1", KEY_KP1},      {(char*)0}, {(char*)0},      {"fn_esc", KEY_FN_ESC},      {(char*)0}, {(char*)0}, {(char*)0},      {"kpasterisk", KEY_KPASTERISK},      {(char*)0}, {(char*)0}, {(char*)0},      {"fn_s", KEY_FN_S},      {"wimax", KEY_WIMAX},      {"b", KEY_B},      {(char*)0},      {"brl_dot9", KEY_BRL_DOT9},      {"blue", KEY_BLUE},      {"prog3", KEY_PROG3},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"first", KEY_FIRST},      {"6", KEY_6},      {"ab", KEY_AB},      {"tab", KEY_TAB},      {"twen", KEY_TWEN},      {"prog2", KEY_PROG2},      {(char*)0},      {"touchpad_off", KEY_TOUCHPAD_OFF},      {(char*)0},      {"backspace", KEY_BACKSPACE},      {(char*)0},      {"channeldown", KEY_CHANNELDOWN},      {(char*)0}, {(char*)0},      {"numeric_3", KEY_NUMERIC_3},      {(char*)0}, {(char*)0},      {"fn", KEY_FN},      {(char*)0}, {(char*)0},      {"prog4", KEY_PROG4},      {"h", KEY_H},      {"10channelsup", KEY_10CHANNELSUP},      {(char*)0},      {"numeric_2", KEY_NUMERIC_2},      {(char*)0}, {(char*)0}, {(char*)0},      {"dvd", KEY_DVD},      {(char*)0}, {(char*)0},      {"yellow", KEY_YELLOW},      {(char*)0}, {(char*)0},      {"file", KEY_FILE},      {(char*)0},      {"display_off", KEY_DISPLAY_OFF},      {(char*)0}, {(char*)0},      {"numeric_4", KEY_NUMERIC_4},      {(char*)0},      {"wakeup", KEY_WAKEUP},      {(char*)0},      {"f19", KEY_F19},      {(char*)0},      {"break", KEY_BREAK},      {"rewind", KEY_REWIND},      {(char*)0}, {(char*)0},      {"brl_dot10", KEY_BRL_DOT10},      {(char*)0}, {(char*)0},      {"kprightparen", KEY_KPRIGHTPAREN},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"f1", KEY_F1},      {(char*)0},      {"bookmarks", KEY_BOOKMARKS},      {(char*)0},      {"power2", KEY_POWER2},      {(char*)0}, {(char*)0},      {"numeric_6", KEY_NUMERIC_6},      {"video_next", KEY_VIDEO_NEXT},      {"digits", KEY_DIGITS},      {(char*)0}, {(char*)0}, {(char*)0},      {"videophone", KEY_VIDEOPHONE},      {"5", KEY_5},      {(char*)0},      {"muhenkan", KEY_MUHENKAN},      {(char*)0}, {(char*)0}, {(char*)0},      {"finance", KEY_FINANCE},      {"kp8", KEY_KP8},      {(char*)0}, {(char*)0},      {"w", KEY_W},      {(char*)0},      {"brl_dot1", KEY_BRL_DOT1},      {(char*)0}, {(char*)0},      {"vendor", KEY_VENDOR},      {(char*)0},      {"kp7", KEY_KP7},      {"zenkakuhankaku", KEY_ZENKAKUHANKAKU},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0},      {"video", KEY_VIDEO},      {(char*)0}, {(char*)0}, {(char*)0},      {"numeric_5", KEY_NUMERIC_5},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0},      {"fn_d", KEY_FN_D},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"down", KEY_DOWN},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"wlan", KEY_WLAN},      {(char*)0},      {"f", KEY_F},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0},      {"kpslash", KEY_KPSLASH},      {(char*)0},      {"info", KEY_INFO},      {"grave", KEY_GRAVE},      {(char*)0},      {"numlock", KEY_NUMLOCK},      {"brl_dot8", KEY_BRL_DOT8},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"brl_dot7", KEY_BRL_DOT7},      {"frameback", KEY_FRAMEBACK},      {(char*)0}, {(char*)0},      {"previoussong", KEY_PREVIOUSSONG},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0},      {"keyboard", KEY_KEYBOARD},      {"voicemail", KEY_VOICEMAIL},      {"102nd", KEY_102ND},      {(char*)0}, {(char*)0},      {"f10", KEY_F10},      {"10channelsdown", KEY_10CHANNELSDOWN},      {(char*)0}, {(char*)0},      {"f8", KEY_F8},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0},      {"volumeup", KEY_VOLUMEUP},      {(char*)0}, {(char*)0}, {(char*)0},      {"f7", KEY_F7},      {(char*)0}, {(char*)0}, {(char*)0},      {"logoff", KEY_LOGOFF},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0},      {"right", KEY_RIGHT},      {"brightness_cycle", KEY_BRIGHTNESS_CYCLE},      {(char*)0},      {"rightalt", KEY_RIGHTALT},      {(char*)0},      {"rightshift", KEY_RIGHTSHIFT},      {"config", KEY_CONFIG},      {"brightnessup", KEY_BRIGHTNESSUP},      {(char*)0}, {(char*)0},      {"rightbrace", KEY_RIGHTBRACE},      {(char*)0}, {(char*)0},      {"brl_dot3", KEY_BRL_DOT3},      {"rightmeta", KEY_RIGHTMETA},      {(char*)0}, {(char*)0},      {"hangeul", KEY_HANGEUL},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"refresh", KEY_REFRESH},      {"brl_dot2", KEY_BRL_DOT2},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"kp3", KEY_KP3},      {"find", KEY_FIND},      {"brightness_zero", KEY_BRIGHTNESS_ZERO},      {(char*)0}, {(char*)0},      {"f11", KEY_F11},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"brl_dot4", KEY_BRL_DOT4},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"new", KEY_NEW},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"kp2", KEY_KP2},      {(char*)0}, {(char*)0},      {"v", KEY_V},      {"tv", KEY_TV},      {(char*)0},      {"kbdillumtoggle", KEY_KBDILLUMTOGGLE},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"slow", KEY_SLOW},      {"kbdillumup", KEY_KBDILLUMUP},      {(char*)0}, {(char*)0},      {"brl_dot6", KEY_BRL_DOT6},      {"favorites", KEY_FAVORITES},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0},      {"kp4", KEY_KP4},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0},      {"henkan", KEY_HENKAN},      {(char*)0}, {(char*)0},      {"fn_1", KEY_FN_1},      {(char*)0}, {(char*)0},      {"unknown", KEY_UNKNOWN},      {"f20", KEY_F20},      {(char*)0}, {(char*)0}, {(char*)0},      {"forward", KEY_FORWARD},      {"brl_dot5", KEY_BRL_DOT5},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0},      {"volumedown", KEY_VOLUMEDOWN},      {(char*)0},      {"f3", KEY_F3},      {(char*)0},      {"back", KEY_BACK},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"rightctrl", KEY_RIGHTCTRL},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0},      {"shuffle", KEY_SHUFFLE},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"f2", KEY_F2},      {"kp6", KEY_KP6},      {(char*)0}, {(char*)0},      {"forwardmail", KEY_FORWARDMAIL},      {(char*)0},      {"f18", KEY_F18},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0},      {"brightnessdown", KEY_BRIGHTNESSDOWN},      {(char*)0}, {(char*)0}, {(char*)0},      {"f17", KEY_F17},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0},      {"bluetooth", KEY_BLUETOOTH},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0},      {"f4", KEY_F4},      {(char*)0},      {"backslash", KEY_BACKSLASH},      {(char*)0}, {(char*)0}, {(char*)0},      {"f21", KEY_F21},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"tv2", KEY_TV2},      {(char*)0}, {(char*)0}, {(char*)0},      {"kbdillumdown", KEY_KBDILLUMDOWN},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0},      {"kp5", KEY_KP5},      {(char*)0}, {(char*)0},      {"rfkill", KEY_RFKILL},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0},      {"f6", KEY_F6},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0},      {"fn_f9", KEY_FN_F9},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0},      {"f13", KEY_F13},      {(char*)0}, {(char*)0}, {(char*)0},      {"f5", KEY_F5},      {(char*)0},      {"vcr2", KEY_VCR2},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0},      {"fn_f10", KEY_FN_F10},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0},      {"f12", KEY_F12},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0},      {"fn_f1", KEY_FN_F1},      {"fn_f11", KEY_FN_F11},      {(char*)0},      {"f14", KEY_F14},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0},      {"video_prev", KEY_VIDEO_PREV},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0},      {"fn_2", KEY_FN_2},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"fn_f8", KEY_FN_F8},      {(char*)0}, {(char*)0},      {"f16", KEY_F16},      {(char*)0},      {"fn_f7", KEY_FN_F7},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"uwb", KEY_UWB},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0},      {"f23", KEY_F23},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0},      {"fn_b", KEY_FN_B},      {(char*)0}, {(char*)0}, {(char*)0},      {"f22", KEY_F22},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"fn_f3", KEY_FN_F3},      {(char*)0}, {(char*)0},      {"f15", KEY_F15},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0},      {"fn_f2", KEY_FN_F2},      {"fn_f12", KEY_FN_F12},      {(char*)0},      {"f24", KEY_F24},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0},      {"fn_f4", KEY_FN_F4},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {"fn_f6", KEY_FN_F6},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0},      {"fn_f5", KEY_FN_F5},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0},      {"fn_f", KEY_FN_F},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},      {(char*)0},      {"www", KEY_WWW}    };  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)    {      register int key = hash_key_name (str, len);      if (key <= MAX_HASH_VALUE && key >= 0)        {          register const char *s = wordlist[key].name;          if (s && *str == *s && !strcmp (str + 1, s + 1))            return &wordlist[key];        }    }  return 0;}
 |