; -*- encoding:utf-8 -*-
; AHK versteht zwar kein utf-8, aber so lässt sich’s doch leichter eingeben.


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)
;  MsgBox,% X . ": " . nlen . ": " . pos
  if (pos>0) {
    poscd := 5*(pos-1)/(nlen+1)+1
    X := SubStr(KSCD%nlen%,poscd,5)
;    MsgBox,% X
    return X
  } else if (SubStr(X,1,1) == "U")
    return X
  else {
     ResName := EncodeUni(X)
     if (StrLen(ResName) == 5)
       return ResName
  }
  return ""
}

DecodeUni(Uni) {
  result := ""
  loop {
    code := "0x" . SubStr(Uni,2,4)
    Uni := SubStr(Uni,6)
    if (code < 0x0080)
      result := result . chr(code)
    else if (code < 0x0800)
      result := result . chr(0xC0 + (code >> 6)) . chr(0x80 + (code & 0x3F))
    else
      result := result . chr(0xE0 + (code >> 12)) . chr(0x80 + ((code >> 6) & 0x3F)) . chr(0x80 + (code & 0x3F)) 
    if (Uni == "")
      break
  }
  return result
}

EncodeUni(str) {
SetFormat, Integer, hex
;  MsgBox % Asc(SubStr(str,1,1)) . Asc(SubStr(str,2,1))
  result := ""
  loop {
    achar := asc(SubStr(str,1,1))
    str   := SubStr(str,2)
    if (achar < 0x80)
      result .= "U" . SubStr("0000" . SubStr(achar,3),-3)
    else if (achar < 0xC0) {
      ; error
    } else if (achar < 0xE0) {
       achar2 := asc(Substr(str,1,1))
       str    := SubStr(str,2)
       if ((achar2 < 0x80) or (achar2 > 0xBF)) {
         ; error
       } else {
         result .= "U" . SubStr("0000" . SubStr((((achar & 0x1F) << 6) + (achar2 & 0x3F)),3),-3)
       }
    } else if (achar < 0xF8) {
       achar2 := asc(SubStr(str,1,1))
       achar3 := asc(SubStr(str,2,1))
       str    := SubStr(str,3)
;       MsgBox % "chars: " . achar . ", " . achar2 . ", " . achar3 . ", str: " . str
       if ((achar2 < 0x80) or (achar2 > 0xBF)
           or (achar3 < 0x80) or (achar3 > 0xBF)) {
         ; error
       } else {
;         MsgBox % achar . achar2 . achar3
;         MsgBox % (((achar & 0x0F) << 12) + ((achar2 & 0x3F) << 6) + (achar3 & 0x3F))
         result .= "U" . SubStr("0000" . SubStr((((achar & 0x0F) << 12) + ((achar2 & 0x3F) << 6) + (achar3 & 0x3F)),3),-3)
       }
    }
    if (str == "")
      break
  }
SetFormat, Integer, d
  StringUpper,result,result
  return result
}

Composita := ""
Compsize := 0
VarSetCapacity(Composita,10240000) ; 10 MB

EncodeUnicodeFile(FFrom,FTo) {
  Composita := ""
  Compsize := 0
  Miss := 0
  FileRead, FileContents, %FFrom%
  ProgressTop := "Converting " . FFrom . "..."

  FileContents := RegExReplace(FileContents,"[\t ]*(<[^>]*>)[\t ]*","$1")

  Loop, parse, FileContents, `n, `r  ; Specifying `n prior to `r allows both Windows and Unix files to be parsed.
  {
    NumLines := A_Index
  }

  NLP := NumLines/20 ; 20 steps on the bar
  OldCount := -NumLines
  Loop, parse, FileContents, `n, `r  ; Specifying `n prior to `r allows both Windows and Unix files to be parsed.
  {
    TA := ""
    Count := A_Index
    Line := A_LoopField
    if (Count >= (OldCount + NLP)) { ; Progress the bar not with every line
      OldCount := Count
      ProgressVal := Count/NumLines*100
      ProgressInd := "Lines: " . Count . ", Errors: " . Miss
      Progress,%ProgressVal%,%ProgressInd%,%ProgressTop%
    }
    if ((Line == "") or (SubStr(Line,1,5) == "XCOMM") or (SubStr(Line,1,1) == "#"))
      continue
    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
          TA .= "  CM" . modkeys . ":=1`r`n"
        }
      }
      else {
        Xkbsym := "*entry*" ; make a non-fancy name from parsing error
        modkeys := "" ; invalidate whole line
        break
      }
    }
    if (modkeys != "") {
      ressymb := EncodeUni(ReplaceRight)
      TA .= "  CD" . modkeys . ":="""  . ressymb . """`r`n"
      if (StrLen(ressymb)==5)
        TA .= "  CRC" . ressymb . ".="" " . modkeys . """`r`n" 
    } else {
      TA .= "  `; illegal " . Xkbsym . " in " . A_LoopField . "`r`n"
      Miss := Miss + 1
    }
    Composita .= TA
    Compsize := Compsize + 1
    if (Compsize > 100) {
      FileAppend,%Composita%,%FTo%
      Compsize := 0
      Composita := ""
    }
  }
  Progress,off
  FileAppend,%Composita%,%FTo%
}

DefineXKBSyms()

NumPars = %0%
if (NumPars < 2) {
  MsgBox,Zu wenige Parameter`, Minimum=2
  exit
}

CompRevision = %1%
OutputFile = %2%

FileDelete,%OutputFile%
FileAppend,CompRevision := "%CompRevision%"`r`n`r`nLoadDefaultCompose() {`r`n  global`r`n`r`n, %OutputFile%    ; }

loop %Numpars% {
  if (A_Index < 3)
    continue
  EncodeUnicodeFile(%A_Index%, OutputFile)
}

; {
FileAppend,},%OutputFile%

; MsgBox % EncodeUni(DecodeUni("U20ACU0041U0070"))

; MsgBox % ConvertXkbsym("KP_5") . ConvertXkbsym("a")