--[[ 
keep_short_code_first: 保持五笔、虎码的一、二级简码对应的汉字在候选列表首位
by Jack Liu <https://aituyaa.com>
--]]

local primary_wubi_code_table = {
    ["g"] = "一", ["f"] = "地", ["d"] = "在", ["s"] = "要", ["a"] = "工",
    ["h"] = "上", ["j"] = "是", ["k"] = "中", ["l"] = "国", ["m"] = "同",
    ["t"] = "和", ["r"] = "的", ["e"] = "有", ["w"] = "人", ["q"] = "我",
    ["y"] = "主", ["u"] = "产", ["i"] = "不", ["o"] = "为", ["p"] = "这",
    ["n"] = "民", ["b"] = "了", ["v"] = "发", ["c"] = "以", ["x"] = "经"
}

local secondary_wubi_code_table = {
    -- 第一行（G 开头）
    ["ga"] = "开", ["gb"] = "屯", ["gc"] = "到", ["gd"] = "天", ["ge"] = "表", ["gf"] = "于", ["gg"] = "五", ["gh"] = "下", ["gi"] = "不", ["gj"] = "理", ["gk"] = "事", ["gl"] = "画", ["gm"] = "现", ["gn"] = "与", ["go"] = "来", ["gp"] = "★", ["gq"] = "列", ["gr"] = "珠", ["gs"] = "末", ["gt"] = "玫", ["gu"] = "平", ["gv"] = "妻", ["gw"] = "珍", ["gx"] = "互", ["gy"] = "玉",
    -- 第二行（F 开头）
    ["fa"] = "载", ["fb"] = "地", ["fc"] = "支", ["fd"] = "城", ["fe"] = "圾", ["ff"] = "寺", ["fg"] = "二", ["fh"] = "直", ["fi"] = "示", ["fj"] = "进", ["fk"] = "吉", ["fl"] = "协", ["fm"] = "南", ["fn"] = "志", ["fo"] = "赤", ["fp"] = "过", ["fq"] = "无", ["fr"] = "垢", ["fs"] = "霜", ["ft"] = "才", ["fu"] = "增", ["fv"] = "雪", ["fw"] = "夫", ["fx"] = "★", ["fy"] = "坟",
    -- 第三行（D 开头）
    ["da"] = "左", ["db"] = "顾", ["dc"] = "友", ["dd"] = "大", ["de"] = "胡", ["df"] = "夺", ["dg"] = "三", ["dh"] = "丰", ["di"] = "砂", ["dj"] = "百", ["dk"] = "右", ["dl"] = "历", ["dm"] = "面", ["dn"] = "成", ["do"] = "灰", ["dp"] = "达", ["dq"] = "克", ["dr"] = "原", ["ds"] = "厅", ["dt"] = "帮", ["du"] = "磁", ["dv"] = "肆", ["dw"] = "春", ["dx"] = "龙", ["dy"] = "太",
    -- 第四行（S 开头）
    ["sa"] = "械", ["sb"] = "李", ["sc"] = "权", ["sd"] = "枯", ["se"] = "极", ["sf"] = "村", ["sg"] = "本", ["sh"] = "相", ["si"] = "档", ["sj"] = "查", ["sk"] = "可", ["sl"] = "楞", ["sm"] = "机", ["sn"] = "杨", ["so"] = "杰", ["sp"] = "棕", ["sq"] = "构", ["sr"] = "析", ["ss"] = "林", ["st"] = "格", ["su"] = "样", ["sv"] = "要", ["sw"] = "检", ["sx"] = "楷", ["sy"] = "术",
    -- 第五行（A 开头）
    ["aa"] = "式", ["ab"] = "节", ["ac"] = "芭", ["ad"] = "基", ["ae"] = "菜", ["af"] = "革", ["ag"] = "七", ["ah"] = "牙", ["ai"] = "东", ["aj"] = "划", ["ak"] = "或", ["al"] = "功", ["am"] = "贡", ["an"] = "世", ["ao"] = "★", ["ap"] = "芝", ["aq"] = "区", ["ar"] = "匠", ["as"] = "苛", ["at"] = "攻", ["au"] = "燕", ["av"] = "切", ["aw"] = "共", ["ax"] = "药", ["ay"] = "芳",
    -- 第六行（H 开头）
    ["ha"] = "虎", ["hb"] = "╳", ["hc"] = "皮", ["hd"] = "睚", ["he"] = "肯", ["hf"] = "睦", ["hg"] = "睛", ["hh"] = "止", ["hi"] = "步", ["hj"] = "旧", ["hk"] = "占", ["hl"] = "卤", ["hm"] = "贞", ["hn"] = "卢", ["ho"] = "眯", ["hp"] = "瞎", ["hq"] = "餐", ["hr"] = "睥", ["hs"] = "盯", ["ht"] = "睡", ["hu"] = "瞳", ["hv"] = "眼", ["hw"] = "具", ["hx"] = "此", ["hy"] = "眩",
    -- 第七行（J 开头）
    ["ja"] = "虹", ["jb"] = "最", ["jc"] = "紧", ["jd"] = "晨", ["je"] = "明", ["jf"] = "时", ["jg"] = "量", ["jh"] = "早", ["ji"] = "晃", ["jj"] = "昌", ["jk"] = "蝇", ["jl"] = "曙", ["jm"] = "遇", ["jn"] = "电", ["jo"] = "显", ["jp"] = "晕", ["jq"] = "晚", ["jr"] = "蝗", ["js"] = "果", ["jt"] = "昨", ["ju"] = "暗", ["jv"] = "归", ["jw"] = "蛤", ["jx"] = "昆", ["jy"] = "景",
    -- 第八行（K 开头）
    ["ka"] = "呀", ["kb"] = "啊", ["kc"] = "吧", ["kd"] = "顺", ["ke"] = "吸", ["kf"] = "叶", ["kg"] = "呈", ["kh"] = "中", ["ki"] = "吵", ["kj"] = "虽", ["kk"] = "吕", ["kl"] = "另", ["km"] = "员", ["kn"] = "叫", ["ko"] = "噗", ["kp"] = "喧", ["kq"] = "史", ["kr"] = "听", ["ks"] = "呆", ["kt"] = "呼", ["ku"] = "啼", ["kv"] = "哪", ["kw"] = "只", ["kx"] = "哟", ["ky"] = "嘛",
    -- 第九行（L 开头）
    ["la"] = "轼", ["lb"] = "囝", ["lc"] = "轻", ["ld"] = "因", ["le"] = "胃", ["lf"] = "轩", ["lg"] = "车", ["lh"] = "四", ["li"] = "★", ["lj"] = "辊", ["lk"] = "加", ["ll"] = "男", ["lm"] = "轴", ["ln"] = "思", ["lo"] = "辚", ["lp"] = "边", ["lq"] = "罗", ["lr"] = "斩", ["ls"] = "困", ["lt"] = "力", ["lu"] = "较", ["lv"] = "轨", ["lw"] = "办", ["lx"] = "累", ["ly"] = "罚",
    -- 第十行（M 开头）
    ["ma"] = "曲", ["mb"] = "邮", ["mc"] = "凤", ["md"] = "央", ["me"] = "骨", ["mf"] = "财", ["mg"] = "同", ["mh"] = "由", ["mi"] = "峭", ["mj"] = "则", ["mk"] = "★", ["ml"] = "崭", ["mm"] = "册", ["mn"] = "岂", ["mo"] = "赕", ["mp"] = "迪", ["mq"] = "风", ["mr"] = "贩", ["ms"] = "朵", ["mt"] = "几", ["mu"] = "赠", ["mv"] = "╳", ["mw"] = "内", ["mx"] = "嶷", ["my"] = "凡",
    -- 第十一行（T 开头）
    ["ta"] = "长", ["tb"] = "季", ["tc"] = "么", ["td"] = "知", ["te"] = "秀", ["tf"] = "行", ["tg"] = "生", ["th"] = "处", ["ti"] = "秒", ["tj"] = "得", ["tk"] = "各", ["tl"] = "务", ["tm"] = "向", ["tn"] = "秘", ["to"] = "秋", ["tp"] = "管", ["tq"] = "称", ["tr"] = "物", ["ts"] = "条", ["tt"] = "笔", ["tu"] = "科", ["tv"] = "委", ["tw"] = "答", ["tx"] = "第", ["ty"] = "入",
    -- 第十二行（R 开头）
    ["ra"] = "找", ["rb"] = "报", ["rc"] = "反", ["rd"] = "拓", ["re"] = "扔", ["rf"] = "持", ["rg"] = "后", ["rh"] = "年", ["ri"] = "朱", ["rj"] = "提", ["rk"] = "扣", ["rl"] = "押", ["rm"] = "抽", ["rn"] = "所", ["ro"] = "搂", ["rp"] = "近", ["rq"] = "换", ["rr"] = "折", ["rs"] = "打", ["rt"] = "手", ["ru"] = "拉", ["rv"] = "扫", ["rw"] = "失", ["rx"] = "批", ["ry"] = "扩",
    -- 第十三行（E 开头）
    ["ea"] = "肛", ["eb"] = "服", ["ec"] = "肥", ["ed"] = "须", ["ee"] = "朋", ["ef"] = "肝", ["eg"] = "且", ["eh"] = "胩", ["ei"] = "膛", ["ej"] = "胆", ["ek"] = "肿", ["el"] = "肋", ["em"] = "肌", ["en"] = "甩", ["eo"] = "膦", ["ep"] = "爱", ["eq"] = "胸", ["er"] = "遥", ["es"] = "采", ["et"] = "用", ["eu"] = "胶", ["ev"] = "妥", ["ew"] = "脸", ["ex"] = "脂", ["ey"] = "及",
    -- 第十四行（W 开头）
    ["wa"] = "代", ["wb"] = "他", ["wc"] = "公", ["wd"] = "估", ["we"] = "仍", ["wf"] = "会", ["wg"] = "全", ["wh"] = "个", ["wi"] = "偿", ["wj"] = "介", ["wk"] = "保", ["wl"] = "佃", ["wm"] = "仙", ["wn"] = "亿", ["wo"] = "伙", ["wp"] = "★", ["wq"] = "你", ["wr"] = "伯", ["ws"] = "休", ["wt"] = "作", ["wu"] = "们", ["wv"] = "分", ["ww"] = "从", ["wx"] = "化", ["wy"] = "信",
    -- 第十五行（Q 开头）
    ["qa"] = "氏", ["qb"] = "凶", ["qc"] = "色", ["qd"] = "然", ["qe"] = "角", ["qf"] = "针", ["qg"] = "钱", ["qh"] = "外", ["qi"] = "乐", ["qj"] = "旬", ["qk"] = "名", ["ql"] = "甸", ["qm"] = "负", ["qn"] = "包", ["qo"] = "炙", ["qp"] = "锭", ["qq"] = "多", ["qr"] = "铁", ["qs"] = "钉", ["qt"] = "儿", ["qu"] = "匀", ["qv"] = "争", ["qw"] = "欠", ["qx"] = "★", ["qy"] = "久",
    -- 第十六行（Y 开头）
    ["ya"] = "度", ["yb"] = "离", ["yc"] = "充", ["yd"] = "庆", ["ye"] = "衣", ["yf"] = "计", ["yg"] = "主", ["yh"] = "让", ["yi"] = "就", ["yj"] = "刘", ["yk"] = "训", ["yl"] = "为", ["ym"] = "高", ["yn"] = "记", ["yo"] = "变", ["yp"] = "这", ["yq"] = "义", ["yr"] = "诉", ["ys"] = "订", ["yt"] = "放", ["yu"] = "说", ["yv"] = "良", ["yw"] = "认", ["yx"] = "率", ["yy"] = "方",
    -- 第十七行（U 开头）
    ["ua"] = "并", ["ub"] = "闻", ["uc"] = "冯", ["ud"] = "关", ["ue"] = "前", ["uf"] = "半", ["ug"] = "闰", ["uh"] = "站", ["ui"] = "冰", ["uj"] = "间", ["uk"] = "部", ["ul"] = "曾", ["um"] = "商", ["un"] = "决", ["uo"] = "普", ["up"] = "帝", ["uq"] = "交", ["ur"] = "瓣", ["us"] = "亲", ["ut"] = "产", ["uu"] = "立", ["uv"] = "妆", ["uw"] = "闪", ["ux"] = "北", ["uy"] = "六",
    -- 第十八行（I 开头）
    ["ia"] = "江", ["ib"] = "池", ["ic"] = "汉", ["id"] = "尖", ["ie"] = "肖", ["if"] = "法", ["ig"] = "汪", ["ih"] = "小", ["ii"] = "水", ["ij"] = "浊", ["ik"] = "澡", ["il"] = "渐", ["im"] = "没", ["in"] = "沁", ["io"] = "淡", ["ip"] = "学", ["iq"] = "光", ["ir"] = "泊", ["is"] = "洒", ["it"] = "少", ["iu"] = "洋", ["iv"] = "当", ["iw"] = "兴", ["ix"] = "涨", ["iy"] = "注",
    -- 第十九行（O 开头）
    ["oa"] = "煤", ["ob"] = "籽", ["oc"] = "烃", ["od"] = "类", ["oe"] = "粗", ["of"] = "灶", ["og"] = "业", ["oh"] = "粘", ["oi"] = "炒", ["oj"] = "烛", ["ok"] = "炽", ["ol"] = "烟", ["om"] = "灿", ["on"] = "断", ["oo"] = "炎", ["op"] = "迷", ["oq"] = "炮", ["or"] = "煌", ["os"] = "灯", ["ot"] = "烽", ["ou"] = "料", ["ov"] = "娄", ["ow"] = "粉", ["ox"] = "糨", ["oy"] = "米",
    -- 第二十行（P 开头）
    ["pa"] = "宽", ["pb"] = "字", ["pc"] = "★", ["pd"] = "害", ["pe"] = "家", ["pf"] = "守", ["pg"] = "定", ["ph"] = "寂", ["pi"] = "宵", ["pj"] = "审", ["pk"] = "宫", ["pl"] = "军", ["pm"] = "宙", ["pn"] = "官", ["po"] = "灾", ["pp"] = "之", ["pq"] = "宛", ["pr"] = "宾", ["ps"] = "宁", ["pt"] = "客", ["pu"] = "实", ["pv"] = "安", ["pw"] = "空", ["px"] = "它", ["py"] = "社",
    -- 第二十一行（N 开头）
    ["na"] = "民", ["nb"] = "敢", ["nc"] = "怪", ["nd"] = "居", ["ne"] = "★", ["nf"] = "导", ["ng"] = "怀", ["nh"] = "收", ["ni"] = "悄", ["nj"] = "慢", ["nk"] = "避", ["nl"] = "惭", ["nm"] = "届", ["nn"] = "忆", ["no"] = "屡", ["np"] = "忱", ["nq"] = "懈", ["nr"] = "怕", ["ns"] = "★", ["nt"] = "必", ["nu"] = "习", ["nv"] = "恨", ["nw"] = "愉", ["nx"] = "尼", ["ny"] = "心",
    -- 第二十二行（B 开头）
    ["ba"] = "陈", ["bb"] = "子", ["bc"] = "取", ["bd"] = "承", ["be"] = "阴", ["bf"] = "际", ["bg"] = "卫", ["bh"] = "耻", ["bi"] = "孙", ["bj"] = "阳", ["bk"] = "职", ["bl"] = "阵", ["bm"] = "出", ["bn"] = "也", ["bo"] = "耿", ["bp"] = "辽", ["bq"] = "隐", ["br"] = "孤", ["bs"] = "阿", ["bt"] = "降", ["bu"] = "联", ["bv"] = "限", ["bw"] = "队", ["bx"] = "陛", ["by"] = "防",
    -- 第二十三行（V 开头）
    ["va"] = "毁", ["vb"] = "好", ["vc"] = "妈", ["vd"] = "姑", ["ve"] = "奶", ["vf"] = "寻", ["vg"] = "姨", ["vh"] = "叟", ["vi"] = "录", ["vj"] = "旭", ["vk"] = "如", ["vl"] = "舅", ["vm"] = "妯", ["vn"] = "刀", ["vo"] = "灵", ["vp"] = "巡", ["vq"] = "婚", ["vr"] = "★", ["vs"] = "杂", ["vt"] = "九", ["vu"] = "嫌", ["vv"] = "妇", ["vw"] = "★", ["vx"] = "姆", ["vy"] = "妨",
    -- 第二十四行（C 开头）
    ["ca"] = "戏", ["cb"] = "邓", ["cc"] = "双", ["cd"] = "参", ["ce"] = "能", ["cf"] = "对", ["cg"] = "骊", ["ch"] = "★", ["ci"] = "★", ["cj"] = "骒", ["ck"] = "台", ["cl"] = "劝", ["cm"] = "观", ["cn"] = "马", ["co"] = "╳", ["cp"] = "驼", ["cq"] = "允", ["cr"] = "牟", ["cs"] = "骠", ["ct"] = "矣", ["cu"] = "骈", ["cv"] = "艰", ["cw"] = "难", ["cx"] = "★", ["cy"] = "驻",
    -- 第二十五行（X 开头）
    ["xa"] = "红", ["xb"] = "弛", ["xc"] = "经", ["xd"] = "顷", ["xe"] = "级", ["xf"] = "结", ["xg"] = "线", ["xh"] = "引", ["xi"] = "纱", ["xj"] = "旨", ["xk"] = "强", ["xl"] = "细", ["xm"] = "纲", ["xn"] = "纪", ["xo"] = "继", ["xp"] = "综", ["xq"] = "约", ["xr"] = "绵", ["xs"] = "★", ["xt"] = "张", ["xu"] = "弱", ["xv"] = "绿", ["xw"] = "给", ["xx"] = "比", ["xy"] = "纺"
}


local primary_tiger_code_table = {
    ["q"] = "都", ["w"] = "得", ["e"] = "也", ["r"] = "了", ["t"] = "我", ["y"] = "到", ["u"] = "的", ["i"] = "为", ["o"] = "是", ["p"] = "行",
        ["a"] = "来", ["s"] = "说", ["d"] = "中", ["f"] = "一", ["g"] = "就", ["h"] = "道", ["j"] = "人", ["k"] = "能", ["l"] = "而", 
            ["z"] = "可", ["x"] = "和", ["c"] = "不", ["v"] = "要", ["b"] = "如", ["n"] = "在", ["m"] = "大"
}

local secondary_tiger_code_table = {
    -- 第一行（G 开头）
    ["ga"] = "场", ["gb"] = "坛", ["gc"] = "声", ["gd"] = "歹", ["ge"] = "地", ["gf"] = "款", ["gg"] = "高", ["gh"] = "志", ["gi"] = "养", ["gj"] = "句", ["gk"] = "去", ["gl"] = "够", ["gm"] = "美", ["gn"] = "块", ["go"] = "亮", ["gp"] = "列", ["gq"] = "着", ["gr"] = "餐", ["gs"] = "士", ["gt"] = "土", ["gu"] = "差", ["gv"] = "死", ["gw"] = "韦", ["gx"] = "境", ["gy"] = "羊", ["gz"] = "堪",
    -- 第二行（F 开头）
    ["fa"] = "与", ["fb"] = "互", ["fc"] = "辰", ["fd"] = "事", ["fe"] = "视", ["ff"] = "福", ["fg"] = "社", ["fh"] = "忘", ["fi"] = "一", ["fj"] = "骱", ["fk"] = "求", ["fl"] = "开", ["fm"] = "天", ["fn"] = "于", ["fo"] = "更", ["fp"] = "万", ["fq"] = "且", ["fr"] = "骰", ["fs"] = "示", ["ft"] = "祈", ["fu"] = "百", ["fv"] = "望", ["fw"] = "亡", ["fx"] = "鹘", ["fy"] = "下", ["fz"] = "祺",
    -- 第三行（D 开头）
    ["da"] = "味", ["db"] = "史", ["dc"] = "虽", ["dd"] = "器", ["de"] = "吃", ["df"] = "号", ["dg"] = "吐", ["dh"] = "只", ["di"] = "叫", ["dj"] = "哈", ["dk"] = "口", ["dl"] = "里", ["dm"] = "民", ["dn"] = "吗", ["do"] = "员", ["dp"] = "兄", ["dq"] = "喂", ["dr"] = "嗯", ["ds"] = "别", ["dt"] = "啊", ["du"] = "无", ["dv"] = "喘", ["dw"] = "咋", ["dx"] = "唤", ["dy"] = "由", ["dz"] = "嘛",
    -- 第四行（S 开头）
    ["sa"] = "话", ["sb"] = "尝", ["sc"] = "谈", ["sd"] = "加", ["se"] = "许", ["sf"] = "证", ["sg"] = "各", ["sh"] = "办", ["si"] = "止", ["sj"] = "认", ["sk"] = "该", ["sl"] = "力", ["sm"] = "出", ["sn"] = "计", ["so"] = "训", ["sp"] = "试", ["sq"] = "讲", ["sr"] = "发", ["ss"] = "尚", ["st"] = "诉", ["su"] = "边", ["sv"] = "此", ["sw"] = "语", ["sx"] = "鸭", ["sy"] = "言", ["sz"] = "谢",
    -- 第五行（A 开头）
    ["aa"] = "书", ["ab"] = "交", ["ac"] = "闽", ["ad"] = "丁", ["ae"] = "闲", ["af"] = "丰", ["ag"] = "鬼", ["ah"] = "敌", ["ai"] = "乙", ["aj"] = "闪", ["ak"] = "承", ["al"] = "六", ["am"] = "门", ["an"] = "缺", ["ao"] = "间", ["ap"] = "片", ["aq"] = "闻", ["ar"] = "疗", ["as"] = "舌", ["at"] = "帮", ["au"] = "那", ["av"] = "北", ["aw"] = "未", ["ax"] = "版", ["ay"] = "阌", ["az"] = "闹",
    -- 第六行（H 开头）
    ["ha"] = "情", ["hb"] = "八", ["hc"] = "怀", ["hd"] = "总", ["he"] = "条", ["hf"] = "夫", ["hg"] = "谷", ["hh"] = "卷", ["hi"] = "子", ["hj"] = "恰", ["hk"] = "公", ["hl"] = "并", ["hm"] = "送", ["hn"] = "快", ["ho"] = "首", ["hp"] = "分", ["hq"] = "单", ["hr"] = "曾", ["hs"] = "务", ["ht"] = "必", ["hu"] = "半", ["hv"] = "前", ["hw"] = "冬", ["hx"] = "心", ["hy"] = "处", ["hz"] = "登",
    -- 第七行（J 开头）
    ["ja"] = "们", ["jb"] = "会", ["jc"] = "做", ["jd"] = "斗", ["je"] = "他", ["jf"] = "使", ["jg"] = "个", ["jh"] = "份", ["ji"] = "位", ["jj"] = "从", ["jk"] = "付", ["jl"] = "仑", ["jm"] = "传", ["jn"] = "全", ["jo"] = "但", ["jp"] = "代", ["jq"] = "件", ["jr"] = "仅", ["js"] = "信", ["jt"] = "任", ["ju"] = "入", ["jv"] = "仍", ["jw"] = "作", ["jx"] = "你", ["jy"] = "倒", ["jz"] = "何",
    -- 第八行（K 开头）
    ["ka"] = "活", ["kb"] = "流", ["kc"] = "寸", ["kd"] = "台", ["ke"] = "杂", ["kf"] = "滑", ["kg"] = "法", ["kh"] = "亥", ["ki"] = "注", ["kj"] = "九", ["kk"] = "治", ["kl"] = "满", ["km"] = "母", ["kn"] = "汇", ["ko"] = "测", ["kp"] = "刻", ["kq"] = "泪", ["kr"] = "没", ["ks"] = "水", ["kt"] = "通", ["ku"] = "过", ["kv"] = "汽", ["kw"] = "学", ["kx"] = "派", ["ky"] = "酒", ["kz"] = "河",
    -- 第九行（L 开头）
    ["la"] = "世", ["lb"] = "耍", ["lc"] = "齿", ["ld"] = "名", ["le"] = "施", ["lf"] = "方", ["lg"] = "警", ["lh"] = "放", ["li"] = "药", ["lj"] = "花", ["lk"] = "落", ["ll"] = "多", ["lm"] = "英", ["ln"] = "廿", ["lo"] = "草", ["lp"] = "蓝", ["lq"] = "千", ["lr"] = "菲", ["ls"] = "生", ["lt"] = "萨", ["lu"] = "雅", ["lv"] = "散", ["lw"] = "带", ["lx"] = "夕", ["ly"] = "牙", ["lz"] = "节",
    -- 第十行（M 开头）
    ["ma"] = "专", ["mb"] = "巴", ["mc"] = "独", ["md"] = "启", ["me"] = "二", ["mf"] = "同", ["mg"] = "光", ["mh"] = "户", ["mi"] = "太", ["mj"] = "内", ["mk"] = "夺", ["ml"] = "两", ["mm"] = "央", ["mn"] = "码", ["mo"] = "犹", ["mp"] = "远", ["mq"] = "犬", ["mr"] = "破", ["ms"] = "石", ["mt"] = "所", ["mu"] = "达", ["mv"] = "肩", ["mw"] = "硕", ["mx"] = "确", ["my"] = "狐", ["mz"] = "犯",
    -- 第十一行（T 开头）
    ["ta"] = "朱", ["tb"] = "雪", ["tc"] = "蛋", ["td"] = "袖", ["te"] = "欣", ["tf"] = "弗", ["tg"] = "革", ["th"] = "失", ["ti"] = "衣", ["tj"] = "斤", ["tk"] = "么", ["tl"] = "龙", ["tm"] = "向", ["tn"] = "随", ["to"] = "费", ["tp"] = "翻", ["tq"] = "裹", ["tr"] = "被", ["ts"] = "三", ["tt"] = "袭", ["tu"] = "近", ["tv"] = "雨", ["tw"] = "院", ["tx"] = "隐", ["ty"] = "用", ["tz"] = "阿",
    -- 第十二行（R 开头）
    ["ra"] = "简", ["rb"] = "箫", ["rc"] = "固", ["rd"] = "回", ["re"] = "欢", ["rf"] = "非", ["rg"] = "等", ["rh"] = "悲", ["ri"] = "之", ["rj"] = "巾", ["rk"] = "对", ["rl"] = "簇", ["rm"] = "因", ["rn"] = "国", ["ro"] = "帽", ["rp"] = "皮", ["rq"] = "七", ["rr"] = "双", ["rs"] = "劝", ["rt"] = "第", ["ru"] = "竹", ["rv"] = "笔", ["rw"] = "瓦", ["rx"] = "鸡", ["ry"] = "又", ["rz"] = "篱",
    -- 第十三行（E 开头）
    ["ea"] = "杨", ["eb"] = "柳", ["ec"] = "极", ["ed"] = "窝", ["ee"] = "林", ["ef"] = "本", ["eg"] = "干", ["eh"] = "平", ["ei"] = "根", ["ej"] = "见", ["ek"] = "每", ["el"] = "穿", ["em"] = "木", ["en"] = "午", ["eo"] = "机", ["ep"] = "楼", ["eq"] = "欠", ["er"] = "权", ["es"] = "格", ["et"] = "窗", ["eu"] = "空", ["ev"] = "年", ["ew"] = "须", ["ex"] = "穴", ["ey"] = "档", ["ez"] = "柯",
    -- 第十四行（W 开头）
    ["wa"] = "乍", ["wb"] = "安", ["wc"] = "灾", ["wd"] = "况", ["we"] = "次", ["wf"] = "写", ["wg"] = "凉", ["wh"] = "怎", ["wi"] = "很", ["wj"] = "家", ["wk"] = "官", ["wl"] = "宽", ["wm"] = "头", ["wn"] = "德", ["wo"] = "审", ["wp"] = "免", ["wq"] = "寒", ["wr"] = "彻", ["ws"] = "客", ["wt"] = "定", ["wu"] = "五", ["wv"] = "它", ["ww"] = "实", ["wx"] = "象", ["wy"] = "页", ["wz"] = "凛",
    -- 第十五行（Q 开头）
    ["qa"] = "睛", ["qb"] = "聊", ["qc"] = "臣", ["qd"] = "告", ["qe"] = "耳", ["qf"] = "考", ["qg"] = "特", ["qh"] = "思", ["qi"] = "眼", ["qj"] = "井", ["qk"] = "眸", ["ql"] = "老", ["qm"] = "目", ["qn"] = "牛", ["qo"] = "者", ["qp"] = "先", ["qq"] = "齐", ["qr"] = "取", ["qs"] = "食", ["qt"] = "田", ["qu"] = "进", ["qv"] = "遇", ["qw"] = "瞎", ["qx"] = "饭", ["qy"] = "卧", ["qz"] = "眩",
    -- 第十六行（Y 开头）
    ["ya"] = "爪", ["yb"] = "当", ["yc"] = "车", ["yd"] = "点", ["ye"] = "采", ["yf"] = "上", ["yg"] = "瓜", ["yh"] = "致", ["yi"] = "至", ["yj"] = "轮", ["yk"] = "酸", ["yl"] = "罗", ["ym"] = "转", ["yn"] = "置", ["yo"] = "醒", ["yp"] = "轼", ["yq"] = "曲", ["yr"] = "轻", ["ys"] = "四", ["yt"] = "少", ["yu"] = "连", ["yv"] = "配", ["yw"] = "爱", ["yx"] = "小", ["yy"] = "酉", ["yz"] = "醉",
    -- 第十七行（U 开头）
    ["ua"] = "打", ["ub"] = "白", ["uc"] = "据", ["ud"] = "售", ["ue"] = "集", ["uf"] = "段", ["ug"] = "工", ["uh"] = "攻", ["ui"] = "拉", ["uj"] = "拾", ["uk"] = "热", ["ul"] = "摸", ["um"] = "击", ["un"] = "皇", ["uo"] = "提", ["up"] = "找", ["uq"] = "看", ["ur"] = "排", ["us"] = "手", ["ut"] = "拥", ["uu"] = "推", ["uv"] = "指", ["uw"] = "项", ["ux"] = "换", ["uy"] = "掉", ["uz"] = "报",
    -- 第十八行（I 开头）
    ["ia"] = "盘", ["ib"] = "义", ["ic"] = "册", ["id"] = "部", ["ie"] = "新", ["if"] = "组", ["ig"] = "艮", ["ih"] = "收", ["ii"] = "良", ["ij"] = "给", ["ik"] = "永", ["il"] = "立", ["im"] = "商", ["in"] = "主", ["io"] = "舟", ["ip"] = "继", ["iq"] = "细", ["ir"] = "经", ["is"] = "络", ["it"] = "矛", ["iu"] = "维", ["iv"] = "予", ["iw"] = "预", ["ix"] = "颜", ["iy"] = "幺", ["iz"] = "即",
    -- 第十九行（O 开头）
    ["oa"] = "电", ["ob"] = "贝", ["oc"] = "川", ["od"] = "知", ["oe"] = "朵", ["of"] = "晨", ["og"] = "影", ["oh"] = "败", ["oi"] = "自", ["oj"] = "几", ["ok"] = "时", ["ol"] = "星", ["om"] = "映", ["on"] = "早", ["oo"] = "州", ["op"] = "则", ["oq"] = "最", ["or"] = "日", ["os"] = "矢", ["ot"] = "题", ["ou"] = "巡", ["ov"] = "明", ["ow"] = "顺", ["ox"] = "暗", ["oy"] = "尤", ["oz"] = "短",
    -- 第二十行（P 开头）
    ["pa"] = "精", ["pb"] = "数", ["pc"] = "长", ["pd"] = "刀", ["pe"] = "儿", ["pf"] = "师", ["pg"] = "戈", ["ph"] = "黑", ["pi"] = "弋", ["pj"] = "料", ["pk"] = "踏", ["pl"] = "戒", ["pm"] = "米", ["pn"] = "越", ["po"] = "踢", ["pp"] = "划", ["pq"] = "趣", ["pr"] = "紧", ["ps"] = "鼠", ["pt"] = "跃", ["pu"] = "足", ["pv"] = "起", ["pw"] = "逃", ["px"] = "糖", ["py"] = "赴", ["pz"] = "走",
    -- 第二十一行（N 开头）
    ["na"] = "成", ["nb"] = "区", ["nc"] = "环", ["nd"] = "右", ["ne"] = "现", ["nf"] = "感", ["ng"] = "存", ["nh"] = "黄", ["ni"] = "玉", ["nj"] = "验", ["nk"] = "雄", ["nl"] = "弄", ["nm"] = "马", ["nn"] = "巨", ["no"] = "朝", ["np"] = "班", ["nq"] = "真", ["nr"] = "友", ["ns"] = "十", ["nt"] = "才", ["nu"] = "左", ["nv"] = "有", ["nw"] = "王", ["nx"] = "辛", ["ny"] = "戚", ["nz"] = "璃",
    -- 第二十二行（B 开头）
    ["ba"] = "妹", ["bb"] = "妇", ["bc"] = "姑", ["bd"] = "强", ["be"] = "她", ["bf"] = "姐", ["bg"] = "弓", ["bh"] = "好", ["bi"] = "娘", ["bj"] = "蠡", ["bk"] = "录", ["bl"] = "卵", ["bm"] = "面", ["bn"] = "女", ["bo"] = "贸", ["bp"] = "张", ["bq"] = "留", ["br"] = "努", ["bs"] = "动", ["bt"] = "群", ["bu"] = "建", ["bv"] = "奶", ["bw"] = "弱", ["bx"] = "弥", ["by"] = "云", ["bz"] = "迎",
    -- 第二十三行（V 开头）
    ["va"] = "肠", ["vb"] = "匕", ["vc"] = "肢", ["vd"] = "肿", ["ve"] = "肝", ["vf"] = "票", ["vg"] = "脚", ["vh"] = "改", ["vi"] = "已", ["vj"] = "以", ["vk"] = "导", ["vl"] = "异", ["vm"] = "然", ["vn"] = "乃", ["vo"] = "疑", ["vp"] = "刘", ["vq"] = "气", ["vr"] = "股", ["vs"] = "山", ["vt"] = "胧", ["vu"] = "这", ["vv"] = "比", ["vw"] = "文", ["vx"] = "西", ["vy"] = "月", ["vz"] = "服",
    -- 第二十四行（C 开头）
    ["ca"] = "灯", ["cb"] = "层", ["cc"] = "虫", ["cd"] = "否", ["ce"] = "炊", ["cf"] = "飞", ["cg"] = "古", ["ch"] = "火", ["ci"] = "支", ["cj"] = "及", ["ck"] = "尿", ["cl"] = "展", ["cm"] = "炉", ["cn"] = "炮", ["co"] = "贵", ["cp"] = "克", ["cq"] = "眉", ["cr"] = "烟", ["cs"] = "尸", ["ct"] = "属", ["cu"] = "还", ["cv"] = "尾", ["cw"] = "炸", ["cx"] = "焰", ["cy"] = "业", ["cz"] = "翅",
    -- 第二十五行（X 开头）
    ["xa"] = "剩", ["xb"] = "争", ["xc"] = "厂", ["xd"] = "种", ["xe"] = "床", ["xf"] = "后", ["xg"] = "广", ["xh"] = "意", ["xi"] = "久", ["xj"] = "科", ["xk"] = "应", ["xl"] = "鹿", ["xm"] = "色", ["xn"] = "鸟", ["xo"] = "负", ["xp"] = "利", ["xq"] = "稷", ["xr"] = "反", ["xs"] = "束", ["xt"] = "解", ["xu"] = "原", ["xv"] = "岛", ["xw"] = "稼", ["xx"] = "危", ["xy"] = "音", ["xz"] = "顾",
    -- 第二十五行（Z 开头）
    ["za"] = "魔", ["zb"] = "离", ["zc"] = "变", ["zd"] = "豆", ["ze"] = "某", ["zf"] = "钱", ["zg"] = "甘", ["zh"] = "其", ["zi"] = "率", ["zj"] = "金", ["zk"] = "射", ["zl"] = "错", ["zm"] = "麻", ["zn"] = "针", ["zo"] = "躲", ["zp"] = "钊", ["zq"] = "翼", ["zr"] = "市", ["zs"] = "身", ["zt"] = "铁", ["zu"] = "摩", ["zv"] = "羽", ["zw"] = "锭", ["zx"] = "习", ["zy"] = "销", ["zz"] = "哥",
}


-- 五笔86和虎码简码优化过滤器「 工厂函数 」
-- 保持一、二级简码对应的汉字在候选列表首位
-- by Jack Liu <https://aituyaa.com>

local function create_filter(primary_table, secondary_table)
    return function(input, env)
        local input_code = env.engine.context.input
        local code_len = #input_code
        local target_char
        
        -- 根据输入长度选择查找对应的简码表
        if code_len == 1 then
            target_char = primary_table[input_code]
        elseif code_len == 2 then
            target_char = secondary_table[input_code]
        end
        
        -- 如果没有匹配的简码或输入长度不符，直接返回原始候选
        if not target_char then
            for cand in input:iter() do
                yield(cand)
            end
            return
        end
        
        -- 查找并重新排序候选
        local new_candidates = {}
        local found = false
        local count = 0
        local limit = 8  -- 最多检查8个候选项
        
        for cand in input:iter() do
            count = count + 1
            if not found and cand.text == target_char then
                table.insert(new_candidates, 1, cand)
                found = true
            else
                table.insert(new_candidates, cand)
            end
            if count >= limit then break end
        end
        
        -- 输出重新排序后的候选
        for _, cand in ipairs(new_candidates) do
            yield(cand)
        end
    end
end


-- 创建过滤器
local W = { func = create_filter(primary_wubi_code_table, secondary_wubi_code_table) }
local T = { func = create_filter(primary_tiger_code_table, secondary_tiger_code_table) }

-- 导出过滤器
return { W = W, T = T, func = W.func }
