diff options
Diffstat (limited to 'windows')
| -rw-r--r-- | windows/neo-vars/src/neo20-all.ahk | 1 | ||||
| -rw-r--r-- | windows/neo-vars/src/source/compose-gen.ahk | 1917 | ||||
| -rw-r--r-- | windows/neo-vars/src/source/initialize.ahk | 8 | 
3 files changed, 1925 insertions, 1 deletions
diff --git a/windows/neo-vars/src/neo20-all.ahk b/windows/neo-vars/src/neo20-all.ahk index 5a81983..047ac6f 100644 --- a/windows/neo-vars/src/neo20-all.ahk +++ b/windows/neo-vars/src/neo20-all.ahk @@ -9,6 +9,7 @@ SetWorkingDir, %A_ScriptDir%  #include *i source\compose.generated.ahk
  #include *i source\compose-tainted.generated.ahk
  #include    source\neovarscompose.ahk
 +#include    source\compose-gen.ahk
  ; Hier liegt die Tastaturbelegung
  #include    source\keydefinitions.ahk
 diff --git a/windows/neo-vars/src/source/compose-gen.ahk b/windows/neo-vars/src/source/compose-gen.ahk new file mode 100644 index 0000000..69533bf --- /dev/null +++ b/windows/neo-vars/src/source/compose-gen.ahk @@ -0,0 +1,1917 @@ +; äöü
 +
 +DefineXKBSym(name,val) {
 +  global
 +  nlen := StrLen(name)
 +  KSYM%nlen% .= name . " "
 +  KSCD%nlen% .= val
 +}
 +
 +DefineXKBSyms() {
 +  DefineXKBSym("BackSpace"         ,"U0008")
 +  DefineXKBSym("Tab"               ,"U0009")
 +  DefineXKBSym("Return"            ,"U000D")
 +  DefineXKBSym("Delete"            ,"S_Del")
 +  DefineXKBSym("Multi_key"         ,"SComp")
 +  DefineXKBSym("Home"              ,"SHome")
 +  DefineXKBSym("Left"              ,"SLeft")
 +  DefineXKBSym("Up"                ,"S__Up")
 +  DefineXKBSym("Right"             ,"SRght")
 +  DefineXKBSym("Down"              ,"SDown")
 +  DefineXKBSym("Prior"             ,"SPgUp")
 +  DefineXKBSym("Page_Up"           ,"SPgUp")
 +  DefineXKBSym("Next"              ,"SPgDn")
 +  DefineXKBSym("Page_Down"         ,"SPgDn")
 +  DefineXKBSym("End"               ,"S_End")
 +  DefineXKBSym("Insert"            ,"S_Ins")
 +  DefineXKBSym("KP_Space"          ,"SNSpc") ; not
 +  DefineXKBSym("KP_Tab"            ,"SNTab") ; not
 +  DefineXKBSym("KP_Enter"          ,"SNEnt")
 +  DefineXKBSym("KP_F1"             ,"SNF_1") ; not
 +  DefineXKBSym("KP_F2"             ,"SNF_2") ; not
 +  DefineXKBSym("KP_F3"             ,"SNF_3") ; not
 +  DefineXKBSym("KP_F4"             ,"SNF_4") ; not
 +  DefineXKBSym("KP_Home"           ,"SNHom")
 +  DefineXKBSym("KP_Left"           ,"SN_Le")
 +  DefineXKBSym("KP_Up"             ,"SN_Up")
 +  DefineXKBSym("KP_Right"          ,"SN_Ri")
 +  DefineXKBSym("KP_Down"           ,"SN_Dn")
 +  DefineXKBSym("KP_Prior"          ,"SNPUp")
 +  DefineXKBSym("KP_Page_Up"        ,"SNPUp")
 +  DefineXKBSym("KP_Next"           ,"SNPDn")
 +  DefineXKBSym("KP_Page_Down"      ,"SNPDn")
 +  DefineXKBSym("KP_End"            ,"SNEnd")
 +  DefineXKBSym("KP_Begin"          ,"SNBgn") ; not
 +  DefineXKBSym("KP_Insert"         ,"SNIns")
 +  DefineXKBSym("KP_Delete"         ,"SNDel")
 +  DefineXKBSym("KP_Equal"          ,"SNEql") ; not
 +  DefineXKBSym("KP_Multiply"       ,"SNMul")
 +  DefineXKBSym("KP_Add"            ,"SNAdd")
 +  DefineXKBSym("KP_Separator"      ,"SNSep") ; not
 +  DefineXKBSym("KP_Subtract"       ,"SNSub")
 +  DefineXKBSym("KP_Decimal"        ,"SNDot")
 +  DefineXKBSym("KP_Divide"         ,"SNDiv")
 +  DefineXKBSym("KP_0"              ,"SN__0")
 +  DefineXKBSym("KP_1"              ,"SN__1")
 +  DefineXKBSym("KP_2"              ,"SN__2")
 +  DefineXKBSym("KP_3"              ,"SN__3")
 +  DefineXKBSym("KP_4"              ,"SN__4")
 +  DefineXKBSym("KP_5"              ,"SN__5")
 +  DefineXKBSym("KP_6"              ,"SN__6")
 +  DefineXKBSym("KP_7"              ,"SN__7")
 +  DefineXKBSym("KP_8"              ,"SN__8")
 +  DefineXKBSym("KP_9"              ,"SN__9")
 +  DefineXKBSym("dead_acute"        ,"Tacut")
 +  DefineXKBSym("dead_grave"        ,"Tgrav")
 +  DefineXKBSym("dead_cedilla"      ,"Tcedi")
 +  DefineXKBSym("dead_abovedot"     ,"Tabdt")
 +  DefineXKBSym("dead_ogonek"       ,"Togon")
 +  DefineXKBSym("dead_abovering"    ,"Tobrg")
 +  DefineXKBSym("dead_circumflex"   ,"Tcflx")
 +  DefineXKBSym("dead_caron"        ,"Tcron")
 +  DefineXKBSym("dead_breve"        ,"Tbrve")
 +  DefineXKBSym("dead_belowdot"     ,"Tbldt")
 +  DefineXKBSym("dead_tilde"        ,"Ttlde")
 +  DefineXKBSym("dead_macron"       ,"Tmcrn")
 +  DefineXKBSym("dead_diaeresis"    ,"Tdrss")
 +  DefineXKBSym("dead_doubleacute"  ,"Tdbac")
 +  DefineXKBSym("dead_stroke"       ,"Tstrk")
 +  DefineXKBSym("dead_iota"         ,"Tiota")    ; not assigned a dead key in NEO
 +  DefineXKBSym("dead_voiced_sound" ,"Tvsnd")    ; not assigned a dead key in NEO
 +  DefineXKBSym("dead_semivoiced_sound","Tssnd") ; not assigned a dead key in NEO
 +  DefineXKBSym("dead_horn"         ,"Thorn")    ; not assigned a dead key in NEO
 +  DefineXKBSym("dead_hook"         ,"Thook")    ; not assigned a dead key in NEO
 +  DefineXKBSym("combining_grave"   ,"TCgrv")    ; not assigned a dead key in NEO
 +  DefineXKBSym("combining_acute"   ,"TCact")    ; not assigned a dead key in NEO
 +  DefineXKBSym("combining_belowdot","TCbdt")    ; not assigned a dead key in NEO
 +  DefineXKBSym("combining_hook"    ,"TChok")    ; not assigned a dead key in NEO
 +  DefineXKBSym("combining_tilde"   ,"TCtld")    ; not assigned a dead key in NEO
 +  DefineXKBSym("space"             ,"U0020")
 +  DefineXKBSym("dead_space"        ,"U00A0")
 +  DefineXKBSym("exclam"            ,"U0021")
 +  DefineXKBSym("quotedbl"          ,"U0022")
 +  DefineXKBSym("numbersign"        ,"U0023")
 +  DefineXKBSym("dollar"            ,"U0024")
 +  DefineXKBSym("percent"           ,"U0025")
 +  DefineXKBSym("ampersand"         ,"U0026")
 +  DefineXKBSym("apostrophe"        ,"U0027")
 +  DefineXKBSym("quoteright"        ,"U0027")
 +  DefineXKBSym("parenleft"         ,"U0028")
 +  DefineXKBSym("parenright"        ,"U0029")
 +  DefineXKBSym("asterisk"          ,"U002A")
 +  DefineXKBSym("plus"              ,"U002B")
 +  DefineXKBSym("comma"             ,"U002C")
 +  DefineXKBSym("minus"             ,"U002D")
 +  DefineXKBSym("period"            ,"U002E")
 +  DefineXKBSym("slash"             ,"U002F")
 +  DefineXKBSym("0"                 ,"U0030")
 +  DefineXKBSym("1"                 ,"U0031")
 +  DefineXKBSym("2"                 ,"U0032")
 +  DefineXKBSym("3"                 ,"U0033")
 +  DefineXKBSym("4"                 ,"U0034")
 +  DefineXKBSym("5"                 ,"U0035")
 +  DefineXKBSym("6"                 ,"U0036")
 +  DefineXKBSym("7"                 ,"U0037")
 +  DefineXKBSym("8"                 ,"U0038")
 +  DefineXKBSym("9"                 ,"U0039")
 +  DefineXKBSym("colon"             ,"U003A")
 +  DefineXKBSym("semicolon"         ,"U003B")
 +  DefineXKBSym("less"              ,"U003C")
 +  DefineXKBSym("equal"             ,"U003D")
 +  DefineXKBSym("greater"           ,"U003E")
 +  DefineXKBSym("question"          ,"U003F")
 +  DefineXKBSym("at"                ,"U0040")
 +  DefineXKBSym("A"                 ,"U0041")
 +  DefineXKBSym("B"                 ,"U0042")
 +  DefineXKBSym("C"                 ,"U0043")
 +  DefineXKBSym("D"                 ,"U0044")
 +  DefineXKBSym("E"                 ,"U0045")
 +  DefineXKBSym("F"                 ,"U0046")
 +  DefineXKBSym("G"                 ,"U0047")
 +  DefineXKBSym("H"                 ,"U0048")
 +  DefineXKBSym("I"                 ,"U0049")
 +  DefineXKBSym("J"                 ,"U004A")
 +  DefineXKBSym("K"                 ,"U004B")
 +  DefineXKBSym("L"                 ,"U004C")
 +  DefineXKBSym("M"                 ,"U004D")
 +  DefineXKBSym("N"                 ,"U004E")
 +  DefineXKBSym("O"                 ,"U004F")
 +  DefineXKBSym("P"                 ,"U0050")
 +  DefineXKBSym("Q"                 ,"U0051")
 +  DefineXKBSym("R"                 ,"U0052")
 +  DefineXKBSym("S"                 ,"U0053")
 +  DefineXKBSym("T"                 ,"U0054")
 +  DefineXKBSym("U"                 ,"U0055")
 +  DefineXKBSym("V"                 ,"U0056")
 +  DefineXKBSym("W"                 ,"U0057")
 +  DefineXKBSym("X"                 ,"U0058")
 +  DefineXKBSym("Y"                 ,"U0059")
 +  DefineXKBSym("Z"                 ,"U005A")
 +  DefineXKBSym("bracketleft"       ,"U005B")
 +  DefineXKBSym("backslash"         ,"U005C")
 +  DefineXKBSym("bracketright"      ,"U005D")
 +  DefineXKBSym("asciicircum"       ,"U005E")
 +  DefineXKBSym("underscore"        ,"U005F")
 +  DefineXKBSym("grave"             ,"U0060")
 +  DefineXKBSym("quoteleft"         ,"U0060")
 +  DefineXKBSym("a"                 ,"U0061")
 +  DefineXKBSym("b"                 ,"U0062")
 +  DefineXKBSym("c"                 ,"U0063")
 +  DefineXKBSym("d"                 ,"U0064")
 +  DefineXKBSym("e"                 ,"U0065")
 +  DefineXKBSym("f"                 ,"U0066")
 +  DefineXKBSym("g"                 ,"U0067")
 +  DefineXKBSym("h"                 ,"U0068")
 +  DefineXKBSym("i"                 ,"U0069")
 +  DefineXKBSym("j"                 ,"U006A")
 +  DefineXKBSym("k"                 ,"U006B")
 +  DefineXKBSym("l"                 ,"U006C")
 +  DefineXKBSym("m"                 ,"U006D")
 +  DefineXKBSym("n"                 ,"U006E")
 +  DefineXKBSym("o"                 ,"U006F")
 +  DefineXKBSym("p"                 ,"U0070")
 +  DefineXKBSym("q"                 ,"U0071")
 +  DefineXKBSym("r"                 ,"U0072")
 +  DefineXKBSym("s"                 ,"U0073")
 +  DefineXKBSym("t"                 ,"U0074")
 +  DefineXKBSym("u"                 ,"U0075")
 +  DefineXKBSym("v"                 ,"U0076")
 +  DefineXKBSym("w"                 ,"U0077")
 +  DefineXKBSym("x"                 ,"U0078")
 +  DefineXKBSym("y"                 ,"U0079")
 +  DefineXKBSym("z"                 ,"U007A")
 +  DefineXKBSym("braceleft"         ,"U007B")
 +  DefineXKBSym("bar"               ,"U007C")
 +  DefineXKBSym("braceright"        ,"U007D")
 +  DefineXKBSym("asciitilde"        ,"U007E")
 +  DefineXKBSym("ſ"                 ,"U017F")
 +
 +; following codes are auto-generated from keysymdef.h (manually disabled if already defined or override)
 +
 +;  DefineXKBSym("BackSpace","U232B")
 +;  DefineXKBSym("Tab","U21E5")
 +;  DefineXKBSym("Return","U21B2")
 +;  DefineXKBSym("Escape","U2327")
 +;  DefineXKBSym("Delete","U2326")
 +;  DefineXKBSym("Multi_key","U266B")
 +;  DefineXKBSym("Home","U21F1")
 +;  DefineXKBSym("Left","U21E0")
 +;  DefineXKBSym("Up","U21E1")
 +;  DefineXKBSym("Right","U21E2")
 +;  DefineXKBSym("Down","U21E3")
 +;  DefineXKBSym("Prior","U21DE")
 +;  DefineXKBSym("Page_Up","U21DE")
 +;  DefineXKBSym("Next","U21DF")
 +;  DefineXKBSym("Page_Down","U21DF")
 +;  DefineXKBSym("End","U21F2")
 +;  DefineXKBSym("Insert","U2380")
 +;  DefineXKBSym("KP_Enter","U2386")
 +;  DefineXKBSym("KP_Home","U21F1")
 +;  DefineXKBSym("KP_Left","U21E0")
 +;  DefineXKBSym("KP_Up","U21E1")
 +;  DefineXKBSym("KP_Right","U21E2")
 +;  DefineXKBSym("KP_Down","U21E3")
 +;  DefineXKBSym("KP_Prior","U21DE")
 +;  DefineXKBSym("KP_Page_Up","U21DE")
 +;  DefineXKBSym("KP_Next","U21DF")
 +;  DefineXKBSym("KP_Page_Down","U21DF")
 +;  DefineXKBSym("KP_End","U21F2")
 +;  DefineXKBSym("KP_Insert","U2380")
 +;  DefineXKBSym("KP_Delete","U2326")
 +;  DefineXKBSym("KP_Multiply","U002A")
 +;  DefineXKBSym("KP_Add","U002B")
 +;  DefineXKBSym("KP_Subtract","U002D")
 +;  DefineXKBSym("KP_Decimal","U2396")
 +;  DefineXKBSym("KP_Divide","U2215")
 +;  DefineXKBSym("KP_0","U0030")
 +;  DefineXKBSym("KP_1","U0031")
 +;  DefineXKBSym("KP_2","U0032")
 +;  DefineXKBSym("KP_3","U0033")
 +;  DefineXKBSym("KP_4","U0034")
 +;  DefineXKBSym("KP_5","U0035")
 +;  DefineXKBSym("KP_6","U0036")
 +;  DefineXKBSym("KP_7","U0037")
 +;  DefineXKBSym("KP_8","U0038")
 +;  DefineXKBSym("KP_9","U0039")
 +  DefineXKBSym("Shift_L","U21E7")
 +  DefineXKBSym("Shift_R","U21E7")
 +  DefineXKBSym("Shift_Lock","U21E7")
 +;  DefineXKBSym("ISO_Left_Tab","U21E4")
 +;  DefineXKBSym("dead_grave","U0060")
 +;  DefineXKBSym("dead_acute","U02CA")
 +;  DefineXKBSym("dead_circumflex","U005E")
 +;  DefineXKBSym("dead_tilde","U007E")
 +;  DefineXKBSym("dead_macron","U02C9")
 +;  DefineXKBSym("dead_breve","U0306")
 +;  DefineXKBSym("dead_abovedot","U02D9")
 +;  DefineXKBSym("dead_diaeresis","U00A8")
 +;  DefineXKBSym("dead_abovering","U02DA")
 +;  DefineXKBSym("dead_doubleacute","U02DD")
 +;  DefineXKBSym("dead_caron","U02C7")
 +;  DefineXKBSym("dead_cedilla","U00B8")
 +;  DefineXKBSym("dead_ogonek","U02DB")
 +;  DefineXKBSym("dead_belowdot","U0323")
 +;  DefineXKBSym("dead_stroke","U0335")
 +;  DefineXKBSym("space","U0020")
 +;  DefineXKBSym("exclam","U0021")
 +;  DefineXKBSym("quotedbl","U0022")
 +;  DefineXKBSym("numbersign","U0023")
 +;  DefineXKBSym("dollar","U0024")
 +;  DefineXKBSym("percent","U0025")
 +;  DefineXKBSym("ampersand","U0026")
 +;  DefineXKBSym("apostrophe","U0027")
 +;  DefineXKBSym("parenleft","U0028")
 +;  DefineXKBSym("parenright","U0029")
 +;  DefineXKBSym("asterisk","U002A")
 +;  DefineXKBSym("plus","U002B")
 +;  DefineXKBSym("comma","U002C")
 +;  DefineXKBSym("minus","U002D")
 +;  DefineXKBSym("period","U002E")
 +;  DefineXKBSym("slash","U002F")
 +;  DefineXKBSym("0","U0030")
 +;  DefineXKBSym("1","U0031")
 +;  DefineXKBSym("2","U0032")
 +;  DefineXKBSym("3","U0033")
 +;  DefineXKBSym("4","U0034")
 +;  DefineXKBSym("5","U0035")
 +;  DefineXKBSym("6","U0036")
 +;  DefineXKBSym("7","U0037")
 +;  DefineXKBSym("8","U0038")
 +;  DefineXKBSym("9","U0039")
 +;  DefineXKBSym("colon","U003A")
 +;  DefineXKBSym("semicolon","U003B")
 +;  DefineXKBSym("less","U003C")
 +;  DefineXKBSym("equal","U003D")
 +;  DefineXKBSym("greater","U003E")
 +;  DefineXKBSym("question","U003F")
 +;  DefineXKBSym("at","U0040")
 +;  DefineXKBSym("A","U0041")
 +;  DefineXKBSym("B","U0042")
 +;  DefineXKBSym("C","U0043")
 +;  DefineXKBSym("D","U0044")
 +;  DefineXKBSym("E","U0045")
 +;  DefineXKBSym("F","U0046")
 +;  DefineXKBSym("G","U0047")
 +;  DefineXKBSym("H","U0048")
 +;  DefineXKBSym("I","U0049")
 +;  DefineXKBSym("J","U004A")
 +;  DefineXKBSym("K","U004B")
 +;  DefineXKBSym("L","U004C")
 +;  DefineXKBSym("M","U004D")
 +;  DefineXKBSym("N","U004E")
 +;  DefineXKBSym("O","U004F")
 +;  DefineXKBSym("P","U0050")
 +;  DefineXKBSym("Q","U0051")
 +;  DefineXKBSym("R","U0052")
 +;  DefineXKBSym("S","U0053")
 +;  DefineXKBSym("T","U0054")
 +;  DefineXKBSym("U","U0055")
 +;  DefineXKBSym("V","U0056")
 +;  DefineXKBSym("W","U0057")
 +;  DefineXKBSym("X","U0058")
 +;  DefineXKBSym("Y","U0059")
 +;  DefineXKBSym("Z","U005A")
 +;  DefineXKBSym("bracketleft","U005B")
 +;  DefineXKBSym("backslash","U005C")
 +;  DefineXKBSym("bracketright","U005D")
 +;  DefineXKBSym("asciicircum","U005E")
 +;  DefineXKBSym("underscore","U005F")
 +;  DefineXKBSym("grave","U0060")
 +;  DefineXKBSym("a","U0061")
 +;  DefineXKBSym("b","U0062")
 +;  DefineXKBSym("c","U0063")
 +;  DefineXKBSym("d","U0064")
 +;  DefineXKBSym("e","U0065")
 +;  DefineXKBSym("f","U0066")
 +;  DefineXKBSym("g","U0067")
 +;  DefineXKBSym("h","U0068")
 +;  DefineXKBSym("i","U0069")
 +;  DefineXKBSym("j","U006A")
 +;  DefineXKBSym("k","U006B")
 +;  DefineXKBSym("l","U006C")
 +;  DefineXKBSym("m","U006D")
 +;  DefineXKBSym("n","U006E")
 +;  DefineXKBSym("o","U006F")
 +;  DefineXKBSym("p","U0070")
 +;  DefineXKBSym("q","U0071")
 +;  DefineXKBSym("r","U0072")
 +;  DefineXKBSym("s","U0073")
 +;  DefineXKBSym("t","U0074")
 +;  DefineXKBSym("u","U0075")
 +;  DefineXKBSym("v","U0076")
 +;  DefineXKBSym("w","U0077")
 +;  DefineXKBSym("x","U0078")
 +;  DefineXKBSym("y","U0079")
 +;  DefineXKBSym("z","U007A")
 +;  DefineXKBSym("braceleft","U007B")
 +;  DefineXKBSym("bar","U007C")
 +;  DefineXKBSym("braceright","U007D")
 +;  DefineXKBSym("asciitilde","U007E")
 +  DefineXKBSym("nobreakspace","U00A0")
 +  DefineXKBSym("exclamdown","U00A1")
 +  DefineXKBSym("cent","U00A2")
 +  DefineXKBSym("sterling","U00A3")
 +  DefineXKBSym("currency","U00A4")
 +  DefineXKBSym("yen","U00A5")
 +  DefineXKBSym("brokenbar","U00A6")
 +  DefineXKBSym("section","U00A7")
 +  DefineXKBSym("diaeresis","U00A8")
 +  DefineXKBSym("copyright","U00A9")
 +  DefineXKBSym("ordfeminine","U00AA")
 +  DefineXKBSym("guillemotleft","U00AB")
 +  DefineXKBSym("notsign","U00AC")
 +  DefineXKBSym("hyphen","U00AD")
 +  DefineXKBSym("registered","U00AE")
 +  DefineXKBSym("macron","U00AF")
 +  DefineXKBSym("degree","U00B0")
 +  DefineXKBSym("plusminus","U00B1")
 +  DefineXKBSym("twosuperior","U00B2")
 +  DefineXKBSym("threesuperior","U00B3")
 +  DefineXKBSym("acute","U00B4")
 +  DefineXKBSym("mu","U00B5")
 +  DefineXKBSym("paragraph","U00B6")
 +  DefineXKBSym("periodcentered","U00B7")
 +  DefineXKBSym("cedilla","U00B8")
 +  DefineXKBSym("onesuperior","U00B9")
 +  DefineXKBSym("masculine","U00BA")
 +  DefineXKBSym("guillemotright","U00BB")
 +  DefineXKBSym("onequarter","U00BC")
 +  DefineXKBSym("onehalf","U00BD")
 +  DefineXKBSym("threequarters","U00BE")
 +  DefineXKBSym("questiondown","U00BF")
 +  DefineXKBSym("Agrave","U00C0")
 +  DefineXKBSym("Aacute","U00C1")
 +  DefineXKBSym("Acircumflex","U00C2")
 +  DefineXKBSym("Atilde","U00C3")
 +  DefineXKBSym("Adiaeresis","U00C4")
 +  DefineXKBSym("Aring","U00C5")
 +  DefineXKBSym("AE","U00C6")
 +  DefineXKBSym("Ccedilla","U00C7")
 +  DefineXKBSym("Egrave","U00C8")
 +  DefineXKBSym("Eacute","U00C9")
 +  DefineXKBSym("Ecircumflex","U00CA")
 +  DefineXKBSym("Ediaeresis","U00CB")
 +  DefineXKBSym("Igrave","U00CC")
 +  DefineXKBSym("Iacute","U00CD")
 +  DefineXKBSym("Icircumflex","U00CE")
 +  DefineXKBSym("Idiaeresis","U00CF")
 +  DefineXKBSym("ETH","U00D0")
 +  DefineXKBSym("Eth","U00D0")                    ; deprecated
 +  DefineXKBSym("Ntilde","U00D1")
 +  DefineXKBSym("Ograve","U00D2")
 +  DefineXKBSym("Oacute","U00D3")
 +  DefineXKBSym("Ocircumflex","U00D4")
 +  DefineXKBSym("Otilde","U00D5")
 +  DefineXKBSym("Odiaeresis","U00D6")
 +  DefineXKBSym("multiply","U00D7")
 +  DefineXKBSym("Oslash","U00D8")
 +  DefineXKBSym("Ooblique","U00D8")
 +  DefineXKBSym("Ugrave","U00D9")
 +  DefineXKBSym("Uacute","U00DA")
 +  DefineXKBSym("Ucircumflex","U00DB")
 +  DefineXKBSym("Udiaeresis","U00DC")
 +  DefineXKBSym("Yacute","U00DD")
 +  DefineXKBSym("THORN","U00DE")
 +  DefineXKBSym("Thorn","U00DE")                  ; deprecated
 +  DefineXKBSym("ssharp","U00DF")
 +  DefineXKBSym("agrave","U00E0")
 +  DefineXKBSym("aacute","U00E1")
 +  DefineXKBSym("acircumflex","U00E2")
 +  DefineXKBSym("atilde","U00E3")
 +  DefineXKBSym("adiaeresis","U00E4")
 +  DefineXKBSym("aring","U00E5")
 +  DefineXKBSym("ae","U00E6")
 +  DefineXKBSym("ccedilla","U00E7")
 +  DefineXKBSym("egrave","U00E8")
 +  DefineXKBSym("eacute","U00E9")
 +  DefineXKBSym("ecircumflex","U00EA")
 +  DefineXKBSym("ediaeresis","U00EB")
 +  DefineXKBSym("igrave","U00EC")
 +  DefineXKBSym("iacute","U00ED")
 +  DefineXKBSym("icircumflex","U00EE")
 +  DefineXKBSym("idiaeresis","U00EF")
 +  DefineXKBSym("eth","U00F0")
 +  DefineXKBSym("ntilde","U00F1")
 +  DefineXKBSym("ograve","U00F2")
 +  DefineXKBSym("oacute","U00F3")
 +  DefineXKBSym("ocircumflex","U00F4")
 +  DefineXKBSym("otilde","U00F5")
 +  DefineXKBSym("odiaeresis","U00F6")
 +  DefineXKBSym("division","U00F7")
 +  DefineXKBSym("oslash","U00F8")
 +  DefineXKBSym("ooblique","U00F8")
 +  DefineXKBSym("ugrave","U00F9")
 +  DefineXKBSym("uacute","U00FA")
 +  DefineXKBSym("ucircumflex","U00FB")
 +  DefineXKBSym("udiaeresis","U00FC")
 +  DefineXKBSym("yacute","U00FD")
 +  DefineXKBSym("thorn","U00FE")
 +  DefineXKBSym("ydiaeresis","U00FF")
 +  DefineXKBSym("Aogonek","U0104")
 +  DefineXKBSym("breve","U02D8")
 +  DefineXKBSym("Lstroke","U0141")
 +  DefineXKBSym("Lcaron","U013D")
 +  DefineXKBSym("Sacute","U015A")
 +  DefineXKBSym("Scaron","U0160")
 +  DefineXKBSym("Scedilla","U015E")
 +  DefineXKBSym("Tcaron","U0164")
 +  DefineXKBSym("Zacute","U0179")
 +  DefineXKBSym("Zcaron","U017D")
 +  DefineXKBSym("Zabovedot","U017B")
 +  DefineXKBSym("aogonek","U0105")
 +  DefineXKBSym("ogonek","U02DB")
 +  DefineXKBSym("lstroke","U0142")
 +  DefineXKBSym("lcaron","U013E")
 +  DefineXKBSym("sacute","U015B")
 +  DefineXKBSym("caron","U02C7")
 +  DefineXKBSym("scaron","U0161")
 +  DefineXKBSym("scedilla","U015F")
 +  DefineXKBSym("tcaron","U0165")
 +  DefineXKBSym("zacute","U017A")
 +  DefineXKBSym("doubleacute","U02DD")
 +  DefineXKBSym("zcaron","U017E")
 +  DefineXKBSym("zabovedot","U017C")
 +  DefineXKBSym("Racute","U0154")
 +  DefineXKBSym("Abreve","U0102")
 +  DefineXKBSym("Lacute","U0139")
 +  DefineXKBSym("Cacute","U0106")
 +  DefineXKBSym("Ccaron","U010C")
 +  DefineXKBSym("Eogonek","U0118")
 +  DefineXKBSym("Ecaron","U011A")
 +  DefineXKBSym("Dcaron","U010E")
 +  DefineXKBSym("Dstroke","U0110")
 +  DefineXKBSym("Nacute","U0143")
 +  DefineXKBSym("Ncaron","U0147")
 +  DefineXKBSym("Odoubleacute","U0150")
 +  DefineXKBSym("Rcaron","U0158")
 +  DefineXKBSym("Uring","U016E")
 +  DefineXKBSym("Udoubleacute","U0170")
 +  DefineXKBSym("Tcedilla","U0162")
 +  DefineXKBSym("racute","U0155")
 +  DefineXKBSym("abreve","U0103")
 +  DefineXKBSym("lacute","U013A")
 +  DefineXKBSym("cacute","U0107")
 +  DefineXKBSym("ccaron","U010D")
 +  DefineXKBSym("eogonek","U0119")
 +  DefineXKBSym("ecaron","U011B")
 +  DefineXKBSym("dcaron","U010F")
 +  DefineXKBSym("dstroke","U0111")
 +  DefineXKBSym("nacute","U0144")
 +  DefineXKBSym("ncaron","U0148")
 +  DefineXKBSym("odoubleacute","U0151")
 +  DefineXKBSym("udoubleacute","U0171")
 +  DefineXKBSym("rcaron","U0159")
 +  DefineXKBSym("uring","U016F")
 +  DefineXKBSym("tcedilla","U0163")
 +  DefineXKBSym("abovedot","U02D9")
 +  DefineXKBSym("Hstroke","U0126")
 +  DefineXKBSym("Hcircumflex","U0124")
 +  DefineXKBSym("Iabovedot","U0130")
 +  DefineXKBSym("Gbreve","U011E")
 +  DefineXKBSym("Jcircumflex","U0134")
 +  DefineXKBSym("hstroke","U0127")
 +  DefineXKBSym("hcircumflex","U0125")
 +  DefineXKBSym("idotless","U0131")
 +  DefineXKBSym("gbreve","U011F")
 +  DefineXKBSym("jcircumflex","U0135")
 +  DefineXKBSym("Cabovedot","U010A")
 +  DefineXKBSym("Ccircumflex","U0108")
 +  DefineXKBSym("Gabovedot","U0120")
 +  DefineXKBSym("Gcircumflex","U011C")
 +  DefineXKBSym("Ubreve","U016C")
 +  DefineXKBSym("Scircumflex","U015C")
 +  DefineXKBSym("cabovedot","U010B")
 +  DefineXKBSym("ccircumflex","U0109")
 +  DefineXKBSym("gabovedot","U0121")
 +  DefineXKBSym("gcircumflex","U011D")
 +  DefineXKBSym("ubreve","U016D")
 +  DefineXKBSym("scircumflex","U015D")
 +  DefineXKBSym("kra","U0138")
 +  DefineXKBSym("Rcedilla","U0156")
 +  DefineXKBSym("Itilde","U0128")
 +  DefineXKBSym("Lcedilla","U013B")
 +  DefineXKBSym("Emacron","U0112")
 +  DefineXKBSym("Gcedilla","U0122")
 +  DefineXKBSym("Tslash","U0166")
 +  DefineXKBSym("rcedilla","U0157")
 +  DefineXKBSym("itilde","U0129")
 +  DefineXKBSym("lcedilla","U013C")
 +  DefineXKBSym("emacron","U0113")
 +  DefineXKBSym("gcedilla","U0123")
 +  DefineXKBSym("tslash","U0167")
 +  DefineXKBSym("ENG","U014A")
 +  DefineXKBSym("eng","U014B")
 +  DefineXKBSym("Amacron","U0100")
 +  DefineXKBSym("Iogonek","U012E")
 +  DefineXKBSym("Eabovedot","U0116")
 +  DefineXKBSym("Imacron","U012A")
 +  DefineXKBSym("Ncedilla","U0145")
 +  DefineXKBSym("Omacron","U014C")
 +  DefineXKBSym("Kcedilla","U0136")
 +  DefineXKBSym("Uogonek","U0172")
 +  DefineXKBSym("Utilde","U0168")
 +  DefineXKBSym("Umacron","U016A")
 +  DefineXKBSym("amacron","U0101")
 +  DefineXKBSym("iogonek","U012F")
 +  DefineXKBSym("eabovedot","U0117")
 +  DefineXKBSym("imacron","U012B")
 +  DefineXKBSym("ncedilla","U0146")
 +  DefineXKBSym("omacron","U014D")
 +  DefineXKBSym("kcedilla","U0137")
 +  DefineXKBSym("uogonek","U0173")
 +  DefineXKBSym("utilde","U0169")
 +  DefineXKBSym("umacron","U016B")
 +  DefineXKBSym("Babovedot","U1E02")
 +  DefineXKBSym("babovedot","U1E03")
 +  DefineXKBSym("Dabovedot","U1E0A")
 +  DefineXKBSym("Wgrave","U1E80")
 +  DefineXKBSym("Wacute","U1E82")
 +  DefineXKBSym("dabovedot","U1E0B")
 +  DefineXKBSym("Ygrave","U1EF2")
 +  DefineXKBSym("Fabovedot","U1E1E")
 +  DefineXKBSym("fabovedot","U1E1F")
 +  DefineXKBSym("Mabovedot","U1E40")
 +  DefineXKBSym("mabovedot","U1E41")
 +  DefineXKBSym("Pabovedot","U1E56")
 +  DefineXKBSym("wgrave","U1E81")
 +  DefineXKBSym("pabovedot","U1E57")
 +  DefineXKBSym("wacute","U1E83")
 +  DefineXKBSym("Sabovedot","U1E60")
 +  DefineXKBSym("ygrave","U1EF3")
 +  DefineXKBSym("Wdiaeresis","U1E84")
 +  DefineXKBSym("wdiaeresis","U1E85")
 +  DefineXKBSym("sabovedot","U1E61")
 +  DefineXKBSym("Wcircumflex","U0174")
 +  DefineXKBSym("Tabovedot","U1E6A")
 +  DefineXKBSym("Ycircumflex","U0176")
 +  DefineXKBSym("wcircumflex","U0175")
 +  DefineXKBSym("tabovedot","U1E6B")
 +  DefineXKBSym("ycircumflex","U0177")
 +  DefineXKBSym("OE","U0152")
 +  DefineXKBSym("oe","U0153")
 +  DefineXKBSym("Ydiaeresis","U0178")
 +  DefineXKBSym("overline","U203E")
 +  DefineXKBSym("kana_fullstop","U3002")
 +  DefineXKBSym("kana_openingbracket","U300C")
 +  DefineXKBSym("kana_closingbracket","U300D")
 +  DefineXKBSym("kana_comma","U3001")
 +  DefineXKBSym("kana_conjunctive","U30FB")
 +  DefineXKBSym("kana_WO","U30F2")
 +  DefineXKBSym("kana_a","U30A1")
 +  DefineXKBSym("kana_i","U30A3")
 +  DefineXKBSym("kana_u","U30A5")
 +  DefineXKBSym("kana_e","U30A7")
 +  DefineXKBSym("kana_o","U30A9")
 +  DefineXKBSym("kana_ya","U30E3")
 +  DefineXKBSym("kana_yu","U30E5")
 +  DefineXKBSym("kana_yo","U30E7")
 +  DefineXKBSym("kana_tsu","U30C3")
 +  DefineXKBSym("prolongedsound","U30FC")
 +  DefineXKBSym("kana_A","U30A2")
 +  DefineXKBSym("kana_I","U30A4")
 +  DefineXKBSym("kana_U","U30A6")
 +  DefineXKBSym("kana_E","U30A8")
 +  DefineXKBSym("kana_O","U30AA")
 +  DefineXKBSym("kana_KA","U30AB")
 +  DefineXKBSym("kana_KI","U30AD")
 +  DefineXKBSym("kana_KU","U30AF")
 +  DefineXKBSym("kana_KE","U30B1")
 +  DefineXKBSym("kana_KO","U30B3")
 +  DefineXKBSym("kana_SA","U30B5")
 +  DefineXKBSym("kana_SHI","U30B7")
 +  DefineXKBSym("kana_SU","U30B9")
 +  DefineXKBSym("kana_SE","U30BB")
 +  DefineXKBSym("kana_SO","U30BD")
 +  DefineXKBSym("kana_TA","U30BF")
 +  DefineXKBSym("kana_CHI","U30C1")
 +  DefineXKBSym("kana_TSU","U30C4")
 +  DefineXKBSym("kana_TE","U30C6")
 +  DefineXKBSym("kana_TO","U30C8")
 +  DefineXKBSym("kana_NA","U30CA")
 +  DefineXKBSym("kana_NI","U30CB")
 +  DefineXKBSym("kana_NU","U30CC")
 +  DefineXKBSym("kana_NE","U30CD")
 +  DefineXKBSym("kana_NO","U30CE")
 +  DefineXKBSym("kana_HA","U30CF")
 +  DefineXKBSym("kana_HI","U30D2")
 +  DefineXKBSym("kana_FU","U30D5")
 +  DefineXKBSym("kana_HE","U30D8")
 +  DefineXKBSym("kana_HO","U30DB")
 +  DefineXKBSym("kana_MA","U30DE")
 +  DefineXKBSym("kana_MI","U30DF")
 +  DefineXKBSym("kana_MU","U30E0")
 +  DefineXKBSym("kana_ME","U30E1")
 +  DefineXKBSym("kana_MO","U30E2")
 +  DefineXKBSym("kana_YA","U30E4")
 +  DefineXKBSym("kana_YU","U30E6")
 +  DefineXKBSym("kana_YO","U30E8")
 +  DefineXKBSym("kana_RA","U30E9")
 +  DefineXKBSym("kana_RI","U30EA")
 +  DefineXKBSym("kana_RU","U30EB")
 +  DefineXKBSym("kana_RE","U30EC")
 +  DefineXKBSym("kana_RO","U30ED")
 +  DefineXKBSym("kana_WA","U30EF")
 +  DefineXKBSym("kana_N","U30F3")
 +  DefineXKBSym("voicedsound","U309B")
 +  DefineXKBSym("semivoicedsound","U309C")
 +  DefineXKBSym("Farsi_0","U06F0")
 +  DefineXKBSym("Farsi_1","U06F1")
 +  DefineXKBSym("Farsi_2","U06F2")
 +  DefineXKBSym("Farsi_3","U06F3")
 +  DefineXKBSym("Farsi_4","U06F4")
 +  DefineXKBSym("Farsi_5","U06F5")
 +  DefineXKBSym("Farsi_6","U06F6")
 +  DefineXKBSym("Farsi_7","U06F7")
 +  DefineXKBSym("Farsi_8","U06F8")
 +  DefineXKBSym("Farsi_9","U06F9")
 +  DefineXKBSym("Arabic_percent","U066A")
 +  DefineXKBSym("Arabic_superscript_alef","U0670")
 +  DefineXKBSym("Arabic_tteh","U0679")
 +  DefineXKBSym("Arabic_peh","U067E")
 +  DefineXKBSym("Arabic_tcheh","U0686")
 +  DefineXKBSym("Arabic_ddal","U0688")
 +  DefineXKBSym("Arabic_rreh","U0691")
 +  DefineXKBSym("Arabic_comma","U060C")
 +  DefineXKBSym("Arabic_fullstop","U06D4")
 +  DefineXKBSym("Arabic_0","U0660")
 +  DefineXKBSym("Arabic_1","U0661")
 +  DefineXKBSym("Arabic_2","U0662")
 +  DefineXKBSym("Arabic_3","U0663")
 +  DefineXKBSym("Arabic_4","U0664")
 +  DefineXKBSym("Arabic_5","U0665")
 +  DefineXKBSym("Arabic_6","U0666")
 +  DefineXKBSym("Arabic_7","U0667")
 +  DefineXKBSym("Arabic_8","U0668")
 +  DefineXKBSym("Arabic_9","U0669")
 +  DefineXKBSym("Arabic_semicolon","U061B")
 +  DefineXKBSym("Arabic_question_mark","U061F")
 +  DefineXKBSym("Arabic_hamza","U0621")
 +  DefineXKBSym("Arabic_maddaonalef","U0622")
 +  DefineXKBSym("Arabic_hamzaonalef","U0623")
 +  DefineXKBSym("Arabic_hamzaonwaw","U0624")
 +  DefineXKBSym("Arabic_hamzaunderalef","U0625")
 +  DefineXKBSym("Arabic_hamzaonyeh","U0626")
 +  DefineXKBSym("Arabic_alef","U0627")
 +  DefineXKBSym("Arabic_beh","U0628")
 +  DefineXKBSym("Arabic_tehmarbuta","U0629")
 +  DefineXKBSym("Arabic_teh","U062A")
 +  DefineXKBSym("Arabic_theh","U062B")
 +  DefineXKBSym("Arabic_jeem","U062C")
 +  DefineXKBSym("Arabic_hah","U062D")
 +  DefineXKBSym("Arabic_khah","U062E")
 +  DefineXKBSym("Arabic_dal","U062F")
 +  DefineXKBSym("Arabic_thal","U0630")
 +  DefineXKBSym("Arabic_ra","U0631")
 +  DefineXKBSym("Arabic_zain","U0632")
 +  DefineXKBSym("Arabic_seen","U0633")
 +  DefineXKBSym("Arabic_sheen","U0634")
 +  DefineXKBSym("Arabic_sad","U0635")
 +  DefineXKBSym("Arabic_dad","U0636")
 +  DefineXKBSym("Arabic_tah","U0637")
 +  DefineXKBSym("Arabic_zah","U0638")
 +  DefineXKBSym("Arabic_ain","U0639")
 +  DefineXKBSym("Arabic_ghain","U063A")
 +  DefineXKBSym("Arabic_tatweel","U0640")
 +  DefineXKBSym("Arabic_feh","U0641")
 +  DefineXKBSym("Arabic_qaf","U0642")
 +  DefineXKBSym("Arabic_kaf","U0643")
 +  DefineXKBSym("Arabic_lam","U0644")
 +  DefineXKBSym("Arabic_meem","U0645")
 +  DefineXKBSym("Arabic_noon","U0646")
 +  DefineXKBSym("Arabic_ha","U0647")
 +  DefineXKBSym("Arabic_waw","U0648")
 +  DefineXKBSym("Arabic_alefmaksura","U0649")
 +  DefineXKBSym("Arabic_yeh","U064A")
 +  DefineXKBSym("Arabic_fathatan","U064B")
 +  DefineXKBSym("Arabic_dammatan","U064C")
 +  DefineXKBSym("Arabic_kasratan","U064D")
 +  DefineXKBSym("Arabic_fatha","U064E")
 +  DefineXKBSym("Arabic_damma","U064F")
 +  DefineXKBSym("Arabic_kasra","U0650")
 +  DefineXKBSym("Arabic_shadda","U0651")
 +  DefineXKBSym("Arabic_sukun","U0652")
 +  DefineXKBSym("Arabic_madda_above","U0653")
 +  DefineXKBSym("Arabic_hamza_above","U0654")
 +  DefineXKBSym("Arabic_hamza_below","U0655")
 +  DefineXKBSym("Arabic_jeh","U0698")
 +  DefineXKBSym("Arabic_veh","U06A4")
 +  DefineXKBSym("Arabic_keheh","U06A9")
 +  DefineXKBSym("Arabic_gaf","U06AF")
 +  DefineXKBSym("Arabic_noon_ghunna","U06BA")
 +  DefineXKBSym("Arabic_heh_doachashmee","U06BE")
 +  DefineXKBSym("Farsi_yeh","U06CC")
 +  DefineXKBSym("Arabic_farsi_yeh","U06CC")
 +  DefineXKBSym("Arabic_yeh_baree","U06D2")
 +  DefineXKBSym("Arabic_heh_goal","U06C1")
 +  DefineXKBSym("Cyrillic_GHE_bar","U0492")
 +  DefineXKBSym("Cyrillic_ghe_bar","U0493")
 +  DefineXKBSym("Cyrillic_ZHE_descender","U0496")
 +  DefineXKBSym("Cyrillic_zhe_descender","U0497")
 +  DefineXKBSym("Cyrillic_KA_descender","U049A")
 +  DefineXKBSym("Cyrillic_ka_descender","U049B")
 +  DefineXKBSym("Cyrillic_KA_vertstroke","U049C")
 +  DefineXKBSym("Cyrillic_ka_vertstroke","U049D")
 +  DefineXKBSym("Cyrillic_EN_descender","U04A2")
 +  DefineXKBSym("Cyrillic_en_descender","U04A3")
 +  DefineXKBSym("Cyrillic_U_straight","U04AE")
 +  DefineXKBSym("Cyrillic_u_straight","U04AF")
 +  DefineXKBSym("Cyrillic_U_straight_bar","U04B0")
 +  DefineXKBSym("Cyrillic_u_straight_bar","U04B1")
 +  DefineXKBSym("Cyrillic_HA_descender","U04B2")
 +  DefineXKBSym("Cyrillic_ha_descender","U04B3")
 +  DefineXKBSym("Cyrillic_CHE_descender","U04B6")
 +  DefineXKBSym("Cyrillic_che_descender","U04B7")
 +  DefineXKBSym("Cyrillic_CHE_vertstroke","U04B8")
 +  DefineXKBSym("Cyrillic_che_vertstroke","U04B9")
 +  DefineXKBSym("Cyrillic_SHHA","U04BA")
 +  DefineXKBSym("Cyrillic_shha","U04BB")
 +  DefineXKBSym("Cyrillic_SCHWA","U04D8")
 +  DefineXKBSym("Cyrillic_schwa","U04D9")
 +  DefineXKBSym("Cyrillic_I_macron","U04E2")
 +  DefineXKBSym("Cyrillic_i_macron","U04E3")
 +  DefineXKBSym("Cyrillic_O_bar","U04E8")
 +  DefineXKBSym("Cyrillic_o_bar","U04E9")
 +  DefineXKBSym("Cyrillic_U_macron","U04EE")
 +  DefineXKBSym("Cyrillic_u_macron","U04EF")
 +  DefineXKBSym("Serbian_dje","U0452")
 +  DefineXKBSym("Macedonia_gje","U0453")
 +  DefineXKBSym("Cyrillic_io","U0451")
 +  DefineXKBSym("Ukrainian_ie","U0454")
 +  DefineXKBSym("Macedonia_dse","U0455")
 +  DefineXKBSym("Ukrainian_i","U0456")
 +  DefineXKBSym("Ukrainian_yi","U0457")
 +  DefineXKBSym("Cyrillic_je","U0458")
 +  DefineXKBSym("Cyrillic_lje","U0459")
 +  DefineXKBSym("Cyrillic_nje","U045A")
 +  DefineXKBSym("Serbian_tshe","U045B")
 +  DefineXKBSym("Macedonia_kje","U045C")
 +  DefineXKBSym("Ukrainian_ghe_with_upturn","U0491")
 +  DefineXKBSym("Byelorussian_shortu","U045E")
 +  DefineXKBSym("Cyrillic_dzhe","U045F")
 +  DefineXKBSym("numerosign","U2116")
 +  DefineXKBSym("Serbian_DJE","U0402")
 +  DefineXKBSym("Macedonia_GJE","U0403")
 +  DefineXKBSym("Cyrillic_IO","U0401")
 +  DefineXKBSym("Ukrainian_IE","U0404")
 +  DefineXKBSym("Macedonia_DSE","U0405")
 +  DefineXKBSym("Ukrainian_I","U0406")
 +  DefineXKBSym("Ukrainian_YI","U0407")
 +  DefineXKBSym("Cyrillic_JE","U0408")
 +  DefineXKBSym("Cyrillic_LJE","U0409")
 +  DefineXKBSym("Cyrillic_NJE","U040A")
 +  DefineXKBSym("Serbian_TSHE","U040B")
 +  DefineXKBSym("Macedonia_KJE","U040C")
 +  DefineXKBSym("Ukrainian_GHE_WITH_UPTURN","U0490")
 +  DefineXKBSym("Byelorussian_SHORTU","U040E")
 +  DefineXKBSym("Cyrillic_DZHE","U040F")
 +  DefineXKBSym("Cyrillic_yu","U044E")
 +  DefineXKBSym("Cyrillic_a","U0430")
 +  DefineXKBSym("Cyrillic_be","U0431")
 +  DefineXKBSym("Cyrillic_tse","U0446")
 +  DefineXKBSym("Cyrillic_de","U0434")
 +  DefineXKBSym("Cyrillic_ie","U0435")
 +  DefineXKBSym("Cyrillic_ef","U0444")
 +  DefineXKBSym("Cyrillic_ghe","U0433")
 +  DefineXKBSym("Cyrillic_ha","U0445")
 +  DefineXKBSym("Cyrillic_i","U0438")
 +  DefineXKBSym("Cyrillic_shorti","U0439")
 +  DefineXKBSym("Cyrillic_ka","U043A")
 +  DefineXKBSym("Cyrillic_el","U043B")
 +  DefineXKBSym("Cyrillic_em","U043C")
 +  DefineXKBSym("Cyrillic_en","U043D")
 +  DefineXKBSym("Cyrillic_o","U043E")
 +  DefineXKBSym("Cyrillic_pe","U043F")
 +  DefineXKBSym("Cyrillic_ya","U044F")
 +  DefineXKBSym("Cyrillic_er","U0440")
 +  DefineXKBSym("Cyrillic_es","U0441")
 +  DefineXKBSym("Cyrillic_te","U0442")
 +  DefineXKBSym("Cyrillic_u","U0443")
 +  DefineXKBSym("Cyrillic_zhe","U0436")
 +  DefineXKBSym("Cyrillic_ve","U0432")
 +  DefineXKBSym("Cyrillic_softsign","U044C")
 +  DefineXKBSym("Cyrillic_yeru","U044B")
 +  DefineXKBSym("Cyrillic_ze","U0437")
 +  DefineXKBSym("Cyrillic_sha","U0448")
 +  DefineXKBSym("Cyrillic_e","U044D")
 +  DefineXKBSym("Cyrillic_shcha","U0449")
 +  DefineXKBSym("Cyrillic_che","U0447")
 +  DefineXKBSym("Cyrillic_hardsign","U044A")
 +  DefineXKBSym("Cyrillic_YU","U042E")
 +  DefineXKBSym("Cyrillic_A","U0410")
 +  DefineXKBSym("Cyrillic_BE","U0411")
 +  DefineXKBSym("Cyrillic_TSE","U0426")
 +  DefineXKBSym("Cyrillic_DE","U0414")
 +  DefineXKBSym("Cyrillic_IE","U0415")
 +  DefineXKBSym("Cyrillic_EF","U0424")
 +  DefineXKBSym("Cyrillic_GHE","U0413")
 +  DefineXKBSym("Cyrillic_HA","U0425")
 +  DefineXKBSym("Cyrillic_I","U0418")
 +  DefineXKBSym("Cyrillic_SHORTI","U0419")
 +  DefineXKBSym("Cyrillic_KA","U041A")
 +  DefineXKBSym("Cyrillic_EL","U041B")
 +  DefineXKBSym("Cyrillic_EM","U041C")
 +  DefineXKBSym("Cyrillic_EN","U041D")
 +  DefineXKBSym("Cyrillic_O","U041E")
 +  DefineXKBSym("Cyrillic_PE","U041F")
 +  DefineXKBSym("Cyrillic_YA","U042F")
 +  DefineXKBSym("Cyrillic_ER","U0420")
 +  DefineXKBSym("Cyrillic_ES","U0421")
 +  DefineXKBSym("Cyrillic_TE","U0422")
 +  DefineXKBSym("Cyrillic_U","U0423")
 +  DefineXKBSym("Cyrillic_ZHE","U0416")
 +  DefineXKBSym("Cyrillic_VE","U0412")
 +  DefineXKBSym("Cyrillic_SOFTSIGN","U042C")
 +  DefineXKBSym("Cyrillic_YERU","U042B")
 +  DefineXKBSym("Cyrillic_ZE","U0417")
 +  DefineXKBSym("Cyrillic_SHA","U0428")
 +  DefineXKBSym("Cyrillic_E","U042D")
 +  DefineXKBSym("Cyrillic_SHCHA","U0429")
 +  DefineXKBSym("Cyrillic_CHE","U0427")
 +  DefineXKBSym("Cyrillic_HARDSIGN","U042A")
 +  DefineXKBSym("Greek_ALPHAaccent","U0386")
 +  DefineXKBSym("Greek_EPSILONaccent","U0388")
 +  DefineXKBSym("Greek_ETAaccent","U0389")
 +  DefineXKBSym("Greek_IOTAaccent","U038A")
 +  DefineXKBSym("Greek_IOTAdieresis","U03AA")
 +  DefineXKBSym("Greek_OMICRONaccent","U038C")
 +  DefineXKBSym("Greek_UPSILONaccent","U038E")
 +  DefineXKBSym("Greek_UPSILONdieresis","U03AB")
 +  DefineXKBSym("Greek_OMEGAaccent","U038F")
 +  DefineXKBSym("Greek_accentdieresis","U0385")
 +  DefineXKBSym("Greek_horizbar","U2015")
 +  DefineXKBSym("Greek_alphaaccent","U03AC")
 +  DefineXKBSym("Greek_epsilonaccent","U03AD")
 +  DefineXKBSym("Greek_etaaccent","U03AE")
 +  DefineXKBSym("Greek_iotaaccent","U03AF")
 +  DefineXKBSym("Greek_iotadieresis","U03CA")
 +  DefineXKBSym("Greek_iotaaccentdieresis","U0390")
 +  DefineXKBSym("Greek_omicronaccent","U03CC")
 +  DefineXKBSym("Greek_upsilonaccent","U03CD")
 +  DefineXKBSym("Greek_upsilondieresis","U03CB")
 +  DefineXKBSym("Greek_upsilonaccentdieresis","U03B0")
 +  DefineXKBSym("Greek_omegaaccent","U03CE")
 +  DefineXKBSym("Greek_ALPHA","U0391")
 +  DefineXKBSym("Greek_BETA","U0392")
 +  DefineXKBSym("Greek_GAMMA","U0393")
 +  DefineXKBSym("Greek_DELTA","U0394")
 +  DefineXKBSym("Greek_EPSILON","U0395")
 +  DefineXKBSym("Greek_ZETA","U0396")
 +  DefineXKBSym("Greek_ETA","U0397")
 +  DefineXKBSym("Greek_THETA","U0398")
 +  DefineXKBSym("Greek_IOTA","U0399")
 +  DefineXKBSym("Greek_KAPPA","U039A")
 +  DefineXKBSym("Greek_LAMDA","U039B")
 +  DefineXKBSym("Greek_LAMBDA","U039B")
 +  DefineXKBSym("Greek_MU","U039C")
 +  DefineXKBSym("Greek_NU","U039D")
 +  DefineXKBSym("Greek_XI","U039E")
 +  DefineXKBSym("Greek_OMICRON","U039F")
 +  DefineXKBSym("Greek_PI","U03A0")
 +  DefineXKBSym("Greek_RHO","U03A1")
 +  DefineXKBSym("Greek_SIGMA","U03A3")
 +  DefineXKBSym("Greek_TAU","U03A4")
 +  DefineXKBSym("Greek_UPSILON","U03A5")
 +  DefineXKBSym("Greek_PHI","U03A6")
 +  DefineXKBSym("Greek_CHI","U03A7")
 +  DefineXKBSym("Greek_PSI","U03A8")
 +  DefineXKBSym("Greek_OMEGA","U03A9")
 +  DefineXKBSym("Greek_alpha","U03B1")
 +  DefineXKBSym("Greek_beta","U03B2")
 +  DefineXKBSym("Greek_gamma","U03B3")
 +  DefineXKBSym("Greek_delta","U03B4")
 +  DefineXKBSym("Greek_epsilon","U03B5")
 +  DefineXKBSym("Greek_zeta","U03B6")
 +  DefineXKBSym("Greek_eta","U03B7")
 +  DefineXKBSym("Greek_theta","U03B8")
 +  DefineXKBSym("Greek_iota","U03B9")
 +  DefineXKBSym("Greek_kappa","U03BA")
 +  DefineXKBSym("Greek_lamda","U03BB")
 +  DefineXKBSym("Greek_lambda","U03BB")
 +  DefineXKBSym("Greek_mu","U03BC")
 +  DefineXKBSym("Greek_nu","U03BD")
 +  DefineXKBSym("Greek_xi","U03BE")
 +  DefineXKBSym("Greek_omicron","U03BF")
 +  DefineXKBSym("Greek_pi","U03C0")
 +  DefineXKBSym("Greek_rho","U03C1")
 +  DefineXKBSym("Greek_sigma","U03C3")
 +  DefineXKBSym("Greek_finalsmallsigma","U03C2")
 +  DefineXKBSym("Greek_tau","U03C4")
 +  DefineXKBSym("Greek_upsilon","U03C5")
 +  DefineXKBSym("Greek_phi","U03C6")
 +  DefineXKBSym("Greek_chi","U03C7")
 +  DefineXKBSym("Greek_psi","U03C8")
 +  DefineXKBSym("Greek_omega","U03C9")
 +  DefineXKBSym("leftradical","U23B7")
 +  DefineXKBSym("topleftradical","U250C")
 +  DefineXKBSym("horizconnector","U2500")
 +  DefineXKBSym("topintegral","U2320")
 +  DefineXKBSym("botintegral","U2321")
 +  DefineXKBSym("vertconnector","U2502")
 +  DefineXKBSym("topleftsqbracket","U23A1")
 +  DefineXKBSym("botleftsqbracket","U23A3")
 +  DefineXKBSym("toprightsqbracket","U23A4")
 +  DefineXKBSym("botrightsqbracket","U23A6")
 +  DefineXKBSym("topleftparens","U239B")
 +  DefineXKBSym("botleftparens","U239D")
 +  DefineXKBSym("toprightparens","U239E")
 +  DefineXKBSym("botrightparens","U23A0")
 +  DefineXKBSym("leftmiddlecurlybrace","U23A8")
 +  DefineXKBSym("rightmiddlecurlybrace","U23AC")
 +  DefineXKBSym("lessthanequal","U2264")
 +  DefineXKBSym("notequal","U2260")
 +  DefineXKBSym("greaterthanequal","U2265")
 +  DefineXKBSym("integral","U222B")
 +  DefineXKBSym("therefore","U2234")
 +  DefineXKBSym("variation","U221D")
 +  DefineXKBSym("infinity","U221E")
 +  DefineXKBSym("nabla","U2207")
 +  DefineXKBSym("approximate","U223C")
 +  DefineXKBSym("similarequal","U2243")
 +  DefineXKBSym("ifonlyif","U21D4")
 +  DefineXKBSym("implies","U21D2")
 +  DefineXKBSym("identical","U2261")
 +  DefineXKBSym("radical","U221A")
 +  DefineXKBSym("includedin","U2282")
 +  DefineXKBSym("includes","U2283")
 +  DefineXKBSym("intersection","U2229")
 +  DefineXKBSym("union","U222A")
 +  DefineXKBSym("logicaland","U2227")
 +  DefineXKBSym("logicalor","U2228")
 +  DefineXKBSym("partialderivative","U2202")
 +  DefineXKBSym("function","U0192")
 +  DefineXKBSym("leftarrow","U2190")
 +  DefineXKBSym("uparrow","U2191")
 +  DefineXKBSym("rightarrow","U2192")
 +  DefineXKBSym("downarrow","U2193")
 +  DefineXKBSym("soliddiamond","U25C6")
 +  DefineXKBSym("checkerboard","U2592")
 +  DefineXKBSym("ht","U2409")
 +  DefineXKBSym("ff","U240C")
 +  DefineXKBSym("cr","U240D")
 +  DefineXKBSym("lf","U240A")
 +  DefineXKBSym("nl","U2424")
 +  DefineXKBSym("vt","U240B")
 +  DefineXKBSym("lowrightcorner","U2518")
 +  DefineXKBSym("uprightcorner","U2510")
 +  DefineXKBSym("upleftcorner","U250C")
 +  DefineXKBSym("lowleftcorner","U2514")
 +  DefineXKBSym("crossinglines","U253C")
 +  DefineXKBSym("horizlinescan1","U23BA")
 +  DefineXKBSym("horizlinescan3","U23BB")
 +  DefineXKBSym("horizlinescan5","U2500")
 +  DefineXKBSym("horizlinescan7","U23BC")
 +  DefineXKBSym("horizlinescan9","U23BD")
 +  DefineXKBSym("leftt","U251C")
 +  DefineXKBSym("rightt","U2524")
 +  DefineXKBSym("bott","U2534")
 +  DefineXKBSym("topt","U252C")
 +  DefineXKBSym("vertbar","U2502")
 +  DefineXKBSym("emspace","U2003")
 +  DefineXKBSym("enspace","U2002")
 +  DefineXKBSym("em3space","U2004")
 +  DefineXKBSym("em4space","U2005")
 +  DefineXKBSym("digitspace","U2007")
 +  DefineXKBSym("punctspace","U2008")
 +  DefineXKBSym("thinspace","U2009")
 +  DefineXKBSym("hairspace","U200A")
 +  DefineXKBSym("emdash","U2014")
 +  DefineXKBSym("endash","U2013")
 +  DefineXKBSym("signifblank","U2423")
 +  DefineXKBSym("ellipsis","U2026")
 +  DefineXKBSym("doubbaselinedot","U2025")
 +  DefineXKBSym("onethird","U2153")
 +  DefineXKBSym("twothirds","U2154")
 +  DefineXKBSym("onefifth","U2155")
 +  DefineXKBSym("twofifths","U2156")
 +  DefineXKBSym("threefifths","U2157")
 +  DefineXKBSym("fourfifths","U2158")
 +  DefineXKBSym("onesixth","U2159")
 +  DefineXKBSym("fivesixths","U215A")
 +  DefineXKBSym("careof","U2105")
 +  DefineXKBSym("figdash","U2012")
 +  DefineXKBSym("leftanglebracket","U27E8")
 +  DefineXKBSym("decimalpoint","U002E")
 +  DefineXKBSym("rightanglebracket","U27E9")
 +  DefineXKBSym("oneeighth","U215B")
 +  DefineXKBSym("threeeighths","U215C")
 +  DefineXKBSym("fiveeighths","U215D")
 +  DefineXKBSym("seveneighths","U215E")
 +  DefineXKBSym("trademark","U2122")
 +  DefineXKBSym("signaturemark","U2613")
 +  DefineXKBSym("leftopentriangle","U25C1")
 +  DefineXKBSym("rightopentriangle","U25B7")
 +  DefineXKBSym("emopencircle","U25CB")
 +  DefineXKBSym("emopenrectangle","U25AF")
 +  DefineXKBSym("leftsinglequotemark","U2018")
 +  DefineXKBSym("rightsinglequotemark","U2019")
 +  DefineXKBSym("leftdoublequotemark","U201C")
 +  DefineXKBSym("rightdoublequotemark","U201D")
 +  DefineXKBSym("prescription","U211E")
 +  DefineXKBSym("minutes","U2032")
 +  DefineXKBSym("seconds","U2033")
 +  DefineXKBSym("latincross","U271D")
 +  DefineXKBSym("filledrectbullet","U25AC")
 +  DefineXKBSym("filledlefttribullet","U25C0")
 +  DefineXKBSym("filledrighttribullet","U25B6")
 +  DefineXKBSym("emfilledcircle","U25CF")
 +  DefineXKBSym("emfilledrect","U25AE")
 +  DefineXKBSym("enopencircbullet","U25E6")
 +  DefineXKBSym("enopensquarebullet","U25AB")
 +  DefineXKBSym("openrectbullet","U25AD")
 +  DefineXKBSym("opentribulletup","U25B3")
 +  DefineXKBSym("opentribulletdown","U25BD")
 +  DefineXKBSym("openstar","U2606")
 +  DefineXKBSym("enfilledcircbullet","U2022")
 +  DefineXKBSym("enfilledsqbullet","U25AA")
 +  DefineXKBSym("filledtribulletup","U25B2")
 +  DefineXKBSym("filledtribulletdown","U25BC")
 +  DefineXKBSym("leftpointer","U261C")
 +  DefineXKBSym("rightpointer","U261E")
 +  DefineXKBSym("club","U2663")
 +  DefineXKBSym("diamond","U2666")
 +  DefineXKBSym("heart","U2665")
 +  DefineXKBSym("maltesecross","U2720")
 +  DefineXKBSym("dagger","U2020")
 +  DefineXKBSym("doubledagger","U2021")
 +  DefineXKBSym("checkmark","U2713")
 +  DefineXKBSym("ballotcross","U2717")
 +  DefineXKBSym("musicalsharp","U266F")
 +  DefineXKBSym("musicalflat","U266D")
 +  DefineXKBSym("malesymbol","U2642")
 +  DefineXKBSym("femalesymbol","U2640")
 +  DefineXKBSym("telephone","U260E")
 +  DefineXKBSym("telephonerecorder","U2315")
 +  DefineXKBSym("phonographcopyright","U2117")
 +  DefineXKBSym("caret","U2038")
 +  DefineXKBSym("singlelowquotemark","U201A")
 +  DefineXKBSym("doublelowquotemark","U201E")
 +  DefineXKBSym("leftcaret","U003C")
 +  DefineXKBSym("rightcaret","U003E")
 +  DefineXKBSym("downcaret","U2228")
 +  DefineXKBSym("upcaret","U2227")
 +  DefineXKBSym("overbar","U00AF")
 +  DefineXKBSym("downtack","U22A5")
 +  DefineXKBSym("upshoe","U2229")
 +  DefineXKBSym("downstile","U230A")
 +  DefineXKBSym("underbar","U005F")
 +  DefineXKBSym("jot","U2218")
 +  DefineXKBSym("quad","U2395")
 +  DefineXKBSym("uptack","U22A4")
 +  DefineXKBSym("circle","U25CB")
 +  DefineXKBSym("upstile","U2308")
 +  DefineXKBSym("downshoe","U222A")
 +  DefineXKBSym("rightshoe","U2283")
 +  DefineXKBSym("leftshoe","U2282")
 +  DefineXKBSym("lefttack","U22A2")
 +  DefineXKBSym("righttack","U22A3")
 +  DefineXKBSym("hebrew_doublelowline","U2017")
 +  DefineXKBSym("hebrew_aleph","U05D0")
 +  DefineXKBSym("hebrew_bet","U05D1")
 +  DefineXKBSym("hebrew_beth","U05D1")                     ; deprecated
 +  DefineXKBSym("hebrew_gimel","U05D2")
 +  DefineXKBSym("hebrew_gimmel","U05D2")                   ; deprecated
 +  DefineXKBSym("hebrew_dalet","U05D3")
 +  DefineXKBSym("hebrew_daleth","U05D3")                   ; deprecated
 +  DefineXKBSym("hebrew_he","U05D4")
 +  DefineXKBSym("hebrew_waw","U05D5")
 +  DefineXKBSym("hebrew_zain","U05D6")
 +  DefineXKBSym("hebrew_zayin","U05D6")                    ; deprecated
 +  DefineXKBSym("hebrew_chet","U05D7")
 +  DefineXKBSym("hebrew_het","U05D7")                      ; deprecated
 +  DefineXKBSym("hebrew_tet","U05D8")
 +  DefineXKBSym("hebrew_teth","U05D8")                     ; deprecated
 +  DefineXKBSym("hebrew_yod","U05D9")
 +  DefineXKBSym("hebrew_finalkaph","U05DA")
 +  DefineXKBSym("hebrew_kaph","U05DB")
 +  DefineXKBSym("hebrew_lamed","U05DC")
 +  DefineXKBSym("hebrew_finalmem","U05DD")
 +  DefineXKBSym("hebrew_mem","U05DE")
 +  DefineXKBSym("hebrew_finalnun","U05DF")
 +  DefineXKBSym("hebrew_nun","U05E0")
 +  DefineXKBSym("hebrew_samech","U05E1")
 +  DefineXKBSym("hebrew_samekh","U05E1")                   ; deprecated
 +  DefineXKBSym("hebrew_ayin","U05E2")
 +  DefineXKBSym("hebrew_finalpe","U05E3")
 +  DefineXKBSym("hebrew_pe","U05E4")
 +  DefineXKBSym("hebrew_finalzade","U05E5")
 +  DefineXKBSym("hebrew_finalzadi","U05E5")                ; deprecated
 +  DefineXKBSym("hebrew_zade","U05E6")
 +  DefineXKBSym("hebrew_zadi","U05E6")                     ; deprecated
 +  DefineXKBSym("hebrew_qoph","U05E7")
 +  DefineXKBSym("hebrew_kuf","U05E7")                      ; deprecated
 +  DefineXKBSym("hebrew_resh","U05E8")
 +  DefineXKBSym("hebrew_shin","U05E9")
 +  DefineXKBSym("hebrew_taw","U05EA")
 +  DefineXKBSym("hebrew_taf","U05EA")                      ; deprecated
 +  DefineXKBSym("Thai_kokai","U0E01")
 +  DefineXKBSym("Thai_khokhai","U0E02")
 +  DefineXKBSym("Thai_khokhuat","U0E03")
 +  DefineXKBSym("Thai_khokhwai","U0E04")
 +  DefineXKBSym("Thai_khokhon","U0E05")
 +  DefineXKBSym("Thai_khorakhang","U0E06")
 +  DefineXKBSym("Thai_ngongu","U0E07")
 +  DefineXKBSym("Thai_chochan","U0E08")
 +  DefineXKBSym("Thai_choching","U0E09")
 +  DefineXKBSym("Thai_chochang","U0E0A")
 +  DefineXKBSym("Thai_soso","U0E0B")
 +  DefineXKBSym("Thai_chochoe","U0E0C")
 +  DefineXKBSym("Thai_yoying","U0E0D")
 +  DefineXKBSym("Thai_dochada","U0E0E")
 +  DefineXKBSym("Thai_topatak","U0E0F")
 +  DefineXKBSym("Thai_thothan","U0E10")
 +  DefineXKBSym("Thai_thonangmontho","U0E11")
 +  DefineXKBSym("Thai_thophuthao","U0E12")
 +  DefineXKBSym("Thai_nonen","U0E13")
 +  DefineXKBSym("Thai_dodek","U0E14")
 +  DefineXKBSym("Thai_totao","U0E15")
 +  DefineXKBSym("Thai_thothung","U0E16")
 +  DefineXKBSym("Thai_thothahan","U0E17")
 +  DefineXKBSym("Thai_thothong","U0E18")
 +  DefineXKBSym("Thai_nonu","U0E19")
 +  DefineXKBSym("Thai_bobaimai","U0E1A")
 +  DefineXKBSym("Thai_popla","U0E1B")
 +  DefineXKBSym("Thai_phophung","U0E1C")
 +  DefineXKBSym("Thai_fofa","U0E1D")
 +  DefineXKBSym("Thai_phophan","U0E1E")
 +  DefineXKBSym("Thai_fofan","U0E1F")
 +  DefineXKBSym("Thai_phosamphao","U0E20")
 +  DefineXKBSym("Thai_moma","U0E21")
 +  DefineXKBSym("Thai_yoyak","U0E22")
 +  DefineXKBSym("Thai_rorua","U0E23")
 +  DefineXKBSym("Thai_ru","U0E24")
 +  DefineXKBSym("Thai_loling","U0E25")
 +  DefineXKBSym("Thai_lu","U0E26")
 +  DefineXKBSym("Thai_wowaen","U0E27")
 +  DefineXKBSym("Thai_sosala","U0E28")
 +  DefineXKBSym("Thai_sorusi","U0E29")
 +  DefineXKBSym("Thai_sosua","U0E2A")
 +  DefineXKBSym("Thai_hohip","U0E2B")
 +  DefineXKBSym("Thai_lochula","U0E2C")
 +  DefineXKBSym("Thai_oang","U0E2D")
 +  DefineXKBSym("Thai_honokhuk","U0E2E")
 +  DefineXKBSym("Thai_paiyannoi","U0E2F")
 +  DefineXKBSym("Thai_saraa","U0E30")
 +  DefineXKBSym("Thai_maihanakat","U0E31")
 +  DefineXKBSym("Thai_saraaa","U0E32")
 +  DefineXKBSym("Thai_saraam","U0E33")
 +  DefineXKBSym("Thai_sarai","U0E34")
 +  DefineXKBSym("Thai_saraii","U0E35")
 +  DefineXKBSym("Thai_saraue","U0E36")
 +  DefineXKBSym("Thai_sarauee","U0E37")
 +  DefineXKBSym("Thai_sarau","U0E38")
 +  DefineXKBSym("Thai_sarauu","U0E39")
 +  DefineXKBSym("Thai_phinthu","U0E3A")
 +  DefineXKBSym("Thai_baht","U0E3F")
 +  DefineXKBSym("Thai_sarae","U0E40")
 +  DefineXKBSym("Thai_saraae","U0E41")
 +  DefineXKBSym("Thai_sarao","U0E42")
 +  DefineXKBSym("Thai_saraaimaimuan","U0E43")
 +  DefineXKBSym("Thai_saraaimaimalai","U0E44")
 +  DefineXKBSym("Thai_lakkhangyao","U0E45")
 +  DefineXKBSym("Thai_maiyamok","U0E46")
 +  DefineXKBSym("Thai_maitaikhu","U0E47")
 +  DefineXKBSym("Thai_maiek","U0E48")
 +  DefineXKBSym("Thai_maitho","U0E49")
 +  DefineXKBSym("Thai_maitri","U0E4A")
 +  DefineXKBSym("Thai_maichattawa","U0E4B")
 +  DefineXKBSym("Thai_thanthakhat","U0E4C")
 +  DefineXKBSym("Thai_nikhahit","U0E4D")
 +  DefineXKBSym("Thai_leksun","U0E50")
 +  DefineXKBSym("Thai_leknung","U0E51")
 +  DefineXKBSym("Thai_leksong","U0E52")
 +  DefineXKBSym("Thai_leksam","U0E53")
 +  DefineXKBSym("Thai_leksi","U0E54")
 +  DefineXKBSym("Thai_lekha","U0E55")
 +  DefineXKBSym("Thai_lekhok","U0E56")
 +  DefineXKBSym("Thai_lekchet","U0E57")
 +  DefineXKBSym("Thai_lekpaet","U0E58")
 +  DefineXKBSym("Thai_lekkao","U0E59")
 +  DefineXKBSym("Korean_Won","U20A9")
 +  DefineXKBSym("Armenian_ligature_ew","U0587")
 +  DefineXKBSym("Armenian_full_stop","U0589")
 +  DefineXKBSym("Armenian_verjaket","U0589")
 +  DefineXKBSym("Armenian_separation_mark","U055D")
 +  DefineXKBSym("Armenian_but","U055D")
 +  DefineXKBSym("Armenian_hyphen","U058A")
 +  DefineXKBSym("Armenian_yentamna","U058A")
 +  DefineXKBSym("Armenian_exclam","U055C")
 +  DefineXKBSym("Armenian_amanak","U055C")
 +  DefineXKBSym("Armenian_accent","U055B")
 +  DefineXKBSym("Armenian_shesht","U055B")
 +  DefineXKBSym("Armenian_question","U055E")
 +  DefineXKBSym("Armenian_paruyk","U055E")
 +  DefineXKBSym("Armenian_AYB","U0531")
 +  DefineXKBSym("Armenian_ayb","U0561")
 +  DefineXKBSym("Armenian_BEN","U0532")
 +  DefineXKBSym("Armenian_ben","U0562")
 +  DefineXKBSym("Armenian_GIM","U0533")
 +  DefineXKBSym("Armenian_gim","U0563")
 +  DefineXKBSym("Armenian_DA","U0534")
 +  DefineXKBSym("Armenian_da","U0564")
 +  DefineXKBSym("Armenian_YECH","U0535")
 +  DefineXKBSym("Armenian_yech","U0565")
 +  DefineXKBSym("Armenian_ZA","U0536")
 +  DefineXKBSym("Armenian_za","U0566")
 +  DefineXKBSym("Armenian_E","U0537")
 +  DefineXKBSym("Armenian_e","U0567")
 +  DefineXKBSym("Armenian_AT","U0538")
 +  DefineXKBSym("Armenian_at","U0568")
 +  DefineXKBSym("Armenian_TO","U0539")
 +  DefineXKBSym("Armenian_to","U0569")
 +  DefineXKBSym("Armenian_ZHE","U053A")
 +  DefineXKBSym("Armenian_zhe","U056A")
 +  DefineXKBSym("Armenian_INI","U053B")
 +  DefineXKBSym("Armenian_ini","U056B")
 +  DefineXKBSym("Armenian_LYUN","U053C")
 +  DefineXKBSym("Armenian_lyun","U056C")
 +  DefineXKBSym("Armenian_KHE","U053D")
 +  DefineXKBSym("Armenian_khe","U056D")
 +  DefineXKBSym("Armenian_TSA","U053E")
 +  DefineXKBSym("Armenian_tsa","U056E")
 +  DefineXKBSym("Armenian_KEN","U053F")
 +  DefineXKBSym("Armenian_ken","U056F")
 +  DefineXKBSym("Armenian_HO","U0540")
 +  DefineXKBSym("Armenian_ho","U0570")
 +  DefineXKBSym("Armenian_DZA","U0541")
 +  DefineXKBSym("Armenian_dza","U0571")
 +  DefineXKBSym("Armenian_GHAT","U0542")
 +  DefineXKBSym("Armenian_ghat","U0572")
 +  DefineXKBSym("Armenian_TCHE","U0543")
 +  DefineXKBSym("Armenian_tche","U0573")
 +  DefineXKBSym("Armenian_MEN","U0544")
 +  DefineXKBSym("Armenian_men","U0574")
 +  DefineXKBSym("Armenian_HI","U0545")
 +  DefineXKBSym("Armenian_hi","U0575")
 +  DefineXKBSym("Armenian_NU","U0546")
 +  DefineXKBSym("Armenian_nu","U0576")
 +  DefineXKBSym("Armenian_SHA","U0547")
 +  DefineXKBSym("Armenian_sha","U0577")
 +  DefineXKBSym("Armenian_VO","U0548")
 +  DefineXKBSym("Armenian_vo","U0578")
 +  DefineXKBSym("Armenian_CHA","U0549")
 +  DefineXKBSym("Armenian_cha","U0579")
 +  DefineXKBSym("Armenian_PE","U054A")
 +  DefineXKBSym("Armenian_pe","U057A")
 +  DefineXKBSym("Armenian_JE","U054B")
 +  DefineXKBSym("Armenian_je","U057B")
 +  DefineXKBSym("Armenian_RA","U054C")
 +  DefineXKBSym("Armenian_ra","U057C")
 +  DefineXKBSym("Armenian_SE","U054D")
 +  DefineXKBSym("Armenian_se","U057D")
 +  DefineXKBSym("Armenian_VEV","U054E")
 +  DefineXKBSym("Armenian_vev","U057E")
 +  DefineXKBSym("Armenian_TYUN","U054F")
 +  DefineXKBSym("Armenian_tyun","U057F")
 +  DefineXKBSym("Armenian_RE","U0550")
 +  DefineXKBSym("Armenian_re","U0580")
 +  DefineXKBSym("Armenian_TSO","U0551")
 +  DefineXKBSym("Armenian_tso","U0581")
 +  DefineXKBSym("Armenian_VYUN","U0552")
 +  DefineXKBSym("Armenian_vyun","U0582")
 +  DefineXKBSym("Armenian_PYUR","U0553")
 +  DefineXKBSym("Armenian_pyur","U0583")
 +  DefineXKBSym("Armenian_KE","U0554")
 +  DefineXKBSym("Armenian_ke","U0584")
 +  DefineXKBSym("Armenian_O","U0555")
 +  DefineXKBSym("Armenian_o","U0585")
 +  DefineXKBSym("Armenian_FE","U0556")
 +  DefineXKBSym("Armenian_fe","U0586")
 +  DefineXKBSym("Armenian_apostrophe","U055A")
 +  DefineXKBSym("Georgian_an","U10D0")
 +  DefineXKBSym("Georgian_ban","U10D1")
 +  DefineXKBSym("Georgian_gan","U10D2")
 +  DefineXKBSym("Georgian_don","U10D3")
 +  DefineXKBSym("Georgian_en","U10D4")
 +  DefineXKBSym("Georgian_vin","U10D5")
 +  DefineXKBSym("Georgian_zen","U10D6")
 +  DefineXKBSym("Georgian_tan","U10D7")
 +  DefineXKBSym("Georgian_in","U10D8")
 +  DefineXKBSym("Georgian_kan","U10D9")
 +  DefineXKBSym("Georgian_las","U10DA")
 +  DefineXKBSym("Georgian_man","U10DB")
 +  DefineXKBSym("Georgian_nar","U10DC")
 +  DefineXKBSym("Georgian_on","U10DD")
 +  DefineXKBSym("Georgian_par","U10DE")
 +  DefineXKBSym("Georgian_zhar","U10DF")
 +  DefineXKBSym("Georgian_rae","U10E0")
 +  DefineXKBSym("Georgian_san","U10E1")
 +  DefineXKBSym("Georgian_tar","U10E2")
 +  DefineXKBSym("Georgian_un","U10E3")
 +  DefineXKBSym("Georgian_phar","U10E4")
 +  DefineXKBSym("Georgian_khar","U10E5")
 +  DefineXKBSym("Georgian_ghan","U10E6")
 +  DefineXKBSym("Georgian_qar","U10E7")
 +  DefineXKBSym("Georgian_shin","U10E8")
 +  DefineXKBSym("Georgian_chin","U10E9")
 +  DefineXKBSym("Georgian_can","U10EA")
 +  DefineXKBSym("Georgian_jil","U10EB")
 +  DefineXKBSym("Georgian_cil","U10EC")
 +  DefineXKBSym("Georgian_char","U10ED")
 +  DefineXKBSym("Georgian_xan","U10EE")
 +  DefineXKBSym("Georgian_jhan","U10EF")
 +  DefineXKBSym("Georgian_hae","U10F0")
 +  DefineXKBSym("Georgian_he","U10F1")
 +  DefineXKBSym("Georgian_hie","U10F2")
 +  DefineXKBSym("Georgian_we","U10F3")
 +  DefineXKBSym("Georgian_har","U10F4")
 +  DefineXKBSym("Georgian_hoe","U10F5")
 +  DefineXKBSym("Georgian_fi","U10F6")
 +  DefineXKBSym("Xabovedot","U1E8A")
 +  DefineXKBSym("Ibreve","U012C")
 +  DefineXKBSym("Zstroke","U01B5")
 +  DefineXKBSym("Gcaron","U01E6")
 +  DefineXKBSym("Ocaron","U01D2")
 +  DefineXKBSym("Obarred","U019F")
 +  DefineXKBSym("xabovedot","U1E8B")
 +  DefineXKBSym("ibreve","U012D")
 +  DefineXKBSym("zstroke","U01B6")
 +  DefineXKBSym("gcaron","U01E7")
 +  DefineXKBSym("ocaron","U01D2")
 +  DefineXKBSym("obarred","U0275")
 +  DefineXKBSym("SCHWA","U018F")
 +  DefineXKBSym("schwa","U0259")
 +  DefineXKBSym("Lbelowdot","U1E36")
 +  DefineXKBSym("lbelowdot","U1E37")
 +  DefineXKBSym("Abelowdot","U1EA0")
 +  DefineXKBSym("abelowdot","U1EA1")
 +  DefineXKBSym("Ahook","U1EA2")
 +  DefineXKBSym("ahook","U1EA3")
 +  DefineXKBSym("Acircumflexacute","U1EA4")
 +  DefineXKBSym("acircumflexacute","U1EA5")
 +  DefineXKBSym("Acircumflexgrave","U1EA6")
 +  DefineXKBSym("acircumflexgrave","U1EA7")
 +  DefineXKBSym("Acircumflexhook","U1EA8")
 +  DefineXKBSym("acircumflexhook","U1EA9")
 +  DefineXKBSym("Acircumflextilde","U1EAA")
 +  DefineXKBSym("acircumflextilde","U1EAB")
 +  DefineXKBSym("Acircumflexbelowdot","U1EAC")
 +  DefineXKBSym("acircumflexbelowdot","U1EAD")
 +  DefineXKBSym("Abreveacute","U1EAE")
 +  DefineXKBSym("abreveacute","U1EAF")
 +  DefineXKBSym("Abrevegrave","U1EB0")
 +  DefineXKBSym("abrevegrave","U1EB1")
 +  DefineXKBSym("Abrevehook","U1EB2")
 +  DefineXKBSym("abrevehook","U1EB3")
 +  DefineXKBSym("Abrevetilde","U1EB4")
 +  DefineXKBSym("abrevetilde","U1EB5")
 +  DefineXKBSym("Abrevebelowdot","U1EB6")
 +  DefineXKBSym("abrevebelowdot","U1EB7")
 +  DefineXKBSym("Ebelowdot","U1EB8")
 +  DefineXKBSym("ebelowdot","U1EB9")
 +  DefineXKBSym("Ehook","U1EBA")
 +  DefineXKBSym("ehook","U1EBB")
 +  DefineXKBSym("Etilde","U1EBC")
 +  DefineXKBSym("etilde","U1EBD")
 +  DefineXKBSym("Ecircumflexacute","U1EBE")
 +  DefineXKBSym("ecircumflexacute","U1EBF")
 +  DefineXKBSym("Ecircumflexgrave","U1EC0")
 +  DefineXKBSym("ecircumflexgrave","U1EC1")
 +  DefineXKBSym("Ecircumflexhook","U1EC2")
 +  DefineXKBSym("ecircumflexhook","U1EC3")
 +  DefineXKBSym("Ecircumflextilde","U1EC4")
 +  DefineXKBSym("ecircumflextilde","U1EC5")
 +  DefineXKBSym("Ecircumflexbelowdot","U1EC6")
 +  DefineXKBSym("ecircumflexbelowdot","U1EC7")
 +  DefineXKBSym("Ihook","U1EC8")
 +  DefineXKBSym("ihook","U1EC9")
 +  DefineXKBSym("Ibelowdot","U1ECA")
 +  DefineXKBSym("ibelowdot","U1ECB")
 +  DefineXKBSym("Obelowdot","U1ECC")
 +  DefineXKBSym("obelowdot","U1ECD")
 +  DefineXKBSym("Ohook","U1ECE")
 +  DefineXKBSym("ohook","U1ECF")
 +  DefineXKBSym("Ocircumflexacute","U1ED0")
 +  DefineXKBSym("ocircumflexacute","U1ED1")
 +  DefineXKBSym("Ocircumflexgrave","U1ED2")
 +  DefineXKBSym("ocircumflexgrave","U1ED3")
 +  DefineXKBSym("Ocircumflexhook","U1ED4")
 +  DefineXKBSym("ocircumflexhook","U1ED5")
 +  DefineXKBSym("Ocircumflextilde","U1ED6")
 +  DefineXKBSym("ocircumflextilde","U1ED7")
 +  DefineXKBSym("Ocircumflexbelowdot","U1ED8")
 +  DefineXKBSym("ocircumflexbelowdot","U1ED9")
 +  DefineXKBSym("Ohornacute","U1EDA")
 +  DefineXKBSym("ohornacute","U1EDB")
 +  DefineXKBSym("Ohorngrave","U1EDC")
 +  DefineXKBSym("ohorngrave","U1EDD")
 +  DefineXKBSym("Ohornhook","U1EDE")
 +  DefineXKBSym("ohornhook","U1EDF")
 +  DefineXKBSym("Ohorntilde","U1EE0")
 +  DefineXKBSym("ohorntilde","U1EE1")
 +  DefineXKBSym("Ohornbelowdot","U1EE2")
 +  DefineXKBSym("ohornbelowdot","U1EE3")
 +  DefineXKBSym("Ubelowdot","U1EE4")
 +  DefineXKBSym("ubelowdot","U1EE5")
 +  DefineXKBSym("Uhook","U1EE6")
 +  DefineXKBSym("uhook","U1EE7")
 +  DefineXKBSym("Uhornacute","U1EE8")
 +  DefineXKBSym("uhornacute","U1EE9")
 +  DefineXKBSym("Uhorngrave","U1EEA")
 +  DefineXKBSym("uhorngrave","U1EEB")
 +  DefineXKBSym("Uhornhook","U1EEC")
 +  DefineXKBSym("uhornhook","U1EED")
 +  DefineXKBSym("Uhorntilde","U1EEE")
 +  DefineXKBSym("uhorntilde","U1EEF")
 +  DefineXKBSym("Uhornbelowdot","U1EF0")
 +  DefineXKBSym("uhornbelowdot","U1EF1")
 +  DefineXKBSym("Ybelowdot","U1EF4")
 +  DefineXKBSym("ybelowdot","U1EF5")
 +  DefineXKBSym("Yhook","U1EF6")
 +  DefineXKBSym("yhook","U1EF7")
 +  DefineXKBSym("Ytilde","U1EF8")
 +  DefineXKBSym("ytilde","U1EF9")
 +  DefineXKBSym("Ohorn","U01A0")
 +  DefineXKBSym("ohorn","U01A1")
 +  DefineXKBSym("Uhorn","U01AF")
 +  DefineXKBSym("uhorn","U01B0")
 +  DefineXKBSym("EcuSign","U20A0")
 +  DefineXKBSym("ColonSign","U20A1")
 +  DefineXKBSym("CruzeiroSign","U20A2")
 +  DefineXKBSym("FFrancSign","U20A3")
 +  DefineXKBSym("LiraSign","U20A4")
 +  DefineXKBSym("MillSign","U20A5")
 +  DefineXKBSym("NairaSign","U20A6")
 +  DefineXKBSym("PesetaSign","U20A7")
 +  DefineXKBSym("RupeeSign","U20A8")
 +  DefineXKBSym("WonSign","U20A9")
 +  DefineXKBSym("NewSheqelSign","U20AA")
 +  DefineXKBSym("DongSign","U20AB")
 +  DefineXKBSym("EuroSign","U20AC")
 +  DefineXKBSym("zerosuperior","U2070")
 +  DefineXKBSym("foursuperior","U2074")
 +  DefineXKBSym("fivesuperior","U2075")
 +  DefineXKBSym("sixsuperior","U2076")
 +  DefineXKBSym("sevensuperior","U2077")
 +  DefineXKBSym("eightsuperior","U2078")
 +  DefineXKBSym("ninesuperior","U2079")
 +  DefineXKBSym("zerosubscript","U2080")
 +  DefineXKBSym("onesubscript","U2081")
 +  DefineXKBSym("twosubscript","U2082")
 +  DefineXKBSym("threesubscript","U2083")
 +  DefineXKBSym("foursubscript","U2084")
 +  DefineXKBSym("fivesubscript","U2085")
 +  DefineXKBSym("sixsubscript","U2086")
 +  DefineXKBSym("sevensubscript","U2087")
 +  DefineXKBSym("eightsubscript","U2088")
 +  DefineXKBSym("ninesubscript","U2089")
 +  DefineXKBSym("partdifferential","U2202")
 +  DefineXKBSym("emptyset","U2205")
 +  DefineXKBSym("elementof","U2208")
 +  DefineXKBSym("notelementof","U2209")
 +  DefineXKBSym("containsas","U220B")
 +  DefineXKBSym("squareroot","U221A")
 +  DefineXKBSym("cuberoot","U221B")
 +  DefineXKBSym("fourthroot","U221C")
 +  DefineXKBSym("dintegral","U222C")
 +  DefineXKBSym("tintegral","U222D")
 +  DefineXKBSym("because","U2235")
 +  DefineXKBSym("approxeq","U2245")
 +  DefineXKBSym("notapproxeq","U2247")
 +  DefineXKBSym("notidentical","U2262")
 +  DefineXKBSym("stricteq","U2263")
 +  DefineXKBSym("braille_blank","U2800")
 +  DefineXKBSym("braille_dots_1","U2801")
 +  DefineXKBSym("braille_dots_2","U2802")
 +  DefineXKBSym("braille_dots_12","U2803")
 +  DefineXKBSym("braille_dots_3","U2804")
 +  DefineXKBSym("braille_dots_13","U2805")
 +  DefineXKBSym("braille_dots_23","U2806")
 +  DefineXKBSym("braille_dots_123","U2807")
 +  DefineXKBSym("braille_dots_4","U2808")
 +  DefineXKBSym("braille_dots_14","U2809")
 +  DefineXKBSym("braille_dots_24","U280a")
 +  DefineXKBSym("braille_dots_124","U280b")
 +  DefineXKBSym("braille_dots_34","U280c")
 +  DefineXKBSym("braille_dots_134","U280d")
 +  DefineXKBSym("braille_dots_234","U280e")
 +  DefineXKBSym("braille_dots_1234","U280f")
 +  DefineXKBSym("braille_dots_5","U2810")
 +  DefineXKBSym("braille_dots_15","U2811")
 +  DefineXKBSym("braille_dots_25","U2812")
 +  DefineXKBSym("braille_dots_125","U2813")
 +  DefineXKBSym("braille_dots_35","U2814")
 +  DefineXKBSym("braille_dots_135","U2815")
 +  DefineXKBSym("braille_dots_235","U2816")
 +  DefineXKBSym("braille_dots_1235","U2817")
 +  DefineXKBSym("braille_dots_45","U2818")
 +  DefineXKBSym("braille_dots_145","U2819")
 +  DefineXKBSym("braille_dots_245","U281a")
 +  DefineXKBSym("braille_dots_1245","U281b")
 +  DefineXKBSym("braille_dots_345","U281c")
 +  DefineXKBSym("braille_dots_1345","U281d")
 +  DefineXKBSym("braille_dots_2345","U281e")
 +  DefineXKBSym("braille_dots_12345","U281f")
 +  DefineXKBSym("braille_dots_6","U2820")
 +  DefineXKBSym("braille_dots_16","U2821")
 +  DefineXKBSym("braille_dots_26","U2822")
 +  DefineXKBSym("braille_dots_126","U2823")
 +  DefineXKBSym("braille_dots_36","U2824")
 +  DefineXKBSym("braille_dots_136","U2825")
 +  DefineXKBSym("braille_dots_236","U2826")
 +  DefineXKBSym("braille_dots_1236","U2827")
 +  DefineXKBSym("braille_dots_46","U2828")
 +  DefineXKBSym("braille_dots_146","U2829")
 +  DefineXKBSym("braille_dots_246","U282a")
 +  DefineXKBSym("braille_dots_1246","U282b")
 +  DefineXKBSym("braille_dots_346","U282c")
 +  DefineXKBSym("braille_dots_1346","U282d")
 +  DefineXKBSym("braille_dots_2346","U282e")
 +  DefineXKBSym("braille_dots_12346","U282f")
 +  DefineXKBSym("braille_dots_56","U2830")
 +  DefineXKBSym("braille_dots_156","U2831")
 +  DefineXKBSym("braille_dots_256","U2832")
 +  DefineXKBSym("braille_dots_1256","U2833")
 +  DefineXKBSym("braille_dots_356","U2834")
 +  DefineXKBSym("braille_dots_1356","U2835")
 +  DefineXKBSym("braille_dots_2356","U2836")
 +  DefineXKBSym("braille_dots_12356","U2837")
 +  DefineXKBSym("braille_dots_456","U2838")
 +  DefineXKBSym("braille_dots_1456","U2839")
 +  DefineXKBSym("braille_dots_2456","U283a")
 +  DefineXKBSym("braille_dots_12456","U283b")
 +  DefineXKBSym("braille_dots_3456","U283c")
 +  DefineXKBSym("braille_dots_13456","U283d")
 +  DefineXKBSym("braille_dots_23456","U283e")
 +  DefineXKBSym("braille_dots_123456","U283f")
 +  DefineXKBSym("braille_dots_7","U2840")
 +  DefineXKBSym("braille_dots_17","U2841")
 +  DefineXKBSym("braille_dots_27","U2842")
 +  DefineXKBSym("braille_dots_127","U2843")
 +  DefineXKBSym("braille_dots_37","U2844")
 +  DefineXKBSym("braille_dots_137","U2845")
 +  DefineXKBSym("braille_dots_237","U2846")
 +  DefineXKBSym("braille_dots_1237","U2847")
 +  DefineXKBSym("braille_dots_47","U2848")
 +  DefineXKBSym("braille_dots_147","U2849")
 +  DefineXKBSym("braille_dots_247","U284a")
 +  DefineXKBSym("braille_dots_1247","U284b")
 +  DefineXKBSym("braille_dots_347","U284c")
 +  DefineXKBSym("braille_dots_1347","U284d")
 +  DefineXKBSym("braille_dots_2347","U284e")
 +  DefineXKBSym("braille_dots_12347","U284f")
 +  DefineXKBSym("braille_dots_57","U2850")
 +  DefineXKBSym("braille_dots_157","U2851")
 +  DefineXKBSym("braille_dots_257","U2852")
 +  DefineXKBSym("braille_dots_1257","U2853")
 +  DefineXKBSym("braille_dots_357","U2854")
 +  DefineXKBSym("braille_dots_1357","U2855")
 +  DefineXKBSym("braille_dots_2357","U2856")
 +  DefineXKBSym("braille_dots_12357","U2857")
 +  DefineXKBSym("braille_dots_457","U2858")
 +  DefineXKBSym("braille_dots_1457","U2859")
 +  DefineXKBSym("braille_dots_2457","U285a")
 +  DefineXKBSym("braille_dots_12457","U285b")
 +  DefineXKBSym("braille_dots_3457","U285c")
 +  DefineXKBSym("braille_dots_13457","U285d")
 +  DefineXKBSym("braille_dots_23457","U285e")
 +  DefineXKBSym("braille_dots_123457","U285f")
 +  DefineXKBSym("braille_dots_67","U2860")
 +  DefineXKBSym("braille_dots_167","U2861")
 +  DefineXKBSym("braille_dots_267","U2862")
 +  DefineXKBSym("braille_dots_1267","U2863")
 +  DefineXKBSym("braille_dots_367","U2864")
 +  DefineXKBSym("braille_dots_1367","U2865")
 +  DefineXKBSym("braille_dots_2367","U2866")
 +  DefineXKBSym("braille_dots_12367","U2867")
 +  DefineXKBSym("braille_dots_467","U2868")
 +  DefineXKBSym("braille_dots_1467","U2869")
 +  DefineXKBSym("braille_dots_2467","U286a")
 +  DefineXKBSym("braille_dots_12467","U286b")
 +  DefineXKBSym("braille_dots_3467","U286c")
 +  DefineXKBSym("braille_dots_13467","U286d")
 +  DefineXKBSym("braille_dots_23467","U286e")
 +  DefineXKBSym("braille_dots_123467","U286f")
 +  DefineXKBSym("braille_dots_567","U2870")
 +  DefineXKBSym("braille_dots_1567","U2871")
 +  DefineXKBSym("braille_dots_2567","U2872")
 +  DefineXKBSym("braille_dots_12567","U2873")
 +  DefineXKBSym("braille_dots_3567","U2874")
 +  DefineXKBSym("braille_dots_13567","U2875")
 +  DefineXKBSym("braille_dots_23567","U2876")
 +  DefineXKBSym("braille_dots_123567","U2877")
 +  DefineXKBSym("braille_dots_4567","U2878")
 +  DefineXKBSym("braille_dots_14567","U2879")
 +  DefineXKBSym("braille_dots_24567","U287a")
 +  DefineXKBSym("braille_dots_124567","U287b")
 +  DefineXKBSym("braille_dots_34567","U287c")
 +  DefineXKBSym("braille_dots_134567","U287d")
 +  DefineXKBSym("braille_dots_234567","U287e")
 +  DefineXKBSym("braille_dots_1234567","U287f")
 +  DefineXKBSym("braille_dots_8","U2880")
 +  DefineXKBSym("braille_dots_18","U2881")
 +  DefineXKBSym("braille_dots_28","U2882")
 +  DefineXKBSym("braille_dots_128","U2883")
 +  DefineXKBSym("braille_dots_38","U2884")
 +  DefineXKBSym("braille_dots_138","U2885")
 +  DefineXKBSym("braille_dots_238","U2886")
 +  DefineXKBSym("braille_dots_1238","U2887")
 +  DefineXKBSym("braille_dots_48","U2888")
 +  DefineXKBSym("braille_dots_148","U2889")
 +  DefineXKBSym("braille_dots_248","U288a")
 +  DefineXKBSym("braille_dots_1248","U288b")
 +  DefineXKBSym("braille_dots_348","U288c")
 +  DefineXKBSym("braille_dots_1348","U288d")
 +  DefineXKBSym("braille_dots_2348","U288e")
 +  DefineXKBSym("braille_dots_12348","U288f")
 +  DefineXKBSym("braille_dots_58","U2890")
 +  DefineXKBSym("braille_dots_158","U2891")
 +  DefineXKBSym("braille_dots_258","U2892")
 +  DefineXKBSym("braille_dots_1258","U2893")
 +  DefineXKBSym("braille_dots_358","U2894")
 +  DefineXKBSym("braille_dots_1358","U2895")
 +  DefineXKBSym("braille_dots_2358","U2896")
 +  DefineXKBSym("braille_dots_12358","U2897")
 +  DefineXKBSym("braille_dots_458","U2898")
 +  DefineXKBSym("braille_dots_1458","U2899")
 +  DefineXKBSym("braille_dots_2458","U289a")
 +  DefineXKBSym("braille_dots_12458","U289b")
 +  DefineXKBSym("braille_dots_3458","U289c")
 +  DefineXKBSym("braille_dots_13458","U289d")
 +  DefineXKBSym("braille_dots_23458","U289e")
 +  DefineXKBSym("braille_dots_123458","U289f")
 +  DefineXKBSym("braille_dots_68","U28a0")
 +  DefineXKBSym("braille_dots_168","U28a1")
 +  DefineXKBSym("braille_dots_268","U28a2")
 +  DefineXKBSym("braille_dots_1268","U28a3")
 +  DefineXKBSym("braille_dots_368","U28a4")
 +  DefineXKBSym("braille_dots_1368","U28a5")
 +  DefineXKBSym("braille_dots_2368","U28a6")
 +  DefineXKBSym("braille_dots_12368","U28a7")
 +  DefineXKBSym("braille_dots_468","U28a8")
 +  DefineXKBSym("braille_dots_1468","U28a9")
 +  DefineXKBSym("braille_dots_2468","U28aa")
 +  DefineXKBSym("braille_dots_12468","U28ab")
 +  DefineXKBSym("braille_dots_3468","U28ac")
 +  DefineXKBSym("braille_dots_13468","U28ad")
 +  DefineXKBSym("braille_dots_23468","U28ae")
 +  DefineXKBSym("braille_dots_123468","U28af")
 +  DefineXKBSym("braille_dots_568","U28b0")
 +  DefineXKBSym("braille_dots_1568","U28b1")
 +  DefineXKBSym("braille_dots_2568","U28b2")
 +  DefineXKBSym("braille_dots_12568","U28b3")
 +  DefineXKBSym("braille_dots_3568","U28b4")
 +  DefineXKBSym("braille_dots_13568","U28b5")
 +  DefineXKBSym("braille_dots_23568","U28b6")
 +  DefineXKBSym("braille_dots_123568","U28b7")
 +  DefineXKBSym("braille_dots_4568","U28b8")
 +  DefineXKBSym("braille_dots_14568","U28b9")
 +  DefineXKBSym("braille_dots_24568","U28ba")
 +  DefineXKBSym("braille_dots_124568","U28bb")
 +  DefineXKBSym("braille_dots_34568","U28bc")
 +  DefineXKBSym("braille_dots_134568","U28bd")
 +  DefineXKBSym("braille_dots_234568","U28be")
 +  DefineXKBSym("braille_dots_1234568","U28bf")
 +  DefineXKBSym("braille_dots_78","U28c0")
 +  DefineXKBSym("braille_dots_178","U28c1")
 +  DefineXKBSym("braille_dots_278","U28c2")
 +  DefineXKBSym("braille_dots_1278","U28c3")
 +  DefineXKBSym("braille_dots_378","U28c4")
 +  DefineXKBSym("braille_dots_1378","U28c5")
 +  DefineXKBSym("braille_dots_2378","U28c6")
 +  DefineXKBSym("braille_dots_12378","U28c7")
 +  DefineXKBSym("braille_dots_478","U28c8")
 +  DefineXKBSym("braille_dots_1478","U28c9")
 +  DefineXKBSym("braille_dots_2478","U28ca")
 +  DefineXKBSym("braille_dots_12478","U28cb")
 +  DefineXKBSym("braille_dots_3478","U28cc")
 +  DefineXKBSym("braille_dots_13478","U28cd")
 +  DefineXKBSym("braille_dots_23478","U28ce")
 +  DefineXKBSym("braille_dots_123478","U28cf")
 +  DefineXKBSym("braille_dots_578","U28d0")
 +  DefineXKBSym("braille_dots_1578","U28d1")
 +  DefineXKBSym("braille_dots_2578","U28d2")
 +  DefineXKBSym("braille_dots_12578","U28d3")
 +  DefineXKBSym("braille_dots_3578","U28d4")
 +  DefineXKBSym("braille_dots_13578","U28d5")
 +  DefineXKBSym("braille_dots_23578","U28d6")
 +  DefineXKBSym("braille_dots_123578","U28d7")
 +  DefineXKBSym("braille_dots_4578","U28d8")
 +  DefineXKBSym("braille_dots_14578","U28d9")
 +  DefineXKBSym("braille_dots_24578","U28da")
 +  DefineXKBSym("braille_dots_124578","U28db")
 +  DefineXKBSym("braille_dots_34578","U28dc")
 +  DefineXKBSym("braille_dots_134578","U28dd")
 +  DefineXKBSym("braille_dots_234578","U28de")
 +  DefineXKBSym("braille_dots_1234578","U28df")
 +  DefineXKBSym("braille_dots_678","U28e0")
 +  DefineXKBSym("braille_dots_1678","U28e1")
 +  DefineXKBSym("braille_dots_2678","U28e2")
 +  DefineXKBSym("braille_dots_12678","U28e3")
 +  DefineXKBSym("braille_dots_3678","U28e4")
 +  DefineXKBSym("braille_dots_13678","U28e5")
 +  DefineXKBSym("braille_dots_23678","U28e6")
 +  DefineXKBSym("braille_dots_123678","U28e7")
 +  DefineXKBSym("braille_dots_4678","U28e8")
 +  DefineXKBSym("braille_dots_14678","U28e9")
 +  DefineXKBSym("braille_dots_24678","U28ea")
 +  DefineXKBSym("braille_dots_124678","U28eb")
 +  DefineXKBSym("braille_dots_34678","U28ec")
 +  DefineXKBSym("braille_dots_134678","U28ed")
 +  DefineXKBSym("braille_dots_234678","U28ee")
 +  DefineXKBSym("braille_dots_1234678","U28ef")
 +  DefineXKBSym("braille_dots_5678","U28f0")
 +  DefineXKBSym("braille_dots_15678","U28f1")
 +  DefineXKBSym("braille_dots_25678","U28f2")
 +  DefineXKBSym("braille_dots_125678","U28f3")
 +  DefineXKBSym("braille_dots_35678","U28f4")
 +  DefineXKBSym("braille_dots_135678","U28f5")
 +  DefineXKBSym("braille_dots_235678","U28f6")
 +  DefineXKBSym("braille_dots_1235678","U28f7")
 +  DefineXKBSym("braille_dots_45678","U28f8")
 +  DefineXKBSym("braille_dots_145678","U28f9")
 +  DefineXKBSym("braille_dots_245678","U28fa")
 +  DefineXKBSym("braille_dots_1245678","U28fb")
 +  DefineXKBSym("braille_dots_345678","U28fc")
 +  DefineXKBSym("braille_dots_1345678","U28fd")
 +  DefineXKBSym("braille_dots_2345678","U28fe")
 +  DefineXKBSym("braille_dots_12345678","U28ff")
 +  DefineXKBSym("NoSymbol","U0020")
 +}
 +
 +convertXkbsym(X) {
 +  global
 +  nlen := StrLen(X)
 +  SS := X . " "
 +  pos := InStr(KSYM%nlen%,SS,true)
 +  if (pos>0) {
 +    poscd := 5*(pos-1)/(nlen+1)+1
 +    X := SubStr(KSCD%nlen%,poscd,5)
 +    return X
 +  } else if (SubStr(X,1,1) == "U")
 +    return X
 +  else {
 +     ResName := EncodeUni(X)
 +     if (StrLen(ResName) == 5)
 +       return ResName
 +  }
 +  return ""
 +}
 +
 +EncodeUniCompose(str) {
 +SetFormat, Integer, hex
 +  result := ""
 +  loop {
 +    char := asc(SubStr(str,1,1))
 +    str  := SubStr(str,2)
 +    if (char < 0x80)
 +      result .= "U" . SubStr("0000" . SubStr(char,3),-3)
 +    else if (char < 0xC0) {
 +      ; error
 +    } else if (char < 0xE0) {
 +       char2 := asc(Substr(str,1,1))
 +       str   := SubStr(str,2)
 +       if ((char2 < 0x80) or (char2 > 0xBF)) {
 +         ; error
 +       } else {
 +         result .= "U" . SubStr("0000" . SubStr((((char & 0x1F) << 6) + (char2 & 0x3F)),3),-3)
 +       }
 +    } else if (char < 0xF8) {
 +       char2 := asc(SubStr(str,1,1))
 +       char3 := asc(SubStr(str,2,1))
 +       str   := SubStr(str,3)
 +       if ((char2 < 0x80) or (char2 > 0xBF)
 +           or (char3 < 0x80) or (char3 > 0xBF)) {
 +         ; error
 +       } else {
 +         result .= "U" . SubStr("0000" . SubStr((((char & 0x0F) << 12) + ((char2 & 0x3F) << 6) + (char3 & 0x3F)),3),-3)
 +       }
 +    }
 +    if (str == "")
 +      break
 +  }
 +SetFormat, Integer, d
 +  StringUpper,result,result
 +  return result
 +}
 +
 +VarSetCapacity(Composita,10240000) ; 10 MB
 +
 +ProcessComposeFile(FFrom) {
 +  global
 +
 +  FileRead, FileContents, %FFrom%
 +
 +  Loop, parse, FileContents, `n, `r  ; Specifying `n prior to `r allows both Windows and Unix files to be parsed.
 +  {
 +    NumLines := A_Index
 +  }
 +
 +  Loop, parse, FileContents, `n, `r  ; Specifying `n prior to `r allows both Windows and Unix files to be parsed.
 +  {
 +    Line := A_LoopField
 +    if ((Line == "") or (SubStr(Line,1,5) == "XCOMM") or (SubStr(Line,1,1) == "#"))
 +      continue
 +    Line := RegExReplace(Line,"[\t ]*(<[^>]*>)[\t ]*","$1")
 +    RegExMatch(Line,"([^:]*):[\t ]*""((\\.|[^""])*)"".*",OutputVar)
 +    ReplaceLeft := OutputVar1
 +    ReplaceRight := ""
 +    loop {
 +      thechar := SubStr(OutputVar2,1,1)
 +      OutputVar2 := SubStr(OutputVar2,2)
 +      if (thechar == "\") {
 +        thechar := SubStr(OutputVar2,1,1)
 +        OutputVar2 := SubStr(OutputVar2,2)
 +        if (thechar == "n")
 +          thechar := chr(0x000d) ; Line-Feed
 +        ReplaceRight := ReplaceRight . thechar
 +      } else
 +        ReplaceRight := ReplaceRight . thechar
 +      if (OutputVar2 == "")
 +        break
 +    }
 +
 +    ; care for replaceleft
 +    modkeys := ""
 +    loop {
 +      if ((SubStr(ReplaceLeft,1,1)=="<") and (InStr(ReplaceLeft,">"))) {
 +        Xkbsym := SubStr(ReplaceLeft,2,InStr(ReplaceLeft,">")-2)
 +        ReplaceLeft := SubStr(ReplaceLeft,InStr(ReplaceLeft,">")+1)
 +
 +        modkey := ConvertXkbsym(Xkbsym)
 +        if (modkey == "") {
 +          modkeys := "" ; invalidate whole line
 +          break
 +        }
 +        modkeys := modkeys . modkey 
 +        if (ReplaceLeft == "")
 +          break
 +        if (CM%modkeys% != 1)
 +          CM%modkeys% := 1
 +      }
 +      else {
 +        modkeys := "" ; invalidate whole line
 +        break
 +      }
 +    }
 +    if (modkeys != "") {
 +      ressymb := EncodeUniCompose(ReplaceRight)
 +      CD%modkeys% := ressymb
 +      if (StrLen(ressymb)==5)
 +        CRC%ressymb% .= modkeys
 +    }
 +  }
 +
 +}
 +
 +LoadCurrentComposeFile(FIn) {
 +  global
 +  if (!CurrentComposeLoaded) {
 +    DefineXKBSyms()
 +    CurrentComposeLoaded := 1
 +  }
 +  ProcessComposeFile(Fin)
 +}
 +
 +LoadCurrentCompose() {
 +  global
 +  ; setup a new thread to start immediately in the background
 +  SetTimer,ConvertCompose,-1
 +  return
 +
 +  ConvertCompose:
 +    ComposePath := "..\..\..\Compose"
 +    LoadCurrentComposeFile(ComposePath . "\en_US.UTF-8")
 +    LoadCurrentComposeFile(ComposePath . "\Compose.neo")
 +    TrayTip,Compose-Konvertierung,Konvertierung abgeschlossen!,10,1
 +  return
 +}
 diff --git a/windows/neo-vars/src/source/initialize.ahk b/windows/neo-vars/src/source/initialize.ahk index 53a7064..641db44 100644 --- a/windows/neo-vars/src/source/initialize.ahk +++ b/windows/neo-vars/src/source/initialize.ahk @@ -49,6 +49,7 @@ IniRead,zeigeLockBox,%ini%,Global,zeigeLockBox,1  IniRead,zeigeModusBox,%ini%,Global,zeigeModusBox,1
  IniRead,UseMod4Light,%ini%,Global,UseMod4Light,1
  IniRead,striktesMod2Lock,%ini%,Global,striktesMod2Lock,0
 +IniRead,dynamischesCompose,%ini%,Global,dynamischesCompose,0
  regread,inputlocale,HKEY_CURRENT_USER,Keyboard Layout\Preload,1
  regread,inputlocalealias,HKEY_CURRENT_USER,Keyboard Layout\Substitutes,%inputlocale%
 @@ -83,4 +84,9 @@ IsMod4LPressed := 0  IsMod4Pressed := 0
  IsMod4Locked := 0
  EbeneAktualisieren()
 -LoadDefaultCompose()
 +
 +
 +if (dynamischesCompose)
 +  LoadCurrentCompose()
 +else
 +  LoadDefaultCompose()
  | 
