summaryrefslogtreecommitdiff
path: root/keyboards
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards')
-rw-r--r--keyboards/1upkeyboards/super16/keymaps/nblyumberg/config.h13
-rw-r--r--keyboards/1upkeyboards/super16/keymaps/nblyumberg/keymap.c127
-rw-r--r--keyboards/1upkeyboards/super16/keymaps/nblyumberg/readme.md6
-rw-r--r--keyboards/1upkeyboards/super16/keymaps/nblyumberg/rules.mk2
-rw-r--r--keyboards/40percentclub/nano/keymaps/drashna/keymap.c1
-rw-r--r--keyboards/acheron/elongate/config.h250
-rw-r--r--keyboards/acheron/elongate/elongate.c26
-rw-r--r--keyboards/acheron/elongate/elongate.h44
-rw-r--r--keyboards/acheron/elongate/info.json70
-rw-r--r--keyboards/acheron/elongate/keymaps/default/keymap.c34
-rw-r--r--keyboards/acheron/elongate/keymaps/default/readme.md1
-rw-r--r--keyboards/acheron/elongate/keymaps/via/config.h3
-rw-r--r--keyboards/acheron/elongate/keymaps/via/keymap.c34
-rw-r--r--keyboards/acheron/elongate/keymaps/via/rules.mk1
-rw-r--r--keyboards/acheron/elongate/readme.md25
-rw-r--r--keyboards/acheron/elongate/rules.mk34
-rw-r--r--keyboards/amjkeyboard/amj66/config.h1
-rw-r--r--keyboards/arabica37/arabica37.c1
-rw-r--r--keyboards/arabica37/arabica37.h5
-rw-r--r--keyboards/arabica37/config.h (renamed from keyboards/planck/old_keymap_files/keymap_common.c)17
-rw-r--r--keyboards/arabica37/info.json65
-rw-r--r--keyboards/arabica37/keymaps/default/config.h42
-rw-r--r--keyboards/arabica37/keymaps/default/keymap.c199
-rw-r--r--keyboards/arabica37/keymaps/default/rules.mk1
-rw-r--r--keyboards/arabica37/lib/glcdfont.c232
-rw-r--r--keyboards/arabica37/readme.md15
-rw-r--r--keyboards/arabica37/rev1/config.h82
-rw-r--r--keyboards/arabica37/rev1/rev1.c1
-rw-r--r--keyboards/arabica37/rev1/rev1.h23
-rw-r--r--keyboards/arabica37/rev1/rules.mk33
-rw-r--r--keyboards/ares/rules.mk2
-rw-r--r--keyboards/atreus/keymaps/xyverz/config.h4
-rw-r--r--keyboards/atreus/keymaps/xyverz/keymap.c13
-rw-r--r--keyboards/atreus/keymaps/xyverz/readme.md4
-rw-r--r--keyboards/atreus62/keymaps/scheiklp/config.h51
-rw-r--r--keyboards/atreus62/keymaps/scheiklp/keymap.c43
-rw-r--r--keyboards/atreus62/keymaps/scheiklp/readme.md13
-rw-r--r--keyboards/atreus62/keymaps/scheiklp/rules.mk4
-rw-r--r--keyboards/aves65/aves65.c1
-rw-r--r--keyboards/aves65/aves65.h19
-rw-r--r--keyboards/aves65/config.h61
-rw-r--r--keyboards/aves65/info.json85
-rw-r--r--keyboards/aves65/keymaps/default/keymap.c18
-rw-r--r--keyboards/aves65/readme.md15
-rw-r--r--keyboards/aves65/rules.mk34
-rw-r--r--keyboards/basekeys/slice/rev1/config.h2
-rw-r--r--keyboards/basekeys/slice/rev1_rgb/config.h2
-rw-r--r--keyboards/bfake/rules.mk2
-rw-r--r--keyboards/blackplum/config.h6
-rw-r--r--keyboards/blackplum/keymaps/via/keymap.c38
-rw-r--r--keyboards/blackplum/keymaps/via/rules.mk2
-rw-r--r--keyboards/chidori/keymaps/oled_sample/keymap.c217
-rw-r--r--keyboards/chidori/keymaps/oled_sample/readme.md1
-rw-r--r--keyboards/chidori/keymaps/oled_sample/rules.mk2
-rw-r--r--keyboards/claw44/ssd1306.h3
-rw-r--r--keyboards/clueboard/2x1800/2018/2018.c (renamed from keyboards/clueboard/2x1800/2x1800.c)2
-rw-r--r--keyboards/clueboard/2x1800/2018/2018.h (renamed from keyboards/clueboard/2x1800/2x1800.h)0
-rw-r--r--keyboards/clueboard/2x1800/2018/config.h (renamed from keyboards/clueboard/2x1800/config.h)2
-rw-r--r--keyboards/clueboard/2x1800/2018/info.json42
-rw-r--r--keyboards/clueboard/2x1800/2018/keymaps/default/config.h (renamed from keyboards/clueboard/2x1800/keymaps/default/config.h)0
-rw-r--r--keyboards/clueboard/2x1800/2018/keymaps/default/keymap.json11
-rw-r--r--keyboards/clueboard/2x1800/2018/keymaps/default/readme.md (renamed from keyboards/clueboard/2x1800/keymaps/default/readme.md)0
-rw-r--r--keyboards/clueboard/2x1800/2018/keymaps/default_4u/keymap.c (renamed from keyboards/clueboard/2x1800/keymaps/default_4u/keymap.c)2
-rw-r--r--keyboards/clueboard/2x1800/2018/keymaps/default_4u/readme.md (renamed from keyboards/clueboard/2x1800/keymaps/default_4u/readme.md)0
-rw-r--r--keyboards/clueboard/2x1800/2018/keymaps/default_7u/keymap.c (renamed from keyboards/clueboard/2x1800/keymaps/default_7u/keymap.c)0
-rw-r--r--keyboards/clueboard/2x1800/2018/keymaps/default_7u/readme.md (renamed from keyboards/clueboard/2x1800/keymaps/default_7u/readme.md)0
-rw-r--r--keyboards/clueboard/2x1800/2018/keymaps/macroboard/keymap.c (renamed from keyboards/clueboard/2x1800/keymaps/macroboard/keymap.c)2
-rw-r--r--keyboards/clueboard/2x1800/2018/keymaps/macroboard/readme.md (renamed from keyboards/clueboard/2x1800/keymaps/macroboard/readme.md)0
-rw-r--r--keyboards/clueboard/2x1800/2018/keymaps/mouseboard_left/keymap.c (renamed from keyboards/clueboard/2x1800/keymaps/mouseboard_left/keymap.c)2
-rw-r--r--keyboards/clueboard/2x1800/2018/keymaps/mouseboard_left/readme.md (renamed from keyboards/clueboard/2x1800/keymaps/mouseboard_left/readme.md)0
-rw-r--r--keyboards/clueboard/2x1800/2018/keymaps/mouseboard_right/keymap.c (renamed from keyboards/clueboard/2x1800/keymaps/mouseboard_right/keymap.c)2
-rw-r--r--keyboards/clueboard/2x1800/2018/keymaps/mouseboard_right/readme.md (renamed from keyboards/clueboard/2x1800/keymaps/mouseboard_right/readme.md)0
-rw-r--r--keyboards/clueboard/2x1800/2018/readme.md13
-rw-r--r--keyboards/clueboard/2x1800/2018/rules.mk (renamed from keyboards/clueboard/2x1800/rules.mk)0
-rw-r--r--keyboards/clueboard/2x1800/2019/2019.c182
-rw-r--r--keyboards/clueboard/2x1800/2019/2019.h257
-rw-r--r--keyboards/clueboard/2x1800/2019/config.h214
-rw-r--r--keyboards/clueboard/2x1800/2019/info.json42
-rw-r--r--keyboards/clueboard/2x1800/2019/keymaps/default/keymap.json11
-rw-r--r--keyboards/clueboard/2x1800/2019/keymaps/default/readme.md1
-rw-r--r--keyboards/clueboard/2x1800/2019/keymaps/default_1u_ansi/keymap.c (renamed from keyboards/clueboard/2x1800/keymaps/default/keymap.c)16
-rw-r--r--keyboards/clueboard/2x1800/2019/keymaps/default_1u_ansi/readme.md1
-rw-r--r--keyboards/clueboard/2x1800/2019/keymaps/default_1u_iso/keymap.c28
-rw-r--r--keyboards/clueboard/2x1800/2019/keymaps/default_1u_iso/readme.md1
-rw-r--r--keyboards/clueboard/2x1800/2019/keymaps/default_2u_ansi/keymap.c28
-rw-r--r--keyboards/clueboard/2x1800/2019/keymaps/default_2u_ansi/readme.md1
-rw-r--r--keyboards/clueboard/2x1800/2019/keymaps/default_2u_iso/keymap.c28
-rw-r--r--keyboards/clueboard/2x1800/2019/keymaps/default_2u_iso/readme.md1
-rw-r--r--keyboards/clueboard/2x1800/2019/keymaps/default_4u_ansi/config.h (renamed from keyboards/clueboard/2x1800/keymaps/default_4u/config.h)2
-rw-r--r--keyboards/clueboard/2x1800/2019/keymaps/default_4u_ansi/keymap.c28
-rw-r--r--keyboards/clueboard/2x1800/2019/keymaps/default_4u_ansi/readme.md1
-rw-r--r--keyboards/clueboard/2x1800/2019/keymaps/default_4u_iso/config.h (renamed from keyboards/clueboard/2x1800/keymaps/default_7u/config.h)2
-rw-r--r--keyboards/clueboard/2x1800/2019/keymaps/default_4u_iso/keymap.c28
-rw-r--r--keyboards/clueboard/2x1800/2019/keymaps/default_4u_iso/readme.md1
-rw-r--r--keyboards/clueboard/2x1800/2019/keymaps/default_7u_ansi/config.h (renamed from keyboards/clueboard/2x1800/keymaps/macroboard/config.h)2
-rw-r--r--keyboards/clueboard/2x1800/2019/keymaps/default_7u_ansi/keymap.c28
-rw-r--r--keyboards/clueboard/2x1800/2019/keymaps/default_7u_ansi/readme.md1
-rw-r--r--keyboards/clueboard/2x1800/2019/keymaps/default_7u_iso/config.h19
-rw-r--r--keyboards/clueboard/2x1800/2019/keymaps/default_7u_iso/keymap.c28
-rw-r--r--keyboards/clueboard/2x1800/2019/keymaps/default_7u_iso/readme.md1
-rw-r--r--keyboards/clueboard/2x1800/2019/readme.md13
-rw-r--r--keyboards/clueboard/2x1800/2019/rules.mk25
-rw-r--r--keyboards/clueboard/2x1800/info.json39
-rw-r--r--keyboards/clueboard/2x1800/keymaps/mouseboard_right/config.h21
-rw-r--r--keyboards/clueboard/2x1800/readme.md7
-rw-r--r--keyboards/comet46/ssd1306.h3
-rwxr-xr-xkeyboards/contra/config.h4
-rw-r--r--keyboards/contra/keymaps/via/keymap.c98
-rw-r--r--keyboards/contra/keymaps/via/readme.md2
-rw-r--r--keyboards/contra/keymaps/via/rules.mk1
-rw-r--r--keyboards/converter/palm_usb/matrix.c41
-rw-r--r--keyboards/coseyfannitutti/discipad/rules.mk3
-rw-r--r--keyboards/coseyfannitutti/discipline/rules.mk3
-rw-r--r--keyboards/coseyfannitutti/mysterium/rules.mk3
-rw-r--r--keyboards/coseyfannitutti/romeo/romeo.h2
-rw-r--r--keyboards/coseyfannitutti/romeo/rules.mk4
-rw-r--r--keyboards/crkbd/ssd1306.c140
-rw-r--r--keyboards/crkbd/ssd1306.h3
-rw-r--r--keyboards/db/db63/rules.mk2
-rw-r--r--keyboards/donutcables/budget96/rules.mk2
-rw-r--r--keyboards/doro67/multi/keymaps/konstantin/config.h2
-rw-r--r--keyboards/doro67/multi/keymaps/konstantin/rules.mk15
-rw-r--r--keyboards/duck/orion/v3/config.h1
-rw-r--r--keyboards/dz60/config.h41
-rw-r--r--keyboards/dz60/dz60.c23
-rw-r--r--keyboards/dz60/dz60.h5
-rw-r--r--keyboards/dz60/info.json173
-rw-r--r--keyboards/dz60/keymaps/default/keymap.c34
-rw-r--r--keyboards/dz60/readme.md8
-rw-r--r--keyboards/dz60/rules.mk27
-rw-r--r--keyboards/dztech/dz65rgb/dz65rgb.c2
-rw-r--r--keyboards/dztech/dz65rgb/keymaps/drootz/config.h52
-rw-r--r--keyboards/dztech/dz65rgb/keymaps/drootz/keymap.c757
-rw-r--r--keyboards/dztech/dz65rgb/keymaps/drootz/readme.md210
-rw-r--r--keyboards/dztech/dz65rgb/keymaps/drootz/rules.mk11
-rw-r--r--keyboards/eniigmakeyboards/ek87/config.h250
-rw-r--r--keyboards/eniigmakeyboards/ek87/ek87.c17
-rw-r--r--keyboards/eniigmakeyboards/ek87/ek87.h150
-rw-r--r--keyboards/eniigmakeyboards/ek87/info.json72
-rw-r--r--keyboards/eniigmakeyboards/ek87/keymaps/default/keymap.c12
-rw-r--r--keyboards/eniigmakeyboards/ek87/keymaps/via/keymap.c36
-rw-r--r--keyboards/eniigmakeyboards/ek87/keymaps/via/rules.mk1
-rw-r--r--keyboards/eniigmakeyboards/ek87/readme.md17
-rw-r--r--keyboards/eniigmakeyboards/ek87/rules.mk32
-rw-r--r--keyboards/ergodox_ez/led_i2c.c28
-rw-r--r--keyboards/ergodox_ez/rules.mk1
-rw-r--r--keyboards/eve/meteor/rules.mk2
-rw-r--r--keyboards/exclusive/e6v2/le_bmc/info.json4
-rw-r--r--keyboards/exclusive/e6v2/le_bmc/rules.mk2
-rw-r--r--keyboards/exclusive/e6v2/oe_bmc/info.json4
-rw-r--r--keyboards/exclusive/e6v2/oe_bmc/rules.mk2
-rw-r--r--keyboards/exclusive/e7v1/config.h4
-rw-r--r--keyboards/exclusive/e7v1/keymaps/via/keymap.c51
-rw-r--r--keyboards/exclusive/e7v1/keymaps/via/rules.mk2
-rw-r--r--keyboards/exclusive/e7v1/readme.md6
-rw-r--r--keyboards/exent/rules.mk2
-rw-r--r--keyboards/facew/rules.mk2
-rw-r--r--keyboards/flx/lodestone/info.json10
-rw-r--r--keyboards/ft/mars80/rules.mk2
-rw-r--r--keyboards/funky40/keymaps/default/keymap.c12
-rw-r--r--keyboards/gboards/combos/_generator/input.json99
-rw-r--r--keyboards/gboards/combos/_generator/main.go60
-rw-r--r--keyboards/gboards/combos/eng-combos.def97
-rw-r--r--keyboards/gboards/combos/germ-mouse-keys.def2
-rw-r--r--keyboards/gboards/combos/germ-vim-helpers.def10
-rw-r--r--keyboards/gboards/combos/readme.md7
-rw-r--r--keyboards/gboards/dicts/aset/_generator/main.go298
-rw-r--r--keyboards/gboards/dicts/aset/_generator/src/da-keymap.json1
-rw-r--r--keyboards/gboards/dicts/aset/_generator/src/de-keymap.json1
-rw-r--r--keyboards/gboards/dicts/aset/_generator/src/en-colemak-keymap.json1
-rw-r--r--keyboards/gboards/dicts/aset/_generator/src/en-dvorak-keymap.json1
-rw-r--r--keyboards/gboards/dicts/aset/_generator/src/en-keymap.json1
-rw-r--r--keyboards/gboards/dicts/aset/_generator/src/es-keymap.json1
-rw-r--r--keyboards/gboards/dicts/aset/_generator/src/fn-keymap.json1
-rw-r--r--keyboards/gboards/dicts/aset/_generator/src/fr-keymap.json1
-rw-r--r--keyboards/gboards/dicts/aset/_generator/src/hu-keymap.json1
-rw-r--r--keyboards/gboards/dicts/aset/_generator/src/it-keymap.json1
-rw-r--r--keyboards/gboards/dicts/aset/_generator/src/nl-keymap.json1
-rw-r--r--keyboards/gboards/dicts/aset/_generator/src/num-keymap.json2830
-rw-r--r--keyboards/gboards/dicts/aset/_generator/src/nw-keymap.json1
-rw-r--r--keyboards/gboards/dicts/aset/_generator/src/pl-keymap.json1
-rw-r--r--keyboards/gboards/dicts/aset/_generator/src/pt-keymap.json1
-rw-r--r--keyboards/gboards/dicts/aset/_generator/src/ro-keymap.json1
-rw-r--r--keyboards/gboards/dicts/aset/_generator/src/sv-keymap.json1
-rw-r--r--keyboards/gboards/dicts/aset/_generator/src/tr-keymap.json1
-rw-r--r--keyboards/gboards/dicts/aset/cmd-keymap.def28
-rw-r--r--keyboards/gboards/dicts/aset/da-keymap.def386
-rw-r--r--keyboards/gboards/dicts/aset/de-keymap.def373
-rw-r--r--keyboards/gboards/dicts/aset/en-colemak-keymap.def394
-rw-r--r--keyboards/gboards/dicts/aset/en-dvorak-keymap.def420
-rw-r--r--keyboards/gboards/dicts/aset/en-keymap.def403
-rw-r--r--keyboards/gboards/dicts/aset/es-keymap.def389
-rw-r--r--keyboards/gboards/dicts/aset/fn-keymap.def374
-rw-r--r--keyboards/gboards/dicts/aset/fr-keymap.def391
-rw-r--r--keyboards/gboards/dicts/aset/hu-keymap.def395
-rw-r--r--keyboards/gboards/dicts/aset/it-keymap.def399
-rw-r--r--keyboards/gboards/dicts/aset/layer-keymap.def22
-rw-r--r--keyboards/gboards/dicts/aset/nl-keymap.def396
-rw-r--r--keyboards/gboards/dicts/aset/num-keymap.def36
-rw-r--r--keyboards/gboards/dicts/aset/nw-keymap.def381
-rw-r--r--keyboards/gboards/dicts/aset/pl-keymap.def391
-rw-r--r--keyboards/gboards/dicts/aset/pt-keymap.def398
-rw-r--r--keyboards/gboards/dicts/aset/ro-keymap.def409
-rw-r--r--keyboards/gboards/dicts/aset/sv-keymap.def403
-rw-r--r--keyboards/gboards/dicts/aset/tr-keymap.def387
-rw-r--r--keyboards/gboards/engine/config.h0
-rw-r--r--keyboards/gboards/engine/engine.c458
-rw-r--r--keyboards/gboards/engine/engine.h104
-rw-r--r--keyboards/gboards/engine/keymap_engine.h121
-rw-r--r--keyboards/gboards/engine/rules.mk1
-rw-r--r--keyboards/gboards/g/config_default.h90
-rw-r--r--keyboards/gboards/g/engine.c470
-rw-r--r--keyboards/gboards/g/engine.h117
-rw-r--r--keyboards/gboards/g/keymap_combo.h56
-rw-r--r--keyboards/gboards/g/keymap_engine.h122
-rw-r--r--keyboards/gboards/g/rules.mk1
-rw-r--r--keyboards/gboards/readme.md39
-rw-r--r--keyboards/gergo/keymaps/abstractkb/config.h6
-rw-r--r--keyboards/gergo/keymaps/abstractkb/keymap.c128
-rw-r--r--keyboards/gergo/keymaps/abstractkb/readme.md10
-rw-r--r--keyboards/gergo/keymaps/abstractkb/rules.mk37
-rw-r--r--keyboards/gingham/rules.mk3
-rw-r--r--keyboards/gray_studio/cod67/config.h1
-rw-r--r--keyboards/gray_studio/cod67/readme.md4
-rw-r--r--keyboards/gray_studio/hb85/rules.mk2
-rw-r--r--keyboards/handwired/aek64/config.h3
-rw-r--r--keyboards/handwired/bdn9_ble/config.h1
-rw-r--r--keyboards/handwired/d48/README.md87
-rw-r--r--keyboards/handwired/d48/config.h77
-rw-r--r--keyboards/handwired/d48/d48.c1
-rw-r--r--keyboards/handwired/d48/d48.h19
-rw-r--r--keyboards/handwired/d48/ds1307.c21
-rw-r--r--keyboards/handwired/d48/ds1307.h6
-rw-r--r--keyboards/handwired/d48/glcdfont_d48.c231
-rw-r--r--keyboards/handwired/d48/keymaps/anderson/keymap.c340
-rw-r--r--keyboards/handwired/d48/keymaps/anderson/lightmode.c44
-rw-r--r--keyboards/handwired/d48/keymaps/anderson/lightmode.h12
-rw-r--r--keyboards/handwired/d48/keymaps/anderson/rules.mk2
-rw-r--r--keyboards/handwired/d48/keymaps/default/keymap.c285
-rw-r--r--keyboards/handwired/d48/rules.mk22
-rw-r--r--keyboards/handwired/d48/taphold.c29
-rw-r--r--keyboards/handwired/d48/taphold.h25
-rw-r--r--keyboards/handwired/hnah40/rules.mk3
-rw-r--r--keyboards/handwired/prime_exl/info.json2
-rw-r--r--keyboards/handwired/sick68/sick68.h8
-rw-r--r--keyboards/handwired/twadlee/tp69/chconf.h700
-rw-r--r--keyboards/handwired/twadlee/tp69/config.h253
-rw-r--r--keyboards/handwired/twadlee/tp69/halconf.h524
-rw-r--r--keyboards/handwired/twadlee/tp69/info.json12
-rw-r--r--keyboards/handwired/twadlee/tp69/keymaps/default/keymap.c28
-rw-r--r--keyboards/handwired/twadlee/tp69/keymaps/default/readme.md1
-rw-r--r--keyboards/handwired/twadlee/tp69/mcuconf.h45
-rw-r--r--keyboards/handwired/twadlee/tp69/readme.md18
-rw-r--r--keyboards/handwired/twadlee/tp69/rules.mk28
-rw-r--r--keyboards/handwired/twadlee/tp69/tp69.c18
-rw-r--r--keyboards/handwired/twadlee/tp69/tp69.h48
-rw-r--r--keyboards/handwired/twadlee/tp69/twadlee-tp69-kle.json139
-rw-r--r--keyboards/helix/local_drivers/ssd1306.h1
-rw-r--r--keyboards/helix/pico/config.h4
-rw-r--r--keyboards/helix/rev1/config.h4
-rw-r--r--keyboards/helix/rev2/config.h4
-rw-r--r--keyboards/helix/rev2/keymaps/xulkal/config.h38
-rw-r--r--keyboards/helix/rev2/keymaps/xulkal/keymap.c8
-rw-r--r--keyboards/id80/config.h28
-rw-r--r--keyboards/id80/id80.h23
-rw-r--r--keyboards/j80/rules.mk2
-rw-r--r--keyboards/jc65/v32a/rules.mk2
-rw-r--r--keyboards/jj40/keymaps/stevexyz/config.h12
-rw-r--r--keyboards/jj40/keymaps/stevexyz/keyboard-layout-editor-raw-data.txt4
-rw-r--r--keyboards/jj40/keymaps/stevexyz/keymap.c71
-rw-r--r--keyboards/jj40/keymaps/stevexyz/readme.md5
-rw-r--r--keyboards/jj40/keymaps/stevexyz/rules.mk1
-rw-r--r--keyboards/jj50/keymaps/archetype/rules.mk3
-rw-r--r--keyboards/jj50/rules.mk2
-rw-r--r--keyboards/kbdclack/kaishi65/config.h251
-rw-r--r--keyboards/kbdclack/kaishi65/info.json12
-rw-r--r--keyboards/kbdclack/kaishi65/kaishi65.c17
-rw-r--r--keyboards/kbdclack/kaishi65/kaishi65.h44
-rw-r--r--keyboards/kbdclack/kaishi65/keymaps/default/keymap.c39
-rw-r--r--keyboards/kbdclack/kaishi65/keymaps/default/readme.md1
-rw-r--r--keyboards/kbdclack/kaishi65/readme.md14
-rw-r--r--keyboards/kbdclack/kaishi65/rules.mk33
-rw-r--r--keyboards/kbdfans/kbd67/hotswap/hotswap.h2
-rw-r--r--keyboards/kbdfans/kbd67/hotswap/keymaps/bcat/keymap.c28
-rw-r--r--keyboards/kbdfans/kbd67/hotswap/keymaps/bcat/readme.md16
-rw-r--r--keyboards/kbdfans/kbd67/hotswap/rules.mk2
-rw-r--r--keyboards/kbdfans/kbd67/rev1/rules.mk2
-rw-r--r--keyboards/kbdfans/kbd67/rev2/rev2.h2
-rw-r--r--keyboards/kbdfans/kbd67/rev2/rules.mk2
-rw-r--r--keyboards/kbdfans/kbd6x/keymaps/konstantin/config.h2
-rw-r--r--keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c2
-rw-r--r--keyboards/kbdfans/kbd6x/keymaps/konstantin/rules.mk17
-rw-r--r--keyboards/kbdfans/kbdpad/mk1/rules.mk2
-rw-r--r--keyboards/keebio/bfo9000/keymaps/abstractkb/keymap.c8
-rw-r--r--keyboards/keebio/viterbi/keymaps/vosechu/config.h41
-rw-r--r--keyboards/keebio/viterbi/keymaps/vosechu/keymap.c91
-rw-r--r--keyboards/keebio/viterbi/keymaps/vosechu/rules.mk1
-rw-r--r--keyboards/keycapsss/plaid_pad/rules.mk4
-rw-r--r--keyboards/kinesis/keymaps/xyverz/keymap.c14
-rw-r--r--keyboards/kinesis/keymaps/xyverz/readme.md12
-rw-r--r--keyboards/kingly_keys/romac_plus/keymaps/via/keymap.c17
-rw-r--r--keyboards/kingly_keys/romac_plus/keymaps/via/rules.mk1
-rw-r--r--keyboards/lattice60/rules.mk3
-rw-r--r--keyboards/le_chiffre/config.h46
-rw-r--r--keyboards/le_chiffre/info.json15
-rw-r--r--keyboards/le_chiffre/keymaps/default/keymap.c142
-rw-r--r--keyboards/le_chiffre/keymaps/default/readme.md1
-rw-r--r--keyboards/le_chiffre/le_chiffre.c1
-rw-r--r--keyboards/le_chiffre/le_chiffre.h18
-rw-r--r--keyboards/le_chiffre/readme.md15
-rw-r--r--keyboards/le_chiffre/rules.mk22
-rwxr-xr-xkeyboards/lily58/ssd1306.h3
-rw-r--r--keyboards/maartenwut/wasdat/keymaps/konstantin/config.h2
-rw-r--r--keyboards/maartenwut/wasdat/keymaps/konstantin/rules.mk14
-rw-r--r--keyboards/massdrop/ctrl/info.json6
-rw-r--r--keyboards/maxr1998/phoebe/config.h4
-rw-r--r--keyboards/maxr1998/phoebe/keymaps/default/keymap.c115
-rw-r--r--keyboards/maxr1998/phoebe/rules.mk1
-rw-r--r--keyboards/maxr1998/pulse4k/config.h30
-rw-r--r--keyboards/maxr1998/pulse4k/keymaps/default/keymap.c34
-rw-r--r--keyboards/maxr1998/pulse4k/keymaps/maxr1998/keymap.c (renamed from keyboards/clueboard/2x1800/keymaps/mouseboard_left/config.h)22
-rw-r--r--keyboards/maxr1998/pulse4k/pulse4k.c48
-rw-r--r--keyboards/maxr1998/pulse4k/pulse4k.h30
-rw-r--r--keyboards/mechlovin/adelais/adelais.c69
-rw-r--r--keyboards/mechlovin/adelais/adelais.h33
-rw-r--r--keyboards/mechlovin/adelais/config.h46
-rw-r--r--keyboards/mechlovin/adelais/info.json81
-rw-r--r--keyboards/mechlovin/adelais/keymaps/default/keymap.c32
-rw-r--r--keyboards/mechlovin/adelais/keymaps/default/readme.md1
-rw-r--r--keyboards/mechlovin/adelais/keymaps/via/keymap.c44
-rw-r--r--keyboards/mechlovin/adelais/keymaps/via/readme.md1
-rw-r--r--keyboards/mechlovin/adelais/keymaps/via/rules.mk1
-rw-r--r--keyboards/mechlovin/adelais/readme.md18
-rw-r--r--keyboards/mechlovin/adelais/rgb_led/config.h16
-rw-r--r--keyboards/mechlovin/adelais/rgb_led/rules.mk1
-rw-r--r--keyboards/mechlovin/adelais/rules.mk23
-rw-r--r--keyboards/mechlovin/adelais/standard_led/config.h15
-rw-r--r--keyboards/mechlovin/adelais/standard_led/rules.mk3
-rw-r--r--keyboards/mechlovin/hannah60rgb/config.h58
-rw-r--r--keyboards/mechlovin/hannah60rgb/hannah60rgb.c54
-rw-r--r--keyboards/mechlovin/hannah60rgb/hannah60rgb.h63
-rw-r--r--keyboards/mechlovin/hannah60rgb/info.json81
-rw-r--r--keyboards/mechlovin/hannah60rgb/keymaps/default/keymap.c26
-rw-r--r--keyboards/mechlovin/hannah60rgb/keymaps/default/readme.md1
-rw-r--r--keyboards/mechlovin/hannah60rgb/keymaps/via/keymap.c44
-rw-r--r--keyboards/mechlovin/hannah60rgb/keymaps/via/readme.md1
-rw-r--r--keyboards/mechlovin/hannah60rgb/keymaps/via/rules.mk1
-rw-r--r--keyboards/mechlovin/hannah60rgb/readme.md15
-rw-r--r--keyboards/mechlovin/hannah60rgb/rules.mk27
-rw-r--r--keyboards/mechlovin/pisces/config.h76
-rw-r--r--keyboards/mechlovin/pisces/info.json80
-rw-r--r--keyboards/mechlovin/pisces/keymaps/default/keymap.c34
-rw-r--r--keyboards/mechlovin/pisces/keymaps/default/readme.md1
-rw-r--r--keyboards/mechlovin/pisces/keymaps/via/keymap.c48
-rw-r--r--keyboards/mechlovin/pisces/keymaps/via/readme.md1
-rw-r--r--keyboards/mechlovin/pisces/keymaps/via/rules.mk1
-rw-r--r--keyboards/mechlovin/pisces/pisces.c42
-rw-r--r--keyboards/mechlovin/pisces/pisces.h36
-rw-r--r--keyboards/mechlovin/pisces/readme.md13
-rw-r--r--keyboards/mechlovin/pisces/rules.mk32
-rw-r--r--keyboards/mechmini/v1/rules.mk2
-rw-r--r--keyboards/mehkee96/rules.mk2
-rw-r--r--keyboards/melody96/config.h8
-rw-r--r--keyboards/melody96/keymaps/konstantin/rules.mk16
-rw-r--r--keyboards/melody96/keymaps/via/keymap.c36
-rw-r--r--keyboards/melody96/keymaps/via/readme.md5
-rw-r--r--keyboards/melody96/keymaps/via/rules.mk2
-rw-r--r--keyboards/melody96/rules.mk2
-rwxr-xr-xkeyboards/montsinger/rebound/readme.md9
-rw-r--r--keyboards/montsinger/rebound/rebound.h2
-rw-r--r--keyboards/montsinger/rebound/rev2/keymaps/rossman360/keymap.c4
-rw-r--r--keyboards/montsinger/rebound/rev3/config.h65
-rw-r--r--keyboards/montsinger/rebound/rev3/info.json128
-rw-r--r--keyboards/montsinger/rebound/rev3/keymaps/default/keymap.c102
-rw-r--r--keyboards/montsinger/rebound/rev3/keymaps/rossman360/keymap.c112
-rw-r--r--keyboards/montsinger/rebound/rev3/keymaps/rossman360/rules.mk4
-rw-r--r--keyboards/montsinger/rebound/rev3/rev3.h53
-rw-r--r--keyboards/montsinger/rebound/rev3/rules.mk34
-rw-r--r--keyboards/mt40/rules.mk2
-rw-r--r--keyboards/murcielago/info.json73
-rw-r--r--keyboards/murcielago/murcielago.c17
-rw-r--r--keyboards/murcielago/murcielago.h49
-rw-r--r--keyboards/murcielago/readme.md16
-rw-r--r--keyboards/murcielago/rev1/config.h97
-rw-r--r--keyboards/murcielago/rev1/keymaps/default/keymap.c130
-rw-r--r--keyboards/murcielago/rev1/keymaps/via/keymap.c130
-rw-r--r--keyboards/murcielago/rev1/keymaps/via/rules.mk1
-rw-r--r--keyboards/murcielago/rev1/rules.mk34
-rw-r--r--keyboards/murcielago/rules.mk1
-rw-r--r--keyboards/pabile/p18/config.h27
-rw-r--r--keyboards/pabile/p18/info.json31
-rw-r--r--keyboards/pabile/p18/keymaps/default/keymap.c27
-rw-r--r--keyboards/pabile/p18/p18.c1
-rw-r--r--keyboards/pabile/p18/p18.h16
-rw-r--r--keyboards/pabile/p18/readme.md15
-rw-r--r--keyboards/pabile/p18/rules.mk35
-rw-r--r--keyboards/pabile/p20/config.h26
-rw-r--r--keyboards/pabile/p20/keymaps/default/keymap.c38
-rw-r--r--keyboards/pabile/p20/p20.c1
-rw-r--r--keyboards/pabile/p20/p20.h18
-rw-r--r--keyboards/pabile/p20/readme.md16
-rw-r--r--keyboards/pabile/p20/rules.mk37
-rw-r--r--keyboards/pabile/p40/config.h29
-rw-r--r--keyboards/pabile/p40/info.json52
-rw-r--r--keyboards/pabile/p40/keymaps/default/keymap.c29
-rw-r--r--keyboards/pabile/p40/p40.c1
-rw-r--r--keyboards/pabile/p40/p40.h16
-rw-r--r--keyboards/pabile/p40/readme.md15
-rw-r--r--keyboards/pabile/p40/rules.mk36
-rw-r--r--keyboards/panc60/rules.mk2
-rw-r--r--keyboards/pearl/rules.mk2
-rw-r--r--keyboards/percent/canoe/rules.mk2
-rw-r--r--keyboards/percent/skog/rules.mk2
-rw-r--r--keyboards/percent/skog_lite/rules.mk2
-rw-r--r--keyboards/plaid/rules.mk3
-rw-r--r--keyboards/planck/old_keymap_files/common_keymaps/keymap_brett.c42
-rw-r--r--keyboards/planck/old_keymap_files/common_keymaps/keymap_dotcom.c34
-rw-r--r--keyboards/planck/old_keymap_files/common_keymaps/keymap_jack.c50
-rw-r--r--keyboards/planck/old_keymap_files/common_keymaps/keymap_joe.c83
-rw-r--r--keyboards/planck/old_keymap_files/common_keymaps/keymap_matthew.c70
-rw-r--r--keyboards/planck/old_keymap_files/common_keymaps/keymap_nathan.c154
-rw-r--r--keyboards/planck/old_keymap_files/common_keymaps/keymap_paul.c49
-rw-r--r--keyboards/planck/old_keymap_files/common_keymaps/keymap_peasant.c51
-rw-r--r--keyboards/planck/old_keymap_files/common_keymaps/keymap_reed.c74
-rw-r--r--keyboards/planck/old_keymap_files/common_keymaps/keymap_sean.c105
-rw-r--r--keyboards/planck/old_keymap_files/common_keymaps/keymap_shane.c99
-rw-r--r--keyboards/planck/old_keymap_files/common_keymaps/keymap_simon.c44
-rw-r--r--keyboards/planck/old_keymap_files/common_keymaps/keymap_tim.c44
-rw-r--r--keyboards/planck/old_keymap_files/common_keymaps/keymap_wilba.c54
-rw-r--r--keyboards/planck/old_keymap_files/keymap_common.h129
-rw-r--r--keyboards/preonic/keymaps/AlexDaigre/config.h37
-rw-r--r--keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/adjust.json80
-rw-r--r--keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/lower.json80
-rw-r--r--keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/main.json95
-rw-r--r--keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/raise.json80
-rw-r--r--keyboards/preonic/keymaps/AlexDaigre/keymap.c326
-rw-r--r--keyboards/preonic/keymaps/AlexDaigre/readme.md19
-rw-r--r--keyboards/preonic/keymaps/AlexDaigre/rules.mk1
-rw-r--r--keyboards/preonic/keymaps/pvillano/config.h32
-rw-r--r--keyboards/preonic/keymaps/pvillano/keymap.c113
-rw-r--r--keyboards/preonic/keymaps/pvillano/readme.md25
-rw-r--r--keyboards/preonic/keymaps/pvillano/rules.mk1
-rw-r--r--keyboards/projectkb/alice/keymaps/stanrc85/keymap.c6
-rw-r--r--keyboards/quad_h/lb75/config.h196
-rw-r--r--keyboards/quad_h/lb75/info.json187
-rw-r--r--keyboards/quad_h/lb75/keymaps/continuous_fnrow/keymap.c35
-rw-r--r--keyboards/quad_h/lb75/keymaps/continuous_fnrow/readme.md3
-rw-r--r--keyboards/quad_h/lb75/keymaps/default/keymap.c35
-rw-r--r--keyboards/quad_h/lb75/keymaps/default/readme.md3
-rw-r--r--keyboards/quad_h/lb75/keymaps/divided_fnrow/keymap.c35
-rw-r--r--keyboards/quad_h/lb75/keymaps/divided_fnrow/readme.md3
-rw-r--r--keyboards/quad_h/lb75/keymaps/via/keymap.c51
-rw-r--r--keyboards/quad_h/lb75/keymaps/via/readme.md3
-rw-r--r--keyboards/quad_h/lb75/keymaps/via/rules.mk1
-rw-r--r--keyboards/quad_h/lb75/lb75.c39
-rw-r--r--keyboards/quad_h/lb75/lb75.h73
-rw-r--r--keyboards/quad_h/lb75/readme.md15
-rw-r--r--keyboards/quad_h/lb75/rules.mk33
-rw-r--r--keyboards/rgbkb/sol/keymaps/xulkal/config.h2
-rw-r--r--keyboards/rgbkb/sol/keymaps/xulkal/rules.mk3
-rw-r--r--keyboards/shambles/config.h43
-rw-r--r--keyboards/shambles/info.json13
-rw-r--r--keyboards/shambles/keymaps/default/keymap.c10
-rw-r--r--keyboards/shambles/readme.md15
-rw-r--r--keyboards/shambles/rules.mk32
-rw-r--r--keyboards/shambles/shambles.c1
-rw-r--r--keyboards/shambles/shambles.h15
-rw-r--r--keyboards/singa/rules.mk2
-rwxr-xr-xkeyboards/staryu/config.h1
-rwxr-xr-xkeyboards/tada68/keymaps/dlg/keymap.c36
-rwxr-xr-xkeyboards/tada68/keymaps/dlg/readme.md40
-rw-r--r--keyboards/tartan/rules.mk5
-rw-r--r--keyboards/tenki/config.h41
-rw-r--r--keyboards/tenki/info.json12
-rw-r--r--keyboards/tenki/keymaps/default/keymap.c19
-rw-r--r--keyboards/tenki/keymaps/via/keymap.c38
-rw-r--r--keyboards/tenki/keymaps/via/rules.mk2
-rw-r--r--keyboards/tenki/readme.md16
-rw-r--r--keyboards/tenki/rules.mk27
-rw-r--r--keyboards/tenki/tenki.c1
-rw-r--r--keyboards/tenki/tenki.h18
-rw-r--r--keyboards/tgr/910/config.h4
-rw-r--r--keyboards/tgr/910/keymaps/via/keymap.c32
-rw-r--r--keyboards/tgr/910/keymaps/via/rules.mk4
-rw-r--r--keyboards/tgr/910/readme.md4
-rw-r--r--keyboards/tgr/910/rules.mk2
-rw-r--r--keyboards/tgr/910ce/rules.mk6
-rw-r--r--keyboards/tgr/alice/rules.mk2
-rw-r--r--keyboards/tgr/jane/rules.mk2
-rw-r--r--keyboards/tokyo60/config.h1
-rw-r--r--keyboards/tokyo60/keymaps/default/keymap.c2
-rw-r--r--keyboards/treadstone32/keymaps/default/config.h48
-rw-r--r--keyboards/treadstone32/keymaps/default/keymap.c14
-rw-r--r--keyboards/treadstone32/keymaps/default/rules.mk3
-rw-r--r--keyboards/treadstone32/keymaps/like_jis/config.h48
-rw-r--r--keyboards/treadstone32/keymaps/like_jis/keymap.c12
-rw-r--r--keyboards/treadstone32/keymaps/like_jis/rules.mk7
-rw-r--r--keyboards/treadstone32/lite/config.h96
-rw-r--r--keyboards/treadstone32/lite/lite.c16
-rw-r--r--keyboards/treadstone32/lite/lite.h (renamed from keyboards/treadstone32/treadstone32.h)0
-rw-r--r--keyboards/treadstone32/lite/rules.mk9
-rw-r--r--keyboards/treadstone32/readme.md5
-rw-r--r--keyboards/treadstone32/rev1/config.h (renamed from keyboards/treadstone32/config.h)70
-rw-r--r--keyboards/treadstone32/rev1/rev1.c16
-rw-r--r--keyboards/treadstone32/rev1/rev1.h45
-rw-r--r--keyboards/treadstone32/rules.mk2
-rw-r--r--keyboards/treadstone32/treadstone32.c43
-rw-r--r--keyboards/treadstone48/readme.md5
-rw-r--r--keyboards/treadstone48/rev1/keymaps/like_jis_rs/config.h (renamed from keyboards/treadstone48/keymaps/like_jis_rs/config.h)0
-rw-r--r--keyboards/treadstone48/rev1/keymaps/like_jis_rs/keymap.c (renamed from keyboards/treadstone48/keymaps/like_jis_rs/keymap.c)0
-rw-r--r--keyboards/treadstone48/rev1/keymaps/like_jis_rs/readme.md (renamed from keyboards/treadstone48/keymaps/like_jis_rs/readme.md)0
-rw-r--r--keyboards/treadstone48/rev1/keymaps/like_jis_rs/readme_jp.md (renamed from keyboards/treadstone48/keymaps/like_jis_rs/readme_jp.md)0
-rw-r--r--keyboards/treadstone48/rev1/keymaps/like_jis_rs/rules.mk (renamed from keyboards/treadstone48/keymaps/like_jis_rs/rules.mk)0
-rw-r--r--keyboards/treadstone48/rev2/config.h250
-rw-r--r--keyboards/treadstone48/rev2/info.json261
-rw-r--r--keyboards/treadstone48/rev2/rev2.c17
-rw-r--r--keyboards/treadstone48/rev2/rev2.h48
-rw-r--r--keyboards/treadstone48/rev2/rules.mk1
-rw-r--r--keyboards/unikorn/rules.mk2
-rw-r--r--keyboards/vitamins_included/keymaps/via/keymap.c85
-rw-r--r--keyboards/vitamins_included/keymaps/via/rules.mk1
-rw-r--r--keyboards/westfoxtrot/cypher/rev5/config.h2
-rw-r--r--keyboards/westfoxtrot/cypher/rev5/keymaps/via/keymap.c35
-rw-r--r--keyboards/westfoxtrot/cypher/rev5/keymaps/via/rules.mk2
-rw-r--r--keyboards/wheatfield/split75/rules.mk2
-rw-r--r--keyboards/whitefox/keymaps/konstantin/rules.mk12
-rw-r--r--keyboards/wilba_tech/wt60_c/config.h119
-rw-r--r--keyboards/wilba_tech/wt60_c/info.json12
-rw-r--r--keyboards/wilba_tech/wt60_c/keymaps/default/keymap.c34
-rw-r--r--keyboards/wilba_tech/wt60_c/keymaps/via/keymap.c34
-rw-r--r--keyboards/wilba_tech/wt60_c/keymaps/via/rules.mk1
-rw-r--r--keyboards/wilba_tech/wt60_c/readme.md13
-rw-r--r--keyboards/wilba_tech/wt60_c/rules.mk46
-rw-r--r--keyboards/wilba_tech/wt60_c/wt60_c.c1
-rw-r--r--keyboards/wilba_tech/wt60_c/wt60_c.h37
-rw-r--r--keyboards/wilba_tech/wt80_bc/config.h56
-rw-r--r--keyboards/wilba_tech/wt80_bc/info.json12
-rw-r--r--keyboards/wilba_tech/wt80_bc/keymaps/default/keymap.c37
-rw-r--r--keyboards/wilba_tech/wt80_bc/keymaps/via/keymap.c37
-rw-r--r--keyboards/wilba_tech/wt80_bc/keymaps/via/rules.mk1
-rw-r--r--keyboards/wilba_tech/wt80_bc/readme.md13
-rw-r--r--keyboards/wilba_tech/wt80_bc/rules.mk34
-rw-r--r--keyboards/wilba_tech/wt80_bc/wt80_bc.c17
-rw-r--r--keyboards/wilba_tech/wt80_bc/wt80_bc.h38
-rw-r--r--keyboards/winkeyless/bface/rules.mk2
-rw-r--r--keyboards/winkeyless/bmini/rules.mk2
-rw-r--r--keyboards/winkeyless/bminiex/rules.mk2
-rw-r--r--keyboards/xd002/config.h60
-rw-r--r--keyboards/xd002/info.json16
-rw-r--r--keyboards/xd002/keymaps/default/keymap.c7
-rw-r--r--keyboards/xd002/keymaps/rgb/keymap.c46
-rw-r--r--keyboards/xd002/keymaps/rgb/rules.mk1
-rw-r--r--keyboards/xd002/keymaps/rgb_lite/keymap.c31
-rw-r--r--keyboards/xd002/keymaps/rgb_lite/rgblite.h26
-rw-r--r--keyboards/xd002/keymaps/rgb_lite/rules.mk1
-rw-r--r--keyboards/xd002/keymaps/tap_dance/config.h3
-rw-r--r--keyboards/xd002/keymaps/tap_dance/keymap.c19
-rw-r--r--keyboards/xd002/keymaps/tap_dance/rules.mk1
-rw-r--r--keyboards/xd002/keymaps/volume/keymap.c7
-rw-r--r--keyboards/xd002/keymaps/volume/rules.mk1
-rw-r--r--keyboards/xd002/readme.md49
-rw-r--r--keyboards/xd002/rules.mk34
-rw-r--r--keyboards/xd002/xd002.c16
-rw-r--r--keyboards/xd002/xd002.h33
-rw-r--r--keyboards/xd68/config.h1
-rw-r--r--keyboards/xd75/config.h1
-rw-r--r--keyboards/xd75/keymaps/buzzlighter1/keymap.c24
-rw-r--r--keyboards/xd75/keymaps/buzzlighter1/readme.md45
-rw-r--r--keyboards/xd75/keymaps/scheiklp/config.h41
-rw-r--r--keyboards/xd75/keymaps/scheiklp/keymap.c112
-rw-r--r--keyboards/xd75/keymaps/scheiklp/readme.md9
-rw-r--r--keyboards/xd75/keymaps/scheiklp/rules.mk6
-rw-r--r--keyboards/ymd96/rules.mk2
-rw-r--r--keyboards/ymdk/bface/rules.mk2
-rw-r--r--keyboards/ymdk_np21/rules.mk2
-rw-r--r--keyboards/yosino58/ssd1306.h3
576 files changed, 28033 insertions, 2161 deletions
diff --git a/keyboards/1upkeyboards/super16/keymaps/nblyumberg/config.h b/keyboards/1upkeyboards/super16/keymaps/nblyumberg/config.h
new file mode 100644
index 0000000000..3d03512888
--- /dev/null
+++ b/keyboards/1upkeyboards/super16/keymaps/nblyumberg/config.h
@@ -0,0 +1,13 @@
+#pragma once
+
+// Time out one shot layers after 3 seconds
+#define ONESHOT_TIMEOUT 3000
+
+#define RGBLED_NUM 16
+
+
+// Undef and redefine default brightness to half of 255
+#undef RGBLIGHT_LIMIT_VAL
+#define RGBLIGHT_LIMIT_VAL 128
+
+#define TAPPING_TERM 200
diff --git a/keyboards/1upkeyboards/super16/keymaps/nblyumberg/keymap.c b/keyboards/1upkeyboards/super16/keymaps/nblyumberg/keymap.c
new file mode 100644
index 0000000000..170d1ad8f1
--- /dev/null
+++ b/keyboards/1upkeyboards/super16/keymaps/nblyumberg/keymap.c
@@ -0,0 +1,127 @@
+#include QMK_KEYBOARD_H
+
+uint16_t copy_paste_timer;
+uint16_t enter_timer;
+
+extern rgblight_config_t rgblight_config;
+
+// Define custom keycodes
+enum my_keycodes {
+ KC_CCCV = SAFE_RANGE,
+ KC_2ENTER
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ //Layer 0 - Base Layer (F13 to F24, and One Shot Layer 1,2,3,4)
+ [0] = LAYOUT_ortho_4x4(
+ KC_F13, KC_F14, KC_F15, KC_F16,
+ KC_F17, KC_CCCV, KC_F19, KC_F20,
+ KC_F21, KC_F22, KC_F23, KC_2ENTER,
+ OSL(1), OSL(2), OSL(3), TG(4) //Transparent to let you go between layers
+ ),
+
+ [1] = LAYOUT_ortho_4x4(
+ LALT(KC_F13), LALT(KC_F14), LALT(KC_F15), LALT(KC_F16),
+ LALT(KC_F17), LALT(KC_F18), LALT(KC_F19), LALT(KC_F20),
+ LALT(KC_F21), LALT(KC_F22), LALT(KC_F23), LALT(KC_F24),
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS //Transparent to let you go between layers
+ ),
+
+ //Layer 2 - Shift + Function Key Layer
+ [2] = LAYOUT_ortho_4x4(
+ LSFT(KC_F13), LSFT(KC_F14), LSFT(KC_F15), LSFT(KC_F16),
+ LSFT(KC_F17), LSFT(KC_F18), LSFT(KC_F19), LSFT(KC_F20),
+ LSFT(KC_F21), LSFT(KC_F22), LSFT(KC_F23), LSFT(KC_F24),
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS //Transparent to let you go between layers
+ ),
+
+ //Layer 3 - Control + Function Key
+ [3] = LAYOUT_ortho_4x4(
+ LCTL(KC_F13), LCTL(KC_F14), LCTL(KC_F15), LCTL(KC_F16),
+ LCTL(KC_F17), LCTL(KC_F18), LCTL(KC_F19), LCTL(KC_F20),
+ LCTL(KC_F21), LCTL(KC_F22), LCTL(KC_F23), LCTL(KC_F24),
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS //Transparent to let you go between layers
+ ),
+
+ //Layer 4 - Keyboard Lights. Programming and Special Functions
+ [4] = LAYOUT_ortho_4x4(
+ KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLU,
+ RGB_TOG, RGB_MOD, RGB_RMOD, KC_MUTE,
+ TO(0), RESET, EEP_RST, KC_VOLD,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS //Transparent to let you go between layers
+ ),
+};
+
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case KC_CCCV: // One key copy/paste
+ if (record->event.pressed) {
+ copy_paste_timer = timer_read();
+ } else {
+ if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy
+ tap_code16(LCTL(KC_C));
+ } else { // Tap, paste
+ tap_code16(LCTL(KC_V));
+ }
+ } return true;
+ case KC_2ENTER:
+ if (record->event.pressed) {
+ enter_timer = timer_read();
+ } else {
+ if (timer_elapsed(enter_timer) > TAPPING_TERM) { // Hold, shift+enter
+ tap_code16(LSFT(KC_ENTER));
+ } else { // Tap, enter
+ tap_code16(KC_F24);
+ }
+ }
+ return true;
+ default:
+ return true;
+ }
+}
+
+
+void keyboard_post_init_user(void) {
+ //Enable the LED layers
+ layer_state_set_user(layer_state);
+}
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ rgblight_sethsv_noeeprom(HSV_WHITE);
+ switch(get_highest_layer(state)) {
+ case 1:
+ // Green
+ rgblight_enable_noeeprom();
+ rgblight_sethsv_noeeprom(HSV_GREEN);
+ break;
+ case 2:
+ // Red
+ rgblight_enable_noeeprom();
+ rgblight_sethsv_noeeprom(HSV_RED);
+ break;
+ case 3:
+ // Blue
+ rgblight_enable_noeeprom();
+ rgblight_sethsv_noeeprom(HSV_BLUE);
+ break;
+ case 4:
+ // Orange
+ rgblight_enable_noeeprom();
+// rgblight_sethsv_noeeprom(HSV_PURPLE);
+ rgblight_sethsv_noeeprom(HSV_ORANGE);
+ break;
+ default:
+ // White
+ //Read RGB Light State
+ rgblight_config.raw = eeconfig_read_rgblight();
+ //If enabled, set white
+ if (rgblight_config.enable) {
+ rgblight_sethsv_noeeprom(HSV_WHITE);
+ } else { //Otherwise go back to disabled
+ rgblight_disable_noeeprom();
+ }
+ break;
+}
+return state;
+} \ No newline at end of file
diff --git a/keyboards/1upkeyboards/super16/keymaps/nblyumberg/readme.md b/keyboards/1upkeyboards/super16/keymaps/nblyumberg/readme.md
new file mode 100644
index 0000000000..5ae101b535
--- /dev/null
+++ b/keyboards/1upkeyboards/super16/keymaps/nblyumberg/readme.md
@@ -0,0 +1,6 @@
+# Nick B's Super16 keymap
+
+A modification of the default keymap to include layer indicators with RGB
+* Added a time out of 3 seconds to 1 shot layers
+* Reduced brightness to half to reduce power draw
+* Added a one key copy/paste keycode
diff --git a/keyboards/1upkeyboards/super16/keymaps/nblyumberg/rules.mk b/keyboards/1upkeyboards/super16/keymaps/nblyumberg/rules.mk
new file mode 100644
index 0000000000..b5bd51b327
--- /dev/null
+++ b/keyboards/1upkeyboards/super16/keymaps/nblyumberg/rules.mk
@@ -0,0 +1,2 @@
+RGB_MATRIX_ENABLE = no
+RGBLIGHT_ENABLE = yes
diff --git a/keyboards/40percentclub/nano/keymaps/drashna/keymap.c b/keyboards/40percentclub/nano/keymaps/drashna/keymap.c
index 998e55d5b2..f5d0787eeb 100644
--- a/keyboards/40percentclub/nano/keymaps/drashna/keymap.c
+++ b/keyboards/40percentclub/nano/keymaps/drashna/keymap.c
@@ -1,7 +1,6 @@
#include "drashna.h"
#include "analog.h"
#include "pointing_device.h"
-#include "pincontrol.h"
#define KC_X0 LT(_FN, KC_ESC)
diff --git a/keyboards/acheron/elongate/config.h b/keyboards/acheron/elongate/config.h
new file mode 100644
index 0000000000..df8c1a8314
--- /dev/null
+++ b/keyboards/acheron/elongate/config.h
@@ -0,0 +1,250 @@
+/*
+Copyright 2020 Gondolindrim
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x4150 //AP for AcheronProject
+#define PRODUCT_ID 0x454C // EL for Elongate
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Acheron Project
+#define PRODUCT Elongate
+#define DESCRIPTION Acheron Project Elongate
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 13
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { D3, B7, D5, B5, D6 }
+#define MATRIX_COL_PINS { F5, F6, F4, F1, F0, B2, B1, C6, B0, B3, E6, D4, B4}
+//#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+// #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
+
+// #define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+// #define BACKLIGHT_LEVELS 3
+
+#define RGB_DI_PIN D7
+#ifdef RGB_DI_PIN
+ #define RGBLED_NUM 16
+ #define RGBLIGHT_HUE_STEP 8
+ #define RGBLIGHT_SAT_STEP 8
+ #define RGBLIGHT_VAL_STEP 8
+ #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+ #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+/*== all animations enable ==*/
+ #define RGBLIGHT_ANIMATIONS
+/*== or choose animations ==*/
+// #define RGBLIGHT_EFFECT_BREATHING
+// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
+// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+// #define RGBLIGHT_EFFECT_SNAKE
+// #define RGBLIGHT_EFFECT_KNIGHT
+// #define RGBLIGHT_EFFECT_CHRISTMAS
+// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
+// #define RGBLIGHT_EFFECT_RGB_TEST
+// #define RGBLIGHT_EFFECT_ALTERNATING
+/*== customize breathing effect ==*/
+ /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+ #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
+ /*==== use exp() and sin() ====*/
+// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
+// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
+#endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+// #define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+/* defined by default; to change, uncomment and set to the combination you want */
+// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP H
+//#define MAGIC_KEY_HELP_ALT SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER0_ALT GRAVE
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER B
+//#define MAGIC_KEY_BOOTLOADER_ALT ESC
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+
+/* disable these deprecated features by default */
+#define NO_ACTION_MACRO
+#define NO_ACTION_FUNCTION
+/*
+ * MIDI options
+ */
+
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+//#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 1
+
+/*
+ * HD44780 LCD Display Configuration
+ */
+/*
+#define LCD_LINES 2 //< number of visible lines of the display
+#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
+
+#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
+
+#if LCD_IO_MODE
+#define LCD_PORT PORTB //< port for the LCD lines
+#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
+#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
+#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
+#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
+#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
+#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
+#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
+#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
+#define LCD_RS_PORT LCD_PORT //< port for RS line
+#define LCD_RS_PIN 3 //< pin for RS line
+#define LCD_RW_PORT LCD_PORT //< port for RW line
+#define LCD_RW_PIN 2 //< pin for RW line
+#define LCD_E_PORT LCD_PORT //< port for Enable line
+#define LCD_E_PIN 1 //< pin for Enable line
+#endif
+*/
+
+/* Bootmagic Lite key configuration */
+// #define BOOTMAGIC_LITE_ROW 0
+// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/acheron/elongate/elongate.c b/keyboards/acheron/elongate/elongate.c
new file mode 100644
index 0000000000..31c4720360
--- /dev/null
+++ b/keyboards/acheron/elongate/elongate.c
@@ -0,0 +1,26 @@
+/* Copyright 2020 Gondolindrim
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "elongate.h"
+bool led_update_kb(led_t led_state) {
+ bool res = led_update_user(led_state);
+ if(res) {
+ writePin(D2, led_state.num_lock);
+ writePin(D1, led_state.caps_lock);
+ writePin(D0, led_state.scroll_lock);
+ }
+ return res;
+}
diff --git a/keyboards/acheron/elongate/elongate.h b/keyboards/acheron/elongate/elongate.h
new file mode 100644
index 0000000000..6ff32b4f75
--- /dev/null
+++ b/keyboards/acheron/elongate/elongate.h
@@ -0,0 +1,44 @@
+/* Copyright 2020 Gondolindrim
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+/* This is a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the Keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+
+#define KNO KC_NO
+
+#define LAYOUT( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K49, K41, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1B, K1C, K4A, K42, \
+ K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K4B, K44, \
+ K30, K31, K32, K34, K37, K3A, K3B, K3C, K3D, K4C, K47 \
+)\
+{\
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KNO, K1B, K1C }, \
+ { K20, KNO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C }, \
+ { K30, K31, K32, KNO, K34, KNO, KNO, K37, KNO, K3A, K3B, K3C, K3D }, \
+ { KNO, K41, K42, KNO, K44, KNO, KNO, K47, KNO, K49, K4A, K4B, K4C } \
+}
diff --git a/keyboards/acheron/elongate/info.json b/keyboards/acheron/elongate/info.json
new file mode 100644
index 0000000000..9664638c51
--- /dev/null
+++ b/keyboards/acheron/elongate/info.json
@@ -0,0 +1,70 @@
+{
+ "keyboard_name": "Elongate",
+ "url": "http://gondolindrim.github.io/AcheronDocs/elongate/introduction.html",
+ "maintainer": "Gondolindrim",
+ "width": 15.5,
+ "height": 4.25,
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [
+ {"label":"Tab", "x":0, "y":0},
+ {"label":"Q", "x":1, "y":0},
+ {"label":"W", "x":2, "y":0},
+ {"label":"E", "x":3, "y":0},
+ {"label":"R", "x":4, "y":0},
+ {"label":"T", "x":5, "y":0},
+ {"label":"Y", "x":6, "y":0},
+ {"label":"U", "x":7, "y":0},
+ {"label":"I", "x":8, "y":0},
+ {"label":"O", "x":9, "y":0},
+ {"label":"P", "x":10, "y":0},
+ {"label":"Backspace", "x":11, "y":0},
+ {"label":"7", "x":12.5, "y":0},
+ {"label":"8", "x":13.5, "y":0},
+ {"label":"9", "x":14.5, "y":0},
+
+ {"label":"Caps Lock", "x":0, "y":1, "w":1.25},
+ {"label":"A", "x":1.25, "y":1},
+ {"label":"S", "x":2.25, "y":1},
+ {"label":"D", "x":3.25, "y":1},
+ {"label":"F", "x":4.25, "y":1},
+ {"label":"G", "x":5.25, "y":1},
+ {"label":"H", "x":6.25, "y":1},
+ {"label":"J", "x":7.25, "y":1},
+ {"label":"K", "x":8.25, "y":1},
+ {"label":"L", "x":9.25, "y":1},
+ {"label":"Enter", "x":10.25, "y":1.75},
+ {"label":"4", "x":12.5, "y":1},
+ {"label":"5", "x":13.5, "y":1},
+ {"label":"6", "x":14.5, "y":1},
+
+ {"label":"Shift", "x":0, "y":2, "w":1.75},
+ {"label":"Z", "x":1.75, "y":2},
+ {"label":"X", "x":2.75, "y":2},
+ {"label":"C", "x":3.75, "y":2},
+ {"label":"V", "x":4.75, "y":2},
+ {"label":"B", "x":5.75, "y":2},
+ {"label":"N", "x":6.75, "y":2},
+ {"label":"M", "x":7.75, "y":2},
+ {"label":"<", "x":8.75, "y":2},
+ {"label":"Fn1", "x":9.75, "y":2},
+ {"label":"Up", "x":11.25, "y":2.25},
+ {"label":"1", "x":12.5, "y":2},
+ {"label":"2", "x":13.5, "y":2},
+ {"label":"3", "x":14.5, "y":2},
+
+ {"label":"Ctrl", "x":0, "y":3, "w":1.25},
+ {"label":"Win", "x":1.25, "y":3},
+ {"label":"Alt", "x":2.25, "y":3, "w":1.25},
+ {"label":"Space/Fn2", "x":3.5, "y":3, "w":2.25},
+ {"label":"Space", "x":6.25, "y":3, "w":2.75},
+ {"label":"Alt", "x":9, "y":3},
+ {"label":"Left", "x":10.25, "y":3.25},
+ {"label":"Down", "x":11.25, "y":3.25},
+ {"label":"Right", "x":12.25, "y":3.25},
+ {"label":"0", "x":13.5, "y":3},
+ {"label":".", "x":14.5, "y":3},
+ ]
+ }
+ }
+}
diff --git a/keyboards/acheron/elongate/keymaps/default/keymap.c b/keyboards/acheron/elongate/keymaps/default/keymap.c
new file mode 100644
index 0000000000..c2b809b744
--- /dev/null
+++ b/keyboards/acheron/elongate/keymaps/default/keymap.c
@@ -0,0 +1,34 @@
+/* Copyright 2020 Gondolindrim
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = LAYOUT( /* Base */
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_P7, KC_P8, KC_P9,
+ KC_SLCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENTER, KC_P4, KC_P5, KC_P6,
+ KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, MO(1) , KC_UP, KC_P1, KC_P2, KC_P3,
+ KC_LCTRL, KC_LWIN, KC_LALT, LT(2, KC_SPACE), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_DOT),
+[1] = LAYOUT( /* Base */
+ KC_F1, KC_F2, KC_F2, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_NLCK, KC_SLCK, KC_CAPS,
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RSHIFT, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_SLSH, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_HOME, KC_PGDN, KC_END , KC_TRNS, KC_TRNS),
+[2] = LAYOUT( /* Base */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_M_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+};
diff --git a/keyboards/acheron/elongate/keymaps/default/readme.md b/keyboards/acheron/elongate/keymaps/default/readme.md
new file mode 100644
index 0000000000..a154ac5915
--- /dev/null
+++ b/keyboards/acheron/elongate/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for Elongate
diff --git a/keyboards/acheron/elongate/keymaps/via/config.h b/keyboards/acheron/elongate/keymaps/via/config.h
new file mode 100644
index 0000000000..a3b77a5b4d
--- /dev/null
+++ b/keyboards/acheron/elongate/keymaps/via/config.h
@@ -0,0 +1,3 @@
+#pragma once
+
+#define DYNAMIC_KEYMAP_LAYER_COUNT 3
diff --git a/keyboards/acheron/elongate/keymaps/via/keymap.c b/keyboards/acheron/elongate/keymaps/via/keymap.c
new file mode 100644
index 0000000000..c2b809b744
--- /dev/null
+++ b/keyboards/acheron/elongate/keymaps/via/keymap.c
@@ -0,0 +1,34 @@
+/* Copyright 2020 Gondolindrim
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = LAYOUT( /* Base */
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_P7, KC_P8, KC_P9,
+ KC_SLCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENTER, KC_P4, KC_P5, KC_P6,
+ KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, MO(1) , KC_UP, KC_P1, KC_P2, KC_P3,
+ KC_LCTRL, KC_LWIN, KC_LALT, LT(2, KC_SPACE), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_DOT),
+[1] = LAYOUT( /* Base */
+ KC_F1, KC_F2, KC_F2, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_NLCK, KC_SLCK, KC_CAPS,
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RSHIFT, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_SLSH, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_HOME, KC_PGDN, KC_END , KC_TRNS, KC_TRNS),
+[2] = LAYOUT( /* Base */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_M_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+};
diff --git a/keyboards/acheron/elongate/keymaps/via/rules.mk b/keyboards/acheron/elongate/keymaps/via/rules.mk
new file mode 100644
index 0000000000..1e5b99807c
--- /dev/null
+++ b/keyboards/acheron/elongate/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/acheron/elongate/readme.md b/keyboards/acheron/elongate/readme.md
new file mode 100644
index 0000000000..83c0eeada1
--- /dev/null
+++ b/keyboards/acheron/elongate/readme.md
@@ -0,0 +1,25 @@
+# Acheron Aχξρων 45-S-ATMEGA-MX-TH-WI (codename "Elongate") QMK firmware
+
+<p align="center">
+ <img align="middle" src="https://raw.githubusercontent.com/Gondolindrim/acheronLibrary/master/graphics/acheronLong.png" width="400">
+</p>
+
+## Introduction
+
+This is the QMK firmware repository for the ElongatePCN, compatible with revisions Beta and pre-Beta.
+
+The ElongatePCB is an Open-Hardware guidelines compliant PCB which files can be found at [this link](https://github.com/Gondolindrim/AElongate). Its designer and maintainer is [Gondolindrim](https://github.com/Gondolindrim).
+
+## PCB Documentation
+
+See the [AcheronDocs](https://gondolindrim.github.io/AcheronDocs/elongate/introduction.html) page for the ElongatePCB full documentation. You can also check the KiCad PCB files at the [Elongate GitHub repository](https://github.com/Gondolindrim/Elongate).
+
+Before using the files for personal or commercial use, please read the [Acheron Open-Hardware License V1.2](https://gondolindrim.github.io/AcheronDocs/license/license.html) under which the Austin PCB is published.
+
+## How to compile
+
+After setting up your build environment, you can compile the Austin default keymap by using:
+
+ make acheron/elongate:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/acheron/elongate/rules.mk b/keyboards/acheron/elongate/rules.mk
new file mode 100644
index 0000000000..0f0ca33e9c
--- /dev/null
+++ b/keyboards/acheron/elongate/rules.mk
@@ -0,0 +1,34 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
+
+LTO_ENABLE = yes
diff --git a/keyboards/amjkeyboard/amj66/config.h b/keyboards/amjkeyboard/amj66/config.h
index 5569bcd919..ac10f7e35e 100644
--- a/keyboards/amjkeyboard/amj66/config.h
+++ b/keyboards/amjkeyboard/amj66/config.h
@@ -43,7 +43,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define BACKLIGHT_LEVELS 3
#define BACKLIGHT_BREATHING
#define BREATHING_PERIOD 6
-#define BACKLIGHT_ON_STATE 1
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
diff --git a/keyboards/arabica37/arabica37.c b/keyboards/arabica37/arabica37.c
new file mode 100644
index 0000000000..22fc63b0e9
--- /dev/null
+++ b/keyboards/arabica37/arabica37.c
@@ -0,0 +1 @@
+#include "arabica37.h"
diff --git a/keyboards/arabica37/arabica37.h b/keyboards/arabica37/arabica37.h
new file mode 100644
index 0000000000..3255e71d10
--- /dev/null
+++ b/keyboards/arabica37/arabica37.h
@@ -0,0 +1,5 @@
+#pragma once
+
+#ifdef KEYBOARD_arabica37_rev1
+ #include "rev1.h"
+#endif
diff --git a/keyboards/planck/old_keymap_files/keymap_common.c b/keyboards/arabica37/config.h
index db4f18a95b..cfb6bf4ffc 100644
--- a/keyboards/planck/old_keymap_files/keymap_common.c
+++ b/keyboards/arabica37/config.h
@@ -1,5 +1,6 @@
/*
-Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -14,17 +15,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "keymap.h"
+#pragma once
-/* translates key to keycode */
-uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
-{
- return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]);
-}
-
-/* translates Fn keycode to action */
-action_t keymap_fn_to_action(uint8_t keycode)
-{
- return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) };
-}
+#include "config_common.h"
diff --git a/keyboards/arabica37/info.json b/keyboards/arabica37/info.json
new file mode 100644
index 0000000000..656433707c
--- /dev/null
+++ b/keyboards/arabica37/info.json
@@ -0,0 +1,65 @@
+{
+ "keyboard_name": "arabica37 rev. 1",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 15.25,
+ "height": 5.75,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"label":"Esc", "x":0.25, "y":0.75},
+ {"label":"Q", "x":1.25, "y":0.75},
+ {"label":"W", "x":2.25, "y":0.25},
+ {"label":"E", "x":3.25, "y":0},
+ {"label":"R", "x":4.25, "y":0.25},
+ {"label":"T", "x":5.25, "y":0.5},
+
+ {"label":"Y", "x":9, "y":0.5},
+ {"label":"U", "x":10, "y":0.25},
+ {"label":"I", "x":11, "y":0},
+ {"label":"O", "x":12, "y":0.25},
+ {"label":"P", "x":13, "y":0.75},
+ {"label":"Backspace", "x":14, "y":0.75},
+
+ {"label":"Ctrl", "x":0.25, "y":1.75},
+ {"label":"A", "x":1.25, "y":1.75},
+ {"label":"S", "x":2.25, "y":1.25},
+ {"label":"D", "x":3.25, "y":1},
+ {"label":"F", "x":4.25, "y":1.25},
+ {"label":"G", "x":5.25, "y":1.5},
+
+ {"label":"H", "x":9, "y":1.5},
+ {"label":"J", "x":10, "y":1.25},
+ {"label":"K", "x":11, "y":1},
+ {"label":"L", "x":12, "y":1.25},
+ {"label":";", "x":13, "y":1.75},
+ {"label":"'", "x":14, "y":1.75},
+
+ {"label":"Adjust", "x":0.25, "y":2.75},
+ {"label":"Z", "x":1.25, "y":2.75},
+ {"label":"X", "x":2.25, "y":2.25},
+ {"label":"C", "x":3.25, "y":2},
+ {"label":"V", "x":4.25, "y":2.25},
+ {"label":"B", "x":5.25, "y":2.5},
+
+ {"label":"N", "x":9, "y":2.5},
+ {"label":"M", "x":10, "y":2.25},
+ {"label":",", "x":11, "y":2},
+ {"label":".", "x":12, "y":2.25},
+ {"label":"/", "x":13, "y":2.75},
+ {"label":"\\", "x":14, "y":2.75},
+
+ {"label":"Shift", "x":0, "y":3.75, "w":2.25},
+ {"label":"Lower", "x":4.375, "y":3.75, "w":1.5},
+ {"label":"GUI", "x":5.875, "y":3.75, "w":1.25},
+
+ {"label":"Alt", "x":8.125, "y":3.75, "w":1.25},
+ {"label":"Raise", "x":9.375, "y":3.75, "w":1.5},
+ {"label":"Shift", "x":13, "y":3.75, "w":2.25},
+
+ {"label":"Space", "x":5.125, "y":4.75, "w":1.25},
+ {"label":"Enter", "x":8.875, "y":4.75, "w":1.25}
+ ]
+ }
+ }
+}
diff --git a/keyboards/arabica37/keymaps/default/config.h b/keyboards/arabica37/keymaps/default/config.h
new file mode 100644
index 0000000000..f12534c902
--- /dev/null
+++ b/keyboards/arabica37/keymaps/default/config.h
@@ -0,0 +1,42 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+//#define USE_MATRIX_I2C
+
+/* Select hand configuration */
+
+#define MASTER_LEFT
+// #define MASTER_RIGHT
+// #define EE_HANDS
+
+#define TAPPING_FORCE_HOLD
+#define TAPPING_TERM 170
+
+#undef RGBLED_NUM
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 27
+#define RGBLIGHT_LIMIT_VAL 120
+#define RGBLIGHT_HUE_STEP 10
+#define RGBLIGHT_SAT_STEP 17
+#define RGBLIGHT_VAL_STEP 17
+
+#define OLED_FONT_H "keyboards/arabica37/lib/glcdfont.c"
diff --git a/keyboards/arabica37/keymaps/default/keymap.c b/keyboards/arabica37/keymaps/default/keymap.c
new file mode 100644
index 0000000000..877fb7347d
--- /dev/null
+++ b/keyboards/arabica37/keymaps/default/keymap.c
@@ -0,0 +1,199 @@
+#include QMK_KEYBOARD_H
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+enum layers {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
+ _ADJUST,
+};
+
+enum custom_keycodes {
+ LOWER = SAFE_RANGE,
+ RAISE,
+ ADJUST,
+ RGBRST
+};
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QWERTY] = LAYOUT( \
+ //,-----------------------------------------------. ,-----------------------------------------------.
+ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_BSPC,\
+ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,KC_SCLN,KC_QUOT,\
+ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
+ ADJUST, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH,KC_BSLS,\
+ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
+ KC_LSFT, LOWER,KC_LGUI, KC_LALT, RAISE, KC_RSFT,\
+ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
+ KC_SPC, KC_ENT
+ //`-----------------------------------------------' `-----------------------------------------------'
+ ),
+ [_LOWER] = LAYOUT( \
+ //,-----------------------------------------------. ,-----------------------------------------------.
+ KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_TRNS,\
+ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
+ KC_TRNS,KC_HOME,KC_LEFT, KC_UP,KC_RGHT,KC_PGUP, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,\
+ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
+ KC_TRNS, KC_END,KC_PSCR,KC_DOWN, KC_INS,KC_PGDN, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,\
+ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
+ KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,\
+ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
+ KC_TRNS, KC_TRNS
+ //`-----------------------------------------------' `-----------------------------------------------'
+ ),
+ [_RAISE] = LAYOUT( \
+ //,-----------------------------------------------. ,-----------------------------------------------.
+ KC_TRNS,KC_EXLM, KC_AT,KC_HASH, KC_DLR,KC_PERC, KC_CIRC,KC_PSLS,KC_PAST,KC_PMNS,KC_PPLS,KC_TRNS,\
+ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
+ KC_TRNS,KC_RBRC,KC_LABK,KC_ASTR,KC_SCLN,KC_LBRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL,\
+ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
+ KC_TRNS,KC_BSLS,KC_RABK,KC_LPRN,KC_JYEN,KC_UNDS, KC_6, KC_7, KC_8, KC_9, KC_0,KC_PENT,\
+ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+--- ---+-------+-------|
+ KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,\
+ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+--- ---+-------+-------|
+ KC_TRNS, KC_TRNS
+ //`-----------------------------------------------' `-----------------------------------------------'
+ ),
+ [_ADJUST] = LAYOUT( \
+ //,-----------------------------------------------. ,-----------------------------------------------.
+ KC_TRNS, RGBRST,RGB_TOG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
+ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
+ KC_TRNS,RGB_HUI,RGB_SAI,RGB_VAI,AG_SWAP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
+ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
+ KC_TRNS,RGB_HUD,RGB_SAD,RGB_VAD,AG_NORM, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
+ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
+ KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,\
+ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
+ KC_TRNS, KC_TRNS
+ //`-----------------------------------------------' `-----------------------------------------------'
+ )
+};
+
+int RGB_current_mode;
+
+void keyboard_post_init_user(void) {
+ #ifdef RGBLIGHT_ENABLE
+ RGB_current_mode = rgblight_get_mode();
+ #endif
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if (record->event.pressed) {
+ // set_timelog();
+ }
+
+ switch (keycode) {
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case ADJUST:
+ if (record->event.pressed) {
+ layer_on(_ADJUST);
+ } else {
+ layer_off(_ADJUST);
+ }
+ return false;
+ break;
+ case RGB_MOD:
+ #ifdef RGBLIGHT_ENABLE
+ if (record->event.pressed) {
+ rgblight_mode(RGB_current_mode);
+ rgblight_step();
+ RGB_current_mode = rgblight_get_mode();
+ }
+ #endif
+ return false;
+ break;
+ case RGBRST:
+ #ifdef RGBLIGHT_ENABLE
+ if (record->event.pressed) {
+ eeconfig_update_rgblight_default();
+ rgblight_enable();
+ RGB_current_mode = rgblight_get_mode();
+ }
+ #endif
+ break;
+ }
+ return true;
+}
+
+#ifdef OLED_DRIVER_ENABLE
+
+oled_rotation_t oled_init_user(oled_rotation_t rotation) {
+ if (!is_keyboard_master()) {
+ return OLED_ROTATION_180; // flips the display 180 degrees if offhand
+ }
+
+ return rotation;
+}
+
+void oled_task_user(void) {
+ void render_status(void) {
+ // Host Keyboard Layer Status
+ oled_write_P(PSTR("Layer: "), false);
+
+ switch (get_highest_layer(layer_state)) {
+ case _QWERTY:
+ oled_write_P(PSTR("Default\n"), false);
+ break;
+ case _LOWER:
+ oled_write_P(PSTR("LOWER\n"), false);
+ break;
+ case _RAISE:
+ oled_write_P(PSTR("RAISE\n"), false);
+ break;
+ case _ADJUST:
+ oled_write_P(PSTR("ADJUST\n"), false);
+ break;
+ default:
+ // Or use the write_ln shortcut over adding '\n' to the end of your string
+ oled_write_ln_P(PSTR("Undefined"), false);
+ }
+
+ // Host Keyboard LED Status
+ led_t led_state = host_keyboard_led_state();
+ oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
+ oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
+ oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
+ }
+
+
+ void render_logo(void) {
+ static const char PROGMEM qmk_logo[] = {
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94,
+ 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4,
+ 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00
+ };
+
+ oled_write_P(qmk_logo, false);
+ }
+
+ if (is_keyboard_master()) {
+ render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
+ } else {
+ render_logo(); // Renders a static logo
+ }
+}
+#endif
diff --git a/keyboards/arabica37/keymaps/default/rules.mk b/keyboards/arabica37/keymaps/default/rules.mk
new file mode 100644
index 0000000000..c582662134
--- /dev/null
+++ b/keyboards/arabica37/keymaps/default/rules.mk
@@ -0,0 +1 @@
+OLED_DRIVER_ENABLE = yes
diff --git a/keyboards/arabica37/lib/glcdfont.c b/keyboards/arabica37/lib/glcdfont.c
new file mode 100644
index 0000000000..a4ed2be826
--- /dev/null
+++ b/keyboards/arabica37/lib/glcdfont.c
@@ -0,0 +1,232 @@
+// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0.
+// See gfxfont.h for newer custom bitmap font info.
+
+#include "progmem.h"
+
+// Standard ASCII 5x7 font
+const unsigned char font[] PROGMEM = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
+ 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
+ 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
+ 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
+ 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
+ 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
+ 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
+ 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
+ 0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
+ 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
+ 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
+ 0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
+ 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
+ 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
+ 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
+ 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
+ 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
+ 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
+ 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
+ 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
+ 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
+ 0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
+ 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
+ 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
+ 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
+ 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
+ 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
+ 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
+ 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
+ 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
+ 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
+ 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
+ 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
+ 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
+ 0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
+ 0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
+ 0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
+ 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
+ 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
+ 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
+ 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
+ 0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
+ 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
+ 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
+ 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
+ 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
+ 0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
+ 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
+ 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
+ 0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
+ 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
+ 0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
+ 0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
+ 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
+ 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
+ 0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
+ 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
+ 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
+ 0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
+ 0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
+ 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
+ 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
+ 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
+ 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
+ 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
+ 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
+ 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
+ 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
+ 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
+ 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
+ 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
+ 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
+ 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
+ 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
+ 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
+ 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
+ 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
+ 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
+ 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
+ 0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
+ 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
+ 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
+ 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
+ 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
+ 0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
+ 0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
+ 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
+ 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
+ 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
+ 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
+ 0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
+ 0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
+ 0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
+ 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
+ 0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
+ 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
+ 0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
+ 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
+ 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
+ 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
+ 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
+ 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
+ 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
+ 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
+ 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
+ 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
+ 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
+ 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
+ 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
+ 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
+ 0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
+ 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
+ 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
+ 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
+ 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
+ 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
+ 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
+ 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
+ 0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
+ 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
+ 0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
+ 0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
+ 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF0,
+ 0xF8, 0xF8, 0x00, 0xF8, 0xF8, 0xF0,
+ 0xE0, 0x00, 0x00, 0x80, 0x80, 0x80,
+ 0x80, 0x00, 0x00, 0x80, 0x80, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x80, 0x80,
+ 0x00, 0x80, 0x80, 0x00, 0x00, 0x00,
+ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
+ 0x80, 0x80, 0x00, 0x00, 0x00, 0x00,
+ 0x9C, 0x9F, 0x9F, 0x9C, 0x00, 0x00,
+ 0x00, 0x00, 0x80, 0x80, 0x00, 0x80,
+ 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x80, 0x80, 0x80, 0x00, 0x80, 0x80,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x80, 0x80, 0x80,
+ 0x00, 0x00, 0x80, 0x80, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x80, 0x60, 0x18,
+ 0x07, 0x00, 0x80, 0x80, 0x80, 0x80,
+ 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC,
+ 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00,
+ 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E,
+ 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00,
+ 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B,
+ 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00,
+ 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE,
+ 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0x20, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0x00, 0x1F, 0x1F, 0x1F, 0x1F,
+ 0x00, 0x00, 0xC6, 0xE7, 0xF7, 0xF7,
+ 0x00, 0xFF, 0xFF, 0xFF, 0xFE, 0x00,
+ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
+ 0xFE, 0xFF, 0xFF, 0xFF, 0x00, 0x9F,
+ 0x9F, 0x9F, 0x9E, 0x00, 0x00, 0xE7,
+ 0xF7, 0xF7, 0xF7, 0x00, 0xFF, 0xFF,
+ 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x07, 0x07, 0x07,
+ 0x03, 0x00, 0x7F, 0x7F, 0x3F, 0x1E,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0,
+ 0x30, 0x0C, 0x02, 0x01, 0x00, 0x00,
+ 0x00, 0x00, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0xF7, 0xF3, 0xF3, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
+ 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00,
+ 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F,
+ 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00,
+ 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20,
+ 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
+ 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F,
+ 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F,
+ 0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x1F,
+ 0x1F, 0x00, 0x00, 0x1F, 0x1F, 0x1F,
+ 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x07, 0x0F, 0x0F, 0x1F,
+ 0x00, 0x1F, 0x1F, 0x0F, 0x07, 0x00,
+ 0x00, 0x07, 0x0F, 0x0F, 0x1F, 0x00,
+ 0x1F, 0x1F, 0x0F, 0x07, 0x00, 0x00,
+ 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00,
+ 0x07, 0x0F, 0x1F, 0x1F, 0x00, 0x1F,
+ 0x0F, 0x0F, 0x07, 0x00, 0x00, 0x07,
+ 0x0F, 0x1F, 0x1F, 0x00, 0x1F, 0x0F,
+ 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xE0, 0xF0, 0xF0,
+ 0xE0, 0x00, 0xFF, 0xFE, 0xFE, 0x38,
+ 0x00, 0x60, 0x10, 0x0C, 0x03, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xFF, 0xFF, 0x7F, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
diff --git a/keyboards/arabica37/readme.md b/keyboards/arabica37/readme.md
new file mode 100644
index 0000000000..6cbe98c187
--- /dev/null
+++ b/keyboards/arabica37/readme.md
@@ -0,0 +1,15 @@
+# Arabica3/7
+
+![arabica3/7](https://user-images.githubusercontent.com/46911478/76915532-9c333080-68f8-11ea-863a-8a7899d1d9c4.jpg)
+
+A split keyboard with 3x6 column staggered keys, 1 pinkey and 3 thumb keys.
+
+* Keyboard Maintainer: [CalciumNitride](https://github.com/CalciumNitride)
+* Hardware Supported: Arabica3/7 PCB, Pro Micro
+* Hardware Availability: [PCB & Case Data](https://github.com/calciumnitride/arabica37)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make arabica37/rev1:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/arabica37/rev1/config.h b/keyboards/arabica37/rev1/config.h
new file mode 100644
index 0000000000..5db7e32fc6
--- /dev/null
+++ b/keyboards/arabica37/rev1/config.h
@@ -0,0 +1,82 @@
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x3060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER CalciumNitride
+#define PRODUCT Arabica3/7
+#define DESCRIPTION A split keyboard with 3x6 column staggered keys, 1 pinkie key and 3 thumb keys
+
+#define USE_SERIAL
+#define SOFT_SERIAL_PIN D2
+
+/* key matrix size */
+// Rows are doubled-up
+#define MATRIX_ROWS 8
+#define MATRIX_COLS 7
+#define MATRIX_ROW_PINS { D4, C6, D7, E6 }
+
+// wiring of each half
+#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 }
+// #define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+// #define BACKLIGHT_LEVELS 3
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+//#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+//#define LOCKING_RESYNC_ENABLE
+
+/* key combination for command */
+
+
+/* ws2812 RGB LED */
+#define RGB_DI_PIN D3
+
+#define RGBLED_NUM 50 // Number of LEDs
+#define RGBLED_SPLIT {25, 25}
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+// #define NO_DEBUG
+
+/* disable print */
+// #define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
diff --git a/keyboards/arabica37/rev1/rev1.c b/keyboards/arabica37/rev1/rev1.c
new file mode 100644
index 0000000000..22fc63b0e9
--- /dev/null
+++ b/keyboards/arabica37/rev1/rev1.c
@@ -0,0 +1 @@
+#include "arabica37.h"
diff --git a/keyboards/arabica37/rev1/rev1.h b/keyboards/arabica37/rev1/rev1.h
new file mode 100644
index 0000000000..316de77f1d
--- /dev/null
+++ b/keyboards/arabica37/rev1/rev1.h
@@ -0,0 +1,23 @@
+#pragma once
+
+#include "arabica37.h"
+
+#include "quantum.h"
+
+#define LAYOUT( \
+ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
+ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
+ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
+ L26, L31, L32, R26, R30, R32, \
+ L30, R31 \
+ ) \
+ { \
+ { L00, L01, L02, L03, L04, L05 }, \
+ { L10, L11, L12, L13, L14, L15 }, \
+ { L20, L21, L22, L23, L24, L25 }, \
+ { L26, KC_NO, KC_NO, L30, L31, L32 }, \
+ { R05, R04, R03, R02, R01, R00 }, \
+ { R15, R14, R13, R12, R11, R10 }, \
+ { R25, R24, R23, R22, R21, R20 }, \
+ { R32, KC_NO, KC_NO, R31, R30, R26 } \
+ }
diff --git a/keyboards/arabica37/rev1/rules.mk b/keyboards/arabica37/rev1/rules.mk
new file mode 100644
index 0000000000..10c5ab28bb
--- /dev/null
+++ b/keyboards/arabica37/rev1/rules.mk
@@ -0,0 +1,33 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = caterina
+
+# Build Options
+# change yes to no to disable
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
+
+SPLIT_KEYBOARD = yes
diff --git a/keyboards/ares/rules.mk b/keyboards/ares/rules.mk
index dc2bb40a3d..076cbdc39a 100644
--- a/keyboards/ares/rules.mk
+++ b/keyboards/ares/rules.mk
@@ -20,5 +20,3 @@ COMMAND_ENABLE = yes
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = no
WS2812_DRIVER = i2c
-
-OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/atreus/keymaps/xyverz/config.h b/keyboards/atreus/keymaps/xyverz/config.h
new file mode 100644
index 0000000000..037c9f3180
--- /dev/null
+++ b/keyboards/atreus/keymaps/xyverz/config.h
@@ -0,0 +1,4 @@
+#pragma once
+
+#undef DEBOUNCE
+#define DEBOUNCE 6
diff --git a/keyboards/atreus/keymaps/xyverz/keymap.c b/keyboards/atreus/keymaps/xyverz/keymap.c
index 7653206ae5..3f428058eb 100644
--- a/keyboards/atreus/keymaps/xyverz/keymap.c
+++ b/keyboards/atreus/keymaps/xyverz/keymap.c
@@ -4,8 +4,6 @@
#include QMK_KEYBOARD_H
-extern keymap_config_t keymap_config;
-
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
@@ -41,6 +39,7 @@ enum planck_keycodes {
#define ADJUST MO(_ADJUST)
#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)
+#define MACLOCK LGUI(LCTL(KC_Q))
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Dvorak Layer
@@ -119,13 +118,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|------+------+------+------+------|------.,------|------+------+------+------+------|
| | Left | Down | Right| End | || | PgUp | Mute | Vol- | Vol+ | |
|------+------+------+------+------| || |------+------+------+------+------|
- | ~ | | | | Del |------'`------| Ins | | | | |
+ | ~ | | | | Del |------'`------| Ins | | | |MACLCK|
`----------------------------------' `----------------------------------'*/
[_LOWER] = LAYOUT(
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
KC_CAPS, _______, KC_UP, _______, KC_HOME, KC_PGUP, _______, KC_PLUS, KC_LCBR, KC_RCBR,
_______, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, _______,
- KC_TILD, _______, _______, _______, KC_DEL, _______, _______, KC_INS, _______, _______, _______, _______
+ KC_TILD, _______, _______, _______, KC_DEL, _______, _______, KC_INS, _______, _______, _______, MACLOCK
),
/* RAISE Layer
@@ -136,13 +135,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|------+------+------+------+------|------.,------|------+------+------+------+------|
| | Left | Down | Right| End | || | PgUp | Prev | Play | Next | |
|------+------+------+------+------| || |------+------+------+------+------|
- | ` | | | | Del |------'`------| Ins | | | | |
+ | ` | | | | Del |------'`------| Ins | | | |MACLCK|
`----------------------------------' `----------------------------------'*/
[_RAISE] = LAYOUT(
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0 ,
KC_CAPS, _______, KC_UP, _______, KC_HOME, KC_PGUP, _______, KC_EQL, KC_LBRC, KC_RBRC,
_______, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_PGDN, KC_MPRV, KC_MPLY, KC_MNXT, _______,
- KC_GRV, _______, _______, _______, KC_DEL, _______, _______, KC_INS, _______, _______, _______, _______
+ KC_GRV, _______, _______, _______, KC_DEL, _______, _______, KC_INS, _______, _______, _______, MACLOCK
),
/* ADJUST Layer
@@ -190,4 +189,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return false;
}
return true;
-} \ No newline at end of file
+}
diff --git a/keyboards/atreus/keymaps/xyverz/readme.md b/keyboards/atreus/keymaps/xyverz/readme.md
index aa44f01dae..de9ae3f484 100644
--- a/keyboards/atreus/keymaps/xyverz/readme.md
+++ b/keyboards/atreus/keymaps/xyverz/readme.md
@@ -77,7 +77,7 @@ Control.
|------+------+------+------+------|------.,------|------+------+------+------+------|
| | Left | Down | Right| End | || | PgUp | Mute | Vol- | Vol+ | |
|------+------+------+------+------| || |------+------+------+------+------|
- | ~ | | | | Del |------'`------| Ins | | | | |
+ | ~ | | | | Del |------'`------| Ins | | | |MACLCK|
`----------------------------------' `----------------------------------'
@@ -90,7 +90,7 @@ Control.
|------+------+------+------+------|------.,------|------+------+------+------+------|
| | Left | Down | Right| End | || | PgUp | Prev | Play | Next | |
|------+------+------+------+------| || |------+------+------+------+------|
- | ` | | | | Del |------'`------| Ins | | | | |
+ | ` | | | | Del |------'`------| Ins | | | |MACLCK|
`----------------------------------' `----------------------------------'
### Layer 6: ADJUST layer
diff --git a/keyboards/atreus62/keymaps/scheiklp/config.h b/keyboards/atreus62/keymaps/scheiklp/config.h
new file mode 100644
index 0000000000..dc7629b622
--- /dev/null
+++ b/keyboards/atreus62/keymaps/scheiklp/config.h
@@ -0,0 +1,51 @@
+/* Copyright 2017 Benjamin Kesselring
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+// place overrides here
+#define AUTO_SHIFT_TIMEOUT 125
+#define NO_AUTO_SHIFT_SPECIAL
+#define NO_AUTO_SHIFT_NUMERIC
+
+// require two taps for a TT layer switch (default 5)
+#define TAPPING_TOGGLE 2
+
+// Mouse control
+// constant mode (velocity)
+#define MK_3_SPEED
+// KC_ACL0 < KC_ACL1 < unmodified < KC_ACL2
+
+// Cursor offset per movement (unmodified)
+#define MK_C_OFFSET_UNMOD 16
+// Time between cursor movements (unmodified)
+#define MK_C_INTERVAL_UNMOD 10
+/* #define MK_C_INTERVAL_UNMOD 16 */
+
+// Cursor offset per movement (KC_ACL0)
+#define MK_C_OFFSET_0 1
+// Time between cursor movements (KC_ACL0)
+#define MK_C_INTERVAL_0 32
+
+// Cursor offset per movement (KC_ACL1)
+#define MK_C_OFFSET_1 4
+// Time between cursor movements (KC_ACL1)
+#define MK_C_INTERVAL_1 16
+
+// Cursor offset per movement (KC_ACL2)
+#define MK_C_OFFSET_2 20
+/* #define MK_C_OFFSET_2 32 */
+// Time between cursor movements (KC_ACL2)
+#define MK_C_INTERVAL_2 16
diff --git a/keyboards/atreus62/keymaps/scheiklp/keymap.c b/keyboards/atreus62/keymaps/scheiklp/keymap.c
new file mode 100644
index 0000000000..0c3208db86
--- /dev/null
+++ b/keyboards/atreus62/keymaps/scheiklp/keymap.c
@@ -0,0 +1,43 @@
+#include QMK_KEYBOARD_H
+#include "koy_keys_on_quertz_de_latin1.h"
+// Layer shorthand
+#define _1 0
+#define _3 1
+#define _4 2
+#define _7 3
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [_1] = LAYOUT(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_TAB, KC_K, KC_DOT, KC_O, KC_COMM, N_Y, KC_V, KC_G, KC_C, KC_L, N_SS, N_Z,
+ MO(_3), KC_H, KC_A, KC_E, KC_I, KC_U, KC_D, KC_T, KC_R, KC_N, KC_S, KC_F,
+ KC_LSFT, KC_X, KC_Q, N_AE, N_UE, N_OE, KC_B, KC_P, KC_W, KC_M, KC_J, KC_RSFT,
+ KC_LCTL, N_COPY, N_PASTE, KC_LGUI, KC_LALT, KC_SPC, KC_ENTER, KC_RCTL, MO(_3), MO(_4), KC_TRNS, KC_TRNS, KC_CAPS, TT(_7)
+ ),
+
+ [_3] = LAYOUT(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_BSPC,
+ KC_TAB, N_DOTS, N_USC, N_LSQBR, N_RSQBR, N_CIRC, N_EXKL, N_LT, N_GT, N_EQ, N_AMP, KC_TRNS,
+ KC_TRNS, N_BSLS, N_SLSH, N_LCUBR, N_RCUBR, N_ASTR, N_QUES, N_LPARN, N_RPARN, N_MINS, N_COLN, N_AT,
+ KC_LSFT, N_HASH, N_DLR, N_PIPE, N_TILD, N_GRAVE, N_PLUS, N_PERC, N_QUOT, N_SING, N_SEMI, KC_RSFT,
+ KC_LCTL, N_COPY, N_PASTE, KC_LGUI, KC_LALT, KC_SPC, KC_ENTER, KC_TRNS, KC_TRNS, KC_RCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+ [_4] = LAYOUT(
+ KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC,
+ KC_TAB, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_KP_SLASH, KC_7, KC_8, KC_9, KC_KP_MINUS, KC_TRNS,
+ KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, KC_KP_ASTERISK, KC_4, KC_5, KC_6, KC_KP_PLUS, KC_TRNS,
+ KC_LSFT, KC_ESC, KC_TAB, KC_INS, KC_ENTER, N_UNDO, KC_KP_ENTER, KC_1, KC_2, KC_3, KC_KP_DOT, KC_RSFT,
+ KC_LCTL, N_COPY, N_PASTE, KC_LGUI, KC_LALT, KC_0, KC_ENTER, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+ [_7] = LAYOUT(
+ KC_ESC, KC_TRNS, KC_TRNS, KC_MS_BTN3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET,
+ KC_TAB, KC_MS_WH_UP, KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, KC_MS_WH_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_MS_ACCEL0, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_LSFT, KC_MS_ACCEL1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_LCTL, KC_MS_ACCEL2, KC_TRNS, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+};
diff --git a/keyboards/atreus62/keymaps/scheiklp/readme.md b/keyboards/atreus62/keymaps/scheiklp/readme.md
new file mode 100644
index 0000000000..b5590b6f2f
--- /dev/null
+++ b/keyboards/atreus62/keymaps/scheiklp/readme.md
@@ -0,0 +1,13 @@
+# KOY Layout for the atreus62 pcb board
+Compile the layout
+```bash
+qmk compile -kb atreus62 -km scheiklp
+```
+disable this service that interfers with the pro micro
+```
+sudo systemctl stop ModemManager.service
+```
+and flash it to the board
+```bash
+qmk flash -kb atreus62 -km scheiklp
+```
diff --git a/keyboards/atreus62/keymaps/scheiklp/rules.mk b/keyboards/atreus62/keymaps/scheiklp/rules.mk
new file mode 100644
index 0000000000..681e7507b4
--- /dev/null
+++ b/keyboards/atreus62/keymaps/scheiklp/rules.mk
@@ -0,0 +1,4 @@
+AUTO_SHIFT_ENABLE = yes
+CONSOLE_ENABLE = no
+COMMAND_ENABLE = no
+NKRO_ENABLE = yes
diff --git a/keyboards/aves65/aves65.c b/keyboards/aves65/aves65.c
new file mode 100644
index 0000000000..35b93f7aee
--- /dev/null
+++ b/keyboards/aves65/aves65.c
@@ -0,0 +1 @@
+#include "aves65.h"
diff --git a/keyboards/aves65/aves65.h b/keyboards/aves65/aves65.h
new file mode 100644
index 0000000000..ee35909efa
--- /dev/null
+++ b/keyboards/aves65/aves65.h
@@ -0,0 +1,19 @@
+#pragma once
+#include "quantum.h"
+
+// readability
+#define ___ KC_NO
+#define LAYOUT_65_iso_blocker( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \
+ k40, k41, k42, k46, k4a, k4b, k4c, k4d, k4e \
+) \
+{ \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, ___, k1e }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \
+ { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4a, k4b, k4c, k4d, k4e } \
+}
diff --git a/keyboards/aves65/config.h b/keyboards/aves65/config.h
new file mode 100644
index 0000000000..033100b549
--- /dev/null
+++ b/keyboards/aves65/config.h
@@ -0,0 +1,61 @@
+/*
+Copyright 2019 I/O Keyboards <hello@iokeyboards.eu>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x9991
+#define PRODUCT_ID 0x9038
+#define DEVICE_VER 0x0001
+#define MANUFACTURER I/O Keyboards
+#define PRODUCT Aves65
+#define DESCRIPTION A 65% keyboard with underglow.
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 15
+
+// ROWS: Top to bottom, COLS: Left to right
+
+#define MATRIX_ROW_PINS {D4,D6,D7,B4,E6}
+#define MATRIX_COL_PINS {D0,D1,D2,D3,D5,B5,F0,F1,F4,F5,F6,F7,C7,C6,B6}
+#define UNUSED_PINS {B7,B1,B2,B3}
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* Backlight configuration
+ */
+#define RGB_DI_PIN B0
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 9
+
+#define QMK_ESC_OUTPUT D0 // usually COL
+#define QMK_ESC_INPUT D4 // usually ROW
diff --git a/keyboards/aves65/info.json b/keyboards/aves65/info.json
new file mode 100644
index 0000000000..9454f11835
--- /dev/null
+++ b/keyboards/aves65/info.json
@@ -0,0 +1,85 @@
+{
+ "keyboard_name": "Aves65",
+ "url": "",
+ "maintainer": "Hund",
+ "width": 16,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_65_iso_blocker": {
+ "layout": [
+ {"label":"k00", "x":0, "y":0},
+ {"label":"k01", "x":1, "y":0},
+ {"label":"k02", "x":2, "y":0},
+ {"label":"k03", "x":3, "y":0},
+ {"label":"k04", "x":4, "y":0},
+ {"label":"k05", "x":5, "y":0},
+ {"label":"k06", "x":6, "y":0},
+ {"label":"k07", "x":7, "y":0},
+ {"label":"k08", "x":8, "y":0},
+ {"label":"k09", "x":9, "y":0},
+ {"label":"k0a", "x":10, "y":0},
+ {"label":"k0b", "x":11, "y":0},
+ {"label":"k0c", "x":12, "y":0},
+ {"label":"k0d", "x":13, "y":0, "w":2},
+ {"label":"k0e", "x":15, "y":0},
+
+ {"label":"k10", "x":0, "y":1, "w":1.5},
+ {"label":"k11", "x":1.5, "y":1},
+ {"label":"k12", "x":2.5, "y":1},
+ {"label":"k13", "x":3.5, "y":1},
+ {"label":"k14", "x":4.5, "y":1},
+ {"label":"k15", "x":5.5, "y":1},
+ {"label":"k16", "x":6.5, "y":1},
+ {"label":"k17", "x":7.5, "y":1},
+ {"label":"k18", "x":8.5, "y":1},
+ {"label":"k19", "x":9.5, "y":1},
+ {"label":"k1a", "x":10.5, "y":1},
+ {"label":"k1b", "x":11.5, "y":1},
+ {"label":"k1c", "x":12.5, "y":1},
+ {"label":"k1e", "x":15, "y":1},
+
+ {"label":"k20", "x":0, "y":2, "w":1.75},
+ {"label":"k21", "x":1.75, "y":2},
+ {"label":"k22", "x":2.75, "y":2},
+ {"label":"k23", "x":3.75, "y":2},
+ {"label":"k24", "x":4.75, "y":2},
+ {"label":"k25", "x":5.75, "y":2},
+ {"label":"k26", "x":6.75, "y":2},
+ {"label":"k27", "x":7.75, "y":2},
+ {"label":"k28", "x":8.75, "y":2},
+ {"label":"k29", "x":9.75, "y":2},
+ {"label":"k2a", "x":10.75, "y":2},
+ {"label":"k2b", "x":11.75, "y":2},
+ {"label":"k2c", "x":12.75, "y":2},
+ {"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2},
+ {"label":"k2e", "x":15, "y":2},
+
+ {"label":"k30", "x":0, "y":3, "w":1.25},
+ {"label":"k31", "x":1.25, "y":3},
+ {"label":"k32", "x":2.25, "y":3},
+ {"label":"k33", "x":3.25, "y":3},
+ {"label":"k34", "x":4.25, "y":3},
+ {"label":"k35", "x":5.25, "y":3},
+ {"label":"k36", "x":6.25, "y":3},
+ {"label":"k37", "x":7.25, "y":3},
+ {"label":"k38", "x":8.25, "y":3},
+ {"label":"k39", "x":9.25, "y":3},
+ {"label":"k3a", "x":10.25, "y":3},
+ {"label":"k3b", "x":11.25, "y":3},
+ {"label":"k3c", "x":12.25, "y":3, "w":1.75},
+ {"label":"k3d", "x":14, "y":3},
+ {"label":"k3e", "x":15, "y":3},
+
+ {"label":"k40", "x":0, "y":4, "w":1.25},
+ {"label":"k41", "x":1.25, "y":4, "w":1.25},
+ {"label":"k42", "x":2.5, "y":4, "w":1.25},
+ {"label":"k46", "x":3.75, "y":4, "w":6.25},
+ {"label":"k4a", "x":10, "y":4, "w":1.25},
+ {"label":"k4b", "x":11.25, "y":4, "w":1.25},
+ {"label":"k4c", "x":13, "y":4},
+ {"label":"k4d", "x":14, "y":4},
+ {"label":"k4e", "x":15, "y":4}
+ ]
+ }
+ }
+}
diff --git a/keyboards/aves65/keymaps/default/keymap.c b/keyboards/aves65/keymaps/default/keymap.c
new file mode 100644
index 0000000000..3b093cad04
--- /dev/null
+++ b/keyboards/aves65/keymaps/default/keymap.c
@@ -0,0 +1,18 @@
+#include QMK_KEYBOARD_H
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _MA 0
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[_MA] = LAYOUT_65_iso_blocker(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, KC_PGUP,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT)
+
+};
diff --git a/keyboards/aves65/readme.md b/keyboards/aves65/readme.md
new file mode 100644
index 0000000000..a4cd4e6ee3
--- /dev/null
+++ b/keyboards/aves65/readme.md
@@ -0,0 +1,15 @@
+# Aves65
+
+![Aves65](https://i.imgur.com/H7x8an7l.jpg)
+
+A 65% hotswap keyboard with RGB underglow.
+
+* Keyboard Maintainer: [Hund](https://github.com/Hund)
+* Hardware Supported: Aves65
+* Hardware Availability: none (yet)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make aves65:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/aves65/rules.mk b/keyboards/aves65/rules.mk
new file mode 100644
index 0000000000..911c1d95ab
--- /dev/null
+++ b/keyboards/aves65/rules.mk
@@ -0,0 +1,34 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = qmk-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
+
+LAYOUTS = 65_iso_blocker
diff --git a/keyboards/basekeys/slice/rev1/config.h b/keyboards/basekeys/slice/rev1/config.h
index a02154d82b..d151d5873f 100644
--- a/keyboards/basekeys/slice/rev1/config.h
+++ b/keyboards/basekeys/slice/rev1/config.h
@@ -28,7 +28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* key matrix size */
#define MATRIX_ROWS 10
-#define MATRIX_COLS 18
+#define MATRIX_COLS 9
// wiring of each half
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 }
diff --git a/keyboards/basekeys/slice/rev1_rgb/config.h b/keyboards/basekeys/slice/rev1_rgb/config.h
index 6d423d9b5e..1145d08647 100644
--- a/keyboards/basekeys/slice/rev1_rgb/config.h
+++ b/keyboards/basekeys/slice/rev1_rgb/config.h
@@ -28,7 +28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* key matrix size */
#define MATRIX_ROWS 10
-#define MATRIX_COLS 18
+#define MATRIX_COLS 9
// wiring of each half
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 }
diff --git a/keyboards/bfake/rules.mk b/keyboards/bfake/rules.mk
index 17922fabf4..5846b173ba 100644
--- a/keyboards/bfake/rules.mk
+++ b/keyboards/bfake/rules.mk
@@ -20,5 +20,3 @@ COMMAND_ENABLE = yes
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = no
WS2812_DRIVER = i2c
-
-OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/blackplum/config.h b/keyboards/blackplum/config.h
index 256603744e..e74aba6234 100644
--- a/keyboards/blackplum/config.h
+++ b/keyboards/blackplum/config.h
@@ -3,9 +3,9 @@
#include "config_common.h"
/* USB Device descriptor parameter */
-#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0xFADE
-#define DEVICE_VER 0x0001
+#define VENDOR_ID 0x5058 // "PX"
+#define PRODUCT_ID 0x4250 // "BP"
+#define DEVICE_VER 0x1001
#define MANUFACTURER Pixlup
#define PRODUCT Blackplum Keeb
#define DESCRIPTION Blackplum 68 Percent Mechanical Keyboard
diff --git a/keyboards/blackplum/keymaps/via/keymap.c b/keyboards/blackplum/keymaps/via/keymap.c
new file mode 100644
index 0000000000..6c68a2fad5
--- /dev/null
+++ b/keyboards/blackplum/keymaps/via/keymap.c
@@ -0,0 +1,38 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_68_ansi(
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_PGUP,\
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_PGDOWN,\
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,\
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,\
+ KC_LCTL , KC_LGUI , KC_LALT , KC_SPC , KC_RALT , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
+ ),
+
+ [1] = LAYOUT_68_ansi(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_MPLY, KC_HOME,\
+ KC_TRNS, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUSE, KC_TRNS, KC_MUTE, KC_END,\
+ KC_TRNS, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,\
+ KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
+ ),
+
+ [2] = LAYOUT_68_ansi(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+ [3] = LAYOUT_68_ansi(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+
+};
+
+
diff --git a/keyboards/blackplum/keymaps/via/rules.mk b/keyboards/blackplum/keymaps/via/rules.mk
new file mode 100644
index 0000000000..36b7ba9cbc
--- /dev/null
+++ b/keyboards/blackplum/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
diff --git a/keyboards/chidori/keymaps/oled_sample/keymap.c b/keyboards/chidori/keymaps/oled_sample/keymap.c
new file mode 100644
index 0000000000..6c9b7869ba
--- /dev/null
+++ b/keyboards/chidori/keymaps/oled_sample/keymap.c
@@ -0,0 +1,217 @@
+/* Copyright 2019 ENDO Katsuhiro <ka2hiro@kagizaraya.jp>
+ * Copyright 2020 Masaya Uno
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+#include "board.h"
+
+enum layer_number {
+ _QWERTY,
+ _COLEMAK,
+ _DVORAK,
+ _LOWER,
+ _RAISE,
+ _ADJUST,
+};
+
+// Defines the keycodes used by our macros in process_record_user
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ COLEMAK,
+ DVORAK,
+};
+
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+#define ADJUST MO(_ADJUST)
+
+// clang-format off
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Qwerty
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * |ADJUST| Esc | Alt | GUI |LOWER |Space | | Space| RAISE| Left | Down | Up | Right|
+ * `-----------------------------------------' `-----------------------------------------'
+ */
+ [_QWERTY] = LAYOUT(
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
+ ADJUST, KC_ESC, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+ ),
+ /* Colemak
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | Bksp |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | Ctrl | A | R | S | T | D | | H | N | E | I | O | ' |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | | K | M | , | . | / |Enter |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * |ADJUST| Esc | Alt | GUI |LOWER |Space | | Space| RAISE| Left | Down | Up | Right|
+ * `-----------------------------------------' `-----------------------------------------'
+ */
+ [_COLEMAK] = LAYOUT(
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
+ KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
+ ADJUST, KC_ESC, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+ ),
+
+ /* Dvorak
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | Tab | ' | , | . | P | Y | | F | G | C | R | L | Bksp |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | Ctrl | A | O | E | U | I | | D | H | T | N | S | / |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | Shift| ; | Q | J | K | X | | B | M | W | V | Z |Enter |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * |ADJUST| Esc | Alt | GUI |LOWER |Space | | Space| RAISE| Left | Down | Up | Right|
+ * `-----------------------------------------' `-----------------------------------------'
+ */
+ [_DVORAK] = LAYOUT(
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
+ KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
+ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT,
+ ADJUST, KC_ESC, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+ ),
+
+ /* Lower
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | | | | | - | _ | + | { | } | | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | | | | | | | | Home | End | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------' `-----------------------------------------'
+ */
+ [_LOWER] = LAYOUT(
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
+ _______, _______, _______, _______, _______, _______, KC_MINS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+ ),
+
+ /* Raise
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | | F12 | | | | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------' `-----------------------------------------'
+ */
+ [_RAISE] = LAYOUT(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+ ),
+
+ /* Adjust (Lower + Raise)
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | | Reset| | | | | | |Qwerty|Colemk|Dvorak| | Ins |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | Caps | | | | | Mac | | Win | - | = |Print |ScLock|Pause |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | | | | | | | | | | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | | | | | KANA | | Home |PageDn|PageUp| End |
+ * `-----------------------------------------' `-----------------------------------------'
+ */
+ [_ADJUST] = LAYOUT(
+ _______, RESET, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, KC_INS,
+ KC_CAPS, _______, _______, _______, _______, AG_NORM, AG_SWAP, KC_MINS, KC_EQL, KC_PSCR, KC_SLCK, KC_PAUS,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
+ )
+};
+// clang-format on
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWERTY);
+ }
+ return false;
+ case COLEMAK:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_COLEMAK);
+ }
+ return false;
+ case DVORAK:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_DVORAK);
+ }
+ return false;
+ }
+ return true;
+}
+
+bool led_update_user(led_t led_state) {
+ board_set_led_by_index(0, LED_YELLOW, led_state.caps_lock);
+ board_set_led_by_index(1, LED_YELLOW, led_state.scroll_lock);
+
+ return false;
+}
+
+#ifdef OLED_DRIVER_ENABLE
+
+void oled_write_layer_state(void) {
+ oled_write_P(PSTR("Layer: "), false);
+ switch (get_highest_layer(layer_state | default_layer_state)) {
+ case _QWERTY:
+ oled_write_ln_P(PSTR("Qwerty"), false);
+ break;
+ case _COLEMAK:
+ oled_write_ln_P(PSTR("Colemak"), false);
+ break;
+ case _DVORAK:
+ oled_write_ln_P(PSTR("Dvorak"), false);
+ break;
+ case _LOWER:
+ oled_write_ln_P(PSTR("Lower"), false);
+ break;
+ case _RAISE:
+ oled_write_ln_P(PSTR("Raise"), false);
+ break;
+ case _ADJUST:
+ oled_write_ln_P(PSTR("Adjust"), false);
+ break;
+ default:
+ oled_write_ln_P(PSTR("Undef"), false);
+ break;
+ }
+}
+
+void oled_task_user(void) {
+ // If you want to change the display of OLED, you need to change here
+ oled_write_layer_state();
+}
+#endif
diff --git a/keyboards/chidori/keymaps/oled_sample/readme.md b/keyboards/chidori/keymaps/oled_sample/readme.md
new file mode 100644
index 0000000000..38f8a146a5
--- /dev/null
+++ b/keyboards/chidori/keymaps/oled_sample/readme.md
@@ -0,0 +1 @@
+# An OLED enabled keymap based on the default keymap for chidori
diff --git a/keyboards/chidori/keymaps/oled_sample/rules.mk b/keyboards/chidori/keymaps/oled_sample/rules.mk
new file mode 100644
index 0000000000..cc60236cac
--- /dev/null
+++ b/keyboards/chidori/keymaps/oled_sample/rules.mk
@@ -0,0 +1,2 @@
+# Enable SSD1306 OLED
+OLED_DRIVER_ENABLE = yes
diff --git a/keyboards/claw44/ssd1306.h b/keyboards/claw44/ssd1306.h
index ea8c923280..0ca093093a 100644
--- a/keyboards/claw44/ssd1306.h
+++ b/keyboards/claw44/ssd1306.h
@@ -2,7 +2,6 @@
#include <stdbool.h>
#include <stdio.h>
-#include "pincontrol.h"
#include "action.h"
enum ssd1306_cmds {
@@ -88,4 +87,4 @@ void matrix_write_ln(struct CharacterMatrix *matrix, const char *data);
void matrix_write_P(struct CharacterMatrix *matrix, const char *data);
void matrix_render(struct CharacterMatrix *matrix);
-bool process_record_gfx(uint16_t keycode, keyrecord_t *record); \ No newline at end of file
+bool process_record_gfx(uint16_t keycode, keyrecord_t *record);
diff --git a/keyboards/clueboard/2x1800/2x1800.c b/keyboards/clueboard/2x1800/2018/2018.c
index 09c90adbcf..1745309ff2 100644
--- a/keyboards/clueboard/2x1800/2x1800.c
+++ b/keyboards/clueboard/2x1800/2018/2018.c
@@ -13,7 +13,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "2x1800.h"
+#include "2018.h"
void matrix_init_kb(void) {
// Set our LED pins as output
diff --git a/keyboards/clueboard/2x1800/2x1800.h b/keyboards/clueboard/2x1800/2018/2018.h
index 818ceed80d..818ceed80d 100644
--- a/keyboards/clueboard/2x1800/2x1800.h
+++ b/keyboards/clueboard/2x1800/2018/2018.h
diff --git a/keyboards/clueboard/2x1800/config.h b/keyboards/clueboard/2x1800/2018/config.h
index e343011f95..af67b15b26 100644
--- a/keyboards/clueboard/2x1800/config.h
+++ b/keyboards/clueboard/2x1800/2018/config.h
@@ -25,7 +25,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define PRODUCT_ID 0x23A0
#define DEVICE_VER 0x0001
#define MANUFACTURER Clueboard
-#define PRODUCT Double 1800
+#define PRODUCT 2x1800 2018
#define DESCRIPTION What does it mean?
/* key matrix size */
diff --git a/keyboards/clueboard/2x1800/2018/info.json b/keyboards/clueboard/2x1800/2018/info.json
new file mode 100644
index 0000000000..0e3bb36a9d
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2018/info.json
@@ -0,0 +1,42 @@
+{
+ "keyboard_name": "Clueboard 2x1800",
+ "url": "",
+ "maintainer": "skullydazed",
+ "width": 24,
+ "height": 6.5,
+ "layouts": {
+ "LAYOUT": {
+ "key_count": 127,
+ "layout": [
+ {"label":"Home", "x":0, "y":0}, {"label":"End", "x":1, "y":0}, {"label":"PgUp", "x":2, "y":0}, {"label":"PgDn", "x":3, "y":0}, {"label":"Esc", "x":4.75, "y":0}, {"label":"F1", "x":6.25, "y":0}, {"label":"F2", "x":7.25, "y":0}, {"label":"F3", "x":8.25, "y":0}, {"label":"F4", "x":9.25, "y":0}, {"label":"F5", "x":10.75, "y":0}, {"label":"F6", "x":11.75, "y":0}, {"label":"F7", "x":12.75, "y":0}, {"label":"F8", "x":13.75, "y":0}, {"label":"F9", "x":15.25, "y":0}, {"label":"F10", "x":16.25, "y":0}, {"label":"F11", "x":17.25, "y":0}, {"label":"F12", "x":18.25, "y":0}, {"label":"PrtSc", "x":20, "y":0}, {"label":"Scroll Lock", "x":21, "y":0}, {"label":"Pause", "x":22, "y":0}, {"label":"Insert", "x":23, "y":0},
+ {"label":"-", "x":0, "y":1.25}, {"label":"Num Lock", "x":1, "y":1.25}, {"label":"/", "x":2, "y":1.25}, {"label":"*", "x":3, "y":1.25}, {"label":"~", "x":4.5, "y":1.25}, {"label":"!", "x":5.5, "y":1.25}, {"label":"@", "x":6.5, "y":1.25}, {"label":"#", "x":7.5, "y":1.25}, {"label":"$", "x":8.5, "y":1.25}, {"label":"%", "x":9.5, "y":1.25}, {"label":"^", "x":10.5, "y":1.25}, {"label":"&", "x":11.5, "y":1.25}, {"label":"*", "x":12.5, "y":1.25}, {"label":"(", "x":13.5, "y":1.25}, {"label":")", "x":14.5, "y":1.25}, {"label":"_", "x":15.5, "y":1.25}, {"label":"+", "x":16.5, "y":1.25}, {"label":"Backspace", "x":17.5, "y":1.25, "w":2}, {"label":"Num Lock", "x":20, "y":1.25}, {"label":"/", "x":21, "y":1.25}, {"label":"*", "x":22, "y":1.25}, {"label":"-", "x":23, "y":1.25},
+ {"label":"+", "x":0, "y":2.25, "h":2}, {"label":"7", "x":1, "y":2.25}, {"label":"8", "x":2, "y":2.25}, {"label":"9", "x":3, "y":2.25}, {"label":"Tab", "x":4.5, "y":2.25, "w":1.5}, {"label":"Q", "x":6, "y":2.25}, {"label":"W", "x":7, "y":2.25}, {"label":"E", "x":8, "y":2.25}, {"label":"R", "x":9, "y":2.25}, {"label":"T", "x":10, "y":2.25}, {"label":"Y", "x":11, "y":2.25}, {"label":"U", "x":12, "y":2.25}, {"label":"I", "x":13, "y":2.25}, {"label":"O", "x":14, "y":2.25}, {"label":"P", "x":15, "y":2.25}, {"label":"{", "x":16, "y":2.25}, {"label":"}", "x":17, "y":2.25}, {"label":"|", "x":18, "y":2.25, "w":1.5}, {"label":"7", "x":20, "y":2.25}, {"label":"8", "x":21, "y":2.25}, {"label":"9", "x":22, "y":2.25}, {"label":"+", "x":23, "y":2.25, "h":2},
+ {"label":"4", "x":1, "y":3.25}, {"label":"5", "x":2, "y":3.25}, {"label":"6", "x":3, "y":3.25}, {"label":"Caps Lock", "x":4.5, "y":3.25, "w":1.75}, {"label":"A", "x":6.25, "y":3.25}, {"label":"S", "x":7.25, "y":3.25}, {"label":"D", "x":8.25, "y":3.25}, {"label":"F", "x":9.25, "y":3.25}, {"label":"G", "x":10.25, "y":3.25}, {"label":"H", "x":11.25, "y":3.25}, {"label":"J", "x":12.25, "y":3.25}, {"label":"K", "x":13.25, "y":3.25}, {"label":"L", "x":14.25, "y":3.25}, {"label":":", "x":15.25, "y":3.25}, {"label":"\"", "x":16.25, "y":3.25}, {"label":"Enter", "x":17.25, "y":3.25, "w":2.25}, {"label":"4", "x":20, "y":3.25}, {"label":"5", "x":21, "y":3.25}, {"label":"6", "x":22, "y":3.25},
+ {"label":"Enter", "x":0, "y":4.25, "h":2}, {"label":"1", "x":1, "y":4.25}, {"label":"2", "x":2, "y":4.25}, {"label":"3", "x":3, "y":4.25}, {"label":"\\u2191", "x":4.25, "y":4.5}, {"label":"Shift", "x":5.5, "y":4.25, "w":1.25}, {"label":"Z", "x":6.75, "y":4.25}, {"label":"X", "x":7.75, "y":4.25}, {"label":"C", "x":8.75, "y":4.25}, {"label":"V", "x":9.75, "y":4.25}, {"label":"B", "x":10.75, "y":4.25}, {"label":"N", "x":11.75, "y":4.25}, {"label":"M", "x":12.75, "y":4.25}, {"label":"<", "x":13.75, "y":4.25}, {"label":">", "x":14.75, "y":4.25}, {"label":"?", "x":15.75, "y":4.25}, {"label":"Shift", "x":16.75, "y":4.25, "w":1.75}, {"label":"\\u2191", "x":18.75, "y":4.5}, {"label":"1", "x":20, "y":4.25}, {"label":"2", "x":21, "y":4.25}, {"label":"3", "x":22, "y":4.25}, {"label":"Enter", "x":23, "y":4.25, "h":2},
+ {"label":"0", "x":1, "y":5.25}, {"label":".", "x":2, "y":5.25}, {"label":"\\u2190", "x":3.25, "y":5.5}, {"label":"\\u2193", "x":4.25, "y":5.5}, {"label":"\\u2192", "x":5.25, "y":5.5}, {"label":"Ctrl", "x":6.5, "y":5.25}, {"label":"Win", "x":7.5, "y":5.25}, {"label":"Alt", "x":8.5, "y":5.25}, {"label":"1u", "x":9.5, "y":5.25}, {"label":"1u", "x":10.5, "y":5.25}, {"label":"1u", "x":11.5, "y":5.25}, {"label":"1u", "x":12.5, "y":5.25}, {"label":"Alt", "x":13.5, "y":5.25}, {"label":"Win", "x":14.5, "y":5.25}, {"label":"Menu", "x":15.5, "y":5.25}, {"label":"Ctrl", "x":16.5, "y":5.25}, {"label":"\\u2190", "x":17.75, "y":5.5}, {"label":"\\u2193", "x":18.75, "y":5.5}, {"label":"\\u2192", "x":19.75, "y":5.5}, {"label":"0", "x":21, "y":5.25}, {"label":".", "x":22, "y":5.25}
+ ]
+ },
+ "LAYOUT_7u_space": {
+ "key_count": 121,
+ "layout": [
+ {"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4.75, "y":0}, {"label":"k06", "x":6.25, "y":0}, {"label":"k07", "x":7.25, "y":0}, {"label":"k08", "x":8.25, "y":0}, {"label":"k09", "x":9.25, "y":0}, {"label":"k0a", "x":10.75, "y":0}, {"label":"k60", "x":11.75, "y":0}, {"label":"k61", "x":12.75, "y":0}, {"label":"k62", "x":13.75, "y":0}, {"label":"k63", "x":15.25, "y":0}, {"label":"k64", "x":16.25, "y":0}, {"label":"k65", "x":17.25, "y":0}, {"label":"k66", "x":18.25, "y":0}, {"label":"k67", "x":20, "y":0}, {"label":"k68", "x":21, "y":0}, {"label":"k69", "x":22, "y":0}, {"label":"k6a", "x":23, "y":0},
+ {"label":"k10", "x":0, "y":1.25}, {"label":"k11", "x":1, "y":1.25}, {"label":"k12", "x":2, "y":1.25}, {"label":"k13", "x":3, "y":1.25}, {"label":"k14", "x":4.5, "y":1.25}, {"label":"k15", "x":5.5, "y":1.25}, {"label":"k16", "x":6.5, "y":1.25}, {"label":"k17", "x":7.5, "y":1.25}, {"label":"k18", "x":8.5, "y":1.25}, {"label":"k19", "x":9.5, "y":1.25}, {"label":"k0a", "x":10.5, "y":1.25}, {"label":"k70", "x":11.5, "y":1.25}, {"label":"k71", "x":12.5, "y":1.25}, {"label":"k72", "x":13.5, "y":1.25}, {"label":"k73", "x":14.5, "y":1.25}, {"label":"k74", "x":15.5, "y":1.25}, {"label":"k75", "x":16.5, "y":1.25}, {"label":"k76", "x":17.5, "y":1.25, "w":2}, {"label":"k77", "x":20, "y":1.25}, {"label":"k78", "x":21, "y":1.25}, {"label":"k79", "x":22, "y":1.25}, {"label":"k7a", "x":23, "y":1.25},
+ {"label":"k20", "x":0, "y":2.25, "h":2}, {"label":"k21", "x":1, "y":2.25}, {"label":"k22", "x":2, "y":2.25}, {"label":"k23", "x":3, "y":2.25}, {"label":"k24", "x":4.5, "y":2.25, "w":1.5}, {"label":"k25", "x":6, "y":2.25}, {"label":"k26", "x":7, "y":2.25}, {"label":"k27", "x":8, "y":2.25}, {"label":"k28", "x":9, "y":2.25}, {"label":"k29", "x":10, "y":2.25}, {"label":"k2a", "x":11, "y":2.25}, {"label":"k80", "x":12, "y":2.25}, {"label":"k81", "x":13, "y":2.25}, {"label":"k82", "x":14, "y":2.25}, {"label":"k83", "x":15, "y":2.25}, {"label":"k84", "x":16, "y":2.25}, {"label":"k85", "x":17, "y":2.25}, {"label":"k86", "x":18, "y":2.25, "w":1.5}, {"label":"k87", "x":20, "y":2.25}, {"label":"k88", "x":21, "y":2.25}, {"label":"k89", "x":22, "y":2.25}, {"label":"k8a", "x":23, "y":2.25, "h":2},
+ {"label":"k31", "x":1, "y":3.25}, {"label":"k32", "x":2, "y":3.25}, {"label":"k33", "x":3, "y":3.25}, {"label":"k34", "x":4.5, "y":3.25, "w":1.75}, {"label":"k35", "x":6.25, "y":3.25}, {"label":"k36", "x":7.25, "y":3.25}, {"label":"k37", "x":8.25, "y":3.25}, {"label":"k38", "x":9.25, "y":3.25}, {"label":"k39", "x":10.25, "y":3.25}, {"label":"k3a", "x":11.25, "y":3.25}, {"label":"k90", "x":12.25, "y":3.25}, {"label":"k91", "x":13.25, "y":3.25}, {"label":"k92", "x":14.25, "y":3.25}, {"label":"k93", "x":15.25, "y":3.25}, {"label":"k94", "x":16.25, "y":3.25}, {"label":"k95", "x":17.25, "y":3.25, "w":2.25}, {"label":"k97", "x":20, "y":3.25}, {"label":"k98", "x":21, "y":3.25}, {"label":"k99", "x":22, "y":3.25},
+ {"label":"k40", "x":0, "y":4.25, "h":2}, {"label":"k41", "x":1, "y":4.25}, {"label":"k42", "x":2, "y":4.25}, {"label":"k43", "x":3, "y":4.25}, {"label":"k45", "x":5.5, "y":4.25, "w":1.25}, {"label":"k46", "x":6.75, "y":4.25}, {"label":"k47", "x":7.75, "y":4.25}, {"label":"k48", "x":8.75, "y":4.25}, {"label":"k49", "x":9.75, "y":4.25}, {"label":"k4a", "x":10.75, "y":4.25}, {"label":"ka0", "x":11.75, "y":4.25}, {"label":"ka1", "x":12.75, "y":4.25}, {"label":"ka2", "x":13.75, "y":4.25}, {"label":"ka3", "x":14.75, "y":4.25}, {"label":"ka4", "x":15.75, "y":4.25}, {"label":"ka5", "x":16.75, "y":4.25, "w":1.75}, {"label":"ka7", "x":20, "y":4.25}, {"label":"ka8", "x":21, "y":4.25}, {"label":"ka9", "x":22, "y":4.25}, {"label":"kaa", "x":23, "y":4.25, "h":2}, {"label":"k44", "x":4.25, "y":4.5}, {"label":"k96", "x":18.75, "y":4.5},
+ {"label":"k51", "x":1, "y":5.25}, {"label":"k52", "x":2, "y":5.25}, {"label":"k56", "x":6.5, "y":5.25}, {"label":"k57", "x":7.5, "y":5.25}, {"label":"kb0", "x":8.5, "y":5.25, "w":7}, {"label":"kb4", "x":15.5, "y":5.25}, {"label":"kb5", "x":16.5, "y":5.25}, {"label":"kb8", "x":21, "y":5.25}, {"label":"kb9", "x":22, "y":5.25}, {"label":"k53", "x":3.25, "y":5.5}, {"label":"k54", "x":4.25, "y":5.5}, {"label":"k55", "x":5.25, "y":5.5}, {"label":"ka6", "x":17.75, "y":5.5}, {"label":"kb6", "x":18.75, "y":5.5}, {"label":"kb7", "x":19.75, "y":5.5}
+ ]
+ },
+ "LAYOUT_4u_space": {
+ "key_count": 124,
+ "layout": [
+ {"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4.75, "y":0}, {"label":"k06", "x":6.25, "y":0}, {"label":"k07", "x":7.25, "y":0}, {"label":"k08", "x":8.25, "y":0}, {"label":"k09", "x":9.25, "y":0}, {"label":"k0a", "x":10.75, "y":0}, {"label":"k60", "x":11.75, "y":0}, {"label":"k61", "x":12.75, "y":0}, {"label":"k62", "x":13.75, "y":0}, {"label":"k63", "x":15.25, "y":0}, {"label":"k64", "x":16.25, "y":0}, {"label":"k65", "x":17.25, "y":0}, {"label":"k66", "x":18.25, "y":0}, {"label":"k67", "x":20, "y":0}, {"label":"k68", "x":21, "y":0}, {"label":"k69", "x":22, "y":0}, {"label":"k6a", "x":23, "y":0},
+ {"label":"k10", "x":0, "y":1.25}, {"label":"k11", "x":1, "y":1.25}, {"label":"k12", "x":2, "y":1.25}, {"label":"k13", "x":3, "y":1.25}, {"label":"k14", "x":4.5, "y":1.25}, {"label":"k15", "x":5.5, "y":1.25}, {"label":"k16", "x":6.5, "y":1.25}, {"label":"k17", "x":7.5, "y":1.25}, {"label":"k18", "x":8.5, "y":1.25}, {"label":"k19", "x":9.5, "y":1.25}, {"label":"k0a", "x":10.5, "y":1.25}, {"label":"k70", "x":11.5, "y":1.25}, {"label":"k71", "x":12.5, "y":1.25}, {"label":"k72", "x":13.5, "y":1.25}, {"label":"k73", "x":14.5, "y":1.25}, {"label":"k74", "x":15.5, "y":1.25}, {"label":"k75", "x":16.5, "y":1.25}, {"label":"k76", "x":17.5, "y":1.25, "w":2}, {"label":"k77", "x":20, "y":1.25}, {"label":"k78", "x":21, "y":1.25}, {"label":"k79", "x":22, "y":1.25}, {"label":"k7a", "x":23, "y":1.25},
+ {"label":"k20", "x":0, "y":2.25, "h":2}, {"label":"k21", "x":1, "y":2.25}, {"label":"k22", "x":2, "y":2.25}, {"label":"k23", "x":3, "y":2.25}, {"label":"k24", "x":4.5, "y":2.25, "w":1.5}, {"label":"k25", "x":6, "y":2.25}, {"label":"k26", "x":7, "y":2.25}, {"label":"k27", "x":8, "y":2.25}, {"label":"k28", "x":9, "y":2.25}, {"label":"k29", "x":10, "y":2.25}, {"label":"k2a", "x":11, "y":2.25}, {"label":"k80", "x":12, "y":2.25}, {"label":"k81", "x":13, "y":2.25}, {"label":"k82", "x":14, "y":2.25}, {"label":"k83", "x":15, "y":2.25}, {"label":"k84", "x":16, "y":2.25}, {"label":"k85", "x":17, "y":2.25}, {"label":"k86", "x":18, "y":2.25, "w":1.5}, {"label":"k87", "x":20, "y":2.25}, {"label":"k88", "x":21, "y":2.25}, {"label":"k89", "x":22, "y":2.25}, {"label":"k8a", "x":23, "y":2.25, "h":2},
+ {"label":"k31", "x":1, "y":3.25}, {"label":"k32", "x":2, "y":3.25}, {"label":"k33", "x":3, "y":3.25}, {"label":"k34", "x":4.5, "y":3.25, "w":1.75}, {"label":"k35", "x":6.25, "y":3.25}, {"label":"k36", "x":7.25, "y":3.25}, {"label":"k37", "x":8.25, "y":3.25}, {"label":"k38", "x":9.25, "y":3.25}, {"label":"k39", "x":10.25, "y":3.25}, {"label":"k3a", "x":11.25, "y":3.25}, {"label":"k90", "x":12.25, "y":3.25}, {"label":"k91", "x":13.25, "y":3.25}, {"label":"k92", "x":14.25, "y":3.25}, {"label":"k93", "x":15.25, "y":3.25}, {"label":"k94", "x":16.25, "y":3.25}, {"label":"k95", "x":17.25, "y":3.25, "w":2.25}, {"label":"k97", "x":20, "y":3.25}, {"label":"k98", "x":21, "y":3.25}, {"label":"k99", "x":22, "y":3.25},
+ {"label":"k40", "x":0, "y":4.25, "h":2}, {"label":"k41", "x":1, "y":4.25}, {"label":"k42", "x":2, "y":4.25}, {"label":"k43", "x":3, "y":4.25}, {"label":"k45", "x":5.5, "y":4.25, "w":1.25}, {"label":"k46", "x":6.75, "y":4.25}, {"label":"k47", "x":7.75, "y":4.25}, {"label":"k48", "x":8.75, "y":4.25}, {"label":"k49", "x":9.75, "y":4.25}, {"label":"k4a", "x":10.75, "y":4.25}, {"label":"ka0", "x":11.75, "y":4.25}, {"label":"ka1", "x":12.75, "y":4.25}, {"label":"ka2", "x":13.75, "y":4.25}, {"label":"ka3", "x":14.75, "y":4.25}, {"label":"ka4", "x":15.75, "y":4.25}, {"label":"ka5", "x":16.75, "y":4.25, "w":1.75}, {"label":"ka7", "x":20, "y":4.25}, {"label":"ka8", "x":21, "y":4.25}, {"label":"ka9", "x":22, "y":4.25}, {"label":"kaa", "x":23, "y":4.25, "h":2}, {"label":"k44", "x":4.25, "y":4.5}, {"label":"k96", "x":18.75, "y":4.5},
+ {"label":"k51", "x":1, "y":5.25}, {"label":"k52", "x":2, "y":5.25}, {"label":"k56", "x":6.5, "y":5.25}, {"label":"k57", "x":7.5, "y":5.25}, {"label":"k58", "x":8.5, "y":5.25}, {"label":"kb0", "x":9.5, "y":5.25, "w":4}, {"label":"kb2", "x":13.5, "y":5.25}, {"label":"kb3", "x":14.5, "y":5.25}, {"label":"kb4", "x":15.5, "y":5.25}, {"label":"kb5", "x":16.5, "y":5.25}, {"label":"kb8", "x":21, "y":5.25}, {"label":"kb9", "x":22, "y":5.25}, {"label":"k53", "x":3.25, "y":5.5}, {"label":"k54", "x":4.25, "y":5.5}, {"label":"k55", "x":5.25, "y":5.5}, {"label":"ka6", "x":17.75, "y":5.5}, {"label":"kb6", "x":18.75, "y":5.5}, {"label":"kb7", "x":19.75, "y":5.5}
+ ]
+ }
+ }
+}
diff --git a/keyboards/clueboard/2x1800/keymaps/default/config.h b/keyboards/clueboard/2x1800/2018/keymaps/default/config.h
index dd48c69e36..dd48c69e36 100644
--- a/keyboards/clueboard/2x1800/keymaps/default/config.h
+++ b/keyboards/clueboard/2x1800/2018/keymaps/default/config.h
diff --git a/keyboards/clueboard/2x1800/2018/keymaps/default/keymap.json b/keyboards/clueboard/2x1800/2018/keymaps/default/keymap.json
new file mode 100644
index 0000000000..f7316001c3
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2018/keymaps/default/keymap.json
@@ -0,0 +1,11 @@
+{
+ "keyboard":"clueboard/2x1800/2018",
+ "keymap":"default",
+ "layout":"LAYOUT",
+ "layers":[
+ ["KC_HOME","KC_END","KC_PGUP","KC_PGDN","KC_ESC","KC_F1","KC_F2","KC_F3","KC_F4","KC_F5","KC_F6","KC_F7","KC_F8","KC_F9","KC_F10","KC_F11","KC_F12","KC_PSCR","KC_SLCK","KC_PAUS","KC_INS","KC_PMNS","KC_NLCK","KC_PSLS","KC_PAST","KC_GRV","KC_1","KC_2","KC_3","KC_4","KC_5","KC_6","KC_7","KC_8","KC_9","KC_0","KC_MINS","KC_EQL","KC_BSPC","KC_NLCK","KC_PSLS","KC_PAST","KC_PMNS","KC_PPLS","KC_P7","KC_P8","KC_P9","KC_TAB","KC_Q","KC_W","KC_E","KC_R","KC_T","KC_Y","KC_U","KC_I","KC_O","KC_P","KC_LBRC","KC_RBRC","KC_BSLS","KC_P7","KC_P8","KC_P9","KC_PSLS","KC_P4","KC_P5","KC_P6","KC_CAPS","KC_A","KC_S","KC_D","KC_F","KC_G","KC_H","KC_J","KC_K","KC_L","KC_SCLN","KC_QUOT","KC_ENT","KC_P4","KC_P5","KC_P6","KC_PENT","KC_P1","KC_P2","KC_P3","KC_UP","KC_LSFT","KC_Z","KC_X","KC_C","KC_V","KC_B","KC_N","KC_M","KC_SLSH","KC_COMM","KC_DOT","KC_RSFT","KC_UP","KC_P1","KC_P2","KC_P3","KC_PENT","KC_P0","KC_PDOT","KC_LEFT","KC_DOWN","KC_RGHT","KC_LCTL","KC_LGUI","KC_LALT","KC_SPC","KC_SPC","KC_SPC","KC_SPC","KC_RALT","KC_RGUI","KC_APP","KC_RCTL","KC_LEFT","KC_DOWN","KC_RGHT","KC_P0","KC_PDOT"]
+ ],
+ "author":"skullydazed",
+ "notes":"",
+ "version":1
+}
diff --git a/keyboards/clueboard/2x1800/keymaps/default/readme.md b/keyboards/clueboard/2x1800/2018/keymaps/default/readme.md
index 4e3457efce..4e3457efce 100644
--- a/keyboards/clueboard/2x1800/keymaps/default/readme.md
+++ b/keyboards/clueboard/2x1800/2018/keymaps/default/readme.md
diff --git a/keyboards/clueboard/2x1800/keymaps/default_4u/keymap.c b/keyboards/clueboard/2x1800/2018/keymaps/default_4u/keymap.c
index c33dfd31e6..04fa371b09 100644
--- a/keyboards/clueboard/2x1800/keymaps/default_4u/keymap.c
+++ b/keyboards/clueboard/2x1800/2018/keymaps/default_4u/keymap.c
@@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \
KC_PPLS, KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PSLS, \
KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \
- KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_SLSH, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \
+ KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \
KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT \
)
};
diff --git a/keyboards/clueboard/2x1800/keymaps/default_4u/readme.md b/keyboards/clueboard/2x1800/2018/keymaps/default_4u/readme.md
index a696972e8c..a696972e8c 100644
--- a/keyboards/clueboard/2x1800/keymaps/default_4u/readme.md
+++ b/keyboards/clueboard/2x1800/2018/keymaps/default_4u/readme.md
diff --git a/keyboards/clueboard/2x1800/keymaps/default_7u/keymap.c b/keyboards/clueboard/2x1800/2018/keymaps/default_7u/keymap.c
index 866369a775..866369a775 100644
--- a/keyboards/clueboard/2x1800/keymaps/default_7u/keymap.c
+++ b/keyboards/clueboard/2x1800/2018/keymaps/default_7u/keymap.c
diff --git a/keyboards/clueboard/2x1800/keymaps/default_7u/readme.md b/keyboards/clueboard/2x1800/2018/keymaps/default_7u/readme.md
index f5718e842d..f5718e842d 100644
--- a/keyboards/clueboard/2x1800/keymaps/default_7u/readme.md
+++ b/keyboards/clueboard/2x1800/2018/keymaps/default_7u/readme.md
diff --git a/keyboards/clueboard/2x1800/keymaps/macroboard/keymap.c b/keyboards/clueboard/2x1800/2018/keymaps/macroboard/keymap.c
index f69ed801e7..ca6be8326e 100644
--- a/keyboards/clueboard/2x1800/keymaps/macroboard/keymap.c
+++ b/keyboards/clueboard/2x1800/2018/keymaps/macroboard/keymap.c
@@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
MACRO05, MACRO06, MACRO07, MACRO08, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \
MACRO09, MACRO10, MACRO11, MACRO12, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PSLS, \
MACRO13, MACRO14, MACRO15, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \
- MACRO16, MACRO17, MACRO18, MACRO19, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_SLSH, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \
+ MACRO16, MACRO17, MACRO18, MACRO19, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \
MACRO20, MACRO21, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT \
)
};
diff --git a/keyboards/clueboard/2x1800/keymaps/macroboard/readme.md b/keyboards/clueboard/2x1800/2018/keymaps/macroboard/readme.md
index 61c9468e7d..61c9468e7d 100644
--- a/keyboards/clueboard/2x1800/keymaps/macroboard/readme.md
+++ b/keyboards/clueboard/2x1800/2018/keymaps/macroboard/readme.md
diff --git a/keyboards/clueboard/2x1800/keymaps/mouseboard_left/keymap.c b/keyboards/clueboard/2x1800/2018/keymaps/mouseboard_left/keymap.c
index e0c97aadac..15c5f6ebb4 100644
--- a/keyboards/clueboard/2x1800/keymaps/mouseboard_left/keymap.c
+++ b/keyboards/clueboard/2x1800/2018/keymaps/mouseboard_left/keymap.c
@@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_NO, KC_NO, KC_BTN4, KC_BTN5, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \
KC_WH_U, KC_NO, KC_MS_U, KC_NO, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PSLS, \
KC_MS_L, KC_BTN3, KC_MS_R, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \
- KC_WH_D, KC_BTN1, KC_MS_D, KC_BTN2, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_SLSH, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \
+ KC_WH_D, KC_BTN1, KC_MS_D, KC_BTN2, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \
KC_WH_L, KC_WH_R, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT \
)
};
diff --git a/keyboards/clueboard/2x1800/keymaps/mouseboard_left/readme.md b/keyboards/clueboard/2x1800/2018/keymaps/mouseboard_left/readme.md
index 41304eca5e..41304eca5e 100644
--- a/keyboards/clueboard/2x1800/keymaps/mouseboard_left/readme.md
+++ b/keyboards/clueboard/2x1800/2018/keymaps/mouseboard_left/readme.md
diff --git a/keyboards/clueboard/2x1800/keymaps/mouseboard_right/keymap.c b/keyboards/clueboard/2x1800/2018/keymaps/mouseboard_right/keymap.c
index d140f5d74e..3e66342499 100644
--- a/keyboards/clueboard/2x1800/keymaps/mouseboard_right/keymap.c
+++ b/keyboards/clueboard/2x1800/2018/keymaps/mouseboard_right/keymap.c
@@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, \
KC_PPLS, KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_NO, KC_MS_U, KC_NO, KC_WH_U, \
KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_MS_L, KC_BTN3, KC_MS_R, \
- KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_SLSH, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_BTN1, KC_MS_D, KC_BTN2, KC_WH_D, \
+ KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_BTN1, KC_MS_D, KC_BTN2, KC_WH_D, \
KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_WH_L, KC_WH_R \
)
};
diff --git a/keyboards/clueboard/2x1800/keymaps/mouseboard_right/readme.md b/keyboards/clueboard/2x1800/2018/keymaps/mouseboard_right/readme.md
index 51939d6347..51939d6347 100644
--- a/keyboards/clueboard/2x1800/keymaps/mouseboard_right/readme.md
+++ b/keyboards/clueboard/2x1800/2018/keymaps/mouseboard_right/readme.md
diff --git a/keyboards/clueboard/2x1800/2018/readme.md b/keyboards/clueboard/2x1800/2018/readme.md
new file mode 100644
index 0000000000..df4412de4d
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2018/readme.md
@@ -0,0 +1,13 @@
+# Clueboard 2x1800
+
+Clueboard Double 1800 All The Way
+
+* Keyboard Maintainer: [Zach White](https://github.com/skullydazed)
+* Hardware Supported: Clueboard 2x1800 PCB
+* Hardware Availability: 2018 Apr 1 Group Buy
+
+Make example for this keyboard:
+
+ make clueboard/2x1800/2018:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/clueboard/2x1800/rules.mk b/keyboards/clueboard/2x1800/2018/rules.mk
index 34d9c2a24e..34d9c2a24e 100644
--- a/keyboards/clueboard/2x1800/rules.mk
+++ b/keyboards/clueboard/2x1800/2018/rules.mk
diff --git a/keyboards/clueboard/2x1800/2019/2019.c b/keyboards/clueboard/2x1800/2019/2019.c
new file mode 100644
index 0000000000..29f7a4901c
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2019/2019.c
@@ -0,0 +1,182 @@
+/* Copyright 2017 Zach White <skullydazed@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include "2019.h"
+
+void matrix_init_kb(void) {
+ // Set our LED pins as output
+ setPinOutput(D6);
+ setPinOutput(B4);
+ setPinOutput(B5);
+ setPinOutput(B6);
+
+ // Set our Tilt Sensor pins as input
+ setPinInputHigh(SHAKE_PIN_A);
+ setPinInputHigh(SHAKE_PIN_B);
+
+ // Run the keymap level init
+ matrix_init_user();
+}
+
+#ifdef DRAWING_ENABLE
+bool drawing_mode = false;
+bool btn1_pressed = false;
+bool btn2_pressed = false;
+bool btn3_pressed = false;
+bool btn4_pressed = false;
+
+void check_encoder_buttons(void) {
+ if (btn1_pressed && btn2_pressed && btn3_pressed && btn4_pressed) {
+ // All 4 buttons pressed, toggle drawing mode
+ if (drawing_mode) {
+ dprintf("Turning drawing mode off.\n");
+ drawing_mode = false;
+ writePinLow(D6);
+ unregister_code(KC_BTN1);
+ } else {
+ dprintf("Turning drawing mode on.\n");
+ drawing_mode = true;
+ writePinHigh(D6);
+ register_code(KC_BTN1);
+ }
+ }
+}
+#endif
+
+#ifdef SHAKE_ENABLE
+uint8_t tilt_state = 0x11;
+uint8_t detected_shakes = 0;
+static uint16_t shake_timer;
+#endif
+
+void matrix_scan_kb(void) {
+#ifdef SHAKE_ENABLE
+ // Read the current state of the tilt sensor. It is physically
+ // impossible for both pins to register a low state at the same time.
+ uint8_t tilt_read = (readPin(SHAKE_PIN_A) << 4) | readPin(SHAKE_PIN_B);
+
+ // Check to see if the tilt sensor has changed state since our last read
+ if (tilt_state != tilt_read) {
+ shake_timer = timer_read();
+ detected_shakes++;
+ tilt_state = tilt_read;
+ }
+
+ if ((detected_shakes > 0) && (timer_elapsed(shake_timer) > SHAKE_TIMEOUT)) {
+ if (detected_shakes > SHAKE_COUNT) {
+ dprintf("Shake triggered! We detected %d shakes.\n", detected_shakes);
+ tap_code16(SHAKE_KEY);
+ } else {
+ dprintf("Shake not triggered! We detected %d shakes.\n", detected_shakes);
+ }
+ detected_shakes = 0;
+ }
+#endif
+
+ matrix_scan_user();
+}
+
+bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+#ifdef DRAWING_ENABLE
+ if (keycode == ENC_BTN1) {
+ if (record->event.pressed) {
+ btn1_pressed = true;
+ register_code(KC_BTN1);
+ } else {
+ btn1_pressed = false;
+ unregister_code(KC_BTN1);
+ }
+ }
+ if (keycode == ENC_BTN2) {
+ if (record->event.pressed) {
+ btn2_pressed = true;
+ register_code(KC_BTN2);
+ } else {
+ btn2_pressed = false;
+ unregister_code(KC_BTN2);
+ }
+ }
+ if (keycode == ENC_BTN3) {
+ if (record->event.pressed) {
+ btn3_pressed = true;
+ register_code(KC_BTN3);
+ } else {
+ btn3_pressed = false;
+ unregister_code(KC_BTN3);
+ }
+ }
+ if (keycode == ENC_BTN4) {
+ if (record->event.pressed) {
+ btn4_pressed = true;
+ register_code(KC_BTN4);
+ } else {
+ btn4_pressed = false;
+ unregister_code(KC_BTN4);
+ }
+ }
+
+ check_encoder_buttons();
+#endif
+
+ return process_record_user(keycode, record);
+}
+
+bool led_update_kb(led_t led_state) {
+ bool res = led_update_user(led_state);
+ if(res) {
+ writePin(B4, !led_state.num_lock);
+ writePin(B5, !led_state.caps_lock);
+ writePin(B6, !led_state.scroll_lock);
+ }
+
+ return res;
+}
+
+__attribute__ ((weak))
+bool encoder_update_keymap(int8_t index, bool clockwise) {
+ return false;
+}
+
+void encoder_update_kb(int8_t index, bool clockwise) {
+ if (!encoder_update_keymap(index, clockwise)) {
+ // Encoder 1, outside left
+ if (index == 0 && clockwise) {
+ tap_code(KC_MS_U); // turned right
+ } else if (index == 0) {
+ tap_code(KC_MS_D); // turned left
+ }
+
+ // Encoder 2, inside left
+ else if (index == 1 && clockwise) {
+ tap_code(KC_WH_D); // turned right
+ } else if (index == 1) {
+ tap_code(KC_WH_U); // turned left
+ }
+
+ // Encoder 3, inside right
+ else if (index == 2 && clockwise) {
+ tap_code(KC_VOLU); // turned right
+ } else if (index == 2) {
+ tap_code(KC_VOLD); // turned left
+ }
+
+ // Encoder 4, outside right
+ else if (index == 3 && clockwise) {
+ tap_code(KC_MS_R); // turned right
+ } else if (index == 3) {
+ tap_code(KC_MS_L); // turned left
+ }
+ }
+}
diff --git a/keyboards/clueboard/2x1800/2019/2019.h b/keyboards/clueboard/2x1800/2019/2019.h
new file mode 100644
index 0000000000..b9151071fd
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2019/2019.h
@@ -0,0 +1,257 @@
+/* Copyright 2017 Zach White <skullydazed@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#include "quantum.h"
+
+enum TWOx1800_keycodes {
+ ENC_BTN1 = SAFE_RANGE,
+ ENC_BTN2,
+ ENC_BTN3,
+ ENC_BTN4,
+ NEW_SAFE_RANGE
+};
+
+#undef SAFE_RANGE
+#define SAFE_RANGE NEW_SAFE_RANGE
+
+// This a shortcut to help you visually see your layout.
+// The first section contains all of the arguments
+// The second converts the arguments into a two-dimensional array
+#define LAYOUT_all( \
+ e00, e01, e02, e03, \
+ k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a, \
+ k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k9a, k95, k97, k98, k99, \
+ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \
+ k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a, kb0, kb1, kb2, kb3, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \
+) { \
+ { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \
+ { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \
+ { KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a }, \
+ { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \
+ { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \
+ { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a }, \
+ { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, k9a }, \
+ { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \
+ { kb0, kb1, kb2, kb3, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \
+ { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \
+}
+
+#define LAYOUT_1u_ansi( \
+ e00, e01, e02, e03, \
+ k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a, \
+ k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k95, k97, k98, k99, \
+ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \
+ k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a, kb0, kb1, kb2, kb3, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \
+) { \
+ { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \
+ { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \
+ { KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a }, \
+ { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \
+ { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \
+ { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a }, \
+ { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, KC_NO }, \
+ { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \
+ { kb0, kb1, kb2, kb3, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \
+ { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \
+}
+
+#define LAYOUT_1u_iso( \
+ e00, e01, e02, e03, \
+ k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k87, k88, k89, k8a, \
+ k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k9a, k95, k97, k98, k99, \
+ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \
+ k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a, kb0, kb1, kb2, kb3, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \
+) { \
+ { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \
+ { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \
+ { KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a }, \
+ { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \
+ { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \
+ { k80, k81, k82, k83, k84, k85, KC_NO, k87, k88, k89, k8a }, \
+ { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, k9a }, \
+ { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \
+ { kb0, kb1, kb2, kb3, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \
+ { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \
+}
+
+#define LAYOUT_2u_ansi( \
+ e00, e01, e02, e03, \
+ k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a, \
+ k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k95, k97, k98, k99, \
+ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \
+ k51, k52, k53, k54, k55, k56, k57, k58, k59, kb0, kb1, kb2, kb3, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \
+) { \
+ { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \
+ { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \
+ { KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, k59, KC_NO }, \
+ { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \
+ { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \
+ { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a }, \
+ { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, KC_NO }, \
+ { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \
+ { kb0, kb1, kb2, kb3, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \
+ { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \
+}
+
+#define LAYOUT_2u_iso( \
+ e00, e01, e02, e03, \
+ k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k87, k88, k89, k8a, \
+ k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k9a, k95, k97, k98, k99, \
+ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \
+ k51, k52, k53, k54, k55, k56, k57, k58, k59, kb0, kb1, kb2, kb3, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \
+) { \
+ { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \
+ { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \
+ { KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, k59, KC_NO }, \
+ { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \
+ { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \
+ { k80, k81, k82, k83, k84, k85, KC_NO, k87, k88, k89, k8a }, \
+ { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, k9a }, \
+ { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \
+ { kb0, kb1, kb2, kb3, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \
+ { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \
+}
+
+#define LAYOUT_4u_ansi( \
+ e00, e01, e02, e03, \
+ k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a, \
+ k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k95, k97, k98, k99, \
+ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \
+ k51, k52, k53, k54, k55, k56, k57, k58, kb0, kb2, kb3, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \
+) { \
+ { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \
+ { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \
+ { KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, KC_NO, KC_NO }, \
+ { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \
+ { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \
+ { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a }, \
+ { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, KC_NO }, \
+ { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \
+ { kb0, KC_NO, kb2, kb3, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \
+ { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \
+}
+
+#define LAYOUT_4u_iso( \
+ e00, e01, e02, e03, \
+ k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k87, k88, k89, k8a, \
+ k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k9a, k95, k97, k98, k99, \
+ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \
+ k51, k52, k53, k54, k55, k56, k57, k58, kb0, kb2, kb3, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \
+) { \
+ { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \
+ { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \
+ { KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, KC_NO, KC_NO }, \
+ { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \
+ { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \
+ { k80, k81, k82, k83, k84, k85, KC_NO, k87, k88, k89, k8a }, \
+ { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, k9a }, \
+ { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \
+ { kb0, KC_NO, kb2, kb3, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \
+ { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \
+}
+
+#define LAYOUT_7u_ansi( \
+ e00, e01, e02, e03, \
+ k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a, \
+ k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k95, k97, k98, k99, \
+ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \
+ k51, k52, k53, k54, k55, k56, k57, kb0, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \
+) { \
+ { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \
+ { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \
+ { KC_NO, k51, k52, k53, k54, k55, k56, k57, KC_NO, KC_NO, KC_NO }, \
+ { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \
+ { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \
+ { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a }, \
+ { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, KC_NO }, \
+ { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \
+ { kb0, KC_NO, KC_NO, KC_NO, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \
+ { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \
+}
+
+#define LAYOUT_7u_iso( \
+ e00, e01, e02, e03, \
+ k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k87, k88, k89, k8a, \
+ k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k9a, k95, k97, k98, k99, \
+ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \
+ k51, k52, k53, k54, k55, k56, k57, kb0, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \
+) { \
+ { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \
+ { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \
+ { KC_NO, k51, k52, k53, k54, k55, k56, k57, KC_NO, KC_NO, KC_NO }, \
+ { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \
+ { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \
+ { k80, k81, k82, k83, k84, k85, KC_NO, k87, k88, k89, k8a }, \
+ { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, k9a }, \
+ { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \
+ { kb0, KC_NO, KC_NO, KC_NO, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \
+ { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \
+}
+
+#define LAYOUT LAYOUT_all
+
+// Encoder update function that returns true/false
+__attribute__ ((weak))
+bool encoder_update_keymap(int8_t index, bool clockwise);
+
+// Encoder button combo check
+void check_encoder_buttons(void);
diff --git a/keyboards/clueboard/2x1800/2019/config.h b/keyboards/clueboard/2x1800/2019/config.h
new file mode 100644
index 0000000000..b9e087f62a
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2019/config.h
@@ -0,0 +1,214 @@
+/*
+Copyright 2017 Zach White <skullydazed@clueboard.co>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xC1ED
+#define PRODUCT_ID 0x23A0
+#define DEVICE_VER 0x0002
+#define MANUFACTURER Clueboard
+#define PRODUCT 2x1800 2019
+#define DESCRIPTION Mechanical Drawing Toy Edition
+
+/* key matrix size */
+#define MATRIX_ROWS 13
+#define MATRIX_COLS 11
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS { C0, C1, C2, C3, C7, F7, B1, F2, F3, F4, F5, F6, C6 }
+#define MATRIX_COL_PINS { D2, D3, D4, D5, D7, E0, E1, B0, E6, B3, B2 }
+#define UNUSED_PINS { D0, D1, D6, C5, E7, F0, F1 }
+
+#define ENCODERS_PAD_A { A5, A4, A2, A1 }
+#define ENCODERS_PAD_B { A6, A7, A3, A0 }
+#define ENCODER_RESOLUTION 4
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION ROW2COL
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* audio support */
+#define B7_AUDIO
+#define C4_AUDIO
+#define AUDIO_CLICKY
+
+/* number of backlight levels */
+// #define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+// #define BACKLIGHT_LEVELS 3
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+#define RGB_DI_PIN C5
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 16
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+// #define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP1 H
+//#define MAGIC_KEY_HELP2 SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0_ALT1 ESC
+//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER PAUSE
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+/*
+ * MIDI options
+ */
+
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+//#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 1
+
+/*
+ * Drawing mode
+ */
+#define DRAWING_ENABLE
+//#define UNDO_KEY LGUI(KC_Z) // What key to send for undo
+//#define UNDO_KEY LCTL(KC_Z)
+#define UNDO_KEY LGUI(KC_SLSH)
+
+/*
+ * Shake to undo configuration
+ */
+#define SHAKE_ENABLE
+#define SHAKE_PIN_A E4
+#define SHAKE_PIN_B E5
+#define SHAKE_TIMEOUT 500 // How long after shaking stops before we register it
+#define SHAKE_COUNT 8 // How many shakes it takes to activate
+#define SHAKE_KEY UNDO_KEY // What key to send after a shake
diff --git a/keyboards/clueboard/2x1800/2019/info.json b/keyboards/clueboard/2x1800/2019/info.json
new file mode 100644
index 0000000000..0e3bb36a9d
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2019/info.json
@@ -0,0 +1,42 @@
+{
+ "keyboard_name": "Clueboard 2x1800",
+ "url": "",
+ "maintainer": "skullydazed",
+ "width": 24,
+ "height": 6.5,
+ "layouts": {
+ "LAYOUT": {
+ "key_count": 127,
+ "layout": [
+ {"label":"Home", "x":0, "y":0}, {"label":"End", "x":1, "y":0}, {"label":"PgUp", "x":2, "y":0}, {"label":"PgDn", "x":3, "y":0}, {"label":"Esc", "x":4.75, "y":0}, {"label":"F1", "x":6.25, "y":0}, {"label":"F2", "x":7.25, "y":0}, {"label":"F3", "x":8.25, "y":0}, {"label":"F4", "x":9.25, "y":0}, {"label":"F5", "x":10.75, "y":0}, {"label":"F6", "x":11.75, "y":0}, {"label":"F7", "x":12.75, "y":0}, {"label":"F8", "x":13.75, "y":0}, {"label":"F9", "x":15.25, "y":0}, {"label":"F10", "x":16.25, "y":0}, {"label":"F11", "x":17.25, "y":0}, {"label":"F12", "x":18.25, "y":0}, {"label":"PrtSc", "x":20, "y":0}, {"label":"Scroll Lock", "x":21, "y":0}, {"label":"Pause", "x":22, "y":0}, {"label":"Insert", "x":23, "y":0},
+ {"label":"-", "x":0, "y":1.25}, {"label":"Num Lock", "x":1, "y":1.25}, {"label":"/", "x":2, "y":1.25}, {"label":"*", "x":3, "y":1.25}, {"label":"~", "x":4.5, "y":1.25}, {"label":"!", "x":5.5, "y":1.25}, {"label":"@", "x":6.5, "y":1.25}, {"label":"#", "x":7.5, "y":1.25}, {"label":"$", "x":8.5, "y":1.25}, {"label":"%", "x":9.5, "y":1.25}, {"label":"^", "x":10.5, "y":1.25}, {"label":"&", "x":11.5, "y":1.25}, {"label":"*", "x":12.5, "y":1.25}, {"label":"(", "x":13.5, "y":1.25}, {"label":")", "x":14.5, "y":1.25}, {"label":"_", "x":15.5, "y":1.25}, {"label":"+", "x":16.5, "y":1.25}, {"label":"Backspace", "x":17.5, "y":1.25, "w":2}, {"label":"Num Lock", "x":20, "y":1.25}, {"label":"/", "x":21, "y":1.25}, {"label":"*", "x":22, "y":1.25}, {"label":"-", "x":23, "y":1.25},
+ {"label":"+", "x":0, "y":2.25, "h":2}, {"label":"7", "x":1, "y":2.25}, {"label":"8", "x":2, "y":2.25}, {"label":"9", "x":3, "y":2.25}, {"label":"Tab", "x":4.5, "y":2.25, "w":1.5}, {"label":"Q", "x":6, "y":2.25}, {"label":"W", "x":7, "y":2.25}, {"label":"E", "x":8, "y":2.25}, {"label":"R", "x":9, "y":2.25}, {"label":"T", "x":10, "y":2.25}, {"label":"Y", "x":11, "y":2.25}, {"label":"U", "x":12, "y":2.25}, {"label":"I", "x":13, "y":2.25}, {"label":"O", "x":14, "y":2.25}, {"label":"P", "x":15, "y":2.25}, {"label":"{", "x":16, "y":2.25}, {"label":"}", "x":17, "y":2.25}, {"label":"|", "x":18, "y":2.25, "w":1.5}, {"label":"7", "x":20, "y":2.25}, {"label":"8", "x":21, "y":2.25}, {"label":"9", "x":22, "y":2.25}, {"label":"+", "x":23, "y":2.25, "h":2},
+ {"label":"4", "x":1, "y":3.25}, {"label":"5", "x":2, "y":3.25}, {"label":"6", "x":3, "y":3.25}, {"label":"Caps Lock", "x":4.5, "y":3.25, "w":1.75}, {"label":"A", "x":6.25, "y":3.25}, {"label":"S", "x":7.25, "y":3.25}, {"label":"D", "x":8.25, "y":3.25}, {"label":"F", "x":9.25, "y":3.25}, {"label":"G", "x":10.25, "y":3.25}, {"label":"H", "x":11.25, "y":3.25}, {"label":"J", "x":12.25, "y":3.25}, {"label":"K", "x":13.25, "y":3.25}, {"label":"L", "x":14.25, "y":3.25}, {"label":":", "x":15.25, "y":3.25}, {"label":"\"", "x":16.25, "y":3.25}, {"label":"Enter", "x":17.25, "y":3.25, "w":2.25}, {"label":"4", "x":20, "y":3.25}, {"label":"5", "x":21, "y":3.25}, {"label":"6", "x":22, "y":3.25},
+ {"label":"Enter", "x":0, "y":4.25, "h":2}, {"label":"1", "x":1, "y":4.25}, {"label":"2", "x":2, "y":4.25}, {"label":"3", "x":3, "y":4.25}, {"label":"\\u2191", "x":4.25, "y":4.5}, {"label":"Shift", "x":5.5, "y":4.25, "w":1.25}, {"label":"Z", "x":6.75, "y":4.25}, {"label":"X", "x":7.75, "y":4.25}, {"label":"C", "x":8.75, "y":4.25}, {"label":"V", "x":9.75, "y":4.25}, {"label":"B", "x":10.75, "y":4.25}, {"label":"N", "x":11.75, "y":4.25}, {"label":"M", "x":12.75, "y":4.25}, {"label":"<", "x":13.75, "y":4.25}, {"label":">", "x":14.75, "y":4.25}, {"label":"?", "x":15.75, "y":4.25}, {"label":"Shift", "x":16.75, "y":4.25, "w":1.75}, {"label":"\\u2191", "x":18.75, "y":4.5}, {"label":"1", "x":20, "y":4.25}, {"label":"2", "x":21, "y":4.25}, {"label":"3", "x":22, "y":4.25}, {"label":"Enter", "x":23, "y":4.25, "h":2},
+ {"label":"0", "x":1, "y":5.25}, {"label":".", "x":2, "y":5.25}, {"label":"\\u2190", "x":3.25, "y":5.5}, {"label":"\\u2193", "x":4.25, "y":5.5}, {"label":"\\u2192", "x":5.25, "y":5.5}, {"label":"Ctrl", "x":6.5, "y":5.25}, {"label":"Win", "x":7.5, "y":5.25}, {"label":"Alt", "x":8.5, "y":5.25}, {"label":"1u", "x":9.5, "y":5.25}, {"label":"1u", "x":10.5, "y":5.25}, {"label":"1u", "x":11.5, "y":5.25}, {"label":"1u", "x":12.5, "y":5.25}, {"label":"Alt", "x":13.5, "y":5.25}, {"label":"Win", "x":14.5, "y":5.25}, {"label":"Menu", "x":15.5, "y":5.25}, {"label":"Ctrl", "x":16.5, "y":5.25}, {"label":"\\u2190", "x":17.75, "y":5.5}, {"label":"\\u2193", "x":18.75, "y":5.5}, {"label":"\\u2192", "x":19.75, "y":5.5}, {"label":"0", "x":21, "y":5.25}, {"label":".", "x":22, "y":5.25}
+ ]
+ },
+ "LAYOUT_7u_space": {
+ "key_count": 121,
+ "layout": [
+ {"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4.75, "y":0}, {"label":"k06", "x":6.25, "y":0}, {"label":"k07", "x":7.25, "y":0}, {"label":"k08", "x":8.25, "y":0}, {"label":"k09", "x":9.25, "y":0}, {"label":"k0a", "x":10.75, "y":0}, {"label":"k60", "x":11.75, "y":0}, {"label":"k61", "x":12.75, "y":0}, {"label":"k62", "x":13.75, "y":0}, {"label":"k63", "x":15.25, "y":0}, {"label":"k64", "x":16.25, "y":0}, {"label":"k65", "x":17.25, "y":0}, {"label":"k66", "x":18.25, "y":0}, {"label":"k67", "x":20, "y":0}, {"label":"k68", "x":21, "y":0}, {"label":"k69", "x":22, "y":0}, {"label":"k6a", "x":23, "y":0},
+ {"label":"k10", "x":0, "y":1.25}, {"label":"k11", "x":1, "y":1.25}, {"label":"k12", "x":2, "y":1.25}, {"label":"k13", "x":3, "y":1.25}, {"label":"k14", "x":4.5, "y":1.25}, {"label":"k15", "x":5.5, "y":1.25}, {"label":"k16", "x":6.5, "y":1.25}, {"label":"k17", "x":7.5, "y":1.25}, {"label":"k18", "x":8.5, "y":1.25}, {"label":"k19", "x":9.5, "y":1.25}, {"label":"k0a", "x":10.5, "y":1.25}, {"label":"k70", "x":11.5, "y":1.25}, {"label":"k71", "x":12.5, "y":1.25}, {"label":"k72", "x":13.5, "y":1.25}, {"label":"k73", "x":14.5, "y":1.25}, {"label":"k74", "x":15.5, "y":1.25}, {"label":"k75", "x":16.5, "y":1.25}, {"label":"k76", "x":17.5, "y":1.25, "w":2}, {"label":"k77", "x":20, "y":1.25}, {"label":"k78", "x":21, "y":1.25}, {"label":"k79", "x":22, "y":1.25}, {"label":"k7a", "x":23, "y":1.25},
+ {"label":"k20", "x":0, "y":2.25, "h":2}, {"label":"k21", "x":1, "y":2.25}, {"label":"k22", "x":2, "y":2.25}, {"label":"k23", "x":3, "y":2.25}, {"label":"k24", "x":4.5, "y":2.25, "w":1.5}, {"label":"k25", "x":6, "y":2.25}, {"label":"k26", "x":7, "y":2.25}, {"label":"k27", "x":8, "y":2.25}, {"label":"k28", "x":9, "y":2.25}, {"label":"k29", "x":10, "y":2.25}, {"label":"k2a", "x":11, "y":2.25}, {"label":"k80", "x":12, "y":2.25}, {"label":"k81", "x":13, "y":2.25}, {"label":"k82", "x":14, "y":2.25}, {"label":"k83", "x":15, "y":2.25}, {"label":"k84", "x":16, "y":2.25}, {"label":"k85", "x":17, "y":2.25}, {"label":"k86", "x":18, "y":2.25, "w":1.5}, {"label":"k87", "x":20, "y":2.25}, {"label":"k88", "x":21, "y":2.25}, {"label":"k89", "x":22, "y":2.25}, {"label":"k8a", "x":23, "y":2.25, "h":2},
+ {"label":"k31", "x":1, "y":3.25}, {"label":"k32", "x":2, "y":3.25}, {"label":"k33", "x":3, "y":3.25}, {"label":"k34", "x":4.5, "y":3.25, "w":1.75}, {"label":"k35", "x":6.25, "y":3.25}, {"label":"k36", "x":7.25, "y":3.25}, {"label":"k37", "x":8.25, "y":3.25}, {"label":"k38", "x":9.25, "y":3.25}, {"label":"k39", "x":10.25, "y":3.25}, {"label":"k3a", "x":11.25, "y":3.25}, {"label":"k90", "x":12.25, "y":3.25}, {"label":"k91", "x":13.25, "y":3.25}, {"label":"k92", "x":14.25, "y":3.25}, {"label":"k93", "x":15.25, "y":3.25}, {"label":"k94", "x":16.25, "y":3.25}, {"label":"k95", "x":17.25, "y":3.25, "w":2.25}, {"label":"k97", "x":20, "y":3.25}, {"label":"k98", "x":21, "y":3.25}, {"label":"k99", "x":22, "y":3.25},
+ {"label":"k40", "x":0, "y":4.25, "h":2}, {"label":"k41", "x":1, "y":4.25}, {"label":"k42", "x":2, "y":4.25}, {"label":"k43", "x":3, "y":4.25}, {"label":"k45", "x":5.5, "y":4.25, "w":1.25}, {"label":"k46", "x":6.75, "y":4.25}, {"label":"k47", "x":7.75, "y":4.25}, {"label":"k48", "x":8.75, "y":4.25}, {"label":"k49", "x":9.75, "y":4.25}, {"label":"k4a", "x":10.75, "y":4.25}, {"label":"ka0", "x":11.75, "y":4.25}, {"label":"ka1", "x":12.75, "y":4.25}, {"label":"ka2", "x":13.75, "y":4.25}, {"label":"ka3", "x":14.75, "y":4.25}, {"label":"ka4", "x":15.75, "y":4.25}, {"label":"ka5", "x":16.75, "y":4.25, "w":1.75}, {"label":"ka7", "x":20, "y":4.25}, {"label":"ka8", "x":21, "y":4.25}, {"label":"ka9", "x":22, "y":4.25}, {"label":"kaa", "x":23, "y":4.25, "h":2}, {"label":"k44", "x":4.25, "y":4.5}, {"label":"k96", "x":18.75, "y":4.5},
+ {"label":"k51", "x":1, "y":5.25}, {"label":"k52", "x":2, "y":5.25}, {"label":"k56", "x":6.5, "y":5.25}, {"label":"k57", "x":7.5, "y":5.25}, {"label":"kb0", "x":8.5, "y":5.25, "w":7}, {"label":"kb4", "x":15.5, "y":5.25}, {"label":"kb5", "x":16.5, "y":5.25}, {"label":"kb8", "x":21, "y":5.25}, {"label":"kb9", "x":22, "y":5.25}, {"label":"k53", "x":3.25, "y":5.5}, {"label":"k54", "x":4.25, "y":5.5}, {"label":"k55", "x":5.25, "y":5.5}, {"label":"ka6", "x":17.75, "y":5.5}, {"label":"kb6", "x":18.75, "y":5.5}, {"label":"kb7", "x":19.75, "y":5.5}
+ ]
+ },
+ "LAYOUT_4u_space": {
+ "key_count": 124,
+ "layout": [
+ {"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4.75, "y":0}, {"label":"k06", "x":6.25, "y":0}, {"label":"k07", "x":7.25, "y":0}, {"label":"k08", "x":8.25, "y":0}, {"label":"k09", "x":9.25, "y":0}, {"label":"k0a", "x":10.75, "y":0}, {"label":"k60", "x":11.75, "y":0}, {"label":"k61", "x":12.75, "y":0}, {"label":"k62", "x":13.75, "y":0}, {"label":"k63", "x":15.25, "y":0}, {"label":"k64", "x":16.25, "y":0}, {"label":"k65", "x":17.25, "y":0}, {"label":"k66", "x":18.25, "y":0}, {"label":"k67", "x":20, "y":0}, {"label":"k68", "x":21, "y":0}, {"label":"k69", "x":22, "y":0}, {"label":"k6a", "x":23, "y":0},
+ {"label":"k10", "x":0, "y":1.25}, {"label":"k11", "x":1, "y":1.25}, {"label":"k12", "x":2, "y":1.25}, {"label":"k13", "x":3, "y":1.25}, {"label":"k14", "x":4.5, "y":1.25}, {"label":"k15", "x":5.5, "y":1.25}, {"label":"k16", "x":6.5, "y":1.25}, {"label":"k17", "x":7.5, "y":1.25}, {"label":"k18", "x":8.5, "y":1.25}, {"label":"k19", "x":9.5, "y":1.25}, {"label":"k0a", "x":10.5, "y":1.25}, {"label":"k70", "x":11.5, "y":1.25}, {"label":"k71", "x":12.5, "y":1.25}, {"label":"k72", "x":13.5, "y":1.25}, {"label":"k73", "x":14.5, "y":1.25}, {"label":"k74", "x":15.5, "y":1.25}, {"label":"k75", "x":16.5, "y":1.25}, {"label":"k76", "x":17.5, "y":1.25, "w":2}, {"label":"k77", "x":20, "y":1.25}, {"label":"k78", "x":21, "y":1.25}, {"label":"k79", "x":22, "y":1.25}, {"label":"k7a", "x":23, "y":1.25},
+ {"label":"k20", "x":0, "y":2.25, "h":2}, {"label":"k21", "x":1, "y":2.25}, {"label":"k22", "x":2, "y":2.25}, {"label":"k23", "x":3, "y":2.25}, {"label":"k24", "x":4.5, "y":2.25, "w":1.5}, {"label":"k25", "x":6, "y":2.25}, {"label":"k26", "x":7, "y":2.25}, {"label":"k27", "x":8, "y":2.25}, {"label":"k28", "x":9, "y":2.25}, {"label":"k29", "x":10, "y":2.25}, {"label":"k2a", "x":11, "y":2.25}, {"label":"k80", "x":12, "y":2.25}, {"label":"k81", "x":13, "y":2.25}, {"label":"k82", "x":14, "y":2.25}, {"label":"k83", "x":15, "y":2.25}, {"label":"k84", "x":16, "y":2.25}, {"label":"k85", "x":17, "y":2.25}, {"label":"k86", "x":18, "y":2.25, "w":1.5}, {"label":"k87", "x":20, "y":2.25}, {"label":"k88", "x":21, "y":2.25}, {"label":"k89", "x":22, "y":2.25}, {"label":"k8a", "x":23, "y":2.25, "h":2},
+ {"label":"k31", "x":1, "y":3.25}, {"label":"k32", "x":2, "y":3.25}, {"label":"k33", "x":3, "y":3.25}, {"label":"k34", "x":4.5, "y":3.25, "w":1.75}, {"label":"k35", "x":6.25, "y":3.25}, {"label":"k36", "x":7.25, "y":3.25}, {"label":"k37", "x":8.25, "y":3.25}, {"label":"k38", "x":9.25, "y":3.25}, {"label":"k39", "x":10.25, "y":3.25}, {"label":"k3a", "x":11.25, "y":3.25}, {"label":"k90", "x":12.25, "y":3.25}, {"label":"k91", "x":13.25, "y":3.25}, {"label":"k92", "x":14.25, "y":3.25}, {"label":"k93", "x":15.25, "y":3.25}, {"label":"k94", "x":16.25, "y":3.25}, {"label":"k95", "x":17.25, "y":3.25, "w":2.25}, {"label":"k97", "x":20, "y":3.25}, {"label":"k98", "x":21, "y":3.25}, {"label":"k99", "x":22, "y":3.25},
+ {"label":"k40", "x":0, "y":4.25, "h":2}, {"label":"k41", "x":1, "y":4.25}, {"label":"k42", "x":2, "y":4.25}, {"label":"k43", "x":3, "y":4.25}, {"label":"k45", "x":5.5, "y":4.25, "w":1.25}, {"label":"k46", "x":6.75, "y":4.25}, {"label":"k47", "x":7.75, "y":4.25}, {"label":"k48", "x":8.75, "y":4.25}, {"label":"k49", "x":9.75, "y":4.25}, {"label":"k4a", "x":10.75, "y":4.25}, {"label":"ka0", "x":11.75, "y":4.25}, {"label":"ka1", "x":12.75, "y":4.25}, {"label":"ka2", "x":13.75, "y":4.25}, {"label":"ka3", "x":14.75, "y":4.25}, {"label":"ka4", "x":15.75, "y":4.25}, {"label":"ka5", "x":16.75, "y":4.25, "w":1.75}, {"label":"ka7", "x":20, "y":4.25}, {"label":"ka8", "x":21, "y":4.25}, {"label":"ka9", "x":22, "y":4.25}, {"label":"kaa", "x":23, "y":4.25, "h":2}, {"label":"k44", "x":4.25, "y":4.5}, {"label":"k96", "x":18.75, "y":4.5},
+ {"label":"k51", "x":1, "y":5.25}, {"label":"k52", "x":2, "y":5.25}, {"label":"k56", "x":6.5, "y":5.25}, {"label":"k57", "x":7.5, "y":5.25}, {"label":"k58", "x":8.5, "y":5.25}, {"label":"kb0", "x":9.5, "y":5.25, "w":4}, {"label":"kb2", "x":13.5, "y":5.25}, {"label":"kb3", "x":14.5, "y":5.25}, {"label":"kb4", "x":15.5, "y":5.25}, {"label":"kb5", "x":16.5, "y":5.25}, {"label":"kb8", "x":21, "y":5.25}, {"label":"kb9", "x":22, "y":5.25}, {"label":"k53", "x":3.25, "y":5.5}, {"label":"k54", "x":4.25, "y":5.5}, {"label":"k55", "x":5.25, "y":5.5}, {"label":"ka6", "x":17.75, "y":5.5}, {"label":"kb6", "x":18.75, "y":5.5}, {"label":"kb7", "x":19.75, "y":5.5}
+ ]
+ }
+ }
+}
diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default/keymap.json b/keyboards/clueboard/2x1800/2019/keymaps/default/keymap.json
new file mode 100644
index 0000000000..f5d901ab61
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2019/keymaps/default/keymap.json
@@ -0,0 +1,11 @@
+{
+ "keyboard":"clueboard/2x1800/2019",
+ "keymap":"default",
+ "layout":"LAYOUT",
+ "layers":[
+ ["ENC_BTN1","ENC_BTN2","ENC_BTN3","ENC_BTN4","KC_HOME","KC_END","KC_PGUP","KC_PGDN","KC_ESC","KC_F1","KC_F2","KC_F3","KC_F4","KC_F5","KC_F6","KC_F7","KC_F8","KC_F9","KC_F10","KC_F11","KC_F12","KC_PSCR","KC_SLCK","KC_PAUS","KC_INS","KC_PMNS","KC_NLCK","KC_PSLS","KC_PAST","KC_GRV","KC_1","KC_2","KC_3","KC_4","KC_5","KC_6","KC_7","KC_8","KC_9","KC_0","KC_MINS","KC_EQL","KC_BSPC","KC_NLCK","KC_PSLS","KC_PAST","KC_PMNS","KC_PPLS","KC_P7","KC_P8","KC_P9","KC_TAB","KC_Q","KC_W","KC_E","KC_R","KC_T","KC_Y","KC_U","KC_I","KC_O","KC_P","KC_LBRC","KC_RBRC","KC_BSLS","KC_P7","KC_P8","KC_P9","KC_PSLS","KC_P4","KC_P5","KC_P6","KC_CAPS","KC_A","KC_S","KC_D","KC_F","KC_G","KC_H","KC_J","KC_K","KC_L","KC_SCLN","KC_QUOT","KC_NUHS","KC_ENT","KC_P4","KC_P5","KC_P6","KC_PENT","KC_P1","KC_P2","KC_P3","KC_UP","KC_LSFT","KC_Z","KC_X","KC_C","KC_V","KC_B","KC_N","KC_M","KC_SLSH","KC_COMM","KC_DOT","KC_RSFT","KC_UP","KC_P1","KC_P2","KC_P3","KC_PENT","KC_P0","KC_PDOT","KC_LEFT","KC_DOWN","KC_RGHT","KC_LCTL","KC_LGUI","KC_LALT","KC_SPC","KC_SPC","KC_SPC","KC_SPC","KC_RALT","KC_RGUI","KC_APP","KC_RCTL","KC_LEFT","KC_DOWN","KC_RGHT","KC_P0","KC_PDOT"]
+ ],
+ "author":"skullydazed",
+ "notes":"",
+ "version":1
+}
diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default/readme.md b/keyboards/clueboard/2x1800/2019/keymaps/default/readme.md
new file mode 100644
index 0000000000..4e3457efce
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2019/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for 2x1800
diff --git a/keyboards/clueboard/2x1800/keymaps/default/keymap.c b/keyboards/clueboard/2x1800/2019/keymaps/default_1u_ansi/keymap.c
index 2e4b75924d..3c504930da 100644
--- a/keyboards/clueboard/2x1800/keymaps/default/keymap.c
+++ b/keyboards/clueboard/2x1800/2019/keymaps/default_1u_ansi/keymap.c
@@ -16,13 +16,13 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = LAYOUT(
- KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_INS, \
- \
- KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \
- KC_PPLS, KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PSLS, \
- KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \
- KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_SLSH, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \
- KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT \
+[0] = LAYOUT_1u_ansi(
+ KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4,
+ KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_INS,
+ KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_PPLS, KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PSLS,
+ KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6,
+ KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
)
};
diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_1u_ansi/readme.md b/keyboards/clueboard/2x1800/2019/keymaps/default_1u_ansi/readme.md
new file mode 100644
index 0000000000..4e3457efce
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2019/keymaps/default_1u_ansi/readme.md
@@ -0,0 +1 @@
+# The default keymap for 2x1800
diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_1u_iso/keymap.c b/keyboards/clueboard/2x1800/2019/keymaps/default_1u_iso/keymap.c
new file mode 100644
index 0000000000..17cb57abe7
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2019/keymaps/default_1u_iso/keymap.c
@@ -0,0 +1,28 @@
+/* Copyright 2017 Zach White <skullydazed@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = LAYOUT_1u_iso(
+ KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4,
+ KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_INS,
+ KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_PPLS, KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, KC_PSLS,
+ KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6,
+ KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
+)
+};
diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_1u_iso/readme.md b/keyboards/clueboard/2x1800/2019/keymaps/default_1u_iso/readme.md
new file mode 100644
index 0000000000..4e3457efce
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2019/keymaps/default_1u_iso/readme.md
@@ -0,0 +1 @@
+# The default keymap for 2x1800
diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_2u_ansi/keymap.c b/keyboards/clueboard/2x1800/2019/keymaps/default_2u_ansi/keymap.c
new file mode 100644
index 0000000000..2bd91000b6
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2019/keymaps/default_2u_ansi/keymap.c
@@ -0,0 +1,28 @@
+/* Copyright 2017 Zach White <skullydazed@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = LAYOUT_2u_ansi(
+ KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4,
+ KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_INS,
+ KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_PPLS, KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PSLS,
+ KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6,
+ KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
+)
+};
diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_2u_ansi/readme.md b/keyboards/clueboard/2x1800/2019/keymaps/default_2u_ansi/readme.md
new file mode 100644
index 0000000000..c933ee3edb
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2019/keymaps/default_2u_ansi/readme.md
@@ -0,0 +1 @@
+# The default keymap for 2x1800 with 2u spacebar
diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_2u_iso/keymap.c b/keyboards/clueboard/2x1800/2019/keymaps/default_2u_iso/keymap.c
new file mode 100644
index 0000000000..5e1c96d144
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2019/keymaps/default_2u_iso/keymap.c
@@ -0,0 +1,28 @@
+/* Copyright 2017 Zach White <skullydazed@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = LAYOUT_2u_iso(
+ KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4,
+ KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_INS,
+ KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_PPLS, KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, KC_PSLS,
+ KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6,
+ KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
+)
+};
diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_2u_iso/readme.md b/keyboards/clueboard/2x1800/2019/keymaps/default_2u_iso/readme.md
new file mode 100644
index 0000000000..c933ee3edb
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2019/keymaps/default_2u_iso/readme.md
@@ -0,0 +1 @@
+# The default keymap for 2x1800 with 2u spacebar
diff --git a/keyboards/clueboard/2x1800/keymaps/default_4u/config.h b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_ansi/config.h
index 152e2f1487..dd48c69e36 100644
--- a/keyboards/clueboard/2x1800/keymaps/default_4u/config.h
+++ b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_ansi/config.h
@@ -16,6 +16,4 @@
#pragma once
-#include "config_common.h"
-
// place overrides here
diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_4u_ansi/keymap.c b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_ansi/keymap.c
new file mode 100644
index 0000000000..9e1c211a84
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_ansi/keymap.c
@@ -0,0 +1,28 @@
+/* Copyright 2017 Zach White <skullydazed@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = LAYOUT_4u_ansi(
+ KC_1, KC_2, KC_3, KC_4,
+ KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_INS,
+ KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_PPLS, KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PSLS,
+ KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6,
+ KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
+)
+};
diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_4u_ansi/readme.md b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_ansi/readme.md
new file mode 100644
index 0000000000..a696972e8c
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_ansi/readme.md
@@ -0,0 +1 @@
+# The default keymap for 2x1800 with 4u Spacebar
diff --git a/keyboards/clueboard/2x1800/keymaps/default_7u/config.h b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_iso/config.h
index 152e2f1487..dd48c69e36 100644
--- a/keyboards/clueboard/2x1800/keymaps/default_7u/config.h
+++ b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_iso/config.h
@@ -16,6 +16,4 @@
#pragma once
-#include "config_common.h"
-
// place overrides here
diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_4u_iso/keymap.c b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_iso/keymap.c
new file mode 100644
index 0000000000..261f578cdf
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_iso/keymap.c
@@ -0,0 +1,28 @@
+/* Copyright 2017 Zach White <skullydazed@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = LAYOUT_4u_iso(
+ KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4,
+ KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_INS,
+ KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_PPLS, KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, KC_PSLS,
+ KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6,
+ KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
+)
+};
diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_4u_iso/readme.md b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_iso/readme.md
new file mode 100644
index 0000000000..a696972e8c
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2019/keymaps/default_4u_iso/readme.md
@@ -0,0 +1 @@
+# The default keymap for 2x1800 with 4u Spacebar
diff --git a/keyboards/clueboard/2x1800/keymaps/macroboard/config.h b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_ansi/config.h
index 152e2f1487..dd48c69e36 100644
--- a/keyboards/clueboard/2x1800/keymaps/macroboard/config.h
+++ b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_ansi/config.h
@@ -16,6 +16,4 @@
#pragma once
-#include "config_common.h"
-
// place overrides here
diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_7u_ansi/keymap.c b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_ansi/keymap.c
new file mode 100644
index 0000000000..f8f9d820df
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_ansi/keymap.c
@@ -0,0 +1,28 @@
+/* Copyright 2017 Zach White <skullydazed@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = LAYOUT_7u_ansi(
+ KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4,
+ KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL,
+ KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_PPLS, KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PSLS,
+ KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6,
+ KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
+)
+};
diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_7u_ansi/readme.md b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_ansi/readme.md
new file mode 100644
index 0000000000..f5718e842d
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_ansi/readme.md
@@ -0,0 +1 @@
+# The default keymap for 2x1800 with 7u spacebar
diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_7u_iso/config.h b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_iso/config.h
new file mode 100644
index 0000000000..dd48c69e36
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_iso/config.h
@@ -0,0 +1,19 @@
+/* Copyright 2017 Zach White <skullydazed@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+// place overrides here
diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_7u_iso/keymap.c b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_iso/keymap.c
new file mode 100644
index 0000000000..88ea3fb850
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_iso/keymap.c
@@ -0,0 +1,28 @@
+/* Copyright 2017 Zach White <skullydazed@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = LAYOUT_7u_iso(
+ KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4,
+ KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL,
+ KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_PPLS, KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, KC_PSLS,
+ KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6,
+ KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
+)
+};
diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default_7u_iso/readme.md b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_iso/readme.md
new file mode 100644
index 0000000000..f5718e842d
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2019/keymaps/default_7u_iso/readme.md
@@ -0,0 +1 @@
+# The default keymap for 2x1800 with 7u spacebar
diff --git a/keyboards/clueboard/2x1800/2019/readme.md b/keyboards/clueboard/2x1800/2019/readme.md
new file mode 100644
index 0000000000..538c153249
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2019/readme.md
@@ -0,0 +1,13 @@
+# Clueboard 2x1800
+
+Clueboard 2x1800 Mechanical Drawing Toy Edition
+
+* Keyboard Maintainer: [Zach White](https://github.com/skullydazed)
+* Hardware Supported: Clueboard 2x1800 2019 PCB
+* Hardware Availability: 2019 Apr 1 Group Buy
+
+Make example for this keyboard:
+
+ make clueboard/2x1800/2019:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/clueboard/2x1800/2019/rules.mk b/keyboards/clueboard/2x1800/2019/rules.mk
new file mode 100644
index 0000000000..dcad3ec90e
--- /dev/null
+++ b/keyboards/clueboard/2x1800/2019/rules.mk
@@ -0,0 +1,25 @@
+# MCU name
+MCU = at90usb1286
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = halfkay
+
+# Build Options
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+ENCODER_ENABLE = yes # Rotary encoder (knob) support
+NKRO_ENABLE = yes # USB Nkey Rollover
+MIDI_ENABLE = no # MIDI support
+UNICODE_ENABLE = no # Unicode
+RGBLIGHT_ENABLE = yes # RGB on pin C5
+AUDIO_ENABLE = yes # Audio output on pin C4 and B7
diff --git a/keyboards/clueboard/2x1800/info.json b/keyboards/clueboard/2x1800/info.json
index 0e3bb36a9d..785743a307 100644
--- a/keyboards/clueboard/2x1800/info.json
+++ b/keyboards/clueboard/2x1800/info.json
@@ -1,42 +1,5 @@
{
"keyboard_name": "Clueboard 2x1800",
"url": "",
- "maintainer": "skullydazed",
- "width": 24,
- "height": 6.5,
- "layouts": {
- "LAYOUT": {
- "key_count": 127,
- "layout": [
- {"label":"Home", "x":0, "y":0}, {"label":"End", "x":1, "y":0}, {"label":"PgUp", "x":2, "y":0}, {"label":"PgDn", "x":3, "y":0}, {"label":"Esc", "x":4.75, "y":0}, {"label":"F1", "x":6.25, "y":0}, {"label":"F2", "x":7.25, "y":0}, {"label":"F3", "x":8.25, "y":0}, {"label":"F4", "x":9.25, "y":0}, {"label":"F5", "x":10.75, "y":0}, {"label":"F6", "x":11.75, "y":0}, {"label":"F7", "x":12.75, "y":0}, {"label":"F8", "x":13.75, "y":0}, {"label":"F9", "x":15.25, "y":0}, {"label":"F10", "x":16.25, "y":0}, {"label":"F11", "x":17.25, "y":0}, {"label":"F12", "x":18.25, "y":0}, {"label":"PrtSc", "x":20, "y":0}, {"label":"Scroll Lock", "x":21, "y":0}, {"label":"Pause", "x":22, "y":0}, {"label":"Insert", "x":23, "y":0},
- {"label":"-", "x":0, "y":1.25}, {"label":"Num Lock", "x":1, "y":1.25}, {"label":"/", "x":2, "y":1.25}, {"label":"*", "x":3, "y":1.25}, {"label":"~", "x":4.5, "y":1.25}, {"label":"!", "x":5.5, "y":1.25}, {"label":"@", "x":6.5, "y":1.25}, {"label":"#", "x":7.5, "y":1.25}, {"label":"$", "x":8.5, "y":1.25}, {"label":"%", "x":9.5, "y":1.25}, {"label":"^", "x":10.5, "y":1.25}, {"label":"&", "x":11.5, "y":1.25}, {"label":"*", "x":12.5, "y":1.25}, {"label":"(", "x":13.5, "y":1.25}, {"label":")", "x":14.5, "y":1.25}, {"label":"_", "x":15.5, "y":1.25}, {"label":"+", "x":16.5, "y":1.25}, {"label":"Backspace", "x":17.5, "y":1.25, "w":2}, {"label":"Num Lock", "x":20, "y":1.25}, {"label":"/", "x":21, "y":1.25}, {"label":"*", "x":22, "y":1.25}, {"label":"-", "x":23, "y":1.25},
- {"label":"+", "x":0, "y":2.25, "h":2}, {"label":"7", "x":1, "y":2.25}, {"label":"8", "x":2, "y":2.25}, {"label":"9", "x":3, "y":2.25}, {"label":"Tab", "x":4.5, "y":2.25, "w":1.5}, {"label":"Q", "x":6, "y":2.25}, {"label":"W", "x":7, "y":2.25}, {"label":"E", "x":8, "y":2.25}, {"label":"R", "x":9, "y":2.25}, {"label":"T", "x":10, "y":2.25}, {"label":"Y", "x":11, "y":2.25}, {"label":"U", "x":12, "y":2.25}, {"label":"I", "x":13, "y":2.25}, {"label":"O", "x":14, "y":2.25}, {"label":"P", "x":15, "y":2.25}, {"label":"{", "x":16, "y":2.25}, {"label":"}", "x":17, "y":2.25}, {"label":"|", "x":18, "y":2.25, "w":1.5}, {"label":"7", "x":20, "y":2.25}, {"label":"8", "x":21, "y":2.25}, {"label":"9", "x":22, "y":2.25}, {"label":"+", "x":23, "y":2.25, "h":2},
- {"label":"4", "x":1, "y":3.25}, {"label":"5", "x":2, "y":3.25}, {"label":"6", "x":3, "y":3.25}, {"label":"Caps Lock", "x":4.5, "y":3.25, "w":1.75}, {"label":"A", "x":6.25, "y":3.25}, {"label":"S", "x":7.25, "y":3.25}, {"label":"D", "x":8.25, "y":3.25}, {"label":"F", "x":9.25, "y":3.25}, {"label":"G", "x":10.25, "y":3.25}, {"label":"H", "x":11.25, "y":3.25}, {"label":"J", "x":12.25, "y":3.25}, {"label":"K", "x":13.25, "y":3.25}, {"label":"L", "x":14.25, "y":3.25}, {"label":":", "x":15.25, "y":3.25}, {"label":"\"", "x":16.25, "y":3.25}, {"label":"Enter", "x":17.25, "y":3.25, "w":2.25}, {"label":"4", "x":20, "y":3.25}, {"label":"5", "x":21, "y":3.25}, {"label":"6", "x":22, "y":3.25},
- {"label":"Enter", "x":0, "y":4.25, "h":2}, {"label":"1", "x":1, "y":4.25}, {"label":"2", "x":2, "y":4.25}, {"label":"3", "x":3, "y":4.25}, {"label":"\\u2191", "x":4.25, "y":4.5}, {"label":"Shift", "x":5.5, "y":4.25, "w":1.25}, {"label":"Z", "x":6.75, "y":4.25}, {"label":"X", "x":7.75, "y":4.25}, {"label":"C", "x":8.75, "y":4.25}, {"label":"V", "x":9.75, "y":4.25}, {"label":"B", "x":10.75, "y":4.25}, {"label":"N", "x":11.75, "y":4.25}, {"label":"M", "x":12.75, "y":4.25}, {"label":"<", "x":13.75, "y":4.25}, {"label":">", "x":14.75, "y":4.25}, {"label":"?", "x":15.75, "y":4.25}, {"label":"Shift", "x":16.75, "y":4.25, "w":1.75}, {"label":"\\u2191", "x":18.75, "y":4.5}, {"label":"1", "x":20, "y":4.25}, {"label":"2", "x":21, "y":4.25}, {"label":"3", "x":22, "y":4.25}, {"label":"Enter", "x":23, "y":4.25, "h":2},
- {"label":"0", "x":1, "y":5.25}, {"label":".", "x":2, "y":5.25}, {"label":"\\u2190", "x":3.25, "y":5.5}, {"label":"\\u2193", "x":4.25, "y":5.5}, {"label":"\\u2192", "x":5.25, "y":5.5}, {"label":"Ctrl", "x":6.5, "y":5.25}, {"label":"Win", "x":7.5, "y":5.25}, {"label":"Alt", "x":8.5, "y":5.25}, {"label":"1u", "x":9.5, "y":5.25}, {"label":"1u", "x":10.5, "y":5.25}, {"label":"1u", "x":11.5, "y":5.25}, {"label":"1u", "x":12.5, "y":5.25}, {"label":"Alt", "x":13.5, "y":5.25}, {"label":"Win", "x":14.5, "y":5.25}, {"label":"Menu", "x":15.5, "y":5.25}, {"label":"Ctrl", "x":16.5, "y":5.25}, {"label":"\\u2190", "x":17.75, "y":5.5}, {"label":"\\u2193", "x":18.75, "y":5.5}, {"label":"\\u2192", "x":19.75, "y":5.5}, {"label":"0", "x":21, "y":5.25}, {"label":".", "x":22, "y":5.25}
- ]
- },
- "LAYOUT_7u_space": {
- "key_count": 121,
- "layout": [
- {"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4.75, "y":0}, {"label":"k06", "x":6.25, "y":0}, {"label":"k07", "x":7.25, "y":0}, {"label":"k08", "x":8.25, "y":0}, {"label":"k09", "x":9.25, "y":0}, {"label":"k0a", "x":10.75, "y":0}, {"label":"k60", "x":11.75, "y":0}, {"label":"k61", "x":12.75, "y":0}, {"label":"k62", "x":13.75, "y":0}, {"label":"k63", "x":15.25, "y":0}, {"label":"k64", "x":16.25, "y":0}, {"label":"k65", "x":17.25, "y":0}, {"label":"k66", "x":18.25, "y":0}, {"label":"k67", "x":20, "y":0}, {"label":"k68", "x":21, "y":0}, {"label":"k69", "x":22, "y":0}, {"label":"k6a", "x":23, "y":0},
- {"label":"k10", "x":0, "y":1.25}, {"label":"k11", "x":1, "y":1.25}, {"label":"k12", "x":2, "y":1.25}, {"label":"k13", "x":3, "y":1.25}, {"label":"k14", "x":4.5, "y":1.25}, {"label":"k15", "x":5.5, "y":1.25}, {"label":"k16", "x":6.5, "y":1.25}, {"label":"k17", "x":7.5, "y":1.25}, {"label":"k18", "x":8.5, "y":1.25}, {"label":"k19", "x":9.5, "y":1.25}, {"label":"k0a", "x":10.5, "y":1.25}, {"label":"k70", "x":11.5, "y":1.25}, {"label":"k71", "x":12.5, "y":1.25}, {"label":"k72", "x":13.5, "y":1.25}, {"label":"k73", "x":14.5, "y":1.25}, {"label":"k74", "x":15.5, "y":1.25}, {"label":"k75", "x":16.5, "y":1.25}, {"label":"k76", "x":17.5, "y":1.25, "w":2}, {"label":"k77", "x":20, "y":1.25}, {"label":"k78", "x":21, "y":1.25}, {"label":"k79", "x":22, "y":1.25}, {"label":"k7a", "x":23, "y":1.25},
- {"label":"k20", "x":0, "y":2.25, "h":2}, {"label":"k21", "x":1, "y":2.25}, {"label":"k22", "x":2, "y":2.25}, {"label":"k23", "x":3, "y":2.25}, {"label":"k24", "x":4.5, "y":2.25, "w":1.5}, {"label":"k25", "x":6, "y":2.25}, {"label":"k26", "x":7, "y":2.25}, {"label":"k27", "x":8, "y":2.25}, {"label":"k28", "x":9, "y":2.25}, {"label":"k29", "x":10, "y":2.25}, {"label":"k2a", "x":11, "y":2.25}, {"label":"k80", "x":12, "y":2.25}, {"label":"k81", "x":13, "y":2.25}, {"label":"k82", "x":14, "y":2.25}, {"label":"k83", "x":15, "y":2.25}, {"label":"k84", "x":16, "y":2.25}, {"label":"k85", "x":17, "y":2.25}, {"label":"k86", "x":18, "y":2.25, "w":1.5}, {"label":"k87", "x":20, "y":2.25}, {"label":"k88", "x":21, "y":2.25}, {"label":"k89", "x":22, "y":2.25}, {"label":"k8a", "x":23, "y":2.25, "h":2},
- {"label":"k31", "x":1, "y":3.25}, {"label":"k32", "x":2, "y":3.25}, {"label":"k33", "x":3, "y":3.25}, {"label":"k34", "x":4.5, "y":3.25, "w":1.75}, {"label":"k35", "x":6.25, "y":3.25}, {"label":"k36", "x":7.25, "y":3.25}, {"label":"k37", "x":8.25, "y":3.25}, {"label":"k38", "x":9.25, "y":3.25}, {"label":"k39", "x":10.25, "y":3.25}, {"label":"k3a", "x":11.25, "y":3.25}, {"label":"k90", "x":12.25, "y":3.25}, {"label":"k91", "x":13.25, "y":3.25}, {"label":"k92", "x":14.25, "y":3.25}, {"label":"k93", "x":15.25, "y":3.25}, {"label":"k94", "x":16.25, "y":3.25}, {"label":"k95", "x":17.25, "y":3.25, "w":2.25}, {"label":"k97", "x":20, "y":3.25}, {"label":"k98", "x":21, "y":3.25}, {"label":"k99", "x":22, "y":3.25},
- {"label":"k40", "x":0, "y":4.25, "h":2}, {"label":"k41", "x":1, "y":4.25}, {"label":"k42", "x":2, "y":4.25}, {"label":"k43", "x":3, "y":4.25}, {"label":"k45", "x":5.5, "y":4.25, "w":1.25}, {"label":"k46", "x":6.75, "y":4.25}, {"label":"k47", "x":7.75, "y":4.25}, {"label":"k48", "x":8.75, "y":4.25}, {"label":"k49", "x":9.75, "y":4.25}, {"label":"k4a", "x":10.75, "y":4.25}, {"label":"ka0", "x":11.75, "y":4.25}, {"label":"ka1", "x":12.75, "y":4.25}, {"label":"ka2", "x":13.75, "y":4.25}, {"label":"ka3", "x":14.75, "y":4.25}, {"label":"ka4", "x":15.75, "y":4.25}, {"label":"ka5", "x":16.75, "y":4.25, "w":1.75}, {"label":"ka7", "x":20, "y":4.25}, {"label":"ka8", "x":21, "y":4.25}, {"label":"ka9", "x":22, "y":4.25}, {"label":"kaa", "x":23, "y":4.25, "h":2}, {"label":"k44", "x":4.25, "y":4.5}, {"label":"k96", "x":18.75, "y":4.5},
- {"label":"k51", "x":1, "y":5.25}, {"label":"k52", "x":2, "y":5.25}, {"label":"k56", "x":6.5, "y":5.25}, {"label":"k57", "x":7.5, "y":5.25}, {"label":"kb0", "x":8.5, "y":5.25, "w":7}, {"label":"kb4", "x":15.5, "y":5.25}, {"label":"kb5", "x":16.5, "y":5.25}, {"label":"kb8", "x":21, "y":5.25}, {"label":"kb9", "x":22, "y":5.25}, {"label":"k53", "x":3.25, "y":5.5}, {"label":"k54", "x":4.25, "y":5.5}, {"label":"k55", "x":5.25, "y":5.5}, {"label":"ka6", "x":17.75, "y":5.5}, {"label":"kb6", "x":18.75, "y":5.5}, {"label":"kb7", "x":19.75, "y":5.5}
- ]
- },
- "LAYOUT_4u_space": {
- "key_count": 124,
- "layout": [
- {"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4.75, "y":0}, {"label":"k06", "x":6.25, "y":0}, {"label":"k07", "x":7.25, "y":0}, {"label":"k08", "x":8.25, "y":0}, {"label":"k09", "x":9.25, "y":0}, {"label":"k0a", "x":10.75, "y":0}, {"label":"k60", "x":11.75, "y":0}, {"label":"k61", "x":12.75, "y":0}, {"label":"k62", "x":13.75, "y":0}, {"label":"k63", "x":15.25, "y":0}, {"label":"k64", "x":16.25, "y":0}, {"label":"k65", "x":17.25, "y":0}, {"label":"k66", "x":18.25, "y":0}, {"label":"k67", "x":20, "y":0}, {"label":"k68", "x":21, "y":0}, {"label":"k69", "x":22, "y":0}, {"label":"k6a", "x":23, "y":0},
- {"label":"k10", "x":0, "y":1.25}, {"label":"k11", "x":1, "y":1.25}, {"label":"k12", "x":2, "y":1.25}, {"label":"k13", "x":3, "y":1.25}, {"label":"k14", "x":4.5, "y":1.25}, {"label":"k15", "x":5.5, "y":1.25}, {"label":"k16", "x":6.5, "y":1.25}, {"label":"k17", "x":7.5, "y":1.25}, {"label":"k18", "x":8.5, "y":1.25}, {"label":"k19", "x":9.5, "y":1.25}, {"label":"k0a", "x":10.5, "y":1.25}, {"label":"k70", "x":11.5, "y":1.25}, {"label":"k71", "x":12.5, "y":1.25}, {"label":"k72", "x":13.5, "y":1.25}, {"label":"k73", "x":14.5, "y":1.25}, {"label":"k74", "x":15.5, "y":1.25}, {"label":"k75", "x":16.5, "y":1.25}, {"label":"k76", "x":17.5, "y":1.25, "w":2}, {"label":"k77", "x":20, "y":1.25}, {"label":"k78", "x":21, "y":1.25}, {"label":"k79", "x":22, "y":1.25}, {"label":"k7a", "x":23, "y":1.25},
- {"label":"k20", "x":0, "y":2.25, "h":2}, {"label":"k21", "x":1, "y":2.25}, {"label":"k22", "x":2, "y":2.25}, {"label":"k23", "x":3, "y":2.25}, {"label":"k24", "x":4.5, "y":2.25, "w":1.5}, {"label":"k25", "x":6, "y":2.25}, {"label":"k26", "x":7, "y":2.25}, {"label":"k27", "x":8, "y":2.25}, {"label":"k28", "x":9, "y":2.25}, {"label":"k29", "x":10, "y":2.25}, {"label":"k2a", "x":11, "y":2.25}, {"label":"k80", "x":12, "y":2.25}, {"label":"k81", "x":13, "y":2.25}, {"label":"k82", "x":14, "y":2.25}, {"label":"k83", "x":15, "y":2.25}, {"label":"k84", "x":16, "y":2.25}, {"label":"k85", "x":17, "y":2.25}, {"label":"k86", "x":18, "y":2.25, "w":1.5}, {"label":"k87", "x":20, "y":2.25}, {"label":"k88", "x":21, "y":2.25}, {"label":"k89", "x":22, "y":2.25}, {"label":"k8a", "x":23, "y":2.25, "h":2},
- {"label":"k31", "x":1, "y":3.25}, {"label":"k32", "x":2, "y":3.25}, {"label":"k33", "x":3, "y":3.25}, {"label":"k34", "x":4.5, "y":3.25, "w":1.75}, {"label":"k35", "x":6.25, "y":3.25}, {"label":"k36", "x":7.25, "y":3.25}, {"label":"k37", "x":8.25, "y":3.25}, {"label":"k38", "x":9.25, "y":3.25}, {"label":"k39", "x":10.25, "y":3.25}, {"label":"k3a", "x":11.25, "y":3.25}, {"label":"k90", "x":12.25, "y":3.25}, {"label":"k91", "x":13.25, "y":3.25}, {"label":"k92", "x":14.25, "y":3.25}, {"label":"k93", "x":15.25, "y":3.25}, {"label":"k94", "x":16.25, "y":3.25}, {"label":"k95", "x":17.25, "y":3.25, "w":2.25}, {"label":"k97", "x":20, "y":3.25}, {"label":"k98", "x":21, "y":3.25}, {"label":"k99", "x":22, "y":3.25},
- {"label":"k40", "x":0, "y":4.25, "h":2}, {"label":"k41", "x":1, "y":4.25}, {"label":"k42", "x":2, "y":4.25}, {"label":"k43", "x":3, "y":4.25}, {"label":"k45", "x":5.5, "y":4.25, "w":1.25}, {"label":"k46", "x":6.75, "y":4.25}, {"label":"k47", "x":7.75, "y":4.25}, {"label":"k48", "x":8.75, "y":4.25}, {"label":"k49", "x":9.75, "y":4.25}, {"label":"k4a", "x":10.75, "y":4.25}, {"label":"ka0", "x":11.75, "y":4.25}, {"label":"ka1", "x":12.75, "y":4.25}, {"label":"ka2", "x":13.75, "y":4.25}, {"label":"ka3", "x":14.75, "y":4.25}, {"label":"ka4", "x":15.75, "y":4.25}, {"label":"ka5", "x":16.75, "y":4.25, "w":1.75}, {"label":"ka7", "x":20, "y":4.25}, {"label":"ka8", "x":21, "y":4.25}, {"label":"ka9", "x":22, "y":4.25}, {"label":"kaa", "x":23, "y":4.25, "h":2}, {"label":"k44", "x":4.25, "y":4.5}, {"label":"k96", "x":18.75, "y":4.5},
- {"label":"k51", "x":1, "y":5.25}, {"label":"k52", "x":2, "y":5.25}, {"label":"k56", "x":6.5, "y":5.25}, {"label":"k57", "x":7.5, "y":5.25}, {"label":"k58", "x":8.5, "y":5.25}, {"label":"kb0", "x":9.5, "y":5.25, "w":4}, {"label":"kb2", "x":13.5, "y":5.25}, {"label":"kb3", "x":14.5, "y":5.25}, {"label":"kb4", "x":15.5, "y":5.25}, {"label":"kb5", "x":16.5, "y":5.25}, {"label":"kb8", "x":21, "y":5.25}, {"label":"kb9", "x":22, "y":5.25}, {"label":"k53", "x":3.25, "y":5.5}, {"label":"k54", "x":4.25, "y":5.5}, {"label":"k55", "x":5.25, "y":5.5}, {"label":"ka6", "x":17.75, "y":5.5}, {"label":"kb6", "x":18.75, "y":5.5}, {"label":"kb7", "x":19.75, "y":5.5}
- ]
- }
- }
+ "maintainer": "skullydazed"
}
diff --git a/keyboards/clueboard/2x1800/keymaps/mouseboard_right/config.h b/keyboards/clueboard/2x1800/keymaps/mouseboard_right/config.h
deleted file mode 100644
index 152e2f1487..0000000000
--- a/keyboards/clueboard/2x1800/keymaps/mouseboard_right/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2017 Zach White <skullydazed@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "config_common.h"
-
-// place overrides here
diff --git a/keyboards/clueboard/2x1800/readme.md b/keyboards/clueboard/2x1800/readme.md
index 7e2c206ede..01b975695d 100644
--- a/keyboards/clueboard/2x1800/readme.md
+++ b/keyboards/clueboard/2x1800/readme.md
@@ -1,6 +1,11 @@
# Clueboard 2x1800
-Clueboard Double 1800 All The Way
+Clueboard 2x1800
+
+This is a keyboard that Clueboard releases for a 1-day group buy every Apr 1. Each year has a different theme.
+
+* [2018:](2018/) Double 1800 All The Way
+* [2019:](2019/) Mechanical Drawing Toy Edition
* Keyboard Maintainer: [Zach White](https://github.com/skullydazed)
* Hardware Supported: Clueboard 2x1800 PCB
diff --git a/keyboards/comet46/ssd1306.h b/keyboards/comet46/ssd1306.h
index ea8c923280..0ca093093a 100644
--- a/keyboards/comet46/ssd1306.h
+++ b/keyboards/comet46/ssd1306.h
@@ -2,7 +2,6 @@
#include <stdbool.h>
#include <stdio.h>
-#include "pincontrol.h"
#include "action.h"
enum ssd1306_cmds {
@@ -88,4 +87,4 @@ void matrix_write_ln(struct CharacterMatrix *matrix, const char *data);
void matrix_write_P(struct CharacterMatrix *matrix, const char *data);
void matrix_render(struct CharacterMatrix *matrix);
-bool process_record_gfx(uint16_t keycode, keyrecord_t *record); \ No newline at end of file
+bool process_record_gfx(uint16_t keycode, keyrecord_t *record);
diff --git a/keyboards/contra/config.h b/keyboards/contra/config.h
index b32d868654..f4b84af5ae 100755
--- a/keyboards/contra/config.h
+++ b/keyboards/contra/config.h
@@ -4,8 +4,8 @@
#include "config_common.h"
/* USB Device descriptor parameter */
-#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0x6060
+#define VENDOR_ID 0x4354 /* "CT" */
+#define PRODUCT_ID 0x0001
#define DEVICE_VER 0x0001
#define MANUFACTURER Cartel
#define PRODUCT Contra
diff --git a/keyboards/contra/keymaps/via/keymap.c b/keyboards/contra/keymaps/via/keymap.c
new file mode 100644
index 0000000000..4bf7a9c171
--- /dev/null
+++ b/keyboards/contra/keymaps/via/keymap.c
@@ -0,0 +1,98 @@
+/* This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include QMK_KEYBOARD_H
+
+
+enum planck_layers {
+ _BASE,
+ _LOWER,
+ _RAISE,
+ _ADJUST
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ /* Base
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Tab | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Adjst| Ctrl | Gui | Alt |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+ [_BASE] = LAYOUT_planck_mit(
+ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
+ MO(_ADJUST), KC_LCTL, KC_LGUI, KC_LALT, MO(_LOWER), KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+ ),
+
+ /* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | | | Home | End | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+ [_LOWER] = LAYOUT_planck_mit(
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_HOME, KC_END, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+ ),
+
+ /* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | | |Pg Up |Pg Dn | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+ [_RAISE] = LAYOUT_planck_mit(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_PGUP, KC_PGDN, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+ ),
+
+ /* Adjust
+ * ,----------------------------------------------------------- ------------------------.
+ * | | Reset| Debug| | | | | | | | | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+ [_ADJUST] = LAYOUT_planck_mit(
+ _______, RESET, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL ,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+}; \ No newline at end of file
diff --git a/keyboards/contra/keymaps/via/readme.md b/keyboards/contra/keymaps/via/readme.md
new file mode 100644
index 0000000000..3c863243d4
--- /dev/null
+++ b/keyboards/contra/keymaps/via/readme.md
@@ -0,0 +1,2 @@
+# A basic Contra Layout with VIA enabled
+
diff --git a/keyboards/contra/keymaps/via/rules.mk b/keyboards/contra/keymaps/via/rules.mk
new file mode 100644
index 0000000000..036bd6d1c3
--- /dev/null
+++ b/keyboards/contra/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/converter/palm_usb/matrix.c b/keyboards/converter/palm_usb/matrix.c
index 49212f2ef1..590b5eea32 100644
--- a/keyboards/converter/palm_usb/matrix.c
+++ b/keyboards/converter/palm_usb/matrix.c
@@ -20,7 +20,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include QMK_KEYBOARD_H
#include "protocol/serial.h"
#include "timer.h"
-#include "pincontrol.h"
/*
@@ -96,27 +95,27 @@ void pins_init(void) {
// set pins for pullups, Rts , power &etc.
//print ("pins setup\n");
- pinMode(VCC_PIN, PinDirectionOutput);
- digitalWrite(VCC_PIN, PinLevelLow);
+ setPinOutput(VCC_PIN);
+ writePinLow(VCC_PIN);
#if ( HANDSPRING == 0)
#ifdef CY835
- pinMode(GND_PIN, PinDirectionOutput);
- digitalWrite(GND_PIN, PinLevelLow);
+ setPinOutput(GND_PIN);
+ writePinLow(GND_PIN);
- pinMode(PULLDOWN_PIN, PinDirectionOutput);
- digitalWrite(PULLDOWN_PIN, PinLevelLow);
+ setPinOutput(PULLDOWN_PIN);
+ writePinLow(PULLDOWN_PIN);
#endif
- pinMode(DCD_PIN, PinDirectionInput);
- pinMode(RTS_PIN, PinDirectionInput);
+ setPinInput(DCD_PIN);
+ setPinInput(RTS_PIN);
#endif
/* check that the other side isn't powered up.
- test=digitalRead(DCD_PIN);
+ test=readPin(DCD_PIN);
xprintf("b%02X:", test);
- test=digitalRead(RTS_PIN);
+ test=readPin(RTS_PIN);
xprintf("%02X\n", test);
*/
@@ -129,20 +128,20 @@ uint8_t rts_reset(void) {
// On boot, we keep rts as input, then switch roles here
// on leaving sleep, we toggle the same way
- firstread=digitalRead(RTS_PIN);
+ firstread=readPin(RTS_PIN);
// printf("r%02X:", firstread);
- pinMode(RTS_PIN, PinDirectionOutput);
+ setPinOutput(RTS_PIN);
- if (firstread == PinLevelHigh) {
- digitalWrite(RTS_PIN, PinLevelLow);
+ if (firstread) {
+ writePinLow(RTS_PIN);
}
_delay_ms(10);
- digitalWrite(RTS_PIN, PinLevelHigh);
+ writePinHigh(RTS_PIN);
/* the future is Arm
- if (palReadPad(RTS_PIN_IOPRT) == PinLevelLow)
+ if (!palReadPad(RTS_PIN_IOPRT))
{
_delay_ms(10);
palSetPadMode(RTS_PINn_IOPORT, PinDirectionOutput_PUSHPULL);
@@ -224,9 +223,9 @@ uint8_t handspring_handshake(void) {
}
uint8_t handspring_reset(void) {
- digitalWrite(VCC_PIN, PinLevelLow);
+ writePinLow(VCC_PIN);
_delay_ms(5);
- digitalWrite(VCC_PIN, PinLevelHigh);
+ writePinHigh(VCC_PIN);
if ( handspring_handshake() ) {
last_activity = timer_read();
@@ -250,7 +249,7 @@ void matrix_init(void)
#endif
print("power up\n");
- digitalWrite(VCC_PIN, PinLevelHigh);
+ writePinHigh(VCC_PIN);
// wait for DCD strobe from keyboard - it will do this
// up to 3 times, then the board needs the RTS toggled to try again
@@ -265,7 +264,7 @@ void matrix_init(void)
}
#else /// Palm / HP device with DCD
- while( digitalRead(DCD_PIN) != PinLevelHigh ) {;}
+ while( !readPin(DCD_PIN) ) {;}
print("dcd\n");
rts_reset(); // at this point the keyboard should think all is well.
diff --git a/keyboards/coseyfannitutti/discipad/rules.mk b/keyboards/coseyfannitutti/discipad/rules.mk
index 53e16a4e91..cc81604a41 100644
--- a/keyboards/coseyfannitutti/discipad/rules.mk
+++ b/keyboards/coseyfannitutti/discipad/rules.mk
@@ -11,9 +11,6 @@ MCU = atmega328p
# ATmega328P USBasp
BOOTLOADER = USBasp
-# disable debug code
-OPT_DEFS = -DDEBUG_LEVEL=0
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/coseyfannitutti/discipline/rules.mk b/keyboards/coseyfannitutti/discipline/rules.mk
index 33a0b07ddf..5cf0b03965 100644
--- a/keyboards/coseyfannitutti/discipline/rules.mk
+++ b/keyboards/coseyfannitutti/discipline/rules.mk
@@ -14,9 +14,6 @@ F_CPU = 16000000
# ATmega328P USBasp
BOOTLOADER = USBasp
-# disable debug code
-OPT_DEFS = -DDEBUG_LEVEL=0
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/coseyfannitutti/mysterium/rules.mk b/keyboards/coseyfannitutti/mysterium/rules.mk
index 453aef8ab6..9628ac7135 100644
--- a/keyboards/coseyfannitutti/mysterium/rules.mk
+++ b/keyboards/coseyfannitutti/mysterium/rules.mk
@@ -14,9 +14,6 @@ F_CPU = 16000000
# ATmega328P USBasp
BOOTLOADER = USBasp
-# disable debug code
-OPT_DEFS = -DDEBUG_LEVEL=0
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/coseyfannitutti/romeo/romeo.h b/keyboards/coseyfannitutti/romeo/romeo.h
index d834dbe6fb..971a391b43 100644
--- a/keyboards/coseyfannitutti/romeo/romeo.h
+++ b/keyboards/coseyfannitutti/romeo/romeo.h
@@ -67,7 +67,7 @@
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1B, \
K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
- K30, K31, K32, K36, K39, K3A, K3B \
+ K30, K31, K32, K34, K36, K37, K39, K3A, K3B \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, _x_, K1B, }, \
diff --git a/keyboards/coseyfannitutti/romeo/rules.mk b/keyboards/coseyfannitutti/romeo/rules.mk
index cfd0ff6460..154f663699 100644
--- a/keyboards/coseyfannitutti/romeo/rules.mk
+++ b/keyboards/coseyfannitutti/romeo/rules.mk
@@ -11,10 +11,6 @@ MCU = atmega328p
# ATmega328P USBasp
BOOTLOADER = USBasp
-# disable debug code
-OPT_DEFS = -DDEBUG_LEVEL=0
-
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/crkbd/ssd1306.c b/keyboards/crkbd/ssd1306.c
index 20c2738db7..622e44e35f 100644
--- a/keyboards/crkbd/ssd1306.c
+++ b/keyboards/crkbd/ssd1306.c
@@ -15,6 +15,14 @@
extern const unsigned char font[] PROGMEM;
+#ifndef OLED_BLANK_CHAR
+#define OLED_BLANK_CHAR ' '
+#endif
+
+#ifndef OLED_BITS_FILTER
+#define OLED_BITS_FILTER
+#endif
+
// Set this to 1 to help diagnose early startup problems
// when testing power-on with ble. Turn it off otherwise,
// as the latency of printing most of the debug info messes
@@ -26,8 +34,11 @@ extern const unsigned char font[] PROGMEM;
//#define BatteryUpdateInterval 10000 /* milliseconds */
// 'last_flush' is declared as uint16_t,
-// so this must be less than 65535
+// so this must be less than 65535
+#ifndef ScreenOffInterval
#define ScreenOffInterval 60000 /* milliseconds */
+#endif
+
#if DEBUG_TO_SCREEN
static uint8_t displaying;
#endif
@@ -61,38 +72,32 @@ done:
return res;
}
-// Write 2-byte command sequence.
-// Returns true on success
-static inline bool _send_cmd2(uint8_t cmd, uint8_t opr) {
- if (!_send_cmd1(cmd)) {
- return false;
- }
- return _send_cmd1(opr);
-}
-
-// Write 3-byte command sequence.
-// Returns true on success
-static inline bool _send_cmd3(uint8_t cmd, uint8_t opr1, uint8_t opr2) {
- if (!_send_cmd1(cmd)) {
- return false;
- }
- if (!_send_cmd1(opr1)) {
- return false;
+#define send_cmd1(c) if (!_send_cmd1(c)) {goto done;}
+#define send_cmds(c) if (!_send_cmds(c,sizeof(c))) {goto done;}
+#define cmd1(X) X
+#define cmd2(X,Y) X,Y
+#define cmd3(X,Y,Z) X,Y,Z
+
+static bool _send_cmds(const uint8_t* p,uint8_t sz) {
+ for(uint8_t i=sz;i;i--) {
+ send_cmd1( pgm_read_byte(p++) );
}
- return _send_cmd1(opr2);
+ return true;
+done:
+ return false;
}
-#define send_cmd1(c) if (!_send_cmd1(c)) {goto done;}
-#define send_cmd2(c,o) if (!_send_cmd2(c,o)) {goto done;}
-#define send_cmd3(c,o1,o2) if (!_send_cmd3(c,o1,o2)) {goto done;}
+#define SEND_CMDS(...) {static const uint8_t _cmds[] PROGMEM = { __VA_ARGS__,0 };send_cmds(_cmds);}
static void clear_display(void) {
matrix_clear(&display);
// Clear all of the display bits (there can be random noise
// in the RAM on startup)
- send_cmd3(PageAddr, 0, (DisplayHeight / 8) - 1);
- send_cmd3(ColumnAddr, 0, DisplayWidth - 1);
+ SEND_CMDS(
+ cmd3(PageAddr, 0, (DisplayHeight / 8) - 1),
+ cmd3(ColumnAddr, 0, DisplayWidth - 1)
+ );
if (i2c_start_write(SSD1306_ADDRESS)) {
goto done;
@@ -101,8 +106,8 @@ static void clear_display(void) {
// Data mode
goto done;
}
- for (uint8_t row = 0; row < MatrixRows; ++row) {
- for (uint8_t col = 0; col < DisplayWidth; ++col) {
+ for (uint8_t row = MatrixRows;row; row--) {
+ for (uint8_t col = DisplayWidth; col; col--) {
i2c_master_write(0);
}
}
@@ -130,38 +135,47 @@ bool iota_gfx_init(bool rotate) {
bool success = false;
i2c_master_init();
- send_cmd1(DisplayOff);
- send_cmd2(SetDisplayClockDiv, 0x80);
- send_cmd2(SetMultiPlex, DisplayHeight - 1);
-
- send_cmd2(SetDisplayOffset, 0);
-
-
- send_cmd1(SetStartLine | 0x0);
- send_cmd2(SetChargePump, 0x14 /* Enable */);
- send_cmd2(SetMemoryMode, 0 /* horizontal addressing */);
+ SEND_CMDS(
+ cmd1(DisplayOff),
+ cmd2(SetDisplayClockDiv, 0x80),
+ cmd2(SetMultiPlex, DisplayHeight - 1),
+ cmd2(SetDisplayOffset, 0),
+ cmd1(SetStartLine | 0x0),
+ cmd2(SetChargePump, 0x14 /* Enable */),
+ cmd2(SetMemoryMode, 0 /* horizontal addressing */)
+ );
if(rotate){
// the following Flip the display orientation 180 degrees
- send_cmd1(SegRemap);
- send_cmd1(ComScanInc);
+ SEND_CMDS(
+ cmd1(SegRemap),
+ cmd1(ComScanInc)
+ );
}else{
// Flips the display orientation 0 degrees
- send_cmd1(SegRemap | 0x1);
- send_cmd1(ComScanDec);
+ SEND_CMDS(
+ cmd1(SegRemap | 0x1),
+ cmd1(ComScanDec)
+ );
}
- send_cmd2(SetComPins, 0x2);
- send_cmd2(SetContrast, 0x8f);
- send_cmd2(SetPreCharge, 0xf1);
- send_cmd2(SetVComDetect, 0x40);
- send_cmd1(DisplayAllOnResume);
- send_cmd1(NormalDisplay);
- send_cmd1(DeActivateScroll);
- send_cmd1(DisplayOn);
-
- send_cmd2(SetContrast, 0); // Dim
-
+ SEND_CMDS(
+#ifdef SSD1306_128X64
+ cmd2(SetComPins, 0x12),
+#else
+ cmd2(SetComPins, 0x2),
+#endif
+ cmd2(SetContrast, 0x8f),
+ cmd2(SetPreCharge, 0xf1),
+ cmd2(SetVComDetect, 0x40),
+ cmd1(DisplayAllOnResume),
+ cmd1(NormalDisplay),
+ cmd1(DeActivateScroll),
+ cmd1(DisplayOn),
+
+ cmd2(SetContrast, 0) // Dim
+ );
+
clear_display();
success = true;
@@ -205,7 +219,7 @@ void matrix_write_char_inner(struct CharacterMatrix *matrix, uint8_t c) {
memmove(&matrix->display[0], &matrix->display[1],
MatrixCols * (MatrixRows - 1));
matrix->cursor = &matrix->display[MatrixRows - 1][0];
- memset(matrix->cursor, ' ', MatrixCols);
+ memset(matrix->cursor, OLED_BLANK_CHAR, MatrixCols);
}
}
@@ -218,7 +232,7 @@ void matrix_write_char(struct CharacterMatrix *matrix, uint8_t c) {
uint8_t cursor_col = (matrix->cursor - &matrix->display[0][0]) % MatrixCols;
while (cursor_col++ < MatrixCols) {
- matrix_write_char_inner(matrix, ' ');
+ matrix_write_char_inner(matrix, OLED_BLANK_CHAR);
}
return;
}
@@ -231,17 +245,15 @@ void iota_gfx_write_char(uint8_t c) {
}
void matrix_write(struct CharacterMatrix *matrix, const char *data) {
- const char *end = data + strlen(data);
- while (data < end) {
+ while (*data) {
matrix_write_char(matrix, *data);
++data;
}
}
void matrix_write_ln(struct CharacterMatrix *matrix, const char *data) {
- char data_ln[strlen(data)+2];
- snprintf(data_ln, sizeof(data_ln), "%s\n", data);
- matrix_write(matrix, data_ln);
+ matrix_write(matrix, data);
+ matrix_write(matrix, "\n");
}
void iota_gfx_write(const char *data) {
@@ -264,7 +276,7 @@ void iota_gfx_write_P(const char *data) {
}
void matrix_clear(struct CharacterMatrix *matrix) {
- memset(matrix->display, ' ', sizeof(matrix->display));
+ memset(matrix->display, OLED_BLANK_CHAR, sizeof(matrix->display));
matrix->cursor = &matrix->display[0][0];
matrix->dirty = true;
}
@@ -281,8 +293,10 @@ void matrix_render(struct CharacterMatrix *matrix) {
#endif
// Move to the home position
- send_cmd3(PageAddr, 0, MatrixRows - 1);
- send_cmd3(ColumnAddr, 0, (MatrixCols * FontWidth) - 1);
+ SEND_CMDS(
+ cmd3(PageAddr, 0, MatrixRows - 1),
+ cmd3(ColumnAddr, 0, (MatrixCols * FontWidth) - 1)
+ );
if (i2c_start_write(SSD1306_ADDRESS)) {
goto done;
@@ -298,7 +312,7 @@ void matrix_render(struct CharacterMatrix *matrix) {
for (uint8_t glyphCol = 0; glyphCol < FontWidth; ++glyphCol) {
uint8_t colBits = pgm_read_byte(glyph + glyphCol);
- i2c_master_write(colBits);
+ i2c_master_write(colBits OLED_BITS_FILTER);
}
// 1 column of space between chars (it's not included in the glyph)
@@ -331,7 +345,7 @@ void iota_gfx_task(void) {
force_dirty = false;
}
- if (timer_elapsed(last_flush) > ScreenOffInterval) {
+ if (ScreenOffInterval !=0 && timer_elapsed(last_flush) > ScreenOffInterval) {
iota_gfx_off();
}
}
diff --git a/keyboards/crkbd/ssd1306.h b/keyboards/crkbd/ssd1306.h
index ea8c923280..0ca093093a 100644
--- a/keyboards/crkbd/ssd1306.h
+++ b/keyboards/crkbd/ssd1306.h
@@ -2,7 +2,6 @@
#include <stdbool.h>
#include <stdio.h>
-#include "pincontrol.h"
#include "action.h"
enum ssd1306_cmds {
@@ -88,4 +87,4 @@ void matrix_write_ln(struct CharacterMatrix *matrix, const char *data);
void matrix_write_P(struct CharacterMatrix *matrix, const char *data);
void matrix_render(struct CharacterMatrix *matrix);
-bool process_record_gfx(uint16_t keycode, keyrecord_t *record); \ No newline at end of file
+bool process_record_gfx(uint16_t keycode, keyrecord_t *record);
diff --git a/keyboards/db/db63/rules.mk b/keyboards/db/db63/rules.mk
index 84eace5ed6..3d51be1133 100644
--- a/keyboards/db/db63/rules.mk
+++ b/keyboards/db/db63/rules.mk
@@ -20,5 +20,3 @@ COMMAND_ENABLE = yes
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
-
-OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/donutcables/budget96/rules.mk b/keyboards/donutcables/budget96/rules.mk
index 84eace5ed6..3d51be1133 100644
--- a/keyboards/donutcables/budget96/rules.mk
+++ b/keyboards/donutcables/budget96/rules.mk
@@ -20,5 +20,3 @@ COMMAND_ENABLE = yes
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
-
-OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/doro67/multi/keymaps/konstantin/config.h b/keyboards/doro67/multi/keymaps/konstantin/config.h
index 3c2583e2d4..1d12c7db37 100644
--- a/keyboards/doro67/multi/keymaps/konstantin/config.h
+++ b/keyboards/doro67/multi/keymaps/konstantin/config.h
@@ -1,4 +1,6 @@
#pragma once
+#define DYNAMIC_KEYMAP_LAYER_COUNT 3
+
#define LAYER_FN
#define LAYER_NUMPAD
diff --git a/keyboards/doro67/multi/keymaps/konstantin/rules.mk b/keyboards/doro67/multi/keymaps/konstantin/rules.mk
index c3a73fd845..50c3f77ddb 100644
--- a/keyboards/doro67/multi/keymaps/konstantin/rules.mk
+++ b/keyboards/doro67/multi/keymaps/konstantin/rules.mk
@@ -1,11 +1,18 @@
-BACKLIGHT_ENABLE = no
-BOOTMAGIC_ENABLE = no
+# Generic features
+BOOTMAGIC_ENABLE = lite
COMMAND_ENABLE = yes
CONSOLE_ENABLE = yes
EXTRAKEY_ENABLE = yes
-GRAVE_ESC_ENABLE = no
MOUSEKEY_ENABLE = yes
NKRO_ENABLE = yes
-SPACE_CADET_ENABLE = no
TAP_DANCE_ENABLE = yes
UNICODEMAP_ENABLE = yes
+
+# Keyboard-specific features
+BACKLIGHT_ENABLE = no
+VIA_ENABLE = yes
+
+# Firmware size reduction
+GRAVE_ESC_ENABLE = no
+MAGIC_ENABLE = no
+SPACE_CADET_ENABLE = no
diff --git a/keyboards/duck/orion/v3/config.h b/keyboards/duck/orion/v3/config.h
index b04729712e..ce64431afc 100644
--- a/keyboards/duck/orion/v3/config.h
+++ b/keyboards/duck/orion/v3/config.h
@@ -43,7 +43,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define BACKLIGHT_PINS { B1, B2, B3, E6 }
#define BACKLIGHT_LED_COUNT 4
#define BACKLIGHT_LEVELS 10
-#define BACKLIGHT_ON_STATE 1
#define RGBLIGHT_ANIMATIONS
#define RGB_DI_PIN D6
diff --git a/keyboards/dz60/config.h b/keyboards/dz60/config.h
index d77de120cb..bb7b6ae7da 100644
--- a/keyboards/dz60/config.h
+++ b/keyboards/dz60/config.h
@@ -1,5 +1,4 @@
-#ifndef CONFIG_H
-#define CONFIG_H
+#pragma once
#include "config_common.h"
@@ -15,37 +14,43 @@
#define MATRIX_ROWS 5
#define MATRIX_COLS 15
-/* key matrix pins */
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B7, D4, B1, B0, B5, B4, D7, D6, B3, F4 }
#define UNUSED_PINS
-/* COL2ROW or ROW2COL */
+/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
-/* number of backlight levels */
#define BACKLIGHT_PIN B6
-#ifdef BACKLIGHT_PIN
#define BACKLIGHT_LEVELS 5
+
+#define RGB_DI_PIN E2
+#ifdef RGB_DI_PIN
+# define RGBLIGHT_ANIMATIONS
+# define RGBLED_NUM 16
+# define RGBLIGHT_HUE_STEP 8
+# define RGBLIGHT_SAT_STEP 8
+# define RGBLIGHT_VAL_STEP 8
+# define RGBLIGHT_SLEEP
#endif
-/* Set 0 if debouncing isn't needed */
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
-
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define RGB_DI_PIN E2
-#ifdef RGB_DI_PIN
-#define RGBLIGHT_ANIMATIONS
-#define RGBLED_NUM 16
-#define RGBLIGHT_HUE_STEP 8
-#define RGBLIGHT_SAT_STEP 8
-#define RGBLIGHT_VAL_STEP 8
-#define RGBLIGHT_SLEEP
-#endif
-#endif
/* VIA related config */
#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2
diff --git a/keyboards/dz60/dz60.c b/keyboards/dz60/dz60.c
index 8295fb432c..936d027a31 100644
--- a/keyboards/dz60/dz60.c
+++ b/keyboards/dz60/dz60.c
@@ -1,31 +1,20 @@
#include "dz60.h"
-#include "led.h"
void matrix_init_kb(void) {
- // Keyboard start-up code goes here
- // Runs once when the firmware starts up
- matrix_init_user();
- led_init_ports();
-};
-
-void matrix_scan_kb(void) {
- // Looping keyboard code goes here
- // This runs every cycle (a lot)
- matrix_scan_user();
+ matrix_init_user();
+ led_init_ports();
};
void led_init_ports(void) {
- // Set caps lock LED pin as output
- DDRB |= (1 << 2);
- // Default to off
- PORTB |= (1 << 2);
+ setPinOutput(B2);
+ writePinHigh(B2);
}
void led_set_kb(uint8_t usb_led) {
if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
- PORTB &= ~(1 << 2);
+ writePinLow(B2);
} else {
- PORTB |= (1 << 2);
+ writePinHigh(B2);
}
led_set_user(usb_led);
diff --git a/keyboards/dz60/dz60.h b/keyboards/dz60/dz60.h
index c5c1c84958..a718c454a0 100644
--- a/keyboards/dz60/dz60.h
+++ b/keyboards/dz60/dz60.h
@@ -1,11 +1,9 @@
-#ifndef DZ60_H
-#define DZ60_H
+#pragma once
#include "quantum.h"
// Corresponding changes to the layout names and/or definitions must also be made to info.json
-
// 标准配列
/* Standard arrangement / LAYOUT
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
@@ -655,4 +653,3 @@
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \
{ k40, k41, KC_NO, k43, KC_NO, KC_NO, k46, KC_NO, KC_NO, KC_NO, k4a, k4b, k4c, k4d, k4e } \
}
-#endif
diff --git a/keyboards/dz60/info.json b/keyboards/dz60/info.json
index 2d02203528..6415954c29 100644
--- a/keyboards/dz60/info.json
+++ b/keyboards/dz60/info.json
@@ -1,101 +1,78 @@
{
- "keyboard_name": "DZ60",
- "url": "",
- "maintainer": "qmk",
- "width": 15,
- "height": 5,
- "layouts": {
- "LAYOUT": {
- "key_count": 67,
- "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}]
- },
- "LAYOUT_true_hhkb": {
- "key_count": 61,
- "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Ctrl", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Alt", "x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":6}, {"x":10, "y":4, "w":1.5}, {"label":"Alt", "x":11.5, "y":4}]
- },
- "LAYOUT_directional": {
- "key_count": 67,
- "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}]
- },
- "LAYOUT_all": {
- "key_count": 68,
- "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}]
- },
- "LAYOUT_60_ansi": {
- "key_count": 61,
- "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
- },
- "LAYOUT_60_ansi_split": {
- "key_count": 63,
- "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"label":"FN", "x":6.00, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
- },
- "LAYOUT_60_ansi_split_space_rshift": {
- "key_count": 64,
- "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"FN", "x":14, "y": 3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"label":"FN", "x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
- },
- "LAYOUT_60_iso": {
- "key_count": 62,
- "layout": [{"label":"¬", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"£", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
- },
- "LAYOUT_60_hhkb": {
- "key_count": 60,
- "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"1", "x":1, "y":0}, {"label":"2", "x":2, "y":0}, {"label":"3", "x":3, "y":0}, {"label":"4", "x":4, "y":0}, {"label":"5", "x":5, "y":0}, {"label":"6", "x":6, "y":0}, {"label":"7", "x":7, "y":0}, {"label":"8", "x":8, "y":0}, {"label":"9", "x":9, "y":0}, {"label":"0", "x":10, "y":0}, {"label":"-", "x":11, "y":0}, {"label":"=", "x":12, "y":0}, {"label":"\\", "x":13, "y":0}, {"label":"`", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"[", "x":11.5, "y":1}, {"label":"]", "x":12.5, "y":1}, {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":";", "x":10.75, "y":2}, {"label":"'", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":",", "x":9.25, "y":3}, {"label":".", "x":10.25, "y":3}, {"label":"/", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Os", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Os", "x":12.5, "y":4}]
- },
- "LAYOUT_60_iso_5x1u": {
- "key_count": 63,
- "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"|", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"~", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"/", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Fn", "x":10, "y":4}, {"label":"←", "x":11, "y":4}, {"label":"↓", "x":12, "y":4}, {"label":"↑", "x":13, "y":4}, {"label":"→", "x":14, "y":4}]
- },
- "LAYOUT_60_iso_5x1u_split_rshift": {
- "key_count": 64,
- "layout": [{"label":"\u00ac", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"\u00a3", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4}, {"label":"\u2190", "x":11, "y":4}, {"label":"\u2193", "x":12, "y":4}, {"label":"\u2191", "x":13, "y":4}, {"label":"\u2192", "x":14, "y":4}]
- },
- "LAYOUT_60_iso_split": {
- "key_count": 64,
- "layout": [{"label":"¬", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"£", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"label":"FN", "x":6.00, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
- },
- "LAYOUT_60_b_ansi": {
- "key_count": 66,
- "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"1", "x":1, "y":0}, {"label":"2", "x":2, "y":0}, {"label":"3", "x":3, "y":0}, {"label":"4", "x":4, "y":0}, {"label":"5", "x":5, "y":0}, {"label":"6", "x":6, "y":0}, {"label":"7", "x":7, "y":0}, {"label":"8", "x":8, "y":0}, {"label":"9", "x":9, "y":0}, {"label":"0", "x":10, "y":0}, {"label":"-", "x":11, "y":0}, {"label":"=", "x":12, "y":0}, {"x":13, "y":0}, {"label":"Back Space", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"[", "x":11.5, "y":1}, {"label":"]", "x":12.5, "y":1}, {"label":"\\", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":";", "x":10.75, "y":2}, {"label":"'", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":",", "x":9.25, "y":3}, {"label":".", "x":10.25, "y":3}, {"label":"Shift", "x":11.25, "y":3, "w":1.75}, {"label":"Up", "x":13, "y":3}, {"label":"Del", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"GUI", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"Space", "x":3.75, "y":4, "w":2.25}, {"label":"Space", "x":6, "y":4, "w":1.25}, {"label":"Space", "x":7.25, "y":4, "w":2.75}, {"label":"Alt", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Left", "x":12, "y":4}, {"label":"Down", "x":13, "y":4}, {"label":"Right", "x":14, "y":4}]
- },
- "LAYOUT_60_b_iso": {
- "key_count": 67,
- "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"1", "x":1, "y":0}, {"label":"2", "x":2, "y":0}, {"label":"3", "x":3, "y":0}, {"label":"4", "x":4, "y":0}, {"label":"5", "x":5, "y":0}, {"label":"6", "x":6, "y":0}, {"label":"7", "x":7, "y":0}, {"label":"8", "x":8, "y":0}, {"label":"9", "x":9, "y":0}, {"label":"0", "x":10, "y":0}, {"label":"-", "x":11, "y":0}, {"label":"=", "x":12, "y":0}, {"x":13, "y":0}, {"label":"Back Space", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"[", "x":11.5, "y":1}, {"label":"]", "x":12.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":";", "x":10.75, "y":2}, {"label":"'", "x":11.75, "y":2}, {"label":"#", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"\\", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":",", "x":9.25, "y":3}, {"label":".", "x":10.25, "y":3}, {"label":"Shift", "x":11.25, "y":3, "w":1.75}, {"label":"Up", "x":13, "y":3}, {"label":"Del", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"GUI", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"Space", "x":3.75, "y":4, "w":2.25}, {"label":"Space", "x":6, "y":4, "w":1.25}, {"label":"Space", "x":7.25, "y":4, "w":2.75}, {"label":"AltGr", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Left", "x":12, "y":4}, {"label":"Down", "x":13, "y":4}, {"label":"Right", "x":14, "y":4}]
- },
- "LAYOUT_60_tsangan": {
- "keycount": 61,
- "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}]
- },
- "LAYOUT_60_tsangan_hhkb": {
- "key_count": 62,
- "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Win", "x":11, "y":4, "w":1.5}, {"label":"Menu", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}]
- },
- "LAYOUT_60_calbatr0ss": {
- "key_count": 65,
- "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Ctrl", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Caps Lock", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"Shift", "x":3.75, "y":4, "w":2.25}, {"label":"Fn", "x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
- },
- "LAYOUT_60_iso_split_space_bs_rshift": {
- "key_count": 66,
- "layout": [{"label":"¬", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"£", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Del", "x":13, "y":0, "w":1}, {"label":"Backspace", "x":14, "y":0, "w":1}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Print screen", "x":14, "y":3, "w":1}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"label":"FN", "x":6.00, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
- },
- "LAYOUT_60_2_function": {
- "key_count": 63,
- "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"GUI", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.5}, {"label":"Control", "x":11.5, "y":4, "w":1.5}, {"label":"GUI", "x":13, "y":4}, {"label":"Fn2", "x":14, "y":4}]
- },
- "LAYOUT_60_iso_5x1u_split_bs_rshift_spc": {
- "key_count": 67,
- "layout": [{"label":"Esc/¬", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"£", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Del", "x":13, "y":0, "w":1}, {"label":"Backspace", "x":14, "y":0, "w":1}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"VolUp", "x":14, "y":3, "w":1}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6.00, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"Left", "x":10, "y":4, "w":1}, {"label":"Down", "x":11, "y":4, "w":1}, {"label":"Up", "x":12, "y":4, "w":1}, {"label":"Right", "x":13, "y":4, "w":1}, {"label":"VolDown", "x":14, "y":4, "w":1}]
- },
- "LAYOUT_olivierko": {
- "key_count": 63,
- "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Fn", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"↑", "x":12, "y":3}, {"label":"Shift", "x":13, "y":3, "w":2}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"←", "x":11, "y":4}, {"label":"↓", "x":12, "y":4}, {"label":"→", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}]
- },
- "LAYOUT_60_abnt2": {
- "key_count": 63,
- "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"\u00a8", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"`", "x":11.5, "y":1}, {"label":"{", "x":12.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":"\u00c7", "x":10.75, "y":2}, {"label":"^", "x":11.75, "y":2}, {"label":"}", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":":", "x":11.25, "y":3}, {"label":"?", "x":12.25, "y":3}, {"label":"Shift", "x":13.25, "y":3, "w":1.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
- },
- "LAYOUT_60_iso_4th_row_all_1u": {
- "key_count": 65,
- "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"|", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Fn", "x":10, "y":4}, {"label":"←", "x":11, "y":4}, {"label":"↓", "x":12, "y":4}, {"label":"↑", "x":13, "y":4}, {"label":"→", "x":14, "y":4}]
+ "keyboard_name": "DZ60",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 15,
+ "height": 5,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}]
+ },
+ "LAYOUT_true_hhkb": {
+ "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Ctrl", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Alt", "x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":6}, {"x":10, "y":4, "w":1.5}, {"label":"Alt", "x":11.5, "y":4}]
+ },
+ "LAYOUT_directional": {
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}]
+ },
+ "LAYOUT_all": {
+ "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}]
+ },
+ "LAYOUT_60_ansi": {
+ "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
+ },
+ "LAYOUT_60_ansi_split": {
+ "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"label":"FN", "x":6.00, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
+ },
+ "LAYOUT_60_ansi_split_space_rshift": {
+ "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"FN", "x":14, "y": 3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"label":"FN", "x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
+ },
+ "LAYOUT_60_iso": {
+ "layout": [{"label":"¬", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"£", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
+ },
+ "LAYOUT_60_hhkb": {
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"1", "x":1, "y":0}, {"label":"2", "x":2, "y":0}, {"label":"3", "x":3, "y":0}, {"label":"4", "x":4, "y":0}, {"label":"5", "x":5, "y":0}, {"label":"6", "x":6, "y":0}, {"label":"7", "x":7, "y":0}, {"label":"8", "x":8, "y":0}, {"label":"9", "x":9, "y":0}, {"label":"0", "x":10, "y":0}, {"label":"-", "x":11, "y":0}, {"label":"=", "x":12, "y":0}, {"label":"\\", "x":13, "y":0}, {"label":"`", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"[", "x":11.5, "y":1}, {"label":"]", "x":12.5, "y":1}, {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":";", "x":10.75, "y":2}, {"label":"'", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":",", "x":9.25, "y":3}, {"label":".", "x":10.25, "y":3}, {"label":"/", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Os", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Os", "x":12.5, "y":4}]
+ },
+ "LAYOUT_60_iso_5x1u": {
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"|", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"~", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"/", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Fn", "x":10, "y":4}, {"label":"←", "x":11, "y":4}, {"label":"↓", "x":12, "y":4}, {"label":"↑", "x":13, "y":4}, {"label":"→", "x":14, "y":4}]
+ },
+ "LAYOUT_60_iso_5x1u_split_rshift": {
+ "layout": [{"label":"\u00ac", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"\u00a3", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4}, {"label":"\u2190", "x":11, "y":4}, {"label":"\u2193", "x":12, "y":4}, {"label":"\u2191", "x":13, "y":4}, {"label":"\u2192", "x":14, "y":4}]
+ },
+ "LAYOUT_60_iso_split": {
+ "layout": [{"label":"¬", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"£", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"label":"FN", "x":6.00, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
+ },
+ "LAYOUT_60_b_ansi": {
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"1", "x":1, "y":0}, {"label":"2", "x":2, "y":0}, {"label":"3", "x":3, "y":0}, {"label":"4", "x":4, "y":0}, {"label":"5", "x":5, "y":0}, {"label":"6", "x":6, "y":0}, {"label":"7", "x":7, "y":0}, {"label":"8", "x":8, "y":0}, {"label":"9", "x":9, "y":0}, {"label":"0", "x":10, "y":0}, {"label":"-", "x":11, "y":0}, {"label":"=", "x":12, "y":0}, {"x":13, "y":0}, {"label":"Back Space", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"[", "x":11.5, "y":1}, {"label":"]", "x":12.5, "y":1}, {"label":"\\", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":";", "x":10.75, "y":2}, {"label":"'", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":",", "x":9.25, "y":3}, {"label":".", "x":10.25, "y":3}, {"label":"Shift", "x":11.25, "y":3, "w":1.75}, {"label":"Up", "x":13, "y":3}, {"label":"Del", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"GUI", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"Space", "x":3.75, "y":4, "w":2.25}, {"label":"Space", "x":6, "y":4, "w":1.25}, {"label":"Space", "x":7.25, "y":4, "w":2.75}, {"label":"Alt", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Left", "x":12, "y":4}, {"label":"Down", "x":13, "y":4}, {"label":"Right", "x":14, "y":4}]
+ },
+ "LAYOUT_60_b_iso": {
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"1", "x":1, "y":0}, {"label":"2", "x":2, "y":0}, {"label":"3", "x":3, "y":0}, {"label":"4", "x":4, "y":0}, {"label":"5", "x":5, "y":0}, {"label":"6", "x":6, "y":0}, {"label":"7", "x":7, "y":0}, {"label":"8", "x":8, "y":0}, {"label":"9", "x":9, "y":0}, {"label":"0", "x":10, "y":0}, {"label":"-", "x":11, "y":0}, {"label":"=", "x":12, "y":0}, {"x":13, "y":0}, {"label":"Back Space", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"[", "x":11.5, "y":1}, {"label":"]", "x":12.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":";", "x":10.75, "y":2}, {"label":"'", "x":11.75, "y":2}, {"label":"#", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"\\", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":",", "x":9.25, "y":3}, {"label":".", "x":10.25, "y":3}, {"label":"Shift", "x":11.25, "y":3, "w":1.75}, {"label":"Up", "x":13, "y":3}, {"label":"Del", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"GUI", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"Space", "x":3.75, "y":4, "w":2.25}, {"label":"Space", "x":6, "y":4, "w":1.25}, {"label":"Space", "x":7.25, "y":4, "w":2.75}, {"label":"AltGr", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Left", "x":12, "y":4}, {"label":"Down", "x":13, "y":4}, {"label":"Right", "x":14, "y":4}]
+ },
+ "LAYOUT_60_tsangan": {
+ "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}]
+ },
+ "LAYOUT_60_tsangan_hhkb": {
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Win", "x":11, "y":4, "w":1.5}, {"label":"Menu", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}]
+ },
+ "LAYOUT_60_calbatr0ss": {
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Ctrl", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Caps Lock", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"Shift", "x":3.75, "y":4, "w":2.25}, {"label":"Fn", "x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
+ },
+ "LAYOUT_60_iso_split_space_bs_rshift": {
+ "layout": [{"label":"¬", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"£", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Del", "x":13, "y":0, "w":1}, {"label":"Backspace", "x":14, "y":0, "w":1}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Print screen", "x":14, "y":3, "w":1}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"label":"FN", "x":6.00, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
+ },
+ "LAYOUT_60_2_function": {
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"GUI", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.5}, {"label":"Control", "x":11.5, "y":4, "w":1.5}, {"label":"GUI", "x":13, "y":4}, {"label":"Fn2", "x":14, "y":4}]
+ },
+ "LAYOUT_60_iso_5x1u_split_bs_rshift_spc": {
+ "layout": [{"label":"Esc/¬", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"£", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Del", "x":13, "y":0, "w":1}, {"label":"Backspace", "x":14, "y":0, "w":1}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"VolUp", "x":14, "y":3, "w":1}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6.00, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"Left", "x":10, "y":4, "w":1}, {"label":"Down", "x":11, "y":4, "w":1}, {"label":"Up", "x":12, "y":4, "w":1}, {"label":"Right", "x":13, "y":4, "w":1}, {"label":"VolDown", "x":14, "y":4, "w":1}]
+ },
+ "LAYOUT_olivierko": {
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Fn", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"↑", "x":12, "y":3}, {"label":"Shift", "x":13, "y":3, "w":2}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"←", "x":11, "y":4}, {"label":"↓", "x":12, "y":4}, {"label":"→", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}]
+ },
+ "LAYOUT_60_abnt2": {
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"\u00a8", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"`", "x":11.5, "y":1}, {"label":"{", "x":12.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":"\u00c7", "x":10.75, "y":2}, {"label":"^", "x":11.75, "y":2}, {"label":"}", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":":", "x":11.25, "y":3}, {"label":"?", "x":12.25, "y":3}, {"label":"Shift", "x":13.25, "y":3, "w":1.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
+ },
+ "LAYOUT_60_iso_4th_row_all_1u": {
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"|", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Fn", "x":10, "y":4}, {"label":"←", "x":11, "y":4}, {"label":"↓", "x":12, "y":4}, {"label":"↑", "x":13, "y":4}, {"label":"→", "x":14, "y":4}]
+ }
}
- }
}
diff --git a/keyboards/dz60/keymaps/default/keymap.c b/keyboards/dz60/keymaps/default/keymap.c
index 1d375a3c63..5b7a24922d 100644
--- a/keyboards/dz60/keymaps/default/keymap.c
+++ b/keyboards/dz60/keymaps/default/keymap.c
@@ -1,25 +1,19 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ LAYOUT(
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, XXXXXXX, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, XXXXXXX,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, XXXXXXX, XXXXXXX, MO(1), KC_RCTL
+ ),
- LAYOUT(
- KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_NO, KC_BSPC,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(2), KC_NO, MO(1), KC_RCTL),
-
- LAYOUT(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL,
- KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
- LAYOUT(
- KC_TRNS, M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), M(12), KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+ LAYOUT(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL,
+ _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, RESET,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
};
diff --git a/keyboards/dz60/readme.md b/keyboards/dz60/readme.md
index a06db93b5f..eb6d28d5d6 100644
--- a/keyboards/dz60/readme.md
+++ b/keyboards/dz60/readme.md
@@ -4,12 +4,12 @@
A customizable 60% keyboard.
-Keyboard Maintainer: QMK Community
-Hardware Supported: DZ60
-Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/collections/pcb/products/dz60-60-pcb?variant=40971616717)
+* Keyboard Maintainer: QMK Community
+* Hardware Supported: DZ60
+* Hardware Availability: [KBDfans](https://kbdfans.myshopify.com/collections/pcb/products/dz60-60-pcb?variant=40971616717)
Make example for this keyboard (after setting up your build environment):
make dz60:default
-See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/dz60/rules.mk b/keyboards/dz60/rules.mk
index 73b1d2ecb9..55e5bada39 100644
--- a/keyboards/dz60/rules.mk
+++ b/keyboards/dz60/rules.mk
@@ -12,17 +12,22 @@ MCU = atmega32u4
BOOTLOADER = atmel-dfu
# Build Options
-# comment out to disable the options.
+# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = yes # Enable per-key backlight LEDs
-AUDIO_ENABLE = no # There is no speaker on this PCB
-RGBLIGHT_ENABLE = yes # Enable the RGB underglow LEDs
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = yes # USB Nkey Rollover
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_hhkb 60_iso 60_abnt2 60_tsangan_hhkb
diff --git a/keyboards/dztech/dz65rgb/dz65rgb.c b/keyboards/dztech/dz65rgb/dz65rgb.c
index 5d35bc8982..43d8f3494b 100644
--- a/keyboards/dztech/dz65rgb/dz65rgb.c
+++ b/keyboards/dztech/dz65rgb/dz65rgb.c
@@ -81,7 +81,7 @@ led_config_t g_led_config = {
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
{ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
{ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 },
- { 44, 45, 46, 47, 48, 49, 59, 51, 52, 53, 54, 55, NO_LED, 56, 57 },
+ { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57 },
{ 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, NO_LED, 66, 67 }
}, {
{ 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 },
diff --git a/keyboards/dztech/dz65rgb/keymaps/drootz/config.h b/keyboards/dztech/dz65rgb/keymaps/drootz/config.h
new file mode 100644
index 0000000000..5810507975
--- /dev/null
+++ b/keyboards/dztech/dz65rgb/keymaps/drootz/config.h
@@ -0,0 +1,52 @@
+#pragma once
+
+#define LEADER_PER_KEY_TIMING
+#define LEADER_TIMEOUT 425
+#define TAP_HOLD_CAPS_DELAY 80
+
+#ifdef RGB_MATRIX_ENABLE
+/* Reset default from dz65rgb/v2 config.h */
+# undef DISABLE_RGB_MATRIX_SPLASH
+# undef DISABLE_RGB_MATRIX_SOLID_SPLASH
+# undef RGB_MATRIX_LED_FLUSH_LIMIT
+# undef RGB_MATRIX_STARTUP_MODE
+# undef RGB_MATRIX_MAXIMUM_BRIGHTNESS
+# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255
+# define RGB_MATRIX_LED_FLUSH_LIMIT 16 // default: 26
+# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_TYPING_HEATMAP
+# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+# define RGB_MATRIX_STARTUP_HUE 10
+# define RGB_MATRIX_STARTUP_SAT 255
+# define RGB_MATRIX_STARTUP_VAL 200
+# define RGB_MATRIX_STARTUP_SPD 75
+/* Active RBG Modes */
+/* # define DISABLE_RGB_MATRIX_TYPING_HEATMAP // How hot is your WPM! */
+/* # define DISABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out */
+/* # define DISABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out */
+/* Disabling to optimize firmware size */
+# define DISABLE_RGB_MATRIX_ALPHAS_MODS // Static dual hue, speed is hue for secondary hue
+# define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Static gradient left to right, speed controls how much gradient changes
+# define DISABLE_RGB_MATRIX_BREATHING // Single hue brightness cycling animation
+# define DISABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right
+# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness
+# define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Single hue spinning spiral fades brightness
+# define DISABLE_RGB_MATRIX_CYCLE_ALL // Full keyboard solid hue cycling through full gradient
+# define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Full gradient scrolling left to right
+# define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom
+# define DISABLE_RGB_MATRIX_CYCLE_OUT_IN // Full gradient scrolling out to in
+# define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in
+# define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Full gradent Chevron shapped scrolling left to right
+# define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL // Full gradient spinning pinwheel around center of keyboard
+# define DISABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard
+# define DISABLE_RGB_MATRIX_DUAL_BEACON // Full gradient spinning around center of keyboard
+# define DISABLE_RGB_MATRIX_RAINBOW_BEACON // Full tighter gradient spinning around center of keyboard
+# define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Full dual gradients spinning two halfs of keyboard
+# define DISABLE_RGB_MATRIX_RAINDROPS // Randomly changes a single key's hue
+# define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Randomly changes a single key's hue and saturation
+# define DISABLE_RGB_MATRIX_SOLID_REACTIVE // Static single hue, pulses keys hit to shifted hue then fades to current hue
+#endif /* RBG MATRIX */
+
+/* Firmware size Optimizations */
+#define NO_ACTION_MACRO
+#define NO_ACTION_FUNCTION
+#define NO_ACTION_ONESHOT
diff --git a/keyboards/dztech/dz65rgb/keymaps/drootz/keymap.c b/keyboards/dztech/dz65rgb/keymaps/drootz/keymap.c
new file mode 100644
index 0000000000..c313f467e3
--- /dev/null
+++ b/keyboards/dztech/dz65rgb/keymaps/drootz/keymap.c
@@ -0,0 +1,757 @@
+#include QMK_KEYBOARD_H
+
+/**************** SOME GLOBALS *********************/
+
+bool onMac = false;
+bool isLeader = false;
+bool isBlinking = false;
+bool isRecording = false;
+bool isPlaying = false;
+const float led_dim_ratio = 0.50;
+static uint16_t blink_cycle_timer,
+ blink_fade_in_timer,
+ blink_fade_out_timer,
+ macro_one_play_timer,
+ macro_two_play_timer,
+ macro_play_blink_timer = 2000;
+static uint8_t fade_in_step_counter,
+ fade_out_step_counter,
+ blink_hsv_value;
+
+/**************** LED BLINK HELPER FUNCTIONS *********************/
+
+/*
+Function to set color with hsv arguments
+- "hue", "sat" and "val" arguments above 255 will get value from rgb matrix config
+- "val_ratio" is used to adjust brightness ratio
+*/
+void rgb_matrix_set_color_hsv(uint8_t led, uint16_t hue, uint16_t sat, uint16_t val, float val_ratio) {
+ const uint8_t h = hue <= 255 ? hue : rgb_matrix_config.hsv.h;
+ const uint8_t s = sat <= 255 ? sat : rgb_matrix_config.hsv.s;
+ const uint8_t v = val <= 255 ? val * val_ratio : rgb_matrix_config.hsv.v * val_ratio;
+ HSV hsv_in = {h, s, v};
+ RGB rgb_out = hsv_to_rgb(hsv_in);
+ rgb_matrix_set_color(led, rgb_out.r, rgb_out.g, rgb_out.b);
+}
+
+void reset_blink_cycle(void) {
+ blink_cycle_timer = timer_read();
+ blink_fade_in_timer = timer_read();
+ blink_fade_out_timer = timer_read();
+ blink_hsv_value = 0;
+ fade_in_step_counter = 0;
+ fade_out_step_counter = 0;
+}
+
+void reset_blink_status(void) {
+ isRecording = false;
+ isPlaying = false;
+ isBlinking = false;
+}
+
+void get_this_led_blinking(uint8_t led_index, bool speed, uint8_t hue, uint8_t sat) {
+ const uint16_t static_on_time = speed ? 200 : 500;
+ const uint16_t static_off_time = speed ? 200 : 500;
+ const uint8_t fade_timing = speed ? 100 : 150;
+ const uint8_t fade_step = speed ? 10 : 15;
+ const uint8_t fade_value_step_size = rgb_matrix_config.hsv.v / fade_step;
+ const uint8_t fade_cycle_time_elapsed = fade_timing / fade_step;
+ if (timer_elapsed(blink_cycle_timer) < static_on_time) {
+ if (timer_elapsed(blink_fade_in_timer) > fade_cycle_time_elapsed && fade_in_step_counter < fade_step) {
+ blink_hsv_value = blink_hsv_value + fade_value_step_size;
+ fade_in_step_counter = fade_in_step_counter + 1;
+ blink_fade_in_timer = timer_read();
+ }
+ } else {
+ if (timer_elapsed(blink_fade_out_timer) > fade_cycle_time_elapsed && fade_out_step_counter < fade_step) {
+ blink_hsv_value = blink_hsv_value - fade_value_step_size;
+ fade_out_step_counter = fade_out_step_counter + 1;
+ blink_fade_out_timer = timer_read();
+ }
+ }
+
+ rgb_matrix_set_color_hsv(led_index, hue, sat, blink_hsv_value, 0.75);
+
+ if (timer_elapsed(blink_cycle_timer) > static_on_time + static_off_time) {
+ reset_blink_cycle();
+ }
+}
+
+
+/**************** LAYOUT *********************/
+
+/*
+[LEDS]
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
+15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29
+30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43
+44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57
+58, 59, 60, 61, 62, 63, 64, 65, 66, 67
+
+[KEYS]
+ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, BCK, INS
+TAB, Q, W, E, R, T, Y, U, I, O, P, [, ], \,PGUP
+CPS, A, S, D, F, G, H, J, K, L, COL, QOT, RETURN,PGDN
+SFT, Z, X, C, V, B, N, M, COM, DOT, SLS, SHIFT, UP, DEL
+CTL, GUI, ALT, SPACEBAR, ALT, FN, CTL, LFT, DWN, RIT
+*/
+
+enum layers {
+ _MAIN,
+ _MAC,
+ _FN
+}
+
+const layers_leds_map[] = {
+ [_MAIN] = 45,
+ [_MAC] = 46,
+ [_FN] = 63
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_MAIN] = LAYOUT_65_ansi(
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
+ KC_LEAD, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [_MAC] = LAYOUT_65_ansi(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_LALT, KC_LGUI, KC_TRNS, KC_TRNS, MO(_FN), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [_FN] = LAYOUT_65_ansi(
+ DYN_REC_STOP, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
+ KC_TRNS, KC_MUTE, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SAD, RGB_SAI, DYN_MACRO_PLAY2, DYN_REC_START2,
+ KC_TRNS, KC_BRID, KC_VOLD, KC_BRIU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUD, RGB_HUI, DYN_MACRO_PLAY1, DYN_REC_START1,
+ KC_TRNS, TO(_MAIN), TO(_MAC), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SPD, RGB_SPI, KC_TRNS, RGB_VAI, KC_NO,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD, RGB_VAD, RGB_MOD
+ ),
+};
+
+//**************** MATRIX SCANS *********************//
+
+void rgb_matrix_indicators_user(void) {
+
+ #ifdef RGB_MATRIX_ENABLE
+
+ /*Ensure some leds don't completeley turn off if hsv value setting is below 100 in the rgb matrix config */
+ const uint8_t led_constant_val = rgb_matrix_config.hsv.v < 100 ? 100 : rgb_matrix_config.hsv.v;
+
+ /* CapsLock LED indicator */
+ if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) {
+ rgb_matrix_set_color_hsv(30, 999, 0, led_constant_val, 0.75); // WHITE
+ }
+
+ /* Current layer LED indicator */
+ rgb_matrix_set_color_hsv(layers_leds_map[get_highest_layer(layer_state)], 999, 0, led_constant_val, led_dim_ratio); // WHITE
+
+ /* Leader Key LED under-glow */
+ if (isLeader) {
+ rgb_matrix_set_color_hsv(14, 999, 999, 999, 1); // CONFIG
+ rgb_matrix_set_color_hsv(30, 999, 999, 999, 1); // CONFIG
+ } else {
+ rgb_matrix_set_color_hsv(14, 999, 999, 999, led_dim_ratio); // CONFIG
+ }
+
+ /* Blinking LED indicator when recording Dynamic Macro */
+ if (isRecording && isBlinking) {
+ get_this_led_blinking(0, false, 0, 255);
+ }
+
+ /* Blinking LED indicator when playing Dynamic Macro */
+ if (isPlaying && isBlinking) {
+ if (timer_elapsed(macro_one_play_timer) < macro_play_blink_timer || timer_elapsed(macro_two_play_timer) < macro_play_blink_timer) {
+ get_this_led_blinking(0, true, 85, 255);
+ } else {
+ if (isBlinking && isPlaying) {
+ reset_blink_status();
+ reset_blink_cycle();
+ }
+ }
+ }
+
+ switch (biton32(layer_state)) {
+ case _FN:
+ /* Dynamic Macro LED indicator */
+ if (isRecording) {
+ rgb_matrix_set_color_hsv(0, 0, 999, 999, 1); /* RED macro stop */
+ } else {
+ rgb_matrix_set_color_hsv(43, 0, 999, 999, led_dim_ratio); /* RED macro 1 record */
+ rgb_matrix_set_color_hsv(29, 0, 999, 999, led_dim_ratio); /* RED macro 2 record */
+ rgb_matrix_set_color_hsv(42, 85, 999, 999, led_dim_ratio); /* GREEN macro 1 play */
+ rgb_matrix_set_color_hsv(28, 85, 999, 999, led_dim_ratio); /* GREEN macro 2 play */
+ }
+ /* Layer LED indicators */
+ rgb_matrix_set_color_hsv(45, 999, 0, led_constant_val, led_dim_ratio); /* WHITE Layer _MAIN */
+ rgb_matrix_set_color_hsv(46, 999, 0, led_constant_val, led_dim_ratio); /* WHITE Layer _MAC */
+ break;
+ }
+
+ #endif /* RGB_MATRIX */
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ bool pressed = record->event.pressed;
+ if (pressed) {
+ switch (keycode) {
+ case TO(_MAC):
+ onMac = true;
+ break;
+ case TO(_MAIN):
+ onMac = false;
+ break;
+ }
+ }
+ return true;
+}
+
+//**************** LEADER *********************//
+
+#ifdef LEADER_ENABLE
+
+/******* FRENCH ACCENT HELPER FUNCTIONS & DECLARATIONS *************/
+/*Most comonly used accents only*/
+
+enum french_letter {
+ _A,
+ _E,
+ _I,
+ _O,
+ _U
+};
+
+const uint8_t french_letter_index[5] = {
+ [_A] = 0,
+ [_E] = 1,
+ [_I] = 2,
+ [_O] = 3,
+ [_U] = 4
+};
+
+enum french_accent {
+ _CIRCUMFLEX,
+ _GRAVE,
+ _ACUTE
+};
+
+const uint8_t french_accent_index[3] = {
+ [_CIRCUMFLEX] = 0,
+ [_GRAVE] = 1,
+ [_ACUTE] = 2
+};
+
+/*
+This represent unicode decimal values
+Each index will be mapped to numpad keycode to out put the correct sequence
+All codes in this array should be of size 3
+All accent codes have the same index position as in the french_accent_index Array
+*/
+const uint8_t french_decimal_unicodes[5][3][2] = { /*[Letter][Accent][Case]*/
+ {
+ {
+ 131, // â
+ 194 // Â
+ },{
+ 133, // à
+ 192 // À
+ }
+ },{
+ {
+ 136, // ê
+ 202 // Ê
+ },{
+ 138, // è
+ 200 // È
+ },{
+ 130, // é
+ 201 // É
+ }
+ },{
+ {
+ 140, // î
+ 206 // Î
+ }
+ },{
+ {
+ 147, // ô
+ 212 // Ô
+ }
+ },{
+ {
+ 150, // û
+ 219 // Û
+ },{
+ 151, // ù
+ 217 // Ù
+ }
+ }
+};
+
+void break_int_in_array(uint8_t int_code, uint8_t size, uint8_t *array) {
+ uint8_t i;
+ i = size;
+ while (i--) {
+ array[i] = int_code%10;
+ int_code /= 10;
+ }
+}
+
+/*
+Function meant to be used in Leader Key macros to output most commonly used french accents
+This is designed and work on an English language keyboard setting on both Windows and Mac
+=> accept french_letter and french_accent enum's as argument
+*/
+void send_french_accent(uint8_t letter, uint8_t accent) {
+
+ bool isCaps;
+ uint8_t decimal_unicode_in;
+ uint8_t decimal_unicode_size = 3;
+ uint8_t decimal_unicode_out[decimal_unicode_size];
+
+ /*Map to numpad keycodes*/
+ const uint16_t numpad_key_map[10] = {
+ KC_P0, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, KC_P7, KC_P8, KC_P9
+ };
+
+ /*Map to letter keycodes*/
+ const uint16_t french_letter_key_map[5] = {
+ KC_A, KC_E, KC_I, KC_O, KC_U
+ };
+
+ /*Map to mod keys for French Mac shortcuts*/
+ const uint16_t osx_mod_key_map[3] = {
+ KC_I, // _CIRCUMFLEX
+ KC_GRAVE, // _GRAVE
+ KC_E // _ACUTE
+ };
+
+ /*
+ Function to tap the correct keycodes in sequence for the
+ "Windows Alt Code" requested, aka Decimal Unicodes
+ */
+ void tap_win_alt_code(void) {
+ if (isCaps) {
+ tap_code(numpad_key_map[0]); // Leading 0 on all upper case "Windows alt codes"
+ }
+ for (int i = 0; i < decimal_unicode_size; ++i) {
+ tap_code(numpad_key_map[decimal_unicode_out[i]]);
+ }
+ }
+
+ isCaps = IS_HOST_LED_ON(USB_LED_CAPS_LOCK) ? true : false;
+
+ if (onMac) {
+ if (isCaps) {
+ SEND_STRING(SS_TAP(X_CAPSLOCK));
+ register_code(KC_LALT);
+ tap_code(osx_mod_key_map[accent]);
+ unregister_code(KC_LALT);
+ register_code(KC_LSFT);
+ tap_code(french_letter_key_map[letter]);
+ unregister_code(KC_LSFT);
+ tap_code(KC_CAPS);
+ } else {
+ register_code(KC_LALT);
+ tap_code(osx_mod_key_map[accent]);
+ unregister_code(KC_LALT);
+ tap_code(french_letter_key_map[letter]);
+ }
+ } else {
+ /*get the correct decimal unicode*/
+ decimal_unicode_in = isCaps ? french_decimal_unicodes[letter][accent][1] : french_decimal_unicodes[letter][accent][0];
+ break_int_in_array(decimal_unicode_in, decimal_unicode_size, decimal_unicode_out);
+ register_code(KC_LALT);
+ tap_win_alt_code();
+ unregister_code(KC_LALT);
+ }
+}
+
+/*Couple functions used to output the same macro on two different sequences*/
+
+/* (|) */
+void ldrkey_send_paranthesis_wrap_ini(void) {
+ SEND_STRING("()" SS_TAP(X_LEFT));
+}
+
+/* (X) */
+void ldrkey_send_paranthesis_wrap_word(void) {
+ onMac ? SEND_STRING(SS_LALT(SS_TAP(X_LEFT)) "(" SS_LALT(SS_TAP(X_RIGHT)) ")") : SEND_STRING(SS_LCTL(SS_TAP(X_LEFT)) "(" SS_LCTL(SS_TAP(X_RIGHT)) ")");
+}
+
+/* (selection) */
+void ldrkey_send_paranthesis_wrap_selection(void) {
+ onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_X)) "()" SS_TAP(X_LEFT) SS_LGUI(SS_TAP(X_V)) SS_TAP(X_RIGHT)) : SEND_STRING(SS_LCTL(SS_TAP(X_X)) "()" SS_TAP(X_LEFT) SS_LCTL(SS_TAP(X_V)) SS_TAP(X_RIGHT));
+}
+
+/* [|] */
+void ldrkey_send_bracket_wrap_ini(void) {
+ SEND_STRING("[]" SS_TAP(X_LEFT));
+}
+
+/* [X] */
+void ldrkey_send_bracket_wrap_word(void) {
+ onMac ? SEND_STRING(SS_LALT(SS_TAP(X_LEFT)) "[" SS_LALT(SS_TAP(X_RIGHT)) "]") : SEND_STRING(SS_LCTL(SS_TAP(X_LEFT)) "[" SS_LCTL(SS_TAP(X_RIGHT)) "]");
+}
+
+/* [selection] */
+void ldrkey_send_bracket_wrap_selection(void) {
+ onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_X)) "[]" SS_TAP(X_LEFT) SS_LGUI(SS_TAP(X_V)) SS_TAP(X_RIGHT)) : SEND_STRING(SS_LCTL(SS_TAP(X_X)) "[]" SS_TAP(X_LEFT) SS_LCTL(SS_TAP(X_V)) SS_TAP(X_RIGHT));
+}
+
+/* {|} */
+void ldrkey_send_curlybrace_wrap_ini(void) {
+ SEND_STRING("{}" SS_TAP(X_LEFT));
+}
+
+/* {X} */
+void ldrkey_send_curlybrace_wrap_word(void) {
+ onMac ? SEND_STRING(SS_LALT(SS_TAP(X_LEFT)) "{" SS_LALT(SS_TAP(X_RIGHT)) "}") : SEND_STRING(SS_LCTL(SS_TAP(X_LEFT)) "{" SS_LCTL(SS_TAP(X_RIGHT)) "}");
+}
+
+/* {selection} */
+void ldrkey_send_curlybrace_wrap_selection(void) {
+ onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_X)) "{}" SS_TAP(X_LEFT) SS_LGUI(SS_TAP(X_V)) SS_TAP(X_RIGHT)) : SEND_STRING(SS_LCTL(SS_TAP(X_X)) "{}" SS_TAP(X_LEFT) SS_LCTL(SS_TAP(X_V)) SS_TAP(X_RIGHT));
+}
+
+LEADER_EXTERNS();
+
+void matrix_scan_user(void)
+{
+ LEADER_DICTIONARY()
+ {
+ leading = false;
+ leader_end();
+
+ /* Sequences on layer _MAIN & _MAC */
+ /* éÉ => LdrKey > / */
+ SEQ_ONE_KEY(KC_SLSH) {
+ send_french_accent(_E, _ACUTE);
+ }
+ /* àÀ => LdrKey > A */
+ SEQ_ONE_KEY(KC_A) {
+ send_french_accent(_A, _GRAVE);
+ }
+ /* èÈ => LdrKey > E */
+ SEQ_ONE_KEY(KC_E) {
+ send_french_accent(_E, _GRAVE);
+ }
+ /* ùÙ => LdrKey > U */
+ SEQ_ONE_KEY(KC_U) {
+ send_french_accent(_U, _GRAVE);
+ }
+ /* â => LdrKey > A > A */
+ SEQ_TWO_KEYS(KC_A, KC_A) {
+ send_french_accent(_A, _CIRCUMFLEX);
+ }
+ /* êÊ => LdrKey > E > E */
+ SEQ_TWO_KEYS(KC_E, KC_E) {
+ send_french_accent(_E, _CIRCUMFLEX);
+ }
+ /* îÎ => LdrKey > I > I */
+ SEQ_TWO_KEYS(KC_I, KC_I) {
+ send_french_accent(_I, _CIRCUMFLEX);
+ }
+ /* ôÔ => LdrKey > O > O */
+ SEQ_TWO_KEYS(KC_O, KC_O) {
+ send_french_accent(_O, _CIRCUMFLEX);
+ }
+ /* ûÛ => LdrKey > U > U */
+ SEQ_TWO_KEYS(KC_U, KC_U) {
+ send_french_accent(_U, _CIRCUMFLEX);
+ }
+ /* çÇ => LdrKey > C */
+ SEQ_ONE_KEY(KC_C) {
+ if (onMac) {
+ SEND_STRING(SS_LALT("c"));
+ } else {
+ IS_HOST_LED_ON(USB_LED_CAPS_LOCK) ? SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P1) SS_TAP(X_P2) SS_TAP(X_P8) SS_UP(X_LALT)) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P1) SS_TAP(X_P3) SS_TAP(X_P5) SS_UP(X_LALT));
+ }
+ }
+ /* CapsLock */
+ SEQ_ONE_KEY(KC_LEAD) {
+ tap_code(KC_CAPS);
+ }
+ /* ± => LdrKey > = > - */
+ SEQ_TWO_KEYS(KC_EQL, KC_MINS) {
+ onMac ? SEND_STRING(SS_LALT(SS_LSFT(SS_TAP(X_EQL)))) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P1) SS_UP(X_LALT));
+ }
+ /* ≤ => LdrKey > - > = */
+ SEQ_TWO_KEYS(KC_MINS, KC_EQL) {
+ onMac ? SEND_STRING(SS_LALT(SS_TAP(X_COMM))) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P3) SS_UP(X_LALT));
+ }
+ /* ≥ => LdrKey > = > = */
+ SEQ_TWO_KEYS(KC_EQL, KC_EQL) {
+ onMac ? SEND_STRING(SS_LALT(SS_TAP(X_DOT))) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P2) SS_UP(X_LALT));
+ }
+ /* <= => LdrKey > , > , */
+ SEQ_TWO_KEYS(KC_COMM, KC_COMM) {
+ SEND_STRING(SS_LSFT(SS_TAP(X_COMM)) SS_TAP(X_SPC) SS_TAP(X_EQL) SS_TAP(X_LEFT) SS_TAP(X_BSPC) SS_TAP(X_RIGHT));
+ }
+ /* => => LdrKey > . > . */
+ SEQ_TWO_KEYS(KC_DOT, KC_DOT) {
+ SEND_STRING("=>");
+ }
+ /* ", " => LdrKey > " " */
+ SEQ_ONE_KEY(KC_SPC) {
+ SEND_STRING(", ");
+ }
+ /* ". " => LdrKey > " " > " " */
+ SEQ_TWO_KEYS(KC_SPC, KC_SPC) {
+ SEND_STRING(". ");
+ }
+ /* Backward delete current word (on cursor) */
+ SEQ_TWO_KEYS(KC_BSPC, KC_BSPC) {
+ onMac ? SEND_STRING(SS_LALT(SS_TAP(X_RIGHT)) SS_LALT(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)) : SEND_STRING(SS_LCTL(SS_TAP(X_RIGHT)) SS_LCTL(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC));
+ }
+ /* Previous word delete */
+ SEQ_ONE_KEY(KC_BSPC) {
+ onMac ? SEND_STRING(SS_LALT(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)) : SEND_STRING(SS_LCTL(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC));
+ }
+ /* Forward delete current word (on cursor) */
+ SEQ_TWO_KEYS(KC_DEL, KC_DEL) {
+
+ onMac ? SEND_STRING(SS_LALT(SS_TAP(X_LEFT)) SS_LALT(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)) : SEND_STRING(SS_LCTL(SS_TAP(X_LEFT)) SS_LCTL(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL));
+ }
+ /* Next word delete */
+ SEQ_ONE_KEY(KC_DEL) {
+ onMac ? SEND_STRING(SS_LALT(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)): SEND_STRING(SS_LCTL(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL));
+ }
+ /* ` => LdrKey > Escape */
+ SEQ_ONE_KEY(KC_GESC) {
+ SEND_STRING("`");
+ }
+ /* ``` => LdrKey > Escape > Escape > Escape */
+ SEQ_THREE_KEYS(KC_GESC, KC_GESC, KC_GESC) {
+ SEND_STRING("```");
+ }
+ /* Printscreen => LdrKey > Insert */
+ SEQ_ONE_KEY(KC_INS) {
+ onMac ? SEND_STRING(SS_LGUI(SS_LSFT(SS_TAP(X_4)))) : SEND_STRING(SS_TAP(X_PSCR));
+ }
+ /* Home => LdrKey > Page Up */
+ SEQ_ONE_KEY(KC_PGUP) {
+ onMac ? SEND_STRING(SS_TAP(X_HOME)) : SEND_STRING(SS_LCTL(SS_TAP(X_HOME)));
+ }
+ /* End => LdrKey > Page Down */
+ SEQ_ONE_KEY(KC_PGDN) {
+ onMac ? SEND_STRING(SS_TAP(X_END)) : SEND_STRING(SS_LCTL(SS_TAP(X_END)));
+ }
+ /* Close Curernt File/Tab => LdrKey > W */
+ SEQ_ONE_KEY(KC_W) {
+ onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_W))) : SEND_STRING(SS_LCTL(SS_TAP(X_W)));
+ }
+ /* Close Current App => LdrKey > Q */
+ SEQ_ONE_KEY(KC_Q) {
+ onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_Q))) : SEND_STRING(SS_LALT(SS_TAP(X_F4)));
+ }
+ /* " => LdrKey > ' */
+ SEQ_ONE_KEY(KC_QUOT) {
+ SEND_STRING("\"");
+ }
+ /* "|" => LdrKey > ' > ' */
+ SEQ_TWO_KEYS(KC_QUOT, KC_QUOT) {
+ SEND_STRING("\"\"" SS_TAP(X_LEFT));
+ }
+ /* "X" wrap => LdrKey > ' > ' > ' */
+ SEQ_THREE_KEYS(KC_QUOT, KC_QUOT, KC_QUOT) {
+ onMac ? SEND_STRING(SS_LALT(SS_TAP(X_LEFT)) "\"" SS_LALT(SS_TAP(X_RIGHT)) "\"") : SEND_STRING(SS_LCTL(SS_TAP(X_LEFT)) "\"" SS_LCTL(SS_TAP(X_RIGHT)) "\"");
+ }
+ /* ( => LdrKey > Left Shift */
+ SEQ_ONE_KEY(KC_LSFT) {
+ SEND_STRING("(");
+ }
+ /* ) => LdrKey > Right Shift */
+ SEQ_ONE_KEY(KC_RSFT) {
+ SEND_STRING(")");
+ }
+ /* (|) => LdrKey > Left Shift > Left Shift */
+ SEQ_TWO_KEYS(KC_LSFT, KC_LSFT) {
+ ldrkey_send_paranthesis_wrap_ini();
+ }
+ /* (|) => LdrKey > Right Shift > Right Shift */
+ SEQ_TWO_KEYS(KC_RSFT, KC_RSFT) {
+ ldrkey_send_paranthesis_wrap_ini();
+ }
+ /* (X) wrap => LdrKey > Left Shift > W */
+ SEQ_TWO_KEYS(KC_LSFT, KC_W) {
+ ldrkey_send_paranthesis_wrap_word();
+ }
+ /* (X) wrap => LdrKey > Right Shift > W */
+ SEQ_TWO_KEYS(KC_RSFT, KC_W) {
+ ldrkey_send_paranthesis_wrap_word();
+ }
+ /* (X) wrap selection => LdrKey > Left Shift > W > W */
+ SEQ_THREE_KEYS(KC_LSFT, KC_W, KC_W) {
+ ldrkey_send_paranthesis_wrap_selection();
+ }
+ /* (X) wrap selection => LdrKey > Right Shift > W > W */
+ SEQ_THREE_KEYS(KC_RSFT, KC_W, KC_W) {
+ ldrkey_send_paranthesis_wrap_selection();
+ }
+ /* [ => LdrKey > Left CTL */
+ SEQ_ONE_KEY(KC_LCTL) {
+ SEND_STRING("[");
+ }
+ /* ] => LdrKey > Right CTL */
+ SEQ_ONE_KEY(KC_RCTL) {
+ SEND_STRING("]");
+ }
+ /* [|] => LdrKey > Left CTL > Left CTL */
+ SEQ_TWO_KEYS(KC_LCTL, KC_LCTL) {
+ ldrkey_send_bracket_wrap_ini();
+ }
+ /* [|] => LdrKey > Right CTL > Right CTL */
+ SEQ_TWO_KEYS(KC_RCTL, KC_RCTL) {
+ ldrkey_send_bracket_wrap_ini();
+ }
+ /* [X] wrap => LdrKey > Left CTL > W */
+ SEQ_TWO_KEYS(KC_LCTL, KC_W) {
+ ldrkey_send_bracket_wrap_word();
+ }
+ /* [X] wrap => LdrKey > Right CTL > W */
+ SEQ_TWO_KEYS(KC_RCTL, KC_W) {
+ ldrkey_send_bracket_wrap_word();
+ }
+ /* [X] wrap selection => LdrKey > Left CTL > W > W */
+ SEQ_THREE_KEYS(KC_LCTL, KC_W, KC_W) {
+ ldrkey_send_bracket_wrap_selection();
+ }
+ /* [X] wrap selection => LdrKey > Right CTL > W > W */
+ SEQ_THREE_KEYS(KC_RCTL, KC_W, KC_W) {
+ ldrkey_send_bracket_wrap_selection();
+ }
+ /* { => LdrKey > Left ALT */
+ SEQ_ONE_KEY(KC_LALT) {
+ SEND_STRING("{");
+ }
+ /* } => LdrKey > Right ALT */
+ SEQ_ONE_KEY(KC_RALT) {
+ SEND_STRING("}");
+ }
+ /* {|} => LdrKey > Left ALT > Left ALT */
+ SEQ_TWO_KEYS(KC_LALT, KC_LALT) {
+ ldrkey_send_curlybrace_wrap_ini();
+ }
+ /* {|} => LdrKey > Right ALT > Right ALT */
+ SEQ_TWO_KEYS(KC_RALT, KC_RALT) {
+ ldrkey_send_curlybrace_wrap_ini();
+ }
+ /* {X} wrap => LdrKey > Left ALT > W */
+ SEQ_TWO_KEYS(KC_LALT, KC_W) {
+ ldrkey_send_curlybrace_wrap_word();
+ }
+ /* {X} wrap => LdrKey > Right ALT > W */
+ SEQ_TWO_KEYS(KC_RALT, KC_W) {
+ ldrkey_send_curlybrace_wrap_word();
+ }
+ /* {X} wrap selection => LdrKey > Left ALT > W > W */
+ SEQ_THREE_KEYS(KC_LALT, KC_W, KC_W) {
+ ldrkey_send_curlybrace_wrap_selection();
+ }
+ /* {X} wrap selection => LdrKey > Right ALT > W > W */
+ SEQ_THREE_KEYS(KC_RALT, KC_W, KC_W) {
+ ldrkey_send_curlybrace_wrap_selection();
+ }
+ /* Select everything on this line before cursor => LdrKey > Left */
+ SEQ_ONE_KEY(KC_LEFT) {
+ onMac ? SEND_STRING(SS_LSFT(SS_LGUI(SS_TAP(X_LEFT)))) : SEND_STRING(SS_LSFT(SS_TAP(X_HOME)));
+ }
+ /* Select everything on this line after cursor => LdrKey > Right */
+ SEQ_ONE_KEY(KC_RIGHT) {
+ onMac ? SEND_STRING(SS_LSFT(SS_LGUI(SS_TAP(X_RIGHT)))) : SEND_STRING(SS_LSFT(SS_TAP(X_END)));
+ }
+ /* Select everything on this line before cursor and bring on previous line => LdrKey > Left > Left */
+ SEQ_TWO_KEYS(KC_LEFT, KC_LEFT) {
+ onMac ? SEND_STRING(SS_LSFT(SS_TAP(X_UP) SS_LGUI(SS_TAP(X_RIGHT)))) : SEND_STRING(SS_LSFT(SS_TAP(X_UP) SS_TAP(X_END)));
+ }
+ /* Select everything on this line => LdrKey > Right > Left */
+ SEQ_TWO_KEYS(KC_RIGHT, KC_LEFT) {
+ onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_RIGHT) SS_LSFT(SS_LGUI(SS_TAP(X_LEFT))))) : SEND_STRING(SS_TAP(X_END) SS_LSFT(SS_TAP(X_HOME)));
+ }
+ /* Select 1x Page Up on the page before the cursor => LdrKey > Up */
+ SEQ_ONE_KEY(KC_UP) {
+ SEND_STRING(SS_LSFT(SS_TAP(X_PGUP)));
+ }
+ /* Select 1x Page Down on the page after the cursor => LdrKey > Down */
+ SEQ_ONE_KEY(KC_DOWN) {
+ SEND_STRING(SS_LSFT(SS_TAP(X_PGDN)));
+ }
+ /* Select everything on the page before the cursor => LdrKey > Up > Up */
+ SEQ_TWO_KEYS(KC_UP, KC_UP) {
+ onMac ? SEND_STRING(SS_LSFT(SS_LGUI(SS_TAP(X_UP)))) : SEND_STRING(SS_LSFT(SS_LCTL(SS_TAP(X_HOME))));
+ }
+ /* Select everything on the page after the cursor => LdrKey > Down > Down */
+ SEQ_TWO_KEYS(KC_DOWN, KC_DOWN) {
+ onMac ? SEND_STRING(SS_LSFT(SS_LGUI(SS_TAP(X_DOWN)))) : SEND_STRING(SS_LSFT(SS_LCTL(SS_TAP(X_END))));
+ }
+ /* HELPER => spit out the url of the layout description page on github */
+ SEQ_FIVE_KEYS(KC_GESC, KC_GESC, KC_GESC, KC_GESC, KC_GESC) {
+ SEND_STRING("https://github.com/qmk/qmk_firmware/tree/master/keyboards/dztech/dz65rgb/keymaps/drootz");
+ }
+ /* google.ca => LdrKey > G > G */
+ SEQ_TWO_KEYS(KC_G, KC_G) {
+ SEND_STRING("https://google.ca" SS_TAP(X_ENT));
+ }
+ /* @gmail => LdrKey > M > L > T */
+ SEQ_THREE_KEYS(KC_M, KC_L, KC_T) {
+ SEND_STRING("mailto." SS_TAP(X_D) SS_TAP(X_A) SS_TAP(X_N) SS_TAP(X_I) SS_TAP(X_E) SS_TAP(X_L) SS_TAP(X_R) SS_TAP(X_A) SS_TAP(X_C) SS_TAP(X_I) SS_TAP(X_N) SS_TAP(X_E) "@gmail.com");
+ }
+ /* Show Desktop => LdrKey > D */
+ SEQ_ONE_KEY(KC_D) {
+ onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_SPC)) "Mission" SS_TAP(X_ENT)) : SEND_STRING(SS_LGUI(SS_TAP(X_D)));
+ }
+ }
+}
+
+void leader_start(void) {
+ isLeader = true;
+}
+
+void leader_end(void) {
+ isLeader = false;
+}
+
+#endif /* LEADER */
+
+/**************** DYNAMIC MACRO *********************/
+
+void dynamic_macro_record_start_user(void) {
+ onMac = false; /* reset layer bool as dynamic macro clear the keyboard and reset layers. */
+ if (!isBlinking && !isRecording) {
+ reset_blink_cycle();
+ isBlinking = true;
+ isRecording = true;
+ }
+}
+
+void dynamic_macro_record_end_user(int8_t direction) {
+ if (isBlinking && isRecording) {
+ reset_blink_status();
+ reset_blink_cycle();
+ }
+}
+
+void dynamic_macro_play_user(int8_t direction) {
+ switch (direction) {
+ case 1:
+ if (!isBlinking && !isPlaying) {
+ reset_blink_cycle();
+ isBlinking = true;
+ isPlaying = true;
+ macro_one_play_timer = timer_read();
+ }
+ break;
+ case -1:
+ if (!isBlinking && !isPlaying) {
+ reset_blink_cycle();
+ isBlinking = true;
+ isPlaying = true;
+ macro_two_play_timer = timer_read();
+ }
+ break;
+ }
+}
diff --git a/keyboards/dztech/dz65rgb/keymaps/drootz/readme.md b/keyboards/dztech/dz65rgb/keymaps/drootz/readme.md
new file mode 100644
index 0000000000..15f15d752b
--- /dev/null
+++ b/keyboards/dztech/dz65rgb/keymaps/drootz/readme.md
@@ -0,0 +1,210 @@
+![DZ65RGBv2 Layout Image - MAIN](https://res.cloudinary.com/drootz/image/upload/c_scale,w_800/v1582000645/drootz_dz65rgb_layer_0_main_n61oxl.jpg)
+
+# Drootz's DZ65RGBv2 ANSI Layout
+
+This layout fit best people who mainly type in English but regularly need to type in French _(using an English keyboard in OS setting)_. There are also some cool LED indicator effects and tons of Leader Key bindings/macros designed to work on both Mac and Windows OS. I tried to keep things as simple as possible from a usability perspective. Enjoy!
+
+- [LAYERS](#LAYERS)
+- [LEADER KEY BINDINGS:](#LEADER-KEY-BINDINGS)
+ - [OS and Keyboard Macros](#OS-and-Keyboard-Macros)
+ - [French Accents](#French-Accents)
+ - [Special Characters and Punctuation](#Special-Characters-and-Punctuation)
+ - [Text Selection Macros](#Text-Selection-Macros)
+ - [Expanded Space Cadet Macros](#Expanded-Space-Cadet-Macros)
+ - [Text Expanders](#Text-Expanders)
+- [STEP BY STEP FLASH INSTRUCTIONS](#STEP-BY-STEP-FLASH-INSTRUCTIONS)
+
+## HIGH LEVEL DESCRIPTION
+
+#### Dual function Capslock key
+- Single tap to trigger the Leader Key
+- Double tap to toggle Capslock ON/OFF
+
+#### 70+ useful Leader Key bindings and macros
+- "Designed" to work on both Mac and Windows OS with an English keyboard OS setting
+- Per key timing set at 425ms. Never a key sequence!
+- 20+ Punctuation, ASCII, System shortcuts and macros
+- 15+ French accents (è, é, ê, È, É, Ê, à, etc.)
+ - No need to switch to a French keyboard OS setting!
+ - Preserve Capslock if enabled
+- 8 Text "selection" shortcuts
+- 20+ Expanded "Space Cadet" feature with Shift, Ctrl, Alt and DoubleQuote for (), [], {} and ""
+- Few useful strings output for my workflow (You may want to change or remove them...)
+
+#### Dynamic Macros enabled
+- Record/Play up to 2 Macros
+- Nesting allowed
+
+#### Kept only 4 RGB matrix animations due to size of firmware
+- Typing Heatmap => How hot is your WPM! (preferred animation because of LED indicators)
+- Matrix Splash => Full gradient & value pulse away from a single key hit then fades value out
+- Solid Splash => Hue & value pulse away from a single key hit then fades value out
+- Solid Color => Static single hue, no speed support
+
+#### LED indicators and animations
+- White led when Capslock toggle ON
+- The brightness of all the other indicator can be adjusted globally with the RGB matrix brightness setting on layer \_FN
+- White LED indicator for layer selection and current layer identification
+- Red and green blinking indicator when "recording" or "playing" Dynamic Macros
+- Leader Key LED indicator:
+ - Persistent 50% dimmed under-glow on top right corner key
+ - Light up at 100% for the duration of the Leader Key timeout when activated
+ - Hue, saturation and brightness can be globally adjusted with the RGB matrix settings on layer \_FN
+
+#### 3 Layers
+- \_MAIN: Default layer for Windows OS
+- \_MAC: Transparent layer that switch left hand modifier KC_LALT and KC_LGUI keys for MacOS
+- \_FN: Functions & settings layer:
+ - Macro 1 & 2 keycodes (Record, Stop, Play) with LED indicators
+ - F Keys (F1...F12) on number row
+ - RGB matrix & animation settings
+ - Screen brightness & volume system controls
+ - Layer selection
+
+## LAYERS
+
+- Colored keys on the layout visuals below represent the position of the LED indicators on each layer.
+- Press down and hold the MO(\_FN) key to access the \_FN layer
+- Double tap on the Capslock key to toggle Capslock ON/OFF
+- \_TRNS keys use the next lowest non-transparent key (on lower layers)
+- \_NO keys are ignored (nothing happens)
+
+### [Layer 0: \_MAIN](http://www.keyboard-layout-editor.com/#/gists/67c22220856a927766bd3e0331ed782a)
+![DZ65RGBv2 Layout Image - MAIN](https://res.cloudinary.com/drootz/image/upload/c_scale,w_800/v1582000645/drootz_dz65rgb_layer_0_main_n61oxl.jpg)
+
+### [Layer 1: \_MAC](http://www.keyboard-layout-editor.com/#/gists/4a32d80c67c778658febf28524fb5000)
+![DZ65RGBv2 Layout Image - MAC](https://res.cloudinary.com/drootz/image/upload/c_scale,w_800/v1582000653/drootz_dz65rgb_layer_1_mac_z4tsaw.jpg)
+
+### [Layer 2: \_FN](http://www.keyboard-layout-editor.com/#/gists/b583bd7cc5b0a75b4610bbda18fba65e)
+![DZ65RGBv2 Layout Image - FN](https://res.cloudinary.com/drootz/image/upload/c_scale,w_800/v1582000661/drootz_dz65rgb_layer_2_fn_zv8yte.jpg)
+
+## LEADER KEY BINDINGS
+
+The Leader Key on this layout is triggered by tapping the Capslock key once. Once triggered, we have 450ms between each key press to type any one of the sequences listed below. All sequences are designed to work on both Mac and Windows with an English keyboard OS setting.
+
+- [OS and Keyboard Macros](#OS-and-Keyboard-Macros)
+- [French Accents](#French-Accents)
+- [Special Characters and Ponctuation](#Special-Characters-and-Ponctuation)
+- [Text Selection Macros](#Text-Selection-Macros)
+- [Expanded Space Cadet Macros](#Expanded-Space-Cadet-Macros)
+- [Text Expanders](#Text-Expanders)
+
+#### Legend:
+
+| Acronym | Description |
+| :--- | :--- |
+| LDR | Leader Key |
+| SFT | Shift key |
+| CTL | Control key |
+| ESC | Escape key |
+| ¶ | Text cursor position |
+
+### OS and Keyboard Macros
+
+| Output | Sequence | Description
+| :--- | :--- | :--- |
+| Toggle Capslock | `LDR LDR` | Single tap Capslock to trigger the LDR key |
+| Delete all previous characters in word on cursor OR; | `LDR BACKSPACE` | n/a |
+| => Delete previous word if triggered repeatedly | `LDR BACKSPACE` | n/a |
+| Delete all forward characters in word on cursor OR; | `LDR DEL` | n/a |
+| => Delete next word if triggered repeatedly | `LDR DEL` | n/a |
+| Backward Delete whole word on cursor | `LDR BACKSPACE BACKSPACE` | n/a |
+| Forward Delete whole word on cursor | `LDR DEL DEL` | n/a |
+| Printscreen | `LDR INSERT` | n/a |
+| Home | `LDR PAGE-UP` | n/a |
+| End | `LDR PAGE-DOWN` | n/a |
+| OS: Close current file/tab | `LDR W` | n/a |
+| OS: Close current application | `LDR Q` | n/a |
+| OS: Show Desktop(Win) or Mission Control(Mac) | `LDR D` | The Mac sequence will work with LaunchBar (Cmd+Space) |
+
+### French Accents
+
+| Output | Sequence | Description
+| :--- | :--- | :--- |
+| `à`¶ &nbsp;&nbsp;or&nbsp;&nbsp; `À`¶ | `LDR A` | Will output upper character if Capslock enabled. |
+| `â`¶ &nbsp;&nbsp;or&nbsp;&nbsp; `Â`¶ | `LDR A A` | Will output upper character if Capslock enabled. |
+| `ç`¶ &nbsp;&nbsp;or&nbsp;&nbsp; `Ç`¶ | `LDR C` | Will output upper character if Capslock enabled. |
+| `è`¶ &nbsp;&nbsp;or&nbsp;&nbsp; `È`¶ | `LDR E` | Will output upper character if Capslock enabled. |
+| `ê`¶ &nbsp;&nbsp;or&nbsp;&nbsp; `Ê`¶ | `LDR E E` | Will output upper character if Capslock enabled. |
+| `é`¶ &nbsp;&nbsp;or&nbsp;&nbsp; `É`¶ | `LDR /` | Will output upper character if Capslock enabled |
+| `î`¶ &nbsp;&nbsp;or&nbsp;&nbsp; `Î`¶ | `LDR I I` | Will output upper character if Capslock enabled. |
+| `ô`¶ &nbsp;&nbsp;or&nbsp;&nbsp; `Ô`¶ | `LDR O O` | Will output upper character if Capslock enabled. |
+| `ù`¶ &nbsp;&nbsp;or&nbsp;&nbsp; `Ù`¶ | `LDR U` | Will output upper character if Capslock enabled. |
+| `û`¶ &nbsp;&nbsp;or&nbsp;&nbsp; `Û`¶ | `LDR U U` | Will output upper character if Capslock enabled. |
+
+### Special Characters and Punctuation
+
+| Output | Sequence | Description |
+| :--- | :--- | :--- |
+| `±`¶ | `LDR = -` | n/a |
+| `≤`¶ | `LDR - =` | n/a |
+| `≥`¶ | `LDR = =` | n/a |
+| `=>`¶ | `LDR , ,` | n/a |
+| `<=`¶ | `LDR . .` | n/a |
+| ``` ` ``` ¶ | `LDR ESC` | n/a |
+| \`\`\` ¶ | `LDR ESC ESC ESC` | n/a |
+| `,` space ¶ | `LDR SPACE` | n/a |
+| `.` space ¶ | `LDR SPACE SPACE` | n/a |
+
+### Text Selection Macros
+
+| Output | Sequence |
+| :--- | :--- |
+| Select everything on this line before cursor | `LDR LEFT-ARROW` |
+| Select everything on this line after cursor | `LDR RIGHT-ARROW` |
+| Select everything on this line before cursor up to end of previous line | `LDR LEFT-ARROW LEFT-ARROW` | n/a |
+| Select everything on this line | `LDR RIGHT-ARROW LEFT-ARROW` |
+| Select 1x Page Up on the page before the cursor | `LDR UP-ARROW` |
+| Select 1x Page Down on the page after the cursor | `LDR DOWN-ARROW` |
+| Select everything on the page before the cursor | `LDR UP-ARROW UP-ARROW` |
+| Select everything on the page after the cursor | `LDR DOWN-ARROW DOWN-ARROW` |
+
+### Expanded Space Cadet Macros
+
+| Output | Sequence | Description |
+| :--- | :--- | :--- |
+| `"`¶ | `LDR '` | Will output single double-quote |
+| `"`¶`"` | `LDR ' '` | Will wrap cursor between two double-quotes |
+| `"`WORD`"`¶ | `LDR ' ' '` | Will wrap word on cursor between two double-quotes |
+| `(`¶ | `LDR LEFT-SFT` | Will output single left parenthesis |
+| `)`¶ | `LDR RIGHT-SFT` | Will output single right parenthesis |
+| `(`¶`)` | `LDR LEFT-SFT LEFT-SFT` | Will wrap cursor between two parenthesis' |
+| `(`¶`)` | `LDR RIGHT-SFT RIGHT-SFT` | Will wrap cursor between two parenthesis' |
+| `(`WORD`)`¶ | `LDR LEFT-SFT W` | Will wrap word on cursor between two parenthesis' |
+| `(`WORD`)`¶ | `LDR RIGHT-SFT W` | Will wrap word on cursor between two parenthesis' |
+| `(`SELECTION`)`¶ | `LDR LEFT-SFT W W` | Will wrap selection between two parenthesis' |
+| `(`SELECTION`)`¶ | `LDR RIGHT-SFT W W` | Will wrap selection between two parenthesis' |
+| `[`¶ | `LDR LEFT-CTL` | Will output single left bracket |
+| `]`¶ | `LDR RIGHT-CTL` | Will output single right bracket |
+| `[`¶`]` | `LDR LEFT-CTL LEFT-CTL` | Will wrap cursor between two brackets' |
+| `[`¶`]` | `LDR RIGHT-CTL RIGHT-CTL` | Will wrap cursor between two brackets' |
+| `[`WORD`]`¶ | `LDR LEFT-CTL W` | Will wrap word on cursor between two brackets' |
+| `[`WORD`]`¶ | `LDR RIGHT-CTL W` | Will wrap word on cursor between two brackets' |
+| `[`SELECTION`]`¶ | `LDR LEFT-CTL W W` | Will wrap selection between two brackets' |
+| `[`SELECTION`]`¶ | `LDR RIGHT-CTL W W` | Will wrap selection between two brackets' |
+| `{`¶ | `LDR LEFT-ALT` | Will output single left curly brace |
+| `}`¶ | `LDR RIGHT-ALT` | Will output single right curly brace |
+| `{`¶`}` | `LDR LEFT-ALT LEFT-ALT` | Will wrap cursor between two curly braces' |
+| `{`¶`}` | `LDR RIGHT-ALT RIGHT-ALT` | Will wrap cursor between two curly braces' |
+| `{`WORD`}`¶ | `LDR LEFT-ALT W` | Will wrap word on cursor between two curly braces' |
+| `{`WORD`}`¶ | `LDR RIGHT-ALT W` | Will wrap word on cursor between two curly braces' |
+| `{`SELECTION`}`¶ | `LDR LEFT-ALT W W` | Will wrap selection between two curly braces' |
+| `{`SELECTION`}`¶ | `LDR RIGHT-ALT W W` | Will wrap selection between two curly braces' |
+
+### Text Expanders
+
+| Output | Sequence | Description |
+| :--- | :--- | :--- |
+| https://google.ca | `LDR G G` | n/a |
+| Layout Help URL | `LDR ESC ESC ESC ESC ESC` | URL to this readme.md page |
+| My Gmail | `LDR M L T` | You may want to update this before compiling the firmware |
+
+## STEP BY STEP FLASH INSTRUCTIONS
+1. Build the Firmware. Run build command in directory: `make dztech/dz65rgb/v2:drootz`
+ - Approximate firmware size: 27302/28672 (95%, 1370 bytes free)
+2. Flash the Firmware:
+ - Open QMK Toolbox Application
+ - Open firmware file: dztech_dz65rgb_v2_drootz.hex
+ - Unplug keyboard USB, and hold the ESC key while plugging it back in
+ - Check that QMK Toolbox displays: *** DFU device connected.
+ - Hit the flash button!
diff --git a/keyboards/dztech/dz65rgb/keymaps/drootz/rules.mk b/keyboards/dztech/dz65rgb/keymaps/drootz/rules.mk
new file mode 100644
index 0000000000..24a765ab9a
--- /dev/null
+++ b/keyboards/dztech/dz65rgb/keymaps/drootz/rules.mk
@@ -0,0 +1,11 @@
+DYNAMIC_MACRO_ENABLE = yes
+LEADER_ENABLE = yes
+
+# Firmware size Optimizations
+EXTRAFLAGS += -flto
+MOUSEKEY_ENABLE = no
+NKRO_ENABLE = no
+SPACE_CADET_ENABLE = no
+TAP_DANCE_ENABLE = no
+UNICODEMAP_ENABLE = no
+SPLIT_KEYBOARD = no
diff --git a/keyboards/eniigmakeyboards/ek87/config.h b/keyboards/eniigmakeyboards/ek87/config.h
new file mode 100644
index 0000000000..2f20a15948
--- /dev/null
+++ b/keyboards/eniigmakeyboards/ek87/config.h
@@ -0,0 +1,250 @@
+/*
+Copyright 2020 adamws
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x454B
+#define PRODUCT_ID 0x0001
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Eniigma Keyboards
+#define PRODUCT Eniigma Keyboards ek87
+#define DESCRIPTION Eniigma Keyboards ek87
+
+/* key matrix size */
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 18
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { B0, B1, B2, B3, B7, D0 }
+#define MATRIX_COL_PINS { F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4, F0, F1, E6, D3, D2, D1 }
+#define UNUSED_PINS { D5 }
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
+
+// #define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+// #define BACKLIGHT_LEVELS 3
+
+// #define RGB_DI_PIN E2
+// #ifdef RGB_DI_PIN
+// #define RGBLED_NUM 16
+// #define RGBLIGHT_HUE_STEP 8
+// #define RGBLIGHT_SAT_STEP 8
+// #define RGBLIGHT_VAL_STEP 8
+// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+// /*== all animations enable ==*/
+// #define RGBLIGHT_ANIMATIONS
+// /*== or choose animations ==*/
+// #define RGBLIGHT_EFFECT_BREATHING
+// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
+// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+// #define RGBLIGHT_EFFECT_SNAKE
+// #define RGBLIGHT_EFFECT_KNIGHT
+// #define RGBLIGHT_EFFECT_CHRISTMAS
+// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
+// #define RGBLIGHT_EFFECT_RGB_TEST
+// #define RGBLIGHT_EFFECT_ALTERNATING
+// /*== customize breathing effect ==*/
+// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
+// /*==== use exp() and sin() ====*/
+// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
+// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
+// #endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+// #define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+/* defined by default; to change, uncomment and set to the combination you want */
+// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP H
+//#define MAGIC_KEY_HELP_ALT SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER0_ALT GRAVE
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER B
+//#define MAGIC_KEY_BOOTLOADER_ALT ESC
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+
+/* disable these deprecated features by default */
+#define NO_ACTION_MACRO
+#define NO_ACTION_FUNCTION
+/*
+ * MIDI options
+ */
+
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+//#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 1
+
+/*
+ * HD44780 LCD Display Configuration
+ */
+/*
+#define LCD_LINES 2 //< number of visible lines of the display
+#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
+
+#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
+
+#if LCD_IO_MODE
+#define LCD_PORT PORTB //< port for the LCD lines
+#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
+#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
+#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
+#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
+#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
+#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
+#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
+#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
+#define LCD_RS_PORT LCD_PORT //< port for RS line
+#define LCD_RS_PIN 3 //< pin for RS line
+#define LCD_RW_PORT LCD_PORT //< port for RW line
+#define LCD_RW_PIN 2 //< pin for RW line
+#define LCD_E_PORT LCD_PORT //< port for Enable line
+#define LCD_E_PIN 1 //< pin for Enable line
+#endif
+*/
+
+/* Bootmagic Lite key configuration */
+// #define BOOTMAGIC_LITE_ROW 0
+// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/eniigmakeyboards/ek87/ek87.c b/keyboards/eniigmakeyboards/ek87/ek87.c
new file mode 100644
index 0000000000..0101d679d9
--- /dev/null
+++ b/keyboards/eniigmakeyboards/ek87/ek87.c
@@ -0,0 +1,17 @@
+/* Copyright 2020 adamws
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ek87.h"
diff --git a/keyboards/eniigmakeyboards/ek87/ek87.h b/keyboards/eniigmakeyboards/ek87/ek87.h
new file mode 100644
index 0000000000..121365d596
--- /dev/null
+++ b/keyboards/eniigmakeyboards/ek87/ek87.h
@@ -0,0 +1,150 @@
+/* Copyright 2020 adamws
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define XXX KC_NO
+
+/* This is a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+#define LAYOUT_all( \
+ k00, k02, k03, k04, k05, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, k0h, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, k1h, \
+ k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, k2h, \
+ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
+ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4d, k4e, k4g, \
+ k50, k51, k53, k56, k5a, k5b, k5d, k5e, k5f, k5g, k5h \
+) \
+{ \
+ { k00, XXX, k02, k03, k04, k05, XXX, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, k0h }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, k1h }, \
+ { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, k2h }, \
+ { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX, XXX, XXX, XXX }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, XXX, k4d, k4e, XXX, k4g, XXX }, \
+ { k50, k51, XXX, k53, XXX, XXX, k56, XXX, XXX, XXX, k5a, k5b, XXX, k5d, k5e, k5f, k5g, k5h } \
+}
+
+#define LAYOUT_tkl_ansi( \
+ k00, k02, k03, k04, k05, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, k0h, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1f, k1g, k1h, \
+ k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, k2h, \
+ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
+ k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4d, k4g, \
+ k50, k51, k53, k56, k5a, k5b, k5d, k5e, k5f, k5g, k5h \
+) \
+{ \
+ { k00, XXX, k02, k03, k04, k05, XXX, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, k0h }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX, k1f, k1g, k1h }, \
+ { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, k2h }, \
+ { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX, XXX, XXX, XXX }, \
+ { XXX, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, XXX, k4d, XXX, XXX, k4g, XXX }, \
+ { k50, k51, XXX, k53, XXX, XXX, k56, XXX, XXX, XXX, k5a, k5b, XXX, k5d, k5e, k5f, k5g, k5h } \
+}
+
+#define LAYOUT_tkl_ansi_tsangan( \
+ k00, k02, k03, k04, k05, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, k0h, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1f, k1g, k1h, \
+ k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, k2h, \
+ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
+ k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4d, k4g, \
+ k50, k51, k53, k56, k5b, k5d, k5e, k5f, k5g, k5h \
+) \
+{ \
+ { k00, XXX, k02, k03, k04, k05, XXX, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, k0h }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX, k1f, k1g, k1h }, \
+ { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, k2h }, \
+ { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX, XXX, XXX, XXX }, \
+ { XXX, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, XXX, k4d, XXX, XXX, k4g, XXX }, \
+ { k50, k51, XXX, k53, XXX, XXX, k56, XXX, XXX, XXX, XXX, k5b, XXX, k5d, k5e, k5f, k5g, k5h } \
+}
+
+#define LAYOUT_tkl_iso( \
+ k00, k02, k03, k04, k05, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, k0h, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1f, k1g, k1h, \
+ k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, k2h, \
+ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
+ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4d, k4g, \
+ k50, k51, k53, k56, k5a, k5b, k5d, k5e, k5f, k5g, k5h \
+) \
+{ \
+ { k00, XXX, k02, k03, k04, k05, XXX, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, k0h }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX, k1f, k1g, k1h }, \
+ { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, k2h }, \
+ { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX, XXX, XXX, XXX }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, XXX, k4d, XXX, XXX, k4g, XXX }, \
+ { k50, k51, XXX, k53, XXX, XXX, k56, XXX, XXX, XXX, k5a, k5b, XXX, k5d, k5e, k5f, k5g, k5h } \
+}
+
+#define LAYOUT_tkl_iso_tsangan( \
+ k00, k02, k03, k04, k05, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, k0h, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1f, k1g, k1h, \
+ k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, k2h, \
+ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
+ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4d, k4g, \
+ k50, k51, k53, k56, k5b, k5d, k5e, k5f, k5g, k5h \
+) \
+{ \
+ { k00, XXX, k02, k03, k04, k05, XXX, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, k0h }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX, k1f, k1g, k1h }, \
+ { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, k2h }, \
+ { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX, XXX, XXX, XXX }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, XXX, k4d, XXX, XXX, k4g, XXX }, \
+ { k50, k51, XXX, k53, XXX, XXX, k56, XXX, XXX, XXX, XX, k5b, XXX, k5d, k5e, k5f, k5g, k5h } \
+}
+
+#define LAYOUT_tkl_iso_split_bs( \
+ k00, k02, k03, k04, k05, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, k0h, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, k1h, \
+ k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, k2h, \
+ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
+ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4d, k4g, \
+ k50, k51, k53, k56, k5a, k5b, k5d, k5e, k5f, k5g, k5h \
+) \
+{ \
+ { k00, XXX, k02, k03, k04, k05, XXX, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, k0h }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, k1h }, \
+ { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, k2h }, \
+ { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX, XXX, XXX, XXX }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, XXX, k4d, XXX, XXX, k4g, XXX }, \
+ { k50, k51, XXX, k53, XXX, XXX, k56, XXX, XXX, XXX, k5a, k5b, XXX, k5d, k5e, k5f, k5g, k5h } \
+}
+
+#define LAYOUT_tkl_iso_split_rshift( \
+ k00, k02, k03, k04, k05, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, k0h, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1f, k1g, k1h, \
+ k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, k2h, \
+ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
+ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4d, k4e, k4g, \
+ k50, k51, k53, k56, k5a, k5b, k5d, k5e, k5f, k5g, k5h \
+) \
+{ \
+ { k00, XXX, k02, k03, k04, k05, XXX, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, k0h }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX, k1f, k1g, k1h }, \
+ { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, k2h }, \
+ { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX, XXX, XXX, XXX }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, XXX, k4d, k4e, XXX, k4g, XXX }, \
+ { k50, k51, XXX, k53, XXX, XXX, k56, XXX, XXX, XXX, k5a, k5b, XXX, k5d, k5e, k5f, k5g, k5h } \
+}
+
+
diff --git a/keyboards/eniigmakeyboards/ek87/info.json b/keyboards/eniigmakeyboards/ek87/info.json
new file mode 100644
index 0000000000..d8e622ca90
--- /dev/null
+++ b/keyboards/eniigmakeyboards/ek87/info.json
@@ -0,0 +1,72 @@
+{
+ "keyboard_name": "ek87",
+ "url": "",
+ "maintainer": "adamws",
+ "width": 18.25,
+ "height": 6.25,
+ "layouts": {
+ "LAYOUT_all": {
+ "layout":[
+ {"label":"k00","x":0,"y":0},{"label":"k02","x":2,"y":0},{"label":"k03","x":3,"y":0},{"label":"k04","x":4,"y":0},{"label":"k05","x":5,"y":0},{"label":"k07","x":6.5,"y":0},{"label":"k08","x":7.5,"y":0},{"label":"k09","x":8.5,"y":0},{"label":"k0a","x":9.5,"y":0},{"label":"k0b","x":11,"y":0},{"label":"k0c","x":12,"y":0},{"label":"k0d","x":13,"y":0},{"label":"k0e","x":14,"y":0},{"label":"k0f","x":15.25,"y":0},{"label":"k0g","x":16.25,"y":0},{"label":"k0h","x":17.25,"y":0},
+ {"label":"k10","x":0,"y":1.25},{"label":"k11","x":1,"y":1.25},{"label":"k12","x":2,"y":1.25},{"label":"k13","x":3,"y":1.25},{"label":"k14","x":4,"y":1.25},{"label":"k15","x":5,"y":1.25},{"label":"k16","x":6,"y":1.25},{"label":"k17","x":7,"y":1.25},{"label":"k18","x":8,"y":1.25},{"label":"k19","x":9,"y":1.25},{"label":"k1a","x":10,"y":1.25},{"label":"k1b","x":11,"y":1.25},{"label":"k1c","x":12,"y":1.25},{"label":"k1d","x":13,"y":1.25},{"label":"k1e","x":14,"y":1.25},{"label":"k1f","x":15.25,"y":1.25},{"label":"k1g","x":16.25,"y":1.25},{"label":"k1h","x":17.25,"y":1.25},
+ {"label":"k20","x":0,"y":2.25,"w":1.5},{"label":"k22","x":1.5,"y":2.25},{"label":"k23","x":2.5,"y":2.25},{"label":"k24","x":3.5,"y":2.25},{"label":"k25","x":4.5,"y":2.25},{"label":"k26","x":5.5,"y":2.25},{"label":"k27","x":6.5,"y":2.25},{"label":"k28","x":7.5,"y":2.25},{"label":"k29","x":8.5,"y":2.25},{"label":"k2a","x":9.5,"y":2.25},{"label":"k2b","x":10.5,"y":2.25},{"label":"k2c","x":11.5,"y":2.25},{"label":"k2d","x":12.5,"y":2.25},{"label":"k2e","x":13.5,"y":2.25,"w":1.5},{"label":"k2f","x":15.25,"y":2.25},{"label":"k2g","x":16.25,"y":2.25},{"label":"k2h","x":17.25,"y":2.25},
+ {"label":"k30","x":0,"y":3.25,"w":1.75},{"label":"k32","x":1.75,"y":3.25},{"label":"k33","x":2.75,"y":3.25},{"label":"k34","x":3.75,"y":3.25},{"label":"k35","x":4.75,"y":3.25},{"label":"k36","x":5.75,"y":3.25},{"label":"k37","x":6.75,"y":3.25},{"label":"k38","x":7.75,"y":3.25},{"label":"k39","x":8.75,"y":3.25},{"label":"k3a","x":9.75,"y":3.25},{"label":"k3b","x":10.75,"y":3.25},{"label":"k3c","x":11.75,"y":3.25},{"label":"k3d","x":12.75,"y":3.25,"w":2.25},
+ {"label":"k40","x":0,"y":4.25,"w":1.25},{"label":"k41","x":1.25,"y":4.25},{"label":"k42","x":2.25,"y":4.25},{"label":"k43","x":3.25,"y":4.25},{"label":"k44","x":4.25,"y":4.25},{"label":"k45","x":5.25,"y":4.25},{"label":"k46","x":6.25,"y":4.25},{"label":"k47","x":7.25,"y":4.25},{"label":"k48","x":8.25,"y":4.25},{"label":"k49","x":9.25,"y":4.25},{"label":"k4a","x":10.25,"y":4.25},{"label":"k4b","x":11.25,"y":4.25},{"label":"k4d","x":12.25,"y":4.25,"w":1.75},{"label":"k4e","x":14,"y":4.25},{"label":"k4g","x":16.25,"y":4.25},
+ {"label":"k50","x":0,"y":5.25,"w":1.25},{"label":"k51","x":1.25,"y":5.25,"w":1.25},{"label":"k53","x":2.5,"y":5.25,"w":1.25},{"label":"k56","x":3.75,"y":5.25,"w":6.25},{"label":"k5a","x":10,"y":5.25,"w":1.25},{"label":"k5b","x":11.25,"y":5.25,"w":1.25},{"label":"k5d","x":12.5,"y":5.25,"w":1.25},{"label":"k5e","x":13.75,"y":5.25,"w":1.25},{"label":"5f","x":15.25,"y":5.25},{"label":"k5g","x":16.25,"y":5.25},{"label":"k5h","x":17.25,"y":5.25}]
+ },
+ "LAYOUT_tkl_ansi": {
+ "layout":[
+ {"label":"k00","x":0,"y":0},{"label":"k02","x":2,"y":0},{"label":"k03","x":3,"y":0},{"label":"k04","x":4,"y":0},{"label":"k05","x":5,"y":0},{"label":"k07","x":6.5,"y":0},{"label":"k08","x":7.5,"y":0},{"label":"k09","x":8.5,"y":0},{"label":"k0a","x":9.5,"y":0},{"label":"k0b","x":11,"y":0},{"label":"k0c","x":12,"y":0},{"label":"k0d","x":13,"y":0},{"label":"k0e","x":14,"y":0},{"label":"k0f","x":15.25,"y":0},{"label":"k0g","x":16.25,"y":0},{"label":"k0h","x":17.25,"y":0},
+ {"label":"k10","x":0,"y":1.25},{"label":"k11","x":1,"y":1.25},{"label":"k12","x":2,"y":1.25},{"label":"k13","x":3,"y":1.25},{"label":"k14","x":4,"y":1.25},{"label":"k15","x":5,"y":1.25},{"label":"k16","x":6,"y":1.25},{"label":"k17","x":7,"y":1.25},{"label":"k18","x":8,"y":1.25},{"label":"k19","x":9,"y":1.25},{"label":"k1a","x":10,"y":1.25},{"label":"k1b","x":11,"y":1.25},{"label":"k1c","x":12,"y":1.25},{"label":"k1d","x":13,"y":1.25,"w":2},{"label":"k1f","x":15.25,"y":1.25},{"label":"k1g","x":16.25,"y":1.25},{"label":"k1h","x":17.25,"y":1.25},
+ {"label":"k20","x":0,"y":2.25,"w":1.5},{"label":"k22","x":1.5,"y":2.25},{"label":"k23","x":2.5,"y":2.25},{"label":"k24","x":3.5,"y":2.25},{"label":"k25","x":4.5,"y":2.25},{"label":"k26","x":5.5,"y":2.25},{"label":"k27","x":6.5,"y":2.25},{"label":"k28","x":7.5,"y":2.25},{"label":"k29","x":8.5,"y":2.25},{"label":"k2a","x":9.5,"y":2.25},{"label":"k2b","x":10.5,"y":2.25},{"label":"k2c","x":11.5,"y":2.25},{"label":"k2d","x":12.5,"y":2.25},{"label":"k2e","x":13.5,"y":2.25,"w":1.5},{"label":"k2f","x":15.25,"y":2.25},{"label":"k2g","x":16.25,"y":2.25},{"label":"k2h","x":17.25,"y":2.25},
+ {"label":"k30","x":0,"y":3.25,"w":1.75},{"label":"k32","x":1.75,"y":3.25},{"label":"k33","x":2.75,"y":3.25},{"label":"k34","x":3.75,"y":3.25},{"label":"k35","x":4.75,"y":3.25},{"label":"k36","x":5.75,"y":3.25},{"label":"k37","x":6.75,"y":3.25},{"label":"k38","x":7.75,"y":3.25},{"label":"k39","x":8.75,"y":3.25},{"label":"k3a","x":9.75,"y":3.25},{"label":"k3b","x":10.75,"y":3.25},{"label":"k3c","x":11.75,"y":3.25},{"label":"k3d","x":12.75,"y":3.25,"w":2.25},
+ {"label":"k41","x":0,"y":4.25,"w":2.25},{"label":"k42","x":2.25,"y":4.25},{"label":"k43","x":3.25,"y":4.25},{"label":"k44","x":4.25,"y":4.25},{"label":"k45","x":5.25,"y":4.25},{"label":"k46","x":6.25,"y":4.25},{"label":"k47","x":7.25,"y":4.25},{"label":"k48","x":8.25,"y":4.25},{"label":"k49","x":9.25,"y":4.25},{"label":"k4a","x":10.25,"y":4.25},{"label":"k4b","x":11.25,"y":4.25},{"label":"k4d","x":12.25,"y":4.25,"w":2.75},{"label":"k4g","x":16.25,"y":4.25},
+ {"label":"k50","x":0,"y":5.25,"w":1.25},{"label":"k51","x":1.25,"y":5.25,"w":1.25},{"label":"k53","x":2.5,"y":5.25,"w":1.25},{"label":"k56","x":3.75,"y":5.25,"w":6.25},{"label":"k5a","x":10,"y":5.25,"w":1.25},{"label":"k5b","x":11.25,"y":5.25,"w":1.25},{"label":"k5d","x":12.5,"y":5.25,"w":1.25},{"label":"k5e","x":13.75,"y":5.25,"w":1.25},{"label":"5f","x":15.25,"y":5.25},{"label":"k5g","x":16.25,"y":5.25},{"label":"k5h","x":17.25,"y":5.25}]
+ },
+ "LAYOUT_tkl_ansi_tsangan": {
+ "layout":[
+ {"label":"k00","x":0,"y":0},{"label":"k02","x":2,"y":0},{"label":"k03","x":3,"y":0},{"label":"k04","x":4,"y":0},{"label":"k05","x":5,"y":0},{"label":"k07","x":6.5,"y":0},{"label":"k08","x":7.5,"y":0},{"label":"k09","x":8.5,"y":0},{"label":"k0a","x":9.5,"y":0},{"label":"k0b","x":11,"y":0},{"label":"k0c","x":12,"y":0},{"label":"k0d","x":13,"y":0},{"label":"k0e","x":14,"y":0},{"label":"k0f","x":15.25,"y":0},{"label":"k0g","x":16.25,"y":0},{"label":"k0h","x":17.25,"y":0},
+ {"label":"k10","x":0,"y":1.25},{"label":"k11","x":1,"y":1.25},{"label":"k12","x":2,"y":1.25},{"label":"k13","x":3,"y":1.25},{"label":"k14","x":4,"y":1.25},{"label":"k15","x":5,"y":1.25},{"label":"k16","x":6,"y":1.25},{"label":"k17","x":7,"y":1.25},{"label":"k18","x":8,"y":1.25},{"label":"k19","x":9,"y":1.25},{"label":"k1a","x":10,"y":1.25},{"label":"k1b","x":11,"y":1.25},{"label":"k1c","x":12,"y":1.25},{"label":"k1d","x":13,"y":1.25,"w":2},{"label":"k1f","x":15.25,"y":1.25},{"label":"k1g","x":16.25,"y":1.25},{"label":"k1h","x":17.25,"y":1.25},
+ {"label":"k20","x":0,"y":2.25,"w":1.5},{"label":"k22","x":1.5,"y":2.25},{"label":"k23","x":2.5,"y":2.25},{"label":"k24","x":3.5,"y":2.25},{"label":"k25","x":4.5,"y":2.25},{"label":"k26","x":5.5,"y":2.25},{"label":"k27","x":6.5,"y":2.25},{"label":"k28","x":7.5,"y":2.25},{"label":"k29","x":8.5,"y":2.25},{"label":"k2a","x":9.5,"y":2.25},{"label":"k2b","x":10.5,"y":2.25},{"label":"k2c","x":11.5,"y":2.25},{"label":"k2d","x":12.5,"y":2.25},{"label":"k2e","x":13.5,"y":2.25,"w":1.5},{"label":"k2f","x":15.25,"y":2.25},{"label":"k2g","x":16.25,"y":2.25},{"label":"k2h","x":17.25,"y":2.25},
+ {"label":"k30","x":0,"y":3.25,"w":1.75},{"label":"k32","x":1.75,"y":3.25},{"label":"k33","x":2.75,"y":3.25},{"label":"k34","x":3.75,"y":3.25},{"label":"k35","x":4.75,"y":3.25},{"label":"k36","x":5.75,"y":3.25},{"label":"k37","x":6.75,"y":3.25},{"label":"k38","x":7.75,"y":3.25},{"label":"k39","x":8.75,"y":3.25},{"label":"k3a","x":9.75,"y":3.25},{"label":"k3b","x":10.75,"y":3.25},{"label":"k3c","x":11.75,"y":3.25},{"label":"k3d","x":12.75,"y":3.25,"w":2.25},
+ {"label":"k41","x":0,"y":4.25,"w":2.25},{"label":"k42","x":2.25,"y":4.25},{"label":"k43","x":3.25,"y":4.25},{"label":"k44","x":4.25,"y":4.25},{"label":"k45","x":5.25,"y":4.25},{"label":"k46","x":6.25,"y":4.25},{"label":"k47","x":7.25,"y":4.25},{"label":"k48","x":8.25,"y":4.25},{"label":"k49","x":9.25,"y":4.25},{"label":"k4a","x":10.25,"y":4.25},{"label":"k4b","x":11.25,"y":4.25},{"label":"k4d","x":12.25,"y":4.25,"w":2.75},{"label":"k4g","x":16.25,"y":4.25},
+ {"label":"k50","x":0,"y":5.25,"w":1.5},{"label":"k51","x":1.5,"y":5.25},{"label":"k53","x":2.5,"y":5.25,"w":1.5},{"label":"k56","x":4,"y":5.25,"w":7},{"label":"k5b","x":11,"y":5.25,"w":1.5},{"label":"k5d","x":12.5,"y":5.25},{"label":"k5e","x":13.5,"y":5.25,"w":1.5},{"label":"5f","x":15.25,"y":5.25},{"label":"k5g","x":16.25,"y":5.25},{"label":"k5h","x":17.25,"y":5.25}]
+ },
+ "LAYOUT_tkl_iso": {
+ "layout":[
+ {"label":"k00","x":0,"y":0},{"label":"k02","x":2,"y":0},{"label":"k03","x":3,"y":0},{"label":"k04","x":4,"y":0},{"label":"k05","x":5,"y":0},{"label":"k07","x":6.5,"y":0},{"label":"k08","x":7.5,"y":0},{"label":"k09","x":8.5,"y":0},{"label":"k0a","x":9.5,"y":0},{"label":"k0b","x":11,"y":0},{"label":"k0c","x":12,"y":0},{"label":"k0d","x":13,"y":0},{"label":"k0e","x":14,"y":0},{"label":"k0f","x":15.25,"y":0},{"label":"k0g","x":16.25,"y":0},{"label":"k0h","x":17.25,"y":0},
+ {"label":"k10","x":0,"y":1.25},{"label":"k11","x":1,"y":1.25},{"label":"k12","x":2,"y":1.25},{"label":"k13","x":3,"y":1.25},{"label":"k14","x":4,"y":1.25},{"label":"k15","x":5,"y":1.25},{"label":"k16","x":6,"y":1.25},{"label":"k17","x":7,"y":1.25},{"label":"k18","x":8,"y":1.25},{"label":"k19","x":9,"y":1.25},{"label":"k1a","x":10,"y":1.25},{"label":"k1b","x":11,"y":1.25},{"label":"k1c","x":12,"y":1.25},{"label":"k1d","x":13,"y":1.25,"w":2},{"label":"k1f","x":15.25,"y":1.25},{"label":"k1g","x":16.25,"y":1.25},{"label":"k1h","x":17.25,"y":1.25},
+ {"label":"k20","x":0,"y":2.25,"w":1.5},{"label":"k22","x":1.5,"y":2.25},{"label":"k23","x":2.5,"y":2.25},{"label":"k24","x":3.5,"y":2.25},{"label":"k25","x":4.5,"y":2.25},{"label":"k26","x":5.5,"y":2.25},{"label":"k27","x":6.5,"y":2.25},{"label":"k28","x":7.5,"y":2.25},{"label":"k29","x":8.5,"y":2.25},{"label":"k2a","x":9.5,"y":2.25},{"label":"k2b","x":10.5,"y":2.25},{"label":"k2c","x":11.5,"y":2.25},{"label":"k2d","x":12.5,"y":2.25},{"label":"k2e","x":13.75,"y":2.25,"w":1.25,"h":2},{"label":"k2f","x":15.25,"y":2.25},{"label":"k2g","x":16.25,"y":2.25},{"label":"k2h","x":17.25,"y":2.25},
+ {"label":"k30","x":0,"y":3.25,"w":1.75},{"label":"k32","x":1.75,"y":3.25},{"label":"k33","x":2.75,"y":3.25},{"label":"k34","x":3.75,"y":3.25},{"label":"k35","x":4.75,"y":3.25},{"label":"k36","x":5.75,"y":3.25},{"label":"k37","x":6.75,"y":3.25},{"label":"k38","x":7.75,"y":3.25},{"label":"k39","x":8.75,"y":3.25},{"label":"k3a","x":9.75,"y":3.25},{"label":"k3b","x":10.75,"y":3.25},{"label":"k3c","x":11.75,"y":3.25},{"label":"k3d","x":12.75,"y":3.25},
+ {"label":"k40","x":0,"y":4.25,"w":1.25},{"label":"k41","x":1.24,"y":4.25},{"label":"k42","x":2.25,"y":4.25},{"label":"k43","x":3.25,"y":4.25},{"label":"k44","x":4.25,"y":4.25},{"label":"k45","x":5.25,"y":4.25},{"label":"k46","x":6.25,"y":4.25},{"label":"k47","x":7.25,"y":4.25},{"label":"k48","x":8.25,"y":4.25},{"label":"k49","x":9.25,"y":4.25},{"label":"k4a","x":10.25,"y":4.25},{"label":"k4b","x":11.25,"y":4.25},{"label":"k4d","x":12.25,"y":4.25,"w":2.75},{"label":"k4g","x":16.25,"y":4.25},
+ {"label":"k50","x":0,"y":5.25,"w":1.25},{"label":"k51","x":1.25,"y":5.25,"w":1.25},{"label":"k53","x":2.5,"y":5.25,"w":1.25},{"label":"k56","x":3.75,"y":5.25,"w":6.25},{"label":"k5a","x":10,"y":5.25,"w":1.25},{"label":"k5b","x":11.25,"y":5.25,"w":1.25},{"label":"k5d","x":12.5,"y":5.25,"w":1.25},{"label":"k5e","x":13.75,"y":5.25,"w":1.25},{"label":"5f","x":15.25,"y":5.25},{"label":"k5g","x":16.25,"y":5.25},{"label":"k5h","x":17.25,"y":5.25}]
+ },
+ "LAYOUT_tkl_iso_tsangan": {
+ "layout":[
+ {"label":"k00","x":0,"y":0},{"label":"k02","x":2,"y":0},{"label":"k03","x":3,"y":0},{"label":"k04","x":4,"y":0},{"label":"k05","x":5,"y":0},{"label":"k07","x":6.5,"y":0},{"label":"k08","x":7.5,"y":0},{"label":"k09","x":8.5,"y":0},{"label":"k0a","x":9.5,"y":0},{"label":"k0b","x":11,"y":0},{"label":"k0c","x":12,"y":0},{"label":"k0d","x":13,"y":0},{"label":"k0e","x":14,"y":0},{"label":"k0f","x":15.25,"y":0},{"label":"k0g","x":16.25,"y":0},{"label":"k0h","x":17.25,"y":0},
+ {"label":"k10","x":0,"y":1.25},{"label":"k11","x":1,"y":1.25},{"label":"k12","x":2,"y":1.25},{"label":"k13","x":3,"y":1.25},{"label":"k14","x":4,"y":1.25},{"label":"k15","x":5,"y":1.25},{"label":"k16","x":6,"y":1.25},{"label":"k17","x":7,"y":1.25},{"label":"k18","x":8,"y":1.25},{"label":"k19","x":9,"y":1.25},{"label":"k1a","x":10,"y":1.25},{"label":"k1b","x":11,"y":1.25},{"label":"k1c","x":12,"y":1.25},{"label":"k1d","x":13,"y":1.25,"w":2},{"label":"k1f","x":15.25,"y":1.25},{"label":"k1g","x":16.25,"y":1.25},{"label":"k1h","x":17.25,"y":1.25},
+ {"label":"k20","x":0,"y":2.25,"w":1.5},{"label":"k22","x":1.5,"y":2.25},{"label":"k23","x":2.5,"y":2.25},{"label":"k24","x":3.5,"y":2.25},{"label":"k25","x":4.5,"y":2.25},{"label":"k26","x":5.5,"y":2.25},{"label":"k27","x":6.5,"y":2.25},{"label":"k28","x":7.5,"y":2.25},{"label":"k29","x":8.5,"y":2.25},{"label":"k2a","x":9.5,"y":2.25},{"label":"k2b","x":10.5,"y":2.25},{"label":"k2c","x":11.5,"y":2.25},{"label":"k2d","x":12.5,"y":2.25},{"label":"k2e","x":13.75,"y":2.25,"w":1.25,"h":2},{"label":"k2f","x":15.25,"y":2.25},{"label":"k2g","x":16.25,"y":2.25},{"label":"k2h","x":17.25,"y":2.25},
+ {"label":"k30","x":0,"y":3.25,"w":1.75},{"label":"k32","x":1.75,"y":3.25},{"label":"k33","x":2.75,"y":3.25},{"label":"k34","x":3.75,"y":3.25},{"label":"k35","x":4.75,"y":3.25},{"label":"k36","x":5.75,"y":3.25},{"label":"k37","x":6.75,"y":3.25},{"label":"k38","x":7.75,"y":3.25},{"label":"k39","x":8.75,"y":3.25},{"label":"k3a","x":9.75,"y":3.25},{"label":"k3b","x":10.75,"y":3.25},{"label":"k3c","x":11.75,"y":3.25},{"label":"k3d","x":12.75,"y":3.25},
+ {"label":"k40","x":0,"y":4.25,"w":1.25},{"label":"k41","x":1.24,"y":4.25},{"label":"k42","x":2.25,"y":4.25},{"label":"k43","x":3.25,"y":4.25},{"label":"k44","x":4.25,"y":4.25},{"label":"k45","x":5.25,"y":4.25},{"label":"k46","x":6.25,"y":4.25},{"label":"k47","x":7.25,"y":4.25},{"label":"k48","x":8.25,"y":4.25},{"label":"k49","x":9.25,"y":4.25},{"label":"k4a","x":10.25,"y":4.25},{"label":"k4b","x":11.25,"y":4.25},{"label":"k4d","x":12.25,"y":4.25,"w":2.75},{"label":"k4g","x":16.25,"y":4.25},
+ {"label":"k50","x":0,"y":5.25,"w":1.5},{"label":"k51","x":1.5,"y":5.25},{"label":"k53","x":2.5,"y":5.25,"w":1.5},{"label":"k56","x":4,"y":5.25,"w":7},{"label":"k5b","x":11,"y":5.25,"w":1.5},{"label":"k5d","x":12.5,"y":5.25},{"label":"k5e","x":13.5,"y":5.25,"w":1.5},{"label":"5f","x":15.25,"y":5.25},{"label":"k5g","x":16.25,"y":5.25},{"label":"k5h","x":17.25,"y":5.25}]
+ },
+ "LAYOUT_tkl_iso_split_bs": {
+ "layout":[
+ {"label":"k00","x":0,"y":0},{"label":"k02","x":2,"y":0},{"label":"k03","x":3,"y":0},{"label":"k04","x":4,"y":0},{"label":"k05","x":5,"y":0},{"label":"k07","x":6.5,"y":0},{"label":"k08","x":7.5,"y":0},{"label":"k09","x":8.5,"y":0},{"label":"k0a","x":9.5,"y":0},{"label":"k0b","x":11,"y":0},{"label":"k0c","x":12,"y":0},{"label":"k0d","x":13,"y":0},{"label":"k0e","x":14,"y":0},{"label":"k0f","x":15.25,"y":0},{"label":"k0g","x":16.25,"y":0},{"label":"k0h","x":17.25,"y":0},
+ {"label":"k10","x":0,"y":1.25},{"label":"k11","x":1,"y":1.25},{"label":"k12","x":2,"y":1.25},{"label":"k13","x":3,"y":1.25},{"label":"k14","x":4,"y":1.25},{"label":"k15","x":5,"y":1.25},{"label":"k16","x":6,"y":1.25},{"label":"k17","x":7,"y":1.25},{"label":"k18","x":8,"y":1.25},{"label":"k19","x":9,"y":1.25},{"label":"k1a","x":10,"y":1.25},{"label":"k1b","x":11,"y":1.25},{"label":"k1c","x":12,"y":1.25},{"label":"k1d","x":13,"y":1.25},{"label":"k1e","x":14,"y":1.25},{"label":"k1f","x":15.25,"y":1.25},{"label":"k1g","x":16.25,"y":1.25},{"label":"k1h","x":17.25,"y":1.25},
+ {"label":"k20","x":0,"y":2.25,"w":1.5},{"label":"k22","x":1.5,"y":2.25},{"label":"k23","x":2.5,"y":2.25},{"label":"k24","x":3.5,"y":2.25},{"label":"k25","x":4.5,"y":2.25},{"label":"k26","x":5.5,"y":2.25},{"label":"k27","x":6.5,"y":2.25},{"label":"k28","x":7.5,"y":2.25},{"label":"k29","x":8.5,"y":2.25},{"label":"k2a","x":9.5,"y":2.25},{"label":"k2b","x":10.5,"y":2.25},{"label":"k2c","x":11.5,"y":2.25},{"label":"k2d","x":12.5,"y":2.25},{"label":"k2e","x":13.75,"y":2.25,"w":1.25,"h":2},{"label":"k2f","x":15.25,"y":2.25},{"label":"k2g","x":16.25,"y":2.25},{"label":"k2h","x":17.25,"y":2.25},
+ {"label":"k30","x":0,"y":3.25,"w":1.75},{"label":"k32","x":1.75,"y":3.25},{"label":"k33","x":2.75,"y":3.25},{"label":"k34","x":3.75,"y":3.25},{"label":"k35","x":4.75,"y":3.25},{"label":"k36","x":5.75,"y":3.25},{"label":"k37","x":6.75,"y":3.25},{"label":"k38","x":7.75,"y":3.25},{"label":"k39","x":8.75,"y":3.25},{"label":"k3a","x":9.75,"y":3.25},{"label":"k3b","x":10.75,"y":3.25},{"label":"k3c","x":11.75,"y":3.25},{"label":"k3d","x":12.75,"y":3.25},
+ {"label":"k40","x":0,"y":4.25,"w":1.25},{"label":"k41","x":1.24,"y":4.25},{"label":"k42","x":2.25,"y":4.25},{"label":"k43","x":3.25,"y":4.25},{"label":"k44","x":4.25,"y":4.25},{"label":"k45","x":5.25,"y":4.25},{"label":"k46","x":6.25,"y":4.25},{"label":"k47","x":7.25,"y":4.25},{"label":"k48","x":8.25,"y":4.25},{"label":"k49","x":9.25,"y":4.25},{"label":"k4a","x":10.25,"y":4.25},{"label":"k4b","x":11.25,"y":4.25},{"label":"k4d","x":12.25,"y":4.25,"w":2.75},{"label":"k4g","x":16.25,"y":4.25},
+ {"label":"k50","x":0,"y":5.25,"w":1.25},{"label":"k51","x":1.25,"y":5.25,"w":1.25},{"label":"k53","x":2.5,"y":5.25,"w":1.25},{"label":"k56","x":3.75,"y":5.25,"w":6.25},{"label":"k5a","x":10,"y":5.25,"w":1.25},{"label":"k5b","x":11.25,"y":5.25,"w":1.25},{"label":"k5d","x":12.5,"y":5.25,"w":1.25},{"label":"k5e","x":13.75,"y":5.25,"w":1.25},{"label":"5f","x":15.25,"y":5.25},{"label":"k5g","x":16.25,"y":5.25},{"label":"k5h","x":17.25,"y":5.25}]
+ },
+ "LAYOUT_tkl_iso_split_rshift": {
+ "layout":[
+ {"label":"k00","x":0,"y":0},{"label":"k02","x":2,"y":0},{"label":"k03","x":3,"y":0},{"label":"k04","x":4,"y":0},{"label":"k05","x":5,"y":0},{"label":"k07","x":6.5,"y":0},{"label":"k08","x":7.5,"y":0},{"label":"k09","x":8.5,"y":0},{"label":"k0a","x":9.5,"y":0},{"label":"k0b","x":11,"y":0},{"label":"k0c","x":12,"y":0},{"label":"k0d","x":13,"y":0},{"label":"k0e","x":14,"y":0},{"label":"k0f","x":15.25,"y":0},{"label":"k0g","x":16.25,"y":0},{"label":"k0h","x":17.25,"y":0},
+ {"label":"k10","x":0,"y":1.25},{"label":"k11","x":1,"y":1.25},{"label":"k12","x":2,"y":1.25},{"label":"k13","x":3,"y":1.25},{"label":"k14","x":4,"y":1.25},{"label":"k15","x":5,"y":1.25},{"label":"k16","x":6,"y":1.25},{"label":"k17","x":7,"y":1.25},{"label":"k18","x":8,"y":1.25},{"label":"k19","x":9,"y":1.25},{"label":"k1a","x":10,"y":1.25},{"label":"k1b","x":11,"y":1.25},{"label":"k1c","x":12,"y":1.25},{"label":"k1d","x":13,"y":1.25,"w":2},{"label":"k1f","x":15.25,"y":1.25},{"label":"k1g","x":16.25,"y":1.25},{"label":"k1h","x":17.25,"y":1.25},
+ {"label":"k20","x":0,"y":2.25,"w":1.5},{"label":"k22","x":1.5,"y":2.25},{"label":"k23","x":2.5,"y":2.25},{"label":"k24","x":3.5,"y":2.25},{"label":"k25","x":4.5,"y":2.25},{"label":"k26","x":5.5,"y":2.25},{"label":"k27","x":6.5,"y":2.25},{"label":"k28","x":7.5,"y":2.25},{"label":"k29","x":8.5,"y":2.25},{"label":"k2a","x":9.5,"y":2.25},{"label":"k2b","x":10.5,"y":2.25},{"label":"k2c","x":11.5,"y":2.25},{"label":"k2d","x":12.5,"y":2.25},{"label":"k2e","x":13.75,"y":2.25,"w":1.25,"h":2},{"label":"k2f","x":15.25,"y":2.25},{"label":"k2g","x":16.25,"y":2.25},{"label":"k2h","x":17.25,"y":2.25},
+ {"label":"k30","x":0,"y":3.25,"w":1.75},{"label":"k32","x":1.75,"y":3.25},{"label":"k33","x":2.75,"y":3.25},{"label":"k34","x":3.75,"y":3.25},{"label":"k35","x":4.75,"y":3.25},{"label":"k36","x":5.75,"y":3.25},{"label":"k37","x":6.75,"y":3.25},{"label":"k38","x":7.75,"y":3.25},{"label":"k39","x":8.75,"y":3.25},{"label":"k3a","x":9.75,"y":3.25},{"label":"k3b","x":10.75,"y":3.25},{"label":"k3c","x":11.75,"y":3.25},{"label":"k3d","x":12.75,"y":3.25},
+ {"label":"k40","x":0,"y":4.25,"w":1.25},{"label":"k41","x":1.25,"y":4.25},{"label":"k42","x":2.25,"y":4.25},{"label":"k43","x":3.25,"y":4.25},{"label":"k44","x":4.25,"y":4.25},{"label":"k45","x":5.25,"y":4.25},{"label":"k46","x":6.25,"y":4.25},{"label":"k47","x":7.25,"y":4.25},{"label":"k48","x":8.25,"y":4.25},{"label":"k49","x":9.25,"y":4.25},{"label":"k4a","x":10.25,"y":4.25},{"label":"k4b","x":11.25,"y":4.25},{"label":"k4d","x":12.25,"y":4.25,"w":1.75},{"label":"k4e","x":14,"y":4.25},{"label":"k4g","x":16.25,"y":4.25},
+ {"label":"k50","x":0,"y":5.25,"w":1.25},{"label":"k51","x":1.25,"y":5.25,"w":1.25},{"label":"k53","x":2.5,"y":5.25,"w":1.25},{"label":"k56","x":3.75,"y":5.25,"w":6.25},{"label":"k5a","x":10,"y":5.25,"w":1.25},{"label":"k5b","x":11.25,"y":5.25,"w":1.25},{"label":"k5d","x":12.5,"y":5.25,"w":1.25},{"label":"k5e","x":13.75,"y":5.25,"w":1.25},{"label":"5f","x":15.25,"y":5.25},{"label":"k5g","x":16.25,"y":5.25},{"label":"k5h","x":17.25,"y":5.25}]
+ }
+ }
+}
diff --git a/keyboards/eniigmakeyboards/ek87/keymaps/default/keymap.c b/keyboards/eniigmakeyboards/ek87/keymaps/default/keymap.c
new file mode 100644
index 0000000000..563bb818a8
--- /dev/null
+++ b/keyboards/eniigmakeyboards/ek87/keymaps/default/keymap.c
@@ -0,0 +1,12 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_tkl_ansi(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ )
+};
diff --git a/keyboards/eniigmakeyboards/ek87/keymaps/via/keymap.c b/keyboards/eniigmakeyboards/ek87/keymaps/via/keymap.c
new file mode 100644
index 0000000000..1a69d05023
--- /dev/null
+++ b/keyboards/eniigmakeyboards/ek87/keymaps/via/keymap.c
@@ -0,0 +1,36 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_TRNS, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [3] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+};
diff --git a/keyboards/eniigmakeyboards/ek87/keymaps/via/rules.mk b/keyboards/eniigmakeyboards/ek87/keymaps/via/rules.mk
new file mode 100644
index 0000000000..1e5b99807c
--- /dev/null
+++ b/keyboards/eniigmakeyboards/ek87/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/eniigmakeyboards/ek87/readme.md b/keyboards/eniigmakeyboards/ek87/readme.md
new file mode 100644
index 0000000000..49966ba3b8
--- /dev/null
+++ b/keyboards/eniigmakeyboards/ek87/readme.md
@@ -0,0 +1,17 @@
+# Eniigma Keyboards ek87
+
+![ek87](https://i.imgur.com/lmZYr1Pl.jpg)
+
+A highly compatible TKL PCB with JST daughterboard support, designed for use with all tenkeyless Eniigma Keyboards products.
+
+![layout](https://i.imgur.com/FNYcAEP.png)
+
+* Keyboard Maintainer: [eniigmakeyboards](https://github.com/eniigmakeyboards) and [adamws](https://github.com/adamws)
+* Hardware Supported: Infinitum PCB/case, all future Eniigma Keyboards TKL products
+* Hardware Availability: On the [Eniigma Keyboards website](https://eniigmakeyboards.com/collections/infinitum/products/ek87-pcb-preorder)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make eniigmakeyboards/ek87:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/eniigmakeyboards/ek87/rules.mk b/keyboards/eniigmakeyboards/ek87/rules.mk
new file mode 100644
index 0000000000..dfe300fae0
--- /dev/null
+++ b/keyboards/eniigmakeyboards/ek87/rules.mk
@@ -0,0 +1,32 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/ergodox_ez/led_i2c.c b/keyboards/ergodox_ez/led_i2c.c
index 7c1ccdec5a..f5553a8b61 100644
--- a/keyboards/ergodox_ez/led_i2c.c
+++ b/keyboards/ergodox_ez/led_i2c.c
@@ -22,31 +22,11 @@
*/
#ifdef RGBLIGHT_ENABLE
-# include "ws2812.c"
# include "ergodox_ez.h"
extern rgblight_config_t rgblight_config;
-void rgblight_set(void) {
- if (!rgblight_config.enable) {
- for (uint8_t i = 0; i < RGBLED_NUM; i++) {
- led[i].r = 0;
- led[i].g = 0;
- led[i].b = 0;
-#ifdef RGBW
- led[i].w = 0;
-#endif
- }
- }
-#ifdef RGBW
- else {
- for (uint8_t i = 0; i < RGBLED_NUM; i++) {
- convert_rgb_to_rgbw(&led[i]);
- }
- }
-#endif
-
- uint8_t led_num = RGBLED_NUM;
+void rgblight_call_driver(LED_TYPE *led, uint8_t led_num) {
i2c_init();
i2c_start(0x84, ERGODOX_EZ_I2C_TIMEOUT);
int i = 0;
@@ -54,8 +34,8 @@ void rgblight_set(void) {
// prevent right-half code from trying to bitbang all 30
// so with 30 LEDs, we count from 29 to 15 here, and the
// other half does 0 to 14.
- led_num = RGBLED_NUM / 2;
- for (i = led_num + led_num - 1; i >= led_num; --i)
+ uint8_t half_led_num = RGBLED_NUM / 2;
+ for (i = half_led_num + half_led_num - 1; i >= half_led_num; --i)
# elif defined(ERGODOX_LED_15_MIRROR)
for (i = 0; i < led_num; ++i)
# else // ERGDOX_LED_15 non-mirrored
@@ -72,7 +52,7 @@ void rgblight_set(void) {
}
i2c_stop();
- ws2812_setleds(led, RGBLED_NUM);
+ ws2812_setleds(led, led_num);
}
diff --git a/keyboards/ergodox_ez/rules.mk b/keyboards/ergodox_ez/rules.mk
index 617ffea857..579e4f59de 100644
--- a/keyboards/ergodox_ez/rules.mk
+++ b/keyboards/ergodox_ez/rules.mk
@@ -31,7 +31,6 @@ SWAP_HANDS_ENABLE= yes # Allow swapping hands of keyboard
SLEEP_LED_ENABLE = no
API_SYSEX_ENABLE = no
RGBLIGHT_ENABLE = yes
-RGBLIGHT_CUSTOM_DRIVER = yes
RGB_MATRIX_ENABLE = no # enable later
DEBOUNCE_TYPE = eager_pr
diff --git a/keyboards/eve/meteor/rules.mk b/keyboards/eve/meteor/rules.mk
index a0ffab2901..93bb0a56eb 100644
--- a/keyboards/eve/meteor/rules.mk
+++ b/keyboards/eve/meteor/rules.mk
@@ -20,5 +20,3 @@ COMMAND_ENABLE = yes
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = no
WS2812_DRIVER = i2c
-
-OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/exclusive/e6v2/le_bmc/info.json b/keyboards/exclusive/e6v2/le_bmc/info.json
index aa6d171ba8..413db8abca 100644
--- a/keyboards/exclusive/e6v2/le_bmc/info.json
+++ b/keyboards/exclusive/e6v2/le_bmc/info.json
@@ -6,7 +6,7 @@
"height": 5,
"layouts": {
"LAYOUT_all": {
- "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.26}, {"x":10.0, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}]
+ "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10.0, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}]
},
"LAYOUT_60_ansi": {
@@ -21,4 +21,4 @@
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.5}, {"x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"x":11, "y":4, "w":1.5}, {"x":12.5, "y":4}, {"x":13.5, "y":4, "w":1.5}]
}
}
-} \ No newline at end of file
+}
diff --git a/keyboards/exclusive/e6v2/le_bmc/rules.mk b/keyboards/exclusive/e6v2/le_bmc/rules.mk
index 9fe162b893..a5e8b449ee 100644
--- a/keyboards/exclusive/e6v2/le_bmc/rules.mk
+++ b/keyboards/exclusive/e6v2/le_bmc/rules.mk
@@ -32,5 +32,3 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
HD44780_ENABLE = no # Enable support for HD44780 based LCDs
-
-OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/exclusive/e6v2/oe_bmc/info.json b/keyboards/exclusive/e6v2/oe_bmc/info.json
index aa6d171ba8..413db8abca 100644
--- a/keyboards/exclusive/e6v2/oe_bmc/info.json
+++ b/keyboards/exclusive/e6v2/oe_bmc/info.json
@@ -6,7 +6,7 @@
"height": 5,
"layouts": {
"LAYOUT_all": {
- "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.26}, {"x":10.0, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}]
+ "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10.0, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}]
},
"LAYOUT_60_ansi": {
@@ -21,4 +21,4 @@
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.5}, {"x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"x":11, "y":4, "w":1.5}, {"x":12.5, "y":4}, {"x":13.5, "y":4, "w":1.5}]
}
}
-} \ No newline at end of file
+}
diff --git a/keyboards/exclusive/e6v2/oe_bmc/rules.mk b/keyboards/exclusive/e6v2/oe_bmc/rules.mk
index 9fe162b893..a5e8b449ee 100644
--- a/keyboards/exclusive/e6v2/oe_bmc/rules.mk
+++ b/keyboards/exclusive/e6v2/oe_bmc/rules.mk
@@ -32,5 +32,3 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
HD44780_ENABLE = no # Enable support for HD44780 based LCDs
-
-OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/exclusive/e7v1/config.h b/keyboards/exclusive/e7v1/config.h
index 689d7e8621..c8f1501250 100644
--- a/keyboards/exclusive/e7v1/config.h
+++ b/keyboards/exclusive/e7v1/config.h
@@ -3,8 +3,8 @@
#include "config_common.h"
/* USB Device descriptor parameter */
-#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0x7050
+#define VENDOR_ID 0x4558 // EX
+#define PRODUCT_ID 0xE701 // E7-V1
#define DEVICE_VER 0x0001
#define MANUFACTURER Exclusive / E-Team
#define PRODUCT E7-V1
diff --git a/keyboards/exclusive/e7v1/keymaps/via/keymap.c b/keyboards/exclusive/e7v1/keymaps/via/keymap.c
new file mode 100644
index 0000000000..2f2f9dcc4a
--- /dev/null
+++ b/keyboards/exclusive/e7v1/keymaps/via/keymap.c
@@ -0,0 +1,51 @@
+#include QMK_KEYBOARD_H
+
+/*
+ * ,---------------------------------------------------------------------|
+ * |Esc|▓|F1 |F2 |F3 |F4 |▓|F5 |F6 |F7 |F8 |▓|F9 |F10|F11|F12|▓|Ins|▓|Del|
+ * |---------------------------------------------------------------------|
+ * |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= |Backspace|▓PgU |
+ * |---------------------------------------------------------------------|
+ * |Tab |Q |W |E |R |T |Y |U |I |O |P |[ | ] | \ |▓PgDn|
+ * |---------------------------------------------------------------------|
+ * |Caps |A |S |D |F |G |H |J |K |L |; |' | Enter |▓▓▓▓▓▓▓|
+ * |---------------------------------------------------------------------|
+ * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |▓| Up |▓▓|
+ * |---------------------------------------------------------------------|
+ * |Ctrl|GUI |Alt | Space |Alt |Fn |▓|Lt |Dn |Rt |
+ * `---------------------------------------------------------------------|'
+ */
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_75_ansi(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT,KC_SLSH, KC_RSFT, KC_UP,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
+
+ [1] = LAYOUT_75_ansi(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ BL_TOGG, BL_DEC, BL_INC, KC_LGUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI,
+ _______, _______, _______, _______, _______, MO(1), RGB_MOD, RGB_VAD, RGB_HUD),
+
+ [2] = LAYOUT_75_ansi(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______),
+
+ [3] = LAYOUT_75_ansi(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______),
+};
diff --git a/keyboards/exclusive/e7v1/keymaps/via/rules.mk b/keyboards/exclusive/e7v1/keymaps/via/rules.mk
new file mode 100644
index 0000000000..36b7ba9cbc
--- /dev/null
+++ b/keyboards/exclusive/e7v1/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
diff --git a/keyboards/exclusive/e7v1/readme.md b/keyboards/exclusive/e7v1/readme.md
index 9d1b8538b4..6912f37970 100644
--- a/keyboards/exclusive/e7v1/readme.md
+++ b/keyboards/exclusive/e7v1/readme.md
@@ -4,9 +4,9 @@
A 75% keyboard made by Exclusive and run in a Geekhack group buy.
-Keyboard Maintainer: [masterzen](https://github.com/masterzen)
-Hardware Supported: E7 - V1 QMK PCB LED
-Hardware Availability: [https://geekhack.org/index.php?topic=97182.msg2654226#msg2654226](https://geekhack.org/index.php?topic=97182.msg2654226#msg2654226)
+* Keyboard Maintainer: [masterzen](https://github.com/masterzen)
+* Hardware Supported: E7-V1 QMK PCB
+* Hardware Availability: [GeekHack Group Buy in 2018](https://geekhack.org/index.php?topic=97182.msg2654226#msg2654226)
Make example for this keyboard (after setting up your build environment):
diff --git a/keyboards/exent/rules.mk b/keyboards/exent/rules.mk
index 4f41257326..0bafc86814 100644
--- a/keyboards/exent/rules.mk
+++ b/keyboards/exent/rules.mk
@@ -21,6 +21,4 @@ BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
-OPT_DEFS = -DDEBUG_LEVEL=0
-
LAYOUTS = 65_ansi 65_iso
diff --git a/keyboards/facew/rules.mk b/keyboards/facew/rules.mk
index 81cfb758c0..72ccebf874 100644
--- a/keyboards/facew/rules.mk
+++ b/keyboards/facew/rules.mk
@@ -21,6 +21,4 @@ BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
-OPT_DEFS = -DDEBUG_LEVEL=0
-
LAYOUTS = 60_ansi
diff --git a/keyboards/flx/lodestone/info.json b/keyboards/flx/lodestone/info.json
index f52249126d..4d32bf37ca 100644
--- a/keyboards/flx/lodestone/info.json
+++ b/keyboards/flx/lodestone/info.json
@@ -68,7 +68,7 @@
{"label":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75},
{"label":"K3E (F1,C6)", "x":14, "y":3},
{"label":"K3F (F1,C7)", "x":15, "y":3},
- {"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.225},
+ {"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.25},
{"label":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25},
{"label":"K42 (F4,F6)", "x":2.5, "y":4, "w":1.25},
{"label":"K46 (F4,D3)", "x":3.75, "y":4, "w":6.25},
@@ -139,7 +139,7 @@
{"label":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75},
{"label":"K3E (F1,C6)", "x":14, "y":3},
{"label":"K3F (F1,C7)", "x":15, "y":3},
- {"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.225},
+ {"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.25},
{"label":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25},
{"label":"K42 (F4,F6)", "x":2.5, "y":4, "w":1.25},
{"label":"K46 (F4,D3)", "x":3.75, "y":4, "w":6.25},
@@ -211,7 +211,7 @@
{"label":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75},
{"label":"K3E (F1,C6)", "x":14, "y":3},
{"label":"K3F (F1,C7)", "x":15, "y":3},
- {"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.225},
+ {"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.25},
{"label":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25},
{"label":"K42 (F4,F6)", "x":2.5, "y":4, "w":1.25},
{"label":"K46 (F4,D3)", "x":3.75, "y":4, "w":6.25},
@@ -283,7 +283,7 @@
{"label":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75},
{"label":"K3E (F1,C6)", "x":14, "y":3},
{"label":"K3F (F1,C7)", "x":15, "y":3},
- {"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.225},
+ {"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.25},
{"label":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25},
{"label":"K42 (F4,F6)", "x":2.5, "y":4, "w":1.25},
{"label":"K46 (F4,D3)", "x":3.75, "y":4, "w":6.25},
@@ -356,7 +356,7 @@
{"label":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75},
{"label":"K3E (F1,C6)", "x":14, "y":3},
{"label":"K3F (F1,C7)", "x":15, "y":3},
- {"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.225},
+ {"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.25},
{"label":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25},
{"label":"K42 (F4,F6)", "x":2.5, "y":4, "w":1.25},
{"label":"K46 (F4,D3)", "x":3.75, "y":4, "w":6.25},
diff --git a/keyboards/ft/mars80/rules.mk b/keyboards/ft/mars80/rules.mk
index e3f2c93ce3..2cd6281537 100644
--- a/keyboards/ft/mars80/rules.mk
+++ b/keyboards/ft/mars80/rules.mk
@@ -21,6 +21,4 @@ BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
-OPT_DEFS = -DDEBUG_LEVEL=0
-
LAYOUTS = tkl_ansi tkl_iso
diff --git a/keyboards/funky40/keymaps/default/keymap.c b/keyboards/funky40/keymaps/default/keymap.c
index fff5a820bf..7fbdb7f00d 100644
--- a/keyboards/funky40/keymaps/default/keymap.c
+++ b/keyboards/funky40/keymaps/default/keymap.c
@@ -19,14 +19,14 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
LAYOUT(
- KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_DOT, KC_DOT, KC_SLSH, KC_SFTENT,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, LT(1, KC_DEL), KC_SPC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT),
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_SFTENT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, LT(1, KC_DEL), KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT),
LAYOUT(
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_UNDS, KC_PLUS,
- KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F11, KC_F12, KC_LBRC, KC_RBRC,
- RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLU, KC_VOLD, KC_MNXT),
+ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, KC_PLUS,
+ KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_LBRC, KC_RBRC,
+ RESET, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_MPLY, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT),
};
diff --git a/keyboards/gboards/combos/_generator/input.json b/keyboards/gboards/combos/_generator/input.json
new file mode 100644
index 0000000000..022c4690e7
--- /dev/null
+++ b/keyboards/gboards/combos/_generator/input.json
@@ -0,0 +1,99 @@
+{
+"the ":"TH",
+"of ":"OF",
+"and ":"ND",
+"to ":"TO",
+"in ":"IN",
+"for ":"FR",
+"is ":"IS",
+"on ":"ON",
+"that ":"TA",
+"by ":"BY",
+"this ":"TS",
+"with ":"WT",
+"you ":"YU",
+"it ":"IT",
+"not ":"NT",
+"or ":"OR",
+"be ":"BE",
+"are ":"AR",
+"from ":"FE",
+"at ":"AD",
+"as ":"AS",
+"your ":"UR",
+"all ":"AL",
+"have ":"HV",
+"new ":"NU",
+"more ":"MR",
+"an ":"AN",
+"was ":"WS",
+"we ":"WI",
+"will ":"WL",
+"home ":"HM",
+"can ":"CN",
+"us ":"US",
+"about ":"AB",
+"if ":"IF",
+"page ":"PG",
+"my ":"MK",
+"has ":"HS",
+"search ":"SR",
+"free ":"FH",
+"but ":"BU",
+"our ":"OU",
+"one ":"WU",
+"other ":"OH",
+"do ":"DO",
+"no ":"NK",
+"information ":"IR",
+"time ":"TM",
+"they ":"TY",
+"site ":"SY",
+"he ":"HE",
+"up ":"UP",
+"may ":"MA",
+"what ":"WA",
+"which ":"WH",
+"their ":"TR",
+"news ":"NS",
+"out ":"OG",
+"use ":"UE",
+"any ":"NE",
+"there ":"TE",
+"see ":"SE",
+"only ":"LY",
+"so ":"SO",
+"his ":"HI",
+"when ":"WN",
+"contact ":"KT",
+"here ":"HR",
+"business ":"BS",
+"who ":"WO",
+"web ":"WB",
+"also ":"LS",
+"now ":"NQ",
+"help ":"HL",
+"get ":"GT",
+"view ":"VU",
+"online ":"LN",
+"first ":"FS",
+"been ":"BN",
+"would ":"WD",
+"how ":"HU",
+"were ":"WR",
+"me ":"ME",
+"some ":"SM",
+"these ":"TZ",
+"click ":"CL",
+"its ":"IZ",
+"like ":"LK",
+"service ":"SV",
+"than ":"HN",
+"find ":"FN",
+"price ":"PR",
+"date ":"DT",
+"back ":"BK",
+"top ":"TP",
+"people ":"PE",
+"had ":"HD"
+}
diff --git a/keyboards/gboards/combos/_generator/main.go b/keyboards/gboards/combos/_generator/main.go
new file mode 100644
index 0000000000..043c8b78c7
--- /dev/null
+++ b/keyboards/gboards/combos/_generator/main.go
@@ -0,0 +1,60 @@
+// Package for taking a mapping of words to keys and outputing a
+// combo engine commpatible def
+
+package main
+
+import (
+ "io/ioutil"
+ "fmt"
+ "encoding/json"
+ "os"
+ "sort"
+ "strings"
+ "hash/crc64"
+ //"encoding/base64"
+)
+
+func main() {
+ // Show Usage
+ if len(os.Args) < 3 {
+ fmt.Println("Usage: ./keymap-gen inputfile outfile")
+ fmt.Println("Outputs dict in current dir")
+ return
+ }
+
+ // Read the source
+ data, err := ioutil.ReadFile(os.Args[1])
+ if err != nil {
+ panic(err)
+ }
+
+ // Unbundle Data
+ var FullDict map[string]string
+ var output []string
+ json.Unmarshal(data, &FullDict)
+
+ // Loop over entries and store
+ for i,v := range FullDict {
+ // This checks for colllisions, Generates hash
+ hash := crc64.Checksum([]byte(v), crc64.MakeTable(crc64.ECMA))
+ hashStr := fmt.Sprintf("txt_%x", hash)[:10]
+
+ // Format keys into combo
+ var keys string
+ for _, k := range(v) {
+ keys += fmt.Sprintf("KC_%v, ", string(k))
+
+ }
+ keys = keys[:len(keys)-2]
+
+ // Append to output
+ spacer := strings.Repeat(" ", 15-len(i))
+ output = append(output, fmt.Sprintf("SUBS(%v, %v\"%v\", %v)\n", hashStr, spacer, i, keys))
+ }
+
+
+ sort.Slice(output, func (i,j int) bool {
+ return strings.Count(output[i], " ") > strings.Count(output[j], " ")
+ })
+ ioutil.WriteFile(os.Args[2], []byte(strings.Join(output, "")), 0555)
+}
diff --git a/keyboards/gboards/combos/eng-combos.def b/keyboards/gboards/combos/eng-combos.def
new file mode 100644
index 0000000000..6f4a8a91e6
--- /dev/null
+++ b/keyboards/gboards/combos/eng-combos.def
@@ -0,0 +1,97 @@
+SUBS(txt_eaff0b, "me ", KC_M, KC_E)
+SUBS(txt_c96f2b, "as ", KC_A, KC_S)
+SUBS(txt_ff3afa, "we ", KC_W, KC_I)
+SUBS(txt_d94d16, "is ", KC_I, KC_S)
+SUBS(txt_7f6b3b, "he ", KC_H, KC_E)
+SUBS(txt_377110, "by ", KC_B, KC_Y)
+SUBS(txt_8d5585, "to ", KC_T, KC_O)
+SUBS(txt_888e33, "at ", KC_A, KC_D)
+SUBS(txt_ad11fe, "do ", KC_D, KC_O)
+SUBS(txt_285619, "us ", KC_U, KC_S)
+SUBS(txt_e537af, "it ", KC_I, KC_T)
+SUBS(txt_9b89bf, "in ", KC_I, KC_N)
+SUBS(txt_b11346, "so ", KC_S, KC_O)
+SUBS(txt_8bab82, "an ", KC_A, KC_N)
+SUBS(txt_6f31f3, "no ", KC_N, KC_K)
+SUBS(txt_f32605, "on ", KC_O, KC_N)
+SUBS(txt_2cce07, "or ", KC_O, KC_R)
+SUBS(txt_48782c, "of ", KC_O, KC_F)
+SUBS(txt_c69bf5, "be ", KC_B, KC_E)
+SUBS(txt_6c2838, "if ", KC_I, KC_F)
+SUBS(txt_6ffc63, "up ", KC_U, KC_P)
+SUBS(txt_920a79, "my ", KC_M, KC_K)
+SUBS(txt_f31a7f, "his ", KC_H, KC_I)
+SUBS(txt_da994d, "use ", KC_U, KC_E)
+SUBS(txt_b12f3c, "the ", KC_T, KC_H)
+SUBS(txt_4607a4, "for ", KC_F, KC_R)
+SUBS(txt_a4eacd, "and ", KC_N, KC_D)
+SUBS(txt_6a5f20, "new ", KC_N, KC_U)
+SUBS(txt_bb0054, "but ", KC_B, KC_U)
+SUBS(txt_7a4167, "are ", KC_A, KC_R)
+SUBS(txt_765d98, "you ", KC_Y, KC_U)
+SUBS(txt_ed01f2, "one ", KC_W, KC_U)
+SUBS(txt_b236f7, "see ", KC_S, KC_E)
+SUBS(txt_3eb659, "our ", KC_O, KC_U)
+SUBS(txt_2f09ac, "how ", KC_H, KC_U)
+SUBS(txt_706e0f, "who ", KC_W, KC_O)
+SUBS(txt_9dba28, "get ", KC_G, KC_T)
+SUBS(txt_3b151a, "top ", KC_T, KC_P)
+SUBS(txt_17c481, "any ", KC_N, KC_E)
+SUBS(txt_227971, "can ", KC_C, KC_N)
+SUBS(txt_4f3107, "web ", KC_W, KC_B)
+SUBS(txt_7f2fb4, "all ", KC_A, KC_L)
+SUBS(txt_8184ea, "was ", KC_W, KC_S)
+SUBS(txt_8da46f, "has ", KC_H, KC_S)
+SUBS(txt_cc4577, "had ", KC_H, KC_D)
+SUBS(txt_b7a9ce, "out ", KC_O, KC_G)
+SUBS(txt_9dc2dd, "its ", KC_I, KC_Z)
+SUBS(txt_d9716c, "not ", KC_N, KC_T)
+SUBS(txt_118fe3, "now ", KC_N, KC_Q)
+SUBS(txt_912fc8, "may ", KC_M, KC_A)
+SUBS(txt_769008, "been ", KC_B, KC_N)
+SUBS(txt_43dc12, "site ", KC_S, KC_Y)
+SUBS(txt_c6e300, "like ", KC_L, KC_K)
+SUBS(txt_bdfe53, "with ", KC_W, KC_T)
+SUBS(txt_c34043, "when ", KC_W, KC_N)
+SUBS(txt_b7ed41, "find ", KC_F, KC_N)
+SUBS(txt_f5a0f7, "that ", KC_T, KC_A)
+SUBS(txt_3be4f0, "help ", KC_H, KC_L)
+SUBS(txt_32aaa6, "were ", KC_W, KC_R)
+SUBS(txt_4cd926, "also ", KC_L, KC_S)
+SUBS(txt_be6e87, "back ", KC_B, KC_K)
+SUBS(txt_5a3966, "view ", KC_V, KC_U)
+SUBS(txt_89b7d9, "what ", KC_W, KC_A)
+SUBS(txt_4ffc97, "only ", KC_L, KC_Y)
+SUBS(txt_e50bd5, "news ", KC_N, KC_S)
+SUBS(txt_7cbf60, "this ", KC_T, KC_S)
+SUBS(txt_ab1e13, "more ", KC_M, KC_R)
+SUBS(txt_459770, "some ", KC_S, KC_M)
+SUBS(txt_37c475, "will ", KC_W, KC_L)
+SUBS(txt_88cabc, "home ", KC_H, KC_M)
+SUBS(txt_38b9b4, "free ", KC_F, KC_H)
+SUBS(txt_7f9ad1, "they ", KC_T, KC_Y)
+SUBS(txt_79d1b3, "time ", KC_T, KC_M)
+SUBS(txt_6081a2, "date ", KC_D, KC_T)
+SUBS(txt_bb894b, "page ", KC_P, KC_G)
+SUBS(txt_455ae0, "have ", KC_H, KC_V)
+SUBS(txt_cf60c6, "than ", KC_H, KC_N)
+SUBS(txt_3e8a23, "here ", KC_H, KC_R)
+SUBS(txt_9b7855, "your ", KC_U, KC_R)
+SUBS(txt_7e6bc5, "from ", KC_F, KC_E)
+SUBS(txt_d6fd47, "click ", KC_C, KC_L)
+SUBS(txt_7c72f0, "other ", KC_O, KC_H)
+SUBS(txt_f529e8, "first ", KC_F, KC_S)
+SUBS(txt_c065f2, "would ", KC_W, KC_D)
+SUBS(txt_3830ab, "these ", KC_T, KC_Z)
+SUBS(txt_cf912c, "their ", KC_T, KC_R)
+SUBS(txt_4c14b6, "which ", KC_W, KC_H)
+SUBS(txt_eec659, "price ", KC_P, KC_R)
+SUBS(txt_7dac6e, "about ", KC_A, KC_B)
+SUBS(txt_8e7034, "there ", KC_T, KC_E)
+SUBS(txt_e1d8f7, "online ", KC_L, KC_N)
+SUBS(txt_4f0d7d, "people ", KC_P, KC_E)
+SUBS(txt_f3d7ef, "search ", KC_S, KC_R)
+SUBS(txt_4ce55c, "contact ", KC_K, KC_T)
+SUBS(txt_88072c, "service ", KC_S, KC_V)
+SUBS(txt_3454a1, "business ", KC_B, KC_S)
+SUBS(txt_6a635a, "information ", KC_I, KC_R)
diff --git a/keyboards/gboards/combos/germ-mouse-keys.def b/keyboards/gboards/combos/germ-mouse-keys.def
new file mode 100644
index 0000000000..c0aff412e5
--- /dev/null
+++ b/keyboards/gboards/combos/germ-mouse-keys.def
@@ -0,0 +1,2 @@
+COMB(gbClick, KC_BTN1, KC_G, KC_B)
+COMB(fvClick, KC_BTN2, KC_F, KC_V)
diff --git a/keyboards/gboards/combos/germ-vim-helpers.def b/keyboards/gboards/combos/germ-vim-helpers.def
new file mode 100644
index 0000000000..3e2b45db16
--- /dev/null
+++ b/keyboards/gboards/combos/germ-vim-helpers.def
@@ -0,0 +1,10 @@
+// Vim-Mode combos
+
+COMB(weEsc, KC_ESC, KC_W, KC_E)
+COMB(sdBspc, KC_BSPC, KC_S, KC_D)
+COMB(dfTab, KC_TAB, KC_D, KC_F)
+COMB(cvEnt, KC_ENT, KC_C, KC_V)
+COMB(uiEsc, KC_ESC, KC_U, KC_I)
+COMB(jkCol, KC_COLN, KC_J, KC_K)
+COMB(hnEnt, KC_ENT, KC_H, KC_N)
+
diff --git a/keyboards/gboards/combos/readme.md b/keyboards/gboards/combos/readme.md
new file mode 100644
index 0000000000..ca4b169c1d
--- /dev/null
+++ b/keyboards/gboards/combos/readme.md
@@ -0,0 +1,7 @@
+# Combo library!
+
+This is a list of all the currently available dictionaries that are available for inclusion.
+Please submit a PR with yours! If you have a bunch prepend your username to the front. i.e.
+`germ-vim-helpers`
+
+Thanks!
diff --git a/keyboards/gboards/dicts/aset/_generator/main.go b/keyboards/gboards/dicts/aset/_generator/main.go
new file mode 100644
index 0000000000..ae7e15c8be
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/_generator/main.go
@@ -0,0 +1,298 @@
+package main
+
+import (
+ "io/ioutil"
+ "fmt"
+ "encoding/json"
+ "os"
+ "path/filepath"
+ "strings"
+ "sort"
+ "hash/crc64"
+ //"encoding/base64"
+)
+
+func main() {
+ // Show Usage
+ if len(os.Args) < 3 {
+ fmt.Println("Usage: ./keymap-gen src-dir out-dir")
+ fmt.Println("Outputs c files in out-dir")
+ fmt.Println("Make sure the dirs exist.")
+ return
+ }
+
+ files, err := filepath.Glob(os.Args[1] + "/*.json")
+ if err != nil {
+ fmt.Printf("Could not open src-dir: %v\n", err)
+ return
+ }
+
+ for _, fname := range(files) {
+ fmt.Println("Processing: ", fname)
+ // Read the source
+ data, err := ioutil.ReadFile(fname)
+ if err != nil {
+ panic(err)
+ }
+
+ // Unbundle Data
+ var FullDict map[string]Entry
+ json.Unmarshal(data, &FullDict)
+
+ // Loop over entries and store
+ var output []string
+ for i,v := range FullDict {
+ if i == "0" {
+ continue
+ }
+
+ // Special handling for numbermap
+ var entry string
+ if strings.Contains(fname, "num") {
+ entry = v.toKeymap("NUM|")
+ } else {
+ entry = v.toKeymap("")
+ }
+
+ if entry != "" {
+ output = append(output, entry)
+ }
+ }
+
+ // Sort by length, then amount of whitespace lol
+ sort.Slice(output, func (i,j int) bool {
+ var maxLen int
+ if len(output[i]) > len(output[j]) {
+ maxLen = len(output[i])
+ } else {
+ maxLen = len(output[j])
+ }
+
+ return maxLen-strings.Count(output[i][:40], " ") < maxLen-strings.Count(output[j][:40], " ")
+ })
+
+ // Whack a disclaimer
+ output = append([]string{"// This file is automatically generated. Do not edit it!\n\n"}, output...)
+
+ // Write all data out
+ outName := filepath.Base(fname)
+ outName = os.Args[2] + outName[:len(outName)-5]+".def"
+ fmt.Println("Saving: ", outName)
+ ioutil.WriteFile(outName, []byte(strings.Join(output, "")), 0755)
+ }
+}
+
+func (e Entry) toKeymap(prefix string) (string) {
+ // storage for parts
+ var command, chord, arg string
+ wordInfo := parseWords(e)
+
+ // Handle prefix
+ if prefix != "" {
+ chord = prefix
+ }
+
+ // Format the chord
+ keys := []string{"AA", "AS", "AE", "AT", "AN", "AI", "AO", "AP"}
+ for i, v := range e.Input {
+ chord += keys[v-1]
+
+ if i != len(e.Input)-1 {
+ chord += "|"
+ }
+ }
+
+ // Handle specials/base first
+ var ok bool
+ var v []string
+
+ if e.Special != "" {
+ v, ok = QMKLookup[e.Special]
+ }
+ if !ok && e.Base != "" {
+ v, ok = QMKLookup[e.Base]
+ }
+
+ if ok {
+ // Determine way to send key
+ if len(v) == 1 {
+ command = "PRES("
+ } else {
+ command = "KEYS("
+ }
+ }
+
+ if ok {
+ if len(v) > 1 {
+ arg += "{"
+ }
+
+ // String together args
+ for ii, vv := range(v) {
+ arg += vv
+ if ii == len(v)-1 && len(v) > 1 {
+ arg += ", COMBO_END}"
+ } else if ii != len(v)-1 {
+ arg += ", "
+ }
+ }
+
+
+ hash := crc64.Checksum([]byte(fmt.Sprintf("%v%v", arg, chord)), crc64.MakeTable(crc64.ECMA))
+ hashStr := fmt.Sprintf("cmb_%x", hash)
+ wordSpacer := strings.Repeat(" ", 42-len(arg))
+ if command == "KEYS(" {
+ arg = fmt.Sprintf("%v, %v %v", hashStr, wordSpacer, arg)
+ } else {
+ arg = fmt.Sprintf("%65v", arg)
+ }
+
+ goto Found
+ }
+
+ // Parse out word info
+ if wordInfo.LRank == 0 && wordInfo.RRank == 0 {
+ goto Blank
+ }
+
+ if wordInfo.LRank != 0 || wordInfo.RRank != 0 {
+ if wordInfo.LRank != 0 && wordInfo.RRank != 0 {
+ // Just blank the structure and recall
+ left, right := e, e
+ left.Trw = nil
+ right.Tlw = nil
+ return fmt.Sprintf("%v%v", left.toKeymap("LFT|"), right.toKeymap("RGT|"))
+ }
+
+ var word string
+ if wordInfo.LRank > wordInfo.RRank {
+ word = wordInfo.LWord
+ } else {
+ word = wordInfo.RWord
+ }
+
+ // Add in thumb
+ chord = "AR|" + chord
+
+
+ // generate function name
+ hash := crc64.Checksum([]byte(word), crc64.MakeTable(crc64.ECMA))
+ hashStr := fmt.Sprintf("str_%016X", hash)
+ command = "SUBS("
+ wordSpacer := strings.Repeat(" ", 40-len(word))
+ arg = fmt.Sprintf("%v, %v \"%v \"", hashStr, wordSpacer, word)
+ goto Found
+ }
+
+ panic(e.String())
+
+ Found:
+ chord += ","
+ return fmt.Sprintf("%v%-35v%v)\n", command, chord, arg)
+
+ Blank:
+ return ""
+}
+
+type Entry struct {
+ Input []int
+ Base string
+ Tlw []interface{}
+ Trw []interface{}
+ Special string
+}
+type Word struct {
+ LWord string
+ LRank float64
+ RWord string
+ RRank float64
+}
+
+func parseWords(e Entry) (ret Word) {
+ if len(e.Tlw) > 0 {
+ ret.LWord = e.Tlw[0].(string)
+ ret.LRank= e.Tlw[1].(float64)
+ }
+ if len(e.Trw) > 0 {
+ ret.RWord = e.Trw[0].(string)
+ ret.RRank= e.Trw[1].(float64)
+ }
+ return ret
+}
+func (e Entry) String() (ret string) {
+ ret = fmt.Sprintln("Input: ", e.Input)
+ ret += fmt.Sprintln("Base: ", e.Base)
+ ret += fmt.Sprintln("Left: ", e.Tlw)
+ ret += fmt.Sprintln("Right: ", e.Trw)
+ ret += fmt.Sprintln("Special: ", e.Special)
+
+ return ret
+}
+
+var QMKLookup = map[string][]string {
+"!":[]string{"KC_LSFT", "KC_1"},
+"'":[]string{"KC_QUOT"},
+"(":[]string{"KC_LSFT", "KC_9"},
+")":[]string{"KC_LSFT", "KC_0"},
+",":[]string{"KC_COMM"},
+"-":[]string{"KC_MINS"},
+".":[]string{"KC_DOT"},
+";":[]string{"KC_SCLN"},
+"?":[]string{"KC_QUOT"},
+"a":[]string{"KC_A"},
+"b":[]string{"KC_B"},
+"c":[]string{"KC_C"},
+"d":[]string{"KC_D"},
+"e":[]string{"KC_E"},
+"f":[]string{"KC_F"},
+"g":[]string{"KC_G"},
+"h":[]string{"KC_H"},
+"i":[]string{"KC_I"},
+"j":[]string{"KC_J"},
+"k":[]string{"KC_K"},
+"l":[]string{"KC_L"},
+"m":[]string{"KC_M"},
+"n":[]string{"KC_N"},
+"o":[]string{"KC_O"},
+"p":[]string{"KC_P"},
+"q":[]string{"KC_Q"},
+"r":[]string{"KC_R"},
+"s":[]string{"KC_S"},
+"t":[]string{"KC_T"},
+"u":[]string{"KC_U"},
+"v":[]string{"KC_V"},
+"w":[]string{"KC_W"},
+"x":[]string{"KC_X"},
+"y":[]string{"KC_Y"},
+"z":[]string{"KC_Z"},
+
+//specials
+"bksp":[]string{"KC_BSPC"},
+"enter":[]string{"KC_ENT"},
+//"numsym":[]string{"NUM)"}, //TODO: Sticky
+//"LETTERS":[]string{"KC_SPC"},
+
+//symbols
+"[":[]string{"KC_LBRC"},
+"]":[]string{"KC_RBRC"},
+" ":[]string{"KC_SPC"},
+"1":[]string{"KC_1"},
+"2":[]string{"KC_2"},
+"3":[]string{"KC_3"},
+"4":[]string{"KC_4"},
+"5":[]string{"KC_5"},
+"6":[]string{"KC_6"},
+"7":[]string{"KC_7"},
+"8":[]string{"KC_8"},
+"9":[]string{"KC_9"},
+"0":[]string{"KC_0"},
+"=":[]string{"KC_EQL"},
+"Fn":[]string{"KC_NO"},
+"SPACE":[]string{"KC_SPC"},
+"Home":[]string{"KC_HOME"},
+"End":[]string{"KC_END"},
+" ":[]string{"KC_TAB"},
+" ":[]string{"KC_TAB"},
+"\t":[]string{"KC_TAB"},
+"`":[]string{"KC_GRV"},
+}
diff --git a/keyboards/gboards/dicts/aset/_generator/src/da-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/da-keymap.json
new file mode 100644
index 0000000000..5bc62f4bca
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/_generator/src/da-keymap.json
@@ -0,0 +1 @@
+{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",70938],"tlw":["a",1885],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",6312],"tlw":["s",729],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",51462],"tlw":["saa",14038],"lp":["sa","saa","as","ass","wa","aas","ssa","sas","ww","aw","saas","www","assa","ssaa","ws"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",2647],"tlw":["e",88],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ae",65201],"tlw":["ae",1518],"lp":["ae","aae","ex","ea","ax","aee","xe","xa","exa","exe","axe","aex","eae"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",283077],"tlw":["de",23660],"lp":["de","ed","es","se","ede","ds","des","sse","dd","dse","ess","dde","eds","edes","ese","sed","ded","see","dede","sede"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",24996],"tlw":["da",8071],"lp":["ad","da","ade","aes","aad","sae","aed","ada","sad","aede","aade","saad","aada","ads","asse","aese","dae","dda","esa","we"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",16147],"tlw":["t",62],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",52505],"tlw":["at",39486],"lp":["at","ta","af","fa","ft","att","taa","faa","aft","aat","ff","aatt","fat","fatt","aff","tat","tf","ata","fta","afta"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",66160],"tlw":["c",179],"lp":["st","ts","sc","sst","ct","cc","tc","cs","cst","tst","tsc","tts","sts"],"rp":[]},"11":{"input":[1,2,4],"tlp":["sta",9134],"tlw":["fast",485],"lp":["sta","ast","sat","staa","ca","satt","tsa","fas","fast","fs","afs","ac","asta","sf","tas","tsaa","fst","afst","stat","tsat"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",200106],"tlw":["er",24396],"lp":["er","et","te","re","ere","rt","ter","tr","tte","ret","ett","ette","rte","ert","rr","tet","tter","rer","rre","eret"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",71256],"tlw":["fra",7354],"lp":["ar","ra","aer","fr","aar","aere","fte","fra","ef","tra","rae","are","fter","tae","eft","atte","efte","aet","fre","rf"],"rp":[]},"14":{"input":[2,3,4],"tlp":["det",50507],"tlw":["det",40064],"lp":["det","der","dt","ste","rd","dr","rs","est","dre","red","res","este","rde","ted","dere","rst","dte","rede","dst","str"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["aest",3267],"tlw":["satte",874],"lp":["aest","stra","stae","ader","ard","aerd","ared","rsta","saet","rda","derf","aard","fes","tad","stad","raad","dra","fred","fess","raed"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",12763],"trw":["n",53],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",107331],"trp":["na",18738],"tlw":["an",271],"trw":["naa",705],"lp":["an","aan","ann","anna","ana"],"rp":["na","naa","nan","nna","naan"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",2823],"trp":["ns",25305],"trw":["j",68],"lp":["sn","sj"],"rp":["ns","jn","js","nj","nss","jj"]},"19":{"input":[1,2,5],"tlp":["ans",12498],"trp":["ja",8744],"tlw":["sans",47],"trw":["ja",3506],"lp":["ans","san","sna","sja","aj","ajn","ssan","ansa","aaj","sans","snaa","wan","wn","asn","aasn"],"rp":["ja","nsa","jan","nas","nsaa"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",215951],"trp":["ne",54829],"tlw":["en",31130],"trw":["nye",787],"lp":["en","ene","enn","enne","enen","een","ey","eny"],"rp":["ne","nne","yn","nen","ny","ye","nene","yne","nye","yen","nnen","nee"]},"21":{"input":[1,3,5],"tlp":["aen",11318],"trp":["nae",4921],"tlw":["anne",45],"trw":["nae",24],"lp":["aen","anne","ane","aene","aane","aaen","anen","ay","ena","any","aany","ean","eann","aenn","xen"],"rp":["nae","naae","ya","yan","naee"]},"22":{"input":[2,3,5],"tlp":["den",50813],"trp":["nd",90348],"tlw":["den",24655],"trw":["ned",3104],"lp":["den","end","ende","ens","ej","sen","sy","dn","syn"],"rp":["nd","nde","je","nden","ned","ys","ndes","jen","nes","yd","nds"]},"23":{"input":[1,2,3,5],"tlp":["and",24671],"trp":["jae",3560],"tlw":["anden",1960],"trw":["naade",237],"lp":["and","ande","dan","aend","aand","adan","ands","aden","dann","sand","anse","sjae","dans","aned"],"rp":["jae","naes","nand","nda","naad","ndda"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["tn",1655],"trp":["nt",13043],"tlw":["b",55],"lp":["tn","bt","bn","bb","tb"],"rp":["nt","nb","ntn"]},"25":{"input":[1,4,5],"tlp":["ba",11045],"trp":["nat",1917],"tlw":["tabt",109],"trw":["nat",438],"lp":["ba","ab","tan","ant","aab","fan","ban","baa","abt","abn","aabn","aabt","anta","tab","tabt","fb"],"rp":["nat","nf","nta","natt"]},"26":{"input":[2,4,5],"tlp":["tj",1039],"trp":["nst",1524],"lp":["tj","bj","sb","stj","stn","bs","tsj","sbj"],"rp":["nst","nc","jst","jt","nsb","nstn","ncs","ncst","nct","jnb","nbj","jnbj"]},"27":{"input":[1,2,4,5],"tlp":["stan",1647],"trp":["nsta",463],"tlw":["satan",75],"lp":["stan","fj","anc","bac","taj","abs","tja","stja","tajn","sant","bja","anst","asb","asbj","bas","tans"],"rp":["nsta","ntas","nsat","jac"]},"28":{"input":[3,4,5],"tlp":["be",22658],"trp":["nte",7013],"tlw":["byen",409],"trw":["nyt",305],"lp":["be","rn","ren","ten","br","rne","ern","erne","ent","ry","ty","eb","rb","ber","eren","bet","ente"],"rp":["nte","ner","net"]},"29":{"input":[1,3,4,5],"tlp":["ran",3013],"trp":["naar",3178],"tlw":["bare",1165],"trw":["naar",3077],"lp":["ran","taen","bar","abe","ante","ften","arb","arbe","bra","raen","bare","fy","arn","aeb","bae","barn"],"rp":["naar","nar","naer","nart"]},"30":{"input":[2,3,4,5],"tlp":["sten",3731],"trp":["nder",8663],"tlw":["syntes",800],"trw":["jer",433],"lp":["sten","endt","bes","bed","rden","rej","bej","rejs","rbej","bejd","best","dern"],"rp":["nder","ndt","ndr","ndre","ndet","jer","ndte","yst"]},"31":{"input":[1,2,3,4,5],"tlw":["andre",1970],"trw":["naesten",941],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",246],"trw":["i",43365],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",419],"trp":["ia",2518],"lp":["ai","za","zi","az"],"rp":["ia","iz"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",39075],"trp":["ik",32997],"tlw":["si",156],"trw":["is",201],"lp":["si","sk","ski","sik","ssi","sikk","sis","skik"],"rp":["ik","kk","ikk","is","ki","ks","isk","iss","kik","ksi","ksis","kikk"]},"35":{"input":[1,2,6],"tlp":["ska",8476],"trp":["ka",23048],"tlw":["zak",168],"trw":["ka",248],"lp":["ska","ak","akk","ask","wi","aks","aask","aksi","asi","zak","aka","skaa","assi","aak"],"rp":["ka","kas","kaa","isa","ika","kass"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",2228],"trp":["ie",6094],"tlw":["ei",448],"lp":["ei","eie"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",48],"trp":["ix",31],"trw":["ix",31],"lp":["ze","xi","axi","aie","eiz","aei","aze"],"rp":["ix","iae"]},"38":{"input":[2,3,6],"tlp":["di",14167],"trp":["ke",57169],"tlw":["disse",1266],"trw":["ikke",20180],"lp":["di","ske","ek","sid","side","esk","ekk","ekke","eske"],"rp":["ke","kke","id","ikke","ide","ked","kede","ids","ise","kked","iske"]},"39":{"input":[1,2,3,6],"tlp":["aek",2798],"trp":["kae",1766],"tlw":["skade",99],"trw":["ida",70],"lp":["aek","akke","aekk","aske","skae","adi","dska","daek","adsk","eka","skad","aesk","eska","aeks"],"rp":["kae","idda","isae","ida","kad","kade"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",51178],"trp":["iv",10524],"tlw":["vi",7341],"trw":["it",23],"lp":["ti","vi","vt","tv","tvi","tiv","viv","tti","tviv","tit","vit","vv","vitt","tivt"],"rp":["iv","it","iti","itt","itti","ivt"]},"41":{"input":[1,4,6],"tlp":["va",50676],"trp":["if",1405],"tlw":["tav",135],"lp":["va","av","fi","ati","tav","avi","vaa","fti","tia","vf","avt","atti","tva","afti","tz"],"rp":["if","ift","iva","ita","itz"]},"42":{"input":[2,4,6],"tlp":["vis",7341],"trp":["ist",4703],"tlw":["sit",2281],"lp":["vis","sti","sv","sit","vist","vs","tis","tisk","ci","svi","visk","vik","tik"],"rp":["ist","kt","kv","kvi","isti","ic","kti"]},"43":{"input":[1,2,4,6],"tlp":["sva",3328],"trp":["kast",607],"tlw":["fik",1865],"trw":["kat",43],"lp":["sva","fik","akt","tak","avs","stak","takk","akti","tavs","fak","stia","fakt","fis","fisk","sav"],"rp":["kast","kat","kaf","kaff","kva"]},"44":{"input":[3,4,6],"tlp":["ve",58500],"trp":["ive",7238],"tlw":["rev",144],"trw":["iver",59],"lp":["ve","ri","ver","ev","eve","vet","eri","rv","rti","rev","vir","evet","rve","rie","vr"],"rp":["ive","ir","iver","ivet","ier"]},"45":{"input":[1,3,4,6],"tlp":["var",27429],"trp":["ifte",524],"tlw":["var",23713],"trw":["ivar",148],"lp":["var","vae","vaer","ave","vare","aev","eva","ari","fri","evae","rav","aeve","arv","arve","avet","farv","aver","verf","arie"],"rp":["ifte"]},"46":{"input":[2,3,4,6],"tlp":["ved",13008],"trp":["kr",7446],"tlw":["ved",9023],"trw":["idet",571],"lp":["ved","vd","vde","rk","tid","rke","vid","erk","dri","skr","vede","vide","erke"],"rp":["kr","ker","idt","ket","kri","idst","kker"]},"47":{"input":[1,2,3,4,6],"tlw":["svarede",1115],"trw":["kastede",275],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",55966],"trw":["h",182],"lp":[],"rp":["in","ni","nin","hi","nh","hin","inn","ih","nni","ini","hn","nnin","hinn","hini","hii","iin","hiin"]},"49":{"input":[1,5,6],"tlp":["ani",433],"trp":["ha",84475],"tlw":["zina",155],"trw":["han",28303],"lp":["ani","ah","anz","anni","zin","zina","ania"],"rp":["ha","han","haa","ina","haan","hina","inan","nha","ian","hann","nia","nz","nina"]},"50":{"input":[2,5,6],"tlp":["sin",8509],"trp":["nk",7187],"tlw":["sin",5448],"trw":["nik",30],"lp":["sin","skj","sni","sh","skin","snin"],"rp":["nk","hj","kn","nsk","kj","nsi","nik","kin","his","kni","ink","knin","nikk","nis"]},"51":{"input":[1,2,5,6],"tlp":["ansk",2386],"trp":["kan",8041],"tlw":["sank",149],"trw":["kan",7261],"lp":["ansk","ank","ansi","snak","skja","sha","sank","win"],"rp":["kan","hans","hja","kja","kna","hw","nak","nakk","nska","has","hwa","jak"]},"52":{"input":[3,5,6],"tlp":["enh",1378],"trp":["he",30604],"trw":["hen",2065],"lp":["enh","eh","eni","enin","enhe","ein"],"rp":["he","hen","ine","ien","hy","nie","nei","nhe","inne","inen","henn","ihe","hei","hein"]},"53":{"input":[1,3,5,6],"tlp":["enha",462],"trp":["hae",2302],"tlw":["annie",37],"trw":["hanne",108],"lp":["enha","eha","anie","ehan","einz","zen","enia","ahy","ehaa"],"rp":["hae","haen","nhae","hea","hena","hane","iane","haie"]},"54":{"input":[2,3,5,6],"tlp":["enk",3299],"trp":["ind",17207],"tlw":["sine",1896],"trw":["ind",4197],"lp":["enk","din","sky","ekn","enke","sine"],"rp":["ind","inde","hend","hed","ken","nke","iden","yk","nske","ky","hje","ykk","ykke","kend"]},"55":{"input":[1,2,3,5,6],"tlw":["danske",357],"trw":["hinanden",807],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["vin",3191],"trp":["hv",22271],"tlw":["thi",704],"trw":["int",55],"lp":["vin","vn","bi","th","tin","tni","tnin","thi","bin","vint"],"rp":["hv","hvi","int","ib","nv","nti","nhv","ntin","nit","niv"]},"57":{"input":[1,4,5,6],"tlp":["van",3040],"trp":["hav",16151],"tlw":["tania",150],"trw":["navn",505],"lp":["van","fin","avn","anv","tian","tha","avni","tani","vant","bav"],"rp":["hav","hva","nav","navn","havn","haf","haft","haab","nhav","hat"]},"58":{"input":[2,4,5,6],"tlp":["ch",2279],"trp":["hvis",2968],"tlw":["skib",43],"trw":["hvis",2525],"lp":["ch","svin","stin","visn","sch","sth","skib","vsh","chs","vink"],"rp":["hvis","nkt","kvin","hist","ich","kib","inst","istn","nist","nsv"]},"59":{"input":[1,2,4,5,6],"tlw":["skabt",80],"trw":["kant",116],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["ven",8299],"trp":["her",6089],"tlw":["ven",504],"trw":["her",3645],"lp":["ven","rin","rh","bev","vent","vne","the","erh","even","beh","evn","rbi","erin","etni"],"rp":["her","hve","hver","inte","hr","herr"]},"61":{"input":[1,3,4,5,6],"tlw":["fine",167],"trw":["har",10914],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["vendte",689],"trw":["hvide",710],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["finde",734],"trw":["havde",11721],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",54],"trw":["o",656],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",60],"trp":["oa",43],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",30717],"trp":["os",7769],"tlw":["so",193],"trw":["os",2349],"lp":["so","sos","sso"],"rp":["os","oss","oso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",536],"trp":["ow",474],"tlw":["wos",58],"lp":["wo","aso","sow","wos","aaso","saso","aos"],"rp":["ow","osa"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",700],"trp":["oe",2132],"trw":["-",3902],"lp":["eo","e-"],"rp":["oe","-o","-e","-e-"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",13],"trp":["ox",139],"trw":["-aa",53],"lp":["a-","aa-","a-e","aa-e","a-e-"],"rp":["ox","oxe","-a","-aa"]},"70":{"input":[2,3,7],"tlp":["do",7429],"trp":["od",24132],"tlw":["dod",445],"trw":["ode",82],"lp":["do","eso","dod","dode","soe","esso","sod","dso","sode"],"rp":["od","ode","ods","oed","ose","oede","osse","odd","-d","odde","-de"]},"71":{"input":[1,2,3,7],"tlp":["ado",19],"trp":["odsa",172],"trw":["-saa",39],"lp":["ado"],"rp":["odsa","owe","-sa","-saa","odda","oda"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["gt",20766],"trp":["og",89433],"tlw":["to",2228],"trw":["og",64213],"lp":["gt","to","go","gg","tog","tot","tott","gtt","tto","gtto","ttog","tg","tgo","ggo"],"rp":["og","ot","ogt","ott","oot","oto"]},"73":{"input":[1,4,7],"tlp":["fo",49386],"trp":["of",4123],"tlw":["gaa",1197],"trw":["of",77],"lp":["fo","ag","ga","gaa","agt","tag","aag","tfo","fg","afg","agg","fag","tof","taag","fgo","afgo"],"rp":["of","oft","off","ofa"]},"74":{"input":[2,4,7],"tlp":["sto",10153],"trp":["ogs",3950],"tlw":["sogt",61],"trw":["ost",168],"lp":["sto","gs","sog","sogt","gst","sg","co","gso","sost","stot","tos","soc","toss","gts","sgo","gc"],"rp":["ogs","ost","oc","ogst"]},"75":{"input":[1,2,4,7],"tlp":["sag",7763],"trp":["ogsa",3841],"tlw":["sagt",613],"trw":["ogsaa",2370],"lp":["sag","gsa","gsaa","sagt","ags","sof","sga","asto","sgaa","sofa","sfo","stof","wot","tow","sfag","fos","foss"],"rp":["ogsa","ofas","osof"]},"76":{"input":[3,4,7],"tlp":["ge",73298],"trp":["or",91756],"tlw":["gore",1137],"trw":["ore",158],"lp":["ge","eg","ro","ger","get","ege","gr","tor","gte","rg","gge","tro","eget"],"rp":["or","ore","ort","oge","oget","org","orte"]},"77":{"input":[1,3,4,7],"tlp":["for",43517],"trp":["orf",1741],"tlw":["for",18700],"trw":["ofte",682],"lp":["for","age","aeg","tage","fort","rfo","rfor","gra","rag","gaar","fore","fora","ager","agte","aget","erfo","rof"],"rp":["orf","ofte","ora"]},"78":{"input":[2,3,4,7],"tlp":["gd",7202],"trp":["ord",8900],"tlw":["dog",2587],"trw":["ord",1092],"lp":["gd","gde","stor","god","tod","dog","stod","rod","godt","ges","sor","rso","dor","ged"],"rp":["ord","ors","orst","odt","orde","oder"]},"79":{"input":[1,2,3,4,7],"tlw":["sagde",5844],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",38415],"trw":["nu",6214],"lp":[],"rp":["un","no","on","nu","unn","onn","ou","uu","ono","nun","non","uo"]},"81":{"input":[1,5,7],"tlp":["au",1436],"trp":["ua",639],"tlw":["au",12],"lp":["au","anu","anua","ano","qu","anon"],"rp":["ua","ona","uan","nua","una","nuan","uana","oan"]},"82":{"input":[2,5,7],"tlp":["su",1821],"trp":["jo",11635],"tlw":["son",331],"trw":["jo",3858],"lp":["su","son","sun","sus","sonn"],"rp":["jo","oj","us","ojn","ju","ons","jon","noj","uns","nus","jus","jun","nso","nsu","onsu"]},"83":{"input":[1,2,5,7],"tlp":["aus",420],"trp":["usa",143],"trw":["jow",70],"lp":["aus","anus","sona","ajo","asou","ajon","sua"],"rp":["usa","jow","uans","janu","oja","noja","own","onsa","joa","joan","uja","jona","onas"]},"84":{"input":[3,5,7],"tlp":["eu",269],"trp":["ue",3024],"trw":["nue",32],"lp":["eu","eno","eun","en-"],"rp":["ue","one","unne","uen","onne","oen","onen","une","oy","-n","n-","nue","-ne","yo","oye","u-"]},"85":{"input":[1,3,5,7],"tlp":["eau",73],"trp":["ux",95],"trw":["-naa",21],"lp":["eau","anue","xu","xue","que","aue","eaue","aoy","aoye","aeu"],"rp":["ux","-na","-naa","oxen","unae","-au","uxe","oux"]},"86":{"input":[2,3,5,7],"tlp":["du",10932],"trp":["ud",16891],"tlw":["du",8921],"trw":["ud",5540],"lp":["du","dnu","due"],"rp":["ud","und","unde","ude","oje","uden","uds","ndnu","ojne","ond","udse","use","nod","oden","-j","ndu","ndue"]},"87":{"input":[1,2,3,5,7],"tlw":["aa-e-ja",13],"trw":["-ja",333],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",7356],"trp":["ng",36020],"tlw":["bog",542],"trw":["ung",427],"lp":["bo","tu","gn","gu","bu","bog","tun","ton","tung"],"rp":["ng","nog","ob","ug","ut","ung","ngt","ub","ugt","ont","utt"]},"89":{"input":[1,4,5,7],"tlp":["ang",11845],"trp":["uf",1211],"tlw":["gang",1991],"trw":["nabo",19],"lp":["ang","gan","gang","bag","fu","atu","angt","agn","fun","fang","fug","tau","bang","gna"],"rp":["uf","natu","nga","uft","nfo","ngan"]},"90":{"input":[2,4,5,7],"tlp":["gj",4375],"trp":["ngs",1845],"tlw":["sgu",306],"trw":["just",195],"lp":["gj","gjo","stu","boj","bjo","tus","sgu","toj","stun","goj","gnus"],"rp":["ngs","ust","ojt","ngst","ngso","unst","job","just","jont"]},"91":{"input":[1,2,4,5,7],"tlw":["sang",347],"trw":["jagt",44],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",17731],"trp":["nge",16467],"tlw":["bort",849],"trw":["noget",4194],"lp":["gen","ru","eng","bor","enge","beg","gne","run","gy","egy","bru"],"rp":["nge","noge","ur","ngen","yg","nger","ogen","orn","oren"]},"93":{"input":[1,3,4,5,7],"tlw":["foran",718],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["gjorde",1269],"trw":["jeg",26496],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["dagen",378],"trw":["udenfor",361],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["il",52340],"trw":["lo",488],"lp":[],"rp":["il","li","ll","ol","lo","ill","lli","io","illi","olo","oli","lil","lill","oi","oll","ili","iol","ioli","lio","llio"]},"97":{"input":[1,6,7],"tlp":["al",35773],"trp":["la",34392],"tlw":["al",773],"trw":["laa",896],"lp":["al","all","aal","alli","ali","ala","aall","zo","ail","alo","aala"],"rp":["la","laa","lia","llia","lla","ola","ial","illa","olla"]},"98":{"input":[2,6,7],"tlp":["sl",6546],"trp":["ko",17253],"tlw":["sol",272],"trw":["los",173],"lp":["sl","sko","sol","slo","sio"],"rp":["ko","ls","ok","kl","lk","lik","kol","lsk","olk","ilk","okk","ils","lok","klo","los"]},"99":{"input":[1,2,6,7],"tlp":["skal",4331],"trp":["kal",5704],"tlw":["skal",4257],"trw":["las",152],"lp":["skal","sla","wil","will","saal","sal","als","slaa","alk","wol","woll"],"rp":["kal","kla","las","kola","lska","oka","lass","okal","kalk"]},"100":{"input":[3,6,7],"tlp":["el",52483],"trp":["le",62636],"tlw":["el",13],"trw":["lille",1799],"lp":["el","ell","elle","eli","ele","elli","elo","eol"],"rp":["le","lle","ille","ole","ile","olle","lie","iel","oie","ilie","lel","olel"]},"101":{"input":[1,3,6,7],"tlp":["ale",5962],"trp":["lae",8065],"tlw":["alle",3178],"trw":["lae",133],"lp":["ale","ael","alle","aale","aell","ela","aele","ella","elae","alie","alae","eal"],"rp":["lae","iale","laae","lox","lela","lea","i-a","li-a"]},"102":{"input":[2,3,6,7],"tlp":["els",7813],"trp":["ld",24257],"tlw":["del",897],"trw":["lod",1333],"lp":["els","sel","del","else","deli","eld","dl"],"rp":["ld","lde","lse","old","led","ild","kel","lede","ilde","lid","lod","keli","olde"]},"103":{"input":[1,2,3,6,7],"tlw":["saaledes",615],"trw":["lad",680],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["til",31908],"trp":["ig",74754],"tlw":["til",24015],"trw":["liv",1247],"lp":["til","vo","vil","gi","gl","tig","till"],"rp":["ig","lig","ov","lt","igt","lv","liv","ligt","log","lg","ogi","logi","olog"]},"105":{"input":[1,4,6,7],"tlp":["alt",7650],"trp":["lag",2904],"tlw":["alt",2353],"trw":["lagt",315],"lp":["alt","fl","tal","fol","fal","talt","gla","alti","alv","gav","fla","folg","atio","flo","folt"],"rp":["lag","lav","lof","loft","lf"]},"106":{"input":[2,4,6,7],"tlp":["sig",18329],"trp":["lst",1082],"tlw":["sig",13498],"trw":["livs",105],"lp":["sig","gik","stil","sigt","vilk","stol","gvis","skov","slog","sov","tils","stig","vok","vikl","voks"],"rp":["lst","kov","lts","isto","ilst"]},"107":{"input":[1,2,4,6,7],"tlw":["folk",871],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["vor",11354],"trp":["ige",17245],"tlw":["eller",3955],"trw":["over",5694],"lp":["vor","elig","rl","elv","rig","rli","rlig","vel","elt","gle"],"rp":["ige","ove","ler","lige","over","lev","ller","live","let","lte"]},"109":{"input":[1,3,4,6,7],"tlw":["tale",1118],"trw":["lave",376],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["selv",3736],"trw":["lidt",2473],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["aldrig",1646],"trw":["lagde",628],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["hu",19153],"trw":["hun",14886],"lp":[],"rp":["hu","ho","hun","ul","lu","hol","lin","ion","nl","nol","nolo","nli","uli","ull","llin","lun","oh","hoi","hul","uh"]},"113":{"input":[1,5,6,7],"tlp":["anl",545],"trp":["lan",8187],"tlw":["alanzo",70],"trw":["hal",31],"lp":["anl","anli","anal","alin","alan","anla"],"rp":["lan","hal","lau","nal","llan","oha","ohan","nla","olau","laan","lina","hali","onal","nzo"]},"114":{"input":[2,5,6,7],"tlp":["sku",5017],"trp":["ku",16083],"tlw":["suk",140],"trw":["kun",2632],"lp":["sku","skul","slu"],"rp":["ku","kun","kul","uk","nok","hoj","kon","kunn","kno","hus","knol","ukk","hos","kjo","jl","luk","lukk"]},"115":{"input":[1,2,5,6,7],"tlw":["slank",25],"trw":["nikola",431],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eho",625],"trp":["ly",6399],"tlw":["ellen",583],"trw":["hele",1963],"lp":["eho","enl","elen","enli"],"rp":["ly","hel","len","yl","hele","llen","hell","ulle","ule","ione","olen","lene","nel","niel","line","lyn"]},"117":{"input":[1,3,5,6,7],"tlw":["alene",617],"trw":["hallen",39],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["skulde",2683],"trw":["kunde",4358],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["sjael",328],"trw":["land",483],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",19380],"trp":["ing",14039],"tlw":["blot",846],"trw":["lob",434],"lp":["bl","bli","bliv","blo","gh","tilb","ting","bil"],"rp":["ing","hvo","ning","lb","igh","hov","ilb","ligh","nlig","nogl","ling","hvil"]},"121":{"input":[1,4,5,6,7],"tlw":["blaa",246],"trw":["langt",805],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["blik",653],"trw":["hojt",407],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["ansigt",951],"trw":["langs",456],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["blev",4782],"trw":["hvor",4842],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["tilbage",1940],"trw":["laenge",871],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["teknologi",565],"trw":["holdt",1084],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["ganske",1214],"trw":["hvordan",1085],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",3391],"trw":["p",397],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",2081],"trp":["pa",29683],"trw":["paa",14960],"lp":["ap","app","apa"],"rp":["pa","paa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",6812],"trp":["ps",284],"lp":["sp","ssp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",699],"trp":["pas",1008],"trw":["pas",96],"lp":["spa","asp","aspa","aps","spaa"],"rp":["pas","pass","psa","paas"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",1393],"trp":["pe",8158],"trw":["'",36],"lp":["ep","epp","eppe","e'","epe"],"rp":["pe","ppe","'e","pee","pep"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["a'",769],"trp":["pae",506],"tlw":["a'",18],"trw":["pae'",18],"lp":["a'","appe","aep","aepp","aa'","a'e","ae'"],"rp":["pae","pae'"]},"134":{"input":[2,3,8],"tlp":["spe",642],"trp":["ped",539],"lp":["spe","dsp","esp","espe","sep","s'","dp","es'","dep","depe","edp","dpe","edpe","desp"],"rp":["ped","pede","pd","pped","pes","pess"]},"135":{"input":[1,2,3,8],"tlp":["spae",341],"trp":["pda",378],"tlw":["saa'",120],"trw":["passe",116],"lp":["spae","saa'","spad","sa'","aspe","wes'","da'","da'e"],"rp":["pda","pad","paed","pads","peda","pda'","pade","psae"]},"136":{"input":[4,8],"trp":["pt",1019],"trw":["pt",16],"lp":[],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",205],"trp":["pf",375],"lp":["apt","apta","tap","tapp"],"rp":["pf","pta","pfa","pfat","pat","paat","paaf","paf","pafa"]},"138":{"input":[2,4,8],"trp":["pst",120],"lp":[],"rp":["pst"]},"139":{"input":[1,2,4,8],"tlp":["casp",50],"trp":["past",205],"lp":["casp","cap","fsp","afsp"],"rp":["past","psta"]},"140":{"input":[3,4,8],"tlp":["rp",670],"trp":["pr",5960],"tlw":["er'et",22],"trw":["per",374],"lp":["rp","erp","rep","rpt","epr","ept","tep","rpe"],"rp":["pr","per","pper","pet","pre","'r","ppet","pete","'er","pere","ptr","pte"]},"141":{"input":[1,3,4,8],"tlp":["rap",388],"trp":["pra",1908],"tlw":["ta'r",85],"trw":["par",1154],"lp":["rap","rapp","rpa","trap","rpaa","taep","arp","erpa","a'r","ta'","apr","arpt","ta'r"],"rp":["pra","par","prae","part","pare","para","ptra"]},"142":{"input":[2,3,4,8],"tlp":["spr",1019],"trp":["pers",530],"tlw":["spredte",60],"trw":["peder",77],"lp":["spr","derp","sper","spre","spec","step","sept","resp","dspr","rsp","ersp","rspe","cep","ccep","cept"],"rp":["pers","pres","pred","pec","pdr"]},"143":{"input":[1,2,3,4,8],"tlw":["derpaa",245],"trw":["praest",184],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",16277],"trw":["m",548],"lp":[],"rp":["mm","mp","nm","mn","pm","np","pn"]},"145":{"input":[1,5,8],"tlp":["am",21010],"trp":["ma",29964],"tlw":["anm",32],"trw":["man",5955],"lp":["am","amm","amp","anm","anma","ama","aam","aama"],"rp":["ma","man","maa","nma","pan","maan","nap","pma","paan","mann","mma","mman"]},"146":{"input":[2,5,8],"tlp":["sm",5093],"trp":["ms",1840],"tlw":["sms",12],"lp":["sm","sms"],"rp":["ms","nsp","msp","jm","jsp","mps","pj","nsm"]},"147":{"input":[1,2,5,8],"tlp":["sam",5398],"trp":["mas",938],"tlw":["smaa",567],"trw":["maj",88],"lp":["sam","samm","sma","smaa","saam","sman","ams","span","asm","sama","sams","amsp","ansp"],"rp":["mas","maas","mass","maj","jam","mans","jamm"]},"148":{"input":[3,5,8],"tlp":["em",22268],"trp":["me",73368],"tlw":["emne",22],"trw":["men",13807],"lp":["em","emm","emme","emp","empe","eme"],"rp":["me","men","mme","mmen","nem","nnem","menn","pen","mpe","mene","ppen","my","nemm","yp"]},"149":{"input":[1,3,5,8],"tlp":["amme",5549],"trp":["mae",3778],"tlw":["examen",40],"trw":["mae",475],"lp":["amme","ame","ema","aem","ampe","aemp","amen","emae","amae","eman","aemm","emma","aame","enpa"],"rp":["mae","maen","paen","pmae","naep","mane"]},"150":{"input":[2,3,5,8],"tlp":["dem",5798],"trp":["med",23442],"tlw":["dem",5668],"trw":["med",20679],"lp":["dem","sme","dm","sem","semp","spej","ems","smed"],"rp":["med","mens","jem","mede","mes","mmed","jemm","mend","pej","jdsp","mped","medd"]},"151":{"input":[1,2,3,5,8],"tlw":["samme",1733],"trw":["mand",1898],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",86],"trp":["mt",4208],"lp":["tm","bm"],"rp":["mt","mb","pb","ptb"]},"153":{"input":[1,4,5,8],"tlp":["amt",793],"trp":["maat",1392],"trw":["mat",54],"lp":["amt","fam","amta","tam","tamm","amf","amb","fm","afm","fma"],"rp":["maat","mat","mf","matt","mta","mfa","mant","napt","mfan","mfat"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",207],"trp":["mst",1374],"tlw":["cm",207],"lp":["cm","bsm"],"rp":["mst","mc","mtj","mcn"]},"155":{"input":[1,2,4,5,8],"tlw":["samt",115],"trw":["pjat",14],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",5355],"trp":["mer",8012],"tlw":["type",59],"trw":["mere",2523],"lp":["rm","rem","rme","tem","emt","erm","erme","temm","rmen","rmer","temt","remm"],"rp":["mer","mmer","mere","met","mte","mr","mmet","ment"]},"157":{"input":[1,3,4,5,8],"tlw":["frem",1987],"trw":["maatte",1220],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["stemme",569],"trw":["mest",560],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["fremmede",219],"trw":["praesten",235],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",3860],"lp":[],"rp":["pi","ip","ipp","ppi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",492],"trp":["papi",191],"lp":["api"],"rp":["papi","ipa"]},"162":{"input":[2,6,8],"tlp":["spi",1676],"trp":["pis",540],"trw":["pis",22],"lp":["spi","spis","skip","sspi"],"rp":["pis","pisk","isp","kip","kipp","ips","ksp","pik","psi"]},"163":{"input":[1,2,6,8],"trp":["kap",494],"trw":["pak",15],"lp":[],"rp":["kap","kapi","pak","pakk","kapp","paak","ipas"]},"164":{"input":[3,6,8],"tlp":["epi",89],"trp":["ippe",551],"lp":["epi"],"rp":["ippe","i'","i'e","ipe"]},"165":{"input":[1,3,6,8],"tlp":["zep",15],"trp":["paei",16],"lp":["zep","azep","zepi","z'"],"rp":["paei"]},"166":{"input":[2,3,6,8],"tlp":["spid",136],"trp":["pise",257],"tlw":["spise",140],"trw":["piskede",12],"lp":["spid","spek","espi","eksp","si'","si'e"],"rp":["pise","pek","idsp","pid","pids","peki","ispe","ksep","kep","kkep","kspe","kepe","kepi"]},"167":{"input":[1,2,3,6,8],"tlw":["ska'",27],"trw":["pakke",52],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["vip",54],"trp":["pit",385],"lp":["vip","vipp"],"rp":["pit","pti","ipt"]},"169":{"input":[1,4,6,8],"tlp":["apit",301],"trp":["pav",149],"tlw":["fip",43],"lp":["apit","fip"],"rp":["pav","pati","pita","pavi","pfi"]},"170":{"input":[2,4,6,8],"tlp":["spit",84],"trp":["pist",182],"tlw":["spist",45],"lp":["spit","cip","vsp","scip","tisp"],"rp":["pist"]},"171":{"input":[1,2,4,6,8],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",58],"trp":["pri",1094],"tlw":["vipper",20],"trw":["itt'",73],"lp":["rip","repi","ript","trip","ripp","vep","rvep","vepr"],"rp":["pri","pir","pite","peri","pire","priv","i'r","itt'","piri","i'er","prie","ipte"]},"173":{"input":[1,3,4,6,8],"tlw":["appetit",14],"trw":["papir",90],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["spiste",89],"trw":["pris",129],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["skarpt",108],"trw":["praksis",264],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",24076],"trw":["min",4554],"lp":[],"rp":["mi","min","im","imi","him","mh","ph","imm","pin","imp","mni","mnin","himm","hm","phi","mpi","mini","nim","mim","imim"]},"177":{"input":[1,5,6,8],"tlp":["ami",472],"trp":["ham",8353],"trw":["ham",8026],"lp":["ami","aim","amin"],"rp":["ham","iam","ima","hamm","mia","mai","pha","iman","phan","pani","imia","mian","hamp","mha","hima","pina","mani"]},"178":{"input":[2,5,6,8],"tlp":["smi",1181],"trp":["mis",825],"trw":["km",70],"lp":["smi","sim","simp","spin","ssim","simi"],"rp":["mis","mk","imis","msi","miss","km","misk","ism","phis","pink","kim","mspi","mism","msk"]},"179":{"input":[1,2,5,6,8],"tlw":["skam",117],"trw":["knap",168],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emni",182],"trp":["ime",1615],"trw":["mine",1330],"lp":["emni","eph","empi","ephi"],"rp":["ime","mine","mhe","meni","imme","imen","hem","hemm","impe","menh","phe","mhy","hyp","hypp","yppi","meph"]},"181":{"input":[1,3,5,6,8],"trw":["ha'",99],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["spidsen",62],"trw":["hjem",1079],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["eksamen",41],"trw":["maske",618],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",1144],"trp":["mit",1681],"trw":["mit",1681],"lp":["tim","timi","tmi","tmin","vim","vimm","vm","timm"],"rp":["mit","mti","ptim","imt","pib","mv","ntim","pint","itim","mvi","mvit","nvip"]},"185":{"input":[1,4,5,6,8],"tlw":["timian",19],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["capitain",20],"trw":["knapt",41],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["timer",267],"trw":["hvem",785],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["varme",252],"trw":["marie",351],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["derhjemme",61],"trw":["mennesker",759],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["danmark",309],"trw":["maerke",366],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",11049],"trw":["op",5000],"lp":[],"rp":["op","po","opp","ppo","pop"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["appo",13],"trp":["opa",178],"lp":["appo","apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["spo",1107],"trp":["pos",203],"lp":["spo","sop"],"rp":["pos","ops","osp","pso","opso"]},"195":{"input":[1,2,7,8],"trp":["opsa",25],"lp":[],"rp":["opsa","opas"]},"196":{"input":[3,7,8],"trp":["oppe",1153],"trw":["oppe",424],"lp":[],"rp":["oppe","o'","p-","poe","-p","o'e","p-p","ope"]},"197":{"input":[1,3,7,8],"trp":["opae",16],"lp":[],"rp":["opae"]},"198":{"input":[2,3,7,8],"tlp":["dsop",23],"trp":["opd",408],"trw":["pose",26],"lp":["dsop"],"rp":["opd","pose","poes"]},"199":{"input":[1,2,3,7,8],"trw":["opad",89],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1156],"trp":["opt",558],"tlw":["top",127],"trw":["optog",47],"lp":["top","topp","gp","gpo"],"rp":["opt","pg","opg","pog","pto","opto","ptog","pot","pott"]},"201":{"input":[1,4,7,8],"tlp":["gpa",17],"trp":["opf",375],"lp":["gpa"],"rp":["opf","pga","opga","opta","ptag","opfa","pfo","opfo","pag","pagt","paga"]},"202":{"input":[2,4,7,8],"tlp":["stop",344],"trp":["opst",120],"tlw":["spog",51],"trw":["post",48],"lp":["stop","spog","gsp","spot","sopg","cop"],"rp":["opst","post","psto","psog"]},"203":{"input":[1,2,4,7,8],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",646],"trp":["pro",2431],"tlw":["toppe",42],"trw":["port",82],"lp":["rop","etop","ropp","gep","erop","epro"],"rp":["pro","por","porg","port","opr","peg","pege","prog","orp","o'r","optr","pore","opro","opre"]},"205":{"input":[1,3,4,7,8],"tlw":["fo'r",122],"trw":["proft",123],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["spor",199],"trw":["pegede",119],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"trw":["pastor",153],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",50261],"trw":["om",12169],"lp":[],"rp":["om","mo","omm","mu","um","pu","mun","up","umm","pun","mon","ump","omp","opm","umu","upp","pou","mum","mpu","ompu"]},"209":{"input":[1,5,7,8],"tlp":["amo",42],"trp":["opma",262],"trw":["opnaa",32],"lp":["amo","aamo","anmo","apon"],"rp":["opma","oma","uma","manu","oman","pau","opna","uman","umaa","omma","upa","upaa"]},"210":{"input":[2,5,7,8],"tlp":["som",21760],"trp":["oms",1497],"tlw":["som",18932],"trw":["moj",60],"lp":["som","spu","smu","somm","spun","smo","sum","smus","summ"],"rp":["oms","mus","nsom","jom","mos","moj","pus","ums","mons","usm","nspo"]},"211":{"input":[1,2,5,7,8],"tlw":["saasom",34],"trw":["mansson",22],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["en-m",111],"trp":["omme",6327],"trw":["-men",116],"lp":["en-m","emo","epu"],"rp":["omme","umme","-m","uppe","ume","umen","-me","-men","n-m","umpe","omne","ome","mue","pone","u-m","-mo","u-mo"]},"213":{"input":[1,3,5,7,8],"trw":["-man",13],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dom",83],"trw":["mod",3477],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["somand",13],"trw":["pause",61],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",486],"trp":["omt",1489],"tlw":["tom",108],"trw":["omt",46],"lp":["tom","tum","tomm","tomt","gm","gmo"],"rp":["omt","mog","mg","omg","pub","munt","put","mbo","mput","mob","omb","ombo","umt","mut"]},"217":{"input":[1,4,5,7,8],"tlw":["afmagt",13],"trw":["magt",215],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["stum",33],"trw":["pust",33],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["smag",71],"trw":["magnus",156],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["gennem",1130],"trw":["meget",3368],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["form",246],"trw":["mange",1787],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["spurgte",1168],"trw":["mogens",519],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["sprang",316],"trw":["professoren",159],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",5364],"trw":["pol",19],"lp":[],"rp":["pl","pil","lp","pill","pol","opl","lip","poli","lipp","pli","poll","plo","oplo","ilp","opi","pio","poi","lop","lpi","ipl"]},"225":{"input":[1,6,7,8],"tlp":["alp",194],"trp":["pla",2683],"lp":["alp","alop","alpi"],"rp":["pla","lap","lapp","pal","opla","lpa","ilpa","pall","pala"]},"226":{"input":[2,6,7,8],"tlp":["spil",933],"trp":["klip",214],"tlw":["spil",117],"trw":["kop",75],"lp":["spil","slip","spl","skop","sopi","spio"],"rp":["klip","kop","kopp","ospi","posi","pok","pokk","lips","plos","plik","opsi","lsp","lspo","kopi"]},"227":{"input":[1,2,6,7,8],"tlw":["slap",211],"trw":["klap",35],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",717],"trp":["ple",1132],"trw":["pille",26],"lp":["elp","elpe","epl","eple","epli"],"rp":["ple","lpe","pel","ople","plei","li'","lpel","pelo","-pl","p-pl","lpep","pepl","li'e","pole","p-i"]},"229":{"input":[1,3,6,7,8],"trw":["la'",18],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spillede",190],"trw":["poesi",41],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["slappe",19],"trw":["plads",674],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tilp",30],"trp":["pig",945],"trw":["pligt",89],"lp":["tilp"],"rp":["pig","opti","plig","pgi","opgi","pgiv","ppig","pov","povl","plov","plot","pigt","pitl"]},"233":{"input":[1,4,6,7,8],"tlw":["galop",20],"trw":["opgav",49],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["politik",54],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["tilpas",30],"trw":["plastisk",14],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["pige",386],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",92],"trw":["opgave",78],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["spiller",111],"trw":["krop",196],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["vokseplads",34],"trw":["kapitel",248],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["ml",3277],"trw":["poul",218],"lp":[],"rp":["ml","mil","lm","lom","mul","imo","muli","plu","olm","holm","omh","lmi","lmin","mili","mli","iml","himl","oph","minu","lim"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alpina",16],"trw":["plan",125],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["smil",414],"trw":["kom",3720],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["william",837],"trw":["hjalp",126],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["mellem",1362],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["emmanuelo",70],"trw":["lampen",77],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["smilede",325],"trw":["komme",1447],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["samlede",209],"trw":["hjaelp",283],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["glimt",79],"trw":["mig",8747],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",34],"trw":["pollnitz",127],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["smukt",214],"trw":["punkt",116],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["samling",60],"trw":["langsomt",369],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["glemt",197],"trw":["norholm",521],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["gamle",1533],"trw":["planter",359],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["blomster",490],"trw":["kommer",1590],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["samtidig",195],"trw":["plantes",218],"lp":[],"rp":[]}} \ No newline at end of file
diff --git a/keyboards/gboards/dicts/aset/_generator/src/de-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/de-keymap.json
new file mode 100644
index 0000000000..c85c9213e3
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/_generator/src/de-keymap.json
@@ -0,0 +1 @@
+{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",9644],"tlw":["a",672],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",161786],"tlw":["s",320],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",267481],"tlw":["was",33174],"lp":["as","wa","sa","ass","was","wass","ssa","sw","asa","assa","saa","aw","swa","awa","sas","ssas","asw","saw","sawa"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",14304],"tlw":["e",8272],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",6426],"lp":["ea","ex","ae","xa","ax","xe","exe","exa"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",603509],"tlw":["es",81182],"lp":["de","es","se","ed","sse","ese","ede","des","ess","esse","ses","eses","ds","dess","see","edes","sd","dee","dd","sess"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",270688],"tlw":["das",100677],"lp":["da","we","das","dass","ew","ad","asse","ewe","wes","ade","wese","ewes","esa","eda","dw","ewa","ase","essa","dwa","wed"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",129965],"tlw":["t",4870],"lp":["tt","ttt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",159129],"tlw":["tat",2050],"lp":["at","att","ta","fa","ft","ff","af","tat","aft","aff","tf","fft","tatt","tta","afft","fta","ffa","ata","ttf","taa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",329949],"tlw":["st",194],"lp":["st","sc","ts","sst","tsc","ssc","tst","tts","tc","sts","ttst","ssts","stst","ct","cc","stc","cs"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ac",129940],"tlw":["fast",4605],"lp":["ac","sta","tw","ast","twa","twas","asc","fas","fac","wac","sac","tsa","ca","fast","ats","asst","stat","fs","tas","atsa"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",1062516],"tlw":["er",139320],"lp":["er","te","re","rt","et","tte","ter","rte","tr","ere","ert","ete","tet","rr","erte","tete","rer","err","tter","tre"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",236202],"tlw":["trat",2331],"lp":["ar","ra","atte","fe","fr","ef","are","tra","fra","era","art","rf","ate","ffe","fre","arte","fer","ara","rat","ater"],"rp":[]},"14":{"input":[2,3,4],"tlp":["der",234317],"tlw":["der",139944],"lp":["der","ste","rd","rs","ers","rde","est","ec","rst","dr","erst","eder","ser","erd","ster","rc","dere","erde","sste","rsc"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["war",130034],"tlw":["war",76994],"lp":["war","wer","ware","rac","dar","etw","etwa","rw","werd","erw","dac","dara","dra","wart","star","rad","stra","fes","rwa","ras"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",160994],"trw":["n",114],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",368610],"trp":["na",94964],"tlw":["an",48407],"trw":["na",1852],"lp":["an","ann","ana","anna","aq","qq","aqq"],"rp":["na","nan","nna","nann","nq"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",476],"trp":["ns",79641],"trw":["j",60],"lp":["sn"],"rp":["ns","nns","nj"]},"19":{"input":[1,2,5],"tlp":["wan",16048],"trp":["ja",26608],"tlw":["wann",1025],"trw":["ja",12041],"lp":["wan","ans","san","anns","wann","ssan","anw","ansa","sna","aj"],"rp":["ja","nw","nas","nsa","jan","nwa","nass","nja","jann","jans"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",1123066],"trp":["ne",372242],"tlw":["en",15361],"trw":["nennen",573],"lp":["en","enn","ene","enen","enne","ey","een","eyn"],"rp":["ne","nen","nne","nnen","yn","ny","nee","nenn","nny","ye","ney","yen"]},"21":{"input":[1,3,5],"tlp":["ena",8169],"trp":["ya",3585],"trw":["nyx",188],"lp":["ena","anne","ane","ay","ean","anen","anny","enan","any","enna","xan","eq","aya","xen","exen"],"rp":["ya","yan","nea","yx","nyx"]},"22":{"input":[2,3,5],"tlp":["den",182183],"trp":["nd",429334],"tlw":["den",92856],"trw":["jeden",2171],"lp":["den","sen","end","ssen","ens","esen","ende","denn","eden","dene"],"rp":["nd","nde","je","nden","nes","jed","nse","jede","ndes","jen"]},"23":{"input":[1,2,3,5],"tlp":["and",91655],"trp":["ndw",5333],"tlw":["wenn",26017],"trw":["nase",1633],"lp":["and","ande","wen","dan","wenn","dann","wand","endw","edan","aden","sand","wend","dana","anda"],"rp":["ndw","nand","nwe","nda","nase","ndwa"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",17983],"trp":["nt",123340],"tlw":["b",133],"lp":["bt","tb","tn","bb","bn","ttn"],"rp":["nt","nnt","nb","ntt","ntn","nntn","ntb","nnb"]},"25":{"input":[1,4,5],"tlp":["ab",110601],"trp":["nf",19807],"tlw":["ab",6161],"lp":["ab","ba","tan","ant","annt","fan","fn","anf","ffn","abt","ban","anft"],"rp":["nf","nfa","nat","nft","ntf","nab","nba","nta"]},"26":{"input":[2,4,5],"tlp":["bs",13819],"trp":["nst",18313],"lp":["bs","bst","bsc","sb","tj","stb","bj","bc","bstb"],"rp":["nst","nsc","nc","nts","ntsc","nnst","ntst","nnsc","nstb","nsb","nnts"]},"27":{"input":[1,2,4,5],"tlp":["stan",16933],"trp":["nac",40467],"tlw":["sanft",880],"lp":["stan","antw","bw","anc","abs","bac","anac","ansc","sanf","anst","absc","abw","stab","sab","abst"],"rp":["nac","ntw","nfac","jac","nsta"]},"28":{"input":[3,4,5],"tlp":["be",315569],"trp":["nte",72977],"tlw":["bett",2066],"trw":["neben",3915],"lp":["be","ten","ber","ren","ben","eb","rn","ern","br","ebe","ent","eben","rb","eren","tten","tern"],"rp":["nte","ner","nnte","nter"]},"29":{"input":[1,3,4,5],"tlp":["abe",79213],"tlw":["aber",39696],"lp":["abe","aber","fen","ran","aren","aben","bra","ffen","bar","arb","arbe","bef","aten","aran","fern","fne","enf","ffne","ary","arry"],"rp":[]},"30":{"input":[2,3,4,5],"tlp":["rden",23780],"trp":["nder",38861],"tlw":["ersten",3262],"trw":["jeder",2456],"lp":["rden","bes","sten","rend","ensc","best","dern","ents","bed","enst","bess","bend","enc"],"rp":["nder","jet","nser","nste","ndet","nce","ndt"]},"31":{"input":[1,2,3,4,5],"tlw":["waren",18283],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",157],"trw":["i",123],"lp":[],"rp":["ii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["zi",20813],"trp":["ia",9362],"tlw":["z",118],"lp":["zi","za","ai","az","zz","azi","aza","zzi","aia","zza","azz"],"rp":["ia","iz","izi","izz","izzi","izza"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",316897],"trp":["is",130177],"trw":["is",168],"lp":["si","ssi","sk","sik","sis","ski"],"rp":["is","iss","ki","ik","ks","kk","isi","isk","kis","isik","kiss","issi","iski","ksi"]},"35":{"input":[1,2,6],"tlp":["wi",167420],"trp":["ka",56299],"trw":["kai",169],"lp":["wi","zw","wis","zwi","wiss","zwis","ak","zwa","assi","sz","zis","asi","zs","ais"],"rp":["ka","ksa","kw","kz","isa","kas"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",652619],"trp":["ie",651532],"tlw":["ei",176],"lp":["ei","eie","eei","eiei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",61436],"trp":["ize",965],"lp":["ze","zei","zie","ez","eze","ezei","xi","eza","exi","ezi","eiz","axi","ezie","zzie","azie","eize"],"rp":["ize","izie","izei","ix"]},"38":{"input":[2,3,6],"tlp":["di",276515],"trp":["ke",89577],"tlw":["die",198925],"trw":["idee",1017],"lp":["di","die","sie","sei","dies","eis","eid","ek","esi","dei","eide"],"rp":["ke","ies","kei","id","iese","ied","iede","ide","ise"]},"39":{"input":[1,2,3,6],"tlp":["wie",72674],"tlw":["wie",48051],"trw":["kase",144],"lp":["wie","wei","wied","zwe","zwei","weis","wid","wide","ewi","daz","eka","wies","zd","zde","dwi","ewis","ake","dwie","zes","ewei"],"rp":[]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",64747],"trp":["it",174613],"tlw":["v",67],"lp":["ti","vi","tti","tit","tv","tiv","viv","vivi","vt","vit"],"rp":["it","itt","iti","iv","ivi","itiv"]},"41":{"input":[1,4,6],"tlp":["tz",57975],"trp":["if",14792],"tlw":["fitz",198],"lp":["tz","zt","tzt","fi","va","atz","av","vat","fz","ati","fti","afti","fzt","tia","zit"],"rp":["if","itz","iff","ita","ift"]},"42":{"input":[2,4,6],"tlp":["sic",113216],"trp":["ic",528821],"tlw":["vick",133],"trw":["ist",43418],"lp":["sic","ck","sti","ckt","tis","tisc","sit","cks","ckk","ci"],"rp":["ic","ist","kt","ick","isc","ickt","its","kti","issc","isti"]},"43":{"input":[1,2,4,6],"tlp":["wisc",7325],"trp":["kat",4899],"tlw":["satz",590],"trw":["katsa",541],"lp":["wisc","ack","wic","sitz","ackt","akt","satz","tak","wit","stia","asti","akti","cksa","twi","sack","fis","fisc"],"rp":["kat","katz","kaf"]},"44":{"input":[3,4,6],"tlp":["ri",94871],"trp":["ir",113010],"tlw":["vier",1685],"lp":["ri","ve","ver","eit","rei","eite","vie","rie","eri","tie","tei","reit","rit","tri"],"rp":["ir","ier","ite","itte","iter","iert"]},"45":{"input":[1,3,4,6],"tlp":["rz",29091],"trp":["ief",12679],"tlw":["zeit",6744],"lp":["rz","etz","etzt","erz","zte","tze","tzte","zeit","rze","eif","vate","tief","rif","arz","rief","riff","fie","eife"],"rp":["ief","ife"]},"46":{"input":[2,3,4,6],"tlp":["rk",34305],"trp":["kte",27132],"tlw":["dir",10511],"lp":["rk","eic","vers","erk","cke","ckte","eck","dic","ric","dir","seit","esic","eckt","ris","reic"],"rp":["kte","kr","ird","irk","iste"]},"47":{"input":[1,2,3,4,6],"tlw":["wir",29431],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",659187],"trw":["in",95638],"lp":[],"rp":["in","ni","ih","hi","hn","ihn","hin","inn","ini","nh","hni","hh","nni","nin","nih","inh","inni","hnh","inin","hinn"]},"49":{"input":[1,5,6],"tlp":["ah",76442],"trp":["ha",235199],"tlw":["ah",759],"trw":["nah",453],"lp":["ah","anz","zah","ahn","ani","ahi"],"rp":["ha","nz","han","nah","inz","ina","nzi","inzi","haa","hina","inan","ian","hna","hz"]},"50":{"input":[2,5,6],"tlp":["sin",16409],"trp":["nk",38114],"tlw":["sinn",805],"trw":["ins",5955],"lp":["sin","sh","shi","sinn"],"rp":["nk","ins","hs","kin","kn","nis","ink","nsi","kni","hk","ish","nks","nik","kh","niss","hns"]},"51":{"input":[1,2,5,6],"tlp":["wah",16237],"trp":["hw",26859],"tlw":["sah",11589],"trw":["kann",10392],"lp":["wah","sah","ank","win","sha","wanz"],"rp":["hw","kan","kann","has","hwa","jah","hwi","hwan","hwin","insa","inw","nzw","inzw","nzwi"]},"52":{"input":[3,5,6],"tlp":["ein",403963],"trp":["ine",235416],"tlw":["ein",66637],"trw":["ihnen",10635],"lp":["ein","eine","eh","ehe","ehen","eni"],"rp":["ine","he","hen","inen","hie","hne","hei","nie","ien","hnen","ihne","inne","nei","nein"]},"53":{"input":[1,3,5,6],"tlp":["zen",18592],"trp":["nze",12641],"tlw":["zehn",1114],"trw":["nahe",2024],"lp":["zen","ahe","anze","eha","einz","eina","zeh","zieh","zehn","ahne","ahen","enz","enze","anie"],"rp":["nze","nahe","nzen","inze","hze","hzei"]},"54":{"input":[2,3,5,6],"tlp":["sein",76189],"trp":["ind",34029],"tlw":["sein",25372],"trw":["keine",11161],"lp":["sein","seh","sehe","sind","dein","enk","din","denk","eseh","eins","enke"],"rp":["ind","ken","kein","nke","inde","ines","nken","iden","kenn"]},"55":{"input":[1,2,3,5,6],"tlw":["wissen",4749],"trw":["hand",7972],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",40682],"trp":["ht",252865],"tlw":["bin",8228],"lp":["bi","bin","th","bit","bitt","tin","thi"],"rp":["ht","int","ib","hint","hti","ibt","hnt","nit","nti","nv","htb","hnit","nitt"]},"57":{"input":[1,4,5,6],"tlp":["fin",11249],"trp":["hat",98724],"tlw":["zantini",146],"trw":["hat",19760],"lp":["fin","fah","tha","fh","ahnt","tian"],"rp":["hat","hatt","hab","haf","inf","infa","haft","habt","haff","hif","hiff","htba","nzt","hatz"]},"58":{"input":[2,4,5,6],"tlp":["ch",1037218],"trp":["ich",501099],"tlw":["sich",92744],"trw":["ich",126388],"lp":["ch","cht","sch","sich","chi","bis","schi","chts","chn","chs","schn","chti"],"rp":["ich","icht","nic","nich","isch","hts","nsch","hst"]},"59":{"input":[1,2,4,5,6],"tlw":["ach",1398],"trw":["nach",23041],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["bei",38768],"trp":["hr",166493],"tlw":["einer",16300],"trw":["ihr",34974],"lp":["bei","ehr","rin","rh","erh","eht","teh"],"rp":["hr","ihr","hre","hte","her","ihre","iner","hren","ieb","hier","inte","hrer","hten"]},"61":{"input":[1,3,4,5,6],"tlw":["arbeit",1479],"trw":["hatte",62837],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["dich",11521],"trw":["nickte",3237],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["wahrend",7160],"trw":["jetzt",12900],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",2552],"trw":["o",417],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",544],"trp":["oa",1055],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",96770],"trp":["os",26972],"tlw":["so",35536],"lp":["so","sso","sos"],"rp":["os","oss","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",62062],"trp":["ow",3659],"tlw":["wo",7187],"lp":["wo","sow","woo","sowo","aos","swo","wow","aso","soa","woa","awo","sao"],"rp":["ow","osa","owa","owo","osw","osas"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",4452],"trp":["oe",1221],"trw":["-",5881],"lp":["eo","e-"],"rp":["oe","-o","-e"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",546],"trp":["ox",233],"lp":["a-"],"rp":["ox","-a","oxa","oxe"]},"70":{"input":[2,3,7],"tlp":["do",34031],"trp":["od",27025],"tlw":["dose",88],"lp":["do","eso","edo","sod","esso","deo","ddo","s-","s-o","soe","dos"],"rp":["od","ode","ose","osse","ood","-s","odes","ods","odo"]},"71":{"input":[1,2,3,7],"tlp":["ewo",5402],"trp":["oda",1427],"tlw":["sodass",1096],"lp":["ewo","dwo","soda","wood","sowe","ado","wod"],"rp":["oda","odas","owe","-w","-we","oswe","owes"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["gt",75665],"trp":["ot",33072],"tlw":["tot",1524],"trw":["otto",56],"lp":["gt","to","go","tot","tg","got","gott","gg","tto","gto","ttg"],"rp":["ot","og","ott","oot","oto","otto","ogo","ogg","ottt"]},"73":{"input":[1,4,7],"tlp":["ag",98104],"trp":["of",22112],"tlw":["tag",3421],"trw":["oft",1577],"lp":["ag","ga","agt","fo","tag","fg","fot","ago","fga","ttag","foto","tof","foa","gf"],"rp":["of","off","oga","ofo","oft","offt"]},"74":{"input":[2,4,7],"tlp":["gs",15827],"trp":["oc",76156],"tlw":["sto",607],"lp":["gs","sto","gst","sg","sog","co","toc","stoc","tos","gc","sgc","gos","goss"],"rp":["oc","ost","ots","osc","oots","otsc","otos"]},"75":{"input":[1,2,4,7],"tlp":["sag",41908],"tlw":["sagt",3037],"lp":["sag","sagt","two","sof","soga","sofo","gsa","wag","woc","gas","ags","gast","gw","agst","wagt","stof","aco","asto","stag","sags"],"rp":[]},"76":{"input":[3,4,7],"tlp":["ge",417472],"trp":["or",139857],"tlw":["gro",12824],"trw":["ort",1465],"lp":["ge","eg","ro","gte","gr","ger","rg","ege","rge","geg","gro","erg","gege","egt","tro"],"rp":["or","ort","orte","ote","org"]},"77":{"input":[1,3,4,7],"tlp":["agte",36381],"trp":["offe",6976],"tlw":["fragte",8751],"lp":["agte","age","rag","gef","frag","ragt","gar","for","gera","rage","gefa","ega","fort","gra","fge","tage","fote","trag"],"rp":["offe","ogar"]},"78":{"input":[2,3,4,7],"tlp":["ges",52897],"trp":["oder",15264],"tlw":["dort",4958],"trw":["oder",15082],"lp":["ges","doc","gesc","gest","gese","ged","dor","roc","dort","sor","sorg","sge","ros","stor","tod","rges"],"rp":["oder","ord","orde","ors"]},"79":{"input":[1,2,3,4,7],"tlw":["sagte",25887],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",390483],"trw":["nun",5974],"lp":[],"rp":["un","on","nu","no","onn","nun","unn","ou","nno","non","nnu","nnun","ono","onno","uo","unno","uu","uun","unu","unun"]},"81":{"input":[1,5,7],"tlp":["au",303972],"trp":["nau",10174],"tlw":["au",5558],"lp":["au","aun","qu","qua","anu","annu","ano","quo"],"rp":["nau","ona","ua","una","oan","unan","onna","unna","uan","unau","oann","oana"]},"82":{"input":[2,5,7],"tlp":["su",18391],"trp":["us",129755],"tlw":["su",647],"trw":["uns",13571],"lp":["su","son","sons","sonn","sun","sus","ssu"],"rp":["us","uss","uns","ju","jun","ons","jo","nso","uso","jon","jus","ous","nos"]},"83":{"input":[1,2,5,7],"tlp":["aus",69449],"trp":["usa",6060],"tlw":["aus",34379],"trw":["jason",129],"lp":["aus","wu","wus","wuss","wun","auss","wuns","auso","sau","won","saus","assu","ausw","asu"],"rp":["usa","naus","ussa","unw","uw","usw"]},"84":{"input":[3,5,7],"tlp":["eu",55225],"trp":["ue",28283],"trw":["neue",1471],"lp":["eu","eue","enu","eun","eno","euen","enno"],"rp":["ue","onne","uen","neu","one","une","neue","onen","unen","n-","unne","oy","yo"]},"85":{"input":[1,3,5,7],"tlp":["aue",12361],"trp":["ux",957],"lp":["aue","enau","auen","aune","que","equ","eque","an-","ean-","eau","equa","eona"],"rp":["ux","uxa","onea","na-","nna-","naue","oya","uya"]},"86":{"input":[2,3,5,7],"tlp":["du",75774],"trp":["und",249565],"tlw":["du",44764],"trw":["und",220198],"lp":["du","dun","deu","eund","sond","esu","seu","edeu","don"],"rp":["und","unde","ud","ond","ude","use","usse","unse","onde","oden","jedo"]},"87":{"input":[1,2,3,5,7],"tlw":["sonea",505],"trw":["nasuada",322],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",42893],"trp":["ng",148258],"tlw":["gut",8191],"trw":["ob",5684],"lp":["tu","gu","tun","bo","gut","bu","tung","gn","gun"],"rp":["ng","ut","ub","ung","ug","ob","onnt","unt","utt","nung","ngt"]},"89":{"input":[1,4,5,7],"tlp":["auf",98105],"trp":["uf",112428],"tlw":["auf",72050],"trw":["offnung",187],"lp":["auf","fu","ang","gan","aug","aut","aub","gab","tau","fun","gang","bau","aufg","atu"],"rp":["uf","uft","ufg","offn","unf","natu"]},"90":{"input":[2,4,5,7],"tlp":["stu",13806],"trp":["uc",97659],"tlw":["sonst",2451],"trw":["jung",472],"lp":["stu","suc","stun","buc","tuc","stuc"],"rp":["uc","noc","usst","ust","ngs","jung","ngst","usc","usg","onst","unsc","uts","ubs","utsc"]},"91":{"input":[1,2,4,5,7],"tlw":["angst",3094],"trw":["jacob",437],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",136399],"trp":["ur",167807],"tlw":["gegen",5275],"trw":["nur",23303],"lp":["gen","ru","egen","geb","eut","rgen","run","tur"],"rp":["ur","nge","ube","uber","ute","ngen","nur","uge","unte","ugen","unge","uer"]},"93":{"input":[1,3,4,5,7],"tlw":["fur",24293],"trw":["offnete",1687],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["boden",4242],"trw":["junge",3404],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["wurde",25182],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["li",151710],"trw":["ol",121],"lp":[],"rp":["li","ll","ol","il","oll","lo","ill","io","lli","ili","llo","illi","olli","oli","lio","lil","ilo","oi","lili","olo"]},"97":{"input":[1,6,7],"tlp":["al",191580],"trp":["la",130568],"tlw":["all",2129],"trw":["lilia",446],"lp":["al","all","zo","zl","zli","ali","alli","ala","allz"],"rp":["la","lz","olz","lia","ola","liz","ila","oz","oliz","lla","llz"]},"98":{"input":[2,6,7],"tlp":["sol",18755],"trp":["ko",75943],"tlw":["soll",3129],"trw":["los",2861],"lp":["sol","soll","sl","sil"],"rp":["ko","ls","kl","los","kli","lls","lso","loss","lk","ok","olk","ills","klo","llk","lko","llko"]},"99":{"input":[1,2,6,7],"tlp":["als",59443],"trp":["las",17376],"tlw":["als",47093],"trw":["lass",1226],"lp":["als","wol","woll","wil","will","also","wal","alls","wolk","sal","sola","sowi","alas"],"rp":["las","lass","kla","kal","oka","owi","low"]},"100":{"input":[3,6,7],"tlp":["el",169112],"trp":["le",200448],"tlw":["eile",168],"trw":["lie",7334],"lp":["el","ell","eil","elle","ele","eile","eli"],"rp":["le","lle","lei","lie","iel","llei","olle","iell","iele","ile","ille","ilie","lee"]},"101":{"input":[1,3,6,7],"tlp":["alle",36348],"trp":["lze",595],"tlw":["alle",9095],"trw":["lizzie",239],"lp":["alle","ale","ela","zel","elz","ezo","ziel","zoe","ael","zell","ella","alee","eal"],"rp":["lze","lize","iela","oze","lzei","-al","-ali"]},"102":{"input":[2,3,6,7],"tlp":["sel",17287],"trp":["ld",21588],"tlw":["seele",607],"trw":["leise",2478],"lp":["sel","dl","eko","dli","del","eld","els"],"rp":["ld","kle","les","klei","lles","kel","lde","ild","leid","leis","old","ilde","lke"]},"103":{"input":[1,2,3,6,7],"tlw":["alles",9526],"trw":["lasse",483],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",111639],"trp":["lt",103510],"tlw":["vollig",1315],"trw":["ig",1168],"lp":["vo","gl","gi","tig","tl","tli","gli","vol","voll"],"rp":["lt","ig","llt","ollt","igt","lg","olg","lig","ogl","lot","ogli"]},"105":{"input":[1,4,6,7],"tlp":["alt",26083],"trp":["lag",11095],"tlw":["zog",4180],"trw":["lag",3548],"lp":["alt","fl","fal","fall","gla","zog","zig","fol","folg","avo","tzl","fla","tzli","agi"],"rp":["lag","lf","lat","otz","latt","lotz"]},"106":{"input":[2,4,6,7],"tlp":["tlic",10135],"trp":["lic",83791],"tlw":["still",966],"trw":["lost",108],"lp":["tlic","cl","glic","ckl","gk","sig","solc","ckli","stil"],"rp":["lic","lick","klic","lc","ock","lst","olc","llst","igk","lsc","igs"]},"107":{"input":[1,2,4,6,7],"tlw":["willst",2074],"trw":["lasst",1485],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["vor",42281],"trp":["lte",70997],"tlw":["vor",22128],"trw":["legte",3034],"lp":["vor","elt","rl","erl","gel","viel","tel","elte","eig","rli","tell","eige","verl"],"rp":["lte","ige","llte","ler","ieg","leg","irg"]},"109":{"input":[1,3,4,6,7],"tlw":["fiel",2565],"trw":["letzte",1489],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["sollte",5278],"trw":["krieger",1798],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["wollte",8491],"trw":["klar",2511],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["hl",69806],"trw":["oh",1758],"lp":[],"rp":["hl","ho","lu","oh","uh","hu","ul","hon","ohn","hli","ln","uhl","ohl","hul","lin","nl","hol","hun","hlu","ion"]},"113":{"input":[1,5,6,7],"tlp":["zu",171648],"trp":["lan",36595],"tlw":["zu",106187],"trw":["hinzu",1319],"lp":["zu","ahl","zahl","azu","zun","zau","aul","anzu"],"rp":["lan","lau","hau","hal","hla","nzu","inau","hall","inzu","unz","hlan","iau"]},"114":{"input":[2,5,6,7],"tlp":["soh",2201],"trp":["kon",39622],"tlw":["sohn",1591],"trw":["john",638],"lp":["soh","sohn"],"rp":["kon","konn","ku","unk","lus","hlos","kun","koni","luss","uk","nkl","unkl","kus","klin","hos","link","kuss","luk"]},"115":{"input":[1,2,5,6,7],"tlw":["wohl",3262],"trw":["haus",3123],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eln",9970],"trp":["len",34944],"trw":["ohne",6453],"lp":["eln","eho","elen"],"rp":["len","llen","lein","hel","hle","ohne","hiel","hlie","leu","nel","uhe","hlen","heu","ly","hnel","nell","ohe"]},"117":{"input":[1,3,5,6,7],"tlw":["allein",3101],"trw":["luxa",831],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["sollen",1705],"trw":["konnen",8192],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["dazu",3106],"trw":["lassen",4737],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["von",54263],"trp":["ing",35552],"tlw":["von",48992],"trw":["hob",2725],"lp":["von","bl","bli","gin","ging","bil","blu"],"rp":["ing","lb","nig","htig","hlt","hut","hob","lug","ntl","hig","onig","lut","ult"]},"121":{"input":[1,4,5,6,7],"tlw":["ganz",8095],"trw":["luft",3854],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["schon",15769],"trw":["noch",31550],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["auch",23263],"trw":["obwohl",3157],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["gehen",3878],"trw":["leben",6005],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["zur",7461],"trw":["lange",4757],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["doch",19379],"trw":["konnte",19700],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["zuruck",7484],"trw":["naturlich",3611],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",10101],"trw":["p",276],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",9189],"trp":["pa",25493],"trw":["papa",249],"lp":["ap","app","apa","appa"],"rp":["pa","paa","pap","papa","ppa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",35230],"trp":["ps",471],"lp":["sp","ssp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",6529],"trp":["pas",4544],"tlw":["spa",543],"trw":["pass",277],"lp":["spa","sap","wap","wapp","aps","asp"],"rp":["pas","pass"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",4107],"trp":["pe",21955],"lp":["ep","epp","eppe","e'"],"rp":["pe","ppe","pee","'e"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["appe",1127],"trp":["px",233],"trw":["px",233],"lp":["appe","ape","epa","xp","exp","a'","eap"],"rp":["px"]},"134":{"input":[2,3,8],"tlp":["esp",4229],"trp":["'s",1830],"lp":["esp","spe","espe","sep","spee","s'","dsp","dspe","e's","dep","es'"],"rp":["'s","pes","peed"]},"135":{"input":[1,2,3,8],"tlp":["espa",426],"trw":["passe",61],"lp":["espa","dap"],"rp":[]},"136":{"input":[4,8],"tlp":["tp",1024],"trp":["pt",8640],"trw":["pt",821],"lp":["tp","ttp"],"rp":["pt","ppt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["appt",1143],"trp":["pf",28238],"trw":["pat",81],"lp":["appt","tap","apf","tpf","attp","ttpf","fp","tapf","apt","tapp","fpa","apft","apta","ffp"],"rp":["pf","pat","pft","pfa","pta"]},"138":{"input":[2,4,8],"tlp":["tsp",820],"trp":["pts",393],"lp":["tsp","stp"],"rp":["pts","ptst","pst"]},"139":{"input":[1,2,4,8],"tlp":["spat",3485],"trp":["pac",1868],"tlw":["spat",894],"trw":["passt",223],"lp":["spat","stap","cap","tspa","fpas","capt","fsp"],"rp":["pac","pfs","pfsc","ptsa","past"]},"140":{"input":[3,4,8],"tlp":["rp",4472],"trp":["pr",23900],"tlw":["treppe",1030],"trw":["peter",275],"lp":["rp","rpe","rper","rep","trep","repp","erp","ept","t'","r'"],"rp":["pr","per","pre","pte","ppte","pet","pert","peet","pete","ptet"]},"141":{"input":[1,3,4,8],"tlp":["rpf",493],"trp":["pra",7549],"tlw":["tapfer",173],"trw":["paar",4977],"lp":["rpf","erpf","apfe","rpa","erpa","apr","rap","tape","ar'","ra'"],"rp":["pra","pfe","paar","pfte","pate","pfer","par","patr","perf","part"]},"142":{"input":[2,3,4,8],"tlp":["spr",13156],"trp":["prec",3135],"tlw":["speer",150],"trw":["presste",522],"lp":["spr","spre","rsp","espr","ersp","rspr","t's","sper","sept","tspr","resp","r's","ce'"],"rp":["prec","pers","pres","pred","perc","perd","pec"]},"143":{"input":[1,2,3,4,8],"tlw":["spater",2320],"trw":["pferd",730],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",75202],"lp":[],"rp":["mm","nm","mp","np","mn"]},"145":{"input":[1,5,8],"tlp":["am",75203],"trp":["ma",116805],"tlw":["am",13314],"trw":["man",13524],"lp":["am","amm","amp","ama","aman","anm"],"rp":["ma","man","mann","nma","nam","pan","nap","napp","pann","mma","mman","mam","mama","mna"]},"146":{"input":[2,5,8],"tlp":["sm",2006],"trp":["ms",3988],"tlw":["sms",84],"lp":["sm","ssm","sms"],"rp":["ms","mms","nsp","mj","nsm"]},"147":{"input":[1,2,5,8],"tlp":["sam",18083],"trp":["nsam",1490],"tlw":["sam",1544],"trw":["japan",53],"lp":["sam","samm","span","sma","asam","ams","ansp","sams","wam","wamm","ssam"],"rp":["nsam","mas","jam","mass","maj","mw","nspa","mja","mjan"]},"148":{"input":[3,5,8],"tlp":["em",142396],"trp":["me",172798],"tlw":["em",427],"trw":["'ne",199],"lp":["em","eme","emp","enp","enem","enpe"],"rp":["me","mme","men","nem","mmen","pen","ppen","mpe","my","mee","yp","npe","ym","mmy"]},"149":{"input":[1,3,5,8],"tlp":["ema",15399],"trp":["name",3654],"tlw":["amy",168],"trw":["namen",2293],"lp":["ema","ame","eman","amme","amen","ampe","aym","ampy","xem","eam","amy","enma","anme","emna","xeme"],"rp":["name","max","mae","may","maya"]},"150":{"input":[2,3,5,8],"tlp":["dem",54438],"trp":["mens",6613],"tlw":["dem",45085],"trw":["jedem",1143],"lp":["dem","sem","esem","emd","edem","emde","esm","djem","dm"],"rp":["mens","jem","md","mes","ndem","mde","mess","mden","mend","med","mmes"]},"151":{"input":[1,2,3,5,8],"tlw":["wem",425],"trw":["jemand",3073],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",2485],"trp":["mt",14056],"lp":["tm","bm"],"rp":["mt","mmt","mb","ptm","mpt"]},"153":{"input":[1,4,5,8],"tlp":["ampf",3371],"trp":["mpf",5070],"tlw":["amt",94],"trw":["matt",200],"lp":["ampf","tam","amt","fam","ammt","tamm","atm","fm","tama","tma","tman"],"rp":["mpf","mat","mpft","npf","matt","mant","mpfa","pfan","ptma"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["stm",109],"trp":["mst",1918],"lp":["stm","bstm"],"rp":["mst","mmst","ntsp","msc","mmsc","mc","nstm"]},"155":{"input":[1,2,4,5,8],"tlw":["stamm",309],"trw":["mats",101],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",24866],"trp":["mer",37720],"tlw":["typ",417],"trw":["mr",1767],"lp":["rm","rem","rme","tem","erm","emer","bem","beme","rmen","teme"],"rp":["mer","mmer","mte","ment","mmte","mr","met","mete","mbe","mert"]},"157":{"input":[1,3,4,5,8],"tlw":["arm",2393],"trw":["manner",2823],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["erdem",1712],"trw":["mrs",981],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["warme",548],"trw":["mandred",237],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",11374],"lp":[],"rp":["pi","ip","ipp","ppi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",2458],"trp":["papi",842],"trw":["pia",152],"lp":["api","aip","zip","zp","zap","zapp"],"rp":["papi","paz","pazi","pia","piz","pizz"]},"162":{"input":[2,6,8],"tlp":["spi",7019],"trp":["isp",965],"lp":["spi"],"rp":["isp","ispi","pis","kp","kip","kipp","ksp","kspi","ips"]},"163":{"input":[1,2,6,8],"tlp":["spaz",195],"trp":["kap",1913],"lp":["spaz","zsp","zspi","wisp","szip","szap"],"rp":["kap","kapi","kapp"]},"164":{"input":[3,6,8],"tlp":["eppi",167],"trp":["pie",5917],"lp":["eppi","eip"],"rp":["pie","ippe","pei","peie","ie'","ipe"]},"165":{"input":[1,3,6,8],"tlp":["apie",1000],"trp":["'z",210],"lp":["apie","zep","a'z","a'za","z'"],"rp":["'z","'za"]},"166":{"input":[2,3,6,8],"tlp":["spie",4741],"trp":["pek",382],"tlw":["spie",186],"lp":["spie","eisp","spek","spei","espi","skep","disp","sie'"],"rp":["pek","peis","kep","ispe","is'","ie's","idep","k'","k'e"]},"167":{"input":[1,2,3,6,8],"trw":["kappe",55],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",377],"trp":["pit",3051],"tlw":["tippt",50],"lp":["tip","tipp"],"rp":["pit","pti","ippt","itp","ipt","piv"]},"169":{"input":[1,4,6,8],"tlp":["apit",1458],"trp":["pitz",1593],"trw":["pfiff",129],"lp":["apit","zpf","tzp","zapf"],"rp":["pitz","pfi","pita","pati","ipf","ptai","pfif","pav","pavi","patz"]},"170":{"input":[2,4,6,8],"tlp":["spit",1593],"trp":["pist",286],"lp":["spit","cksp"],"rp":["pist","pisc","pic","ppic","ptis","ktp"]},"171":{"input":[1,2,4,6,8],"tlw":["spitz",113],"trw":["packt",105],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",838],"trp":["pri",3830],"tlw":["tippte",195],"lp":["rip","epti","ripr","verp","eitp","ripp","epri","ript"],"rp":["pri","pier","pite","prie","ipr","ipre","prei","ptie","peit","pir","prit","peti"]},"173":{"input":[1,3,4,6,8],"tlw":["appetit",109],"trw":["papier",621],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["ripred",581],"trw":["preis",373],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["spitze",616],"trw":["passiert",1606],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",156924],"trw":["im",27050],"lp":[],"rp":["mi","im","hm","imm","ihm","inm","min","ph","him","himm","phi","hmi","nim","nimm","imn","mni","imni","mh","pin","nmi"]},"177":{"input":[1,5,6,8],"tlp":["ami",10941],"trp":["inma",7220],"tlw":["ahm",221],"trw":["nahm",4064],"lp":["ami","ahm","zim","zimm","aph","aphi"],"rp":["inma","nahm","hma","mia","mah","ham","ima","mani","pha","hnap","iam","pani","hamm","mz"]},"178":{"input":[2,5,6,8],"tlp":["sim",1838],"trp":["mis",4451],"tlw":["sims",60],"trw":["miss",415],"lp":["sim","sph","spin","smi"],"rp":["mis","miss","mk","mnis","imms","imk","mik","jim","jimm","ims","mij","mmis","nspi","hms","issm","mmk"]},"179":{"input":[1,2,5,6,8],"tlw":["asami",402],"trw":["kam",6230],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["einm",7220],"trp":["mei",39849],"tlw":["einem",21852],"trw":["meine",11395],"lp":["einm","eim","ehm","ehme","emei","emi"],"rp":["mei","mein","inem","imme","meh","hme","iem","nehm","niem","hmen","heim","mie","hem","mien"]},"181":{"input":[1,3,5,6,8],"tlw":["annehmen",189],"trw":["nahmen",491],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["seinem",7860],"trw":["meines",844],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["damien",281],"trw":["niemand",3087],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",12361],"trp":["mit",82241],"tlw":["tim",137],"trw":["mit",65945],"lp":["tim","timm","thm","thim"],"rp":["mit","mitt","immt","htm","nmit","hmit","hmt","ptim","mith","mitn","mitb","ntim","htip","itm","hitm","htp"]},"185":{"input":[1,4,5,6,8],"tlw":["tamani",796],"trw":["mattia",102],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["stimmt",967],"trw":["mich",27002],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["wachmann",161],"trw":["macht",2965],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["beim",2845],"trw":["mir",28421],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["zimmer",2340],"trw":["prinz",511],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["stimme",5685],"trw":["menschen",4046],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["damit",7217],"trw":["machte",4587],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",16041],"lp":[],"rp":["op","po","opp"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",54],"trp":["opa",519],"lp":["apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["spo",569],"trp":["pos",794],"lp":["spo","sop"],"rp":["pos","osp","pso","ops"]},"195":{"input":[1,2,7,8],"lp":[],"rp":[]},"196":{"input":[3,7,8],"tlp":["eop",243],"trp":["oppe",220],"lp":["eop","epo"],"rp":["oppe","-p","ope"]},"197":{"input":[1,3,7,8],"tlp":["eopa",185],"lp":["eopa","xpo","expo"],"rp":[]},"198":{"input":[2,3,7,8],"tlp":["dop",158],"trp":["odsp",102],"lp":["dop","dopp"],"rp":["odsp","pose"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1390],"trp":["pot",525],"lp":["top","topp","tpo"],"rp":["pot","pott","pto","ptop"]},"201":{"input":[1,4,7,8],"tlp":["tpfo",466],"trp":["opf",13450],"tlw":["topf",130],"lp":["tpfo","topf","apto"],"rp":["opf","pfo","pfot","opft","pag","pagg"]},"202":{"input":[2,4,7,8],"tlp":["stop",653],"trp":["post",447],"tlw":["spott",92],"trw":["post",110],"lp":["stop","spot","tpos"],"rp":["post","poc"]},"203":{"input":[1,2,4,7,8],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",949],"trp":["pro",5714],"tlw":["reporter",63],"trw":["potter",173],"lp":["rop","gep","trop","gepr","g'","repo","epor","geop","tpro"],"rp":["pro","orp","orpe","por","port","-top","prot","prop","prog","pero","perg"]},"205":{"input":[1,3,4,7,8],"tlw":["tropfte",104],"trw":["pfote",449],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["gepresst",119],"trw":["perdor",186],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["stopfte",111],"trw":["professor",480],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["um",81208],"trw":["um",30478],"lp":[],"rp":["um","mu","om","mo","omm","pu","up","mon","mom","umm","mun","nom","nomm","upp","pun","ump","unm","omp","nmo","unmo"]},"209":{"input":[1,5,7,8],"tlp":["aum",11931],"trp":["mau",2979],"trw":["mona",273],"lp":["aum","aup","amo","amon","amu","apu","ammo","aom","anmu"],"rp":["mau","pau","mona","oma","uma","omma","manu","naom","oman","pua","mano"]},"210":{"input":[2,5,7,8],"tlp":["spu",5447],"trp":["mus",23962],"trw":["muss",5445],"lp":["spu","som","sum","somm","summ","sup","smu","supp"],"rp":["mus","muss","ums","usp","mons","omms","mso","umso","mos","usm","moos","ussp"]},"211":{"input":[1,2,5,7,8],"tlw":["amos",143],"trw":["maus",230],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["enom",2575],"trp":["omme",15487],"trw":["neuem",121],"lp":["enom","emu","empo","emo","emon","epu","eum"],"rp":["omme","ome","omen","mome","ume","umme","umen","uppe","umpe","omy","uem","mone","pony"]},"213":{"input":[1,3,5,7,8],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dumm",400],"trw":["mussen",4744],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["damon",348],"trw":["pause",441],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tum",1365],"trp":["mut",9353],"tlw":["tom",616],"trw":["mut",548],"lp":["tum","tom","tumm","ttom"],"rp":["mut","mutt","mog","upt","ommt","mg","umg","omb","ummt","mung","nmog","mot","umb","umt","put","mott"]},"217":{"input":[1,4,5,7,8],"tlw":["baum",788],"trw":["mag",837],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["stumm",329],"trw":["musst",1824],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["anspannung",163],"trw":["magnus",226],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["genommen",1020],"trw":["mutter",5624],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["raum",1894],"trw":["magen",753],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["spurte",2360],"trw":["musste",7028],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["warum",5314],"trw":["umstanden",254],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",9042],"lp":[],"rp":["pl","plo","lip","lipp","pol","poli","lop","lp","ilip","olp","pil","pli","pio","pilo","ipl","ipli","pill","opi","poll","ppl"]},"225":{"input":[1,6,7,8],"tlp":["zop",139],"trp":["pla",4483],"tlw":["apollo",54],"trw":["opal",202],"lp":["zop","zipl","apol","appl"],"rp":["pla","pal","lap","lapp","pala","opal","pliz","pilz","pila","ppla"]},"226":{"input":[2,6,7,8],"tlp":["spio",245],"trp":["kop",10195],"trw":["klops",60],"lp":["spio","spl","spli"],"rp":["kop","klop","posi","klip","kpl","ispl","plos","lops","kopi"]},"227":{"input":[1,2,6,7,8],"trw":["klaps",56],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",361],"trp":["piel",3820],"trw":["lippe",146],"lp":["elp","epl"],"rp":["piel","pel","lpe","olpe","ppel","leop","ple","lep","lepp","-pi","-pie","l'","ll'","oll'","pell","'el","lpel","opie"]},"229":{"input":[1,3,6,7,8],"trw":["pelz",894],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spiel",618],"trw":["klippe",159],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["speisesaal",104],"trw":["klappe",167],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tolp",465],"trp":["plot",3683],"trw":["pilot",82],"lp":["tolp","gip","tpl"],"rp":["plot","pito","pig","ppig","plit"]},"233":{"input":[1,4,6,7,8],"tlw":["zopf",91],"trw":["platz",1840],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["politik",180],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["spalt",238],"trw":["kopf",9064],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["prior",72],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["rappelte",154],"trw":["pfeil",312],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["spielte",526],"trw":["korper",2392],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["distelpfote",300],"trw":["kapitel",832],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["ml",4691],"trw":["philip",527],"lp":[],"rp":["ml","mli","mil","lm","lim","muh","imo","limm","mili","imon","hlim","minu","oph","umi","umin","hop","hmu","lum","llm","phil"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["zum",13031],"trw":["mal",9722],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simon",1611],"trw":["komm",1435],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["william",287],"trw":["kaum",3695],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["himmel",2108],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["einmal",7220],"trw":["plane",315],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["spielen",619],"trw":["kommen",3154],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["zusammen",3969],"trw":["niemals",1641],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["vom",5596],"trw":["html",387],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",198],"trw":["umhang",262],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["schlimm",464],"trw":["kommt",2302],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["allmahlich",712],"trw":["plotzlich",3426],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["gemeint",376],"trw":["herum",2872],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["familie",1680],"trw":["uberhaupt",2569],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["gekommen",2443],"trw":["mochte",2710],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["gemacht",2597],"lp":[],"rp":[]}} \ No newline at end of file
diff --git a/keyboards/gboards/dicts/aset/_generator/src/en-colemak-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/en-colemak-keymap.json
new file mode 100644
index 0000000000..2e8c2b1431
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/_generator/src/en-colemak-keymap.json
@@ -0,0 +1 @@
+{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",410],"tlw":["a",211837],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"r","baseshift":"R","tlp":["rr",29445],"tlw":["r",211],"lp":["rr"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["ar",265629],"tlw":["war",4160],"lp":["ar","wa","ra","aw","war","arr","wr","awa","ara","rw","raw","rar","rwa","rra","rwar","arra","awar","wra","warr","ww"],"rp":[]},"4":{"input":[3],"base":"s","baseshift":"S","tlp":["ss",89478],"tlw":["s",2993],"lp":["ss"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["as",286499],"tlw":["as",63759],"lp":["as","sa","ass","xa","ssa","ax","assa","asa","sas","saa","xas","ssas","sass","sax"],"rp":[]},"6":{"input":[2,3],"base":"f","baseshift":"F","tlp":["rs",105128],"tlw":["f",277],"lp":["rs","fr","ff","rf","sf","ssf","fs","sr","ssr","ffr","ffs"],"rp":[]},"7":{"input":[1,2,3],"tlp":["was",117615],"tlw":["was",112330],"lp":["was","fa","af","ars","ws","sw","far","fra","saw","aff","ras","fas","sar","rsa","ssar","saf","afr","aws","raf","rass"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",55910],"tlw":["t",670],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"p","baseshift":"P","tlp":["at",371419],"tlw":["at",51085],"lp":["at","ta","pa","ap","pp","app","pt","att","tat","pat","apt","apa","tta","atta","pap","pta","apta","patt","ppa","appa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["rt",81050],"tlw":["c",872],"lp":["rt","tr","ct","cr","rc","cc","tc","ttr","ctr","rtr","rcr","rct"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",118675],"tlw":["part",4589],"lp":["ca","ac","pr","art","par","act","tra","tw","rat","car","part","tar","rac","rta","cat","acc","rp","wat","ract","atc"],"rp":[]},"12":{"input":[3,4],"base":"d","baseshift":"D","tlp":["st",260669],"tlw":["st",798],"lp":["st","ts","ds","dd","sts","sd","dds","dst","tst","tts"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ad",140314],"tlw":["past",2353],"lp":["ad","da","sta","sp","ast","xp","ps","xt","pas","stat","sat","pass","add","spa","aps","dat","tas","past","ads","ats"],"rp":[]},"14":{"input":[2,3,4],"tlp":["rd",48242],"tlw":["dr",852],"lp":["rd","ft","dr","sc","str","rst","rds","rts","scr","cts","cs","tf","ddr","df","fts","cd","dsc","rsd","cst","fc"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["ard",26043],"tlw":["fact",3233],"lp":["ard","aft","fac","ward","star","stra","cas","fat","rad","fact","xc","dar","dra","sca","ards","rsta","draw","xtr","spr","fast"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",20957],"trw":["n",169],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"j","baseshift":"J","tlp":["an",578917],"trp":["na",51349],"tlw":["an",29559],"trw":["j",365],"lp":["an","ann","ana","aj","anna","aan"],"rp":["na","ja","nan","nj","nna","jan","nann"]},"18":{"input":[2,5],"base":"k","baseshift":"K","tlp":["rn",39425],"trp":["kn",27363],"trw":["k",182],"lp":["rn","rk","rkn"],"rp":["kn","nk","nr","nkn","kr","nkr"]},"19":{"input":[1,2,5],"tlp":["ak",39732],"trp":["ka",3991],"tlw":["ran",1611],"trw":["jr",190],"lp":["ak","wn","ran","wan","ark","ank","arn","rna","rank","rran","awn","aran","wak","warn","rawn","rka"],"rp":["ka","nar","nw","narr"]},"20":{"input":[3,5],"base":"m","baseshift":"M","tlp":["sm",13242],"trp":["ns",85305],"trw":["m",1273],"lp":["sm","sn","ssm"],"rp":["ns","ms","mm","nm","mn","nsm","nns","mns","mms"]},"21":{"input":[1,3,5],"tlp":["am",72035],"trp":["ma",137500],"tlw":["am",4235],"trw":["man",9572],"lp":["am","ans","sam","san","sma","asn","xam","ama","ams","xan"],"rp":["ma","man","nam","mas","mana","mma","mann","mman","maj","mass"]},"22":{"input":[2,3,5],"tlp":["rm",33028],"trp":["ks",14097],"trw":["mr",4133],"lp":["rm","sk","rms","rns","rks","rnm","sks","rkf","rkm"],"rp":["ks","nf","mr","mrs","nks","mf","kf","nsf","km","nfr","msf"]},"23":{"input":[1,2,3,5],"tlp":["ask",11409],"trp":["mar",15017],"tlw":["ask",2497],"trw":["mark",882],"lp":["ask","rma","arm","fam","rman","answ","wasn","ram","fran","fan","rans","arms","anks","warm","asks"],"rp":["mar","mak","mark","nsw","marr"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",3003],"trp":["nt",218499],"tlw":["b",695],"lp":["bt","tn","bb","tb"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ab",55519],"trp":["nat",11510],"tlw":["pan",150],"trw":["japan",279],"lp":["ab","ba","ant","tan","pan","tant","tab","ban","bab","bj","bat","batt","anta","apan","abb"],"rp":["nat","nta","nab","jap","japa"]},"26":{"input":[2,4,5],"tlp":["ck",51278],"trp":["nc",79565],"tlw":["bc",95],"lp":["ck","br","rb","rtn","ckn","rnt","bc","tk","ckb","tbr","ckt","cn","cb"],"rp":["nc","ntr","ncr","nct","kt","kb"]},"27":{"input":[1,2,4,5],"tlp":["can",27607],"trp":["ntra",2857],"tlw":["can",15149],"trw":["jack",1623],"lp":["can","ack","anc","tak","bac","back","want","bra","ranc","tanc","tran","bar","rtan","rab","cann","rant","tack"],"rp":["ntra","jac","jack"]},"28":{"input":[3,4,5],"tlp":["dn",14682],"trp":["nd",415919],"trw":["nd",119],"lp":["dn","bs","tm","dm","sb","stm","bst","db","bm","bts"],"rp":["nd","mb","nts","nds","nst","mst","ntm","mbs","ndm","ndn"]},"29":{"input":[1,3,4,5],"tlp":["and",307129],"trp":["mp",43386],"tlw":["and",266855],"trw":["mad",373],"lp":["and","stan","tand","ands","amp","dan","bas","ants","band","bad"],"rp":["mp","mat","mad","mpa","mpan","nda","matt","mpt","mand","nsta"]},"30":{"input":[2,3,4,5],"tlp":["cks",2772],"trp":["ndr",3159],"tlw":["cbs",76],"trw":["kd",65],"lp":["cks","rtm","ckm","rnst","fb","rmt","rdb","dk","bstr"],"rp":["ndr","nstr","nsc","mbr","ndf","mc","mcd","ndsc","mcc","ndk","ncts"]},"31":{"input":[1,2,3,4,5],"tlw":["dark",1865],"lp":[],"rp":[]},"32":{"input":[6],"base":"e","baseshift":"E","trp":["ee",129154],"trw":["e",471],"lp":[],"rp":["ee"]},"33":{"input":[1,6],"base":"q","baseshift":"Q","tlp":["ae",810],"trp":["ea",216643],"tlw":["q",103],"lp":["ae","aq"],"rp":["ea","eq","eea"]},"34":{"input":[2,6],"base":"z","baseshift":"Z","tlp":["re",464927],"trp":["er",558051],"tlw":["re",63],"trw":["er",80],"lp":["re","ree","ze","rre","reer","zz","rer","zer","reez"],"rp":["er","ere","err","eer","erre","ez","eez","eze","eeze","eere","erer"]},"35":{"input":[1,2,6],"tlp":["we",135334],"trp":["ear",54836],"tlw":["were",34909],"trw":["ear",427],"lp":["we","rea","are","wer","were","wee","wea","rew","az","req","za","wear","ware","area"],"rp":["ear","ew","era","eare","erw","ewe"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["se",231764],"trp":["es",259811],"tlw":["see",9997],"lp":["se","see","sse","ses","sses","sess","sees"],"rp":["es","ess","ese","esse","ees","eese"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ase",11581],"trp":["ex",43940],"tlw":["sea",1374],"trw":["ease",378],"lp":["ase","sea","asse","xe","sq","ases","sex","seq","seas","axe","xes"],"rp":["ex","eas","exa","ease","essa","exe","esea","easa","exas"]},"38":{"input":[2,3,6],"tlp":["fe",67683],"trp":["ers",54211],"tlw":["free",1788],"lp":["fe","res","ffe","rse","ser","fer","fee","ress","ffer","fere","rese","fre","ref"],"rp":["ers","ef","erf","eff","erse","efe","eres"]},"39":{"input":[1,2,3,6],"tlp":["reas",7091],"trp":["ears",10248],"tlw":["few",5711],"trw":["ears",565],"lp":["reas","few","swe","fea","swer","fear","sear","wes","afe","wers","safe","aref","affe","werf","swee","xer"],"rp":["ears","ews","ersa","exer"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["te",259049],"trp":["et",117117],"tlw":["tv",551],"trw":["et",324],"lp":["te","ve","tte","tee","tev","teve","teet","tv","vet","ttee"],"rp":["et","ev","eve","ett","eet","ette","ete","etee","eev","eeve"]},"41":{"input":[1,4,6],"tlp":["pe",115056],"trp":["ep",39298],"tlw":["tea",508],"trw":["eat",1112],"lp":["pe","av","ate","ave","va","ppe","pea","atte","appe","tea","tate","ape","ppea"],"rp":["ep","eat","eep","ept","eate","eav","epa"]},"42":{"input":[2,4,6],"tlp":["ce",144944],"trp":["ec",91763],"tlw":["tree",670],"trw":["ever",4714],"lp":["ce","ver","ter","rec","tter","cre","rv","tre","ret","cer","rce","cte","rte","cce"],"rp":["ec","ever","ect","erv","ert","ece"]},"43":{"input":[1,2,4,6],"tlp":["per",37369],"trp":["eca",14464],"tlw":["water",2519],"lp":["per","pre","ace","reat","pec","rep","ater","twe","rate","crea","pect","care","pare","twee","cep"],"rp":["eca","eac","etw","erat","etwe"]},"44":{"input":[3,4,6],"tlp":["de",167797],"trp":["ed",326541],"tlw":["set",3472],"trw":["ed",253],"lp":["de","ted","ste","sed","ded","des","ved","ves","tes","ssed","set","sted","dde","sev","seve","dee","dv"],"rp":["ed","est","eed"]},"45":{"input":[1,3,4,6],"tlp":["spe",18659],"trp":["ead",29380],"tlw":["state",2221],"trw":["east",920],"lp":["spe","ade","dea","ated","xpe","ped","pped","ates","aste","dep","adv","stea","step"],"rp":["ead","exp","expe","ext","esp","east","espe"]},"46":{"input":[2,3,4,6],"tlp":["red",36139],"trp":["ered",12958],"tlw":["street",2374],"trw":["effect",1185],"lp":["red","der","fte","ces","fter","dre","ced","ster","rest","sec","rde","cess","serv","ders","dec","cted","stre","ters","rder"],"rp":["ered"]},"47":{"input":[1,2,3,4,6],"tlw":["after",12071],"trw":["except",1180],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["he",1036192],"trw":["he",92135],"lp":[],"rp":["he","en","ne","hen","een","ene","nee","nne","eh","hn","hee","enn","nh","nen","enne","hene","ehe","nhe","ehen","enh"]},"49":{"input":[1,5,6],"tlp":["ane",5091],"trp":["ha",357027],"tlw":["anne",519],"trw":["jane",336],"lp":["ane","ah","anne","ahe","ahea"],"rp":["ha","han","hea","ean","je","nea","ena","eha","enj","jea","nha","eah","eane","jean","nq"]},"50":{"input":[2,5,6],"tlp":["ren",22668],"trp":["her",160213],"tlw":["zen",79],"trw":["her",47940],"lp":["ren","rne","rke","rh"],"rp":["her","ke","here","hr","ner","ern","hre","eren","kne","ek","eek","ener","ken","hree","kee","nner"]},"51":{"input":[1,2,5,6],"tlp":["wh",148489],"trp":["new",18090],"tlw":["when",27718],"trw":["new",10172],"lp":["wh","whe","wha","when","ake","wher","wen","ween","aren","week","arke","aken"],"rp":["new","har","hear","eak","knew","earn","nera","near"]},"52":{"input":[3,5,6],"tlp":["sh",119750],"trp":["me",235102],"tlw":["she",45928],"trw":["me",30278],"lp":["sh","she","sen","seem"],"rp":["me","em","men","hem","nes","eme","hes","mes","ens","ness","hese","eem","nse","mse","mem","emen"]},"53":{"input":[1,3,5,6],"tlp":["ame",34012],"trp":["has",13193],"tlw":["same",6718],"trw":["has",11125],"lp":["ame","sha","same","ash","ames","anes","sham"],"rp":["has","mea","mean","ema","name","eam","nex","exam","ham","eman","eans","exan","hame"]},"54":{"input":[2,3,5,6],"tlp":["rem",11660],"trp":["mer",13928],"tlw":["fresh",618],"trw":["mere",523],"lp":["rem","ske","reme","rme","fren","fen","rsh","rmer","rnme"],"rp":["mer","hers","erm","kes","eks","eeks","ners","mmer","ernm","efen","mere"]},"55":{"input":[1,2,3,5,6],"tlw":["answer",1929],"trw":["make",9390],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["th",1104883],"trp":["ent",104826],"tlw":["the",506536],"trw":["even",12216],"lp":["th","the","be","ven","ten","bee","been","then","bet","tten"],"rp":["ent","ht","nte","even","eth","nev","nv","neve","ethe","ente"]},"57":{"input":[1,4,5,6],"tlp":["tha",132122],"trp":["hat",148416],"tlw":["that",110865],"trw":["have",35739],"lp":["tha","that","ath","pen","than","ph","athe","bea","ante","ppen","van","pene","bje"],"rp":["hat","hav","have","hap","happ","eath","enta"]},"58":{"input":[2,4,5,6],"tlp":["ch",138742],"trp":["nce",54473],"tlw":["there",23867],"trw":["never",9168],"lp":["ch","ther","thr","bec","che","ber","tch","cen","rth","rent","cent","thre","rch","cke","bre"],"rp":["nce","enc","ence","nter","nch"]},"59":{"input":[1,2,4,5,6],"tlw":["what",26770],"trw":["each",6050],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["them",24753],"trp":["ned",28030],"tlw":["them",21593],"trw":["need",4397],"lp":["them","den","thes","dent","tem","sent"],"rp":["ned","ment","nde","end","med","hed","met","ents","mbe","nted","emb","meth","need","nded"]},"61":{"input":[1,3,4,5,6],"tlw":["death",2323],"trw":["had",63389],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["remember",2277],"trw":["members",1108],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["came",6889],"trw":["heard",3016],"lp":[],"rp":[]},"64":{"input":[7],"base":"i","baseshift":"I","trp":["ii",1762],"trw":["i",117501],"lp":[],"rp":["ii","iii"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ai",104869],"trp":["ia",38456],"lp":["ai"],"rp":["ia","iai"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["ri",146328],"trp":["ir",91496],"lp":["ri","rri"],"rp":["ir","iri","irr","irri"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wi",119378],"trp":["ira",1826],"tlw":["air",2428],"trw":["ira",59],"lp":["wi","rai","air","ari","arri","ria","wri","wai","rria","aria","rwi","awi","rawi","wir","rari","awai","rrai","arwi"],"rp":["ira","iar"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["si",120170],"trp":["is",263616],"trw":["is",60295],"lp":["si","ssi","sis","ssis","siss"],"rp":["is","isi","iss","issi","-s","isis","-si","-i"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["sai",25354],"trp":["ix",4876],"tlw":["six",1928],"trw":["ix",80],"lp":["sai","asi","assi","xi","six","ais","sia","xis","ssia","asis","sias","asia","axi","aisi"],"rp":["ix","isa","ias","isas","isaa","issa"]},"70":{"input":[2,3,7],"tlp":["fi",67126],"trp":["if",58122],"tlw":["sir",1984],"trw":["if",25154],"lp":["fi","fir","ris","firs","ffi","fri","sir","rsi","fif","rif","risi","fis","rifi"],"rp":["if","irs","iff","ifi","iffi","isf","-f"]},"71":{"input":[1,2,3,7],"tlp":["fai",5226],"trp":["isfa",500],"tlw":["fair",842],"lp":["fai","wis","wif","aris","fair","rais","airs","swi","frai","fix","ffai","rwis","sari","afri","affi","rsia","swif","wais","fia"],"rp":["isfa"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["ti",213739],"trp":["it",311028],"tlw":["g",298],"trw":["it",92474],"lp":["ti","gi","tti","gg","tit","gt","tig","titi","ttit","ggi","git","gig","tg"],"rp":["it","ig","iti","itt","igi","itti","igg"]},"73":{"input":[1,4,7],"tlp":["ag",47829],"trp":["ip",16613],"tlw":["tip",221],"lp":["ag","ati","ga","pi","tai","aga","gai","agai","pai","ait","tia","tati","pti","agi","pit","ppi","gat"],"rp":["ip","ita","iat"]},"74":{"input":[2,4,7],"tlp":["ci",45417],"trp":["ic",118179],"tlw":["critic",79],"lp":["ci","gr","cti","tic","rg","rit","ric","tri","rig","rti","cri","cit","gir","riti","rtic","tir"],"rp":["ic","ici","ict","irt"]},"75":{"input":[1,2,4,7],"tlp":["wit",77056],"trp":["ica",19163],"tlw":["wait",1256],"lp":["wit","pri","gra","cia","acti","arg","rati","arti","rica","trai","pic","rtai","writ","gar","rag","wait","tica","cati"],"rp":["ica","icat"]},"76":{"input":[3,4,7],"tlp":["di",96016],"trp":["id",100069],"tlw":["did",12252],"trw":["its",10155],"lp":["di","sti","did","sid","gs","sit","dis","sig","dg","sist","dit","tis","siti","dist","diti"],"rp":["id","ist","its","isti","idd"]},"77":{"input":[1,3,4,7],"tlp":["aid",27860],"trp":["ista",3836],"tlw":["said",23960],"trw":["ida",198],"lp":["aid","said","spi","adi","dia","sati","spit","xist","diat","disa","sag","ssag","stai","atis","disp"],"rp":["ista","ips","isp","ida","isap"]},"78":{"input":[2,3,4,7],"tlp":["fic",12500],"trp":["irst",11403],"tlw":["first",11244],"lp":["fic","ffic","dif","diff","sic","dri","fig","sci","dir","disc","dic","cis","rid","tif","cid","rdi","stri"],"rp":["irst","ift","isc"]},"79":{"input":[1,2,3,4,7],"tlw":["paris",1353],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"y","baseshift":"Y","trp":["in",644105],"trw":["in",155002],"lp":[],"rp":["in","ni","ny","nin","yi","yin","ini","inn","nni","inin","nnin","inni","yn","nny","iny","nyi","nyin","inny","ynn"]},"81":{"input":[1,5,7],"tlp":["ay",87083],"trp":["ina",10155],"tlw":["any",10758],"trw":["nay",83],"lp":["ay","ain","any","ani","ayi","ayin","aini","anin","anni"],"rp":["ina","ian","ya","nia","inan","nai","ji","yan","inj","nian","iann"]},"82":{"input":[2,5,7],"tlp":["ry",67816],"trp":["ki",42462],"trw":["ink",130],"lp":["ry","rin","rni","rnin","rry","ryi","ryin","rki","rkin","rink","rik"],"rp":["ki","kin","ik","ink","nki","nkin","inki","ky","nry"]},"83":{"input":[1,2,5,7],"tlp":["way",28360],"trp":["yw",1970],"tlw":["way",11339],"trw":["iran",85],"lp":["way","win","ary","aki","akin","away","rain","arin","arry","ray","rian","arni","rary","anyw","wy"],"rp":["yw","nary","inar","nyw","kay"]},"84":{"input":[3,5,7],"tlp":["sin",21536],"trp":["im",93559],"tlw":["sin",306],"trw":["my",40423],"lp":["sin","sy","sim","smi","ssin"],"rp":["im","mi","my","ys","min","ins","nsi","mis","ims","nis","miss","mys","imi","insi","mmi"]},"85":{"input":[1,3,5,7],"tlp":["ays",16554],"trp":["may",9648],"tlw":["say",7781],"trw":["many",8068],"lp":["ays","say","ami","ains","says","asy","aim","sayi","amin","sian","anis","asin"],"rp":["may","many","ima","mai","main","iam","ians","mina"]},"86":{"input":[2,3,5,7],"tlp":["fin",16231],"trp":["inf",5607],"tlw":["firm",690],"trw":["kiss",443],"lp":["fin","ski","rim","rmi","fini","rmy","rmin","skin","firm","risk"],"rp":["inf","mir","nfi","nif","irm","isk","kis","kiss","nifi","mik"]},"87":{"input":[1,2,3,5,7],"tlw":["army",2073],"trw":["mary",586],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["ty",42717],"trp":["ng",301290],"tlw":["by",35333],"lp":["ty","by","tin","ting","bi","gin","gn","ttin"],"rp":["ng","ing","int","nti","ning","ity","ib","ying","ign","nit","yt","nig"]},"89":{"input":[1,4,5,7],"tlp":["ang",16987],"trp":["nati",5202],"tlw":["again",7165],"lp":["ang","gain","tain","gan","pin","ping","aint","anyt","atin","abi","py","pain","pany","ppin","agin","tay","anag"],"rp":["nati","nag","ntai"]},"90":{"input":[2,4,5,7],"tlp":["ring",17926],"trp":["king",26881],"tlw":["city",2930],"trw":["king",2321],"lp":["ring","bri","try","rty","cy","rib","city","cin","ryt","rity","cing","tryi","rinc","brin"],"rp":["king","inc","ick","nci","nic","ntry"]},"91":{"input":[1,2,4,5,7],"tlw":["taking",1995],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["tim",28120],"trp":["ind",31046],"tlw":["sitting",1409],"trw":["mind",4439],"lp":["tim","din","ding","dy","sing","didn","sib","sign"],"rp":["ind","ngs","ndi","ings","inst","idn","mig","ndin","ming","mind","mit","nsid"]},"93":{"input":[1,3,4,5,7],"tlw":["day",8306],"trw":["instant",472],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["find",4695],"trw":["kind",3481],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["asking",940],"trw":["making",2931],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"u","baseshift":"U","trp":["ie",85987],"trw":["u",744],"lp":[],"rp":["ie","ei","ue","ui","eu","uie","iu","uee","eei","ieu","uu"]},"97":{"input":[1,6,7],"tlp":["au",32369],"trp":["ua",23498],"tlw":["que",92],"trw":["iq",115],"lp":["au","qu","qui","que","qua","quie","quee","quai"],"rp":["ua","equ","equi","eau","eque","iq","equa","iqu","ique","uai","iqui","iae"]},"98":{"input":[2,6,7],"tlp":["ru",29549],"trp":["ur",136165],"tlw":["rue",170],"lp":["ru","rie","rrie","rue","zi","rei"],"rp":["ur","eir","ure","eri","ire","iz","uri","ize","ier","erie","urr","uir","uire","eur"]},"99":{"input":[1,2,6,7],"tlp":["requ",3277],"trp":["ura",5813],"tlw":["require",420],"trw":["iraq",73],"lp":["requ","quir","quar","azi","wei","arie","aur","aura","wire","aire"],"rp":["ura","uar","iew","eari","iza","eria","ewi","uare","erwi","iewe"]},"100":{"input":[3,6,7],"tlp":["su",62257],"trp":["us",124701],"tlw":["sue",76],"trw":["us",10609],"lp":["su","ssu","sus","sui","sue","sie"],"rp":["us","use","ies","ise","usi","esi","ues","essi","esu","uss","usu","uis","ussi","uses"]},"101":{"input":[1,3,6,7],"tlp":["aus",14032],"trp":["exi",2803],"trw":["usa",134],"lp":["aus","ause","ques","sua","asu","aise","assu","squ","sequ","squa","xu","asie"],"rp":["exi","usa","usua","easi","easu","exis","ixe","isea"]},"102":{"input":[2,3,6,7],"tlp":["fu",24057],"trp":["urs",13334],"tlw":["sure",3684],"trw":["users",252],"lp":["fu","sur","sure","frie","ries","rus","resi","fie","rise","resu","refu"],"rp":["urs","ife","urse","iffe","ief","efu","uf","uff","ures"]},"103":{"input":[1,2,3,6,7],"tlw":["wife",2078],"trw":["easier",513],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["ge",97282],"trp":["ut",147044],"tlw":["get",10986],"trw":["iv",292],"lp":["ge","vi","tu","get","gu","tiv","tive","giv","tie","give"],"rp":["ut","iv","ug","ive","eg","ite","ivi","ute","eti","uti"]},"105":{"input":[1,4,6,7],"tlp":["pu",22528],"trp":["up",44081],"tlw":["put",5210],"trw":["up",23594],"lp":["pu","age","put","avi","aug","tua","atu","aut","ativ","pie","quit","gav","gave"],"rp":["up","ega","upp","iva","iate","eati","uat"]},"106":{"input":[2,4,6,7],"tlp":["tur",27983],"trp":["uc",39944],"tlw":["true",2254],"trw":["ice",574],"lp":["tur","cu","gre","ger","ture","tru","rge","riv","cur","ctu","vic","gree","rive","ctiv"],"rp":["uc","ice","eci","ecti","iver","uct"]},"107":{"input":[1,2,4,6,7],"tlw":["great",6807],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["du",19747],"trp":["ide",35753],"tlw":["side",3662],"trw":["used",3487],"lp":["du","side","stu","ges","die","ged","vid","tud","vis","ties"],"rp":["ide","ust","ud","ied","iste","edi","esti","used","uest","ude"]},"109":{"input":[1,3,4,6,7],"tlw":["despite",946],"trw":["idea",2885],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["five",2604],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["arrived",1258],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["hi",274759],"trw":["eye",1504],"lp":[],"rp":["hi","un","ey","hin","hey","ye","ine","hei","hu","ien","nu","hy","uni","ein","eye","eni","inu","hun","ney","enin"]},"113":{"input":[1,5,6,7],"tlp":["aine",5046],"trp":["ju",21952],"tlw":["queen",763],"trw":["yeah",918],"lp":["aine","aye","quen","aun","anie","anu"],"rp":["ju","yea","hai","una","eani","jun","nua","yeah","niq","niqu","nqu","hain","june","hani"]},"114":{"input":[2,5,6,7],"tlp":["rien",11605],"trp":["ery",27793],"tlw":["run",1998],"trw":["henry",1546],"lp":["rien","run","zin"],"rp":["ery","heir","ike","urn","hink","urne","erin","hir","urin","hur","niz","yer","urni","hri","ury","key","enry"]},"115":{"input":[1,2,5,6,7],"tlw":["why",6090],"trw":["year",3064],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["shi",11339],"trp":["his",109386],"tlw":["sun",1066],"trw":["his",69304],"lp":["shi","sum","sine"],"rp":["his","him","ime","mu","um","ish","mus","ines","yes","usin","imes","hims","imse","eyes","ishe","hus","ume"]},"117":{"input":[1,3,5,6,7],"tlw":["assume",344],"trw":["human",2178],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["fine",1422],"trw":["mike",918],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["wish",1198],"trw":["years",7833],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["gh",90668],"trp":["ith",80740],"tlw":["but",49620],"trw":["night",4461],"lp":["gh","thi","bu","ght","but","thin","they","thei","vin","ving"],"rp":["ith","igh","ugh","ight","hing","nge","ught","unt","inte","ub"]},"121":{"input":[1,4,5,6,7],"tlw":["anything",3884],"trw":["having",3594],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["their",26687],"trw":["every",7264],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["with",67032],"trw":["nature",1587],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["this",36089],"trw":["might",6921],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["game",1331],"trw":["just",14589],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["such",8032],"trw":["much",10233],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["because",9879],"trw":["experience",2559],"lp":[],"rp":[]},"128":{"input":[8],"base":"o","baseshift":"O","trp":["oo",93108],"trw":["o",531],"lp":[],"rp":["oo"]},"129":{"input":[1,8],"tlp":["ao",915],"trp":["oa",14939],"lp":["ao"],"rp":["oa"],"special":"bksp","base":"ao"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["ro",170933],"trp":["or",314634],"trw":["or",34654],"lp":["ro","roo","rro","ror","rror"],"rp":["or","oor","orr","orro","oro"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["wo",92580],"trp":["ow",122368],"tlw":["row",380],"lp":["wo","wor","row","aro","roa","wro","rrow","woo","worr","arro","rao","aor"],"rp":["ow","ora","owa","owar","oar","orw","orwa","orar"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["so",117437],"trp":["os",70799],"tlw":["so",27040],"trw":["'",14271],"lp":["so","soo","sso","s'","s's","ss'","ss's"],"rp":["os","'s","oss","oos","o'","oso","''","o's","'o","oss'"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["aso",4273],"trp":["ox",1874],"lp":["aso","asso","a'","xo","a's","soa","aos","a'a","x'","ax'","x's","ax's","axo","saxo"],"rp":["ox","oas","osa","'a","ossa"]},"134":{"input":[2,3,8],"tlp":["fo",133745],"trp":["of",272457],"tlw":["for",70927],"trw":["of",245539],"lp":["fo","for","fro","rso","ros","sor","ross","foo","r'","r's","rof","ffo","ffor","rfo","rfor","sof"],"rp":["of","off","ors","'r"]},"135":{"input":[1,2,3,8],"tlp":["wors",1678],"trp":["ows",4674],"tlw":["sofa",209],"lp":["wors","forw","rows","swo","swor","affo","wso","awso","frow","sofa","rox","aros","ar'","ar's","w'"],"rp":["ows","'w","ofa","oars","ow'"]},"136":{"input":[4,8],"base":"?","baseshift":"/","tlp":["to",350815],"trp":["ot",133805],"tlw":["to",249163],"trw":["otto",67],"lp":["to","too","tto","tot","toot","toto"],"rp":["ot","ott","oot","oto","otto"],"special":"punc"},"137":{"input":[1,4,8],"tlp":["po",68607],"trp":["op",53305],"tlw":["top",1822],"lp":["po","ppo","top","pot","poo","ato","pop","topp","apo","appo","tota","pto"],"rp":["op","opp","oppo","oat","ota","oop","opt","opo"]},"138":{"input":[2,4,8],"tlp":["co",161789],"trp":["ort",28140],"tlw":["root",179],"lp":["co","tor","tro","cor","cro","rot","cto","cco","ctor","roc","ccor","coo","corr","cot"],"rp":["ort","oc","orc","occ","oct","octo"]},"139":{"input":[1,2,4,8],"tlp":["pro",33640],"trp":["orta",4717],"tlw":["two",11667],"lp":["pro","por","two","port","tow","rop","pow","acco","ppor","towa","prop","proc","acro","ppro","coa","crow","wrot"],"rp":["orta","oac","oca"]},"140":{"input":[3,4,8],"tlp":["do",77376],"trp":["od",44403],"tlw":["do",18689],"trw":["odd",416],"lp":["do","sto","t'","t's","doo","stoo","tood","tod","d'","d's"],"rp":["od","'t","ost","ood","'d","odd","ots","ods","oods","oots"]},"141":{"input":[1,3,4,8],"tlp":["pos",16560],"trp":["oad",3493],"tlw":["stop",1798],"lp":["pos","spo","at'","at's","poss","stop","ppos","ado","toda","post","spot","sop"],"rp":["oad","osp","oda","ops","oast","oops","opos","osop"]},"142":{"input":[2,3,4,8],"tlp":["stor",8576],"trp":["ord",17538],"tlw":["door",3713],"lp":["stor","fort","rod","soc","door","sco","cros","forc","stro","dro","cord","doc","sort","tors","food","dor"],"rp":["ord","oft","ords","orts"]},"143":{"input":[1,2,3,4,8],"tlw":["words",3228],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"l","baseshift":"L","trp":["on",380429],"trw":["on",61313],"lp":[],"rp":["on","ll","no","lo","ol","nl","loo","lon","onl","oll","llo","ool","oon","olo","ollo","nno","ono","onn","non","noo"]},"145":{"input":[1,5,8],"tlp":["al",228009],"trp":["la",103279],"tlw":["all",30772],"trw":["la",689],"lp":["al","all","ano","alo","alon","anno","allo","ala"],"rp":["la","jo","lan","nal","ona","onal","lla","nall","olla","oal","njo","ola"]},"146":{"input":[2,5,8],"tlp":["rl",25465],"trp":["ok",35246],"tlw":["roll",381],"trw":["look",5477],"lp":["rl","ron","rol","roll","rok","rno"],"rp":["ok","ook","kno","ork","look","lk","nor","orn","orl","lor","lr","kl","loor","olor"]},"147":{"input":[1,2,5,8],"tlp":["work",16534],"trp":["now",32603],"tlw":["work",8749],"trw":["now",13343],"lp":["work","ral","arl","alk","wal","worl","alw","alwa","won","walk","wl","alr"],"rp":["now","own","know","low","lar","llow","lw","lwa"]},"148":{"input":[3,5,8],"tlp":["som",32033],"trp":["om",158331],"tlw":["soon",3191],"trw":["mom",1398],"lp":["som","son","sl","sn'","sol"],"rp":["om","mo","n'","ons","ls","mos","mon","on'","los","omm","lso","oom","'m","lm","mom"]},"149":{"input":[1,3,5,8],"tlp":["als",13163],"trp":["las",11287],"tlw":["also",7989],"trw":["man's",744],"lp":["als","also","alm","amo","an'","smal","ason","almo","asn'","sona","amon","sla","sal","alls"],"rp":["las","mal","oma","oman","mall","lass"]},"150":{"input":[2,3,5,8],"tlp":["rom",40627],"trp":["mor",29841],"tlw":["from",35952],"trw":["looks",1175],"lp":["rom","from","fl","form","rson","room","fol","flo","foll","fron","floo"],"rp":["mor","lf","orm","onf","nfo","nfor","morn","oks","ooks"]},"151":{"input":[1,2,3,5,8],"tlw":["woman",3590],"trw":["major",1113],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["bo",64448],"trp":["not",62064],"tlw":["bob",306],"trw":["not",43106],"lp":["bo","bl","tl","ttl","bot","ton","tol","boo","blo","bloo"],"rp":["not","lt","ob","nto","ont","ntl","lot","obl","nnot","nob"]},"153":{"input":[1,4,5,8],"tlp":["pl",68379],"trp":["lat",15533],"tlw":["plan",1335],"trw":["job",3249],"lp":["pl","abo","pla","abl","tal","pon","alt","anot","pol","tabl","plan","bla","plo","ppl","bal"],"rp":["lat","opl","lp","job","oba"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["con",43239],"trp":["onc",10039],"tlw":["took",5513],"lp":["con","cl","cont","bro","col","clo","rob","took","bor","book","conc","coll","ctl","ront"],"rp":["onc","ock","loc","ncl","ontr","ntro"]},"155":{"input":[1,2,4,5,8],"tlw":["call",2856],"trw":["local",1100],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["don",16568],"trp":["ld",104617],"tlw":["don't",9569],"trw":["most",10396],"lp":["don","dn'","dn't","don'","dl","sn't","bod","told","tom"],"rp":["ld","n't","old","most","ond","on't","mot","ldn","ldn'","ndo","obs"]},"157":{"input":[1,3,4,5,8],"tlw":["almost",3784],"trw":["last",4981],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["front",2573],"trw":["lord",1049],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["down",11247],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"@","trp":["eo",22601],"lp":[],"rp":["eo","oe"],"special":"punc"},"161":{"input":[1,6,8],"trp":["oq",59],"lp":[],"rp":["oq"]},"162":{"input":[2,6,8],"tlp":["zo",557],"trp":["ore",43307],"tlw":["zero",137],"trw":["error",228],"lp":["zo","reo","roe","roz","roze","zero"],"rp":["ore","ero","eor","oz","oze","erro","orre","oreo","eror","eroe","oore","orer","ooz","ooze"]},"163":{"input":[1,2,6,8],"tlp":["wore",857],"trp":["owe",15537],"tlw":["wore",747],"trw":["owe",137],"lp":["wore","rowe","woe","azo"],"rp":["owe","ower","ewo","ewor","orea","erwo","oare"]},"164":{"input":[3,6,8],"tlp":["soe",138],"trp":["ose",25993],"lp":["soe","se'","se's"],"rp":["ose","e'","e's","oes","osse","oose","eso","esso","oses","'e","es'","eos","es's","oe'","oe's"]},"165":{"input":[1,3,6,8],"trp":["easo",4023],"lp":[],"rp":["easo","oxe","oxes","exo"]},"166":{"input":[2,3,6,8],"tlp":["fore",14026],"trp":["efo",11759],"tlw":["rose",1049],"trw":["offer",1014],"lp":["fore","re'","re's","rose","rofe"],"rp":["efo","efor","erso","'re","offe","er'","er's","ere'","orse","erfo","ofe","ofes","e'r","e're","effo"]},"167":{"input":[1,2,3,6,8],"tlw":["we're",1513],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["vo",13509],"trp":["ov",46618],"tlw":["vote",203],"lp":["vo","vot","vote","toe","tov","tove"],"rp":["ov","ove","ote","evo","otte","oet","evot","eov","eove","eto","oev","oeve","ovo","oote"]},"169":{"input":[1,4,6,8],"tlp":["peo",15223],"trp":["eop",15223],"tlw":["pope",239],"lp":["peo","peop","avo","poe","pote","poet","vato","pov","pove","pope"],"rp":["eop","ope","oppe","epo","ova","eapo","ovat","opea","opte","oope"]},"170":{"input":[2,4,6,8],"tlp":["rov",6005],"trp":["over",21892],"tlw":["cover",700],"trw":["over",12910],"lp":["rov","cov","cove","reco","rote","rove","roce","vor","tore","revo","core","rvo"],"rp":["over","eco","orce","oce","orte","ecor","otec","ecto"]},"171":{"input":[1,2,4,6,8],"tlw":["power",3130],"trw":["operate",192],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["doe",5478],"trp":["e'd",4775],"tlw":["does",3360],"lp":["doe","does","sov"],"rp":["e'd","'v","'ve","oved","ode","osed","oted","otes","edo","esto","et'","et's","odde","oves","e'v","e've","eedo"]},"173":{"input":[1,3,4,6,8],"tlw":["stopped",1419],"trw":["exposed",267],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["force",1513],"trw":["order",2602],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["process",1455],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["le",213808],"trw":["one",30730],"lp":[],"rp":["le","ho","el","one","ell","lle","hel","hol","eel","len","ele","hoo","ole","eno","oh","elo","hool","olle","hole","hon"]},"177":{"input":[1,5,6,8],"tlp":["alle",8964],"trp":["lea",26849],"tlw":["alone",2184],"trw":["john",1863],"lp":["alle","ale","alen"],"rp":["lea","eal","hal","ela","eall","hall","lean","joh","john","enjo","oje","heal","lane","joe","eale","elea","llea"]},"178":{"input":[2,5,6,8],"tlp":["rel",11908],"trp":["hro",12209],"tlw":["role",950],"trw":["honor",325],"lp":["rel","roke","rle","role","rele"],"rp":["hro","oke","hor","ooke","ler","lre","lke","orke","erl","kel","orne","ller","oken","erno","hook"]},"179":{"input":[1,2,5,6,8],"tlw":["who",23669],"trw":["how",14162],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["some",31924],"trp":["ome",63421],"tlw":["some",15162],"trw":["home",4865],"lp":["some","sel","sho"],"rp":["ome","les","hos","hose","hom","omen","less","he'","msel","els","emo","home","lose","lem","mome","lse","mone"]},"181":{"input":[1,3,5,6,8],"tlw":["shall",1999],"trw":["male",440],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["feel",4278],"trw":["more",21171],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["women",3612],"trw":["half",2504],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tho",36998],"trp":["oth",46489],"tlw":["both",5084],"trw":["let",4207],"lp":["tho","ble","tle","tel","ttle","bel","vel","tell","both"],"rp":["oth","othe","noth","let","lv","lve","lov","love","entl","elt","elv"]},"185":{"input":[1,4,5,6,8],"tlw":["people",14668],"trw":["help",3633],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["brother",1465],"trw":["other",13909],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["another",6638],"trw":["later",4588],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["those",7914],"trw":["moment",3684],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["that's",4282],"trw":["least",2856],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["before",10203],"trw":["left",5159],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["called",4581],"trw":["learned",1609],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["io",113622],"lp":[],"rp":["io","oi"],"special":"punc"},"193":{"input":[1,7,8],"lp":[],"rp":[]},"194":{"input":[2,7,8],"tlp":["rio",7327],"trp":["ori",8551],"lp":["rio","rior","rrio","roi","rori"],"rp":["ori","ior","iro","orri","irro","orio","iori","oir","oiro"]},"195":{"input":[1,2,7,8],"tlp":["ario",1160],"trp":["owi",4542],"tlw":["warrior",125],"lp":["ario","rowi","airo"],"rp":["owi","oria","iora","oari"]},"196":{"input":[3,7,8],"tlp":["sio",15825],"trp":["i'",14185],"trw":["'i",461],"lp":["sio","ssio","soi","so-"],"rp":["i'","osi","ossi","isio","iso","ois","o-","'i","ios","iosi","oosi","osio","oiso","-o","isso"]},"197":{"input":[1,3,7,8],"tlp":["asio",1897],"trp":["oxi",253],"lp":["asio","xio","aiso"],"rp":["oxi","ixo"]},"198":{"input":[2,3,7,8],"tlp":["riso",1574],"trp":["offi",5584],"trw":["'if",72],"lp":["riso","rofi","rsio","rios","rosi"],"rp":["offi","ifo","ifor","ofi","iors","oris","-fo","isor","-ro","-roo","oirs","isfo","'if","iff'","o-f"]},"199":{"input":[1,2,3,7,8],"tlw":["warriors",145],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["tio",72429],"trp":["og",14040],"tlw":["go",9032],"lp":["tio","go","goo","got","goi","tog","gio","gott","gto","goti"],"rp":["og","itio","oti","otio","ito","ogi","igio","iot","oog","otog"]},"201":{"input":[1,4,7,8],"tlp":["atio",33167],"trp":["opi",2391],"tlw":["ago",1471],"lp":["atio","poi","ptio","ago","goa","ppoi","topi","pio","aigo","goat","gapo"],"rp":["opi","opti","oppi","otia","oga","oati","opag","ogat","ipo"]},"202":{"input":[2,4,7,8],"tlp":["ctio",12347],"trp":["org",5456],"tlw":["torrio",94],"trw":["org",99],"lp":["ctio","gro","cio","tori","rog","rogr","cog","rgo","gor"],"rp":["org","oic","oci","ogr","otic","orit","orti","itor","orig","icio","icto"]},"203":{"input":[1,2,4,7,8],"tlw":["grow",678],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["good",10385],"trp":["it'",8789],"tlw":["good",9480],"trw":["it's",8558],"lp":["good","stio","god","doi","dog","dio","gdo","g'","g's","to-","gods"],"rp":["it'","it's","osit","isto","i'd","oid","odi","iod","isdo"]},"205":{"input":[1,3,4,7,8],"tlw":["gossip",164],"trw":["ipod",68],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["forgot",261],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["radio",638],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["li",155342],"trw":["only",13824],"lp":[],"rp":["li","ly","yo","il","ion","ill","lly","lin","oin","nly","only","lli","oy","ili","ily","oli","llin","yon","illi","nio"]},"209":{"input":[1,5,7,8],"tlp":["ally",22338],"trp":["ial",13366],"tlw":["ally",126],"trw":["lay",1482],"lp":["ally","ali","ail","alli","ainl","anyo"],"rp":["ial","lay","iona","lai","lia","inal","lain","iall","joy","ila","njoy","lian","joi","join"]},"210":{"input":[2,5,7,8],"tlp":["rly",8446],"trp":["lik",24097],"tlw":["roy",83],"trw":["york",1727],"lp":["rly","ril","rli","ryo","ryon"],"rp":["lik","ory","irl","oki","okin","kil","kill","orni","ooki","lki","lkin","orki","kly","yor","orry"]},"211":{"input":[1,2,5,7,8],"tlw":["will",14271],"trw":["okay",1081],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["sion",15757],"trp":["ions",18292],"tlw":["sly",561],"trw":["i'm",6537],"lp":["sion","sil","sly","smil","sli"],"rp":["ions","mil","lis","i'm","omi","y'","onsi","mily","mili","omin","lim","y's","i'l","i'll","ison"]},"213":{"input":[1,3,5,7,8],"tlw":["animal",491],"trw":["mail",328],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["sorry",899],"trw":["mirror",461],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["always",6467],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tion",71969],"trp":["lit",22460],"tlw":["going",6947],"trw":["into",18343],"lp":["tion","gl","tly","til","till","goin","bli"],"rp":["lit","ong","into","long","ling","lig","oing","litt","ittl","ibl","ngl","oint","ntly"]},"217":{"input":[1,4,5,7,8],"tlw":["point",3165],"trw":["national",867],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["girl",2370],"trw":["looking",3174],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["working",2448],"trw":["knowing",919],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["still",7621],"trw":["isn't",1565],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["among",2526],"trw":["lady",1132],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["story",2254],"trw":["morning",2986],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["company",2711],"trw":["important",2765],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["ou",377630],"lp":[],"rp":["ou","iou","uo","oui","eou","uou","oue"]},"225":{"input":[1,6,7,8],"tlp":["quo",328],"trp":["iquo",129],"lp":["quo"],"rp":["iquo","oqu","oque"]},"226":{"input":[2,6,7,8],"tlp":["rou",33045],"trp":["our",59933],"trw":["our",14347],"lp":["rou","riou","rrou","rizo"],"rp":["our","erio","orie","uro","erou","euro","urio","orei","urro","orou","ouri","oure","izo","oriz","iour","orru"]},"227":{"input":[1,2,6,7,8],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["sou",7964],"trp":["ous",26493],"lp":["sou","siou"],"rp":["ous","ious","u'","ou'","ouse","usio","esou","oise","ouis","ousi","eous","uous","osu","ouss","us'","usso","ies'"]},"229":{"input":[1,3,6,7,8],"tlw":["sioux",68],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["four",2961],"trw":["ours",177],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["wife's",127],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["vio",4502],"trp":["out",63916],"trw":["out",24396],"lp":["vio","voi","toge","tou","viou","gov","gove","geo","vou","goe"],"rp":["out","oug","ovi","oge","oget","utio","ovie","ego","oute","otiv"]},"233":{"input":[1,4,6,7,8],"tlw":["quote",89],"trw":["output",75],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["voice",2628],"trw":["occur",235],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["group",2351],"trw":["europe",720],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["goes",995],"trw":["i've",2219],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["positive",1027],"trw":["opposite",687],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["course",3730],"trw":["office",2363],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["support",1196],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["you",104946],"trw":["you",68463],"lp":[],"rp":["you","ul","oul","hou","oun","lu","ile","hil","ely","eli","lie","houl","ull","hile","nou","elie","line","youn","enou","lue"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["anyone",1715],"trw":["enjoy",693],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["rule",725],"trw":["your",20504],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["while",7024],"trw":["early",2452],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["smile",1413],"trw":["house",4935],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["anxious",432],"trw":["usually",1445],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["full",2345],"trw":["life",8740],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["families",960],"trw":["meanwhile",361],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["thought",7112],"trw":["little",9495],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["about",23108],"trw":["upon",4442],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["through",8798],"trw":["everyone",2219],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["without",5841],"trw":["large",2557],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["something",7615],"trw":["lives",1641],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["possible",2350],"trw":["immediately",1263],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["could",18061],"trw":["itself",2205],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["would",27522],"trw":["especially",1737],"lp":[],"rp":[]}} \ No newline at end of file
diff --git a/keyboards/gboards/dicts/aset/_generator/src/en-dvorak-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/en-dvorak-keymap.json
new file mode 100644
index 0000000000..d7301ac637
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/_generator/src/en-dvorak-keymap.json
@@ -0,0 +1 @@
+{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",410],"tlw":["a",211837],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"o","baseshift":"O","trp":["oo",93108],"trw":["o",531],"lp":[],"rp":["oo"]},"3":{"input":[1,2],"base":",","baseshift":"<","tlp":["ao",915],"trp":["oa",14939],"lp":["ao"],"rp":["oa"],"special":"punc"},"4":{"input":[3],"base":"e","baseshift":"E","trp":["ee",129154],"trw":["e",471],"lp":[],"rp":["ee"]},"5":{"input":[1,3],"base":"!","baseshift":"@","tlp":["ae",810],"trp":["ea",216643],"lp":["ae"],"rp":["ea","eea"],"special":"punc"},"6":{"input":[2,3],"base":".","baseshift":">","trp":["eo",22601],"lp":[],"rp":["eo","oe"],"special":"punc"},"7":{"input":[1,2,3],"lp":[],"rp":[]},"8":{"input":[4],"base":"i","baseshift":"I","trp":["ii",1762],"trw":["i",117501],"lp":[],"rp":["ii","iii"]},"9":{"input":[1,4],"base":"p","baseshift":"P","tlp":["ai",104869],"trp":["ia",38456],"tlw":["p",765],"lp":["ai","pa","ap","pp","pi","app","pai","apa","ppi","pap","appi","api","ppa","appa","pip"],"rp":["ia","ip","ipp","ipa","ippi"]},"10":{"input":[2,4],"base":"y","baseshift":"Y","trp":["io",113622],"trw":["y",176],"lp":[],"rp":["io","yo","oi","oy","yi","oyi","oyo"]},"11":{"input":[1,2,4],"tlp":["ay",87083],"trp":["op",53305],"tlw":["pay",1548],"trw":["ya",68],"lp":["ay","po","ppo","poi","ayi","py","pay","ppy","poo","appy","pop","apo"],"rp":["op","opp","ya","oppo","opi","yp","oya","oop"]},"12":{"input":[3,4],"base":"u","baseshift":"U","trp":["ie",85987],"trw":["u",744],"lp":[],"rp":["ie","ei","ue","ui","eu","uie","iu","uee","eei","ieu","uu"]},"13":{"input":[1,3,4],"tlp":["pe",115056],"trp":["up",44081],"tlw":["pipe",229],"trw":["up",23594],"lp":["pe","au","pu","ppe","pea","appe","ape","ppea","pie","pape","pee"],"rp":["up","ep","ua","eep","upp","epa","epe","eau","epi"]},"14":{"input":[2,3,4],"trp":["ou",377630],"trw":["you",68463],"lp":[],"rp":["ou","you","ey","ye","iou","eye","uy","oye","eyo","yee","oyee","uo","oui","eou","uou","uyi","yie","uye","oue","oyou"]},"15":{"input":[1,2,3,4],"tlp":["peo",15223],"trp":["eop",15223],"tlw":["pope",239],"lp":["peo","peop","aye","pou","popu","poe"],"rp":["eop","ope","yea","oup","upo","uppo","oppe","epo","ype","opu","eapo","opea","oope","opie"]},"16":{"input":[5],"base":"h","baseshift":"H","trw":["h",335],"lp":[],"rp":[]},"17":{"input":[1,5],"base":";","baseshift":":","tlp":["ah",3197],"trp":["ha",357027],"tlw":["ah",458],"trw":["ha",121],"lp":["ah","aha"],"rp":["ha"],"special":"punc"},"18":{"input":[2,5],"base":"b","baseshift":"B","tlp":["bo",64448],"trp":["ho",160810],"tlw":["b",695],"trw":["oh",2847],"lp":["bo","boo","bb","bob","bobb","bbo"],"rp":["ho","ob","hoo","oh","hb","hbo","obo","obb","oho"]},"19":{"input":[1,2,5],"tlp":["ab",55519],"trp":["oba",3176],"lp":["ab","ba","abo","bab","boa","abb","aba","aboa","aho"],"rp":["oba","obab","hab","hao","oah","habb"]},"20":{"input":[3,5],"base":"j","baseshift":"J","trp":["he",1036192],"trw":["he",92135],"lp":[],"rp":["he","je","eh","hee","ehe","ej","eje"]},"21":{"input":[1,3,5],"tlp":["aj",1718],"trp":["hea",22882],"lp":["aj","ahe","ahea","aje"],"rp":["hea","ja","eha","jea","eah","hae","ehea"]},"22":{"input":[2,3,5],"tlp":["be",175052],"trp":["jo",17794],"tlw":["be",44932],"trw":["job",3249],"lp":["be","bee","beh","bj","bje","bbe"],"rp":["jo","job","eb","joh","obe","obj","obje","oj","oje","eho","hoe","joe","ebo","heo"]},"23":{"input":[1,2,3,5],"tlp":["bea",5725],"trp":["joa",569],"tlw":["abee",97],"lp":["bea","beha","ajo","abe","abbe","abea","abee"],"rp":["joa","eba","eab","eeab","habe"]},"24":{"input":[4,5],"base":"f","baseshift":"F","tlp":["fi",67126],"trp":["hi",274759],"tlw":["f",277],"trw":["if",25154],"lp":["fi","ff","ffi","fif"],"rp":["hi","if","iff","ifi","iffi","hif","hf","ih"]},"25":{"input":[1,4,5],"tlp":["fa",47251],"trp":["hap",14305],"trw":["hip",126],"lp":["fa","af","ph","fai","aff","phi","aph","pha","ffa","affa","ffai","affi","pf","fia"],"rp":["hap","happ","hip","hai","hia","hipp"]},"26":{"input":[2,4,5],"tlp":["fo",133745],"trp":["of",272457],"tlw":["by",35333],"trw":["of",245539],"lp":["fo","by","bi","foo","boy","ffo","fy"],"rp":["of","off","ib","hy","offi","yb","ibi","hoi","ybo","ifo","hio","ofi","oof"]},"27":{"input":[1,2,4,5],"tlp":["abi",3591],"trp":["hop",4723],"tlw":["baby",848],"trw":["happy",1895],"lp":["abi","pho","ayb","phy","aby","baby","pab","apab","affo","bay","babi","aphy","bai"],"rp":["hop","habi","oph","iab","hopi","ophy","hopp"]},"28":{"input":[3,4,5],"tlp":["fe",67683],"trp":["ef",36973],"tlw":["fee",65],"trw":["huh",118],"lp":["fe","fu","ffe","fee","fie"],"rp":["ef","hei","ju","hu","ife","iffe","eff","ief","efu","uf","uff","efe","ehi","hie","effe"]},"29":{"input":[1,3,4,5],"tlp":["fea",4050],"trp":["eph",1305],"trw":["heap",97],"lp":["fea","afe","phe","affe","fau","pfu","pef"],"rp":["eph","jap","japa","hape","hau","heap","ephe","efea","eaf","ufa","jai","heep","uph"]},"30":{"input":[2,3,4,5],"tlp":["bu",70306],"trp":["hou",45889],"tlw":["buy",1026],"trw":["joy",650],"lp":["bu","bou","fou","bef","befo","bei","bui","behi"],"rp":["hou","hey","ub","efo","offe","oub","ibe","joy","ybe","joi","ubj","ubje"]},"31":{"input":[1,2,3,4,5],"tlw":["pub",80],"trw":["hope",1489],"lp":[],"rp":[]},"32":{"input":[6],"base":"t","baseshift":"T","tlp":["tt",55910],"tlw":["t",670],"lp":["tt"],"rp":[]},"33":{"input":[1,6],"base":"(","baseshift":"[","tlp":["at",371419],"tlw":["at",51085],"lp":["at","ta","att","tat","tta","atta","ata","taa","ataa"],"rp":[],"special":"punc"},"34":{"input":[2,6],"base":"w","baseshift":"W","tlp":["to",350815],"trp":["ot",133805],"tlw":["to",249163],"trw":["otto",67],"lp":["to","wo","tw","too","two","tow","woo","tto","tot","wt","ww","www","wow"],"rp":["ot","ow","ott","oot","oto","otto","owt"]},"35":{"input":[1,2,6],"tlp":["wa",198379],"trp":["owa",3731],"lp":["wa","aw","awa","wat","towa","ato","tota","twa","atto","tato","atoo","awo","toa","aot"],"rp":["owa","oat","ota","otta","otat"]},"36":{"input":[3,6],"base":"c","baseshift":"C","tlp":["te",259049],"trp":["et",117117],"tlw":["c",872],"trw":["et",324],"lp":["te","ce","ct","tte","cc","tc","cte","cce","tee","tec","tect"],"rp":["et","ec","ect","ett","eet","ece","ette","ete","ecte"]},"37":{"input":[1,3,6],"tlp":["ca",118675],"trp":["eat",31678],"tlw":["act",1387],"trw":["eat",1112],"lp":["ca","ac","ate","act","ace","atte","tea","cat","acc","atc","tate","tac","cate","acte","acce"],"rp":["eat","eca","eac","eate","eta"]},"38":{"input":[2,3,6],"tlp":["co",161789],"trp":["ew",37100],"tlw":["we",33258],"trw":["owe",137],"lp":["co","we","wee","twe","twee","cto","cco","coo"],"rp":["ew","oc","owe","eco","ote","etw","etwe","oce","occ","oct","octo","otte"]},"39":{"input":[1,2,3,6],"tlp":["wea",5512],"trp":["oac",2483],"tlw":["coat",590],"lp":["wea","acco","watc","wate","coa","acto","weat","coat","coac","awe","aco","coca","cato"],"rp":["oac","oca","occa","ewa","ocat","ocea","eato"]},"40":{"input":[4,6],"base":"k","baseshift":"K","tlp":["ti",213739],"trp":["it",311028],"trw":["it",92474],"lp":["ti","tti","tit","titi","ttit","tk"],"rp":["it","ki","ik","iti","itt","itti","kit","iki","kitt","kt"]},"41":{"input":[1,4,6],"tlp":["ati",45742],"trp":["ita",7797],"tlw":["tip",221],"trw":["kaa",57],"lp":["ati","ak","pt","tak","tai","aki","pat","ait","tia","tati","apt","pti","pit","taki","pati","pta"],"rp":["ita","iat","ka","itat"]},"42":{"input":[2,4,6],"tlp":["wi",119378],"trp":["ok",35246],"tlw":["took",5513],"trw":["kitty",157],"lp":["wi","wit","tio","ty","took","tty","twi"],"rp":["ok","ook","ity","itio","yt","oti","owi","oki","ooki","otio","yw","ky","ito"]},"43":{"input":[1,2,4,6],"tlp":["atio",33167],"trp":["opt",1183],"tlw":["way",11339],"trw":["okay",1081],"lp":["atio","way","away","top","pow","wai","wait","ptio","tay","pot","typ","pok","topp","wak","pty"],"rp":["opt","oka","kay","okay","ywa"]},"44":{"input":[3,4,6],"tlp":["tu",53060],"trp":["ut",147044],"tlw":["cut",1451],"trw":["ice",574],"lp":["tu","ck","ci","cu","cti","tic","tie"],"rp":["ut","ic","ke","uc","ike","ice","ite","ick","eci","ecti","ute","eti","ici"]},"45":{"input":[1,3,4,6],"tlp":["ake",27987],"trp":["ica",19163],"tlw":["take",7122],"trw":["keep",3496],"lp":["ake","ack","cau","take","pec","cia","acti","put","tua","pect","atu","pic","cap","aut","cep","cept"],"rp":["ica","ecau","ept","eak"]},"46":{"input":[2,3,4,6],"tlp":["cou",38026],"trp":["out",63916],"tlw":["city",2930],"trw":["out",24396],"lp":["cou","wou","ctio","cy","city","week","cio","ciou","tou"],"rp":["out","oke","ock","ooke","yet","oic","oice","oci","iew","utio","ety"]},"47":{"input":[1,2,3,4,6],"tlw":["type",863],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"d","baseshift":"D","tlp":["th",1104883],"trp":["ht",56378],"tlw":["th",802],"lp":["th","dd","dh","thd","ddh","tth"],"rp":["ht","hd","hth","htt"]},"49":{"input":[1,5,6],"tlp":["ad",140314],"trp":["hat",148416],"tlw":["that",110865],"trw":["had",63389],"lp":["ad","tha","that","da","ath","add","dat","dad","ada","data","atth","dha","ddha","thda","dadd"],"rp":["hat","had","hatt","hda","hath"]},"50":{"input":[2,5,6],"tlp":["wh",148489],"trp":["oth",46489],"tlw":["who",23669],"trw":["how",14162],"lp":["wh","do","tho","who","dow","bot","bod","both","doo","tood","bt","wd","tod"],"rp":["oth","od","how","ood","hot","odd","owd"]},"51":{"input":[1,2,5,6],"tlp":["wha",30534],"trp":["oad",3493],"tlw":["what",26770],"trw":["oath",137],"lp":["wha","what","tab","bat","bad","ado","batt","toda","boat","adow","dwa","daw","bath","bta","tba","atho"],"rp":["oad","oda","hado","obta"]},"52":{"input":[3,5,6],"tlp":["the",718961],"trp":["ed",326541],"tlw":["the",506536],"trw":["ed",253],"lp":["the","de","ch","ted","ded","che","tch","ced","dec","cted","ched","dde","dee"],"rp":["ed","eth","eed","hed","ethe","jec","ject"]},"53":{"input":[1,3,5,6],"tlp":["cha",21540],"trp":["ead",29380],"tlw":["death",2323],"trw":["each",6050],"lp":["cha","ach","ade","dea","athe","ated","atch","ache","tead","deat","aced","dead","date"],"rp":["ead","each","head","eath","eade","jac","hate"]},"54":{"input":[2,3,5,6],"tlp":["whe",44709],"trp":["othe",34663],"tlw":["bed",1960],"trw":["object",689],"lp":["whe","bec","bet","cho","wed","doe","choo","betw","bed","beco","bett","bjec","whet","doc","doct"],"rp":["othe","howe","owed","ode","ojec"]},"55":{"input":[1,2,3,5,6],"tlw":["watch",1263],"trw":["jaw",167],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["di",96016],"trp":["id",100069],"tlw":["did",12252],"trw":["hit",1079],"lp":["di","thi","ft","did","dif","diff","dit","tif","diti","fit","ddi","fift"],"rp":["id","ith","hit","ift","idd","ithi","kid","idi"]},"57":{"input":[1,4,5,6],"tlp":["aid",27860],"trp":["hapt",2000],"tlw":["paid",1096],"trw":["ida",198],"lp":["aid","aft","fat","adi","fath","dia","path","diat","taf","taff","addi","paid","pid","dai","adit","fait","aith"],"rp":["hapt","ida","hak"]},"58":{"input":[2,4,5,6],"tlp":["with",75749],"trp":["yth",7557],"tlw":["with",67032],"lp":["with","whi","dy","why","body","book","bit","whit","doi","thy","wif","food","wid","foot"],"rp":["yth","ythi","itho","ody","othi","oft"]},"59":{"input":[1,2,4,5,6],"tlw":["day",8306],"trw":["habit",454],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["thei",26847],"trp":["ide",35753],"tlw":["feet",2131],"trw":["effect",1185],"lp":["thei","du","fte","chi","fic","ffic","die","duc","tud"],"rp":["ide","ich","hic","ked","hich","uch","ud","ied","edi","ethi","uth"]},"61":{"input":[1,3,4,5,6],"tlw":["face",4765],"trw":["idea",2885],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["but",49620],"trw":["office",2363],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["about",23108],"trw":["hoped",506],"lp":[],"rp":[]},"64":{"input":[7],"base":"n","baseshift":"N","trp":["nn",20957],"trw":["n",169],"lp":[],"rp":["nn"]},"65":{"input":[1,7],"base":"'","baseshift":"\"","tlp":["an",578917],"trp":["na",51349],"tlw":["an",29559],"trw":["'",14271],"lp":["an","ann","an'","ana","anna","a'","a'a","aan"],"rp":["na","n'","nan","nna","''","'a","nann","'an","'n"],"special":"punc"},"66":{"input":[2,7],"base":"q","baseshift":"Q","trp":["on",380429],"tlw":["q",103],"trw":["on",61313],"lp":[],"rp":["on","no","oon","nno","ono","onn","non","noo","noon","nq","onq","nnon","oq"]},"67":{"input":[1,2,7],"tlp":["ano",7268],"trp":["on'",11539],"trw":["o'",138],"lp":["ano","anno","aq","anon","anq"],"rp":["on'","ona","o'","oan","onna","onan","noa","'no","oan'","'o"]},"68":{"input":[3,7],"base":"v","baseshift":"V","tlp":["ve",240401],"trp":["en",361122],"tlw":["v",386],"trw":["even",12216],"lp":["ve","ven"],"rp":["en","ne","ev","eve","een","even","ene","nev","nv","neve","nee","nne","nve","enn","nen","nven","enne","env"]},"69":{"input":[1,3,7],"tlp":["av",63772],"trp":["e'",16794],"tlw":["van",633],"lp":["av","ave","va","ane","van","anne","aven","ava"],"rp":["e'","ean","eav","nea","'v","'ve","eave","en'","ena","eva","ne'","nav"]},"70":{"input":[2,3,7],"tlp":["vo",13509],"trp":["one",63385],"tlw":["von",319],"trw":["one",30730],"lp":["vo","von"],"rp":["one","ov","ove","eq","eno","onv","eon","eone","onve","onne","evo","nov","nvo","none","nove","nnov","onen","eov"]},"71":{"input":[1,2,3,7],"tlp":["avo",2634],"trp":["one'",1039],"lp":["avo","aneo"],"rp":["one'","ova","nova","eano","eavo","oe'","eona","oane","ovna"]},"72":{"input":[4,7],"base":"x","baseshift":"X","tlp":["xi",4595],"trp":["in",644105],"tlw":["x",233],"trw":["in",155002],"lp":["xi","xin","xii","xiii"],"rp":["in","ni","nin","ini","inn","ix","nni","inin","nnin","inni","nx","nxi","nix","ixi","ixin"]},"73":{"input":[1,4,7],"tlp":["ain",43995],"trp":["i'",14185],"tlw":["pain",1250],"trw":["'i",461],"lp":["ain","xp","ani","pan","pin","xa","pain","ppin","pani","aini","ax","anin","xan","apan","anx"],"rp":["i'","ina","ian","nia","inan"]},"74":{"input":[2,4,7],"trp":["ion",94353],"trw":["nixon",129],"lp":[],"rp":["ion","ny","oin","yin","yon","nio","oni","nion","ox","nyo","nyon","yn","iq","ony","nny","inno","iny","inio","ino","niq"]},"75":{"input":[1,2,4,7],"tlp":["any",30867],"trp":["iona",6976],"tlw":["any",10758],"trw":["opinion",667],"lp":["any","pon","poin","ayin","pany","anyo","apon","anio","xpo","any'","ay'","ppon"],"rp":["iona","y'","opin","yan","onia","ny'","iano","yna"]},"76":{"input":[3,4,7],"tlp":["vi",54014],"trp":["un",97406],"tlw":["vi",155],"trw":["nine",768],"lp":["vi","vin","vie"],"rp":["un","iv","ive","ex","ine","ien","nu","ivi","uni","ein","eni","inu","iev","inv","evi","ieve","nex"]},"77":{"input":[1,3,4,7],"tlp":["pen",17197],"trp":["exp",16071],"tlw":["avenue",408],"trw":["i've",2219],"lp":["pen","xpe","avi","avin","aine","ppen","pene","pine","aun"],"rp":["exp","expe","u'","exa","iva","i'v","i've","epen","una","eani","eavi"]},"78":{"input":[2,3,4,7],"tlp":["qu",27187],"trp":["oun",39137],"tlw":["queen",763],"trw":["union",600],"lp":["qu","qui","que","vio","voi","viou","quen"],"rp":["oun","equ","nou","ovi","youn","ney","enou","yone","oney","equi","eque","ovin","ovie"]},"79":{"input":[1,2,3,4,7],"tlw":["anyone",1715],"trw":["upon",4442],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"g","baseshift":"G","tlp":["gh",90668],"trp":["ng",301290],"tlw":["g",298],"lp":["gh","gn","gg"],"rp":["ng","hn","nh","ngn","ngh","hnn"]},"81":{"input":[1,5,7],"tlp":["ag",47829],"trp":["han",36890],"tlw":["gang",279],"trw":["hang",373],"lp":["ag","ga","ang","aga","gan","anag","gna","gag","agg","g'","agn","agan","gang"],"rp":["han","hang","nag","nha","nga","ngag","ng'"]},"82":{"input":[2,5,7],"tlp":["go",53049],"trp":["ong",22252],"tlw":["go",9032],"lp":["go","goo","gon","bon","gno","gho","ghb","ghbo","goog"],"rp":["ong","og","hon","ohn","ogn","nob","hono","nobo","oog","nb","hno"]},"83":{"input":[1,2,5,7],"tlp":["ban",5102],"trp":["nab",1526],"tlw":["ago",1471],"trw":["noah",100],"lp":["ban","ago","goa","bag","aban","agon","gab","bona","bagh"],"rp":["nab","ho'","onab","oga","nhab","ogan","onag","'b","noah","ohn'","'oh"]},"84":{"input":[3,5,7],"tlp":["ge",97282],"trp":["hen",50214],"tlw":["gene",85],"trw":["egg",150],"lp":["ge","gen","gene","gge","ghe","gne","veh"],"rp":["hen","eg","nge","eng","ege","nj","enj","enge","neg","hene","egg","egen","nhe"]},"85":{"input":[1,3,5,7],"tlp":["age",21698],"trp":["hav",41867],"tlw":["gave",3038],"trw":["have",35739],"lp":["age","ange","gav","gave","agen","gage","vag"],"rp":["hav","have","he'","ega","egan","nage","heav","eag","ehav","jan","enga","jean","jane"]},"86":{"input":[2,3,5,7],"tlp":["been",20749],"trp":["oge",4232],"tlw":["been",20749],"trw":["john",1863],"lp":["been","beg","ben","gone","gov","bov","bove","gove","bene","geo","bv","goe"],"rp":["oge","onge","hone","john","njo","enjo","ego","obv"]},"87":{"input":[1,2,3,5,7],"tlw":["began",3725],"trw":["joan",332],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["gi",33313],"trp":["ing",245338],"tlw":["fig",732],"trw":["high",3405],"lp":["gi","fin","gin","fig","ging"],"rp":["ing","ig","hin","igh","hing","ning","nf","ign","nig","nigh","hig","high","inf","ngi","ngin"]},"89":{"input":[1,4,5,7],"tlp":["gai",12716],"trp":["iga",1887],"tlw":["again",7165],"trw":["hanging",518],"lp":["gai","gain","agai","ping","fina","agi","agin","aig","gani","fan","gina","aigh","pag","angi","gia","aign"],"rp":["iga","iag","igna","nfa"]},"90":{"input":[2,4,5,7],"tlp":["goi",7117],"trp":["ying",10969],"tlw":["going",6947],"trw":["ongoing",108],"lp":["goi","goin","big","gy","bin","gio","bing","box"],"rp":["ying","oing","onf","nfo","info","onfi","ogni","ogi","igio","igno","ogy","ighb"]},"91":{"input":[1,2,4,5,7],"tlw":["paying",444],"trw":["hoping",381],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gu",19194],"trp":["ug",51619],"tlw":["give",3971],"trw":["evening",1505],"lp":["gu","ving","giv","give","gue","fiv","five","fun","gine"],"rp":["ug","ugh","eing","ung","eig","hun","egi","eigh","ugg","ehin","egin"]},"93":{"input":[1,3,4,5,7],"tlw":["page",587],"trw":["having",3594],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["being",7746],"trw":["enough",4614],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["phone",1178],"trw":["heavy",1152],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"r","baseshift":"R","tlp":["rt",81050],"trp":["nt",218499],"tlw":["r",211],"lp":["rt","tr","rn","rr","tn","ttr","rtn","rtr","rnt"],"rp":["nt","ntr","nr"]},"97":{"input":[1,6,7],"tlp":["ar",265629],"trp":["'t",37625],"tlw":["ran",1611],"lp":["ar","ra","ant","art","tra","tan","rat","ran","t'","arr","tar","rta","arn","tant","ara"],"rp":["'t","n't","nat","nta","'r"]},"98":{"input":[2,6,7],"tlp":["ro",170933],"trp":["or",314634],"tlw":["town",2110],"trw":["not",43106],"lp":["ro","wor","wn","tor","ron","tro","row","roo","wr","ton"],"rp":["or","not","now","own","ort","nto","ont","oor","nor","orn"]},"99":{"input":[1,2,6,7],"tlp":["war",17594],"trp":["on't",11002],"tlw":["want",6609],"trw":["narrow",524],"lp":["war","wan","want","aro","anot","roa","raw","rwa","rwar","awar","won'","awn"],"rp":["on't","orta","ora","owar","onta","oar","orwa","orat"]},"100":{"input":[3,6,7],"tlp":["re",464927],"trp":["er",558051],"tlw":["ten",1916],"trw":["never",9168],"lp":["re","ver","ter","cr","ten","rc","ren","ree","rec","tter"],"rp":["er","ere","ent","nc","nce","ever","nte","enc","ence","ner"]},"101":{"input":[1,3,6,7],"tlp":["rea",59674],"trp":["ear",54836],"tlw":["are",29172],"trw":["near",2012],"lp":["rea","are","can","anc","reat","ance","car","rac","ater","rate","crea","ract","arc","care","ante"],"rp":["ear","era","'re","erat","earn"]},"102":{"input":[2,3,6,7],"tlp":["wer",47082],"trp":["ore",43307],"tlw":["were",34909],"trw":["over",12910],"lp":["wer","con","were","cont","wen","went","cor","cro","rov","ween","conc","rew"],"rp":["ore","over","new","onc","once","ower","orc","econ"]},"103":{"input":[1,2,3,6,7],"tlw":["water",2519],"trw":["ocean",381],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["ri",146328],"trp":["ir",91496],"tlw":["tin",227],"trw":["ink",130],"lp":["ri","tin","rk","rin","rit","tri","rri","xt","rti","rni","ttin","rnin"],"rp":["ir","int","kin","kn","nti","nk","ink","nit"]},"105":{"input":[1,4,6,7],"tlp":["pr",76723],"trp":["it'",8789],"tlw":["part",4589],"lp":["pr","par","part","pri","rai","air","ari","tain","ark","arri","rati","rp","arti","ria","akin","ank","rain","trai"],"rp":["it'","nati"]},"106":{"input":[2,4,6,7],"tlp":["tion",71969],"trp":["kno",19117],"tlw":["work",8749],"trw":["into",18343],"lp":["tion","ry","work","win","try","rio","rry","tory","rty","wri","writ"],"rp":["kno","into","ork","know","ori","ory","oint","ntio","owin"]},"107":{"input":[1,2,4,6,7],"tlw":["point",3165],"trw":["nation",393],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["ru",29549],"trp":["ur",136165],"tlw":["turn",2317],"trw":["next",4617],"lp":["ru","tur","rie","tiv","ric","ture","rien","tru","tive","turn"],"rp":["ur","eir","ure","eri","unt","ire","inc","inte","urn","enti"]},"109":{"input":[1,3,4,6,7],"tlw":["taken",2592],"trw":["experience",2559],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["very",10569],"trw":["your",20504],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["power",3130],"trw":["you're",4043],"lp":[],"rp":[]},"112":{"input":[5,6,7],"tlp":["ght",56087],"trp":["nd",415919],"tlw":["dr",852],"trw":["nd",119],"lp":["ght","rd","gr","dr","thr","rg","dn","rth","dg","rh","gt","gth","ddr"],"rp":["nd","hr","nth","ndr","ngt","ngr","ngth"]},"113":{"input":[1,5,6,7],"tlp":["and",307129],"trp":["har",16333],"tlw":["and",266855],"trw":["hand",5168],"lp":["and","ard","than","dn'","dn't","gra","arg","tand","rad","dar","dan","gar","dra","rang"],"rp":["har","hand","'d","hat'","hard","nda"]},"114":{"input":[2,5,6,7],"tlp":["br",30536],"trp":["ord",17538],"tlw":["down",11247],"trw":["north",1391],"lp":["br","don","thro","down","good","bro","gro","got","rob","word","bor","rod","door"],"rp":["ord","ond","hro","noth","hor","org","ndo"]},"115":{"input":[1,2,5,6,7],"tlw":["don't",9569],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["ther",83716],"trp":["her",160213],"tlw":["there",23867],"trw":["her",47940],"lp":["ther","red","der","get","then","gre","den","ger","ved","dre","rge","rned"],"rp":["her","here","ned","nde","end","nder","ered","nted"]},"117":{"input":[1,3,5,6,7],"tlw":["great",6807],"trw":["heard",3016],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["when",27718],"trw":["other",13909],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["another",6638],"trw":["edward",463],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["fr",62589],"trp":["ight",39009],"tlw":["think",7751],"trw":["night",4461],"lp":["fr","thin","ting","din","ding","ring","fir","rig","righ","fri","rf","didn","find"],"rp":["ight","ind","king","ndi","hink","idn","ndin"]},"121":{"input":[1,4,5,6,7],"tlw":["didn't",7051],"trw":["i'd",3142],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["for",70927],"trw":["nothing",5093],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["anything",3884],"trw":["ordinary",614],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["their",26687],"trw":["under",4429],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["after",12071],"trw":["happened",1976],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["before",10203],"trw":["often",3952],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["around",6455],"trw":["opened",1401],"lp":[],"rp":[]},"128":{"input":[8],"base":"s","baseshift":"S","tlp":["ss",89478],"tlw":["s",2993],"lp":["ss"],"rp":[]},"129":{"input":[1,8],"base":"-","baseshift":"_","tlp":["as",286499],"trp":["-s",481],"tlw":["as",63759],"trw":["-",1362],"lp":["as","sa","ass","ssa","assa","asa","sas","saa","ssas","sass"],"rp":["-s","-a"],"special":"punc"},"130":{"input":[2,8],"tlp":["so",117437],"trp":["os",70799],"tlw":["so",27040],"lp":["so","soo","sso"],"rp":["os","oss","oos","oso"],"special":"bksp","base":"os"},"131":{"input":[1,2,8],"tlp":["aso",4273],"trp":["oas",835],"lp":["aso","asso","soa","aos","so-"],"rp":["oas","o-","osa","ossa","-o"]},"132":{"input":[3,8],"base":")","baseshift":"]","tlp":["se",231764],"trp":["es",259811],"tlw":["see",9997],"lp":["se","see","sse","ses","sses","sess","sees"],"rp":["es","ess","ese","esse","ees","eese"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ase",11581],"trp":["eas",23956],"tlw":["sea",1374],"trw":["ease",378],"lp":["ase","sea","asse","ases","seas"],"rp":["eas","ease","essa","esea","easa","e-","-e","eass","-se","e-a","-es"]},"134":{"input":[2,3,8],"tlp":["soe",138],"trp":["ose",25993],"lp":["soe"],"rp":["ose","oes","osse","oose","eso","esso","oses","eos"]},"135":{"input":[1,2,3,8],"trp":["easo",4023],"lp":[],"rp":["easo"]},"136":{"input":[4,8],"base":"?","baseshift":"/","tlp":["si",120170],"trp":["is",263616],"trw":["is",60295],"lp":["si","ssi","sis","ssis","siss"],"rp":["is","isi","iss","issi","isis"],"special":"punc"},"137":{"input":[1,4,8],"tlp":["sp",40374],"trp":["ips",2652],"tlw":["pass",1068],"lp":["sp","sai","ps","pas","asi","pass","spi","assi","spa","aps","ais","sia","sap","asp","sapp","ssia"],"rp":["ips","isa","isp","isap"]},"138":{"input":[2,4,8],"tlp":["sio",15825],"trp":["ys",27984],"lp":["sio","sy","ssio","sys","ssy"],"rp":["ys","osi","ossi","isio","iso","ysi","oys","ois","ios","ysis","iosi","yos","yoss","oosi","osio"]},"139":{"input":[1,2,4,8],"tlp":["pos",16560],"trp":["osp",1974],"tlw":["say",7781],"lp":["pos","ays","say","spo","poss","posi","says","ppos","asy","asio","sayi","psy","sop"],"rp":["osp","ops","y-","ospi","oops","opos","osop"]},"140":{"input":[3,4,8],"tlp":["su",62257],"trp":["us",124701],"tlw":["sue",76],"trw":["us",10609],"lp":["su","ssu","sus","sui","sue","sie"],"rp":["us","use","ies","ise","usi","esi","ues","essi","esu","uss","usu","uis","ussi","uses"]},"141":{"input":[1,3,4,8],"tlp":["spe",18659],"trp":["esp",8233],"tlw":["pause",378],"trw":["usa",134],"lp":["spe","aus","ause","sup","supp","sua","spea","asu","sep","aise","assu","spee","pus"],"rp":["esp","espe","usa","usua","easi","easu","ups"]},"142":{"input":[2,3,4,8],"tlp":["sou",7964],"trp":["ous",26493],"trw":["eyes",5472],"lp":["sou","sey"],"rp":["ous","ious","yes","ouse","eyes","yse","usio","usy","uys","esou","yees","oise","ouis","ousi","eous","eys","uous","osu"]},"143":{"input":[1,2,3,4,8],"tlw":["suppose",803],"trw":["easy",1561],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","tlp":["sh",119750],"trp":["ms",20491],"trw":["m",1273],"lp":["sh","sm","shm","ssm","ssh"],"rp":["ms","mm","hs","hm","mms"]},"145":{"input":[1,5,8],"tlp":["am",72035],"trp":["ma",137500],"tlw":["am",4235],"trw":["has",11125],"lp":["am","sha","sam","sma","ash","ama","ams","sham","amm","aham","asm","asha"],"rp":["ma","has","mas","ham","mma","mass","-m","-ma"]},"146":{"input":[2,5,8],"tlp":["som",32033],"trp":["om",158331],"tlw":["boss",848],"trw":["mom",1398],"lp":["som","sho","bs","sb","bos","smo"],"rp":["om","mo","mb","mos","hos","omm","hom","oom","mom","obs","mmo","ommo","omb","moo"]},"147":{"input":[1,2,5,8],"tlp":["amo",4702],"trp":["oma",6690],"tlw":["bass",106],"trw":["obama",363],"lp":["amo","bas","amb","abs","sba","abso","bass","bam","bama","amba"],"rp":["oma","omma","mba","mbas","homa","omas","obam","hamb","-b","omba"]},"148":{"input":[3,5,8],"tlp":["she",58316],"trp":["me",235102],"tlw":["she",45928],"trw":["me",30278],"lp":["she","seem"],"rp":["me","em","hem","eme","hes","mes","hese","eem","mse","mem","ems","mme","eeme","emem","mee","hems","emse","eems"]},"149":{"input":[1,3,5,8],"tlp":["ame",34012],"trp":["mea",9606],"tlw":["same",6718],"trw":["james",771],"lp":["ame","same","ames","ashe","amme"],"rp":["mea","ema","eam","maj","hame","jam","meas","eams","hase","jame","eame","emma","e-m","e-ma","mae"]},"150":{"input":[2,3,5,8],"tlp":["some",31924],"trp":["ome",63421],"tlw":["some",15162],"trw":["home",4865],"lp":["some","bes","bse","semb"],"rp":["ome","hose","mbe","emb","embe","emo","home","memb","mome","meo","omeo","omes","obse","memo","omme","jobs"]},"151":{"input":[1,2,3,5,8],"tlw":["base",538],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["shi",11339],"trp":["his",109386],"tlw":["fish",451],"trw":["his",69304],"lp":["shi","sim","smi","sf","fis"],"rp":["his","im","mi","him","ish","mis","ims","hims","miss","imi","mmi","imm","mf","ism","isf"]},"153":{"input":[1,4,5,8],"tlp":["ami",8211],"trp":["mp",43386],"tlw":["ship",877],"trw":["map",280],"lp":["ami","fam","fami","ship","amp","simp","fas","aim","ashi","saf","pm"],"rp":["mp","imp","mpa","ima","mai","haps","iam","hips","-f"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["sib",6869],"trp":["my",49697],"tlw":["boys",1175],"trw":["my",40423],"lp":["sib","ssib","sof","sibi","boys","sym","shio"],"rp":["my","omi","mys","ym","mbi","omis","hys","ommi","hysi","omf","mfo","omfo","imb"]},"155":{"input":[1,2,4,5,8],"tlw":["shop",667],"trw":["may",6928],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["sum",4274],"trp":["ime",28758],"tlw":["sum",220],"trw":["jim",446],"lp":["sum","fes","suf","suff"],"rp":["ime","mu","um","jus","mus","imes","imse","ishe","hus","ume","ush","hum","emi","mmu","umm","imme"]},"157":{"input":[1,3,4,5,8],"tlw":["safe",789],"trw":["jump",350],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["busy",647],"trw":["house",4935],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["famous",816],"trw":["maybe",2276],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"z","baseshift":"Z","tlp":["st",260669],"tlw":["st",798],"lp":["st","ts","sts","zz","tst","tz","tts"],"rp":[]},"161":{"input":[1,6,8],"tlp":["sta",40389],"trp":["-t",1205],"tlw":["sat",2253],"lp":["sta","ast","stat","sat","az","tas","za","ats","zat","tast","t-","sast","asta","asts","t-s","t-t","azz","zza","tsta"],"rp":["-t"]},"162":{"input":[2,6,8],"tlp":["sto",21671],"trp":["ost",21248],"tlw":["toss",85],"trw":["oz",100],"lp":["sto","ws","sw","stoo","tos","swo","zo","wso","toss","tso","stot"],"rp":["ost","ows","ots","oz","oots","osts","osto","otos","otst"]},"163":{"input":[1,2,6,8],"tlp":["was",117615],"trp":["oast",835],"tlw":["was",112330],"lp":["was","saw","aws","to-","swa","wast","awso","asto","atso","wats","toas","sota"],"rp":["oast","oats","-tw","-two","-to","-to-","-w","-wo"]},"164":{"input":[3,6,8],"tlp":["ste",30114],"trp":["est",36800],"tlw":["set",3472],"lp":["ste","sc","ces","tes","ze","sec","cess","set","cts","cces","test","cs","tse","sett"],"rp":["est","esc","ets","este","ects","eces"]},"165":{"input":[1,3,6,8],"tlp":["cas",7637],"trp":["east",4973],"tlw":["case",2870],"trw":["east",920],"lp":["cas","ates","aste","case","sca","stea","aces","ccas","seat","sac","cast","aze","acts","stac","asc"],"rp":["east","esta","esca","-c","eats"]},"166":{"input":[2,3,6,8],"tlp":["swe",5581],"trp":["ews",3282],"tlw":["west",1068],"lp":["swe","soc","sco","seco","wes","west","cos","cost","ssoc","stoc","swee","scot","sew"],"rp":["ews","oces","otes","oze","esto","oste","osc"]},"167":{"input":[1,2,3,6,8],"tlw":["coast",540],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["sti",24448],"trp":["ist",28091],"tlw":["sit",1264],"trw":["its",10155],"lp":["sti","sk","sit","sist","tis","siti","ski","zi","tsi","tist","sitt","stit"],"rp":["ist","its","ks","iz","isti","isit","ists","itis"]},"169":{"input":[1,4,6,8],"tlp":["ask",11409],"trp":["ista",3836],"tlw":["ask",2497],"lp":["ask","sati","past","spit","azi","zati","stai","stak","atis","task","asti","asks","aski","stia","sak","pts","sita"],"rp":["ista","iza","izat"]},"170":{"input":[2,4,6,8],"tlp":["wis",5185],"trp":["osit",4706],"tlw":["sky",622],"lp":["wis","stio","syst","sity","sty","swi","sky","zy","swit","sito","twis","wist"],"rp":["osit","isto","yst","oks","ooks","izo","osti","isky"]},"171":{"input":[1,2,4,6,8],"tlw":["stop",1798],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["suc",11912],"trp":["ust",31229],"tlw":["success",1485],"lp":["suc","stu","ske","ties","cus","sic","sci","cis","succ","stic","cks"],"rp":["ust","iste","esti","ize","uest","kes","isc","uts","ices"]},"173":{"input":[1,3,4,6,8],"tlw":["speak",1583],"trw":["escape",642],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["weeks",1328],"trw":["keys",254],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["spoke",1285],"trw":["opposite",687],"lp":[],"rp":[]},"176":{"input":[5,6,8],"tlp":["ds",32521],"trp":["hts",3276],"lp":["ds","tm","ths","dm","sd","stm","dsh","dds","dst","thm","thst","sht","sth"],"rp":["hts","mst","mt","mth","htm","hst"]},"177":{"input":[1,5,6,8],"tlp":["adm",2373],"trp":["mat",11909],"tlw":["sad",457],"trw":["mad",373],"lp":["adm","dam","ads","sad","shad","tma","adam","amaz","sda","atm","stma","tmas","d-"],"rp":["mat","mad","matt","mast","msta","maz","hast"]},"178":{"input":[2,5,6,8],"tlp":["thos",7914],"trp":["most",15009],"tlw":["show",2474],"trw":["most",10396],"lp":["thos","wom","show","tom","dom","whom","whos","stom","shot","dows","bst","doz","ttom"],"rp":["most","mot","moth","mod","ods","host","oods"]},"179":{"input":[1,2,5,6,8],"tlw":["thomas",561],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["them",24753],"trp":["med",15366],"tlw":["them",21593],"trw":["met",1822],"lp":["them","sed","des","thes","tem","ssed","shed","sch","sted","tme","ches","dem","zed","desc","stem"],"rp":["med","met","meth","emed","meet"]},"181":{"input":[1,3,5,6,8],"tlw":["came",6889],"trw":["made",9696],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["those",7914],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["became",2829],"trw":["matthew",262],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["this",36089],"trp":["mit",4914],"tlw":["this",36089],"trw":["kids",1451],"lp":["this","tim","sid","dis","dist","dmi","tsid","tish","tisf"],"rp":["mit","hist","mid","mist","ids","mitt","midd","kids","mmit","imit","mik"]},"185":{"input":[1,4,5,6,8],"tlw":["said",23960],"trw":["maid",197],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["books",1442],"trw":["myth",226],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["days",3754],"trw":["habits",317],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["time",17984],"trw":["just",14589],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["asked",5484],"trw":["make",9390],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["sometimes",2685],"trw":["outside",2061],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["because",9879],"trw":["empty",823],"lp":[],"rp":[]},"192":{"input":[7,8],"base":"l","baseshift":"L","tlp":["sl",14047],"trp":["ll",183975],"trw":["l",235],"lp":["sl","sn","ssl"],"rp":["ll","ns","ls","nl","lls","ln","lln","nsl","nns"]},"193":{"input":[1,7,8],"tlp":["al",228009],"trp":["la",103279],"tlw":["all",30772],"trw":["la",689],"lp":["al","all","als","ans","sn'","san","asn","asn'","sla"],"rp":["la","'s","lan","nal","las","'l","'ll","lla","lass","nall","n's"]},"194":{"input":[2,7,8],"tlp":["son",18915],"trp":["lo",103908],"tlw":["soon",3191],"trw":["loss",625],"lp":["son","sol","soon","slo","sons","sq"],"rp":["lo","ol","ons","loo","lon","onl","oll","los","llo","lso","ool","olo","ollo","ols"]},"195":{"input":[1,2,7,8],"tlp":["also",7989],"trp":["onal",8944],"tlw":["also",7989],"trw":["loan",120],"lp":["also","alo","alon","ason","sona","allo","sola","son'"],"rp":["onal","olla","oal","ola","loa","oals","on's","o's","osal","olan","loan","o-n"]},"196":{"input":[3,7,8],"tlp":["sel",25483],"trp":["le",213808],"tlw":["seen",3375],"trw":["less",3333],"lp":["sel","sen","ves","vel"],"rp":["le","el","ell","lle","les","nes","ens","ness","eel","len","less","ele","lv","nse","lve","els"]},"197":{"input":[1,3,7,8],"tlp":["alle",8964],"trp":["lea",26849],"tlw":["save",729],"trw":["leave",2148],"lp":["alle","ale","val","sav","avel","vas","aves"],"rp":["lea","eal","e's","leas","ela","eall","leav","eans","lean","esn'","e'l","e'll","lane"]},"198":{"input":[2,3,7,8],"tlp":["vol",4101],"trp":["ole",7645],"tlw":["solve",211],"trw":["love",3654],"lp":["vol","velo","volv","sov"],"rp":["ole","lov","love","lose","elo","olle","lone","ones","olv","olve","ello","oesn","onse","nvol","olen","evol"]},"199":{"input":[1,2,3,7,8],"tlw":["alone",2184],"trw":["one's",680],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["sin",21536],"trp":["li",155342],"tlw":["six",1928],"trw":["ill",512],"lp":["sin","sil","ssin","six","sli","xis"],"rp":["li","il","ill","lin","ins","lli","nsi","ili","lis","llin","nis","illi","insi","inis"]},"201":{"input":[1,4,7,8],"tlp":["pl",68379],"trp":["ial",13366],"tlw":["plan",1335],"trw":["i'll",2287],"lp":["pl","pla","ali","ail","ains","plan","pli","xpl","plai","ppl","xpla"],"rp":["ial","lp","lai","lia","inal","lain","iall","lip","ila"]},"202":{"input":[2,4,7,8],"tlp":["sion",15757],"trp":["ly",122921],"tlw":["sly",561],"trw":["only",13824],"lp":["sion","sly"],"rp":["ly","lly","ions","nly","only","ily","oli","onsi","loy","lio","lion","ison","llio","ilo","oil","yl","inly","lyi"]},"203":{"input":[1,2,4,7,8],"tlw":["play",1696],"trw":["lay",1482],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["vis",5954],"trp":["ul",100189],"tlw":["sun",1066],"trw":["live",2131],"lp":["vis","visi","sine"],"rp":["ul","lu","ile","eli","lie","liv","ines","ull","live","usin","elie","line","lue","uil","elli","liev","elin"]},"205":{"input":[1,3,4,7,8],"tlw":["value",1339],"trw":["explain",790],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["soul",950],"trw":["louis",534],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["people",14668],"trw":["usually",1445],"lp":[],"rp":[]},"208":{"input":[5,7,8],"tlp":["gs",15960],"trp":["ngs",13154],"lp":["gs","gl","ghl","ggl","gm","gns","sg","ghs","gnm","ggs"],"rp":["ngs","ngl","lm","nm","hl","nsh","mn","lg","ml","lsh"]},"209":{"input":[1,5,7,8],"tlp":["alm",5014],"trp":["man",42306],"tlw":["small",3786],"trw":["man",9572],"lp":["alm","gla","smal","shal","gam","glan","sag","glas"],"rp":["man","mal","hal","'m","nam","mag","mall","hall","mana","mann","mman","lang"]},"210":{"input":[2,5,7,8],"tlp":["bl",48180],"trp":["mon",15025],"tlw":["song",454],"trw":["long",7506],"lp":["bl","blo","bloo","gol","glo"],"rp":["mon","long","hol","hool","lmo","lmos","obl","log","mong","mbl","mmon","olog","nom","onsh","onom"]},"211":{"input":[1,2,5,7,8],"tlw":["along",3060],"trw":["lab",187],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["ges",7464],"trp":["men",40378],"tlw":["smell",549],"trw":["men",6294],"lp":["ges","gle","vem","gges","veme"],"rp":["men","hel","msel","emen","lem","leg","engl","nme","nmen","ngle","lege","mel","hell","leng","lleg"]},"213":{"input":[1,3,5,7,8],"tlw":["game",1331],"trw":["name",3325],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["someone",3001],"trw":["move",1750],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["able",2600],"trw":["ebola",147],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["fl",14707],"trp":["min",22065],"tlw":["sign",979],"trw":["hill",676],"lp":["fl","sing","sig","sign","fil"],"rp":["min","lf","hil","mil","ling","ings","lif","lig","ligh","mig","migh","ming","lish","mili","nish"]},"217":{"input":[1,4,5,7,8],"tlw":["fall",1195],"trw":["i'm",6537],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["bill",951],"trw":["million",900],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["family",3955],"trw":["many",8068],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["feel",4278],"trw":["life",8740],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["simple",1385],"trw":["help",3633],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["business",3695],"trw":["money",3556],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["possible",2350],"trw":["impossible",978],"lp":[],"rp":[]},"224":{"input":[6,7,8],"tlp":["rs",105128],"trp":["lt",24155],"lp":["rs","tl","str","rl","rst","ttl","rts","rns","rls","stl","rtl","sr"],"rp":["lt","nts","nst","ntl","lr","nstr","lts","nz"]},"225":{"input":[1,6,7,8],"tlp":["t's",15472],"trp":["lat",15533],"tlw":["start",1979],"trw":["last",4981],"lp":["t's","tal","ars","stan","ral","arl","star","stra","sn't","alt","at's","alr","r's","rsta","ants","ras"],"rp":["lat","lar","last","nsta"]},"226":{"input":[2,6,7,8],"tlp":["stor",8576],"trp":["low",16681],"tlw":["sort",1672],"trw":["lot",2713],"lp":["stor","rso","rson","worl","ros","tol","rol","sor","ross","wl","stro"],"rp":["low","llow","ors","orl","lw","lot","lor","nsw","owl"]},"227":{"input":[1,2,6,7,8],"tlw":["wasn't",3475],"trw":["law",1217],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["res",45093],"trp":["ers",54211],"tlw":["tell",4528],"trw":["let",4207],"lp":["res","cl","tle","tel","rse","ser","ttle","rel","ress","cle","ster","rest","tell","serv","sent","rese","stre"],"rp":["ers","ents","let"]},"229":{"input":[1,3,6,7,8],"tlw":["call",2856],"trw":["later",4588],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["well",8952],"trw":["news",1412],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["across",2659],"trw":["local",1100],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["til",13601],"trp":["lik",24097],"tlw":["still",7621],"trw":["list",991],"lp":["til","ris","till","stil","stin","sir"],"rp":["lik","lit","irs","irst","lk","inst","litt","ittl","ilit","irl","list","kil","ntil","kill"]},"233":{"input":[1,4,6,7,8],"tlw":["talk",2625],"trw":["it's",8558],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["will",14271],"trw":["look",5477],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["always",6467],"trw":["national",867],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["since",3793],"trw":["like",19390],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["place",5268],"trw":["natural",1235],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["course",3730],"trw":["likely",1530],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["really",4931],"trw":["years",7833],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"tlp":["rm",33028],"trp":["ld",104617],"trw":["mr",4133],"lp":["rm","dl","rds","rld","rms","ghts","rsh","ddl","rtm","rnm"],"rp":["ld","nds","mr","ldn","lth","ldr","ndl","mrs","nths","htl"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["that's",4282],"trw":["hands",3247],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["world",6250],"trw":["old",6168],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["almost",3784],"trw":["normal",610],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["themselves",2651],"trw":["held",2063],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["called",4581],"trw":["large",2557],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["school",3844],"trw":["more",21171],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["table",2154],"trw":["major",1113],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["first",11244],"trw":["might",6921],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["against",4423],"trw":["making",2931],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["from",35952],"trw":["looking",3174],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["probably",2197],"trw":["important",2765],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["felt",4669],"trw":["left",5159],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["perhaps",2737],"trw":["instead",2310],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["would",27522],"trw":["looked",5103],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["already",3329],"lp":[],"rp":[]}} \ No newline at end of file
diff --git a/keyboards/gboards/dicts/aset/_generator/src/en-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/en-keymap.json
new file mode 100644
index 0000000000..054183678a
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/_generator/src/en-keymap.json
@@ -0,0 +1 @@
+{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",410],"tlw":["a",211837],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",89478],"tlw":["s",2993],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",286499],"tlw":["was",112330],"lp":["as","wa","was","sa","aw","ass","ws","awa","sw","ssa","saw","assa","aws","asa","swa","sas","ww","saa","www","ssas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",129154],"tlw":["e",471],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",216643],"tlw":["x",233],"lp":["ea","ex","xa","exa","xe","exe","ax","ae","axe","eea"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["ed",326541],"tlw":["see",9997],"lp":["ed","es","se","de","ess","ds","see","sed","ese","ded","des","eed","sse","dd","ses","ssed","esse","dde","dee","sses"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",140314],"tlw":["we",33258],"lp":["ad","we","da","ew","ead","eas","ade","dea","ase","wee","sea","wed","swe","wea","asse","ease","add","ews","eade","essa"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",55910],"tlw":["t",670],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",371419],"tlw":["at",51085],"lp":["at","ta","fa","ff","ft","af","att","aft","tat","fat","aff","tta","atta","tf","taf","taff","ata","ffa","affa","atf"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",260669],"tlw":["c",872],"lp":["st","ct","ts","sc","cc","tc","sts","cts","cs","tst","cst","tts","stc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",118675],"tlw":["fact",3233],"lp":["ca","ac","sta","act","tw","ast","fac","cat","acc","cas","stat","wat","sat","atc","fact","tac","sca","watc","sf","fas"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",558051],"tlw":["tree",670],"lp":["er","re","te","et","ere","rt","tr","ter","rr","tte","ree","ett","tter","tre","ret","eet","ert","ette","ete","rte"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",265629],"tlw":["are",29172],"lp":["ar","ra","fe","fr","rea","ear","are","ate","ef","art","eat","tra","rat","fte","reat","era","ffe","arr","afte","fter"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ce",144944],"tlw":["set",3472],"lp":["ce","rs","ec","ers","ted","rd","res","est","red","der","cr","ect","ste","dr","str","rc","ces","rst","rec","rse"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["wer",47082],"tlw":["were",34909],"lp":["wer","were","ard","ace","war","car","eca","ars","eac","read","rac","ears","ated","wr","ward","star","twe","stra","crea","reas"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",20957],"trw":["n",169],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",578917],"trp":["na",51349],"tlw":["an",29559],"lp":["an","ann","ana","anna","aq","aan","anq"],"rp":["na","nan","nna","nq","nann"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",9321],"trp":["ns",85305],"trw":["j",365],"lp":["sn"],"rp":["ns","nj","nns"]},"19":{"input":[1,2,5],"tlp":["wn",31110],"trp":["ja",7328],"tlw":["san",544],"trw":["jaw",167],"lp":["wn","ans","wan","san","asn","answ","wasn","aj","sq","awn","asan","sna","wns","anw"],"rp":["ja","nsw","jan","nw","nsa","nwa"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",361122],"trp":["ne",208843],"tlw":["eye",1504],"trw":["ye",442],"lp":["en","ey","een","ene","eye","enn","enne","eny","enny"],"rp":["ne","ye","ny","nee","nne","ney","yn","nen","nny","yee","yne"]},"21":{"input":[1,3,5],"tlp":["ay",87083],"trp":["yea",12043],"tlw":["any",10758],"trw":["nay",83],"lp":["ay","any","ean","eq","ane","aye","anne","ena","xan","exan","anx","eane","enan","enea"],"rp":["yea","nea","nex","ya","nx","yan"]},"22":{"input":[2,3,5],"tlp":["end",27020],"trp":["nd",415919],"tlw":["eyes",5472],"trw":["need",4397],"lp":["end","dy","den","sen","dn","ens","sy","ense"],"rp":["nd","ned","ys","nde","nes","nds","ness","je","yes","nse","need","nded"]},"23":{"input":[1,2,3,5],"tlp":["and",307129],"trp":["new",18090],"tlw":["and",266855],"trw":["new",10172],"lp":["and","way","day","ays","say","wen","ways","ady","ands","away","eady","ween","dan","days","ande","says","sand"],"rp":["new","nda","nswe"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",3003],"trp":["nt",218499],"tlw":["b",695],"lp":["bt","tn","bb","tb"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ab",55519],"trp":["nat",11510],"tlw":["fan",245],"lp":["ab","ba","ant","tan","tant","tab","ban","bab","bat","fan","batt","anta","fant","abb"],"rp":["nat","nf","nta","nab","nfa","nant"]},"26":{"input":[2,4,5],"tlp":["bs",6980],"trp":["nc",79565],"tlw":["bc",95],"lp":["bs","bj","sb","bst","bts","bc","bsc","bbs","cn","cb","cbs","stn"],"rp":["nc","nts","nst","nsc","nct","ncts"]},"27":{"input":[1,2,4,5],"tlp":["can",27607],"trp":["nsta",3211],"tlw":["can",15149],"lp":["can","anc","stan","bac","want","tanc","bas","ants","cann","abs","sba","sban","stab","sant","cq","acq","cans"],"rp":["nsta","jac","nanc"]},"28":{"input":[3,4,5],"tlp":["be",175052],"trp":["nte",31075],"tlw":["be",44932],"trw":["yet",4449],"lp":["be","ent","ry","ty","rn","by","br","ery","ten","ren","bee","been","ber","rne","ern","bet"],"rp":["nte","ner","nter","ntr"]},"29":{"input":[1,3,4,5],"tlp":["ran",19074],"trp":["year",11125],"tlw":["ran",1611],"trw":["next",4617],"lp":["ran","ary","bef","arn","bea","ante","earn","bra","brea","aren","tran","ften","anyt","bar","rtan","req"],"rp":["year","nera","next","near"]},"30":{"input":[2,3,4,5],"tlp":["enc",25606],"trp":["nce",54473],"tlw":["best",3733],"lp":["enc","ence","bec","ents","cen","cent","rned","dent","sent","bes","renc","bed","cy","tend"],"rp":["nce","nder","nted","jec","ject","nces"]},"31":{"input":[1,2,3,4,5],"tlw":["went",6413],"trw":["years",7833],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1762],"trw":["i",117501],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",104869],"trp":["ia",38456],"tlw":["aziz",61],"lp":["ai","az","za","zi","azi","zz","azz","zza","ziz","aziz"],"rp":["ia","iz","iza","izi","izz","izza","iai"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",120170],"trp":["is",263616],"trw":["is",60295],"lp":["si","ssi","sk","sis","ski","sks","ssis"],"rp":["is","ki","ik","ks","isi","iss","issi","isk","kis","kiss","iki","isis","isks"]},"35":{"input":[1,2,6],"tlp":["wi",119378],"trp":["ka",3991],"tlw":["ask",2497],"trw":["kaa",57],"lp":["wi","ak","sai","ask","asi","aki","wis","assi","wai","ais","sia","swi","ssia","wak","asks","aski","siz","asis"],"rp":["ka","isa"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",51232],"trp":["ie",85987],"lp":["ei","eei"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",9545],"trp":["ize",5603],"tlw":["xiii",65],"trw":["ix",80],"lp":["ze","xi","exi","aze","ez","eez","eiz","eze","eeze","eize","xie","axi","zei","ezi","eezi","eizi"],"rp":["ize","ix","ixe","ixi"]},"38":{"input":[2,3,6],"tlp":["di",96016],"trp":["id",100069],"tlw":["did",12252],"trw":["kids",1451],"lp":["di","did","sid","side","dis","esi","edi","die","ek","eek","ske","essi"],"rp":["id","ke","ide","ike","ked","ies","ied","ise"]},"39":{"input":[1,2,3,6],"tlp":["ake",27987],"trp":["idea",4816],"tlw":["said",23960],"trw":["idea",2885],"lp":["ake","aid","said","eak","aske","adi","dia","akes","week","six","zed","eadi","easi","edia","xis","aise"],"rp":["idea","iew","ized","ida"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",213739],"trp":["it",311028],"tlw":["tv",551],"trw":["it",92474],"lp":["ti","vi","tiv","tti","tit","vit","tivi","viv","titi","ttit","viti","tv"],"rp":["it","iv","iti","itt","ivi","itti","itiv","ivit"]},"41":{"input":[1,4,6],"tlp":["fi",67126],"trp":["if",58122],"tlw":["fit",689],"trw":["if",25154],"lp":["fi","av","ati","va","tai","ffi","avi","ait","fai","tia","tati","ativ","vat","tif"],"rp":["if","iff","ita","ift","iat","ifi"]},"42":{"input":[2,4,6],"tlp":["ck",51278],"trp":["ic",118179],"tlw":["sit",1264],"trw":["its",10155],"lp":["ck","ci","sti","cti","tic","sit","cit","vis","vic","sist","sic","ctiv","visi","tis"],"rp":["ic","ist","its","ick","ici","ict"]},"43":{"input":[1,2,4,6],"tlp":["wit",77056],"trp":["ica",19163],"tlw":["wait",1256],"trw":["isaac",209],"lp":["wit","ack","tak","fic","cia","acti","ffic","wait","tica","sati","cati","wif","taki","fici","aci"],"rp":["ica","ista","icat","ific","icia"]},"44":{"input":[3,4,6],"tlp":["ve",240401],"trp":["ir",91496],"tlw":["ever",4714],"trw":["ive",85],"lp":["ve","ri","ver","ev","eve","ever","eir","rie","eri","rit","rv","tri","rri","tive","erv","rti"],"rp":["ir","ive","ite","ire"]},"45":{"input":[1,3,4,6],"tlp":["ave",49806],"trp":["ife",12017],"tlw":["five",2604],"lp":["ave","fir","rai","air","ari","fri","arri","frie","rati","arti","ria","eav","trai","rtai","fie","eave"],"rp":["ife","iffe","ief","iate"]},"46":{"input":[2,3,4,6],"tlp":["rk",28978],"trp":["ice",25015],"tlw":["tried",2205],"lp":["rk","ved","ves","ric","ris","eci","ecti","serv","esti","ried","cri","rke","cke","vid","ties","vers"],"rp":["ice","irs","irst","iste"]},"47":{"input":[1,2,3,4,6],"tlw":["first",11244],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",644105],"trw":["in",155002],"lp":[],"rp":["in","hi","ni","hin","nin","ini","inn","nni","inin","hn","nnin","inni","nh","hni","inh","hini","hnn","ih"]},"49":{"input":[1,5,6],"tlp":["ain",43995],"trp":["ha",357027],"tlw":["ah",458],"trw":["han",268],"lp":["ain","ani","ah","aini","zin","anin","aniz","azin"],"rp":["ha","han","ina","ian","hai","niz","nia","iq","inan","niza","nha","niq"]},"50":{"input":[2,5,6],"tlp":["sh",119750],"trp":["his",109386],"tlw":["skin",661],"trw":["his",69304],"lp":["sh","sin","shi","ssin"],"rp":["his","kin","kn","nk","ins","ish","ink","nsi","hink","nis","nki","nkin","hs","nish","inki","insi"]},"51":{"input":[1,2,5,6],"tlp":["wh",148489],"trp":["has",13193],"tlw":["wish",1198],"trw":["has",11125],"lp":["wh","whi","wha","win","sha","ains","akin","ank","ash","wish","ashi","anks","wash","sian","anis","asin","whis"],"rp":["has","hank","ians"]},"52":{"input":[3,5,6],"tlp":["ein",10146],"trp":["he",1036192],"tlw":["eh",128],"trw":["he",92135],"lp":["ein","eh","eni","enin","ehi","ehin"],"rp":["he","hen","hey","ine","hei","ien","hy","yi","yin","hee","hie","nie","nei","inne"]},"53":{"input":[1,3,5,6],"tlp":["aine",5046],"trp":["hea",22882],"tlw":["annie",159],"trw":["yeah",918],"lp":["aine","ayi","ayin","eha","eani","zen","anie","ahe","anxi","ahea","eah","zy","zine","azy","xh","exh"],"rp":["hea","nize","nxi","yeah"]},"54":{"input":[2,3,5,6],"tlp":["she",58316],"trp":["ind",31046],"tlw":["she",45928],"trw":["kind",3481],"lp":["she","din","didn","shed"],"rp":["ind","hes","hed","ndi","hese","ines","ined","iend","iden","idn","kne","ndin","ken","nsid","ishe","indi"]},"55":{"input":[1,2,3,5,6],"tlw":["when",27718],"trw":["had",63389],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["th",1104883],"trp":["ith",80740],"tlw":["bit",1490],"trw":["hit",1079],"lp":["th","thi","thin","tin","bi","vin","ttin","bit"],"rp":["ith","ht","int","nti","ib","nv","nit","hit","inv","ntin","nth","ivin"]},"57":{"input":[1,4,5,6],"tlp":["tha",132122],"trp":["hat",148416],"tlw":["that",110865],"trw":["hat",521],"lp":["tha","that","ath","fin","than","tain","avin","fath","aint","van","fina","atin","abi","fini"],"rp":["hat","hav","inf","nati","havi","ntai"]},"58":{"input":[2,4,5,6],"tlp":["ch",138742],"trp":["ich",25423],"tlw":["this",36089],"trw":["nick",237],"lp":["ch","this","chi","tch","sib","chin","sch","ssib","stin","sinc","cin"],"rp":["ich","hic","hich","inc","inst","nch","nci","nic","hts"]},"59":{"input":[1,2,4,5,6],"tlw":["with",67032],"trw":["jack",1623],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["the",718961],"trp":["her",160213],"tlw":["the",506536],"trw":["her",47940],"lp":["the","ther","they","ven","thei","very","rin","thr","even","then","eth","enti","rien"],"rp":["her","here","heir","hr","ity","inte","nev"]},"61":{"input":[1,3,4,5,6],"tlw":["father",3696],"trw":["have",35739],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["these",9773],"trw":["interest",1336],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["where",9655],"trw":["heard",3016],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",93108],"trw":["o",531],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",915],"trp":["oa",14939],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",117437],"trp":["os",70799],"tlw":["so",27040],"lp":["so","soo","sso"],"rp":["os","oss","oos","oso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",92580],"trp":["ow",122368],"tlw":["wow",113],"lp":["wo","aso","woo","asso","swo","wso","awso","soa","aos","wow","awo","sow"],"rp":["ow","ows","owa","oas","osa","ossa","owo"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",22601],"trp":["oe",10755],"trw":["-",1362],"lp":["eo","e-"],"rp":["oe","o-","-e","-o"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",296],"trp":["ox",1874],"lp":["xo","exo","e-a","axo"],"rp":["ox","oxe","-a"]},"70":{"input":[2,3,7],"tlp":["do",77376],"trp":["od",44403],"tlw":["do",18689],"trw":["odd",416],"lp":["do","doe","does","doo","eso","esso","edo"],"rp":["od","ose","ood","oes","ode","osed","odd","osse","ods","oose","oods","odde","oses"]},"71":{"input":[1,2,3,7],"tlp":["dow",14691],"trp":["owe",15537],"tlw":["wood",515],"trw":["owed",149],"lp":["dow","easo","ado","wood","dows","adow","sado","ewo"],"rp":["owe","owed","oad","owd","oda","owde","owds","-da","o-da","oads","oade","oxes"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",350815],"trp":["ot",133805],"tlw":["to",249163],"trw":["otto",67],"lp":["to","go","too","goo","got","gg","tog","gt","tto","gott","tot","gto"],"rp":["ot","og","ott","oot","oto","otto","oog","otog"]},"73":{"input":[1,4,7],"tlp":["fo",133745],"trp":["of",272457],"tlw":["ago",1471],"trw":["of",245539],"lp":["fo","ag","ga","aga","foo","gat","tag","ago","ato","ffo","goa","foot","gag","agg","tota"],"rp":["of","off","oft","oat","ota"]},"74":{"input":[2,4,7],"tlp":["co",161789],"trp":["oc",25929],"tlw":["cost",675],"lp":["co","sto","gs","cto","soc","sco","cco","stoo","cog","coo","cos","cost","cot","ssoc"],"rp":["oc","ost","occ","oct","ots","octo"]},"75":{"input":[1,2,4,7],"tlp":["two",12798],"trp":["oac",2483],"tlw":["two",11667],"lp":["two","tow","acco","towa","coa","sag","foc","sof","ssag","soft","acto","stag","cof","coff","coat"],"rp":["oac","oca","occa","oast","ocat"]},"76":{"input":[3,4,7],"tlp":["ro",170933],"trp":["or",314634],"tlw":["get",10986],"trw":["or",34654],"lp":["ro","ge","gr","eg","get","gre","rg","tor","ger","tro","roo","rge","gro","rot"],"rp":["or","ore","ort","ote","oor","orr"]},"77":{"input":[1,3,4,7],"tlp":["for",111436],"trp":["orta",4717],"tlw":["for",70927],"trw":["offer",1014],"lp":["for","fro","age","fore","efo","efor","gra","grea","arg","aro","ega","fort","arge","roa","gar","rag"],"rp":["orta","ora","offe","ofte"]},"78":{"input":[2,3,4,7],"tlp":["eco",13557],"trp":["ord",17538],"tlw":["good",9480],"trw":["order",2602],"lp":["eco","good","cor","stor","ges","rso","erso","cro","ged","ros","dg","rod","dge","door","sor","ross"],"rp":["ord","ors","orde","orc"]},"79":{"input":[1,2,3,4,7],"tlw":["words",3228],"trw":["offered",1121],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",380429],"trw":["on",61313],"lp":[],"rp":["on","ou","no","un","oun","nu","nou","oon","nno","unn","ono","onn","non","noo","noon","noun","uo","nnou","onou","unu"]},"81":{"input":[1,5,7],"tlp":["au",32369],"trp":["ua",23498],"lp":["au","qu","ano","qua","anno","aun","anu","anua","quan","quo"],"rp":["ua","ona","una","nua","oan","nqu","onna","uan","onq","onqu"]},"82":{"input":[2,5,7],"tlp":["su",62257],"trp":["us",124701],"tlw":["soon",3191],"trw":["us",10609],"lp":["su","son","sou","ssu","soon","soun","sun","sus","sons"],"rp":["us","ons","ous","ju","jo","jus","uss","usu","nsu","njo","oj"]},"83":{"input":[1,2,5,7],"tlp":["wou",29932],"trp":["now",32603],"tlw":["won",495],"trw":["now",13343],"lp":["wou","aus","won","ason","sua","sona","asu","assu","ajo","squ","squa","woun"],"rp":["now","own","nown","usa","usua","usan","ousa","nows"]},"84":{"input":[3,5,7],"tlp":["eno",5765],"trp":["yo",112940],"trw":["you",68463],"lp":["eno","enou","eu","eon","eone"],"rp":["yo","you","one","ue","oy","yon","youn","yone","oney","uy","uen","oye","nue","une","onne"]},"85":{"input":[1,3,5,7],"tlp":["que",9630],"trp":["oya",1710],"tlw":["anyone",1715],"lp":["que","equ","eau","eque","quen","anyo","quee","equa","xu","exu","xua","exua","aneo","xon"],"rp":["oya","unex","ux","nque","uxu","unea"]},"86":{"input":[2,3,5,7],"tlp":["du",19747],"trp":["und",37128],"tlw":["done",3602],"trw":["use",3572],"lp":["du","don","done","esu"],"rp":["und","use","ound","ud","ond","unde","ues","ouse","used","ody","ude","ndo","odu","onde","udd","ones"]},"87":{"input":[1,2,3,5,7],"tlw":["down",11247],"trw":["owned",326],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bu",70306],"trp":["ng",301290],"tlw":["but",49620],"trw":["not",43106],"lp":["bu","bo","tu","but","bou","bout","gu","gn"],"rp":["ng","ut","out","not","ug","oug","ong","ob","nto","ont","unt","ub"]},"89":{"input":[1,4,5,7],"tlp":["abo",26472],"trp":["uf",3979],"tlw":["about",23108],"lp":["abo","fu","abou","ang","fou","gan","aug","tua","atu","anot","foun","aut"],"rp":["uf","onf","uff","natu","nfo","nag","oba","uat"]},"90":{"input":[2,4,5,7],"tlp":["con",43239],"trp":["uc",39944],"tlw":["cut",1451],"trw":["just",14589],"lp":["con","cou","cu","suc","cons","cont","stu","coun","bus","cus","ctu","conc"],"rp":["uc","ust","just","ngs","onc","unc","uct","job"]},"91":{"input":[1,2,4,5,7],"tlw":["town",2110],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["rou",33045],"trp":["ur",136165],"tlw":["turn",2317],"trw":["your",20504],"lp":["rou","ru","tur","roug","gen","ture","roun","tru","turn","ron","bro","eng"],"rp":["ur","our","ure","your","nge","urn","ute","nger"]},"93":{"input":[1,3,4,5,7],"tlw":["before",10203],"trw":["often",3952],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["course",3730],"trw":["once",5524],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["because",9879],"trw":["understand",2238],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ll",183975],"trw":["oil",657],"lp":[],"rp":["ll","li","io","il","lo","ol","ill","oi","loo","oll","lli","ili","llo","oli","ool","illi","olo","ollo","lio","llio"]},"97":{"input":[1,6,7],"tlp":["al",228009],"trp":["la",103279],"tlw":["all",30772],"trw":["la",689],"lp":["al","all","ali","ail","alo","allo","ala","aliz","alli"],"rp":["la","ial","lai","lia","lla","liz","iall","ila","olla","oal","ola"]},"98":{"input":[2,6,7],"tlp":["sio",15825],"trp":["ok",35246],"tlw":["skills",834],"trw":["look",5477],"lp":["sio","sl","ssio","sol","sil"],"rp":["ok","ls","ook","lik","look","lk","los","lis","lso","osi","ossi","lls","oki","kil","isio"]},"99":{"input":[1,2,6,7],"tlp":["wil",18445],"trp":["low",16681],"tlw":["will",14271],"trw":["low",1274],"lp":["wil","will","als","alk","also","wal","alw","alwa","walk","wl","wall"],"rp":["low","las","llow","lw","lwa","owi","lass","owl","law"]},"100":{"input":[3,6,7],"tlp":["el",142952],"trp":["le",213808],"tlw":["el",99],"trw":["lie",725],"lp":["el","ell","eli","eel","ele","elie","elo","elli","eeli","ello","elle"],"rp":["le","lle","ile","lie","ole","olle","ille","lee","iel"]},"101":{"input":[1,3,6,7],"tlp":["eal",18892],"trp":["lea",26849],"tlw":["alex",152],"lp":["eal","alle","ale","ela","eall","eali","aile","alex","eale","eliz","xio","elea","ael"],"rp":["lea","lex","lize","lexa","oze","llea","lexi"]},"102":{"input":[2,3,6,7],"tlp":["sel",25483],"trp":["ld",104617],"tlw":["else",2789],"trw":["like",19390],"lp":["sel","dl","els","eld","del","dle"],"rp":["ld","like","old","led","les","oke","lled","ild","less","oked","ooke","lose","ldi","lde"]},"103":{"input":[1,2,3,6,7],"tlw":["well",8952],"trw":["lead",1050],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["tio",72429],"trp":["ig",72061],"tlw":["till",1036],"trw":["lot",2713],"lp":["tio","gi","tl","gl","til","vo","ttl","till","giv"],"rp":["ig","ov","lt","lit","lig","liv","litt","ittl","lv","itio","oti"]},"105":{"input":[1,4,6,7],"tlp":["atio",33167],"trp":["lf",21773],"tlw":["fall",1195],"lp":["atio","tal","fl","gai","agai","alt","val","fol","gla","fig","flo","foll","agi","fil","alit"],"rp":["lf","lat","lif","offi","lati"]},"106":{"input":[2,4,6,7],"tlp":["cl",31724],"trp":["lic",9087],"tlw":["still",7621],"trw":["lost",2029],"lp":["cl","ctio","col","stil","sig","clo","took","clos","stio","cov","coll","soci","ctl"],"rp":["lic","ock","osit","loc","oic","oci","list"]},"107":{"input":[1,2,4,6,7],"tlw":["call",2856],"trw":["last",4981],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rl",25465],"trp":["ove",39462],"tlw":["tell",4528],"trw":["over",12910],"lp":["rl","tle","tel","ttle","rel","rig","vel","tell","give","rio","elt","rov"],"rp":["ove","over","let","ori","lve","live","orl","love"]},"109":{"input":[1,3,4,6,7],"tlw":["felt",4669],"trw":["life",8740],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["told",5605],"trw":["lives",1641],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["work",8749],"trw":["least",2856],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",160810],"trw":["oh",2847],"lp":[],"rp":["ho","ul","ion","oul","hou","ui","lin","lu","nl","hu","lon","oin","hil","onl","hol","iou","uni","houl","ull","hoo"]},"113":{"input":[1,5,6,7],"tlp":["qui",11723],"trp":["lan",16797],"tlw":["annual",207],"trw":["hall",950],"lp":["qui","alon","alu","qual","ainl","aul"],"rp":["lan","nal","ual","onal","hal","iona","uall","ula","hall","inal","lain","lau","nall","lian"]},"114":{"input":[2,5,6,7],"tlp":["sho",24544],"trp":["kno",19117],"tlw":["soul",950],"trw":["john",1863],"lp":["sho","sion","shou","sul"],"rp":["kno","ions","hos","ious","usi","hous","usin","onsi","lish","hus","okin","ush","lus","lkin","usl","ousl"]},"115":{"input":[1,2,5,6,7],"tlw":["who",23669],"trw":["how",14162],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["ely",17170],"trp":["ly",122921],"trw":["only",13824],"lp":["ely","elin","enl"],"rp":["ly","lly","nly","only","hel","ily","len","hile","line","lue","hole","lone","loy","hone","ully","llen","ule"]},"117":{"input":[1,3,5,6,7],"tlw":["alone",2184],"trw":["lay",1482],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["should",7178],"trw":["house",4935],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["would",27522],"trw":["usually",1445],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["gh",90668],"trp":["ing",245338],"tlw":["thought",7112],"trw":["into",18343],"lp":["gh","tion","ght","bl","tho","ting","thou"],"rp":["ing","igh","oth","ugh","ight","hing","ough","ning","into","ught","houg","long","ling"]},"121":{"input":[1,4,5,6,7],"tlw":["again",7165],"trw":["having",3594],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["such",8032],"trw":["looking",3174],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["without",5841],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["through",8798],"trw":["other",13909],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["another",6638],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["could",18061],"trw":["others",3864],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["already",3329],"trw":["however",3319],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",37015],"trw":["p",765],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",46764],"trp":["pa",72065],"trw":["pa",273],"lp":["ap","app","apa","appa"],"rp":["pa","pap","ppa","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",40374],"trp":["ps",13734],"lp":["sp","ssp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",3930],"trp":["pas",8500],"tlw":["sap",81],"trw":["pass",1068],"lp":["spa","aps","sap","asp","sapp","wsp","wspa","spap","assp"],"rp":["pas","pass","pw","pwa","paw","paws"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",39298],"trp":["pe",115056],"trw":["'",14271],"lp":["ep","e'","eep","epe","epp","eppe","eepe"],"rp":["pe","ppe","pee","''","'e","p'"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["xp",16071],"trp":["pea",10889],"lp":["xp","exp","appe","xpe","expe","ape","epa","eap","epea","xpa","expa","a'","eape","a'a","x'","ax'"],"rp":["pea","ppea","pape","'a"]},"134":{"input":[2,3,8],"tlp":["spe",18659],"trp":["'s",36901],"tlw":["deep",1465],"trw":["'s",213],"lp":["spe","e's","esp","e'd","dep","espe","deep","sep","desp","depe","spee","eps","d'","d's"],"rp":["'s","'d","ped","pped","pes","pse"]},"135":{"input":[1,2,3,8],"tlp":["we'",3765],"trp":["'w",281],"tlw":["we'd",695],"trw":["passed",1693],"lp":["we'","spea","depa","sepa","aspe","ewsp","we'd","weap","aped","weep","wep","apes","apse","swep","a's","xped","espa","dpa"],"rp":["'w","peas"]},"136":{"input":[4,8],"tlp":["tp",256],"trp":["pt",19963],"lp":["tp","ttp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",4201],"trp":["pat",6411],"tlw":["tap",153],"trw":["pat",193],"lp":["apt","apta","tap","tapp"],"rp":["pat","pta","patt","pf","ptat"]},"138":{"input":[2,4,8],"trp":["pts",388],"lp":[],"rp":["pts","pst","ptc","pc"]},"139":{"input":[1,2,4,8],"tlp":["cap",5240],"trp":["pac",3604],"tlw":["cap",258],"trw":["past",2353],"lp":["cap","capt","spac","scap","capa","apac","spat","fsp","ffsp","caps"],"rp":["pac","past","pact","patc","psta","pats"]},"140":{"input":[3,4,8],"tlp":["t'",15643],"trp":["pr",76723],"trw":["per",611],"lp":["t'","rep","ept","rp","tep","r'","er'","rpr","re'","ere'"],"rp":["pr","'t","per","pre","'r","'re","pte","ppr","pet","pret"]},"141":{"input":[1,3,4,8],"tlp":["at'",5623],"trp":["par",26731],"tlw":["appear",816],"trw":["part",4589],"lp":["at'","xper","epar","rap","appr","aper","apte","repa","xpr","expr","xpre","apar"],"rp":["par","part","pare","pear","pra","perf","pera","para"]},"142":{"input":[2,3,4,8],"tlp":["t's",15472],"trp":["pres",13007],"tlw":["step",1154],"trw":["press",708],"lp":["t's","spec","cep","cept","resp","step","r's","er's","re's","spr","sper","ccep","teps"],"rp":["pres","pec","pers","pect","perc","prec","pted"]},"143":{"input":[1,2,3,4,8],"tlw":["we're",1513],"trw":["perfect",1065],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",43386],"trw":["m",1273],"lp":[],"rp":["mp","mm","nm","mn","pm","np"]},"145":{"input":[1,5,8],"tlp":["am",72035],"trp":["ma",137500],"tlw":["am",4235],"trw":["man",9572],"lp":["am","amp","ama","apan","amm","ampa","amn","aman"],"rp":["ma","man","pan","mpa","nam","mpan","mana","mma","mann","mman","nap","map"]},"146":{"input":[2,5,8],"tlp":["sm",13242],"trp":["ms",20491],"trw":["ms",185],"lp":["sm","ssm"],"rp":["ms","nsp","mps","nsm","mns","mms"]},"147":{"input":[1,2,5,8],"tlp":["sam",7005],"trp":["mas",4399],"tlw":["sam",133],"trw":["mass",521],"lp":["sam","sma","ams","span","ansp","amps","snap","asm","assm","ssma"],"rp":["mas","maj","mass","jap","japa","mans","jam","mw","mpas","pans"]},"148":{"input":[3,5,8],"tlp":["em",87362],"trp":["me",235102],"tlw":["enemy",1028],"trw":["my",40423],"lp":["em","eme","eem","emp","emen","eeme","emem"],"rp":["me","my","n'","men","pen","mem","'m","y'","mme","ppen","pene","py","mee"]},"149":{"input":[1,3,5,8],"tlp":["ame",34012],"trp":["may",9648],"tlw":["an'",417],"trw":["many",8068],"lp":["ame","ema","eam","an'","xam","exam","eman","appy","xamp","amen","xpen"],"rp":["may","mea","many","mean","name","pany","pay","pane","man'"]},"150":{"input":[2,3,5,8],"tlp":["dn'",13235],"trp":["med",15366],"tlw":["seemed",4232],"trw":["jem",320],"lp":["dn'","seem","sn'","ems","emed","spen","dem","dm","emse","esn'"],"rp":["med","mes","mse","mys","pend","myse","y's","n's","mmed","pens"]},"151":{"input":[1,2,3,5,8],"tlw":["same",6718],"trw":["made",9696],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",4765],"trp":["mb",19208],"lp":["tm","bm"],"rp":["mb","mpt","ntm","pb","mt","mpb"]},"153":{"input":[1,4,5,8],"tlp":["fam",7099],"trp":["mat",11909],"trw":["mba",123],"lp":["fam","amb","tma","tnam","atm","apab","amat","bam","bama","amba","tam"],"rp":["mat","matt","mf","mba","mpat","pant","pab","mant","mbat"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["stm",1138],"trp":["mst",943],"lp":["stm"],"rp":["mst","mc","mbs","mpts","mcc","mcs"]},"155":{"input":[1,2,4,5,8],"tlw":["camp",660],"trw":["pants",299],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",33028],"trp":["n't",37419],"tlw":["remember",2277],"trw":["mr",4133],"lp":["rm","rem","emb","erm","tem","embe","reme","rme","temp","tme","tmen"],"rp":["n't","ment","met","mer","mbe","mber","mr","memb","meet"]},"157":{"input":[1,3,4,5,8],"tlw":["army",2073],"trw":["matter",2479],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["spent",1640],"trw":["mrs",2541],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["came",6889],"trw":["parents",2027],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",28303],"lp":[],"rp":["pi","ip","ppi","ipp","ippi","pip","ipi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["appi",2174],"trp":["pai",6465],"trw":["pizza",143],"lp":["appi","api"],"rp":["pai","ipa","pia","piz","pizz","iap","ippa"]},"162":{"input":[2,6,8],"tlp":["spi",5949],"trp":["ips",2652],"tlw":["sip",104],"trw":["piss",63],"lp":["spi","sip","ssip","sipp","skip","spis"],"rp":["ips","isp","pis","kp","pk","pki","piss","kip","psi","kipp"]},"163":{"input":[1,2,6,8],"tlp":["spai",637],"trp":["isap",1148],"lp":["spai","wip","aspi","apk","apki","wipi","apis"],"rp":["isap","ispa","kpa"]},"164":{"input":[3,6,8],"tlp":["epi",1744],"trp":["i'",14185],"trw":["'i",461],"lp":["epi","eepi","eppi"],"rp":["i'","pie","ippe","ipe","'i","pipe","ppie","ip'"]},"165":{"input":[1,3,6,8],"tlp":["epai",321],"trp":["iz'",67],"lp":["epai","z'","eapi"],"rp":["iz'"]},"166":{"input":[2,3,6,8],"tlp":["disp",1152],"trp":["keep",4608],"tlw":["spies",180],"trw":["keep",3496],"lp":["disp","espi","dip","spie","epis"],"rp":["keep","i'd","kep","pid","ispe","pied","pies","pedi","iped","ip's","k'","k's","ipes","kesp","psid"]},"167":{"input":[1,2,3,6,8],"tlw":["speak",1583],"trw":["paid",1096],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",610],"trp":["pti",3889],"tlw":["tip",221],"trw":["pit",127],"lp":["tip","tipp"],"rp":["pti","pit","ipt","ipti"]},"169":{"input":[1,4,6,8],"tlp":["apit",605],"trp":["pati",1779],"lp":["apit"],"rp":["pati","pita","ptai","ipat","pav","ptia"]},"170":{"input":[2,4,6,8],"tlp":["cip",2669],"trp":["pic",5474],"tlw":["tips",128],"trw":["pick",801],"lp":["cip","spit","spic","scip","tips","ckp"],"rp":["pic","pick","pict","icip","pici","pitc","pist","pics","ptic"]},"171":{"input":[1,2,4,6,8],"trw":["pack",385],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",2627],"trp":["pri",13942],"tlw":["trip",647],"trw":["i've",2219],"lp":["rip","rpri","epti","trip","ript","e'v","e've"],"rp":["pri","it'","peri","'v","'ve","pir","i'v","i've","priv","piri","prev","pite","peti"]},"173":{"input":[1,3,4,6,8],"tlw":["repair",185],"trw":["private",1010],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["despite",946],"trw":["it's",8558],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["we've",750],"trw":["paris",1353],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["im",93559],"trw":["him",28423],"lp":[],"rp":["im","mi","him","min","ph","imp","pin","hip","imi","ppin","mmi","imm","phi","mini","hm","nim","mmin","imin","pini","mpi"]},"177":{"input":[1,5,6,8],"tlp":["ami",8211],"trp":["hap",14305],"tlw":["aim",231],"trw":["pain",1250],"lp":["ami","aim","amin","aph","anim","amaz"],"rp":["hap","happ","ima","mai","main","pain","ham","pani","iam","mina","nima","pha","maz","impa"]},"178":{"input":[2,5,6,8],"tlp":["ship",5146],"trp":["mis",8985],"tlw":["ship",877],"trw":["miss",1642],"lp":["ship","sim","smi","simp","simi","shm","spin"],"rp":["mis","ims","hims","miss","hips","ism","mik","insp","ishm","hisp","nspi","jim","km"]},"179":{"input":[1,2,5,6,8],"tlw":["spanish",469],"trw":["mask",160],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",2800],"trp":["ime",28758],"trw":["i'm",6537],"lp":["emi","emin","epin","eph"],"rp":["ime","hem","he'","i'm","mine","hey'","phy","imme","pine","imen","phe","peni","hme","in'","hmen","meh"]},"181":{"input":[1,3,5,6,8],"tlw":["examine",179],"trw":["happy",1895],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["she'd",1495],"trw":["mind",4439],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["shame",796],"trw":["make",9390],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",28120],"trp":["mit",4914],"tlw":["tim",128],"trw":["ibm",109],"lp":["tim","timi","bmi"],"rp":["mit","mbi","mitt","mmit","imit","mbin","ntim","imb","mpti","ptin","mbit","intm","mith","itm","mitm","ptim","pth"]},"185":{"input":[1,4,5,6,8],"trw":["path",946],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",320],"trw":["pitch",164],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["captain",1078],"trw":["match",450],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["them",21593],"trw":["prevent",380],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["remain",740],"trw":["haven't",641],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["didn't",7051],"trw":["isn't",1565],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["that's",4282],"trw":["perhaps",2737],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",68607],"trw":["pop",223],"lp":[],"rp":["po","op","ppo","opp","oppo","poo","pop","oop","opo","popp"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",1508],"trp":["opa",186],"lp":["apo","appo"],"rp":["opa","oap"]},"194":{"input":[2,7,8],"tlp":["spo",7683],"trp":["pos",16560],"lp":["spo","sop","spos","sspo","spoo"],"rp":["pos","poss","ppos","osp","ops","oops","opos","osop","pso"]},"195":{"input":[1,2,7,8],"tlp":["soap",132],"trp":["pow",4845],"tlw":["soap",132],"lp":["soap"],"rp":["pow","posa"]},"196":{"input":[3,7,8],"tlp":["eop",15223],"trp":["peo",15223],"trw":["pope",239],"lp":["eop","epo"],"rp":["peo","peop","ope","oppe","o'","poe","oope","pope","oe'","'o","-p"]},"197":{"input":[1,3,7,8],"tlp":["eapo",649],"trp":["opea",428],"lp":["eapo","xpo","expo"],"rp":["opea","-pa"]},"198":{"input":[2,3,7,8],"tlp":["espo",3005],"trp":["pose",4757],"trw":["possessed",333],"lp":["espo","dop"],"rp":["pose","oped","ospe","o's","osep","opes","od'","od's","o'd","oe's","pod","oss'"]},"199":{"input":[1,2,3,7,8],"tlw":["exposed",267],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",6183],"trp":["pot",2394],"tlw":["top",1822],"trw":["pot",221],"lp":["top","topp","toop"],"rp":["pot","opt","pto","pott","ptop"]},"201":{"input":[1,4,7,8],"tlp":["gap",376],"trp":["pag",1322],"tlw":["gap",204],"trw":["potato",74],"lp":["gap","apto","gapo","atop"],"rp":["pag","pota","opag","paga"]},"202":{"input":[2,4,7,8],"tlp":["stop",3680],"trp":["post",1282],"tlw":["stop",1798],"trw":["post",644],"lp":["stop","cop","spot","tops","cops","coop","copp","gosp","copt","scop"],"rp":["post","poc","pots","pco"]},"203":{"input":[1,2,4,7,8],"tlw":["gaps",71],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",6404],"trp":["pro",33640],"tlw":["report",778],"trw":["poor",1596],"lp":["rop","rope","repo","epor","rpo","ropo","ropp","rpor","roop"],"rp":["pro","por","port","oper","ppor","prop","ppro","prog","poor","prot","orp"]},"205":{"input":[1,3,4,7,8],"tlw":["rapport",98],"trw":["page",587],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["stopped",1419],"trw":["process",1455],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["corporate",363],"trw":["power",3130],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",158331],"trw":["up",23594],"lp":[],"rp":["om","mo","up","mu","pu","um","omp","mon","omm","pon","oom","mom","mpo","mou","upp","oup","upo","upon","uppo","num"]},"209":{"input":[1,5,7,8],"tlp":["amo",4702],"trp":["oma",6690],"trw":["mao",108],"lp":["amo","amon","amou","apon","amu","ampu"],"rp":["oma","ompa","oman","uma","uman","omma","pau","manu","mona","mau","upa","napo","mao","opam"]},"210":{"input":[2,5,7,8],"tlp":["som",32033],"trp":["mos",15768],"tlw":["sum",220],"trw":["jump",350],"lp":["som","sup","supp","sum","spon","summ","smo","susp","ssum"],"rp":["mos","mus","pons","mous","mpos","pus","ups","usp","ums","mons","oms"]},"211":{"input":[1,2,5,7,8],"tlw":["woman",3590],"trw":["mason",79],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emo",6070],"trp":["ome",63421],"trw":["money",3556],"lp":["emo","epu"],"rp":["ome","on'","omen","u'","ou'","you'","open","mome","ume","mone","meo","omeo","meon","memo","omme","umen","ompe","umme"]},"213":{"input":[1,3,5,7,8],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["some",15162],"trw":["opened",1401],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["women",3612],"trw":["paused",403],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",5301],"trp":["mot",10460],"tlw":["tom",762],"trw":["put",5210],"lp":["tom","tum","gm","bom","bomb","tup","ttom"],"rp":["mot","put","umb","pub","mont","numb","mong","omb","mout","mput","upt","putt","ptu"]},"217":{"input":[1,4,5,7,8],"tlw":["among",2526],"trw":["obama",363],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["common",1407],"trw":["most",10396],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["famous",816],"trw":["moscow",341],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["room",5055],"trw":["more",21171],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["from",35952],"trw":["program",634],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["don't",9569],"trw":["person",3411],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["company",2711],"trw":["major",1113],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",68379],"trw":["pool",330],"lp":[],"rp":["pl","opl","lp","poi","pol","pli","poli","plo","ppl","lip","lop","opi","pil","ipl","ppli","ppoi","lipp","oppi","pill","pilo"]},"225":{"input":[1,6,7,8],"tlp":["appl",2216],"trp":["pla",24558],"tlw":["apollo",82],"trw":["lap",242],"lp":["appl","apol","alp"],"rp":["pla","plai","pal","lap","pala","ipal","llap","pola","lapp","ppal","pall","ppla","palo"]},"226":{"input":[2,6,7,8],"tlp":["spok",1763],"trp":["posi",4502],"tlw":["slip",260],"trw":["lips",930],"lp":["spok","spl","slip","spli","spoi","spio"],"rp":["posi","pok","lips","ospi","plis","ispl","ispo","lps","plos","pois","piso","kpl","opk","opki"]},"227":{"input":[1,2,6,7,8],"tlw":["slap",95],"trw":["pillow",134],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["eopl",15223],"trp":["ple",30676],"trw":["people",14668],"lp":["eopl","elp","epl","elop","e'l","e'll","epli"],"rp":["ple","ople","'l","'ll","plie","i'l","i'll","leep","iple","lope","pel","pple","lep"]},"229":{"input":[1,3,6,7,8],"tlw":["apple",631],"trw":["pale",447],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spoke",1285],"trw":["people's",449],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["we'll",807],"trw":["please",985],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["topi",337],"trp":["ptio",2778],"trw":["pilot",266],"lp":["topi","tipl","tpl"],"rp":["ptio","opti","ptl","pig","plit","pov","pilg","plot","ltip","lpt","lpit"]},"233":{"input":[1,4,6,7,8],"tlw":["flip",108],"trw":["plato",120],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["split",254],"trw":["politics",443],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capital",544],"trw":["political",1085],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["grip",165],"trw":["prove",546],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",549],"trw":["plate",447],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["replied",1257],"trw":["police",1092],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["special",1059],"trw":["place",5268],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mil",16287],"trw":["million",900],"lp":[],"rp":["mil","mpl","hom","lm","omi","poin","ompl","impo","hop","mili","pul","impl","lmo","hum","omin","pho","minu","lim","muni","pull"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["animal",491],"trw":["human",2178],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["shop",667],"trw":["mission",568],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["small",3786],"trw":["plans",687],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["employee",275],"trw":["home",4865],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["example",1694],"trw":["play",1696],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["simply",1710],"trw":["pulled",1252],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["explained",950],"trw":["played",975],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"trw":["might",6921],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",366],"trw":["imagination",438],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["coming",1985],"trw":["much",10233],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["almost",3784],"trw":["making",2931],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["government",1285],"trw":["mother",4253],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["family",3955],"trw":["important",2765],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["something",7615],"trw":["possible",2350],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["especially",1737],"trw":["himself",5632],"lp":[],"rp":[]}} \ No newline at end of file
diff --git a/keyboards/gboards/dicts/aset/_generator/src/es-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/es-keymap.json
new file mode 100644
index 0000000000..81395368b8
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/_generator/src/es-keymap.json
@@ -0,0 +1 @@
+{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",68],"tlw":["a",207382],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",1790],"tlw":["s",277],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",412461],"lp":["as","sa","asa","sas","asas","wa","ass","ssa","was","saa","aw"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",4724],"tlw":["e",5916],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",27380],"tlw":["ex",477],"lp":["ea","ex","ae","xa","exa","ax","axa","xx"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",743538],"tlw":["de",453446],"lp":["de","es","se","ed","des","ese","ede","sd","esd","desd","sde","esde","ses","ded","dese","eses","edes","eded","sed","ees"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",219474],"tlw":["esa",8099],"lp":["ad","da","dad","ada","esa","eda","ade","das","ase","sad","edad","sea","dea","dade","esas","asad","ades","desa","adas","ases"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",782],"tlw":["t",90],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",307672],"tlw":["f",113],"lp":["ta","at","fa","ata","af","afa","tat","fat","fata","att","taf","ft","atat","tata","ff","ataf","tf","atf"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",235201],"tlw":["c",615],"lp":["st","sc","ct","cc","tc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",200066],"tlw":["casa",9057],"lp":["ca","ac","sta","cas","ast","tas","asta","casa","sca","aca","act","sac","stas","tac","cta","acc","sf","fac","cat","cast"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",499829],"tlw":["te",14709],"lp":["er","re","te","tr","rt","rr","et","ert","ter","tre","ere","err","rte","rre","ete","erte","ret","rer","etr","terr"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ra",416643],"tlw":["era",32659],"lp":["ra","ar","era","tra","ara","tar","are","fe","rta","art","fr","rar","rra","erra","ef","erta","atr","eta","arr","rat"],"rp":[]},"14":{"input":[2,3,4],"tlp":["est",139908],"tlw":["ser",12211],"lp":["est","ec","ce","res","rec","rd","cer","cr","dr","ste","rs","ser","tes","str","ces","rc","esc","der","erd","ece"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["esta",69315],"tlw":["esta",18675],"lp":["esta","ras","ace","car","rad","tad","tras","acer","adr","arec","sar","cad","ard","rac","rda","adre","dar","stra","rca","erda"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",1348],"trw":["n",91],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",382423],"trp":["na",233186],"tlw":["ana",597],"lp":["an","ana","aq","anan","anq","ann","anna"],"rp":["na","nq","nan","nana","nna"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",1069],"trp":["ns",48331],"trw":["j",166],"lp":["sn"],"rp":["ns","nj"]},"19":{"input":[1,2,5],"tlp":["aj",27458],"trp":["ja",36319],"tlw":["san",1894],"trw":["ja",145],"lp":["aj","san","aja","anas","ans","sq","saj","anj","ansa","asan","ajas","ajan"],"rp":["ja","nas","nsa","jan","jas","naj","nsan","nsaj"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",684719],"trp":["ne",94467],"tlw":["en",194129],"trw":["y",254303],"lp":["en","ene","ey","enen","eye","eyen","een","enn","enne"],"rp":["ne","ye","nen","yen","ny","nne","nny","yn","yene","yne"]},"21":{"input":[1,3,5],"tlp":["ena",25795],"trp":["ya",27580],"tlw":["ay",587],"trw":["ya",19283],"lp":["ena","ay","ane","eq","aya","ean","aye","aen","enan","ayan","enea","anen","ayen","anea","xq","exq"],"rp":["ya","nea","yan","nex"]},"22":{"input":[2,3,5],"tlp":["ej",40475],"trp":["nd",141755],"tlw":["deje",506],"lp":["ej","end","sen","ens","den","dej","ende","esen","eje","enes","ense"],"rp":["nd","je","nes","nde","nse","ndes","jes","nden","yend"]},"23":{"input":[1,2,3,5],"tlp":["and",60909],"trp":["nad",25609],"tlw":["deja",806],"trw":["nada",10498],"lp":["and","eja","ensa","aje","deja","dan","enas","ande","anda","ejan","sena","enda","anad","dena","dand"],"rp":["nad","nda","nada","jad","jand"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",656],"trp":["nt",349002],"tlw":["b",221],"lp":["bt","tb","bn"],"rp":["nt"]},"25":{"input":[1,4,5],"tlp":["ab",230416],"trp":["nta",49640],"tlw":["tan",12045],"lp":["ab","ba","aba","ant","tan","tab","taba","ban","tant","aban","anta","bat","tana"],"rp":["nta","nf","ntan","nat","ntab","nab","naba"]},"26":{"input":[2,4,5],"tlp":["bs",5233],"trp":["nc",100151],"lp":["bs","bj","bst","cn","sb","bc","tj"],"rp":["nc","nst","nsc"]},"27":{"input":[1,2,4,5],"tlp":["stab",23089],"trp":["nca",10670],"tlw":["santa",1043],"lp":["stab","cab","sab","anc","baj","can","stan","caba","abaj","bas","acab","baja","saba","sant","tanc","bast"],"rp":["nca","ntas","nac","nsta"]},"28":{"input":[3,4,5],"tlp":["ent",186144],"trp":["nte",139591],"tlw":["entre",11695],"lp":["ent","br","ente","ten","bre","be","entr","eb","ren","rn","ber","ener","ern","tene"],"rp":["nte","ntr","ner","ntre","nter","nten"]},"29":{"input":[1,3,4,5],"tlp":["ran",49950],"trp":["ntra",26185],"tlw":["eran",5913],"trw":["yabran",492],"lp":["ran","ante","abe","enta","bra","abr","rab","rq","raba","bar","eran","aber","trab","abra","tran","rant"],"rp":["ntra","nar","nera","ntar"]},"30":{"input":[2,3,4,5],"tlp":["enc",41323],"trp":["ntes",22621],"tlw":["debe",1755],"lp":["enc","sent","cen","deb","dent","bres","tend","rend","rden","tenc","debe","cent"],"rp":["ntes","nce","jer","nces","nec","nece","ndr","nder"]},"31":{"input":[1,2,3,4,5],"tlw":["estaba",15906],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1864],"trw":["i",432],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["za",46428],"trp":["ia",302035],"lp":["za","az","ai","aza","aia","zi","azi","zz","aiz","azz"],"rp":["ia","iz","iza","izz","iaz"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",193578],"trp":["is",104027],"tlw":["si",37389],"lp":["si","sis","sk","ssi"],"rp":["is","isi","ki","iss","isis","ik","iki","kis","ikis","kiss","isk","issi"]},"35":{"input":[1,2,6],"tlp":["asi",27185],"trp":["ias",18810],"tlw":["asi",11044],"trw":["kazz",77],"lp":["asi","sia","asia","zas","ais","sias","wi","asis","aisa","wis","wiss","azas","ak"],"rp":["ias","isa","izas","isas","ka","ika","issa"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",15743],"trp":["ie",233722],"lp":["ei","eei"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",37550],"trp":["iez",3157],"tlw":["xii",131],"trw":["ix",78],"lp":["ez","eza","xi","exi","eia","axi","xii","zie","azie","xix","xiii","ze"],"rp":["iez","ieza","ix"]},"38":{"input":[2,3,6],"tlp":["di",175458],"trp":["id",129921],"tlw":["seis",1304],"trw":["kid",113],"lp":["di","edi","sie","esi","die","sid","dis","did","side","eis","esid","edid","sei"],"rp":["id","ide","ies","ied","idi","iese","ise"]},"39":{"input":[1,2,3,6],"tlp":["dia",37584],"trp":["ida",49293],"tlw":["dia",8188],"trw":["idea",2311],"lp":["dia","adi","edia","dias","adie","dida","siad","zad","sida","xis","exis","esia","aid","diez"],"rp":["ida","idad","iad","idea","idas","ieda"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",133369],"trp":["it",63123],"tlw":["ti",1888],"trw":["iv",187],"lp":["ti","vi","viv","tiv","tit","vivi","vit","tti","tivi","vii","viii"],"rp":["it","iv","iti","ivi","itiv"]},"41":{"input":[1,4,6],"tlp":["va",51609],"trp":["ita",23108],"tlw":["va",3371],"lp":["va","fi","av","via","tia","avi","ati","avia","ava","fia","vita","tiva","afi","fav","ativ"],"rp":["ita","if","ifi","iva","iat"]},"42":{"input":[2,4,6],"tlp":["ci",238810],"trp":["ic",95632],"lp":["ci","sti","vis","tic","sit","cci","vist","cis","cti","sic","vic","visi","sist","cit","tici"],"rp":["ic","ist","ici","isti","isc"]},"43":{"input":[1,2,4,6],"tlp":["cia",69052],"trp":["ica",24474],"tlw":["casi",5393],"lp":["cia","aci","acia","fic","fici","casi","cias","tica","stia","taci","vas","sita","asti","saci","acti","acci"],"rp":["ica","ista","icia","ific"]},"44":{"input":[3,4,6],"tlp":["ri",190312],"trp":["ir",83670],"tlw":["ver",6228],"trw":["ir",2754],"lp":["ri","ve","ev","eri","ver","tie","vie","rti","rri","rit","rv","rie","tir","erv","tri","teri"],"rp":["ir","ier","iert","ire"]},"45":{"input":[1,3,4,6],"tlp":["ria",49114],"trp":["ira",16443],"tlw":["vez",12860],"trw":["ira",503],"lp":["ria","ari","eva","eria","vez","aria","raz","ave","var","zar","arti","rz","erz","rav","rza","fie"],"rp":["ira","iera","itar","iar"]},"46":{"input":[2,3,4,6],"tlp":["eci",43130],"trp":["ice",8339],"tlw":["decir",4827],"trw":["irse",431],"lp":["eci","cie","reci","dic","vid","deci","cid","rid","ris","cri","tid","dir","cier","cir","esti","rdi","dri","ves"],"rp":["ice","iste"]},"47":{"input":[1,2,3,4,6],"tlw":["vida",8817],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",187273],"trw":["ni",13944],"lp":[],"rp":["in","ni","hi","nin","ini","hin","hn","inn","nh","hnn"]},"49":{"input":[1,5,6],"tlp":["ah",14690],"trp":["ha",179890],"tlw":["ahi",2676],"trw":["ha",13606],"lp":["ah","ani","anz","anza","ahi","ania","zan","zq"],"rp":["ha","ian","ina","nia","nz","nza","han","hiz","iq","nian","iana","nina"]},"50":{"input":[2,5,6],"tlp":["sin",33228],"trp":["ij",25903],"tlw":["sin",21600],"lp":["sin","sini","sh","shi"],"rp":["ij","nsi","hij","ins","his","nis","ji","nsis","inis","insi","jin","nk","hisi","iji","inj","nins"]},"51":{"input":[1,2,5,6],"tlp":["siq",2408],"trp":["has",20672],"tlw":["ansia",145],"trw":["has",2554],"lp":["siq","ansi","sina","asin","anis","ash"],"rp":["has","ija","iaj","inas","hija","nzas","jai","nias","iaja","nsia","ijas","isaj","hans","isan"]},"52":{"input":[3,5,6],"tlp":["eni",26205],"trp":["ien",107409],"tlw":["eh",468],"trw":["he",7264],"lp":["eni","ein","enie","eh","enin","ehi","enei"],"rp":["ien","he","iene","ine","nie","nien","hie","inie","hen","inen","nei","nhe","nine"]},"53":{"input":[1,3,5,6],"tlp":["enia",16307],"trp":["hay",9090],"trw":["hay",7403],"lp":["enia","enz","enza","eina","enaz","eian","ezan","anie","eniz","aine"],"rp":["hay","haya","inea","ienz","hae","nez","hez","iena","yah","inez"]},"54":{"input":[2,3,5,6],"tlp":["dij",16709],"trp":["ndi",19946],"tlw":["dije",1690],"trw":["ines",410],"lp":["dij","endi","enid","sien","din","dien","dine","dije","ensi"],"rp":["ndi","iend","nid","ind","iden","ndid","indi","iej","ije","nsid","iens"]},"55":{"input":[1,2,3,5,6],"tlw":["ansiedad",269],"trw":["nadie",5526],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",119303],"trp":["ib",32479],"trw":["ibn",155],"lp":["bi","tin","vin","bit","th","tint"],"rp":["ib","int","nti","nv","ibi","nvi","ntin","inti","inv","nit","invi","niv","init","nvit"]},"57":{"input":[1,4,5,6],"tlp":["abi",63989],"trp":["hab",72658],"tlw":["fin",4343],"trw":["habia",39290],"lp":["abi","bia","abia","fin","bian","van","anti","fina","vant","vab","vaba","abit","zab"],"rp":["hab","habi","iba","inf","nfi","itan","ntia"]},"58":{"input":[2,4,5,6],"tlp":["ch",74839],"trp":["nci",46192],"lp":["ch","cin","sib","chi","stin","cinc","cib","chic","sint","cibi"],"rp":["nci","inc","nic","hic","ich","inci","inst","hist","nch","hici"]},"59":{"input":[1,2,4,5,6],"tlw":["sabia",3858],"trw":["hasta",13934],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["bie",35373],"trp":["ient",36355],"tlw":["bien",10956],"lp":["bie","bien","ven","teni","bri","enti","tien","bier","rin","rib","ebi","rien","vien","vent"],"rp":["ient","inte","her","nve","ibr","nri"]},"61":{"input":[1,3,4,5,6],"tlw":["tenia",10650],"trw":["haber",3961],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["tienes",1622],"trw":["interes",873],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["cabeza",5567],"trw":["hacer",6941],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",993],"trw":["o",22465],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",736],"trp":["oa",1039],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",149815],"trp":["os",465150],"tlw":["sos",79],"trw":["os",2177],"lp":["so","sos","sso"],"rp":["os","oso","osos","oss","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["aso",13706],"trp":["osa",17222],"lp":["aso","asos","aos","saso","wo"],"rp":["osa","osas","ow","oas"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",16208],"trp":["oe",2284],"trw":["-",992],"lp":["eo"],"rp":["oe"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",492],"trp":["ox",1396],"lp":["xo","exo"],"rp":["ox"]},"70":{"input":[2,3,7],"tlp":["do",328036],"trp":["od",79897],"tlw":["dos",13303],"lp":["do","dos","eso","edo","esos","dedo","seo","eseo","dose","edos","deo","eos","seos"],"rp":["od","odo","odos","ode","ose","oses","oes"]},"71":{"input":[1,2,3,7],"tlp":["ado",89938],"trp":["oda",15354],"tlw":["dado",2055],"lp":["ado","ados","dado","sado","eado","aseo","sexo","adeo","dosa","dox","adox"],"rp":["oda","odas","odea","osad","owe"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",261028],"trp":["ot",48115],"tlw":["g",93],"lp":["to","go","tot","got","goo","goog","tog","gt","gto","gg","goto","tto"],"rp":["ot","og","oto","oog","otog","ogo","ogg"]},"73":{"input":[1,4,7],"tlp":["ga",53335],"trp":["of",10649],"tlw":["foto",316],"trw":["of",213],"lp":["ga","ag","fo","ato","ago","aga","tota","fot","foto","gat","tag","afo","gota","gato","tago","gaf"],"rp":["of","ota","oga","ofo"]},"74":{"input":[2,4,7],"tlp":["co",351806],"trp":["oc",68424],"tlw":["toco",325],"lp":["co","sto","tos","cos","cto","sco","gos","stos","sot","cost","coc","cog","soc","sg"],"rp":["oc","oco","ost","osot","osc","oct"]},"75":{"input":[1,2,4,7],"tlp":["cosa",9340],"trp":["oca",11672],"tlw":["cosas",5443],"lp":["cosa","aco","caso","gas","acto","atos","gac","sof","toca","saco","asto","cato","sag","asco","acos"],"rp":["oca","ocas","osta","otas","osof"]},"76":{"input":[3,4,7],"tlp":["ro",246584],"trp":["or",270405],"tlw":["error",581],"trw":["otro",8826],"lp":["ro","ero","eg","tro","gr","ge","rg","tor","ego","rto","reg","erto","rro","rgo"],"rp":["or","otr","otro","ort","ore","orr"]},"77":{"input":[1,3,4,7],"tlp":["gra",22435],"trp":["ora",27567],"tlw":["rato",1491],"trw":["otra",7718],"lp":["gra","aro","gar","ega","arg","for","argo","rga","egar","atro","arga","rato","rof","agr","age","arro","arto"],"rp":["ora","otra","orta"]},"78":{"input":[2,3,4,7],"tlp":["tod",44574],"trp":["ord",10842],"tlw":["todo",18934],"trw":["otros",4846],"lp":["tod","ros","todo","esto","seg","cor","tros","dor","stro","rso","rdo","erso","ecto","eco","eros","corr","reco"],"rp":["ord","ores","oce"]},"79":{"input":[1,2,3,4,7],"tlw":["toda",5491],"trw":["otras",3010],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",376567],"trw":["no",116565],"lp":[],"rp":["on","no","un","nu","uno","ono","nun","uo","nuo","non","ou","onu","onun","uu","oun","nou","nnu","nuno","onn"]},"81":{"input":[1,5,7],"tlp":["qu",432873],"trp":["una",93404],"tlw":["aun",5685],"trw":["una",79449],"lp":["qu","ano","aqu","au","aun","aunq","anu","anqu"],"rp":["una","ua","uan","ona","nqu","unq","unqu","nua","oq","oqu","uq","uqu"]},"82":{"input":[2,5,7],"tlp":["su",160644],"trp":["us",78931],"tlw":["su",81749],"trw":["nos",11959],"lp":["su","sus","son","sun"],"rp":["us","jo","nos","ju","jos","ons","oj","uj","unos","ojo","uso","ojos","jun","nso","noso","jus"]},"83":{"input":[1,2,5,7],"tlp":["anos",18802],"trp":["unas",5230],"tlw":["anos",8719],"trw":["unas",3324],"lp":["anos","ajo","sona","aus","asu","sua","ausa","squ","asun"],"rp":["unas","usa","jua","juan","onas","oja","uas","onaj","onsa","osq","osqu"]},"84":{"input":[3,5,7],"tlp":["eno",33962],"trp":["ue",565691],"trw":["yo",19966],"lp":["eno","eu","enu","eon","eun","eyo"],"rp":["ue","yo","uen","one","uy","nue","oy","ueno","uyo","yu","oye","une","oyo","yun"]},"85":{"input":[1,3,5,7],"tlp":["que",383802],"trp":["nque",7839],"tlw":["que",312514],"lp":["que","aque","ayo","equ","eque","quen","ayu","anue","ayun","aneo","xu","exu","xua","exua"],"rp":["nque","uena","uya","oya","uque","oque"]},"86":{"input":[2,3,5,7],"tlp":["du",23000],"trp":["ndo",74158],"tlw":["donde",10101],"trw":["jose",1204],"lp":["du","don","ejo","endo","dond","enos","seno","sue"],"rp":["ndo","ues","ud","ond","ued","ones","onde","und","uje","nues","undo","uede"]},"87":{"input":[1,2,3,5,7],"tlw":["quedo",2301],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["gu",90299],"trp":["nto",80019],"tlw":["tu",10629],"trw":["noto",316],"lp":["gu","tu","gun","bo","bu","ton","gunt"],"rp":["nto","ob","ont","ng","unt","ub","ut","unto","nton","ug","ngu","uto","ngo"]},"89":{"input":[1,4,5,7],"tlp":["fu",44220],"trp":["uga",7270],"tlw":["tanto",6066],"trw":["nota",486],"lp":["fu","anto","gua","gan","guna","tua","agu","ang","agua","fun","abo","atu","fon"],"rp":["uga","unta","uant","onta","onf","uta","oba"]},"90":{"input":[2,4,5,7],"tlp":["con",167856],"trp":["uc",36702],"tlw":["con",92933],"trw":["junto",3143],"lp":["con","cu","cont","sob","cons","scu","cono","stu","tonc"],"rp":["uc","noc","ust","nco","onc","ntos","unc","ocu","onoc","ncon","nunc"]},"91":{"input":[1,2,4,5,7],"tlw":["bajo",4396],"trw":["nunca",6044],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ento",40726],"trp":["ur",54620],"tlw":["gente",4061],"trw":["negro",1571],"lp":["ento","ron","egu","ru","gen","egun","eron","enor","tur","bue","buen"],"rp":["ur","uer","obr","obre","nor","uert","ontr","uro","uent"]},"93":{"input":[1,3,4,5,7],"tlw":["fue",13323],"trw":["obra",1151],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["sobre",15089],"trw":["usted",6039],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["cuando",21007],"trw":["nuestra",3160],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["lo",300357],"trw":["lo",69406],"lp":[],"rp":["lo","io","ll","li","ol","il","llo","olo","ill","ili","oli","lli","illo","lio","oi","ilo","oll","iol","ollo","ilio"]},"97":{"input":[1,6,7],"tlp":["al",268424],"trp":["la",523649],"tlw":["al",55586],"trw":["la",292004],"lp":["al","zo","all","ali","ala","azo","alo","alli","alla","allo"],"rp":["la","lla","lia","illa","ial","oz","ola","izo","ilia","ila"]},"98":{"input":[2,6,7],"tlp":["sol",26132],"trp":["los",142568],"tlw":["solo",13145],"trw":["los",122255],"lp":["sol","sio","solo","sil","sill","sl","soli"],"rp":["los","ios","llos","osi","iso","isio","ls","ioso","lis","ols","lso","loso","isl"]},"99":{"input":[1,2,6,7],"tlp":["sal",19326],"trp":["las",90934],"tlw":["salio",1704],"trw":["las",76432],"lp":["sal","sali","zos","asio","sola","sala","azos","sla","alas","salo","asil","als","alis"],"rp":["las","llas","iosa","lsa","olas","isla","olsa"]},"100":{"input":[3,6,7],"tlp":["el",426668],"trp":["le",198463],"tlw":["el",234850],"trw":["le",48083],"lp":["el","ell","ello","elo","ele","eli","elle","elli"],"rp":["le","lle","ole","ile","iel","lie","ielo","leo","lee","iole","lei","ille"]},"101":{"input":[1,3,6,7],"tlp":["ella",27778],"trp":["lez",2228],"tlw":["ella",14508],"trw":["leia",238],"lp":["ella","ale","ela","alle","eal","eali","ezo","alie","alez","eliz","elia","ael","xio","exio"],"rp":["lez","leza","lea","iale","oxi","llez"]},"102":{"input":[2,3,6,7],"tlp":["del",76844],"trp":["ido",57544],"tlw":["del",70196],"trw":["les",7650],"lp":["del","dio","dios","dido","sido","edio","esio","dol","sile","eles"],"rp":["ido","les","odi","lid","ld","idos","ilid","oles","idio","iles"]},"103":{"input":[1,2,3,6,7],"tlw":["ellas",1912],"trw":["lado",4590],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",45659],"trp":["ig",52962],"tlw":["volvio",2823],"trw":["oigo",95],"lp":["vo","gi","vio","vol","tio","volv","gl"],"rp":["ig","lt","lg","lv","ito","ov","igo","olv","lgo","lvi","olvi","lto","lig"]},"105":{"input":[1,4,6,7],"tlp":["alg",26073],"trp":["lta",13054],"tlw":["algo",9338],"trw":["italia",381],"lp":["alg","tal","alt","algo","fl","alta","val","agi","voz","fal","alto","tall","avo","alv","gia"],"rp":["lta","iga","lat","ofi","lav"]},"106":{"input":[2,4,6,7],"tlp":["cio",75669],"trp":["ico",18875],"tlw":["visto",3153],"trw":["loco",681],"lp":["cio","cl","sig","col","ccio","cil","vos","cios","colo"],"rp":["ico","lic","icio","oci","isto","lc","loc","icos","lici","lico","igos"]},"107":{"input":[1,2,4,6,7],"tlw":["facil",1160],"trw":["oficial",985],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rio",36719],"trp":["leg",18029],"tlw":["rio",1831],"trw":["llego",2460],"lp":["rio","rl","erio","evo","gri","tori","tel","erl","rlo","rig"],"rp":["leg","ori","lev","lleg","iero","lor","llev","ove","ler","iro"]},"109":{"input":[1,3,4,6,7],"tlw":["favor",1408],"trw":["llegar",2630],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["cierto",3067],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["todavia",3269],"trw":["llegado",1772],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ui",77353],"trw":["nino",1684],"lp":[],"rp":["ui","ion","ho","lu","ul","ino","hu","uni","oni","nio","lin","lon","ulo","iu","inu","olu","onio","uin","nino","uil"]},"113":{"input":[1,5,6,7],"tlp":["qui",49071],"trp":["lan",19182],"tlw":["aqui",6351],"trw":["hizo",5133],"lp":["qui","aho","aqui","zon","azon","alq","alqu"],"rp":["lan","ual","nal","uz","iona","hizo","ula","iqu","lq","lqu","lqui","inal","ualq"]},"114":{"input":[2,5,6,7],"tlp":["sion",15408],"trp":["ijo",20150],"tlw":["sino",5212],"trw":["hijo",3480],"lp":["sion","sino","sul","solu"],"rp":["ijo","hos","hijo","usi","uis","lus","inos","onsi","luso","ijos","usio","ulos","nsio","luis","jul","juli"]},"115":{"input":[1,2,5,6,7],"tlw":["quiso",1107],"trw":["julia",613],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elen",1805],"trp":["uel",35859],"trw":["hoy",2254],"lp":["elen","euni"],"rp":["uel","uie","uien","len","uell","ione","lue","uelo","llen","ilen","lien","hoy","ley","hue","lone","line","leno","nel"]},"117":{"input":[1,3,5,6,7],"tlw":["quien",8560],"trw":["linea",925],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["dijo",13944],"trw":["lejos",1983],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["aquellos",2619],"trw":["juez",487],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",44167],"trp":["lgu",15861],"tlw":["tuvo",2452],"trw":["ningun",2097],"lp":["bl","gui","tuv","bio","vu"],"rp":["lgu","ult","igu","lgun","uv","ubi","itu","ing","ibl","hub","onv","lib","hubi","ulti","obl"]},"121":{"input":[1,4,5,6,7],"tlw":["alguna",3442],"trw":["ninguna",2180],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["cinco",2085],"trw":["incluso",2762],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["cual",3860],"trw":["habitacion",1620],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["voy",2278],"trw":["luego",6071],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["ahora",9282],"trw":["lugar",4548],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["dicho",3458],"trw":["noche",5939],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["ciudad",3866],"trw":["historia",2737],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",273],"trw":["p",308],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",34091],"trp":["pa",189321],"trw":["papa",1263],"lp":["ap","apa"],"rp":["pa","pap","papa","ppa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",58765],"trp":["ps",612],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",11453],"trp":["pas",22840],"trw":["pasa",1406],"lp":["spa","asp","sap","sapa","apas","spas"],"rp":["pas","pasa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",17553],"trp":["pe",152316],"tlw":["ep",67],"trw":["pepe",388],"lp":["ep","epe","epp"],"rp":["pe","pep","pepe"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["xp",7112],"trp":["pape",1900],"trw":["pa'",77],"lp":["xp","exp","ape","epa","xpe","expe","a'","xpa","expa"],"rp":["pape","pea","pa'","pepa"]},"134":{"input":[2,3,8],"tlp":["esp",48661],"trp":["pes",7009],"trw":["pese",726],"lp":["esp","spe","espe","desp","sep","dep","sesp","depe","sped","spes"],"rp":["pes","ped","pese","pede"]},"135":{"input":[1,2,3,8],"tlp":["espa",10359],"trp":["pad",10546],"tlw":["espada",1195],"trw":["pase",469],"lp":["espa","esap","aspe","spad","sepa","xped","apad","epas","depa","spea"],"rp":["pad","pesa","pada","pase","peda","pade","pead"]},"136":{"input":[4,8],"trp":["pt",3066],"lp":[],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",602],"trp":["pat",4693],"tlw":["tapa",136],"trw":["pata",128],"lp":["tap","apat","tapa","apt","apta"],"rp":["pat","pta","pata"]},"138":{"input":[2,4,8],"trp":["pc",1379],"lp":[],"rp":["pc"]},"139":{"input":[1,2,4,8],"tlp":["cap",8573],"trp":["pac",6048],"tlw":["capa",378],"trw":["patas",294],"lp":["cap","capa","spac","apac","scap","capt"],"rp":["pac","past","pact"]},"140":{"input":[3,4,8],"tlp":["rp",9074],"trp":["pr",105517],"trw":["peter",135],"lp":["rp","rep","erp","rpr","rpre","ept","repe","epr","epre","repr","rpe"],"rp":["pr","per","pre","pet","pert","pret","prep","perr","pete"]},"141":{"input":[1,3,4,8],"tlp":["apar",7464],"trp":["par",95147],"tlw":["aparte",525],"trw":["para",50839],"lp":["apar","apr","epar","rap","apre","repa","xper","xpr","expr","xpre","epta"],"rp":["par","para","pare","part","pera","pra","perf","patr","pref"]},"142":{"input":[2,3,4,8],"tlp":["resp",9516],"trp":["pres",14702],"tlw":["espere",155],"trw":["perder",971],"lp":["resp","sper","spec","cep","cept","spet","epc","cepc","spr","espr","spre"],"rp":["pres","pec","pers","perd","prec","pect","pedr","perc","pece"]},"143":{"input":[1,2,3,4,8],"tlw":["espera",1024],"trw":["padre",6018],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",72228],"trw":["m",171],"lp":[],"rp":["mp","nm","mn","mpp"]},"145":{"input":[1,5,8],"tlp":["am",111190],"trp":["ma",217996],"tlw":["ama",379],"trw":["manana",3399],"lp":["am","ama","amp","aman","ampa"],"rp":["ma","man","pan","mpa","mana","mpan","pana","mam","nam","mama","mna","maq","pam","mpam","nap"]},"146":{"input":[2,5,8],"tlp":["sm",16472],"trp":["nsp",1139],"lp":["sm"],"rp":["nsp","mps","nsm"]},"147":{"input":[1,2,5,8],"tlp":["span",4757],"trp":["mas",62981],"tlw":["sam",202],"trw":["mas",42217],"lp":["span","sma","sam","amas","asm","smas","asma","asam","ansp"],"rp":["mas","jam","jama","nsam","paj","paja","masa","maj","mpas","mnas","mans"]},"148":{"input":[3,5,8],"tlp":["em",88958],"trp":["me",181753],"trw":["me",47087],"lp":["em","emp","eme","emen","empe","enem","epen","emn"],"rp":["me","men","pen","mpe","nem","nme","mem","mene","nmen","mpen","pene","pey"]},"149":{"input":[1,3,5,8],"tlp":["ame",24574],"trp":["mane",7021],"tlw":["examen",171],"trw":["pena",1009],"lp":["ame","amen","ema","eman","apen","enam","eam","eame","xam"],"rp":["mane","may","peq","pena","pane","mae","mena","max","name","mame","mex"]},"150":{"input":[2,3,5,8],"tlp":["dem",13584],"trp":["med",13820],"tlw":["depende",152],"trw":["meses",1727],"lp":["dem","sem","ejem","dm","seme","emej","spej","emed"],"rp":["med","pens","mej","mes","mens","jem","jemp","mese","nmed","pend","mend","pej"]},"151":{"input":[1,2,3,5,8],"tlw":["ademas",3394],"trw":["mesa",2367],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",622],"trp":["mb",53887],"lp":["tm","bm"],"rp":["mb"]},"153":{"input":[1,4,5,8],"tlp":["tam",22247],"trp":["mba",6413],"tlw":["fama",385],"trw":["mata",229],"lp":["tam","amb","tamb","fam","tamp","amab","bam","atam","abam","amba"],"rp":["mba","mat","mant","mab","maba","mata","pant","pab","ntam","mbat"],"special":"numsym"},"154":{"input":[2,4,5,8],"lp":[],"rp":[]},"155":{"input":[1,2,4,5,8],"tlw":["cama",1722],"trw":["pasaba",1017],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",44145],"trp":["ment",47484],"tlw":["repente",849],"trw":["mente",1213],"lp":["rm","erm","empr","tem","rme","emb","rem","term","temp"],"rp":["ment","mbr","mbre","mer","mpr","mpre","pren","met","perm","ntem","mper"]},"157":{"input":[1,3,4,5,8],"tlw":["tema",888],"trw":["manera",3467],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["empece",256],"trw":["presente",701],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["armas",1351],"trw":["madre",4699],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",45492],"lp":[],"rp":["pi","ip","ipi","pip"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",5901],"trp":["pia",3578],"trw":["paz",1186],"lp":["api","apaz","zap","zapa","apia","apiz"],"rp":["pia","paz","pai","ipa","piz","pipa","ppai"]},"162":{"input":[2,6,8],"tlp":["spi",5706],"trp":["isp",4720],"lp":["spi"],"rp":["isp","pis","psi","ispi"]},"163":{"input":[1,2,6,8],"tlp":["spia",239],"trp":["pais",2619],"trw":["pais",1820],"lp":["spia","aspi"],"rp":["pais","pasi","ispa","pias","pisa","psia","ipas"]},"164":{"input":[3,6,8],"tlp":["epi",1192],"trp":["pie",14289],"trw":["pie",2140],"lp":["epi"],"rp":["pie","ipe","ipie","pei"]},"165":{"input":[1,3,6,8],"trp":["pez",4584],"trw":["pieza",377],"lp":[],"rp":["pez","peza","piez"]},"166":{"input":[2,3,6,8],"tlp":["espi",3579],"trp":["pid",4842],"trw":["pies",1461],"lp":["espi","disp","dip","epis","spie","spid"],"rp":["pid","pedi","pied","pies","pidi","pide","pesi","ispe","ipes","k'","kesp"]},"167":{"input":[1,2,3,6,8],"tlw":["despedida",172],"trw":["paises",358],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",2633],"trp":["pit",4928],"lp":["tip","tipi"],"rp":["pit","piti","pti","ipt","ipit"]},"169":{"input":[1,4,6,8],"tlp":["apit",3167],"trp":["pita",2814],"tlw":["tapia",110],"lp":["apit","tapi","vap"],"rp":["pita","pati","pav"]},"170":{"input":[2,4,6,8],"tlp":["cip",5255],"trp":["pci",1379],"lp":["cip","cipi","spit","scip","visp"],"rp":["pci","pist","icip","pic","ipc","ipci","ipic","psic","pisc","ptic"]},"171":{"input":[1,2,4,6,8],"tlw":["capaz",1523],"trw":["pista",305],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["repi",892],"trp":["pri",18110],"tlw":["repetir",243],"trw":["pierre",163],"lp":["repi","epit","epti","rip","rpi","trip","epri","erpi"],"rp":["pri","peri","pir","pier","piri","peti","priv","prev","ptie","piet","perv","pite"]},"173":{"input":[1,3,4,6,8],"tlw":["repetia",185],"trw":["partir",944],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["especie",1047],"trw":["pedir",513],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["capacidad",547],"trw":["parecia",4070],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",147074],"trw":["mi",29966],"lp":[],"rp":["mi","im","min","imp","imi","nim","inm","pin","mpi","mini","nmi","impi","pini","imin","inim","hip","him","imn","ph","phi"]},"177":{"input":[1,5,6,8],"tlp":["ami",19873],"trp":["ima",14150],"tlw":["anima",95],"trw":["mia",816],"lp":["ami","amin","anim","aim"],"rp":["ima","mina","iam","mia","mani","nima","pani","impa","ham","mpia","niam","mai","nami","mian","inam","imam"]},"178":{"input":[2,5,6,8],"tlp":["sim",4131],"trp":["mis",25550],"trw":["mis",5514],"lp":["sim","simp","simi","spin","smi","smis","sism"],"rp":["mis","ism","mism","misi","isim","insp","nspi","jim","nism","imis","hisp","ismi","jimi"]},"179":{"input":[1,2,5,6,8],"tlw":["animas",76],"trw":["misma",3576],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",4450],"trp":["mie",21370],"lp":["emi","empi","emin"],"rp":["mie","iem","iemp","mien","ime","imie","hem","inme","imen","pien","nemi","impe","miem","mpie","meni","heme","mine"]},"181":{"input":[1,3,5,6,8],"tlw":["empieza",396],"trw":["maxima",192],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["dime",307],"trw":["impide",99],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["demasiadas",229],"trw":["media",1745],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",9690],"trp":["mbi",15416],"lp":["tim","vim","timi","vimi","timb"],"rp":["mbi","mit","miti","ntim","pint","imit","imb","itm","pib","mbit","itim","ivim","mbin","mib","ptib"]},"185":{"input":[1,4,5,6,8],"trw":["pinta",126],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",64],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["capitan",1308],"trw":["incapaz",452],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["verme",274],"trw":["primer",2357],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["tambien",10237],"trw":["primera",3631],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["siempre",8021],"trw":["presidente",1129],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["encima",2175],"trw":["mientras",7333],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",202728],"trw":["pop",64],"lp":[],"rp":["po","op","opo","pop","ppo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",2962],"trp":["opa",4287],"trw":["popa",199],"lp":["apo"],"rp":["opa","popa"]},"194":{"input":[2,7,8],"tlp":["spo",8366],"trp":["pos",15078],"trw":["pos",130],"lp":["spo","spos","sop","sosp","sopo"],"rp":["pos","osp","opos","poso","pso","ops"]},"195":{"input":[1,2,7,8],"tlp":["apos",275],"trp":["paso",5668],"tlw":["sopa",128],"trw":["paso",4414],"lp":["apos","sopa"],"rp":["paso","opas","posa","pow"]},"196":{"input":[3,7,8],"tlp":["epo",1772],"trp":["ope",2726],"lp":["epo","eppo"],"rp":["ope","peo","poe","opeo","pope"]},"197":{"input":[1,3,7,8],"tlp":["xpo",209],"trp":["opea",131],"lp":["xpo","expo"],"rp":["opea"]},"198":{"input":[2,3,7,8],"tlp":["espo",6435],"trp":["pod",19770],"tlw":["esposo",391],"trw":["peso",623],"lp":["espo","epos","depo","dop","speo","dope"],"rp":["pod","pode","pose","ospe","peso","poes","psoe","peos","podo"]},"199":{"input":[1,2,3,7,8],"tlw":["esposa",926],"trw":["pasado",2726],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",143],"trp":["pto",1342],"trw":["opto",99],"lp":["top"],"rp":["pto","pot","opt","opto"]},"201":{"input":[1,4,7,8],"tlp":["apag",394],"trp":["pag",2930],"tlw":["apago",137],"trw":["pago",329],"lp":["apag","tapo"],"rp":["pag","paga","pago","pato","opag","opta"]},"202":{"input":[2,4,7,8],"tlp":["cop",1471],"trp":["poc",14176],"trw":["poco",8226],"lp":["cop","scop","copo","tops"],"rp":["poc","poco","post","opc","ptos"]},"203":{"input":[1,2,4,7,8],"tlw":["copa",496],"trw":["pocas",752],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",11433],"trp":["por",105551],"tlw":["torpe",134],"trw":["por",82819],"lp":["rop","rpo","erpo","trop","ropo","epto"],"rp":["por","pero","pro","preg","prop","port","orp","orpr","preo","prot","opor","peor","oper","peg"]},"205":{"input":[1,3,4,7,8],"tlw":["ropa",972],"trw":["pagar",556],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["espero",808],"trw":["poder",3232],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["aspecto",1030],"trw":["profesor",509],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mo",151250],"trw":["puno",277],"lp":[],"rp":["mo","om","pu","mu","omo","mpo","um","omp","up","pon","mon","mun","mom","pun","upo","nom","omu","omun","num","umo"]},"209":{"input":[1,5,7,8],"tlp":["amo",19266],"trp":["mano",16278],"tlw":["amo",786],"trw":["mano",5872],"lp":["amo","ampo","apu","amon","aum"],"rp":["mano","oma","ompa","uma","pano","upa","uman","oman","manu","pau","mona","maqu","namo","umna","uap"]},"210":{"input":[2,5,7,8],"tlp":["spu",13016],"trp":["mos",30677],"tlw":["somos",935],"trw":["puso",2090],"lp":["spu","smo","sup","spon","som","supo","supu","sum","somo","smos"],"rp":["mos","muj","pus","puso","mpos","mus","moso","omos","pons","usp"]},"211":{"input":[1,2,5,7,8],"tlw":["suma",280],"trw":["manos",4296],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emo",15453],"trp":["pue",46340],"tlw":["empeno",236],"trw":["muy",14472],"lp":["emo","empo","emon","epu"],"rp":["pue","ome","muy","omen","mue","meno","mome","ume","pone","upe","umen","nume","nemo","upue","poy","memo"]},"213":{"input":[1,3,5,7,8],"tlw":["apoyo",685],"trw":["pequeno",1827],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["despues",9579],"trw":["menos",6628],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["amado",313],"trw":["mando",1140],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",6546],"trp":["omb",23704],"tlw":["tomo",1241],"trw":["punto",3190],"lp":["tom","tum","tumb","tomo","tup","bom","tmo"],"rp":["omb","punt","nomb","umb","pub","mont","pob","mbo","mot","pong","put","moto","umbo"]},"217":{"input":[1,4,5,7,8],"tlw":["toma",528],"trw":["punta",577],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["como",50874],"trw":["puntos",421],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["tampoco",2231],"trw":["montanas",596],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["grupo",2081],"trw":["momento",6711],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",3330],"trw":["porque",13945],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["cuerpo",3541],"trw":["mujer",5923],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["respuesta",1354],"trw":["personas",2316],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",26745],"trw":["pollo",147],"lp":[],"rp":["pl","opi","pli","pio","pol","poli","lp","ipo","olp","plo","opio","ipio","pil","lip","lop","plio","ipl","pill","ilip","lipo"]},"225":{"input":[1,6,7,8],"tlp":["apl",391],"trp":["pal",11994],"tlw":["apolo",118],"trw":["plaza",1014],"lp":["apl","apol","apil","apli","alop","apla"],"rp":["pal","pla","pala","opia","ipal","lpa","plaz","palo","pali","plia","pila","poz","pozo","lap"]},"226":{"input":[2,6,7,8],"tlp":["spl",427],"trp":["posi",7976],"tlw":["soplo",116],"trw":["piso",796],"lp":["spl","sopl","spio"],"rp":["posi","ispo","pios","piso","ospi","ipos","plos","lpis","opsi"]},"227":{"input":[1,2,6,7,8],"trw":["pasillo",584],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["epl",1170],"trp":["pel",8010],"trw":["piel",1315],"lp":["epl","epli","elip","eple"],"rp":["pel","ple","lpe","olpe","peli","pelo","piel","pele","opie","pell","lipe","lope","pole","lpeo","pleo","opel"]},"229":{"input":[1,3,6,7,8],"trw":["papel",1409],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["episodio",202],"trw":["podido",1018],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["espalda",1291],"trw":["podia",6502],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["golp",2796],"trp":["polv",730],"tlw":["tipo",2063],"trw":["polvo",512],"lp":["golp","tipo","gip","gipt","tipl"],"rp":["polv","pito","ipto","ipot","ltip","plit"]},"233":{"input":[1,4,6,7,8],"tlw":["filipo",307],"trw":["patio",737],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["tipos",271],"trw":["politicos",569],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capital",627],"trw":["politica",1189],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["golpe",1615],"trw":["propio",2058],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["felipe",457],"trw":["propia",1864],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["replico",777],"trw":["perdido",1215],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["especial",896],"trw":["podria",2740],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["hom",15529],"trw":["mil",2026],"lp":[],"rp":["hom","mil","lm","mpl","imo","omi","mili","impo","mino","hum","lim","moni","ompl","mio","mpli","lum","poni","pul","mplo","impl"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alma",1817],"trw":["mal",3264],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"trw":["mismo",8546],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["suponia",297],"trw":["humanos",580],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["empleo",215],"trw":["pleno",336],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["empezo",1641],"trw":["manuel",722],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["ejemplo",1285],"trw":["medio",3051],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["demasiado",2974],"trw":["podian",1303],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"trw":["ultimo",2103],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["amigo",2622],"trw":["ultima",1629],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["conmigo",1217],"trw":["mucho",7468],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["camino",3366],"trw":["muchas",2632],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["tiempo",9492],"trw":["hombre",8282],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["finalmente",1135],"trw":["hermano",2152],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["respondio",2029],"trw":["hombres",5292],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["comenzo",1401],"trw":["palabras",3233],"lp":[],"rp":[]}} \ No newline at end of file
diff --git a/keyboards/gboards/dicts/aset/_generator/src/fn-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/fn-keymap.json
new file mode 100644
index 0000000000..24e357aa16
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/_generator/src/fn-keymap.json
@@ -0,0 +1 @@
+{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",258251],"tlw":["a",455],"lp":["aa","aaa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",66466],"tlw":["s",731],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",177484],"tlw":["saa",2123],"lp":["sa","as","ssa","saa","ass","assa","aas","ssaa","aass","sas","sass","asa","saas","aaas","wa","ssas","aasa","asas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",59327],"tlw":["e",519],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",19583],"tlw":["x",52],"lp":["ea","ae","eaa","ex","ax","aae"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["se",143967],"tlw":["se",27105],"lp":["se","es","de","ess","ed","ses","see","des","ede","dess","edes","ees","sess","eess","ese","eese","esee","sse","ssee","eed"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",33895],"tlw":["saada",1657],"lp":["da","essa","ad","ase","eda","aad","ada","eas","aada","ade","saad","sea","esa","aase","ades","seaa","das","daa","eass","asee"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",182756],"tlw":["t",129],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",443960],"tlw":["tata",2224],"lp":["ta","at","tta","taa","att","ttaa","aat","ata","atta","aatt","tat","aata","tata","ataa","fa","ff","ft","af","tatt","aff"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",131877],"tlw":["st",145],"lp":["st","ts","sc","tc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["sta",78874],"tlw":["taas",3738],"lp":["sta","ast","asta","staa","tas","ats","aast","taas","saat","tass","tsa","stas","sat","tast","satt","ac","stat","sata","tsas","sast"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["et",120310],"tlw":["te",3216],"lp":["et","te","ett","er","tte","re","rt","rr","tee","err","eet","ette","ert","tet","ete","tett","ter","rte","ere","etee"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",56709],"tlw":["etta",32564],"lp":["ar","ra","etta","tar","rra","era","erra","raa","eta","rta","aar","art","ara","ate","are","atte","rat","etaa","eraa","erta"],"rp":[]},"14":{"input":[2,3,4],"tlp":["est",21714],"tlw":["ester",156],"lp":["est","tse","ste","set","sest","rs","det","ets","res","dest","ress","tsee","este","sett","dett","rd","rest","ster","tses","der"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["esta",12314],"tlw":["eras",1057],"lp":["esta","ras","ars","eras","atse","dat","rast","aste","east","aras","tsea","etsa","rass","aset","sar","seta","ard","edat","sef","datt"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",48589],"trw":["n",1456],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",427381],"trp":["na",121169],"tlw":["anna",1340],"trw":["na",532],"lp":["an","aan","ana","ann","anna","anaa","aana","anan","aann","anq"],"rp":["na","nna","naa","naan","nan","nnan","nnaa","nq"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",381],"trp":["ns",47964],"trw":["j",621],"lp":["sn"],"rp":["ns","nss","nj"]},"19":{"input":[1,2,5],"tlp":["san",29730],"trp":["ja",188698],"tlw":["ajan",1077],"trw":["ja",138817],"lp":["san","ans","ansa","aj","saan","aja","anss","sana","aans","ajan","ssan"],"rp":["ja","nsa","jaa","jan","nssa","jas","jaan","nas","nsan"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",297363],"trp":["ne",120612],"tlw":["en",8035],"trw":["ne",8601],"lp":["en","een","enn","ene","enne","enen","ey","enee"],"rp":["ne","nen","ny","nne","yy","nee","yn","nnen","yny","neen","nny","yyn"]},"21":{"input":[1,3,5],"tlp":["ane",47273],"trp":["nay",5887],"tlw":["enaa",3363],"trw":["naen",437],"lp":["ane","anen","ay","ena","any","anne","enaa","aen","anee","aane","enna","ean","ayn","eaan","eena","ayny"],"rp":["nay","ya","nae","ynna"]},"22":{"input":[2,3,5],"tlp":["sen",43375],"trp":["ys",15306],"tlw":["sen",18097],"lp":["sen","ens","sy","den","seen","eens","sens","syn","syd","syy"],"rp":["ys","je","yd","ysy","nes","jen","yde","yys","nd","nnes"]},"23":{"input":[1,2,3,5],"tlp":["dan",14539],"trp":["yda",4761],"tlw":["sydan",458],"trw":["jaada",316],"lp":["dan","ensa","syda","anes","sena","ayd","asen","ayde","edan","daan","sean","and","ande","ays","ayda","assy","esan"],"rp":["yda","ydan","ysa"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",82],"trp":["nt",46733],"tlw":["b",145],"lp":["bb","tn"],"rp":["nt","ntt","nb"]},"25":{"input":[1,4,5],"tlp":["taan",23917],"trp":["nta",24277],"tlw":["antaa",1443],"lp":["taan","ant","tan","anta","ttan","tann","aant","tana","ba","antt","anat","atan","bat","ab"],"rp":["nta","ntaa","nat","ntan","nnat","natt"]},"26":{"input":[2,4,5],"tlp":["bj",117],"trp":["nc",817],"lp":["bj","sb","sbj"],"rp":["nc","nst"]},"27":{"input":[1,2,4,5],"tlp":["ajat",5379],"trp":["jat",10551],"tlw":["sanat",714],"trw":["jattaa",503],"lp":["ajat","stan","taj","taja","tans","ttaj","sant","tsan","anc","cq","acq","staj"],"rp":["jat","jatt","jast","nast","jac","jacq","jata","ntas"]},"28":{"input":[3,4,5],"tlp":["ten",35400],"trp":["yt",52934],"tlw":["eteen",754],"trw":["nyt",14068],"lp":["ten","ty","tten","ent","teen","ren","tyy","tyt","tytt"],"rp":["yt","nyt","ytt","net","nte","yty","neet","ynyt","nty","nett","nnet"]},"29":{"input":[1,3,4,5],"tlp":["ayt",12824],"trp":["nayt",5724],"tlw":["taytyy",2000],"trw":["naet",1065],"lp":["ayt","ran","tay","aytt","tayt","anyt","anet","tany","rran","ayty","enta","raan","taen","aten","tya","aren","rann"],"rp":["nayt","ytta","yta"]},"30":{"input":[2,3,4,5],"tlp":["rj",9328],"trp":["yst",5033],"tlw":["syntynyt",298],"lp":["rj","sten","sty","tys","rje","tens","tsen","sent","tyst","esty","synt","etys","syt","rjee","syyt","stys"],"rp":["yst","nest","jet","jest"]},"31":{"input":[1,2,3,4,5],"tlw":["sentaan",644],"trw":["jaanyt",372],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",103087],"trw":["i",313],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",154264],"trp":["ia",39589],"tlw":["z",67],"lp":["ai","aai","zi","az","zz","zzi","za","aza"],"rp":["ia","iaa","iia","iai","iz","izz","izzi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",217633],"trp":["is",146392],"tlw":["siis",3048],"trw":["k",311],"lp":["si","sk","sii","ski","sis"],"rp":["is","ki","ik","ks","kk","isi","ksi","ikk","kki","ikki","iss","iis","kii","iks","iksi"]},"35":{"input":[1,2,6],"tlp":["ak",50178],"trp":["ka",233392],"tlw":["sai",2457],"trw":["kaikki",9023],"lp":["ak","aik","ais","asi","aikk","sia","aks","aka","aki","ska","aisi"],"rp":["ka","kaa","ika","kai","kaik","kas","kka","issa","isa"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",107437],"trp":["ie",70245],"tlw":["ei",34289],"lp":["ei"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",677],"trp":["ix",36],"tlw":["xii",62],"trw":["ix",36],"lp":["ez","xi","ezi","exi","ze","xii","aie","eia"],"rp":["ix"]},"38":{"input":[2,3,6],"tlp":["ek",18980],"trp":["ke",62524],"tlw":["die",61],"trw":["keksi",101],"lp":["ek","eid","eik","eis","sie","sei","esi","eks","ske","sek"],"rp":["ke","ise","id","kse","ike","ies","ide","ises","kei","kes"]},"39":{"input":[1,2,3,6],"tlp":["eida",12497],"trp":["ida",14485],"tlw":["eika",6048],"trw":["kaikkea",823],"lp":["eida","aise","eika","eka","aike","seka","ake","akse","aske","aid","aide","dak"],"rp":["ida","kea","ikea","ieda","kad","kade","keas","kkea"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",98241],"trp":["it",143226],"tlw":["v",870],"trw":["iv",91],"lp":["ti","vi","tti","tii","vii","ttii","vit","tiv","ttiv","vitt","viit"],"rp":["it","iv","itt","iit","iti","itti","ivi","iitt","ivit"]},"41":{"input":[1,4,6],"tlp":["va",182750],"trp":["ita",65115],"tlw":["tai",4545],"lp":["va","vat","av","vai","ava","vaa","tai","aiv","aiva","tav","tava","ait","aav","avat"],"rp":["ita","iva","ivat","iita","itta","itaa"]},"42":{"input":[2,4,6],"tlp":["sit",26898],"trp":["ist",39998],"tlw":["viisi",327],"trw":["itki",255],"lp":["sit","sti","tk","sitt","siit","siv","tki","tsi","sv","vis","tis"],"rp":["ist","its","itk","isti","itsi","itki","kiv","iist","kiit"]},"43":{"input":[1,2,4,6],"tlp":["vas",19036],"trp":["ista",23491],"tlw":["sita",11781],"trw":["kavi",1357],"lp":["vas","vast","tka","sita","asti","tak","vaik","aist","atk","taka","siva","asv","tais","tasi","atka"],"rp":["ista","kat","kats","kasv","kav"]},"44":{"input":[3,4,6],"tlp":["ri",43375],"trp":["ir",15903],"tlw":["ettei",3147],"trw":["irti",421],"lp":["ri","ve","vie","tie","ev","tei","eit","rv","eri","eiv","etti","tiet","eti","ttei","vet"],"rp":["ir","itte","ite","iet","ier"]},"45":{"input":[1,3,4,6],"tlp":["ari",10391],"trp":["ieta",3954],"tlw":["eivat",3839],"lp":["ari","eva","var","eita","arv","eiva","ria","evat","arvi","tarv","vaar","vart","rva","raav","tari","veta","rai"],"rp":["ieta","ira","iera"]},"46":{"input":[2,3,4,6],"tlp":["rk",13550],"trp":["itse",13494],"tlw":["teki",1489],"trw":["itse",3766],"lp":["rk","esti","tek","etk","rkk","rsi","tied","ris","tke","rke","teid"],"rp":["itse","ker","kir","iste","iset","kert","kerr","irk","kirk"]},"47":{"input":[1,2,3,4,6],"tlw":["tieda",1175],"trw":["kertaa",1619],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",333976],"trw":["niin",26801],"lp":[],"rp":["in","ni","iin","nii","niin","ih","hi","inn","nh","nin","iih","hin","nni","hn","ihi","ihin","ini","iinn","inni","nhi"]},"49":{"input":[1,5,6],"tlp":["ah",50528],"trp":["ha",155587],"tlw":["aina",4737],"trw":["han",60727],"lp":["ah","ain","aha","ani","ahan","aina","anh","anha"],"rp":["ha","han","ina","nai","iina","nah","ian","nha","haa","iha","nain","ihan"]},"50":{"input":[2,5,6],"tlp":["sin",32954],"trp":["nk",49072],"tlw":["sikin",37],"trw":["kiinni",1175],"lp":["sin","siin","siih","skin"],"rp":["nk","kin","ink","nki","nkin","nsi","isin","iink","ij","hk","inki","ksin","nis","kiin","ins","ikin"]},"51":{"input":[1,2,5,6],"tlp":["akin",7540],"trp":["kaan",25562],"tlw":["sina",5798],"trw":["kanssa",4169],"lp":["akin","sina","ank"],"rp":["kaan","nka","kan","inka","kans","nak","nkaa","nais","naki","kana","ija","inak","kah","ikan","hka","jai","isan"]},"52":{"input":[3,5,6],"tlp":["eh",17793],"trp":["he",62964],"tlw":["enin",79],"trw":["he",9072],"lp":["eh","eni","ein","ehe"],"rp":["he","ine","inen","hy","yh","hei","ien","yi","hen","ieh","ihe","iihe","ihen","iehe","hny","inne"]},"53":{"input":[1,3,5,6],"tlp":["aine",8961],"trp":["hane",41802],"tlw":["eihan",834],"trw":["hanen",25783],"lp":["aine","ahe","ahny","eiha","eha","eina","ehia","ehan","enia","anhe","aihe","enha","ahne","eani"],"rp":["hane","yha","yhan","hea","hena","inay"]},"54":{"input":[2,3,5,6],"tlp":["enk",14707],"trp":["hd",22326],"tlw":["siihen",4304],"trw":["niiden",2381],"lp":["enk","enki","ensi","ehd"],"rp":["hd","ky","isen","ken","hde","yk","yks","heid","ksen","iden","hden","kein","yksi","kys","kysy","keen"]},"55":{"input":[1,2,3,5,6],"tlw":["ehka",1532],"trw":["heidan",5518],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["tiin",8421],"trp":["ht",36404],"tlw":["viini",52],"trw":["nti",182],"lp":["tiin","vin","tin","vih","th","viin"],"rp":["ht","hti","niit","nti","int","hit","ntti","nit","init","nv","iint","nitt","hv","itin"]},"57":{"input":[1,4,5,6],"tlp":["van",24884],"trp":["hta",10602],"tlw":["vaan",7099],"trw":["hanta",8388],"lp":["van","aht","tah","vaan","vain","vah","vanh","taht","ahti","vaha","avan","tain","taha","vana"],"rp":["hta","hant","ivan","htaa","hat","inta"]},"58":{"input":[2,4,5,6],"tlp":["tkin",2359],"trp":["ntis",951],"tlw":["viisin",90],"trw":["kiinnitti",90],"lp":["tkin","ch","tsin","tins","stin","tij","vink","tsh","tsij","tch"],"rp":["ntis","nist","hist","nci","hits","ncis","nsiv","itsh","nits","htik"]},"59":{"input":[1,2,4,5,6],"tlw":["vastaan",3099],"trw":["niista",1303],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["rin",8705],"trp":["yv",14540],"tlw":["tehnyt",1374],"trw":["hyvin",4061],"lp":["rin","teh","tyi","eht","ven","rh"],"rp":["yv","hyv","het","iten","her","yht","hte","yvi","herr","hyvi","yvin","ytti","heit","hnyt"]},"61":{"input":[1,3,4,5,6],"tlw":["taytyi",1362],"trw":["hanet",4513],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["sitten",8039],"trw":["kenties",944],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["teidan",2121],"trw":["kerran",2976],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",9026],"trw":["o",542],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",201],"trp":["oa",14352],"lp":["ao"],"rp":["oa","oaa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",15574],"trp":["os",54094],"tlw":["so",36],"lp":["so","soo","sso","sos","soss"],"rp":["os","oss","oso","oos","ooss"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["soa",566],"trp":["ossa",8151],"trw":["osaa",838],"lp":["soa","aso","sao","ssao"],"rp":["ossa","osa","oas","osaa","osas","ow"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",536],"trp":["oe",3004],"trw":["-",534],"lp":["eo"],"rp":["oe"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",142],"trp":["ox",358],"lp":["a-","a-a","xo"],"rp":["ox","-a","oxo"]},"70":{"input":[2,3,7],"tlp":["do",12063],"trp":["od",8394],"lp":["do","dos","edo","sod","soe","doss","esso","eos","eoss","edos"],"rp":["od","ode","odo","ose","odos","oose","oses","odes","oes","oess"]},"71":{"input":[1,2,3,7],"tlp":["ado",599],"trp":["oda",1130],"tlw":["sodassa",75],"lp":["ado","soda","aado","dow","eado","adow"],"rp":["oda","odas","odaa"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",61617],"trp":["ot",51834],"tlw":["g",128],"trw":["ogoot",161],"lp":["to","tto","tot","too","tott","go","gt","goo","goot","gto","ttoo","gg"],"rp":["ot","ott","oto","otto","oot","og","ogo","ogoo"]},"73":{"input":[1,4,7],"tlp":["ato",2846],"trp":["ota",12728],"tlw":["totta",1107],"trw":["ottaa",1121],"lp":["ato","toa","ga","atto","ag","gat","gata","aato","ttoa","ago","gatt","toaa","fo"],"rp":["ota","otta","otaa","of","oat","oata","otoa"]},"74":{"input":[2,4,7],"tlp":["sto",3632],"trp":["ost",9527],"lp":["sto","tso","tos","sot","co","toss","tost","sott","stos","tsoo","stot","stoo","tsos","tsot","gs"],"rp":["ost","ots","oc","osto","osot"]},"75":{"input":[1,2,4,7],"tlp":["atso",3515],"trp":["osta",6277],"tlw":["sota",171],"trw":["ostaa",147],"lp":["atso","asto","gas","sota","atos","tsoa","sato","stoa","gast","sof","aggs","asot"],"rp":["osta","oast","otsa","osat","osof","owc"]},"76":{"input":[3,4,7],"tlp":["ro",11439],"trp":["or",16598],"tlw":["eero",648],"lp":["ro","ero","rto","tor","erto","ge","eto","rot","rg","erg","rro","erro","etto"],"rp":["or","ote","ort","ore","oet","oett","otte"]},"77":{"input":[1,3,4,7],"tlp":["rag",1424],"trp":["ora",1253],"tlw":["erottaa",195],"lp":["rag","aro","rtoa","rof","atro","rota","etoa","rofe","gra","aroo","roa","eroa","for"],"rp":["ora","oraa","orta","ofe","oeta","orea","otar"]},"78":{"input":[2,3,4,7],"tlp":["dot",4568],"trp":["odot",2046],"tlw":["god",157],"lp":["dot","dott","tod","tode","dost","ros","stor","sor","doto","cor","cort","roc","serg","ssor","tsoe","tros","ross"],"rp":["odot","oste","ors"]},"79":{"input":[1,2,3,4,7],"tlw":["grace",80],"trw":["odottaa",481],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",111283],"trw":["on",43019],"lp":[],"rp":["on","un","uu","uo","nu","no","ou","uon","nun","unn","onn","uun","unu","nnu","nuo","oon","nno","non","nou","onu"]},"81":{"input":[1,5,7],"tlp":["au",31984],"trp":["ua",18997],"lp":["au","ano","anu","aun","annu","aanu","aua","anoa","anon","auan"],"rp":["ua","nua","noa","ona","una","nau","uan","uona","onaa","unna"]},"82":{"input":[2,5,7],"tlp":["su",33737],"trp":["jo",99696],"tlw":["sun",387],"trw":["jos",9131],"lp":["su","suu","suo"],"rp":["jo","us","jos","ju","jon","oj","uus","jou","juu","uos","joss","ous","uns","nous","nus","ons","uss"]},"83":{"input":[1,2,5,7],"tlp":["sano",17998],"trp":["oja",7593],"tlw":["sanoa",1500],"trw":["jossa",2870],"lp":["sano","aus","asu","ausu","ajo","anoj","aju","sua"],"rp":["oja","noas","onsa","ussa","uja","noja","unsa","ojan","osan","uas","uoja","ojaa"]},"84":{"input":[3,5,7],"tlp":["eu",8909],"trp":["yo",14437],"tlw":["eno",84],"trw":["yon",465],"lp":["eu","enu","eno","ennu"],"rp":["yo","one","onne","unne","oy","ue","uone","yon","onee","une","oen","neu","unee","onen","noe","noen"]},"85":{"input":[1,3,5,7],"tlp":["que",622],"trp":["yona",396],"trw":["yona",396],"lp":["que","anoe","aune","aue","enoa","euna","xon","aneu","aeu"],"rp":["yona","nox","oxon","-na","-nay","nque","naeu","unay"]},"86":{"input":[2,3,5,7],"tlp":["seu",5113],"trp":["ud",9289],"tlw":["syo",106],"trw":["uuden",713],"lp":["seu","don","du","suud","syo"],"rp":["ud","ude","uud","uude","yos","use","uden","uod","oje","ojen","udes","uode","oyd","ues","oden"]},"87":{"input":[1,2,3,5,7],"tlw":["sanoen",554],"trw":["juoda",134],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",97385],"trp":["ut",111271],"tlw":["tuo",4127],"trw":["outo",170],"lp":["tu","tun","tuo","ttu","ton","tunt","tuu"],"rp":["ut","utt","nut","uut","ng","unt","uot","unut","nnut","nto","uutt","utu","ont"]},"89":{"input":[1,4,5,7],"tlp":["anut",9016],"trp":["utta",36184],"tlw":["tuota",1414],"trw":["uutta",628],"lp":["anut","tanu","aut","tua","atu","autt","anto","attu","ttua","anot","tau","agn","ang"],"rp":["utta","uta","uuta","nga","onta","uota","unta"]},"90":{"input":[2,4,5,7],"tlp":["stu",9987],"trp":["jot",16587],"tlw":["totuus",204],"trw":["joutunut",411],"lp":["stu","tus","tuns","tuos","suut","toj","tust","stun","tsu","stus","sut"],"rp":["jot","ust","nust","jost","jout","nost","jott","uost","uots"]},"91":{"input":[1,2,4,5,7],"tlw":["saanut",2403],"trw":["jota",3761],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ru",10641],"trp":["ur",27188],"tlw":["tytto",1225],"trw":["nuoren",497],"lp":["ru","eur","ettu","tyo","rou","ruu","tur","eut"],"rp":["ur","uur","uor","ure","uure","ute","nuor","uten","unte","yot","uute","ytto"]},"93":{"input":[1,3,4,5,7],"tlw":["tyota",814],"trw":["yota",359],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["suuren",1116],"trw":["joten",283],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["suurta",798],"trw":["uudestaan",554],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ll",180531],"trw":["oli",55295],"lp":[],"rp":["ll","ol","li","oi","oli","il","ill","lo","oll","lli","loi","llo","lloi","illo","lii","io","olli","ilo","oil","oill"]},"97":{"input":[1,6,7],"tlp":["al",103204],"trp":["la",161361],"tlw":["alla",1156],"trw":["olla",4699],"lp":["al","all","alla","ala","aal","aall","ali","alli","alo","ail","alai"],"rp":["la","lla","illa","lai","olla","laa","ila","llai","llaa"]},"98":{"input":[2,6,7],"tlp":["sil",23278],"trp":["ko",79476],"tlw":["soi",379],"trw":["olisi",9034],"lp":["sil","sill"],"rp":["ko","ok","lis","ois","lk","lisi","olis","koi","oik","llis","osk","oko","kok","kos","koko","iko","oisi","lko"]},"99":{"input":[1,2,6,7],"tlp":["alk",11320],"trp":["oka",22378],"tlw":["silla",7800],"trw":["koska",1773],"lp":["alk","sal","alko","alka","alas","aiko","ako","sala","sall"],"rp":["oka","lais","las","kal","lka","oska","kall","lak","oika","lkaa","laki"]},"100":{"input":[3,6,7],"tlp":["el",107523],"trp":["le",115183],"tlw":["eli",822],"trw":["ole",10027],"lp":["el","ell","elle","eli","ele","eil","eill","elli"],"rp":["le","lle","ole","iel","lee","ille","llee","iell","olle","iele","lei","lel"]},"101":{"input":[1,3,6,7],"tlp":["ella",24479],"trp":["iela",9775],"tlw":["elaa",782],"trw":["lea",62],"lp":["ella","ela","alle","ale","eal","elaa","eall","elia","aile","elai","alee","alel","a-al","aale","alea","elal"],"rp":["iela","lea","-al","lae"]},"102":{"input":[2,3,6,7],"tlp":["sel",13503],"trp":["oise",7642],"tlw":["eiko",1404],"trw":["kello",600],"lp":["sel","sell","siel","del","dell","elk","eiso","seli","skel"],"rp":["oise","lke","oike","lise","les","kel","lkee","kell","okse","isel","oid"]},"103":{"input":[1,2,3,6,7],"tlw":["siella",4520],"trw":["keskella",829],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",29749],"trp":["lt",22549],"tlw":["voi",5384],"trw":["otti",1283],"lp":["vo","toi","voi","til","toiv","gi","voit"],"rp":["lt","oit","ov","liv","oliv","oitt","oiv","lit","lv","ilt","otti","oti","ito"]},"105":{"input":[1,4,6,7],"tlp":["val",18640],"trp":["lta",17662],"tlw":["taalla",3001],"trw":["olivat",8509],"lp":["val","tal","alt","vall","alta","vali","taal","talo","aval","tila","tall","valt"],"rp":["lta","liva","ova","ovat","oita","oiva","ilta","lat"]},"106":{"input":[2,4,6,7],"tlp":["tois",11857],"trp":["otk",7732],"tlw":["voisi",1258],"trw":["kiitos",454],"lp":["tois","tko","svo","vois","tosi","tok","soit","vos","tsoi","tkoi","svoi","stoi"],"rp":["otk","oist","list","kot","kov","isto","koti","osti"]},"107":{"input":[1,2,4,6,7],"tlw":["saattoi",861],"trw":["katsoi",951],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["tel",10931],"trp":["lev",8000],"tlw":["teille",1239],"trw":["olet",1963],"lp":["tel","viel","elt","vel","teli","tell","ttel","ril","rill","evo","elv"],"rp":["lev","let","ori","olet","olev","ielt","lett","ove","leet"]},"109":{"input":[1,3,4,6,7],"tlw":["viela",8600],"trw":["oleva",577],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["toiset",990],"trw":["kertoi",658],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["sielta",1053],"trw":["katseli",846],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ui",66193],"trw":["olin",2657],"lp":[],"rp":["ui","ul","lu","uin","inu","oin","hu","oh","ull","llu","uh","uol","noi","uul","lin","ollu","loin","uli","huo","luo"]},"113":{"input":[1,5,6,7],"tlp":["anoi",9266],"trp":["lah",8966],"tlw":["ainoa",772],"trw":["liian",1614],"lp":["anoi","aino","auh","alan","aul","auni","alu"],"rp":["lah","ulla","lan","inua","laan","hal","inoa","lain","lau","uha","nal","hall","ula"]},"114":{"input":[2,5,6,7],"tlp":["sinu",6349],"trp":["ku",115005],"tlw":["silloin",5497],"trw":["kuin",22585],"lp":["sinu"],"rp":["ku","kui","kuin","kun","uk","jok","kuu","onk","lj","joi","nku","kuul","koh","uks","jonk","usk","nkui","kul","usi"]},"115":{"input":[1,2,5,6,7],"tlw":["sanoi",7087],"trw":["joka",18978],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elu",3144],"trp":["len",16714],"tlw":["eilen",316],"trw":["olen",5653],"lp":["elu","elen"],"rp":["len","yl","nel","ule","nell","leen","olen","uole","ulle","yll","hel","oine","line","ulee","llen","uule","yli","ly"]},"117":{"input":[1,3,5,6,7],"tlw":["aanella",765],"trw":["hanelle",4619],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["ennenkuin",1410],"trw":["oikein",2049],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["sellainen",739],"trw":["kylla",3839],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["tul",21501],"trp":["lut",16706],"tlw":["tuli",4747],"trw":["ollut",10662],"lp":["tul","tui","vu","tuli","vuo","voin","tull","toin"],"rp":["lut","llut","uv","oht","uit","inut","hto","ing","ult","htu","itu","utti"]},"121":{"input":[1,4,5,6,7],"tlw":["tulla",1527],"trw":["lahti",967],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["tunsi",1344],"trw":["istui",1253],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["ainoastaan",2528],"trw":["jotka",7436],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["tulee",3128],"trw":["nuori",1213],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["rouva",1878],"trw":["olevan",1792],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["suuri",2189],"trw":["kuitenkin",3603],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["tahdon",933],"trw":["kuitenkaan",984],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",8308],"trw":["p",1108],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",22497],"trp":["pa",77545],"trw":["paa",544],"lp":["ap","apa","app","apaa","aap","appa","aapa"],"rp":["pa","paa","pap","ppa","papp","ppaa","paaa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",2110],"trp":["ps",4292],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["aps",4165],"trp":["paas",5700],"trw":["paassa",773],"lp":["aps","spa","saap","apas","asp","aspa","sap","saps","apsa"],"rp":["paas","pas","ppas","psa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",2526],"trp":["pe",16376],"trw":["'",576],"lp":["ep","epp","e'","eep"],"rp":["pe","'e","pee","ppe"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["epa",1849],"trp":["pea",2103],"tlw":["aape",205],"lp":["epa","ape","aape","apea","eppa","appe","epaa"],"rp":["pea","'a","pape","pae","peaa","paae"]},"134":{"input":[2,3,8],"tlp":["s'",618],"trp":["pse",2270],"lp":["s'","sep","esp","sepp","d'","spe","ss'","s'e","es'"],"rp":["pse","pes","psee","ped","pede","pses","pees"]},"135":{"input":[1,2,3,8],"tlp":["apse",2143],"trp":["peas",737],"tlw":["sepa",189],"trw":["paase",202],"lp":["apse","espa","sepa","epas","d'a","d'as"],"rp":["peas","pesa","'as"]},"136":{"input":[4,8],"tlp":["tp",203],"trp":["pt",207],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",6856],"trp":["paat",3775],"tlw":["tapa",257],"trw":["paata",312],"lp":["tap","tapa","tapp","apt","taap","tpa","apat"],"rp":["paat","pat"]},"138":{"input":[2,4,8],"lp":[],"rp":[]},"139":{"input":[1,2,4,8],"tlp":["stap",241],"trp":["past",383],"trw":["paasta",1393],"lp":["stap","spat"],"rp":["past"]},"140":{"input":[3,4,8],"tlp":["t'",2289],"trp":["per",3933],"tlw":["ett'",217],"lp":["t'","tt'","ett'","t'e","tt'e","rp","rpe","rpee","r'","rr'","rep","err'"],"rp":["per","pet","pett","pr","pte","ptee","pere","pre"]},"141":{"input":[1,3,4,8],"tlp":["arp",756],"trp":["par",8411],"trw":["paeta",156],"lp":["arp","tarp","arpe","aper","t'a","rap","rapa","apte","epat","arr'","rapp","fe'"],"rp":["par","pera","pare","para","paet","pate","part","peat"]},"142":{"input":[2,3,4,8],"tlp":["spr",153],"trp":["pset",690],"lp":["spr","spre","tsep","st'"],"rp":["pset"]},"143":{"input":[1,2,3,4,8],"tlw":["d'astarac",81],"trw":["perasta",769],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",28094],"trw":["m",905],"lp":[],"rp":["mm","mp","np","nm","mpp"]},"145":{"input":[1,5,8],"tlp":["am",46002],"trp":["ma",123834],"trw":["nama",1502],"lp":["am","ama","amaa","aman","aam","amm","aama","amp"],"rp":["ma","maa","man","maan","mma","pan","mpa","mman","npa","paan","nam","nama"]},"146":{"input":[2,5,8],"tlp":["sm",505],"lp":["sm"],"rp":[]},"147":{"input":[1,2,5,8],"tlp":["sam",8343],"trp":["mas",10187],"tlw":["samassa",1358],"trw":["paansa",590],"lp":["sam","sama","amas","span","saam","samm","ssam","sma","sanm","asm"],"rp":["mas","mass","mans","maas","mmas","panj","maj","pans","mpas","jam"]},"148":{"input":[3,5,8],"tlp":["em",30930],"trp":["me",55008],"tlw":["emme",1059],"trw":["me",4210],"lp":["em","emm","emp","emme","enem"],"rp":["me","men","my","mme","ym","py","nem","mene","menn","ymm","nemm","ymp","ymy","pyy","mee"]},"149":{"input":[1,3,5,8],"tlp":["ema",9490],"trp":["ympa",2574],"tlw":["enemman",2199],"trw":["menna",1245],"lp":["ema","emma","emaa","ame","amme","eman","empa","amen","enpa","eam","eamm","eamp"],"rp":["ympa","ymma","mea","pane","yma","nema","ymaa","mpea"]},"150":{"input":[2,3,5,8],"tlp":["sem",3594],"trp":["mes",2527],"tlw":["esm",37],"trw":["pysyy",153],"lp":["sem","semm","sym","symy","spen","dem","demm"],"rp":["mes","pys","ysym","psen","pysy","mess","mens","pyys","mys","ymys","pyyd","meyd","pend"]},"151":{"input":[1,2,3,5,8],"tlw":["sydamensa",387],"trw":["pyydan",244],"lp":[],"rp":[]},"152":{"input":[4,5,8],"trp":["mb",336],"lp":[],"rp":["mb","mmb"]},"153":{"input":[1,4,5,8],"tlp":["tam",18925],"trp":["mat",13373],"tlw":["tama",6514],"trw":["maata",654],"lp":["tam","tama","amat","ttam","tamm","ammb","atam","taam","tamp","amb"],"rp":["mat","matt","mmat","maat","mant","pant","mata","ntam","ntap"],"special":"numsym"},"154":{"input":[2,4,5,8],"lp":[],"rp":[]},"155":{"input":[1,2,4,5,8],"tlw":["samat",179],"trw":["maasta",321],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",5379],"trp":["mer",3161],"tlw":["ett'en",165],"trw":["mr",635],"lp":["rm","rem","tem","remp","remm","temm","rme","ttem","temp"],"rp":["mer","met","mr","pent","ment","mere","pyyt","ntem","pyr","myr","metr"]},"157":{"input":[1,3,4,5,8],"tlw":["emanta",515],"trw":["ymmarra",345],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"trw":["mrs",279],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["armas",161],"trw":["paassyt",507],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",36935],"lp":[],"rp":["pi","ip","ppi","pii","iip","ipp","ipi","iipp","iipi","piip","ipii","ppii"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",2247],"trp":["pai",17547],"trw":["pappi",810],"lp":["api","appi","apai","aip","aipa","aapi","aipp"],"rp":["pai","pia","ipa","papi","ppia","ipaa","ippa","piaa"]},"162":{"input":[2,6,8],"tlp":["sip",134],"trp":["pik",1832],"lp":["sip","siip"],"rp":["pik","psi","pis","pikk","isp","piis","iisp","pisi","piki","kip","ksip","kkip","kipi","piik","psis","piks","isip","kiip"]},"163":{"input":[1,2,6,8],"tlp":["apsi",1759],"trp":["paik",2876],"tlw":["saapi",132],"trw":["paasi",542],"lp":["apsi","spai","apis","sipa"],"rp":["paik","pak","kap","pasi","ispa","kapa","pais","kapp","paak","pakk","psia","paks","kaip","kkap","ipas","pias"]},"164":{"input":[3,6,8],"tlp":["eip",817],"trp":["pie",5244],"lp":["eip","epi","eppi","eipp","e'i","eepi"],"rp":["pie","'ei","pei","ipe","'i","iep","ppie","iepp","iepi","iipe","ipie"]},"165":{"input":[1,3,6,8],"tlp":["epai",1133],"trp":["'ai",235],"tlw":["eipa",378],"lp":["epai","eipa","epia","apei"],"rp":["'ai","ipea"]},"166":{"input":[2,3,6,8],"tlp":["siep",69],"trp":["pid",1813],"trw":["kiipesi",44],"lp":["siep"],"rp":["pid","pesi","pide","k'","peek","kk'","ikk'","pek","pike","pekk","kipe","pidi","is'","ksep","k'e","kk'e","k'ei","ipid","iss'"]},"167":{"input":[1,2,3,6,8],"tlw":["sieppasi",69],"trw":["pida",405],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["viip",485],"trp":["pit",11493],"trw":["piti",1713],"lp":["viip"],"rp":["pit","piti","piv","ipit","ppiv","pitt","ipiv"]},"169":{"input":[1,4,6,8],"tlp":["vap",1883],"trp":["paiv",6732],"tlw":["vapaa",269],"trw":["pitaa",1916],"lp":["vap","vapa","vaip","vapi","apit","taip","tapi"],"rp":["paiv","pita","pait","itap","piva","paav"]},"170":{"input":[2,4,6,8],"trp":["pitk",4224],"trw":["pisti",361],"lp":[],"rp":["pitk","pist"]},"171":{"input":[1,2,4,6,8],"tlw":["sitapaitsi",428],"trw":["pitaisi",756],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["t'ei",979],"trp":["peri",1054],"tlw":["ett'ei",867],"trw":["peitti",175],"lp":["t'ei","riip","reip","repi","viep","t'i","rip"],"rp":["peri","peit","piet","pite","piir","pir","it'","pier","pri","pirt","'eiv","iit'","irip"]},"173":{"input":[1,3,4,6,8],"tlw":["ett'eivat",74],"trw":["pari",989],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["sit'",100],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["tarpeeksi",310],"trw":["parka",244],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",120870],"trw":["mihin",694],"lp":[],"rp":["mi","min","im","hm","ihm","mmi","hmi","ihmi","mmin","imm","imi","nim","iim","mpi","mii","nimi","miin","pin","pim","hmin"]},"177":{"input":[1,5,6,8],"tlp":["aim",2568],"trp":["mina",17633],"trw":["mina",16504],"lp":["aim","ami","apah","amia"],"rp":["mina","mai","ima","pain","pah","mia","main","mah","maai","imma","pian","paha","ham","imaa","maah","imai"]},"178":{"input":[2,5,6,8],"tlp":["sim",3768],"trp":["mis",12062],"trw":["miksi",1344],"lp":["sim","simm","smi"],"rp":["mis","mik","hmis","miss","mink","nsim","misi","miks","imis","kim","isim","jim","mpik","ism","mk","kimp","ismi"]},"179":{"input":[1,2,5,6,8],"trw":["mika",3480],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emmi",3536],"trp":["mie",19226],"tlw":["ennemmin",163],"trw":["meni",1459],"lp":["emmi","empi","emi"],"rp":["mie","mei","ime","mieh","pien","iime","meni","hem","imei","imme","hemm","nime","hym","mein","hymy","hme","mine"]},"181":{"input":[1,3,5,6,8],"trw":["miehia",566],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["esim",379],"trw":["mies",3388],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["ensimainen",403],"trw":["meidan",2780],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["viim",3133],"trp":["mit",21696],"trw":["nimitti",52],"lp":["viim","tim","ttim","vim","vimm","timm","tinp"],"rp":["mit","mitt","imit","mint","htim","miit","mmit","npit","pint","miv","imiv"]},"185":{"input":[1,4,5,6,8],"trw":["mita",10059],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"trw":["pitkin",1130],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"trw":["mista",982],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["viimein",718],"trw":["miten",2370],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["eteenpain",770],"trw":["meita",1361],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["sittemmin",355],"trw":["ihmiset",1045],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["varmaankin",428],"trw":["miesta",877],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",17061],"lp":[],"rp":["po","op","opp","ppo","oop","oopp","poo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",392],"trp":["opa",760],"lp":["apo","appo","aapo"],"rp":["opa","poa","ppoa","oopa","opaa"]},"194":{"input":[2,7,8],"tlp":["sop",886],"trp":["pos",648],"lp":["sop"],"rp":["pos","osp"]},"195":{"input":[1,2,7,8],"trp":["ospa",434],"lp":[],"rp":["ospa"]},"196":{"input":[3,7,8],"tlp":["epo",141],"trp":["ope",2399],"lp":["epo","epoo"],"rp":["ope","'o","oppe"]},"197":{"input":[1,3,7,8],"tlp":["epoa",105],"trp":["opea",620],"lp":["epoa"],"rp":["opea"]},"198":{"input":[2,3,7,8],"tlp":["s'o",328],"trp":["osep",102],"lp":["s'o"],"rp":["osep"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["gtp",153],"trp":["pot",295],"lp":["gtp","tpo","gtpo","top"],"rp":["pot","pott"]},"201":{"input":[1,4,7,8],"tlp":["apot",165],"trp":["pato",255],"lp":["apot","tapo","topa"],"rp":["pato","pota","otap"]},"202":{"input":[2,4,7,8],"trp":["post",449],"lp":[],"rp":["post"]},"203":{"input":[1,2,4,7,8],"trw":["paatos",82],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["tpor",153],"trp":["opet",1620],"trw":["peto",55],"lp":["tpor","tope","roop"],"rp":["opet","por","port","pro","poro","peto"]},"205":{"input":[1,3,4,7,8],"trw":["opettaa",197],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"trw":["petosta",39],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mu",58870],"trw":["muu",588],"lp":[],"rp":["mu","pu","om","mo","muu","um","uom","puo","up","mon","pun","puu","upu","upun","opu","umm","ppu","nom","uum","mmo"]},"209":{"input":[1,5,7,8],"tlp":["aup",2791],"trp":["oma",16400],"tlw":["apua",470],"trw":["oman",1021],"lp":["aup","apu","aupu","amo","amu","apau","aamu","aapu","anom"],"rp":["oma","uma","uoma","omaa","oman","pau","noma","upa","umaa","umma","panu"]},"210":{"input":[2,5,7,8],"tlp":["suom",4018],"trp":["jum",4241],"tlw":["suom",417],"lp":["suom","som","sum"],"rp":["jum","mus","poj","jop","mons","muus","pus","moj","opus","moos","josp","puss","omus","mos","npoj","psu","psuu"]},"211":{"input":[1,2,5,7,8],"tlw":["sanomaan",203],"trw":["pojan",607],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emmo",1235],"trp":["myo",6382],"tlw":["emo",86],"trw":["monen",273],"lp":["emmo","emu"],"rp":["myo","ome","uome","omen","poy","mone","upe","nope","pue","myon","ume","uem","yom","meno","pyo","omme","uemm","pune"]},"213":{"input":[1,3,5,7,8],"trw":["myonnan",82],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["suomen",1322],"trw":["myos",1706],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["suomessa",236],"trw":["poydan",440],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",3714],"trp":["mut",29213],"tlw":["tom",275],"trw":["muut",992],"lp":["tom","ttom","tum","tuom","tomu","bom","gbom","tup","ttum"],"rp":["mut","mutt","muut","pung","mont","puut","muot","put","mbo","mmbo","puto"]},"217":{"input":[1,4,5,7,8],"trw":["mutta",28564],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"trw":["muutos",112],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["tuomas",244],"trw":["pojat",604],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["bergbom",465],"trw":["muuten",1081],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["tuntemaan",300],"trw":["poytaan",161],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["sprengtport",116],"trw":["prudence",171],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["etupaassa",239],"trw":["opettaja",379],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["poi",8488],"trw":["oppi",180],"lp":[],"rp":["poi","lop","lp","oppi","opi","pil","pol","lpo","lopp","ppil","lip","iop","liop","ilp","lpp","lppo","ippo","ppol","poli","pio"]},"225":{"input":[1,6,7,8],"tlp":["alp",476],"trp":["pal",8702],"trw":["lapi",904],"lp":["alp","alap"],"rp":["pal","lap","pala","paal","lapi","pail","pila","ppal","lapa","lipa","lpa","palo","lpaa","llap","lapp","iopa","opai","ilpa"]},"226":{"input":[2,6,7,8],"tlp":["sopi",829],"trp":["poik",4206],"tlw":["sopii",210],"trw":["pois",3248],"lp":["sopi"],"rp":["poik","pois","lpos","kop","lkop","opis","polk","posk","losp","psil","pilk","oisp","kilp","pios"]},"227":{"input":[1,2,6,7,8],"trw":["poika",1648],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",1235],"trp":["pel",3429],"tlw":["ell'ei",70],"trw":["piilee",68],"lp":["elp","elpo","elpp","elip","ell'"],"rp":["pel","lpe","l'","lep","ll'","pelo","peli","leip","ppel","lope","peel","pell","'ol","'oli","ill'"]},"229":{"input":[1,3,6,7,8],"tlw":["epailla",102],"trw":["paalle",747],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["s'oli",178],"trw":["pelko",234],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["sill'aikaa",122],"trw":["pelkaa",283],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["voip",114],"trp":["pilv",391],"tlw":["voipi",114],"trw":["ippolit",287],"lp":["voip","vilp","tiop"],"rp":["pilv","opiv","polv","polt","lpit","lpot","pito"]},"233":{"input":[1,4,6,7,8],"tlw":["apotti",165],"trw":["palata",236],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["potki",36],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["sopiva",101],"trw":["palasivat",135],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["viel'",99],"trw":["perille",288],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["vielapa",360],"trw":["portaita",183],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["tok'",38],"trw":["posket",92],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["tarpeellista",75],"trw":["lapset",690],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["lm",22428],"trw":["minun",5382],"lp":[],"rp":["lm","minu","ilm","puh","puol","mui","oim","mil","puhu","huom","lmi","omi","mill","moi","olm","ilmi","imo","pui","mol","moin"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["aamulla",431],"trw":["minua",4742],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["silmin",342],"trw":["pikku",1155],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["samalla",1927],"trw":["paljon",3194],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["minulle",3318],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["elaman",1008],"trw":["meilla",1051],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["semmoinen",325],"trw":["myoskin",2227],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["suomalaisen",431],"trw":["kallem",1117],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["toimi",174],"trw":["minut",1928],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["tapahtunut",602],"trw":["muutamia",1006],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["sopinut",80],"trw":["muutkin",289],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["silmat",1184],"trw":["minusta",1102],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["toimeen",479],"trw":["miltei",281],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["epailematta",384],"trw":["molemmat",921],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["rupesi",652],"trw":["helposti",449],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["tapauksessa",366],"trw":["puolesta",598],"lp":[],"rp":[]}} \ No newline at end of file
diff --git a/keyboards/gboards/dicts/aset/_generator/src/fr-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/fr-keymap.json
new file mode 100644
index 0000000000..9613ba92b6
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/_generator/src/fr-keymap.json
@@ -0,0 +1 @@
+{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlw":["a",186860],"lp":[],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",130131],"tlw":["s",189],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",154012],"tlw":["sa",35710],"lp":["as","sa","ass","ssa","assa","wa","asa","sas","ssas","sass","aw","was","sw"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",43082],"tlw":["e",648],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",45510],"tlw":["x",164],"lp":["ea","ex","xe","xa","exa","exe","ae","ax","xee"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["es",647732],"tlw":["de",329573],"lp":["es","de","se","des","sse","ses","ess","ed","esse","ds","ese","ees","dess","see","dee","ede","sses","eds","ssee","dese"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",113149],"tlw":["sexe",325],"lp":["da","asse","ad","essa","ade","ada","sea","dea","eda","ase","we","deda","das","sex","ew","ades","esa","ssea","adea","dex"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",56643],"tlw":["t",179],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",168893],"tlw":["ta",2612],"lp":["ta","fa","at","ff","att","af","tat","tta","aff","ffa","affa","ata","atta","fat","tf","ttf","ft","fata","tata"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",141218],"tlw":["c",294],"lp":["st","ts","ct","sc","cc","cs","tc","cts","sts"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",78160],"tlw":["ca",22002],"lp":["ca","ac","sta","fac","act","acc","cas","sac","tac","cat","tas","sat","ats","ast","aca","sca","cac","cca","fs","sf"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["re",583533],"tlw":["et",174550],"lp":["re","et","er","te","tr","tre","rt","ere","rr","ete","ter","tte","etr","ett","rte","ret","etre","ette","err","rre"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",199557],"tlw":["frere",1316],"lp":["ar","ra","eta","fe","tra","art","fr","arr","era","ef","rta","fer","are","atte","ara","ate","rra","fra","ref","rea"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ce",214983],"tlw":["ce",47447],"lp":["ce","ec","est","res","rs","rd","dr","ser","rc","tes","cr","ers","dre","ste","ces","tres","cet","der","cett","rec"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["ard",29774],"tlw":["tard",3213],"lp":["ard","ace","arc","car","ras","sera","arde","rac","rda","arda","dra","arce","cra","tard","face","esta","rsa","xc","exc","acte"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",57349],"trw":["n",242],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",332256],"trp":["na",60823],"tlw":["anna",1043],"trw":["na",258],"lp":["an","ann","aq","anq","anna","ana","anan"],"rp":["na","nna","nan","nq","nnan","nann","nana"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",130],"trp":["ns",191473],"trw":["j",225],"lp":["sn"],"rp":["ns","nj"]},"19":{"input":[1,2,5],"tlp":["ans",94605],"trp":["ja",25027],"tlw":["sans",15580],"trw":["jan",70],"lp":["ans","san","sq","sans","ssan","aj","asq","ansa","wn","wan"],"rp":["ja","nsa","jan","nsan","nas","jas","nja","nw","nwa"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",547626],"trp":["ne",292024],"tlw":["en",90753],"trw":["ne",63131],"lp":["en","ene","enn","enne","ey","enny","eye"],"rp":["ne","nne","ye","nee","ny","nnee","nny","nen","yen","nnen","yn","yne","ney"]},"21":{"input":[1,3,5],"tlp":["ena",18722],"trp":["ya",10697],"tlw":["annee",430],"trw":["nanny",98],"lp":["ena","ay","enan","anne","ane","eq","ean","aye","aya","ayan","any","xan","anny","enq","exan"],"rp":["ya","yan","nea","nnea","nean"]},"22":{"input":[2,3,5],"tlp":["end",46705],"trp":["nd",127339],"tlw":["sens",2477],"trw":["je",94389],"lp":["end","ens","sen","ense","ej","den","dej","esen","sens","ends","ende"],"rp":["nd","je","nde","nse","nes","nds","ys","nees","ndes"]},"23":{"input":[1,2,3,5],"tlp":["dan",83378],"trp":["nda",18852],"tlw":["dans",69810],"trw":["jean",744],"lp":["dan","dans","and","ande","enda","anda","eja","deja","esq","say","ssay","ensa","ands","ays","saye","saya"],"rp":["nda","ndan","jea","jean"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",863],"trp":["nt",395069],"tlw":["b",429],"lp":["bb","bt","tn"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ant",99116],"trp":["nf",14856],"tlw":["tant",2815],"lp":["ant","ab","ba","tan","tant","tab","fan","bat","fant","ban","anta","batt","aba","bab"],"rp":["nf","nta","nant","nfa","nfan","nat"]},"26":{"input":[2,4,5],"tlp":["bs",4870],"trp":["nc",84806],"lp":["bs","bj","bsc","bst","sb"],"rp":["nc","nts","nst","nsc","ncs","nct"]},"27":{"input":[1,2,4,5],"tlp":["anc",29956],"trp":["nca",8089],"tlw":["bas",1760],"lp":["anc","sant","stan","bas","ants","can","anca","tanc","sanc","abs","sab","cab","bass","ancs","cq","acq"],"rp":["nca","nsta","jac","ntac"]},"28":{"input":[3,4,5],"tlp":["ent",205997],"trp":["nte",52433],"tlw":["entre",6016],"lp":["ent","ten","ren","be","br","rn","ente","entr","bre","rent","ern","rne","tent","tten"],"rp":["nte","ntr","ntre","ner","nten","nter"]},"29":{"input":[1,3,4,5],"tlp":["ran",32995],"trp":["ntra",4859],"tlw":["enfant",1479],"lp":["ran","rq","enf","tena","ante","bra","rna","bea","enta","rant","tran","enfa","rtan","fran","arq","bar","arb","fen","rena"],"rp":["ntra"]},"30":{"input":[2,3,4,5],"tlp":["enc",33290],"trp":["nce",37449],"tlw":["cent",1511],"trw":["jeter",658],"lp":["enc","endr","tend","ence","rend","sent","cen","ents","cent","bes","dern","dent","scen","renc","deb"],"rp":["nce","ndr","ndre","jet","ncer"]},"31":{"input":[1,2,3,4,5],"tlw":["bras",4531],"trw":["jeta",1297],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",352],"trw":["ii",352],"lp":[],"rp":["ii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",540051],"trp":["ia",19364],"tlw":["ai",3119],"lp":["ai","za","zi","zai","az","zz","azi","zzi","aza","zza","ziz","aziz","ziza"],"rp":["ia","iz","iza","iai","izai","izz","izzi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",117702],"trp":["is",301576],"tlw":["si",24030],"trw":["k",204],"lp":["si","ssi","sis","ssis","sk","ski","sisk"],"rp":["is","iss","isi","ki","ik","issi","ks","isk","kk","isis","kis","iski","kiss"]},"35":{"input":[1,2,6],"tlp":["ais",132120],"trp":["isa",17988],"tlw":["sais",5940],"lp":["ais","sai","aiss","sais","ssai","assi","aisa","aisi","asi","wi","ak","sia","sias"],"rp":["isa","issa","isai","ka","ias","kw","iais"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",36481],"trp":["ie",241794],"lp":["ei"],"rp":["ie","iei","iee"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",35534],"trp":["ix",16144],"tlw":["aie",130],"lp":["ez","aie","xi","ze","exi","xie","eai","aix","axi","zie","eiz","eize","eze","eez","xai"],"rp":["ix","iez","ixe","ixa","ize"]},"38":{"input":[2,3,6],"tlp":["di",97853],"trp":["id",28086],"tlw":["dis",1668],"trw":["idee",1596],"lp":["di","dis","sie","die","essi","esi","sei","edi","ssie"],"rp":["id","ide","ise","isse","ke","ied","ies","idee","idi","ieds","ises"]},"39":{"input":[1,2,3,6],"tlp":["dai",9749],"trp":["ida",1007],"tlw":["assez",2893],"lp":["dai","sez","aise","ssez","aid","dix","saie","dia","aide","disa","adi","xis","exis","six","dez","edia","adie","daie"],"rp":["ida","idea"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",116014],"trp":["it",399129],"tlw":["vit",2136],"lp":["ti","vi","tit","vit","viv","tiv","tti","ttit","vivi","tivi","titi"],"rp":["it","iv","iti","ivi","itt","ivit","itiv","itti"]},"41":{"input":[1,4,6],"tlp":["ait",223936],"trp":["if",12313],"tlw":["avait",34178],"trw":["if",198],"lp":["ait","av","va","tai","vai","ava","avai","tait","vait","fai","fi","ati","fait","fit","ffi","avi"],"rp":["if","ita","iva","iff"]},"42":{"input":[2,4,6],"tlp":["ci",50221],"trp":["ic",35688],"tlw":["vis",479],"trw":["ici",5070],"lp":["ci","vis","sit","sti","cti","ck","visi","vic","cit","ssit","tis","tic","sci","cis"],"rp":["ic","ist","ici","its","isit","ict"]},"43":{"input":[1,2,4,6],"tlp":["sait",14527],"trp":["ica",3062],"tlw":["vais",3612],"lp":["sait","vais","sav","fais","visa","tais","fic","cai","sava","ffic","aci","sati","vas","fici","cia","acti","stai","ack"],"rp":["ica","ista"]},"44":{"input":[3,4,6],"tlp":["ve",170346],"trp":["ir",150486],"tlw":["vie",6638],"lp":["ve","ri","ev","ver","rie","vr","vie","rit","eve","rri","eti","rti","eri","tie"],"rp":["ir","ire","ier","ite","iere","ive"]},"45":{"input":[1,3,4,6],"tlp":["etai",66155],"tlw":["etait",29101],"lp":["etai","rai","ave","air","aire","rait","eva","fair","rav","taie","vra","arri","arti","vrai","ari","vaie","erai","vez","trai","trav"],"rp":[]},"46":{"input":[2,3,4,6],"tlp":["dit",34652],"trp":["ice",6888],"tlw":["dit",17108],"lp":["dit","vec","ris","dev","vers","dir","cie","dire","cri","eci","serv","esti","sir","rci","vid","rise"],"rp":["ice","iste","ites","iers"]},"47":{"input":[1,2,3,4,6],"tlw":["avec",32748],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",206097],"trw":["ni",4413],"lp":[],"rp":["in","ni","hi","ini","nni","hin","inn","hn","nh","inni","nin","hni","inin","ih","hnn"]},"49":{"input":[1,5,6],"tlp":["ain",53875],"trp":["ha",60789],"tlw":["ah",2082],"trw":["hanna",151],"lp":["ain","ani","ah","aha","zain"],"rp":["ha","nai","iq","han","nnai","ina","hai","ian","inq","haq","niq","hain","nz","inai","nia"]},"50":{"input":[2,5,6],"tlp":["sin",6536],"trp":["ins",29943],"tlw":["siskin",137],"lp":["sin","sh","ssin","sins","shi","sini"],"rp":["ins","nsi","his","insi","nis","ji","isin","kin","inis","nk","nsis","ish","ij","nnis"]},"51":{"input":[1,2,5,6],"tlp":["ains",11321],"trp":["nais",6028],"tlw":["ainsi",3447],"trw":["jai",619],"lp":["ains","siq","sha","shan","ash","sain","anis","win","asin"],"rp":["nais","isan","isq","has","nsai","kah","kaha","hais","hass","jai","hasa"]},"52":{"input":[3,5,6],"tlp":["ein",12287],"trp":["he",90853],"tlw":["eh",1812],"trw":["hein",876],"lp":["ein","eni","eine","eh"],"rp":["he","ien","ine","nie","ienn","hie","nnie","hee","hen","hien","inee","nei","hei","hein","hine","hy"]},"53":{"input":[1,3,5,6],"tlp":["aien",30150],"trp":["hez",5597],"tlw":["ayez",139],"trw":["nez",1504],"lp":["aien","aine","enai","anie","enez","ayai","enia","zy"],"rp":["hez","nez","yai","yez","naie","nze","inze","heq","hae","hany","ixan","iane"]},"54":{"input":[2,3,5,6],"tlp":["endi",4399],"trp":["ndi",15037],"tlw":["sein",422],"trw":["indiens",185],"lp":["endi","din","sine","ensi","sien","deh","dien"],"rp":["ndi","hes","ind","iens","ines","ndis","iden","indi","nsie","ky","nsei","hesi","nsid"]},"55":{"input":[1,2,3,5,6],"tlw":["whisky",263],"trw":["jadis",260],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",37344],"trp":["int",28711],"tlw":["vin",885],"lp":["bi","tin","th","vin","vint","bit","bin","thi"],"rp":["int","nti","ib","nv","nvi","ntin","nit","ntit","niv","inv","init","invi"]},"57":{"input":[1,4,5,6],"tlp":["van",25237],"trp":["nait",11496],"tlw":["avant",8624],"trw":["navait",354],"lp":["van","vant","avan","fin","tain","aint","tiq","abi","bai","fini","atin","abit"],"rp":["nait","nfi","ntai","nfin","hab","habi","hant","ivan"]},"58":{"input":[2,4,5,6],"tlp":["ch",136528],"trp":["nch",8814],"tlw":["chic",138],"trw":["instinct",141],"lp":["ch","chi","cin","sib","ssib","stin","chin","tch"],"rp":["nch","inc","inst","nci","hist","ich","nic","nsci","isib","inci","nist","nsti"]},"59":{"input":[1,2,4,5,6],"tlw":["cinq",2262],"trw":["instant",2350],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["ven",26666],"trp":["ient",38518],"tlw":["bien",22012],"trw":["hier",848],"lp":["ven","bie","bien","enti","rien","enir","vent","vien","rin","env","rni","even","veni","erni"],"rp":["ient","her","inte","nir","nier","hev"]},"61":{"input":[1,3,4,5,6],"tlw":["etaient",7356],"trw":["navire",568],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["dernier",2102],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["devant",6605],"trw":["jardin",804],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",3036],"trw":["o",368],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",1455],"trp":["oa",938],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",164552],"trp":["os",50157],"trw":["os",408],"lp":["so","sso"],"rp":["os","oss","oso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",820],"trp":["osa",3212],"lp":["wo","woo","asso","aso","aos","sao","wao","swo"],"rp":["osa","ow","owa","ossa","oas"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["e-",5380],"trp":["-e",12923],"trw":["-",5238],"lp":["e-","eo","ee-","e-o"],"rp":["-e","oe","-o"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",8193],"trp":["-a",862],"lp":["a-","x-","xo","exo","ea-","axo","a-a"],"rp":["-a","-a-","ox","oxe"]},"70":{"input":[2,3,7],"tlp":["do",52067],"trp":["ose",20090],"tlw":["dos",2170],"trw":["ose",204],"lp":["do","s-","eso","dos","es-","deso","soe","d-","esso","doss"],"rp":["ose","od","-d","-de","ode","oses","osse","-des","-s","ood"]},"71":{"input":[1,2,3,7],"tlp":["a-d",1260],"trp":["owe",807],"trw":["owe",223],"lp":["a-d","da-","ado","as-","a-de","wood","sa-","x-s","x-se","dexo","s-a","s-a-","saxo"],"rp":["owe","-a-d","-w","-we","oad","odw","oodw"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",128509],"trp":["ot",47901],"tlw":["tot",1188],"lp":["to","go","gt","tot","tto","gg","tog","gto","goo","got"],"rp":["ot","ott","og","oto","otto","otog"]},"73":{"input":[1,4,7],"tlp":["ag",49385],"trp":["of",7071],"trw":["ota",208],"lp":["ag","fo","ga","tag","gag","ffo","gat","aga","ato","tota","ago","afo","agg","atto","gato"],"rp":["of","off","ota","ofo","otta"]},"74":{"input":[2,4,7],"tlp":["co",202727],"trp":["oc",21912],"tlw":["scott",175],"lp":["co","cot","sto","cco","gts","soc","gs","cos","cost","cto","sco","coo","tos","coc"],"rp":["oc","occ","ots","ost","oct","otos"]},"75":{"input":[1,2,4,7],"tlp":["sag",9331],"trp":["oca",927],"tlw":["costas",502],"lp":["sag","aco","acco","faco","ssag","gas","sfo","agas","cag","cof","coff","fos","foss","gac","gats","gatc"],"rp":["oca","occa","osta","ocat"]},"76":{"input":[3,4,7],"tlp":["ro",122176],"trp":["or",127784],"tlw":["gorge",1040],"trw":["or",770],"lp":["ro","ge","t-","tro","gr","eg","reg","rg","t-e","ger","rge","eto"],"rp":["or","ort","orte","ore","otr","otre","ote","-t"]},"77":{"input":[1,3,4,7],"tlp":["age",30406],"trp":["orta",6654],"tlw":["fort",2164],"trw":["offert",256],"lp":["age","gar","ega","gra","egar","for","rega","arg","arge","a-t","a-t-","fort","fro","gea","rof","rag","tage","aro","rage"],"rp":["orta"]},"78":{"input":[2,3,4,7],"tlp":["cor",18700],"trp":["ors",18331],"tlw":["cote",5418],"trw":["orc",491],"lp":["cor","eco","cro","sor","core","sort","st-","est-","roc","t-c","t-ce","ges","st-c","dro","rso","erso"],"rp":["ors","ord","-c","-ce"]},"79":{"input":[1,2,3,4,7],"tlw":["regard",4785],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["ou",485081],"trw":["un",105377],"lp":[],"rp":["ou","on","un","no","nou","onn","nu","non","uo","nnu","onnu","nno","nnon","ono","oon","onon","uu","uun","uon","unn"]},"81":{"input":[1,5,7],"tlp":["qu",374405],"trp":["ua",32749],"tlw":["au",38456],"trw":["noua",61],"lp":["qu","au","qua","quan","quo","aqu","anqu","anno"],"rp":["ua","uan","onna","nqu","oq","oqu","oua","nua","uq","uqu","nqua","ona"]},"82":{"input":[2,5,7],"tlp":["su",105459],"trp":["us",202802],"tlw":["son",49965],"trw":["nous",27592],"lp":["su","son","sou","sonn","sous","ssu"],"rp":["us","ous","jo","ons","jou","nous","uss","ju","jus","uj","ujo","ujou","ouj","oujo"]},"83":{"input":[1,2,5,7],"tlp":["squ",20943],"trp":["usq",8393],"tlw":["sonna",267],"trw":["joanna",329],"lp":["squ","aus","auss","sau","ajo","ajou","auj","aujo","assu","asqu","squa"],"rp":["usq","usqu","jusq","ussa","onsa","usa","jau","jaun","joua"]},"84":{"input":[3,5,7],"tlp":["eu",220654],"trp":["ue",233945],"tlw":["eu",4099],"trw":["une",73318],"lp":["eu","enu","eun","eune","eno"],"rp":["ue","une","onne","oy","yeu","oue","oeu","oye","nue","neu","one","ueu","u-","n-","uy"]},"85":{"input":[1,3,5,7],"tlp":["que",190819],"trp":["ux",83482],"tlw":["que",98515],"trw":["yeux",10617],"lp":["que","eux","eau","aux","aque","eaux","equ","au-","eque","quen","eux-"],"rp":["ux","yeux","oya","nque","oque","oux","uque","ux-","noux"]},"86":{"input":[2,3,5,7],"tlp":["du",78771],"trp":["ond",27438],"tlw":["du",57769],"trw":["jeune",4462],"lp":["du","don","deu","seu","dou","donn","eus","euse","endu","essu"],"rp":["ond","ues","ud","use","onde","ndu","jeu","jeun","-j","-je"]},"87":{"input":[1,2,3,5,7],"tlw":["deux",15643],"trw":["judas",547],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tou",80480],"trp":["ut",149891],"tlw":["tout",29188],"trw":["ont",5688],"lp":["tou","tu","tout","bo","gn","gu","bou","bon","ton","bu"],"rp":["ut","out","ont","ng","ob","ong","ub","uto","ug","not"]},"89":{"input":[1,4,5,7],"tlp":["aut",41481],"trp":["uf",8214],"tlw":["fut",4720],"lp":["aut","ang","fu","fon","fau","agn","faut","fou","fut","auto","atu","quat","font"],"rp":["uf","uta","uff","uat","onta","ouf","ouff"]},"90":{"input":[2,4,5,7],"tlp":["con",57360],"trp":["uc",26771],"tlw":["sont",9987],"lp":["con","cou","cu","cont","sont","conn","tous","cons","touj","cun","bouc"],"rp":["uc","nco","onc","ouc","ust","just","ucu","ucun","uco"]},"91":{"input":[1,2,4,5,7],"tlw":["facon",2654],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["eur",78762],"trp":["ur",328352],"tlw":["toute",6285],"trw":["notre",4935],"lp":["eur","rou","ru","tour","eut","gen","trou","gne","eure","gue"],"rp":["ur","our","ure","ute","oute","utr","utre","nge","ontr","urn"]},"93":{"input":[1,3,4,5,7],"tlw":["autre",5877],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["sur",51346],"trw":["jour",4530],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["grand",4887],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["il",274962],"trw":["il",109781],"lp":[],"rp":["il","oi","ll","li","lo","io","ill","ol","loi","ili","oli","lli","oil","oll","llo","illi","olo","iol","ilo","lio"]},"97":{"input":[1,6,7],"tlp":["al",90167],"trp":["la",335135],"tlw":["alla",769],"trw":["la",216676],"lp":["al","all","alo","ail","aill","ali","alla","ala","allo","alai"],"rp":["la","lai","lla","llai","illa","ila","oila","ial","olla","ola"]},"98":{"input":[2,6,7],"tlp":["soi",15762],"trp":["ois",37730],"tlw":["sol",2016],"trw":["ils",17730],"lp":["soi","sio","sol","ssio","sil"],"rp":["ois","ls","ils","iso","lis","ossi","oisi","liss","osi","isio","los","isso","oiss","ok","ilis"]},"99":{"input":[1,2,6,7],"tlp":["aiso",9482],"trp":["lais",13196],"tlw":["siloa",232],"trw":["laissa",1173],"lp":["aiso","sal","sall","alis","salo","asio","ails","sali","sala","wil","wal","slow","will"],"rp":["lais","las","lass","lisa","low","osai","oisa"]},"100":{"input":[3,6,7],"tlp":["el",190433],"trp":["le",657856],"tlw":["elle",59054],"trw":["le",177879],"lp":["el","ell","elle","eil","ele","eill","elo","eli"],"rp":["le","lle","ille","lie","ile","ole","-i","-il","-el","-ell","i-","lei"]},"101":{"input":[1,3,6,7],"tlp":["ale",15620],"trp":["oix",8324],"tlw":["allez",1376],"trw":["lizzie",89],"lp":["ale","ela","alle","z-","ez-","alie","eal","eali","elai","ai-"],"rp":["oix","lez","-la","la-","laie","llez","lex","lea","iale","lez-"]},"102":{"input":[2,3,6,7],"tlp":["doi",7114],"trp":["les",154394],"tlw":["elles",3562],"trw":["les",123647],"lp":["doi","sel","sile","esoi","sole","del","dis-","els","dois","ssel","dol"],"rp":["les","lles","is-","oid","lise","oise","iles","ld","less"]},"103":{"input":[1,2,3,6,7],"tlw":["salle",2270],"trw":["laisse",2177],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",127497],"trp":["ig",30369],"tlw":["toi",4595],"trw":["lit",2373],"lp":["vo","voi","tio","gi","toi","gl","vot","vil","vol","vill","voit"],"rp":["ig","oit","lit","oig","liv","lt","lig","itio","lot"]},"105":{"input":[1,4,6,7],"tlp":["avo",15975],"trp":["lait",13889],"tlw":["voila",2492],"trw":["livia",632],"lp":["avo","foi","atio","avoi","fil","fl","tal","fill","agi","val","vail","tail","fal","fall","fla","gal"],"rp":["lait","lat","lag","iga"]},"106":{"input":[2,4,6,7],"tlp":["cl",21798],"trp":["lic",7092],"tlw":["soit",3898],"trw":["kotko",169],"lp":["cl","col","ctio","sig","cil","stio","soit","stoi","vois","coi","coll","cli","glis","vos"],"rp":["lic","isto","olic","igts","osit","loc"]},"107":{"input":[1,2,4,6,7],"tlw":["fois",9209],"trw":["lac",564],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["roi",25378],"trp":["oir",45550],"tlw":["votre",6708],"trw":["livre",1128],"lp":["roi","voir","rl","t-i","t-il","tel","rle","troi","roit","votr"],"rp":["oir","ler","lor","lev","it-","oire","let","it-i","lier","ller"]},"109":{"input":[1,3,4,6,7],"tlw":["voix",6714],"trw":["leva",2445],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["trois",5530],"trw":["levres",1891],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["alors",9986],"trw":["laisser",1893],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ui",198698],"trw":["lui",41038],"lp":[],"rp":["ui","lu","ul","ion","lui","ho","oin","lon","oul","uoi","uil","oui","hu","inu","noi","hon","uill","nui","lou","uni"]},"113":{"input":[1,5,6,7],"tlp":["qui",72449],"trp":["lan",19838],"tlw":["qui",60034],"trw":["hall",554],"lp":["qui","quoi","quil","aul"],"rp":["lan","iqu","lq","lqu","hau","ula","oula","ulai","liq","liqu","nal","uai","haqu","laq","laqu","niqu"]},"114":{"input":[2,5,6,7],"tlp":["sui",21452],"trp":["lus",40230],"tlw":["suis",11506],"trw":["john",694],"lp":["sui","suis","sion","soin"],"rp":["lus","uis","ussi","ison","hos","ions","oins","usi","onsi","uiss","uk","luk","lusi","lons","joi","nsui"]},"115":{"input":[1,2,5,6,7],"tlw":["aussi",11177],"trw":["ouais",603],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eul",11197],"trp":["leu",32420],"tlw":["euh",642],"trw":["lieu",1585],"lp":["eul","eule","elu","elui","eui","euil"],"rp":["leu","uel","ieu","ule","len","heu","oule","uell","lieu","lleu","ilen","nel","lein","ly"]},"117":{"input":[1,3,5,6,7],"tlw":["quelque",6947],"trw":["laquelle",1557],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["seul",3625],"trw":["luke",3101],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["quelques",6336],"trw":["la-dedans",355],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["vou",60021],"trp":["uv",57671],"tlw":["vu",3991],"trw":["nuit",3923],"lp":["vou","bl","tion","vu","voul","von","gin"],"rp":["uv","ouv","uit","ign","long","itu","ibl","nouv","ing","oint","lut","uiv","ubl"]},"121":{"input":[1,4,5,6,7],"tlw":["voulait",2213],"trw":["haut",2023],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["vous",46221],"trw":["longs",581],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["avons",2442],"trw":["lanca",1051],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["trouve",3189],"trw":["leur",13514],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["veux",4192],"trw":["nouveau",4416],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["chose",7901],"trw":["leurs",6620],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["chaque",3120],"trw":["lorsque",2306],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",26335],"trw":["p",553],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",48180],"trp":["pa",224861],"tlw":["ap",72],"trw":["papa",974],"lp":["ap","app","appa","apa"],"rp":["pa","ppa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",20685],"trp":["ps",18522],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",4429],"trp":["pas",100009],"tlw":["saps",129],"trw":["pas",84383],"lp":["spa","asp","sap","aps","sapp","saps"],"rp":["pas","pass"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",48775],"trp":["pe",136807],"tlw":["epee",266],"trw":["'",318],"lp":["ep","epe","epee","e'"],"rp":["pe","'e","ppe","'ep","pee","ppee","pep","pepe","p'","'epe"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["epa",8854],"trp":["'a",123917],"trw":["pape",116],"lp":["epa","appe","xp","exp","ape","xpe","expe","apea"],"rp":["'a","'ap","'app","'ex","'ea","pea","'exp","'epa","'ape","'exa","'exe","pape"]},"134":{"input":[2,3,8],"tlp":["d'",72817],"trp":["'es",50133],"tlw":["epees",70],"trw":["pdd",99],"lp":["d'","s'","s'e","d'e","esp","dep","spe","s'es","espe","sep","sesp","depe","d'es","eps"],"rp":["'es","'esp","pes","'ess","ped","pese"]},"135":{"input":[1,2,3,8],"tlp":["d'a",18719],"trp":["'as",4949],"tlw":["depasse",270],"trw":["passe",4560],"lp":["d'a","s'a","s'ap","depa","epas","s'as","d'ap","d'ea","espa","s'ex","sepa","aspe","s'ad","d'ad","d'ex","xped"],"rp":["'as","'ass","'ad","pesa"]},"136":{"input":[4,8],"trp":["pt",10944],"trw":["pt",1183],"lp":[],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",1491],"trp":["pat",3801],"tlw":["tapa",68],"lp":["tap","apt","tapa"],"rp":["pat","patt","pta","pf"]},"138":{"input":[2,4,8],"trp":["pc",625],"lp":[],"rp":["pc"]},"139":{"input":[1,2,4,8],"tlp":["cap",4228],"trp":["pac",1260],"tlw":["cap",326],"lp":["cap","capa","spac","apac","apc","capt"],"rp":["pac","pats","past"]},"140":{"input":[3,4,8],"tlp":["rep",21795],"trp":["pr",118408],"tlw":["repete",469],"trw":["pere",4207],"lp":["rep","epr","rp","repr","ept","t'","epre","rpr","repe"],"rp":["pr","pre","per","'et","pet","pere","pte","ppr","'etr","pret","pete"]},"141":{"input":[1,3,4,8],"tlp":["apr",9449],"trp":["par",86969],"tlw":["frappe",557],"trw":["par",27661],"lp":["apr","apre","rap","rapp","appr","epar","repa","t'a","aper"],"rp":["par","'eta","part","'ar","pare","para","ppar","'arr","parf","'at","'att"]},"142":{"input":[2,3,4,8],"tlp":["c'",37695],"trp":["'est",44521],"tlw":["c'est",27418],"trw":["pres",4017],"lp":["c'","c'e","c'es","c'et","s'et","spec","cep","rps","d'et","resp","cept","spr"],"rp":["'est","pres","pers","pec","prec","perd","'ec","pect"]},"143":{"input":[1,2,3,4,8],"tlw":["apres",7671],"trw":["parce",4758],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",78967],"trw":["m",2037],"lp":[],"rp":["mm","mp","nm","mn","pn","np"]},"145":{"input":[1,5,8],"tlp":["am",51798],"trp":["ma",187703],"trw":["ma",11423],"lp":["am","ama","amp","aman","amm","ampa","anm","anap"],"rp":["ma","man","mpa","mma","pan","mam","mama","manq","mman","paq","nap","pann"]},"146":{"input":[2,5,8],"tlp":["sm",1338],"trp":["mps",12697],"trw":["ms",179],"lp":["sm"],"rp":["mps","nsp","ms","nsm"]},"147":{"input":[1,2,5,8],"tlp":["sam",1341],"trp":["jam",12043],"tlw":["sam",363],"trw":["pans",80],"lp":["sam","amas","samm","ansp","asm","amps","ansm","span","sma"],"rp":["jam","jama","mas","mass","masq","maj","mpas","mw","njam","mans","nsma"]},"148":{"input":[3,5,8],"tlp":["em",168013],"trp":["me",306012],"tlw":["emmene",192],"trw":["me",28601],"lp":["em","eme","emen","emp","emm","emme"],"rp":["me","men","mme","n'","mem","pen","'en","meme","n'e","mmen","m'","'y","mpe","n'y"]},"149":{"input":[1,3,5,8],"tlp":["ema",18574],"trp":["n'a",19043],"tlw":["ame",424],"trw":["m'a",4088],"lp":["ema","eman","ame","amme","amen","xem","exem","xemp","ampe","xam","exam"],"rp":["n'a","m'a","pay","'an","'am","mena","paye","'ann","mane"]},"150":{"input":[2,3,5,8],"tlp":["dem",20176],"trp":["j'",30702],"tlw":["s'en",2720],"trw":["mes",6170],"lp":["dem","sem","emps","s'en","deme","d'en","seme","ssem","emes"],"rp":["j'","mes","pens","mmes","n'es","pend","j'e","med","j'en","mess","ndem"]},"151":{"input":[1,2,3,5,8],"tlw":["demande",3741],"trw":["pays",1471],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",463],"trp":["mb",31529],"lp":["tm","bm","ttm"],"rp":["mb","mpt","mt"]},"153":{"input":[1,4,5,8],"tlp":["amb",5301],"trp":["mat",6196],"tlw":["amant",146],"trw":["mat",200],"lp":["amb","fam","apab","tam","tamm","atm","amat","bap","bapt"],"rp":["mat","pab","mba","mant","mbat","pant","mpat","mpta","matt","mab","mban"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",1559],"trp":["mc",93],"tlw":["cm",1559],"lp":["cm"],"rp":["mc"]},"155":{"input":[1,2,4,5,8],"tlw":["camp",691],"trw":["passant",523],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",29998],"trp":["ment",81650],"tlw":["type",1817],"trw":["mere",4432],"lp":["rm","tem","rem","rme","temp","teme","emb","erm","reme"],"rp":["ment","mer","pren","met","mbr","mbre","mpr","prem","n'et","mpre","mbe"]},"157":{"input":[1,3,4,5,8],"tlw":["femme",6271],"trw":["payer",631],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["temps",9524],"trw":["n'est",6536],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["femmes",2197],"trw":["pendant",4274],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",30694],"lp":[],"rp":["pi","ip","ipp","ipi","pip","ppi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",6237],"trp":["pai",4095],"trw":["pizza",69],"lp":["api","apai"],"rp":["pai","papi","ipa","pia","ppai","piz","pizz","ippa","piaz"]},"162":{"input":[2,6,8],"tlp":["spi",1730],"trp":["isp",3645],"trw":["pis",282],"lp":["spi"],"rp":["isp","pis"]},"163":{"input":[1,2,6,8],"tlp":["apis",563],"trp":["ispa",2356],"trw":["passai",91],"lp":["apis","spai"],"rp":["ispa","pais"]},"164":{"input":[3,6,8],"tlp":["epi",615],"trp":["'i",49129],"trw":["pipe",239],"lp":["epi"],"rp":["'i","pie","pei","ipe","ippe","pipe","ie'"]},"165":{"input":[1,3,6,8],"tlp":["apie",1594],"trp":["'ai",30601],"trw":["paix",638],"lp":["apie","epai"],"rp":["'ai","'exi","paix","'aie","paie"]},"166":{"input":[2,3,6,8],"tlp":["s'i",6660],"trp":["pied",4225],"tlw":["d'idees",66],"trw":["pieds",2197],"lp":["s'i","disp","d'i","espi","depi","d'id","epis","dip"],"rp":["pied","pid","pide","'id","'ide","ispe","ipes","pedi","'k","'ke","'kee","pidi"]},"167":{"input":[1,2,3,6,8],"tlw":["epais",338],"trw":["peake",83],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",158],"trp":["pit",5509],"trw":["pitt",410],"lp":["tip"],"rp":["pit","pti","ipit","pitt","piti","ipt","ipti","piv"]},"169":{"input":[1,4,6,8],"tlp":["apit",2174],"trp":["pita",2057],"tlw":["tapait",66],"lp":["apit","tapi","vap","apti"],"rp":["pita","pati","pait","pav","ptai","pavi","ipat"]},"170":{"input":[2,4,6,8],"tlp":["cip",2146],"trp":["pist",956],"trw":["pic",121],"lp":["cip","cipi","scip"],"rp":["pist","icip","pic","pisc","pick","ptis"]},"171":{"input":[1,2,4,6,8],"tlw":["tapis",563],"trw":["passait",777],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["epri",3352],"trp":["pri",24618],"tlw":["reprit",1215],"trw":["petit",6366],"lp":["epri","rpri","epti","rip","epit"],"rp":["pri","peti","prit","pier","pir","peri","pire","prie","prev","ppri","pitr","priv","'ev","pite","'evi"]},"173":{"input":[1,3,4,6,8],"tlw":["t'ai",504],"trw":["partie",2466],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["esprit",982],"trw":["pris",3067],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["c'etait",9128],"trw":["paris",1112],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",66310],"trw":["pin",80],"lp":[],"rp":["mi","im","min","imp","ph","imm","phi","nim","pin","imi","mpi","mmi","mini","hm","minn","imin","inim","pini","nip","mih"]},"177":{"input":[1,5,6,8],"tlp":["ami",10224],"trp":["mai",88086],"tlw":["ami",1414],"trw":["main",8212],"lp":["ami","amai","aim","amin","anim","aima"],"rp":["mai","main","ima","ham","hap","mani","iam","hamp","mina","nima","pain","hapi","happ","imai"]},"178":{"input":[2,5,6,8],"tlp":["sim",4174],"trp":["mis",9740],"trw":["mis",1921],"lp":["sim","simp","sph","smi","ssim","snip"],"rp":["mis","jim","miss","insp","mmis","mik","mins","nspi","ism","nism","jimm","pins","ijim","misi"]},"179":{"input":[1,2,5,6,8],"tlw":["amis",1180],"trw":["mais",42478],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",15514],"trp":["mie",15315],"tlw":["ennemi",205],"trw":["peine",2455],"lp":["emi","emie","emin","eph"],"rp":["mie","ime","'h","imen","'in","hem","'im","mine","hemi","pein","'imp","iem","ieme","mei","imme","'he"]},"181":{"input":[1,3,5,6,8],"tlw":["aime",856],"trw":["n'ai",2898],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["demi",438],"trw":["mise",705],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["semaine",1154],"trw":["j'ai",15346],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",5445],"trp":["mit",5727],"tlw":["tim",73],"trw":["mit",2329],"lp":["tim","thm","timi","bim","timb"],"rp":["mit","ntim","mbi","imb","imit","mpit","ptib","mbin","miti","mith","itim","mv","mvi"]},"185":{"input":[1,4,5,6,8],"tlw":["faim",558],"trw":["matin",2422],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",155],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["champ",458],"trw":["massif",152],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["termine",610],"trw":["premiere",3206],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["vraiment",3840],"trw":["n'etait",4972],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["chemin",1720],"trw":["merci",1888],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["chambre",2756],"trw":["j'avais",3059],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",155941],"trw":["pop",58],"lp":[],"rp":["po","op","ppo","opo","opp","pop","oppo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["appo",2216],"trp":["opa",340],"lp":["appo","apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["spo",3643],"trp":["pos",17016],"lp":["spo","spos","sop"],"rp":["pos","poss","opos","ppos","osop","osp","pso"]},"195":{"input":[1,2,7,8],"trp":["posa",2884],"trw":["posa",1155],"lp":[],"rp":["posa","pow"]},"196":{"input":[3,7,8],"tlp":["epo",13316],"trp":["'o",22659],"lp":["epo"],"rp":["'o","'oe","ope","oppe","'epo","-p","poe","-pe","o'","'op","'ope","-po"]},"197":{"input":[1,3,7,8],"tlp":["xpo",114],"trp":["-pa",135],"lp":["xpo","expo"],"rp":["-pa","'a-"]},"198":{"input":[2,3,7,8],"tlp":["d'o",3873],"trp":["pose",6350],"tlw":["depose",222],"trw":["pose",1409],"lp":["d'o","espo","epos","d'oe","s'o","depo","d-p","d-pe","epso","dop","d'os"],"rp":["pose","'od","'ode","'os","-sep","osep","poes","ps-","'ose"]},"199":{"input":[1,2,3,7,8],"tlw":["deposa",185],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1434],"trp":["pot",1385],"tlw":["top",89],"trw":["pot",240],"lp":["top"],"rp":["pot","pto","opt"]},"201":{"input":[1,4,7,8],"tlp":["apot",365],"trp":["pag",5377],"tlw":["tapota",134],"lp":["apot","tapo"],"rp":["pag","pota"]},"202":{"input":[2,4,7,8],"tlp":["cop",842],"trp":["poc",1602],"tlw":["stop",73],"trw":["pots",103],"lp":["cop","copt","stop"],"rp":["poc","post","pco","pots"]},"203":{"input":[1,2,4,7,8],"tlw":["capot",86],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",11883],"trp":["pro",26938],"tlw":["trop",6088],"trw":["porte",7561],"lp":["rop","repo","trop","ropr","ropo","epro"],"rp":["pro","por","port","prop","orp","opr","'or","ppor","opre","ppro","prot","-top","'ore","prog"]},"205":{"input":[1,3,4,7,8],"tlw":["rapport",803],"trw":["page",1683],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["corps",3633],"trw":["propos",951],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["d'accord",1426],"trw":["passage",1091],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",114832],"trw":["mon",15902],"lp":[],"rp":["om","mo","pou","omm","mon","pu","up","omp","oup","um","mu","pon","nom","mou","mpo","mom","upp","mun","uppo","mmu"]},"209":{"input":[1,5,7,8],"tlp":["amo",2232],"trp":["pau",6517],"trw":["mona",153],"lp":["amo","amou","aup","aum","appu","amu","aupa","anmo"],"rp":["pau","oma","mau","ompa","upa","uma","omma","poq","poqu","oman","oupa","paqu"]},"210":{"input":[2,5,7,8],"tlp":["som",5403],"trp":["pous",4373],"trw":["noms",472],"lp":["som","somm","sup","soup","supp","spon","susp"],"rp":["pous","mons","mus","pons","mpos","ups","oups","mos","oms","noms","usp","mous","jup"]},"211":{"input":[1,2,5,7,8],"trw":["poussa",827],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["epon",8146],"trp":["u'",72122],"tlw":["emu",95],"trw":["peu",10328],"lp":["epon","epu"],"rp":["u'","omme","'u","'un","peu","u'e","'une","'on","ome","u'u","u'un","ume","upe","-m","omen","u'o","u'on","mome"]},"213":{"input":[1,3,5,7,8],"tlw":["qu'on",6252],"trw":["peux",3366],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["d'un",18560],"trw":["monde",5892],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["d'eau",1024],"trw":["jusqu'a",4050],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",8498],"trp":["omb",12802],"tlw":["tom",1064],"trw":["mot",1938],"lp":["tom","tomb","ttom","tup","tum","tmo"],"rp":["omb","mont","mot","ompt","nomb","put","pub","mbo","mob","pont","mmob","mout","omt","mpto"]},"217":{"input":[1,4,5,7,8],"tlw":["tomba",500],"trw":["monta",334],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["coup",5443],"trw":["mots",1844],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["combat",528],"trw":["poussant",233],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["tomber",1545],"trw":["pour",54806],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forme",1597],"trw":["pourtant",2127],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["comme",26616],"trw":["personne",4398],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["qu'est-ce",3758],"trw":["presque",3280],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",81861],"trw":["poil",237],"lp":[],"rp":["pl","poi","pli","pol","poli","plo","lip","ilip","lop","lopp","opi","pil","lipp","lp","ppl","ipl","poil","ppli","ploi","pilo"]},"225":{"input":[1,6,7,8],"tlp":["alp",231],"trp":["pla",16627],"trw":["plaza",92],"lp":["alp","alop","apil","apol","appl"],"rp":["pla","plai","pal","ipal","pala","opai","lpa","pali","pail","lap","lapi","plaz","plia","opla"]},"226":{"input":[2,6,7,8],"tlp":["spoi",1196],"trp":["posi",1139],"trw":["poils",186],"lp":["spoi","spl"],"rp":["posi","ispo","pois","plis","plos","piso","pok"]},"227":{"input":[1,2,6,7,8],"trw":["palais",478],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elep",2381],"trp":["l'",88780],"trw":["l'oeil",749],"lp":["elep","epl","elop"],"rp":["l'","'il","l'e","'el","'ell","ple","l'o","l'i","pel","ppel","plei","pele","lep","pell","'oei","l'ep","l'oe"]},"229":{"input":[1,3,6,7,8],"tlw":["appele",632],"trw":["l'a",2169],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["s'il",4703],"trw":["l'idee",964],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["s'appelle",386],"trw":["l'aide",479],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tipl",158],"trp":["ptio",1479],"lp":["tipl"],"rp":["ptio","poig","poit","opit","ptoi","pig","pivo","plit","ltip","lpt","lpit","pito","pilt","plot"]},"233":{"input":[1,4,6,7,8],"tlw":["galop",145],"trw":["plait",891],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capital",85],"trw":["posait",183],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["reprit-il",188],"trw":["l'oreille",587],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["appeler",517],"trw":["l'air",3916],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["desespoir",393],"trw":["police",1783],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["d'avoir",1685],"trw":["place",3372],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["plu",43647],"trw":["moi",12680],"lp":[],"rp":["plu","moi","pui","hom","homm","mpl","mil","moin","mill","poin","lum","impo","pho","impl","minu","umi","hum","upi","ompl","mili"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["animal",319],"trw":["mal",4543],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simon",341],"trw":["plus",37565],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["salim",412],"trw":["maison",4491],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["homme",5277],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["qu'il",23610],"trw":["mieux",3375],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["depuis",5560],"trw":["hommes",4084],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["qu'ils",4873],"trw":["musique",825],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["bulpitt",89],"trw":["point",3139],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",348],"trw":["pouvait",3877],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["commis",274],"trw":["jimbo",666],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["thomas",448],"trw":["mauvais",894],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["telephone",2027],"trw":["lumiere",2031],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["famille",1962],"trw":["pourquoi",6282],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["repondit",2783],"trw":["longtemps",2380],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["semblait",1934],"trw":["larmes",1018],"lp":[],"rp":[]}} \ No newline at end of file
diff --git a/keyboards/gboards/dicts/aset/_generator/src/hu-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/hu-keymap.json
new file mode 100644
index 0000000000..ec03cb5989
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/_generator/src/hu-keymap.json
@@ -0,0 +1 @@
+{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",383],"tlw":["a",307731],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",24364],"tlw":["s",39563],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",66595],"tlw":["was",3404],"lp":["as","sa","ass","wa","asa","was","sas","ssa","assa","sass","aw","sasa","awa","ws","saw","sw","ww","asas","aws","www"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",3291],"tlw":["e",6340],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",12313],"tlw":["x",109],"lp":["ea","ex","ae","xa","exa","xe","exe","xx"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["es",161633],"tlw":["es",60379],"lp":["es","de","se","ed","ese","des","ede","ess","dd","sse","edes","ds","esse","edd","dese","ses","sed","sd","eed","ded"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",36504],"tlw":["we",1547],"lp":["ad","da","ada","we","das","add","sad","sada","ase","ead","dasa","ew","ade","adas","ads","dea","eas","asd","esa","desa"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",111811],"tlw":["t",315],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",110634],"tlw":["at",3435],"lp":["ta","at","att","tta","ata","fa","tat","atta","tata","af","ft","ff","tatt","aft","fat","atat","tf","aff","afa","ffa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["cs",52385],"tlw":["c",503],"lp":["cs","st","ts","ct","cc","tc","sc","scs","tts","sts","csc","cscs","cts","stt"],"rp":[]},"11":{"input":[1,2,4],"tlp":["csa",25323],"tlw":["fact",237],"lp":["csa","ac","ca","ast","tas","acs","sta","ats","atas","sat","csas","cas","tw","act","tsa","cat","stat","cast","tasa","asta"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",141919],"tlw":["te",4722],"lp":["er","et","te","re","rt","ett","ere","ert","ete","tet","tte","ette","rr","ter","tett","rte","etet","ret","erte","eret"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",117406],"tlw":["arra",2662],"lp":["ar","ra","fe","ara","art","tar","rta","tart","rat","arr","fr","rra","fer","arta","ef","ate","arra","arat","tra","rea"],"rp":[]},"14":{"input":[2,3,4],"tlp":["rs",15788],"tlw":["este",960],"lp":["rs","dt","rd","res","ste","est","tes","erd","ce","rde","ec","rc","erde","ers","eres","set","cse","det","etes","este"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["dta",9305],"tlw":["were",1692],"lp":["dta","adt","rad","arad","ars","rsa","arc","adta","sar","tars","arsa","wer","ras","radt","dar","ard","were","dat","dra","rsad"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",30933],"trw":["n",210],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",171406],"trp":["na",74976],"tlw":["an",1125],"trw":["na",433],"lp":["an","ann","ana","anna","anan"],"rp":["na","nna","nan","nnan","nana","nq"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",2399],"trp":["ns",7890],"trw":["j",225],"lp":["sn"],"rp":["ns","jj","nj","js","jn"]},"19":{"input":[1,2,5],"tlp":["aj",26099],"trp":["ja",44839],"tlw":["aj",46],"trw":["jaj",1254],"lp":["aj","aja","san","ans","saj","saja","sna","asn","asna","wn","ajan","ssan","ajn","ajna"],"rp":["ja","jan","jaj","nas","jna","jana"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",192896],"trp":["ne",139773],"tlw":["en",13217],"trw":["ne",6355],"lp":["en","enn","eny","ene","enne","enye","ey","enny","een"],"rp":["ne","ny","ye","yen","nne","nye","nny","yn","yne","nen","nyn"]},"21":{"input":[1,3,5],"tlp":["any",20653],"trp":["ya",37836],"tlw":["any",460],"lp":["any","ane","ean","anya","eany","anny","ay","anyn","ena","enna","eq"],"rp":["ya","yan","nya","yna","yana","yany","nyna","yea","ynya"]},"22":{"input":[2,3,5],"tlp":["den",14339],"trp":["nd",76373],"tlw":["ej",386],"trw":["need",144],"lp":["den","dj","ej","sen","end","eje","esen","dn","ende"],"rp":["nd","nde","je","nden","ys","ndj","jd","yes","yj","nse","jen"]},"23":{"input":[1,2,3,5],"tlp":["and",17737],"trp":["ndja",5958],"tlw":["and",12896],"trw":["new",369],"lp":["and","dja","ajd","adj","dan","adn","adja","dna","sand","anyj","day","way","ande"],"rp":["ndja","nda","yas","yja","ndan","nyja","ysa"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",33278],"trp":["nt",65227],"tlw":["b",333],"lp":["bb","tn","tb","bn","bbn","bt"],"rp":["nt","nb","ntb","nnt","ntt"]},"25":{"input":[1,4,5],"tlp":["ba",46116],"trp":["nat",3727],"tlw":["abban",1391],"lp":["ba","ab","ban","tan","aba","abb","ant","aban","bba","bban","abba","bat","tana","anat","atn"],"rp":["nat","nta","nba","nban","nf"]},"26":{"input":[2,4,5],"tlp":["tj",4670],"trp":["nc",13855],"tlw":["stb",576],"lp":["tj","sb","bs","stb","bbs","cb","bj","sbb","csb","csn"],"rp":["nc","ncs","jt","nst","nts","jb","nbs","ntj","jts","jtj"]},"27":{"input":[1,2,4,5],"tlp":["ajt",5087],"trp":["jat",5127],"tlw":["sajat",1345],"lp":["ajt","tja","ajta","anc","ajat","atj","atja","baj","can","ancs","faj","fj","sab","sba","bac","sabb"],"rp":["jat","jta","jab","jaba"]},"28":{"input":[3,4,5],"tlp":["be",65601],"trp":["nte",8707],"tlw":["be",6609],"lp":["be","ben","ent","ten","eb","ber","rn","ebe","ren","ebb","ty","bbe","eben","ry","bet","rten"],"rp":["nte","yet","yt","yer"]},"29":{"input":[1,3,4,5],"tlp":["ran",8885],"trp":["yar",8550],"tlw":["bar",1464],"trw":["natty",172],"lp":["ran","bar","aran","arn","rany","tya","aty","rna","fen","rab","atya","bara","rba","arna","ary","rant"],"rp":["yar","yat","yf","yta"]},"30":{"input":[2,3,4,5],"tlp":["sten",4933],"trp":["ndt",3578],"tlw":["esetben",368],"lp":["sten","rj","bes","rend","enc","seb","renc","csen","dent","sebb","bec","ejet","erj","tend","encs"],"rp":["ndt","ncse","nce","jet","jr"]},"31":{"input":[1,2,3,4,5],"tlw":["rajta",1591],"trw":["jart",812],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",2593],"trw":["i",2017],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["az",158164],"trp":["ia",19708],"tlw":["az",99800],"lp":["az","za","zi","ai","zz","aza","zza","zaz","azz","azza","azi","zaza","zia","azaz","zai"],"rp":["ia","iz","iai","iza","izi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",22088],"trp":["is",89346],"tlw":["si",71],"trw":["is",40982],"lp":["si","sk","sik","sis","ssi","ski"],"rp":["is","ki","ik","kk","kis","kik","iss","ks","isk","kiss","isi","iki","ksi","ikk"]},"35":{"input":[1,2,6],"tlp":["sz",176990],"trp":["ka",44404],"tlw":["aki",3851],"trw":["iszik",209],"lp":["sz","ak","sza","sak","ssz","szi","aka","asz","aki","zs","akk","assz","zik","wi","asi","ssza","szik","zsa"],"rp":["ka","isz"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",6348],"trp":["ie",7511],"lp":["ei","eei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",100252],"trp":["ize",2949],"tlw":["ez",13097],"trw":["ize",69],"lp":["ze","ez","eze","aze","zze","ezz","ezze","ezi","eza","xi","zei","ezei","zez","zeze","ezai","xix","xii"],"rp":["ize","ix","izze"]},"38":{"input":[2,3,6],"tlp":["ek",80676],"trp":["ke",88251],"tlw":["did",582],"trw":["ide",1572],"lp":["ek","di","eke","eki","edi","dik","dek","ddi","ekk","sek","ske","sid"],"rp":["ke","id","ide","ked","kes","ike","ise","kek"]},"39":{"input":[1,2,3,6],"tlp":["sze",62411],"trp":["kez",11007],"tlw":["ezek",1919],"trw":["kezd",305],"lp":["sze","esz","esze","zd","zek","ezd","ezek","ssze","azd","zda","azda","szek","dez","adi","zeke","zes"],"rp":["kez","keze","kezd","isze"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",26187],"trp":["it",48328],"tlw":["ti",467],"trw":["itt",6106],"lp":["ti","vi","tv","vit","tit","tiv","vitt","vv","tti","vt","vii","viii"],"rp":["it","iv","itt","iti","ivi","itv","ivt","itiv"]},"41":{"input":[1,4,6],"tlp":["va",85476],"trp":["if",3685],"tlw":["azt",15369],"trw":["if",856],"lp":["va","zt","azt","fi","zta","av","ava","fia","azta","ati","ziv","vat","zat","viz","tva","tiz","fiat"],"rp":["if","iat","iva"]},"42":{"input":[2,4,6],"tlp":["csi",6831],"trp":["ic",8214],"tlw":["cit",131],"trw":["kit",1125],"lp":["csi","ci","vis","tk","viss","tis","sti","stv","sit","tik"],"rp":["ic","ist","kiv","ics","kit","kt","kic","kics","its","icsi"]},"43":{"input":[1,2,4,6],"tlp":["csak",20970],"trp":["kat",7650],"tlw":["csak",17322],"lp":["csak","szt","tak","cz","wit","tsz","vas","aszt","szta","sziv","tisz","atsz","czi","ttak","visz","cia"],"rp":["kat","iszt","kiva","kta"]},"44":{"input":[3,4,6],"tlp":["ve",74884],"trp":["ir",33168],"tlw":["vette",950],"trw":["irt",530],"lp":["ve","ri","ev","eve","vet","ver","rv","eri","eti","vett","tve","eir","rve","evet"],"rp":["ir","ive","ire","irt","ite","itte"]},"45":{"input":[1,3,4,6],"tlp":["zer",25432],"trp":["ira",15949],"tlw":["ezt",5966],"lp":["zer","zet","ezt","zere","var","zte","ezet","zett","ari","zert","ezte","vez","ria","zar","ezer","azer","rva","veze","zeri"],"rp":["ira"]},"46":{"input":[2,3,4,6],"tlp":["tek",13729],"trp":["ket",19030],"tlw":["vers",850],"trw":["ket",6195],"lp":["tek","ves","dv","rk","eket","rek","erek","dve","edv","edve","ttek","vid"],"rp":["ket","ker","kir","kere","iste","kerd","kedv","kr"]},"47":{"input":[1,2,3,4,6],"tlw":["akar",1873],"trw":["kezet",1015],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",100465],"trw":["in",9209],"lp":[],"rp":["in","ni","hi","nin","nni","hin","inn","ih","hh","ini","nh","inni","inh","hn","hinn","nii","hni","nini","hih","nnin"]},"49":{"input":[1,5,6],"tlp":["ah",5695],"trp":["ha",99222],"tlw":["ah",347],"trw":["ha",15507],"lp":["ah","zn","ani","zin","zan","zni","zna","ain","azan","aha"],"rp":["ha","han","haz","haza","ian","ina","nz","hia","nia","hazi"]},"50":{"input":[2,5,6],"tlp":["sin",3147],"trp":["nk",18980],"trw":["his",3359],"lp":["sin","sh","sni"],"rp":["nk","his","kin","nki","kn","ink","nik","nis","ij","kh","ins","ish","ikn","nkin","kikn","nsi","jh"]},"51":{"input":[1,2,5,6],"tlp":["wh",5945],"trp":["nak",17010],"tlw":["annak",3112],"trw":["hisz",637],"lp":["wh","szin","anak","szn","zaj","ank","whi","sina","aszn","szaj"],"rp":["nak","nka","nnak","has","haj","jak","hisz","kan","inka","hasz"]},"52":{"input":[3,5,6],"tlp":["eh",18062],"trp":["he",78848],"tlw":["enni",263],"trw":["he",3277],"lp":["eh","ehe","enni","eni","enyi","ein"],"rp":["he","yi","nyi","nnyi","ine","neh","hey","hen","hei","yh","nehe","inne","ien","nyh"]},"53":{"input":[1,3,5,6],"tlp":["zen",10585],"trp":["hane",4811],"tlw":["ezen",1479],"trw":["nehany",1282],"lp":["zen","eha","ezen","enz","ehan","ehez","zne","ezn","ezni"],"rp":["hane","nez","neha","hany","hez","yha","izen","neze","yz","yze","yez"]},"54":{"input":[2,3,5,6],"tlp":["enk",5048],"trp":["nek",29850],"tlw":["ennek",2112],"trw":["neki",6003],"lp":["enk","enek","enki","dni","senk"],"rp":["nek","ind","inde","neki","yek","neke","ken","yik","nnek","ndi","indi","inek","kine","nke","kne"]},"55":{"input":[1,2,3,5,6],"tlw":["when",993],"trw":["had",1905],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["th",71797],"trp":["int",32779],"tlw":["th",242],"trw":["hit",168],"lp":["th","bi","thi","bbi","tni","tth","vin","thin"],"rp":["int","ith","nth","inth","ib","ht","nti","hiv","hit","nv","hitt","nit"]},"57":{"input":[1,4,5,6],"tlp":["van",18634],"trp":["hat",22178],"tlw":["van",11948],"trw":["hat",6837],"lp":["van","tha","that","biz","ztan","zb","zab","ath","vab","vabb","zaba","zint","tvan","vann"],"rp":["hat","hata","ntha","hav","ivan","hab"]},"58":{"input":[2,4,5,6],"tlp":["ch",5920],"trp":["inc",7312],"tlw":["this",2307],"trw":["nincs",3085],"lp":["ch","this","csin","sinc","chi","bis"],"rp":["inc","incs","ninc","kb","kint","ich","hic","hich","nci","hist","nsti","inst","itj","nkit"]},"59":{"input":[1,2,4,5,6],"tlw":["with",3691],"trw":["inkabb",1478],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["the",47933],"trp":["het",10465],"tlw":["the",34738],"trw":["het",978],"lp":["the","ehet","ven","rin","ther","they","rint","teh","erin","thei","bir"],"rp":["het","her","inte","nev","neve","hete","hir","heir","yv"]},"61":{"input":[1,3,4,5,6],"tlw":["tehat",2571],"trw":["have",1230],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["these",599],"trw":["isten",2805],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["szerint",2186],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",1820],"trw":["o",10573],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","trp":["oa",760],"lp":[],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",41762],"trp":["os",59448],"tlw":["so",930],"trw":["os",131],"lp":["so","sos","soso","sso","soo"],"rp":["os","oss","oso","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["aso",4417],"trp":["osa",3764],"lp":["aso","wo","asos","swo","woo","asso"],"rp":["osa","ow","ossa","owa","ows"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",1230],"trp":["-e",3142],"trw":["-",1439],"lp":["eo","e-","e-o"],"rp":["-e","oe","o-","-o","o-o"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",237],"trp":["-a",532],"trw":["-a",180],"lp":["a-","a-e","xo"],"rp":["-a","ox"]},"70":{"input":[2,3,7],"tlp":["do",41052],"trp":["od",15802],"tlw":["eso",376],"trw":["-es",254],"lp":["do","sod","dos","eso","dod","edo","d-","d-e","sose"],"rp":["od","ose","odo","ode","od-","od-e","odes","ood","osse","-d","-es"]},"71":{"input":[1,2,3,7],"tlp":["ado",4227],"trp":["oda",6077],"tlw":["ado",161],"trw":["oda",2095],"lp":["ado","soda","asod","dow","easo","doa","dosa","as-","ados","wood","adod","ewo"],"rp":["oda","owe","odas","-as","odaa","owed","-oda","odae"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",78142],"trp":["og",80035],"tlw":["to",11182],"trw":["ott",6355],"lp":["to","go","tot","tott","got","gt","gg","tto","gott","gto","tog"],"rp":["og","ot","ott","ogo","ogt","ogot","oto","ogto","otot"]},"73":{"input":[1,4,7],"tlp":["ag",87943],"trp":["of",19703],"tlw":["fog",1642],"trw":["of",16836],"lp":["ag","ga","fo","aga","ato","fog","ago","gat","agat","atot","agot","gta","foga","gf","fogo","agg"],"rp":["of","otta","oga","ota"]},"74":{"input":[2,4,7],"tlp":["cso",6549],"trp":["ost",9595],"tlw":["sot",1437],"lp":["cso","co","tos","gs","sot","gos","sto","sg","csos","csot","soc","cco","cto","ttos","sog"],"rp":["ost","oc","ocs","ogs","osto"]},"75":{"input":[1,2,4,7],"tlp":["sag",7512],"trp":["osag",1075],"tlw":["two",477],"lp":["sag","agos","sago","gas","atos","asag","agas","tosa","acso","ssag","tsag","gosa","two","saga","sga","gsa","ags"],"rp":["osag","oca","ocsa"]},"76":{"input":[3,4,7],"tlp":["eg",183750],"trp":["or",88200],"tlw":["eg",697],"trw":["oreg",2917],"lp":["eg","ro","ge","ege","reg","tor","gr","get","ero","tort","eget","rto","teg","rg","ger"],"rp":["or","ore","oro","ort","oreg"]},"77":{"input":[1,3,4,7],"tlp":["aro",14078],"trp":["ora",5234],"tlw":["for",3067],"trw":["ora",808],"lp":["aro","for","gar","rag","arto","fro","ega","rof","grof","egf","gra","arg","aror","taro","forr","rga","efo","arag"],"rp":["ora","orra"]},"78":{"input":[2,3,4,7],"tlp":["seg",14126],"trp":["ors",6702],"tlw":["eros",707],"trw":["ordog",649],"lp":["seg","ges","eges","ros","sege","dot","dott","rdo","deg","sor","dor","dog","ged","eseg","ross","tseg","egs","eros"],"rp":["ors","ord"]},"79":{"input":[1,2,3,4,7],"tlw":["adott",1280],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",101004],"trw":["on",3707],"lp":[],"rp":["on","un","no","ou","onn","nu","ono","oun","non","uno","nno","nnu","unn","nnon","nun","nnun","uo","onu","nou","oon"]},"81":{"input":[1,5,7],"tlp":["ano",4244],"trp":["ona",5750],"tlw":["au",143],"trw":["onnan",503],"lp":["ano","au","anu","qu","anno","anon","qua","anua"],"rp":["ona","onna","ua","una","uan","oan","unan","onan","nua","onq","nqu","onqu"]},"82":{"input":[2,5,7],"tlp":["su",6983],"trp":["jo",26548],"tlw":["son",366],"trw":["jo",6226],"lp":["su","son","ssu"],"rp":["jo","us","ju","uj","nos","jon","ons","onos","jos","oj","ous","jonn","jus","jjo","jjon","joj","jun"]},"83":{"input":[1,2,5,7],"tlp":["anos",2908],"trp":["jano",2283],"tlw":["sajnos",113],"trw":["janos",2073],"lp":["anos","ajo","ason","wou","aus","ajos","aju","asu","ajjo"],"rp":["jano","osan","own","now","uja","usa","onas","ujsa","oja","ujja","jua"]},"84":{"input":[3,5,7],"tlp":["eu",1868],"trp":["yo",25659],"tlw":["eu",103],"trw":["one",972],"lp":["eu","enu"],"rp":["yo","ony","yu","nyo","yon","nyu","onyo","one","ue","y-","onny","y-e","onne","yun","uny","you","yony","oen"]},"85":{"input":[1,3,5,7],"tlp":["anyo",2334],"trp":["unya",473],"tlw":["que",241],"trw":["-an",97],"lp":["anyo","que","an-","an-e","equ","equa","anyu","aux","eque","quee"],"rp":["unya","onya","-na","yano","oya","yanu","yona","-an","nque","ux"]},"86":{"input":[2,3,5,7],"tlp":["du",7212],"trp":["ond",20755],"tlw":["du",322],"trw":["und",201],"lp":["du","don","endo","edu"],"rp":["ond","ud","ndo","ondo","udo","ondj","yos","und","nyos","udj","udn","ndu","osen","use","yedu","unde"]},"87":{"input":[1,2,3,5,7],"tlw":["adjon",401],"trw":["odaadja",48],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",26336],"trp":["ut",29088],"tlw":["tobb",2199],"trw":["not",2568],"lp":["tu","bo","tob","tobb","gon","bu","gu","ton","gn"],"rp":["ut","ob","ng","ug","obb","ont","uto","not","onb","nto","ung"]},"89":{"input":[1,4,5,7],"tlp":["ang",4181],"trp":["nag",18488],"tlw":["about",409],"trw":["utan",3611],"lp":["ang","fu","abo","gan","gab","gna","aton","tona","ango","agu","gaba"],"rp":["nag","uta","utan","oba","nga","unga","onba","utat","obba"]},"90":{"input":[2,4,5,7],"tlp":["gj",3961],"trp":["job",3981],"tlw":["bus",289],"trw":["jott",1407],"lp":["gj","csu","cou","sob","con","cson","sobb"],"rp":["job","jobb","jot","jott","jto","ntos","ust","uc","jut","ogj","ujt","jtot","juto"]},"91":{"input":[1,2,4,5,7],"tlw":["fogja",947],"trw":["jobban",1258],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gy",213097],"trp":["ogy",60410],"tlw":["egy",31147],"trw":["ugy",8993],"lp":["gy","egy","gye","gyo","egye","ru","gen","egen","gyon","geny","gyu","eng","gyen","enge","bor"],"rp":["ogy","ur","ugy","oru","nge"]},"93":{"input":[1,3,4,5,7],"tlw":["baro",394],"trw":["nagy",10563],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["tudott",1092],"trw":["ures",337],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["tudja",1421],"trw":["ujra",1374],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ol",117661],"trw":["l",1029],"lp":[],"rp":["ol","lo","ll","il","li","io","ill","llo","olo","lol","oi","oll","oli","lli","ili","illi","ilo","ollo","iol","lio"]},"97":{"input":[1,6,7],"tlp":["al",141761],"trp":["la",89690],"tlw":["all",2554],"trw":["la",881],"lp":["al","zo","ala","all","alo","azo","zol","alal","alla","zal","ali","allo"],"rp":["la","oz","ozo","lal","lla","ila","ola","ozz"]},"98":{"input":[2,6,7],"tlp":["sok",10043],"trp":["ko",67727],"tlw":["sok",3390],"trw":["ok",1198],"lp":["sok","sol","sko"],"rp":["ko","ok","lk","ls","iko","kko","lso","oko","kol","los","lko","lok","kos","lis","lik","kl","ols"]},"99":{"input":[1,2,6,7],"tlp":["szo",28916],"trp":["koz",17882],"tlw":["azok",1917],"trw":["law",597],"lp":["szo","zok","akko","szol","sszo","alk","azok","ako","soka","szok"],"rp":["koz","osz","oka","las","ossz","kozo","lak","kal","ozs","lasz"]},"100":{"input":[3,6,7],"tlp":["el",185226],"trp":["le",131988],"tlw":["el",11925],"trw":["le",3722],"lp":["el","ele","ell","elo","elle","eli","elel","elol"],"rp":["le","lle","lel","ole","ille","lole","lele","ile","lelo","olle","-i","lei"]},"101":{"input":[1,3,6,7],"tlp":["zel",9993],"trp":["lea",5723],"tlw":["ezzel",1164],"trw":["lexi",93],"lp":["zel","ezo","zele","ela","zzel","zle","zelo","zell","ale","alle","zeli","eal","ezel","elz","ezal","azel","elal"],"rp":["lea","oze","ozel"]},"102":{"input":[2,3,6,7],"tlp":["dol",7310],"trp":["ld",13454],"tlw":["elso",2743],"trw":["kell",5494],"lp":["dol","elk","els","elso","del","eles","elke","dok"],"rp":["ld","kel","les","kell","old","ido","oke","lek","lke","ldo","led","lese"]},"103":{"input":[1,2,3,6,7],"tlw":["szel",525],"trw":["lesz",3740],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",40145],"trp":["lt",63226],"tlw":["volt",20311],"trw":["ivott",154],"lp":["vo","vol","volt","gi","tl","tol","vil","tio","gl"],"rp":["lt","ig","olt","ov","lot","lott","lv","lg","olg","lto","lit"]},"105":{"input":[1,4,6,7],"tlp":["val",23257],"trp":["lat",20885],"tlw":["alatt",3368],"trw":["igaz",1408],"lp":["val","tal","vag","alt","fol","vala","zot","tala","zott","gaz","alat","alta","valo"],"rp":["lat","lta","latt","ova","lag","ozot","olta"]},"106":{"input":[2,4,6,7],"tlp":["tok",4349],"trp":["kot",3836],"tlw":["titkos",290],"trw":["kolto",379],"lp":["tok","gis","gok","tko","gk","tols"],"rp":["kot","kov","lc","olc","okt","lcs","kolt","loc","olcs","koc","icso","kott","okot","oci"]},"107":{"input":[1,2,4,6,7],"tlw":["voltak",2244],"trw":["kozott",2109],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["vel",12822],"trp":["let",20248],"tlw":["elott",2567],"trw":["lett",3000],"lp":["vel","tel","egi","elt","veg","elet","vele","rol","tle","elot","tele"],"rp":["let","leg","lett","llet","ove","lte","lete","lev","iro"]},"109":{"input":[1,3,4,6,7],"tlw":["fel",5055],"trw":["left",288],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["ekkor",1030],"trw":["kellett",2170],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["akkor",5794],"trw":["orszag",966],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",91631],"trw":["hol",3321],"lp":[],"rp":["ho","ul","ln","oln","hol","hu","lu","lon","oh","ulo","ion","hun","ulon","lni","iu","hon","nl","nul","oul","uh"]},"113":{"input":[1,5,6,7],"tlp":["zon",17866],"trp":["lan",11536],"tlw":["azon",1845],"trw":["hozza",2127],"lp":["zon","zu","azon","alan","aho","zul","alu"],"rp":["lan","hal","lna","olna","hoz","nal","hall","hozz","oha","uz","izon","hala","llan"]},"114":{"input":[2,5,6,7],"tlp":["soh",2706],"trp":["ku",14889],"trw":["jol",2741],"lp":["soh","sul","sho"],"rp":["ku","kul","unk","uk","lj","kon","kulo","hos","jol","lku","lkul","juk","hus","hoss","konn","uks","nok"]},"115":{"input":[1,2,5,6,7],"tlw":["soha",1668],"trw":["kozul",1472],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["ely",25178],"trp":["ly",62035],"tlw":["ellen",1350],"trw":["oly",2731],"lp":["ely","elye","elen"],"rp":["ly","len","lye","oly","leh","lehe","ily","lyen","hel","hely","ilye","llen","nel","ule","lyi","yel","lyn"]},"117":{"input":[1,3,5,6,7],"tlw":["equal",129],"trw":["olyan",5589],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["ejjel",683],"trw":["nelkul",2214],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["asszony",2441],"trw":["kisasszony",460],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["voln",8076],"trp":["hog",60062],"tlw":["tobbi",901],"trw":["otthon",874],"lp":["voln","bol","gh","tion","bl","tho","tul","gin","vu","ght","gint"],"rp":["hog","ult","ing","hung","oth","obbi","lonb","lob","ivu"]},"121":{"input":[1,4,5,6,7],"tlw":["volna",7681],"trw":["hova",947],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["such",497],"trw":["king",1415],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["viszont",558],"trw":["ifju",760],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["bele",1164],"trw":["hogy",55048],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["vagy",8524],"trw":["horvath",1175],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["egyik",2647],"trw":["korul",1156],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["vagyok",3023],"trw":["kiraly",5259],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",4972],"trw":["p",636],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",22391],"trp":["pa",18427],"tlw":["apa",231],"trw":["pap",604],"lp":["ap","apa","app","appa"],"rp":["pa","pap","ppa","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",1610],"trp":["ps",1710],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["sap",895],"trp":["pas",1331],"trw":["pas",147],"lp":["sap","sapa","spa","aps","apas","asp","aspa","apsa"],"rp":["pas","pass","pasa","psa","paps"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",23212],"trp":["pe",28344],"tlw":["epp",420],"trw":["'",39],"lp":["ep","epe","epp","eppe","eep","e'"],"rp":["pe","ppe","pee"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",1036],"trp":["pea",574],"tlw":["a'",897],"lp":["ape","a'","xp","exp","appe","xpe","expe","eap","epa"],"rp":["pea","ppea","pape"]},"134":{"input":[2,3,8],"tlp":["epes",1628],"trp":["ped",6768],"trw":["'s",163],"lp":["epes","eps","spe","esp","sep","sepp","epse","espe","desp","s'","s's","epd","dep"],"rp":["ped","pes","'s","pess","pse","pese","pd"]},"135":{"input":[1,2,3,8],"tlp":["dap",867],"trp":["pad",901],"tlw":["apad",98],"trw":["passed",66],"lp":["dap","dape","apes","apad","esap","weap","spea","as'","as's","aped"],"rp":["pad","peda","peas"]},"136":{"input":[4,8],"tlp":["tp",115],"trp":["pt",1949],"lp":["tp","ttp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",1138],"trp":["pta",935],"tlw":["apat",58],"trw":["papat",43],"lp":["apt","apta","apat","tap","tapa","apf"],"rp":["pta","pat","pf","pata"]},"138":{"input":[2,4,8],"trp":["pc",781],"lp":[],"rp":["pc","pcs"]},"139":{"input":[1,2,4,8],"tlp":["apc",704],"trp":["past",91],"tlw":["csapat",159],"trw":["past",91],"lp":["apc","apcs","csap","cap","sapt","capt","scap","spac"],"rp":["past","pcsa","pac"]},"140":{"input":[3,4,8],"tlp":["epet",1843],"trp":["pr",5345],"trw":["peter",932],"lp":["epet","rep","rp","erep","ept","repe","tep","epte","epr","epre"],"rp":["pr","per","pet","pete","pre","pett","pte","pere","ppet","ppr"]},"141":{"input":[1,3,4,8],"tlp":["apr",954],"trp":["par",5757],"tlw":["expert",89],"trw":["par",1156],"lp":["apr","arp","rpa","arpa","apra","rap","xper","appr","aper","apte","erap"],"rp":["par","part","para","pera","pra","pfe","pear","perf","pate"]},"142":{"input":[2,3,4,8],"tlp":["step",391],"trp":["pest",1888],"tlw":["csepp",134],"trw":["pest",218],"lp":["step","spec","csep","resp","cep","cept","epc","epcs","r's","er's","rdep","spr"],"rp":["pest","pers","perc","pres","pec","pecs","pect","pted"]},"143":{"input":[1,2,3,4,8],"tlw":["arpad",569],"trw":["peace",107],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",5907],"trw":["m",703],"lp":[],"rp":["mm","mp","pn","nm","mn","pm","np","nnm"]},"145":{"input":[1,5,8],"tlp":["am",53502],"trp":["ma",92967],"tlw":["am",1222],"trw":["ma",3061],"lp":["am","ama","apam","amp","apn","amn","amna"],"rp":["ma","nap","man","pan","nam","mma","pam","mpa","napp","mam","nnap","mna","nma"]},"146":{"input":[2,5,8],"tlp":["sm",4467],"trp":["pj",2668],"lp":["sm"],"rp":["pj","ms","mj","mps"]},"147":{"input":[1,2,5,8],"tlp":["apj",2668],"trp":["mas",14915],"tlw":["apja",679],"trw":["mas",3210],"lp":["apj","apja","sam","snap","sma","amas","span"],"rp":["mas","maj","pja","masn","pjan","napj","mass","jam","paj","mpas","mans","maja","masa"]},"148":{"input":[3,5,8],"tlp":["em",127947],"trp":["me",140514],"tlw":["eppen",1670],"trw":["nem",50476],"lp":["em","eme","emm","epen","emen","emp","enem"],"rp":["me","nem","men","pen","menn","nep","ym","neme","ppen","meny","my","nepe","mem"]},"149":{"input":[1,3,5,8],"tlp":["ame",9265],"trp":["yma",2568],"tlw":["anyam",835],"trw":["many",675],"lp":["ame","anem","amen","ema","xam","exam","xamp","eman","eam"],"rp":["yma","many","yam","nyam","name","may","yama","mea","mean","nema","pean"]},"150":{"input":[2,3,5,8],"tlp":["sem",13924],"trp":["mes",7145],"tlw":["sem",8470],"trw":["nemes",571],"lp":["sem","sme","semm","emes","dem","ems","dnem","esem","deme","ejem","dm","edm"],"rp":["mes","mess","menj","med","mese","mse","jem","nems"]},"151":{"input":[1,2,3,5,8],"tlw":["adam",721],"trw":["majd",4082],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["bp",213],"trp":["mb",15442],"tlw":["bp",213],"lp":["bp","tm"],"rp":["mb","mt","pb","mpt"]},"153":{"input":[1,4,5,8],"tlp":["tam",7013],"trp":["mat",4622],"tlw":["babam",244],"trw":["mta",69],"lp":["tam","amb","ttam","amat","tama","bam","amba","abam","fam"],"rp":["mat","mba","mban","mab","maba","pant","matt","mta","ptam","mbat","mant"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["csm",290],"trp":["mc",1065],"tlw":["cm",129],"lp":["csm","cm"],"rp":["mc","mcs","mts"]},"155":{"input":[1,2,4,5,8],"tlw":["tamas",235],"trw":["mast",389],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["emb",12508],"trp":["mer",17137],"tlw":["ember",5090],"trw":["mert",10572],"lp":["emb","embe","rm","tem","erm","rme","erme","emet","rem","term","ttem","erem"],"rp":["mer","mbe","mert","mber","ment","met","yerm","mere"]},"157":{"input":[1,3,4,5,8],"tlw":["ram",766],"trw":["mar",14439],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["erdemes",264],"trw":["mester",269],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["tamadt",304],"trw":["matyas",1445],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",6058],"lp":[],"rp":["pi","ip","pip"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",1249],"trp":["pai",741],"tlw":["apai",47],"trw":["papi",72],"lp":["api","zp","apai","zap"],"rp":["pai","ipa","pz","pia","papi","pipa"]},"162":{"input":[2,6,8],"tlp":["spi",214],"trp":["pis",406],"tlw":["sip",39],"lp":["spi","sip"],"rp":["pis","isp","pk"]},"163":{"input":[1,2,6,8],"tlp":["szp",99],"trp":["kap",3878],"trw":["kap",330],"lp":["szp","apsz","szap"],"rp":["kap","pasz","psz","kapi","ispa","pszi","pisz","pak","paks","kaps","psza"]},"164":{"input":[3,6,8],"tlp":["epi",405],"trp":["pie",218],"lp":["epi","epie"],"rp":["pie"]},"165":{"input":[1,3,6,8],"tlp":["zep",7772],"trp":["pze",497],"lp":["zep","zepe","epz","epze","z'","zepi","epez"],"rp":["pze","iz'","pez","pezi"]},"166":{"input":[2,3,6,8],"tlp":["epek",443],"trp":["pedi",6445],"trw":["kepes",493],"lp":["epek","skep","epk","espi"],"rp":["pedi","kep","kepe","kepp","pek","ikep","keep","pies","pied"]},"167":{"input":[1,2,3,6,8],"tlw":["szep",5043],"trw":["kepzes",85],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",62],"trp":["pit",714],"lp":["tip"],"rp":["pit","pv","pvi","pti"]},"169":{"input":[1,4,6,8],"tlp":["apit",393],"trp":["pita",305],"trw":["pava",90],"lp":["apit","apv"],"rp":["pita","ipat","pati","pav","pava","pitz","pva"]},"170":{"input":[2,4,6,8],"tlp":["cip",416],"trp":["pist",271],"lp":["cip","spit"],"rp":["pist","pic","icip","pvis","pict","pics"]},"171":{"input":[1,2,4,6,8],"tlw":["csaptak",83],"trw":["kapta",303],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["epit",176],"trp":["pri",1125],"tlw":["epitett",92],"lp":["epit","rip","epv","epvi","epve","epir"],"rp":["pri","pir","pve","pite","pvet","piri","peri","prev","petv","pire"]},"173":{"input":[1,3,4,6,8],"trw":["ipari",85],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["despite",105],"trw":["kepet",297],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["szerepet",241],"trw":["persze",601],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",105379],"trw":["mi",6559],"lp":[],"rp":["mi","min","im","mmi","him","mih","imp","ph","pin","hm","imm","mini","pni","mpi","mh","phi","pih","inp","pini","nim"]},"177":{"input":[1,5,6,8],"tlp":["ami",13718],"trp":["mz",2071],"tlw":["ami",1585],"trw":["mai",619],"lp":["ami","zam","amin","zama","zm","zzam","zma"],"rp":["mz","mia","mai","iam","ham","hama","maz","napi","ima","izm","miha","izma","miai"]},"178":{"input":[2,5,6,8],"tlp":["sim",317],"trp":["mik",10073],"trw":["mik",271],"lp":["sim","smi","smin","simp","simi","ship"],"rp":["mik","ism","mis","kim","mink","km","mk","ims","hims","miss","misk","mikn","mmik"]},"179":{"input":[1,2,5,6,8],"tlw":["szama",327],"trw":["masik",2051],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emmi",3676],"trp":["mie",2185],"tlw":["enyim",109],"trw":["menni",726],"lp":["emmi","emi","emei","eph","ephe","empi"],"rp":["mie","ime","hem","mine","nemi","imen","mei","meh","phe","phen","mehe","mihe","yim","nepi"]},"181":{"input":[1,3,5,6,8],"tlw":["amennyi",66],"trw":["hanem",4711],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["semmi",1966],"trw":["minden",7752],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["szepen",924],"trw":["messze",712],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",1125],"trp":["mint",20757],"trw":["mint",15155],"lp":["tim"],"rp":["mint","mit","miv","mmit","mib","http","mitt","ptim","mmiv","imb","mitv","mmib","nmit","pith"]},"185":{"input":[1,4,5,6,8],"tlw":["amit",1691],"trw":["mintha",2774],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["cim",39],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["szamat",111],"trw":["masikat",211],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["them",1440],"trw":["miert",1425],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["ereztem",268],"trw":["nemzeti",722],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["semmit",1211],"trw":["mindent",1246],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["szamara",1197],"trw":["mindjart",1584],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",11623],"trw":["op",133],"lp":[],"rp":["po","op","opo","opp","oop","ppo","oppo","pop"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",4028],"trp":["opa",952],"lp":["apo","appo"],"rp":["opa","oppa","papo","opap"]},"194":{"input":[2,7,8],"tlp":["spo",489],"trp":["pos",929],"lp":["spo","sop","sopo","sopp"],"rp":["pos","ops","pso","oops","poss","ppos"]},"195":{"input":[1,2,7,8],"tlp":["apos",470],"trp":["pow",266],"lp":["apos","sapo","apso"],"rp":["pow","posa","opas"]},"196":{"input":[3,7,8],"tlp":["eop",677],"trp":["ope",1301],"trw":["pope",55],"lp":["eop","epo","ep-","ep-e","eopo"],"rp":["ope","peo","peop","-op","o-op","-ope","oope","-p","o-p","poe","p-","p-e","pope","oppe"]},"197":{"input":[1,3,7,8],"tlp":["eapo",51],"trp":["opea",193],"lp":["eapo"],"rp":["opea"]},"198":{"input":[2,3,7,8],"tlp":["dop",118],"trp":["pose",49],"lp":["dop","epso","espo","epos"],"rp":["pose","oped","osep"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["gp",235],"trp":["pot",2175],"lp":["gp","top"],"rp":["pot","pott","pog","opt","opot","pto","poto"]},"201":{"input":[1,4,7,8],"tlp":["apot",1897],"trp":["poga",242],"tlw":["fopap",36],"trw":["papot",116],"lp":["apot","apto","gpa","fop","fopa"],"rp":["poga","pag","pota","pato","paga","opf","pfo","opta"]},"202":{"input":[2,4,7,8],"tlp":["csop",415],"trp":["pcso",700],"tlw":["csopp",40],"lp":["csop","coop"],"rp":["pcso","post"]},"203":{"input":[1,2,4,7,8],"tlw":["csapott",121],"trw":["papsag",47],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",1475],"trp":["pro",2619],"tlw":["gep",120],"trw":["por",106],"lp":["rop","rope","ropp","gep","egp","g'","roop","ro-p","gepe","gpe"],"rp":["pro","por","port","oper","opor","prog","pero","prot","ppor","ppro"]},"205":{"input":[1,3,4,7,8],"tlw":["apro",445],"trw":["poeta",81],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["troops",160],"trw":["process",152],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["gaspar",102],"trw":["power",166],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mo",35377],"trw":["up",463],"lp":[],"rp":["mo","om","mon","mu","mun","pu","up","omo","pon","nom","omm","oup","um","mpo","omp","onom","mpon","num","pom","upo"]},"209":{"input":[1,5,7,8],"tlp":["amo",1826],"trp":["oma",2710],"trw":["napon",471],"lp":["amo","amu","apon","apu","amon","anom","apun"],"rp":["oma","napo","oman","upa","upan","onap","omma","ompa","uma","uman","omam","onma","mano"]},"210":{"input":[2,5,7,8],"tlp":["sup",1243],"trp":["mos",10693],"tlw":["sum",38],"trw":["mos",122],"lp":["sup","som","somo","spon","supp"],"rp":["mos","pus","moso","oms","mus","ups","oups","usp","mso","pusp","uspo","pons","omj","osm","pson"]},"211":{"input":[1,2,5,7,8],"tlw":["samu",63],"trw":["pompas",221],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["epu",963],"trp":["yom",2209],"trw":["unnep",70],"lp":["epu","empo","emu","emo","emon"],"rp":["yom","ome","nyom","yomo","-m","omme","opme","ompe","mue","ymu","onym","nymu","memo","omen","ume"]},"213":{"input":[1,3,5,7,8],"trw":["nyoman",158],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["some",472],"trw":["modon",602],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["adom",249],"trw":["mondja",3298],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",2250],"trp":["mut",1499],"tlw":["gomb",66],"trw":["mogott",467],"lp":["tom","gm","gom","gmo","gmon","bom"],"rp":["mut","pont","omb","mog","mbo","mogo","mong","mot","pub","put","mbom","ogom","umb","numb"]},"217":{"input":[1,4,5,7,8],"tlw":["among",360],"trw":["maga",4082],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["common",147],"trw":["most",8125],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["csupan",725],"trw":["magas",697],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["engem",1555],"trw":["meg",36148],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["from",2513],"trw":["magyar",4376],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["tudom",1658],"trw":["mondott",476],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["egymast",707],"trw":["mondta",2475],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",3315],"trw":["pl",264],"lp":[],"rp":["pl","pil","pill","pol","plo","poli","opl","lop","lp","opi","poi","ipo","ipl","lip","ilip","lopo","pipo","lipo","lpi","opol"]},"225":{"input":[1,6,7,8],"tlp":["alap",1705],"trp":["lap",2645],"tlw":["alap",49],"trw":["pal",363],"lp":["alap","zpo","alp","zapo","apol"],"rp":["lap","pal","palo","lapo","pla","opai","ppal","llap","pala","ozp","ozpo","poz","pozi","lapi","pali"]},"226":{"input":[2,6,7,8],"tlp":["spok",377],"trp":["pok",1363],"trw":["pokol",157],"lp":["spok","sipo"],"rp":["pok","poko","kop","kopo","pko","posi","lisp","ipok","pkol","plok","oisp"]},"227":{"input":[1,2,6,7,8],"tlw":["alapos",56],"trw":["papok",148],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["eopl",632],"trp":["lep",2067],"trw":["people",540],"lp":["eopl","elep","elop","elp","epel","epl","eplo"],"rp":["lep","ple","pel","lepe","ople","iple","-pi","o-pi","pole","lepo","ppel","ilep","leop"]},"229":{"input":[1,3,6,7,8],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spoke",44],"trw":["peoples",92],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["eposz",50],"trw":["kozepso",112],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["topi",149],"trp":["pig",452],"trw":["lopott",92],"lp":["topi","gpi","gpil"],"rp":["pig","polg","ipot","ptol","opti","lpig","pito","lopt","opv","lopv"]},"233":{"input":[1,4,6,7,8],"tlw":["allapot",76],"trw":["palota",179],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["topic",99],"trw":["kopott",78],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["csapatok",70],"trw":["kapott",697],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["lepett",361],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["alapveto",130],"trw":["polgari",178],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["csoportok",138],"trw":["pedig",6327],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["co-operative",438],"trw":["pasztor",331],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["lm",13260],"trw":["mino",264],"lp":[],"rp":["lm","lom","mil","mul","lmi","ml","lmo","mpl","mol","pul","hom","miu","mplo","plom","omol","mli","lmu","hop","lmon","oml"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alom",310],"trw":["hozzam",615],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simon",66],"trw":["miklos",345],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["alapjan",546],"trw":["munka",592],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["elem",115],"trw":["mely",4580],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["amely",1640],"trw":["mihaly",309],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["selyem",203],"trw":["midon",1554],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["amelyek",644],"trw":["masodik",891],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"trw":["mig",2990],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["valami",3022],"trw":["lattam",817],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["cimu",318],"trw":["much",250],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"trw":["maganak",843],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["velem",847],"trw":["mellett",2095],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["amelyet",615],"trw":["harom",3127],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["gyermek",947],"trw":["mikor",6075],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["amikor",2030],"trw":["magyarok",775],"lp":[],"rp":[]}} \ No newline at end of file
diff --git a/keyboards/gboards/dicts/aset/_generator/src/it-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/it-keymap.json
new file mode 100644
index 0000000000..56265a3572
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/_generator/src/it-keymap.json
@@ -0,0 +1 @@
+{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",76],"tlw":["a",134646],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",181781],"tlw":["s",689],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",147177],"tlw":["sa",4372],"lp":["sa","as","ssa","ass","assa","asa","sas","wa","sass","ssas","aw","saw","was","awa","ws"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",2590],"tlw":["e",285768],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",16928],"tlw":["ex",571],"lp":["ea","ae","ex","ax","xe"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",299367],"tlw":["se",42825],"lp":["de","se","es","ess","sse","ed","esse","ede","ese","des","dd","sed","edd","dess","sede","edes","ses","sess","dde","dee"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",161213],"tlw":["da",50742],"lp":["da","ad","essa","esa","ade","ada","asse","ase","aes","add","dea","ades","eda","we","aese","seda","ew","sea","adde","aesa"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",206553],"tlw":["t",2430],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",338700],"tlw":["fa",5357],"lp":["ta","at","fa","att","tta","tat","ata","ff","fat","fatt","af","atta","tata","aff","ffa","affa","ttat","ffat","tatt","taf"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",249453],"tlw":["c",1986],"lp":["st","sc","cc","ts","ct","tc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",149612],"tlw":["casa",7589],"lp":["ca","sta","ac","acc","stat","cas","asc","fac","cat","cca","ast","sat","sca","casa","facc","sf","acca","asta","tas","ssat"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",504768],"tlw":["te",8282],"lp":["er","re","te","tr","et","rt","ere","ett","ter","rr","tre","tte","rte","ert","err","ret","ette","rre","etr","tere"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ra",368409],"tlw":["era",57211],"lp":["ra","ar","era","are","tra","fe","rat","art","rta","fr","tar","far","ara","eta","etta","fer","tare","arte","ratt","fra"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ce",118940],"tlw":["essere",13580],"lp":["ce","est","ec","rs","str","rc","res","ser","rd","ste","ers","tes","erc","cr","der","cer","sser","tess","dere","ece"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["sar",25172],"tlw":["testa",5675],"lp":["sar","esta","stra","ard","car","sare","ace","rad","dar","dat","rda","rac","adr","racc","rca","ars","dare","ssar","face","erca"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",46289],"trw":["n",1203],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",351085],"trp":["na",191784],"tlw":["an",861],"trw":["na",3153],"lp":["an","ann","ana","anna","anq","anan"],"rp":["na","nq","nna","nan","nnan"]},"18":{"input":[2,5],"base":"j","baseshift":"J","trp":["ns",40629],"trw":["j",428],"lp":[],"rp":["ns","nj","jn"]},"19":{"input":[1,2,5],"tlp":["san",10754],"trp":["nsa",10125],"tlw":["san",820],"lp":["san","ssan","sann","ans","sq","wn","asq","aj","sana","anj","anja","aja"],"rp":["nsa","nas","ja","nsan","nja","nasa","nsas","nass"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",325999],"trp":["ne",240032],"tlw":["en",427],"trw":["ne",18897],"lp":["en","ene","enn","enne","ey","enen","eyn","een","enny","eyne"],"rp":["ne","nne","ny","yn","nny","nen","yne","ye","nyn","nee"]},"21":{"input":[1,3,5],"tlp":["ena",10474],"trp":["nea",2742],"tlw":["aye",382],"lp":["ena","ane","ay","ean","ayn","ayne","enna","eq","anne","anea","aye","aen","eann"],"rp":["nea","nean","yna","nae","nyna","ynae","ya"]},"22":{"input":[2,3,5],"tlp":["sen",39413],"trp":["nd",129982],"tlw":["sen",952],"trw":["nes",163],"lp":["sen","end","ens","den","ende","sens","esen","eden","dend","ssen","dy"],"rp":["nd","nde","nes","ness","nse","nden","je","nsen","nese"]},"23":{"input":[1,2,3,5],"tlp":["and",60721],"trp":["nda",24205],"tlw":["and",382],"trw":["new",833],"lp":["and","anda","ensa","ande","dan","enda","sand","dand","dann","wen","esan","wene","dena","sean","anes","andy"],"rp":["nda","ndan","new","nand"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",46376],"trp":["nt",291380],"tlw":["b",526],"lp":["bb","tn"],"rp":["nt"]},"25":{"input":[1,4,5],"tlp":["ant",64341],"trp":["nta",37477],"tlw":["tanta",636],"trw":["nata",204],"lp":["ant","tan","ba","ab","tant","abb","ban","anta","fan","bba","bat","abba","batt"],"rp":["nta","nat","nf","ntan","ntat","nata","nfa"]},"26":{"input":[2,4,5],"tlp":["sb",2201],"trp":["nc",80441],"lp":["sb","cn","tsb"],"rp":["nc","nst","nsc"]},"27":{"input":[1,2,4,5],"tlp":["anc",55675],"trp":["nca",4603],"tlw":["basta",1053],"lp":["anc","can","stan","bas","cant","bast","anca","cq","acq","sant","bbas","bass","ccan","sab","sba","banc"],"rp":["nca","nasc","jac","ntas"]},"28":{"input":[3,4,5],"tlp":["ent",152199],"trp":["nte",100114],"tlw":["bene",6300],"trw":["nere",364],"lp":["ent","ente","be","rn","eb","br","ebb","ten","bbe","ebbe","reb","rebb","entr","ren","ber","ben","ener"],"rp":["nte","ntr","ner"]},"29":{"input":[1,3,4,5],"tlp":["ran",45980],"trp":["nar",8583],"tlw":["entrare",873],"trw":["nera",1031],"lp":["ran","eran","ante","bra","enta","areb","rna","tran","bar","rtan","rant","fran","abbr","erna"],"rp":["nar","ntra","nare","nera","ntar","nfe"]},"30":{"input":[2,3,4,5],"tlp":["sent",16908],"trp":["nce",6484],"tlw":["sebbene",761],"lp":["sent","cen","dent","rend","cent","cend","tend","scen","sten","deb","ecen","cenn","ccen"],"rp":["nce","nder","nec","nece","nest","nces","ncer"]},"31":{"input":[1,2,3,4,5],"tlw":["sarebbe",7398],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",3469],"trw":["i",56666],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["zi",77724],"trp":["ia",200353],"tlw":["ai",8188],"lp":["zi","za","ai","az","zz","azi","zza","azz","zia","zzi","azza","azzi","aia","azia"],"rp":["ia","iz","izi","izia","izz","iaz"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",267038],"trp":["is",117042],"tlw":["si",95698],"trw":["k",250],"lp":["si","ssi","sis","sk","siss","ssis","sii","sisi","ski"],"rp":["is","iss","isi","issi","ki","ik","isk","ks","kik"]},"35":{"input":[1,2,6],"tlp":["sia",18324],"trp":["issa",4411],"tlw":["sia",7163],"trw":["ka",126],"lp":["sia","asi","assi","sai","ak","siz","sizi","ssia","saz","sazi","sias","ssai","aki","wi","asia"],"rp":["issa","isa","ias","iasi","ka"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",64002],"trp":["ie",107111],"lp":["ei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",20251],"trp":["ize",737],"tlw":["zie",189],"trw":["ix",82],"lp":["ez","ezz","ezza","ze","ezi","zie","azie","zze","ezzi","azze","xi","eaz","eazi","aie","ezze","eez","eze"],"rp":["ize","ix","izie"]},"38":{"input":[2,3,6],"tlp":["di",428636],"trp":["id",39251],"tlw":["di",272620],"trw":["idee",923],"lp":["di","dis","dei","esi","edi","diss","essi","die","sie","sid","side","sei","ddi"],"rp":["id","ide","isse","ied","ise","ies","idi"]},"39":{"input":[1,2,3,6],"tlp":["dia",9487],"trp":["ida",5456],"tlw":["dai",4684],"trw":["idea",948],"lp":["dia","dai","adi","diz","dizi","edia","esia","addi","ake","edai","adiz","aid","disa","aesi","aida","ediz"],"rp":["ida","idea","iesa","idia"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",201674],"trp":["it",120823],"tlw":["ti",13315],"trw":["ivi",381],"lp":["ti","vi","tti","vit","tiv","vv","tit","viv","vvi","ttiv","tivi","vitt"],"rp":["it","iv","itt","iti","ivi","itti","ivit","itiv"]},"41":{"input":[1,4,6],"tlp":["va",190389],"trp":["ita",47351],"tlw":["vita",7521],"lp":["va","av","fi","ava","tav","ati","tava","via","atti","vita","avi","avv","ffi","vat"],"rp":["ita","iva","if","iat","ifi","itta"]},"42":{"input":[2,4,6],"tlp":["ci",164338],"trp":["ic",121416],"tlw":["ci",18525],"lp":["ci","sci","sti","tic","vis","cci","cit","sic","vist","sit","sist","vic","cis","vici"],"rp":["ic","ist","ici","icc","isc","isti"]},"43":{"input":[1,2,4,6],"tlp":["cia",31011],"trp":["ica",28164],"tlw":["stava",5638],"lp":["cia","fic","acci","stav","asci","ccia","tica","fici","scia","cav","ffic","cita","aci","cava","ciat","fica"],"rp":["ica","ista","iac","ific"]},"44":{"input":[3,4,6],"tlp":["ri",271321],"trp":["ir",53396],"tlw":["ri",3645],"trw":["ieri",513],"lp":["ri","ve","ev","ver","vev","eri","rit","tri","riv","rri","vr","rti","vre","rv","rie"],"rp":["ir","ire","ive","ier","iet"]},"45":{"input":[1,3,4,6],"tlp":["eva",73289],"trp":["iar",12328],"tlw":["aveva",25419],"lp":["eva","ave","veva","avev","ari","ria","rav","avr","aver","avre","arti","raz","riva","teva","rava","rz","razi","aria","var"],"rp":["iar"]},"46":{"input":[2,3,4,6],"tlp":["ris",22044],"trp":["ice",15501],"tlw":["dire",5876],"lp":["ris","ric","vers","dic","dir","dev","rsi","div","esti","cri","eci","cie","ved","dire","vec","cev","rdi","dive","ves"],"rp":["ice"]},"47":{"input":[1,2,3,4,6],"tlw":["avesse",3478],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",320519],"trw":["in",109997],"lp":[],"rp":["in","ni","hi","ini","nni","hin","hn","inn","hnn","nin","inni","nh","iin","hini"]},"49":{"input":[1,5,6],"tlp":["ani",19586],"trp":["nz",54632],"tlw":["anni",5707],"trw":["ha",18022],"lp":["ani","anz","anza","anni","anzi","ah"],"rp":["nz","nza","ha","ina","ian","hia","nzi","han","hann","hai","nia","niz","naz","nizi"]},"50":{"input":[2,5,6],"tlp":["sin",7946],"trp":["nsi",15035],"tlw":["sin",309],"lp":["sin","sh","sini","ssin","shi","shin","sinn"],"rp":["nsi","nis","ins","inis","insi","niss","his","nsis","hiss","nk","kn","nkn","hisk"]},"51":{"input":[1,2,5,6],"tlp":["sian",1135],"trp":["nsaz",1239],"tlw":["assassini",163],"trw":["hans",173],"lp":["sian","sha","shai","ansi","ash","anis","ank","wh","whi","whis","shak","sina","asha"],"rp":["nsaz","jak","kan","nsai","nsia","hak","hans"]},"52":{"input":[3,5,6],"tlp":["eni",10691],"trp":["he",257312],"tlw":["eh",464],"trw":["nei",6212],"lp":["eni","eh","ein","enni"],"rp":["he","ien","ine","hie","nie","nei","iene","nien","hnny","hien","ieni","hen","iy","hei","nhe","nhei"]},"53":{"input":[1,3,5,6],"tlp":["enz",33789],"trp":["ienz",3732],"tlw":["annie",76],"trw":["haze",116],"lp":["enz","enza","enzi","anie","enze","anze","zien","aine","anei","enez","enia"],"rp":["ienz","nze","iena","inea","hez","hezz","iane","nez","nezz"]},"54":{"input":[2,3,5,6],"tlp":["din",9601],"trp":["ndi",18448],"tlw":["sensi",395],"trw":["jessie",395],"lp":["din","ensi","dine","dini","enis","endi"],"rp":["ndi","ind","indi","nsie","iden","hies","ines","nsid","hied","ndie","inse","hes","hese","iend"]},"55":{"input":[1,2,3,5,6],"tlw":["senza",11519],"trw":["jake",1119],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",59544],"trp":["nti",54757],"tlw":["bi",1153],"lp":["bi","tin","bbi","bit","vin","th","bin"],"rp":["nti","int","ib","nv","ibi","inv","nit","ntin","niv","init","nvi","ntit","ntiv"]},"57":{"input":[1,4,5,6],"tlp":["van",36986],"trp":["inf",7482],"tlw":["avanti",2333],"trw":["infatti",1929],"lp":["van","fin","anti","avan","bia","abi","tanz","bbia","vant","abbi","fini","bian","tina"],"rp":["inf","ivan","nfi","nif","nita","nav","inat"]},"58":{"input":[2,4,5,6],"tlp":["ch",325862],"trp":["nch",30760],"tlw":["chi",6236],"trw":["nisci",250],"lp":["ch","chi","cch","cchi","cin","sib","sibi","sch","ssib","bis","schi"],"rp":["nch","inc","nci","inci","ich","nic","icin","ntic","nist"]},"59":{"input":[1,2,4,5,6],"tlw":["stanza",2031],"trw":["jack",1501],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["enti",29283],"trp":["inte",12868],"tlw":["viene",2680],"trw":["niente",4357],"lp":["enti","ven","vreb","vent","rin","veni","rni","vien","bri","venn"],"rp":["inte","ient","nve","iven","inve","ibe","iber","nev","ibr","nir"]},"61":{"input":[1,3,4,5,6],"tlw":["avrebbe",7187],"trw":["infine",1261],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["che",190983],"trw":["invece",4329],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["anche",22478],"trw":["neanche",898],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",538],"trw":["o",24888],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",1339],"trp":["oa",935],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",207940],"trp":["os",147196],"tlw":["so",6170],"trw":["oso",79],"lp":["so","sso","sos"],"rp":["os","oss","osso","oso","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["asso",6821],"trp":["osa",24654],"tlw":["sasso",152],"trw":["ossa",382],"lp":["asso","aso","aos","wo","sao"],"rp":["osa","ossa","ow","ows"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",5232],"trp":["oe",8136],"trw":["-",14856],"lp":["eo"],"rp":["oe","o-"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",67],"lp":["xo"],"rp":[]},"70":{"input":[2,3,7],"tlp":["do",158471],"trp":["od",22403],"tlw":["do",2723],"trw":["od",70],"lp":["do","esso","eso","edo","dos","doss","ddo","eddo","sod","ddos","sodd","seo"],"rp":["od","osse","odo","ose","ode","oes","odd","odes"]},"71":{"input":[1,2,3,7],"tlp":["ado",4250],"trp":["oda",1104],"tlw":["adesso",3039],"lp":["ado","addo","aseo","ados","dado"],"rp":["oda","oad","owd","owde","osea"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",401592],"trp":["ot",65714],"tlw":["to",7313],"trw":["otto",700],"lp":["to","tto","gg","go","tog","tot","gog","got","gott","gt","gto","ggo"],"rp":["ot","og","ott","otto","ogg","oto","ogo","otog"]},"73":{"input":[1,4,7],"tlp":["ato",73996],"trp":["of",9885],"tlw":["fatto",10159],"trw":["of",731],"lp":["ato","ag","fo","ga","atto","tato","agg","aga","tag","gat","ago","fog","fot","gato","foto"],"rp":["of","ota","off","ofo","otta"]},"74":{"input":[2,4,7],"tlp":["co",390163],"trp":["oc",56253],"tlw":["sotto",6145],"trw":["oc",194],"lp":["co","sto","cos","cco","sco","sog","sot","sott","cost","soc","sg","tos","ttos","tost"],"rp":["oc","ost","occ","osc","osto","oco"]},"75":{"input":[1,2,4,7],"tlp":["cosa",19547],"trp":["osta",6879],"tlw":["cosa",13626],"lp":["cosa","fos","foss","acco","cato","sato","asco","caso","sag","sagg","sof","sfo","aco","asto","soff","ssag","asfo"],"rp":["osta","occa","oca"]},"76":{"input":[3,4,7],"tlp":["ro",227920],"trp":["or",269472],"tlw":["ero",2296],"trw":["ore",1264],"lp":["ro","eg","tro","ero","ge","gr","tor","etto","rto","rg","erto","gge","egg","ttor"],"rp":["or","ore","ort","oro","ote","orr"]},"77":{"input":[1,3,4,7],"tlp":["for",26973],"trp":["ora",39990],"tlw":["forte",2002],"trw":["ora",7824],"lp":["for","gra","aro","rag","rato","ega","raga","rof","gar","fort","fro","arg","ator","ragg","rofo","egat","efo"],"rp":["ora","orta","orat"]},"78":{"input":[2,3,4,7],"tlp":["cor",38804],"trp":["ors",15158],"tlw":["stesso",6792],"lp":["cor","esto","rso","erso","seg","sor","rdo","ros","eco","deg","seco","stro","cord","stor","cors"],"rp":["ors","ostr","ord","orse","oce"]},"79":{"input":[1,2,3,4,7],"tlw":["fosse",8373],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",433832],"trw":["un",115533],"lp":[],"rp":["on","no","un","non","uo","ono","nu","uno","nno","nuo","onn","uon","nun","uono","nono","nnu","onno","ou","onu","nuno"]},"81":{"input":[1,5,7],"tlp":["qu",190328],"trp":["ua",132700],"tlw":["qua",1585],"trw":["una",79579],"lp":["qu","qua","ano","quan","anno","au","anqu","annu","quo"],"rp":["ua","una","uan","ona","nqu","unq","unqu","onna","nua","uona","uann"]},"82":{"input":[2,5,7],"tlp":["su",132637],"trp":["us",36612],"tlw":["sono",21614],"trw":["uso",357],"lp":["su","son","suo","sono","ssu","sun","ssun","suno","sus","suon","sson"],"rp":["us","nos","ons","nso","onos","uss","jo","uso","uns"]},"83":{"input":[1,2,5,7],"tlp":["sua",24168],"trp":["uas",6999],"tlw":["sua",23065],"trw":["naso",1168],"lp":["sua","quas","sona","aus","ausa","suna","susa","assu","squ","sano","squa","ssua"],"rp":["uas","usa","usan","onsa","naso","ussa","own","jona"]},"84":{"input":[3,5,7],"tlp":["eno",16301],"trp":["ue",125676],"trw":["oy",212],"lp":["eno","enu","eu","enno","eon","eone"],"rp":["ue","one","onne","une","uen","yo","n-","oy","neo","uone","onen","nue","uy","noe"]},"85":{"input":[1,3,5,7],"tlp":["que",97787],"trp":["nque",9338],"tlw":["que",683],"lp":["que","equ","eque","quen","aneo","enua","aone","eau","aneu","anue"],"rp":["nque","yoa","uane"]},"86":{"input":[2,3,5,7],"tlp":["du",34768],"trp":["ndo",56462],"tlw":["due",12347],"trw":["nessuno",3678],"lp":["du","due","don","endo","donn","essu","enso","sue","edu","dun","sone"],"rp":["ndo","ues","ond","ondo","ud","onde","ude","use","onse"]},"87":{"input":[1,2,3,5,7],"tlw":["quando",17079],"trw":["nessuna",1517],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",92522],"trp":["ut",89032],"tlw":["tutto",14989],"trw":["noto",633],"lp":["tu","tut","gn","tutt","gu","gno","bo"],"rp":["ut","nto","utt","ont","ng","uto","utto","ogn","ob","ub","ngo","not","ung"]},"89":{"input":[1,4,5,7],"tlp":["anto",26642],"trp":["onta",14073],"tlw":["quanto",9498],"trw":["nota",688],"lp":["anto","fu","gua","fon","atu","gna","ang","tua","agn","fuo","bano","aut"],"rp":["onta","uant","uta","utta","nato","natu","onf","uat"]},"90":{"input":[2,4,5,7],"tlp":["con",129147],"trp":["nco",21375],"tlw":["con",65735],"trw":["jung",428],"lp":["con","cu","cont","cun","cono","cons","sogn","scu","stu","cuo","sub","conc"],"rp":["nco","uc","usc","nost","ucc","nosc","ust","onc"]},"91":{"input":[1,2,4,5,7],"tlw":["bocca",2528],"trw":["nascosto",446],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ento",24735],"trp":["ur",55498],"tlw":["tutte",5259],"trw":["notte",3456],"lp":["ento","rno","ru","tur","ron","gen","torn","gnor","gue","egn"],"rp":["ur","orn","nor","ntro","orno","uro","ontr","ure","onte","uor"]},"93":{"input":[1,3,4,5,7],"tlw":["erano",13650],"trw":["natura",2226],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["contro",4167],"trw":["nostro",2381],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["questo",17502],"trw":["nostra",2563],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ll",292163],"trw":["il",150399],"lp":[],"rp":["ll","io","li","il","ol","lo","llo","olo","oi","lio","lli","oli","ili","oll","ill","ilo","ollo","iol","olli","oio"]},"97":{"input":[1,6,7],"tlp":["al",306120],"trp":["la",389912],"tlw":["al",34419],"trw":["la",169844],"lp":["al","all","zio","alla","azio","ali","zo","allo","zzo","ala","alo","azzo","alz"],"rp":["la","lla","ola","lia","ial","izio","lz"]},"98":{"input":[2,6,7],"tlp":["sol",35720],"trp":["osi",21430],"tlw":["solo",15660],"trw":["los",154],"lp":["sol","solo","sio","ssio","soli","sil","ssol","soll"],"rp":["osi","iso","ossi","ios","ls","lis","isio","ioso","los","ols","lsi","loso"]},"99":{"input":[1,2,6,7],"tlp":["sal",7582],"trp":["las",8686],"tlw":["sola",1804],"trw":["ossia",438],"lp":["sal","sola","als","sali","alsi","alis","zios","sala","asio","wil","wal","salo","will"],"rp":["las","osiz","lass","lsia","iosa","oak","oaki"]},"100":{"input":[3,6,7],"tlp":["el",300307],"trp":["le",283237],"tlw":["el",414],"trw":["le",75413],"lp":["el","ell","elle","ello","elli","ele","eli","elo"],"rp":["le","lle","ile","ole","lei","lie","iel","olle","ielo","ioe","ille","liel"]},"101":{"input":[1,3,6,7],"tlp":["ella",86423],"trp":["iale",6102],"tlw":["alle",8523],"lp":["ella","ale","alle","ela","eal","ezzo","ezio","eale","elai","elaz","eali","aile","alie"],"rp":["iale","lez","lezz","llez","lea","lezi","olez"]},"102":{"input":[2,3,6,7],"tlp":["del",145198],"trp":["ido",5517],"tlw":["del",59660],"trw":["les",352],"lp":["del","dell","dio","dol","sole","sile","dolo","deli","sold"],"rp":["ido","ld","les","odi","oesi","less","old","lid","lse","iod","olse"]},"103":{"input":[1,2,3,6,7],"tlw":["della",49783],"trw":["ideale",372],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["gi",98127],"trp":["lt",89489],"tlw":["gli",38211],"trw":["oggi",2072],"lp":["gi","gl","gli","vo","gio","vol","ggi","volt","glio","ggio"],"rp":["lt","ov","olt","ig","ito","lto","igl","igli","lit","olto"]},"105":{"input":[1,4,6,7],"tlp":["alt",36637],"trp":["lta",24023],"tlw":["volta",7909],"trw":["lato",1361],"lp":["alt","tal","gia","aggi","agi","avo","glia","agl","agli","gaz","val","fig","agaz"],"rp":["lta","olta","ova","lita","iato","lat","lav"]},"106":{"input":[2,4,6,7],"tlp":["col",38715],"trp":["ico",29735],"tlw":["cosi",14686],"lp":["col","cio","cosi","sig","colo","voc","ccol","tico","soci","cl","coll"],"rp":["ico","lc","lic","oci","lco","isto","icol","lcos","icco"]},"107":{"input":[1,2,4,6,7],"tlw":["cavallo",1015],"trw":["lasciato",1193],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rio",23501],"trp":["lor",31885],"tlw":["vero",3849],"trw":["loro",17911],"lp":["rio","egl","egli","rl","rov","gior","evo","tori","rol","trov"],"rp":["lor","ltr","ori","ove","ior","loro","let","lett","ltro","leg"]},"109":{"input":[1,3,4,6,7],"tlw":["allora",5910],"trw":["lavoro",2692],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["dove",7905],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["storia",3176],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["iu",69600],"trw":["lui",16197],"lp":[],"rp":["iu","ion","ui","lu","ul","ino","oni","ull","lui","ho","ioni","uoi","lin","uni","lun","hio","inu","lon","noi","iun"]},"113":{"input":[1,5,6,7],"tlp":["zion",44305],"trp":["ual",34744],"tlw":["qui",6480],"trw":["hanno",4870],"lp":["zion","qual","qui","quin","alu"],"rp":["ual","ulla","nal","lan","nzio","uz","uali","iano","uzi","uzio","onal","iona","inua","inqu","nzo"]},"114":{"input":[2,5,6,7],"tlp":["sul",27914],"trp":["ius",9576],"tlw":["sul",12074],"trw":["john",422],"lp":["sul","sull","sion","suoi","sui","sino","solu"],"rp":["ius","usi","onsi","lus","joh","john","isu","hius","uis","nsio","ussi","usio","isul"]},"115":{"input":[1,2,5,6,7],"tlw":["sulla",9250],"trw":["unknown",242],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"trp":["nel",55639],"tlw":["ellen",168],"trw":["nel",25842],"lp":[],"rp":["nel","ione","uel","uell","nell","len","ulle","uei","ilen","uole","olen","line","ieno","ly","lly","llen","hel","iyo","onie","lien"]},"117":{"input":[1,3,5,6,7],"tlw":["quella",13048],"trw":["nella",18121],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["sulle",3574],"trw":["johnny",2025],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["quindi",2988],"trw":["honda",1391],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bil",19308],"trp":["ing",11351],"tlw":["tutti",11017],"trw":["ogni",9891],"lp":["bil","gni","vu","giu","gin","bl"],"rp":["ing","utti","ign","ogni","uov","ibil","nuov","ult","igno","lib","onti","itu","iut","lung"]},"121":{"input":[1,4,5,6,7],"tlw":["fino",4978],"trw":["lingua",2263],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["cui",15060],"trw":["occhi",7963],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["qualcosa",5921],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["giorno",5009],"trw":["intorno",2138],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["avevano",4836],"trw":["labbra",1521],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["vecchio",2836],"trw":["luce",3993],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["qualche",7372],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",38074],"trw":["p",2856],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",53641],"trp":["pa",113853],"tlw":["ap",277],"trw":["pa",1374],"lp":["ap","app","appa","apa"],"rp":["pa","ppa","pap","papa","papp"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",57528],"trp":["ps",391],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["sap",10722],"trp":["pas",13080],"tlw":["spa",392],"trw":["passa",483],"lp":["sap","spa","asp","sapp","aspa","asap","spas"],"rp":["pas","pass","ppas"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",9203],"trp":["pe",210895],"tlw":["e'",746],"trw":["'",1162],"lp":["ep","epp","e'","eppe","epe"],"rp":["pe","'e","ppe","'ep","pep","pepe","pee"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",12996],"trp":["'a",34981],"tlw":["a'",123],"trw":["pae",158],"lp":["ape","appe","epa","a'","epap","a'a","eppa"],"rp":["'a","pae","pea","'ap","'ape","pape","'app","'ex"]},"134":{"input":[2,3,8],"tlp":["spe",21318],"trp":["pes",6844],"tlw":["de'",420],"lp":["spe","d'","esp","spes","s'","espe","s'e","sep","sepp","d'e","sped","d'es","de'"],"rp":["pes","'es","pess","'ess","'esp","ped","ppes"]},"135":{"input":[1,2,3,8],"tlp":["sape",7738],"trp":["pad",5524],"tlw":["spada",415],"trw":["paese",1433],"lp":["sape","d'a","aspe","sepa","spad","dap","dapp","s'a","apes","spea","s'as"],"rp":["pad","paes","pesa","'as","'ass","pada","pade","peda","'asp"]},"136":{"input":[4,8],"tlp":["tp",67],"trp":["pt",593],"trw":["pt",593],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",444],"trp":["pat",3422],"tlw":["tappa",74],"trw":["pat",105],"lp":["tap","tapp"],"rp":["pat","pata","patt","ppat"]},"138":{"input":[2,4,8],"lp":[],"rp":[]},"139":{"input":[1,2,4,8],"tlp":["cap",16620],"trp":["pac",3619],"tlw":["cap",137],"trw":["passata",399],"lp":["cap","capa","apac","capp","scap"],"rp":["pac","past","pasc","pacc","paca"]},"140":{"input":[3,4,8],"tlp":["rp",6335],"trp":["pr",145579],"trw":["per",80117],"lp":["rp","t'","rep","rpr","rpre","rpe"],"rp":["pr","per","pre","pet","'er","pett","pert","pere","ppr","ppre","pete","perr","pret","prep"]},"141":{"input":[1,3,4,8],"tlp":["rap",5944],"trp":["par",50789],"tlw":["aperta",930],"trw":["parte",8500],"lp":["rap","aper","rapp","apr","appr","epar","t'a"],"rp":["par","part","'era","pra","pare","pera","'ar","ppar","perf","prat","para","'art","'at"]},"142":{"input":[2,3,4,8],"tlp":["c'",13326],"trp":["pres",21493],"tlw":["c'e",5387],"trw":["prese",1400],"lp":["c'","c'e","spet","c'er","sper","spec","spr","espr","spre","resp","st'"],"rp":["pres","perc","pers","pec","prec","perd","pecc","'est","pesc"]},"143":{"input":[1,2,3,4,8],"tlw":["c'era",5795],"trw":["padre",3195],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",63764],"trw":["m",580],"lp":[],"rp":["mp","mm","pn","pm"]},"145":{"input":[1,5,8],"tlp":["am",93470],"trp":["ma",209998],"tlw":["ama",245],"trw":["ma",53590],"lp":["am","ama","amm","amp","amma","ampa","aman","anam"],"rp":["ma","man","mma","mpa","pan","mana","mam","nam","mamm","nap","mpan","pann"]},"146":{"input":[2,5,8],"tlp":["sm",3714],"lp":["sm"],"rp":[]},"147":{"input":[1,2,5,8],"tlp":["sam",2868],"trp":["mas",6926],"tlw":["sam",230],"trw":["massa",628],"lp":["sam","asm","sma","asma","ssam"],"rp":["mas","mass","nsap","jam","mpas","njam","pasq","mmas","nasp","nsam"]},"148":{"input":[3,5,8],"tlp":["em",69499],"trp":["me",205039],"trw":["me",9600],"lp":["em","emp","eme","emen","emm","emme"],"rp":["me","men","pen","n'","mme","nem","ppen","mmen","mpe","nemm","nep","m'","mem","nepp"]},"149":{"input":[1,3,5,8],"tlp":["ame",31411],"trp":["pena",4673],"tlw":["appena",3899],"trw":["'na",1029],"lp":["ame","amen","ema","amme","eam","eame","emma"],"rp":["pena","'an","n'a","mane","'am","mae","'ann","nema","'na","name","pane","neam","mame"]},"150":{"input":[2,3,5,8],"tlp":["sem",25705],"trp":["pens",14000],"tlw":["sem",596],"trw":["mese",638],"lp":["sem","semp","esem","spen","sme","dem","ssem"],"rp":["pens","mes","mess","med","pend","mmed","mens","n'es","mese","mped","mede","mmes","mend"]},"151":{"input":[1,2,3,5,8],"tlw":["damane",190],"trw":["pensa",920],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",759],"trp":["mb",24935],"lp":["tm"],"rp":["mb"]},"153":{"input":[1,4,5,8],"tlp":["tam",11090],"trp":["mat",11944],"tlw":["fama",205],"trw":["mat",965],"lp":["tam","amb","fam","bam","bamb","ttam","amat","atam","tamp","amba"],"rp":["mat","matt","mant","mba","ntam","mata","mpat","mmat","pant","mbat"],"special":"numsym"},"154":{"input":[2,4,5,8],"lp":[],"rp":[]},"155":{"input":[1,2,4,5,8],"tlw":["stampa",344],"trw":["manca",395],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",30451],"trp":["ment",73144],"tlw":["be'",1001],"trw":["mentre",7346],"lp":["rm","tem","temp","empr","erm","emb","embr","rme","rem","term","trem"],"rp":["ment","mpr","mpre","mer","mbr","met","mett","pren","ntem"]},"157":{"input":[1,3,4,5,8],"tlw":["entrambe",518],"trw":["mare",1575],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["sempre",11019],"trw":["prendere",1451],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["sembra",1918],"trw":["madre",2851],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",115591],"trw":["pi",1894],"lp":[],"rp":["pi","ip","ipi","ppi","pii","pip","ipp"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",10470],"trp":["pia",13275],"trw":["piazza",530],"lp":["api","appi","apii"],"rp":["pia","paz","pazi","ipa","ppia","pai","pazz","piaz","iap","iapi","ipaz","iapp","pipa","piz","pizz","ppai"]},"162":{"input":[2,6,8],"tlp":["spi",10357],"trp":["isp",11667],"tlw":["spi",83],"lp":["spi"],"rp":["isp","pis","psi","ispi"]},"163":{"input":[1,2,6,8],"tlp":["spia",1284],"trp":["ispa",273],"tlw":["sappia",270],"trw":["passi",1081],"lp":["spia","apis","spaz","sapi","aspi"],"rp":["ispa","pais","isap","pias"]},"164":{"input":[3,6,8],"tlp":["epi",750],"trp":["pie",14120],"trw":["pie",288],"lp":["epi","eppi"],"rp":["pie","'i","ipe","i'","'ip","iep","pei","ppie","iepi","iepe"]},"165":{"input":[1,3,6,8],"tlp":["apie",832],"trp":["pez",2090],"trw":["pezzi",621],"lp":["apie","z'","zz'","ezz'","z'a","ai'"],"rp":["pez","pezz","'az","'azi","'ai"]},"166":{"input":[2,3,6,8],"tlp":["disp",3751],"trp":["pied",3956],"tlw":["spie",208],"trw":["piedi",2995],"lp":["disp","spie","dip","dipe","espi","d'i","dipi","s'i"],"rp":["pied","ispe","pid","'id","'ide","pedi","'esi","'is","pidi","ipes","'edi","kesp"]},"167":{"input":[1,2,3,6,8],"tlw":["appesi",112],"trw":["paesi",504],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",2675],"trp":["pit",7247],"tlw":["tipi",332],"lp":["tip","tipi"],"rp":["pit","piv","piti","pitt","ipit"]},"169":{"input":[1,4,6,8],"tlp":["apit",4239],"trp":["pita",2661],"trw":["piatti",270],"lp":["apit","apiv","vap"],"rp":["pita","pav","piat","pavi","piva","pati","pava","ipat"]},"170":{"input":[2,4,6,8],"tlp":["cip",5282],"trp":["pic",6757],"tlw":["tipici",78],"lp":["cip","cipi","spit","scip","stip","tisp"],"rp":["pic","picc","pisc","pist","ipic","psic","icip","pick","pici"]},"171":{"input":[1,2,4,6,8],"tlw":["capi",635],"trw":["passava",443],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",3818],"trp":["pri",41676],"tlw":["ripete",508],"trw":["pri",723],"lp":["rip","ripr","ripe","v'","v'e"],"rp":["pri","pir","peri","pev","piri","priv","piet","pire","prie","ipr","ipet","ipre","prir","prev","pier"]},"173":{"input":[1,3,4,6,8],"tlw":["apri",920],"trw":["parti",1322],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["specie",1573],"trw":["presi",303],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["sapeva",2346],"trw":["piacere",1214],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",125525],"trw":["mi",29736],"lp":[],"rp":["mi","im","min","imp","imi","mini","mpi","mmi","imm","nim","mmin","pin","inim","immi","mim","mimi","impi","pini","ph","ipin"]},"177":{"input":[1,5,6,8],"tlp":["ami",11196],"trp":["ima",27754],"tlw":["anima",623],"trw":["mai",10502],"lp":["ami","anim","ammi","ampi"],"rp":["ima","iam","mai","mia","mani","mina","hiam","pian","imma","iama","nima","iman","maz","impa","mazi","manz"]},"178":{"input":[2,5,6,8],"tlp":["sim",7979],"trp":["mis",8876],"tlw":["spin",81],"trw":["misi",410],"lp":["sim","ssim","simi","spin","smi","simp","smis","sism"],"rp":["mis","miss","mmis","ism","pins","misi","nism","imis","jim","mk"]},"179":{"input":[1,2,5,6,8],"tlw":["spina",102],"trw":["massima",364],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["empi",4592],"trp":["ime",13962],"tlw":["ehm",84],"trw":["miei",2459],"lp":["empi","emi"],"rp":["ime","imen","'in","mie","'h","iem","'im","pien","ieme","miei","'imp","impe","imme","h'","mine","ipen","inem","'imm"]},"181":{"input":[1,3,5,6,8],"tlw":["zampe",282],"trw":["piena",963],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["dimmi",325],"trw":["insieme",2565],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["assieme",502],"trw":["pensai",375],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",12886],"trp":["mbi",7548],"tlw":["tim",512],"trw":["miti",105],"lp":["tim","ttim","vim","timi","bim","bimb"],"rp":["mbi","mit","mbin","imit","ntim","imb","pint","mpit","miti","itm","mbit","miv","mith","mpiv"]},"185":{"input":[1,4,5,6,8],"tlw":["bambini",1251],"trw":["mattina",971],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",194],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["amici",1446],"trw":["macchina",1679],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["tempi",1297],"trw":["perrin",1178],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["veramente",1194],"trw":["prima",12710],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["sentimenti",600],"trw":["perche",14386],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["sembrava",3174],"trw":["presenza",1054],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",170696],"trw":["po",1713],"lp":[],"rp":["po","op","opo","ppo","opp","oppo","pop","popo","oop","ppop"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["appo",3603],"trp":["opa",1076],"lp":["appo","apo"],"rp":["opa","oppa","pao"]},"194":{"input":[2,7,8],"tlp":["spo",12332],"trp":["pos",30275],"tlw":["spo",162],"trw":["posso",2175],"lp":["spo","spos","sop","sosp","sopp"],"rp":["pos","poss","osp","opos","poso","ppos"]},"195":{"input":[1,2,7,8],"tlp":["sapo",395],"trp":["posa",1234],"tlw":["sposa",181],"trw":["passo",2265],"lp":["sapo","aspo","apos"],"rp":["posa"]},"196":{"input":[3,7,8],"tlp":["epo",996],"trp":["'o",10586],"trw":["po'",5326],"lp":["epo","eop","eppo"],"rp":["'o","ope","o'","poe","po'","'op","'ope","peo","'epo","oppe","oope","opeo","'opp","opee"]},"197":{"input":[1,3,7,8],"tlp":["eopa",82],"trp":["opea",192],"lp":["eopa"],"rp":["opea"]},"198":{"input":[2,3,7,8],"tlp":["dop",11237],"trp":["pose",2787],"tlw":["dopo",9632],"trw":["peso",740],"lp":["dop","dopo","d'o","espo","dopp","depo","epos"],"rp":["pose","poes","ospe","peso","os'","os'e","'od","'os","'odo","pod","opod","pode","'osp"]},"199":{"input":[1,2,3,7,8],"tlw":["appeso",230],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",650],"trp":["pot",22315],"tlw":["topo",171],"lp":["top","topo","ttop"],"rp":["pot","pog","ppog","pogg","pott","opot","ppot","opog"]},"201":{"input":[1,4,7,8],"trp":["pag",5925],"trw":["patto",180],"lp":[],"rp":["pag","paga","pato","opag","pago","ppag"]},"202":{"input":[2,4,7,8],"tlp":["cop",6022],"trp":["post",9448],"tlw":["scopo",742],"trw":["poco",4741],"lp":["cop","scop","copp","copo","coop","spog","cosp"],"rp":["post","poc","poco"]},"203":{"input":[1,2,4,7,8],"tlw":["capo",2162],"trw":["passato",1802],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",21378],"trp":["pro",42777],"tlw":["troppo",4434],"trw":["pero",4668],"lp":["rop","ropr","trop","ropp","rpo","ropo"],"rp":["pro","por","opr","port","pote","prop","oper","pero","'or","orp","potr","ppor","orpo","poet"]},"205":{"input":[1,3,4,7,8],"tlw":["rapporto",1150],"trw":["porta",4253],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["corpo",2667],"trw":["presto",1698],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["sopra",3357],"trw":["peccato",398],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mo",124534],"trw":["puo",6756],"lp":[],"rp":["mo","om","pu","mpo","um","mon","omp","up","uom","mu","omo","puo","pun","uomo","omm","mom","nom","ppu","pon","mun"]},"209":{"input":[1,5,7,8],"tlp":["amo",18506],"trp":["oma",10024],"tlw":["amo",246],"trw":["mano",6828],"lp":["amo","ampo","appu","apu","aum","amon"],"rp":["oma","mano","oman","ompa","uma","uman","pau","upa","munq","omma","napo","mona","uam","nuam"]},"210":{"input":[2,5,7,8],"tlp":["sup",3910],"trp":["mos",4879],"tlw":["sommo",127],"trw":["possono",1433],"lp":["sup","spon","som","smo","somm","sum","spu","ssum","supp","spun"],"rp":["mos","mus","mpos","nsom","moss","pons","moso","nsum","mous","moos"]},"211":{"input":[1,2,5,7,8],"tlw":["somma",313],"trw":["pausa",424],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["empo",10444],"trp":["ome",58690],"trw":["meno",4910],"lp":["empo","emo","eppu"],"rp":["ome","'u","meno","omen","un'","ume","mome","'un","'uo","'uom","nome","upe","nume","umen","omme","n'o","un'o"]},"213":{"input":[1,3,5,7,8],"trw":["umane",290],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["d'un",897],"trw":["modo",7852],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["domanda",1306],"trw":["pensando",468],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",2271],"trp":["punt",7081],"tlw":["tom",318],"trw":["punto",4093],"lp":["tom","tup","gom"],"rp":["punt","mont","omb","potu","pub","pubb","mot","mog","mbo","put","mob","pug","mut","pugn","moto","puto","pont"]},"217":{"input":[1,4,5,7,8],"tlw":["appunto",879],"trw":["punta",775],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["com",539],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["campo",1259],"trw":["manco",711],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["tempo",9244],"trw":["momento",5714],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",2605],"trw":["paura",1888],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["come",44183],"trw":["persone",2066],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["comunque",2203],"trw":["persona",1755],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["poi",14737],"trw":["poi",13201],"lp":[],"rp":["poi","pl","pol","pio","pli","lp","poli","olp","ipo","opol","lpo","olpo","oppi","lpi","olpi","opi","polo","ipio","ppio","ipl"]},"225":{"input":[1,6,7,8],"tlp":["alp",617],"trp":["pal",8270],"trw":["paio",1036],"lp":["alp","apol","alap"],"rp":["pal","pall","pola","paio","pala","ipal","pla","lpa","olpa","poz","pozz","palp","pali","pila","opia","lap","paol"]},"226":{"input":[2,6,7,8],"tlp":["spl",884],"trp":["ispo",7900],"tlw":["spio",684],"trw":["polso",267],"lp":["spl","spio","splo","spli"],"rp":["ispo","posi","ospi","pols","ipos","piso","lpis","plos"]},"227":{"input":[1,2,6,7,8],"tlw":["spazio",928],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["ell'",11381],"trp":["l'",63315],"trw":["pelle",1317],"lp":["ell'","epl","epli"],"rp":["l'","ll'","l'i","l'o","l'e","pel","ll'i","pell","ple","ll'e","ll'o","lpe","'io","l'op","ppel","pelo","olpe"]},"229":{"input":[1,3,6,7,8],"tlw":["appello",93],"trw":["pezzo",996],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["doppio",286],"trw":["poesie",742],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["spalle",2219],"trw":["poesia",1881],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tipo",1710],"trp":["pito",3299],"tlw":["tipo",1710],"trw":["piglio",445],"lp":["tipo","topi","volp"],"rp":["pito","pov","pig","pigl","piog","ipot","polv","polt","lpit","poti","ipig","pogl","piov","lpiv"]},"233":{"input":[1,4,6,7,8],"tlw":["appoggio",268],"trw":["pioggia",738],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["colpo",1583],"trw":["piccolo",2047],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capito",1303],"trw":["piccola",1514],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["proprio",7247],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"trw":["poteva",4863],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["rispose",2477],"trw":["percio",1506],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["capelli",2276],"trw":["particolare",1528],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["piu",40881],"trw":["piu",38322],"lp":[],"rp":["piu","lm","imo","omi","mol","omin","mio","mpl","mil","uomi","impo","ilm","mpli","lim","ompl","ommi","mili","mpio","imil","umi"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["animali",640],"trw":["piano",2006],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simili",901],"trw":["luminoso",184],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["siamo",2506],"trw":["possiamo",953],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["l'uomo",2192],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["almeno",2906],"trw":["mezzo",2952],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["esempio",1778],"trw":["modi",645],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["domani",713],"trw":["posizione",1014],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"trw":["molto",8286],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["abbiamo",2561],"trw":["montalbano",3474],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["comincio",1412],"trw":["piuttosto",1744],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["amico",1691],"trw":["possibilita",1220],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"trw":["meglio",3762],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["finalmente",1303],"trw":["ormai",2373],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["semplice",1455],"trw":["possibile",2609],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["commissario",2277],"trw":["l'unica",795],"lp":[],"rp":[]}} \ No newline at end of file
diff --git a/keyboards/gboards/dicts/aset/_generator/src/nl-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/nl-keymap.json
new file mode 100644
index 0000000000..2869e8f77c
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/_generator/src/nl-keymap.json
@@ -0,0 +1 @@
+{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",565178],"tlw":["a",1899],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",31510],"tlw":["s",593],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["wa",249084],"tlw":["was",91211],"lp":["wa","as","was","waa","sa","aas","ass","ssa","ws","wass","assa","sw","aw","saa","swa","swaa","ww","awa","awaa","waas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",595701],"tlw":["e",445],"lp":["ee","eee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",9134],"tlw":["x",171],"lp":["ea","ex","ax","ae","xe","xa","eaa","exa","axe","exe"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",835524],"tlw":["de",381576],"lp":["de","es","ed","se","ede","dd","dde","ds","eed","ees","sse","dee","eds","eeds","deed","ess","sd","ese","dse","eede"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",270505],"tlw":["we",27843],"lp":["da","we","ad","wee","daa","ew","ewe","ade","add","adde","eda","wees","ewee","wd","dw","aad","edaa","wde","asse","ada"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",33524],"tlw":["t",381],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",290899],"tlw":["af",9932],"lp":["at","ta","aat","af","ft","taa","fa","ff","taat","taf","att","tat","aaf","aatt","ata","aff","fat","tf","tta","aft"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",260352],"tlw":["c",381],"lp":["st","sc","ts","ct","tst","ssc","cc","stt","tsc","tc","sts","stst","sst","stsc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ac",73946],"tlw":["wat",36195],"lp":["ac","wat","sta","tw","ast","staa","ats","aats","fs","wac","ca","aast","atst","act","afs","tas","fst","twa","fac","tac"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",710975],"tlw":["te",105276],"lp":["er","et","te","re","eer","ter","ere","rt","tr","ete","tte","ert","ree","eet","rte","tre","tee","ett","rr","ette"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",396560],"tlw":["extra",700],"lp":["ar","aar","ra","ef","raa","eef","are","ate","eft","eeft","fe","art","tra","era","ater","fr","rat","ara","afe","ffe"],"rp":[]},"14":{"input":[2,3,4],"tlp":["rd",138895],"tlw":["eerste",6507],"lp":["rd","der","ste","rs","erd","rde","ers","est","dr","ec","erde","dere","ets","rst","eder","erst","eest","eerd","ster","str"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["dat",155858],"tlw":["dat",136467],"lp":["dat","waar","wer","daar","war","fd","ard","weer","ware","werd","rw","erw","twe","twee","dac","aard","dra","fde","weet","ader"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",51105],"trw":["n",1346],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",559245],"trp":["na",127869],"tlw":["aan",55690],"trw":["na",10653],"lp":["an","aan","ann","ana","anna","aann","anaa","aq"],"rp":["na","naa","nna","nan","naan","nnaa"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",9856],"trp":["jn",169981],"trw":["j",357],"lp":["sn","sj"],"rp":["jn","ns","js","nj","jns"]},"19":{"input":[1,2,5],"tlp":["wan",14017],"trp":["ja",31023],"tlw":["san",173],"trw":["ja",6777],"lp":["wan","ans","wann","aans","anw","sna","san","aanw","anj","aj","asj"],"rp":["ja","jaa","jna","nw","naas","jan","jas","jw","nja"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",1522448],"trp":["ne",132761],"tlw":["en",225891],"trw":["nee",4568],"lp":["en","een","ene","enen","enn","enne","enee","ey","eene","eeen"],"rp":["ne","nen","nne","nnen","nee","nnee","neen","ny","nny","yn"]},"21":{"input":[1,3,5],"tlp":["anne",10606],"trp":["ya",413],"tlw":["anne",219],"lp":["anne","ena","ane","enaa","anen","ean","ay","anee","eaan","enan","xan","exan","anny","xy","exy","eq","eena"],"rp":["ya","yan","nane"]},"22":{"input":[2,3,5],"tlp":["den",130605],"trp":["nd",254142],"tlw":["eens",9370],"trw":["je",69369],"lp":["den","ens","end","sen","ende","eden","eens","dden","ssen","ense","sje"],"rp":["nd","nde","je","jd","nden","nse","nsen","jde","jes"]},"23":{"input":[1,2,3,5],"tlp":["and",86982],"trp":["nda",7813],"tlw":["dan",33270],"trw":["new",907],"lp":["and","dan","ande","wen","aand","anda","daan","anse","ands","aden","wens","anwe","wend"],"rp":["nda","nad","ndaa","nwe","nada","nade","ndan"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",17696],"trp":["nt",98660],"tlw":["b",387],"lp":["bb","bt","tb","tn"],"rp":["nt","nb","ntb","ntt"]},"25":{"input":[1,4,5],"tlp":["ant",32323],"trp":["nat",8926],"tlw":["baan",878],"trw":["nat",410],"lp":["ant","ba","taan","tan","baa","ban","ab","anta","aant","tba","anaf","tant","fan","baan","fant"],"rp":["nat","nta","naf","nf","nba"]},"26":{"input":[2,4,5],"tlp":["tj",16496],"trp":["nst",10582],"lp":["tj","bs","sb","stj","stb","tsn"],"rp":["nst","nc","jt","nts","nsc","ntj","jst","jnt","ntst","ntsn","nct","jntj","ntsc","jb"]},"27":{"input":[1,2,4,5],"tlp":["want",6670],"trp":["jf",10865],"tlw":["want",6458],"trw":["naast",3850],"lp":["want","antw","stan","baas","anc","atj","fj","abs","bas","aatj","anst"],"rp":["jf","ntw","nac","jft","jac","nsta","ntac","nanc","ntas"]},"28":{"input":[3,4,5],"tlp":["be",171694],"trp":["nte",12846],"tlw":["ben",10919],"trw":["net",7100],"lp":["be","ten","ren","eb","ben","br","eren","ent","eten","bbe","bben","ebb","ebbe","rb","bee","rn","tten","bet","ber"],"rp":["nte"]},"29":{"input":[1,3,4,5],"tlp":["aren",23808],"trp":["naar",55710],"tlw":["eraan",1152],"trw":["naar",52688],"lp":["aren","aten","ran","rna","bra","arn","aarn","arna","baar","ante","bar","rba","erba","fran","eran","arb","fen","raan","rant"],"rp":["naar"]},"30":{"input":[2,3,4,5],"tlp":["rden",25498],"trp":["nder",65247],"tlw":["beetje",4094],"lp":["rden","bes","tje","bed","sten","best","etj","etje","eetj","tend","cen","rend","besc","cent","enst","tjes"],"rp":["nder","nste","ntje","ndr"]},"31":{"input":[1,2,3,4,5],"tlw":["waren",17010],"trw":["jaar",7230],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",416],"trw":["i",704],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["zi",217546],"trp":["ia",10521],"tlw":["z",113],"lp":["zi","za","ai","zaa","aai","az","azi","zz","zia","azia","zaai","zzi"],"rp":["ia","iz","iaa","iza","izi","izaa","izz","izzi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",19356],"trp":["ik",185103],"trw":["ik",149098],"lp":["si","ssi","sk","sis","ssis"],"rp":["ik","is","kk","ki","iss","ks","ikk","kki","iks","isi","isk","issi","kis","ikki","isis"]},"35":{"input":[1,2,6],"tlp":["wi",80880],"trp":["ka",52225],"tlw":["zaak",1687],"trw":["kaas",199],"lp":["wi","ak","aak","zw","wis","zwa","akk","zak","zaak","wak","zwaa","wakk","zwi"],"rp":["ka","kw","kwa","kaa","ika","kas","kwaa"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",112497],"trp":["ie",427576],"tlw":["ei",126],"trw":["ie",333],"lp":["ei","eie","eei"],"rp":["ie","iee"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",250139],"trp":["ize",3585],"tlw":["ze",116542],"lp":["ze","ez","zei","eze","zie","ezi","ezie","zee","aze","aie","eiz","aaie","eza","eize","xi","axi","eiza"],"rp":["ize","iez","ieze"]},"38":{"input":[2,3,6],"tlp":["di",156986],"trp":["ke",180090],"tlw":["die",84576],"trw":["keek",10339],"lp":["di","ek","die","eke","eek","eid","ekk","ekke"],"rp":["ke","id","kke","kee","ide","keek","ied","idd","iede","iek","ies","idde"]},"39":{"input":[1,2,3,6],"tlp":["ake",15537],"tlw":["deze",10880],"trw":["kwaad",950],"lp":["ake","dez","deze","wie","akke","zek","zeke","aid","wei","aaid","aide","wez","wek","ziek","week","zes","zwe","ewi","zake","adi"],"rp":[]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",92155],"trp":["it",127567],"tlw":["tv",365],"trw":["it",435],"lp":["ti","vi","tv","tti","tit","vit","titi","tiv","tivi","viv","tvi","vivi"],"rp":["it","itt","iti","iv","ivi","itv","ivit","itti"]},"41":{"input":[1,4,6],"tlp":["va",224506],"trp":["if",3864],"tlw":["zat",6137],"trw":["if",78],"lp":["va","zit","av","ati","zat","fi","zitt","vaa","tz","fti","ffi","via","tzi","avi","vat","tai"],"rp":["if","ita","itz","ift"]},"42":{"input":[2,4,6],"tlp":["sti",15829],"trp":["ic",74589],"tlw":["vis",333],"trw":["kist",358],"lp":["sti","ci","ck","cti","tis","sit","tisc","vis","tk","tik","sv"],"rp":["ic","kt","ist","issc","ikt","isc","its","ici","kst"]},"43":{"input":[1,2,4,6],"tlp":["zic",46006],"trp":["kat",1851],"tlw":["wist",7236],"trw":["kast",575],"lp":["zic","akt","aakt","wist","vas","vast","twi","wit","vaak","zac","tak","stak","witt","asti","acti","vak","cia","ack"],"rp":["kat","kast"]},"44":{"input":[3,4,6],"tlp":["ve",223463],"trp":["iet",126034],"tlw":["vier",2544],"lp":["ve","ver","ri","ev","vr","eve","tie","rie","eri","vee","rv","vert","erv","vri","rei","vie"],"rp":["iet","ier","ite","itte"]},"45":{"input":[1,3,4,6],"tlp":["ari",10534],"trp":["ief",8550],"tlw":["zette",2378],"lp":["ari","zet","rz","vra","eva","rva","atie","vraa","zett","erz","raai","vera","erva","arv","aarv","ave","verz","aari","var"],"rp":["ief"]},"46":{"input":[2,3,4,6],"tlp":["rk",33984],"trp":["iets",24709],"tlw":["dit",13642],"trw":["iets",14243],"lp":["rk","erk","dit","verd","rek","dri","vers","rke","erke","eker","ric","tek","drie"],"rp":["iets","kte","ker","kr","keer","iste","kri"]},"47":{"input":[1,2,3,4,6],"tlw":["vader",6824],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",343391],"trw":["in",146093],"lp":[],"rp":["in","hi","ni","inn","nin","nh","ini","nni","hin","hn","nnin","inni","inh","hni","hnn","ih","nhi","inin","inhi"]},"49":{"input":[1,5,6],"tlp":["zin",7282],"trp":["ha",212677],"tlw":["zin",2379],"trw":["hanna",165],"lp":["zin","ani","ah","anz","anni","zinn","anh","zan","aanz"],"rp":["ha","haa","han","nz","hz","ina","nzi","ian","inz","nza","nzin"]},"50":{"input":[2,5,6],"trp":["ij",550946],"trw":["hij",131508],"lp":[],"rp":["ij","ijn","hij","jk","ijk","nk","kin","kij","kijk","ji","kn","ink","jij","nis","ins","nik","ijs","kni","hijn","isj"]},"51":{"input":[1,2,5,6],"tlp":["zij",124236],"trp":["kan",22915],"tlw":["zijn",106271],"trw":["kan",12791],"lp":["zij","zijn","wij","ank","win","wijz","wijn","wijs","anks","aank","zwij","wink"],"rp":["kan","jz","ijz","ijna","kans","haas","kaan","kwij"]},"52":{"input":[3,5,6],"tlp":["ein",21712],"trp":["he",426236],"tlw":["eh",524],"trw":["hen",5498],"lp":["ein","eh","eni","eine","ehe","enin","eini","enh"],"rp":["he","nie","ien","hee","hie","inne","hei","ine","hen","heen","hien","nhe"]},"53":{"input":[1,3,5,6],"tlp":["zien",14842],"trp":["nze",8382],"tlw":["zien",8781],"trw":["inzien",116],"lp":["zien","zen","eha","ezen","anie","enz","azen","ezin","ehan","aien","anze","ehaa","enza","eenz","enzi"],"rp":["nze","hze","izen","nzen","hae"]},"54":{"input":[2,3,5,6],"tlp":["eken",22412],"trp":["ken",85243],"tlw":["denk",3418],"trw":["kijken",4068],"lp":["eken","enk","din","denk","enke"],"rp":["ken","ind","ijd","nke","jke","ijke","inde","kken","heid","kind","iend","ndi","nken","kend","ijde"]},"55":{"input":[1,2,3,5,6],"tlw":["weken",1635],"trw":["had",55453],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",59526],"trp":["ht",123626],"tlw":["bh",81],"lp":["bi","th","vin","bin","binn","tin","ttin"],"rp":["ht","hti","int","nti","nv","htt","htin","inti","htb","hit","ntv","ib","nth"]},"57":{"input":[1,4,5,6],"tlp":["van",189387],"trp":["hat",1531],"tlw":["van",171860],"trw":["haat",432],"lp":["van","vana","anti","tha","anv","aanv","anva","fin","ath","anav","abi","fh"],"rp":["hat","nva","nati","htba","inf","nav","hav","haat"]},"58":{"input":[2,4,5,6],"tlp":["ch",268567],"trp":["ich",66755],"tlw":["bij",29299],"trw":["kijkt",1607],"lp":["ch","cht","sch","bij","tij","chi","schi","chti","ssch","vij","bijn","chij"],"rp":["ich","icht","jv","ijv","isch","jkt","ijkt","hts"]},"59":{"input":[1,2,4,5,6],"tlw":["zich",32148],"trw":["kant",2963],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["ven",53110],"trp":["het",230522],"tlw":["even",9723],"trw":["het",226716],"lp":["ven","even","rin","rh","erh","erin","rien","the","verb"],"rp":["het","niet","hte","heb","hter","hebb","her","hten","hier","hr","iten"]},"61":{"input":[1,3,4,5,6],"tlw":["zitten",5880],"trw":["haar",73072],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["tijd",8288],"trw":["niets",8728],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["achter",7426],"trw":["hard",1821],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",285058],"trw":["o",2376],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",407],"trp":["oa",7486],"lp":["ao"],"rp":["oa","ooa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",27187],"trp":["os",19065],"tlw":["so",132],"lp":["so","soo","sso"],"rp":["os","oos","oss","oso","osoo"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",53022],"trp":["ow",2105],"lp":["wo","woo","aso","aos","sow","woa"],"rp":["ow","owa","osa","owaa","ossa"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",2682],"trp":["oe",232725],"trw":["-",7439],"lp":["eo","e-","eoo","eoe"],"rp":["oe","o-","-o","-oo"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",189],"trp":["-a",938],"lp":["xo","exo","a-","x-","ex-"],"rp":["-a","o-a","ox","oea"]},"70":{"input":[2,3,7],"tlp":["do",77681],"trp":["oed",31676],"tlw":["dood",3509],"lp":["do","doo","doe","dood","edo","so-","edoe","dod","dode","se-"],"rp":["oed","od","oes","oede","ood","ode","-s","ods","ose","oods"]},"71":{"input":[1,2,3,7],"tlp":["ewo",10898],"trp":["oda",3201],"tlw":["woede",613],"lp":["ewo","ewoo","woe","woed","dwo","woes","edwo","ado","so-a","d-a","dow","ados","wod"],"rp":["oda","oew","oewe","owe","-w","-we","oad"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",114612],"trp":["og",71340],"tlw":["tot",16339],"trw":["oog",1205],"lp":["to","go","tot","gt","gg","tg","too","goo","tto","toot","got"],"rp":["og","ot","oot","oog","ott","oto","otto","ogt","oogt"]},"73":{"input":[1,4,7],"tlp":["ag",68842],"trp":["of",61079],"tlw":["gaat",6123],"trw":["of",29931],"lp":["ag","ga","gaa","fo","aag","gaat","gaf","fg","afg","foo","fot","foto","gat","tof","agt","aagt"],"rp":["of","oof","off","oga"]},"74":{"input":[2,4,7],"tlp":["sto",24832],"trp":["oc",27927],"tlw":["stoot",131],"trw":["oogst",77],"lp":["sto","co","toc","gs","gst","sg","stoo","gc","sgc","soc","cto"],"rp":["oc","ots","ost","oots","otst","oost","ogs","oogs","ogst"]},"75":{"input":[1,2,4,7],"tlp":["sof",6578],"trp":["oca",652],"tlw":["stof",570],"lp":["sof","two","twoo","gas","wag","gast","stof","woog","wsg","gw","aco","ags","wog","astg","sag","ssag","twag"],"rp":["oca","ocaa","osof"]},"76":{"input":[3,4,7],"tlp":["ge",441497],"trp":["or",220309],"tlw":["toe",7828],"trw":["oor",713],"lp":["ge","ro","eg","ege","gr","toe","rg","gee","roe","gro","ger","teg","tege","rge","erg"],"rp":["or","oor","oet","oge","oeg"]},"77":{"input":[1,3,4,7],"tlp":["age",21589],"trp":["-f",7172],"tlw":["graag",2369],"lp":["age","aro","aaro","raag","gra","rag","rage","t-f","t-fa","ega","fge","afge","for","graa","arg"],"rp":["-f","-fa","oef","ora","-fo"]},"78":{"input":[2,3,4,7],"tlp":["door",33484],"trp":["ord",50515],"tlw":["door",27762],"lp":["door","gd","ges","goed","ged","gde","egd","dro","gest","rdo","gesc","god","egde"],"rp":["ord","orde","oord","oest","ordt","ors","orst"]},"79":{"input":[1,2,3,4,7],"tlw":["weg",9038],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",217953],"trw":["nu",18377],"lp":[],"rp":["on","ou","no","un","nu","uu","oon","unn","noo","nou","onn","non","ono","nno","nuu","oun","onno","uno","nnu","oonn"]},"81":{"input":[1,5,7],"tlp":["au",17538],"trp":["nau",2224],"tlw":["qua",92],"trw":["oan",54],"lp":["au","ano","anu","qu","qua","anon","anua","aou"],"rp":["nau","ua","ona","onaa","oan","nua","uan","onna","oq","oqu","nao","noa"]},"82":{"input":[2,5,7],"tlp":["su",4221],"trp":["us",37357],"tlw":["suus",122],"trw":["ons",10726],"lp":["su","soon","son","sno"],"rp":["us","jo","ons","ju","jon","uss","jou","nos","ous","joo","uns","usj","jos","oj","osj","jus"]},"83":{"input":[1,2,5,7],"tlp":["woon",7683],"trp":["uw",53486],"tlw":["wou",586],"trw":["uw",2686],"lp":["woon","auw","won","wu","wus","anos","wou","aus","wonn"],"rp":["uw","ouw","nauw","uws","jouw","nwo","nwoo","onw","nuw","uwa","nuwa"]},"84":{"input":[3,5,7],"tlp":["eu",50132],"trp":["oen",39532],"trw":["you",472],"lp":["eu","eno","enoe","eeu","eun","enu","enoo"],"rp":["oen","unne","noe","one","onne","oene","neu","ue","n-","onen","yo","onee","you"]},"85":{"input":[1,3,5,7],"tlp":["eau",2046],"trp":["ux",203],"lp":["eau","que","e-na","equ","eque","enau","xon","an-","ean-","quen","ena-"],"rp":["ux","uxe","-na","oya","-an","o-an","na-","oyaa"]},"86":{"input":[2,3,5,7],"tlp":["du",25835],"trp":["ond",80377],"tlw":["doen",9594],"trw":["oude",3893],"lp":["du","doen","dus","deu","don","eus","edu"],"rp":["ond","onde","ud","oud","ude","oude","uden","usse","nod","udd","udde","oden","oond"]},"87":{"input":[1,2,3,5,7],"tlw":["wonen",867],"trw":["ouwe",411],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",35213],"trp":["ng",141175],"tlw":["boog",1018],"trw":["nog",33780],"lp":["bo","tu","ton","bu","tuu","gon","boo","gu","bou"],"rp":["ng","nog","ont","ong","ut","ug","ob","unt","uto","ub","out"]},"89":{"input":[1,4,5,7],"tlp":["ang",42251],"trp":["natu",6022],"tlw":["gaan",11291],"trw":["nota",126],"lp":["ang","gaan","fon","font","atu","atuu","gan","aut","auto","aang","gang","foon","bang","anto","tua"],"rp":["natu","uf","onta","uff","noga"]},"90":{"input":[2,4,5,7],"tlp":["ston",12659],"trp":["uc",9757],"tlw":["boos",682],"trw":["jong",894],"lp":["ston","stu","tus","tuss","con","cont","stuu","cu","bos","conc"],"rp":["uc","ust","jong","jg","ngs","ngst","onts","jgt","onc","noc"]},"91":{"input":[1,2,4,5,7],"tlw":["angst",1249],"trw":["jacob",378],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",143754],"trp":["ur",56772],"tlw":["toen",23218],"trw":["ogen",8241],"lp":["gen","ru","egen","toen","geen","eur","geb","rou","beg","ron","eru","rug","geno","ggen"],"rp":["ur","nge","ngen","uur","onge","ogen"]},"93":{"input":[1,3,4,5,7],"tlw":["gegaan",1465],"trw":["naartoe",554],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["stond",8649],"trw":["onder",8950],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["worden",11389],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["li",171979],"trw":["l",236],"lp":[],"rp":["li","ll","lo","il","ol","oi","ooi","loo","ill","lli","ili","oll","io","oli","ool","ilo","olo","illi","llo","oil"]},"97":{"input":[1,6,7],"tlp":["al",225980],"trp":["la",129950],"tlw":["zo",26684],"trw":["la",525],"lp":["al","zo","all","aal","zal","zoa","zoal","ali","zoo","zoi"],"rp":["la","laa","oal","oz","lla","olla","ola","ial","laz","lia"]},"98":{"input":[2,6,7],"tlp":["sl",31416],"trp":["ls",78404],"tlw":["slok",358],"trw":["ook",30107],"lp":["sl","slo","sli","sloo"],"rp":["ls","ko","ok","ook","kl","lk","lik","lso","klo","okk","los","lis","olk","loos","kli","koo"]},"99":{"input":[1,2,6,7],"tlp":["als",67283],"trp":["lka",8548],"tlw":["als",51537],"trw":["las",791],"lp":["als","wil","sla","also","will","slaa","wal","wol","alis","zow"],"rp":["lka","lkaa","kla","oals","las","lak","klaa","lw","kal","klas"]},"100":{"input":[3,6,7],"tlp":["el",334993],"trp":["le",209513],"tlw":["el",147],"trw":["leo",319],"lp":["el","eli","ele","eel","ell","elle","elo","eil","eloo"],"rp":["le","lle","lee","lie","oel","lei","iel","llee","ille","loe","oei"]},"101":{"input":[1,3,6,7],"tlp":["alle",39915],"trp":["lez",2818],"tlw":["alle",6909],"trw":["lizzie",74],"lp":["alle","zel","ale","ela","zoe","ezel","ezo","ezoe","zoie","elaa","eal","ziel","ael"],"rp":["lez","oze","leze","laze","iale","oez","lezi"]},"102":{"input":[2,3,6,7],"tlp":["eld",44452],"trp":["ld",72634],"tlw":["elke",2943],"trw":["leek",4071],"lp":["eld","del","elde","elk","deli","els","esl"],"rp":["ld","lde","kel","oek","kle","ild","ilde","les","lles","keli","klei","led","lke"]},"103":{"input":[1,2,3,6,7],"tlw":["wel",21511],"trw":["kale",288],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",141909],"trp":["ig",90099],"tlw":["vol",3408],"trw":["ooit",2846],"lp":["vo","voo","gi","vol","tig","volg","vl","gl","gli"],"rp":["ig","ov","lt","lg","oit","ooit","olg","lig","lti","lot","lit"]},"105":{"input":[1,4,6,7],"tlp":["alt",12700],"trp":["lf",27918],"tlw":["zag",8836],"trw":["laat",4912],"lp":["alt","val","zag","alti","tal","fl","avo","vall","zig","gla","alf","zov","vla","taal","gz"],"rp":["lf","laat","lat","lag","loof"]},"106":{"input":[2,4,6,7],"tlp":["stig",5578],"trp":["lic",9686],"tlw":["stil",1726],"trw":["kost",381],"lp":["stig","slot","stil","col","gis","cl","sig","volk","voc","gist","tok","stok"],"rp":["lic","kig","kkig","okt","lots","kost","koc","lst"]},"107":{"input":[1,2,4,6,7],"tlw":["alsof",6162],"trw":["last",650],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["voor",79011],"trp":["ove",54444],"tlw":["voor",54531],"trw":["over",27647],"lp":["voor","gel","rl","tel","gev","vro","voe","erl","veel","rli","voel","eig","vroe","evo","eige"],"rp":["ove","over","ige","lev","leve"]},"109":{"input":[1,3,4,6,7],"tlw":["zelf",5574],"trw":["later",4901],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["voelde",4707],"trw":["kreeg",3295],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["elkaar",7935],"trw":["laatste",4077],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ui",114860],"trw":["hun",16526],"lp":[],"rp":["ui","ho","hu","hoo","lu","ul","hui","hou","hun","lin","nl","nooi","lui","nli","ull","hon","lon","ulli","hul","uin"]},"113":{"input":[1,5,6,7],"tlp":["zou",30976],"trp":["lan",39246],"tlw":["zou",25914],"trw":["hal",496],"lp":["zou","zon","zu","zul","zull","zoon","anui"],"rp":["lan","hal","onz","haal","uz","lau","uiz","nal","uzi","nla","nlan","llan","laan"]},"114":{"input":[2,5,6,7],"trp":["lij",77650],"trw":["kon",15534],"lp":[],"rp":["lij","lijk","uis","uk","kon","ku","kun","huis","kunn","jl","ijl","nlij","onk","uik","luk","ukk","jul","luis","jull","link"]},"115":{"input":[1,2,5,6,7],"tlw":["zus",901],"trw":["hals",521],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elen",11125],"trp":["len",43428],"tlw":["ellen",353],"trw":["hoe",13915],"lp":["elen","eho","elu","enl","elin","enli"],"rp":["len","hoe","llen","hel","hele","leen","heel","ieu","nieu","nel","lein","leu","hiel","ly"]},"117":{"input":[1,3,5,6,7],"tlw":["alleen",11766],"trw":["onze",5956],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["snel",4364],"trw":["kunnen",11536],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["zouden",4749],"trw":["nieuwe",3839],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",35668],"trp":["ing",72541],"tlw":["ging",11015],"trw":["uit",32730],"lp":["bl","gin","ging","bli","von","bov","bui","buit","ting","blo","tui","ving","gh"],"rp":["ing","uit","ling","nig","ning","htig","hoog"]},"121":{"input":[1,4,5,6,7],"tlw":["vanuit",1383],"trw":["lang",5446],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["toch",11105],"trw":["kunt",2792],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["blijft",1361],"trw":["langs",3708],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["eigen",5173],"trw":["leven",7694],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["zeggen",6400],"trw":["laten",6557],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["vond",4220],"trw":["krijgen",3495],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["altijd",8787],"trw":["hoofd",7271],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",12540],"trw":["p",961],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",30480],"trp":["pa",44369],"tlw":["aap",260],"trw":["papa",882],"lp":["ap","app","aap","apa","appa"],"rp":["pa","paa","pap","ppa","papa","papp"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",30385],"trp":["ps",2263],"lp":["sp"],"rp":["ps","psp"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",3276],"trp":["pas",6100],"trw":["pas",3162],"lp":["spa","wap","asp","spaa","aps","wsp","wapp"],"rp":["pas","pass","pw","pasp","ppas"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",32631],"trp":["pe",64915],"trw":["'",114697],"lp":["ep","epe","eep","epp","eppe","e'","ee'"],"rp":["pe","ppe","pee","'e","'ee","''","pep","pepe","'p"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["appe",4414],"trp":["'a",772],"trw":["px",303],"lp":["appe","ape","epa","epaa","a'","xp","exp","xpe","expe","apa'"],"rp":["'a","px","pape","pa'"]},"134":{"input":[2,3,8],"tlp":["spe",7419],"trp":["'s",4942],"trw":["'s",2281],"lp":["spe","esp","spee","dp","espe","sep","d'","dep","eps","dpe","d's","epse"],"rp":["'s","'d","pd","'de","pes","pese","pse","ped"]},"135":{"input":[1,2,3,8],"tlp":["wape",918],"trp":["'w",3268],"tlw":["da's",142],"trw":["'we",656],"lp":["wape","a's","aspe","espa","dap","dapp","epas","dpa","da'","ewap"],"rp":["'w","'wa","'da","pad","'we","'waa","pda","padd","'daa","'wee"]},"136":{"input":[4,8],"tlp":["tp",294],"trp":["pt",17059],"trw":["pt",3175],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",4643],"trp":["pat",1164],"trw":["pat",62],"lp":["tap","apt","tapt","tapp","aapt","tpa","tpaa","fp","afp","aafp"],"rp":["pat","patt"]},"138":{"input":[2,4,8],"tlp":["tsp",813],"trp":["pst",986],"lp":["tsp"],"rp":["pst","psc"]},"139":{"input":[1,2,4,8],"tlp":["stap",4318],"trp":["past",1080],"tlw":["stap",923],"trw":["past",219],"lp":["stap","fsp","afsp","tspa","cap","capa","apst","spac","spat"],"rp":["past","psta","pac","pats"]},"140":{"input":[3,4,8],"tlp":["rp",6434],"trp":["pr",39150],"trw":["'t",3159],"lp":["rp","erp","reep","ept","rpe","erpe","rep","epr","epte","repe","eper"],"rp":["pr","per","pre","pte","'t","pet","pper","pete","pree"]},"141":{"input":[1,3,4,8],"tlp":["rap",4098],"trp":["pra",9631],"tlw":["trap",1366],"trw":["paar",6885],"lp":["rap","apte","trap","rapp","tape","rapt","apar","epar","epra"],"rp":["pra","paar","par","prat","praa","part","ppar","para","perf","pera","patr"]},"142":{"input":[2,3,4,8],"tlp":["spr",12727],"trp":["pers",3101],"tlw":["respect",322],"trw":["pers",244],"lp":["spr","spre","espr","spec","rsp","rspr","sper","ersp","cep","cept","tspr","sept"],"rp":["pers","prec","pec","pect","pres","pdr","perd","pste"]},"143":{"input":[1,2,3,4,8],"tlw":["stapte",1114],"trw":["'dat",1386],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",11785],"trw":["m",364],"lp":[],"rp":["mm","mp","nm","pn","pm","np","mn"]},"145":{"input":[1,5,8],"tlp":["am",70985],"trp":["ma",173379],"trw":["man",11151],"lp":["am","aam","amp","ama","amm"],"rp":["ma","maa","man","nam","pan","naam","mann","maan","nap","pann","nma","mam","nmaa","mma","mama"]},"146":{"input":[2,5,8],"tlp":["sm",4193],"trp":["ms",12782],"trw":["ms",164],"lp":["sm","sms"],"rp":["ms","jp","pj","nsp","mpj","nsm","jsm","jm","mps"]},"147":{"input":[1,2,5,8],"tlp":["wam",13717],"trp":["jam",1619],"tlw":["span",501],"trw":["massa",211],"lp":["wam","sam","span","sma","ams","snap","apj","smaa","aams","asm"],"rp":["jam","mas","jasp","jamm","mans","maj","mw","panj","jap","mass"]},"148":{"input":[3,5,8],"tlp":["em",102948],"trp":["me",272103],"tlw":["em",708],"trw":["me",29423],"lp":["em","eme","emen","eem","epen","enm","emm"],"rp":["me","men","mee","pen","'n","mme","ppen","nem","neme","mpe","mene","meen","neem"]},"149":{"input":[1,3,5,8],"tlp":["ema",26711],"trp":["name",3318],"tlw":["aannemen",185],"trw":["mannen",3680],"lp":["ema","ame","emaa","eman","amen","apen","enma","amme","ampe","eam","eema","emma","enam","eaam"],"rp":["name","'ma","'maa","max","pame","'na"]},"150":{"input":[2,3,5,8],"tlp":["emd",5986],"trp":["md",17766],"tlw":["sms'je",55],"trw":["mensen",8143],"lp":["emd","emde","dem","eemd","sme"],"rp":["md","mens","mde","mees","'j","pje","med","mes","pend","jpe","jpen","'je","mede","mend","mden"]},"151":{"input":[1,2,3,5,8],"tlw":["samen",3346],"trw":["maanden",1720],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",3132],"trp":["mt",9354],"trw":["mt",93],"lp":["tm","bm"],"rp":["mt","mb","ntm","mpt","pb","mbt","ntp"]},"153":{"input":[1,4,5,8],"tlp":["fam",4992],"trp":["mat",3403],"tlw":["tam",57],"trw":["maat",316],"lp":["fam","tam","amb","tma","fm","tmaa","amt","aamt","ambt","afm","amat"],"rp":["mat","maat","mant","napt","mba","mf","matt","mfa","mfan"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",234],"trp":["mst",4009],"tlw":["cm",234],"lp":["cm","stm"],"rp":["mst","jpt","ntsp","msc","nstm"]},"155":{"input":[1,2,4,5,8],"tlw":["stam",199],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",26544],"trp":["met",89793],"tlw":["ermee",749],"trw":["met",82919],"lp":["rm","rme","erm","tem","rmee","rmen","reem","bep","erme","temm","emt"],"rp":["met","mer","meer","ment","mete","mmer","mte","mbe","mber"]},"157":{"input":[1,3,4,5,8],"tlw":["armen",1959],"trw":["maar",65784],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["stem",3280],"trw":["meeste",1332],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["waarmee",1313],"trw":["jasper",582],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",15794],"lp":[],"rp":["pi","ip","ipp","ppi","pip"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",2645],"trp":["pz",1834],"trw":["pizza",62],"lp":["api","appi"],"rp":["pz","papi","pzi","pai","pia","pza","pzaa","piz","pizz"]},"162":{"input":[2,6,8],"tlp":["spi",2906],"trp":["pk",1286],"trw":["pik",322],"lp":["spi"],"rp":["pk","pis","pik","kip","isp","ips","kipp","pikk","kp","ksp","kspi","pki"]},"163":{"input":[1,2,6,8],"tlp":["apk",775],"trp":["pak",6092],"trw":["pak",881],"lp":["apk","aapk","apka","wip"],"rp":["pak","kap","pakk","kapi","pka","pwi","kaps","kapp","ppak","kaap","paki","pkw","pkwa"]},"164":{"input":[3,6,8],"tlp":["epi",821],"trp":["iep",14334],"lp":["epi","eppi"],"rp":["iep","pie","'i","iepe","ippe","ipe","iepi","ppie","pipe","pei","piep","i'"]},"165":{"input":[1,3,6,8],"tlp":["apie",1574],"trp":["'z",1130],"tlw":["appie",556],"trw":["'ze",578],"lp":["apie","z'","zeep","zi'","azi'"],"rp":["'z","'ze","pze","'zi"]},"166":{"input":[2,3,6,8],"tlp":["diep",3859],"trp":["'ik",3806],"tlw":["diep",1774],"trw":["'ik",3806],"lp":["diep","spie","disp","dpi","espi","epk"],"rp":["'ik","'k","'di","'die","'is","pike","ieps","'ki","i's","pke","pkee","peek","piek","iepk"]},"167":{"input":[1,2,3,6,8],"tlw":["zweep",76],"trw":["'wie",183],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",323],"trp":["pit",1634],"tlw":["tip",80],"trw":["pitt",114],"lp":["tip"],"rp":["pit","pv","ipt","pti","pitt","pvi","itp"]},"169":{"input":[1,4,6,8],"tlp":["apit",813],"trp":["pva",678],"lp":["apit","tapi"],"rp":["pva","pati","pvat","pita","itpa"]},"170":{"input":[2,4,6,8],"tlp":["cip",273],"trp":["pitc",623],"tlw":["spits",84],"lp":["cip","stip","spit","scip","tips"],"rp":["pitc","pist","itsp","pisc","ptis","pits","pikt","pic","pick","psti"]},"171":{"input":[1,2,4,6,8],"trw":["pakt",384],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["riep",2691],"trp":["pri",3982],"tlw":["riep",2470],"trw":["piper",395],"lp":["riep","verp","rip","epti","ript"],"rp":["pri","pier","ierp","peri","pite","piet","prei","iper","iept","prie","ipte","perv","ptie","'v","priv"]},"173":{"input":[1,3,4,6,8],"trw":["papier",791],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["spreekt",454],"trw":["precies",2555],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["sprak",1554],"trw":["pakte",1998],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",99056],"trw":["min",402],"lp":[],"rp":["mi","im","min","nmi","mmi","mh","ph","pni","imm","hip","nmin","pin","imp","inm","inmi","mmin","nip","mini","hm","phi"]},"177":{"input":[1,5,6,8],"tlp":["ami",5412],"trp":["hap",4798],"trw":["hap",187],"lp":["ami","zaam","zam","anmi"],"rp":["hap","mani","haam","ham","happ","ima","iam","pha","inam","mai","pani","mah","hamm","hamp","mha","mz"]},"178":{"input":[2,5,6,8],"tlp":["sim",1232],"trp":["mij",56462],"tlw":["spin",52],"trw":["mijn",42155],"lp":["sim","spij","simp","smi"],"rp":["mij","mijn","mis","miss","pij","ijp","pijn","mins","insp","knip","jim","mik","mmis","jimm","pijp","pijk"]},"179":{"input":[1,2,5,6,8],"tlw":["smaak",381],"trw":["kwam",9677],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",1479],"trp":["hem",38924],"tlw":["eph",104],"trw":["hem",36783],"lp":["emi","eim","enmi","emmi","epin"],"rp":["hem","iem","mei","niem","'h","ime","pnie","'he","imme","heim","heme","hep","mhe","impe","meni"]},"181":{"input":[1,3,5,6,8],"tlw":["z'n",1280],"trw":["maxima",176],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"trw":["meisje",3089],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["zwemmen",284],"trw":["maken",6874],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",1065],"trp":["imt",1214],"tlw":["tim",122],"trw":["htm",71],"lp":["tim","tmi","timi"],"rp":["imt","mit","itm","ntim","htm","mbi","nipt","mv","mbin","imit","htp","miti","mith","mbit","mitt"]},"185":{"input":[1,4,5,6,8],"tlw":["fatima",79],"trw":["mattia",98],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["schip",1068],"trw":["minst",275],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["tapijt",196],"trw":["maakt",1930],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["evenmin",310],"trw":["'het",1331],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"trw":["manier",3158],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["spreken",1283],"trw":["misschien",7594],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["amerikaanse",726],"trw":["maakte",4198],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",166993],"trw":["op",103035],"lp":[],"rp":["op","po","oop","opp","poo","pop","ppo","popp","opo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",574],"trp":["opa",966],"trw":["opa",532],"lp":["apo","appo"],"rp":["opa","oppa"]},"194":{"input":[2,7,8],"tlp":["spo",2653],"trp":["pos",1438],"trw":["poos",89],"lp":["spo","spoo","sop"],"rp":["pos","ops","poos","oops","pso","opsp","pspo"]},"195":{"input":[1,2,7,8],"tlp":["aspo",191],"trp":["opw",535],"trw":["oppas",51],"lp":["aspo"],"rp":["opw","pow"]},"196":{"input":[3,7,8],"tlp":["eop",278],"trp":["ope",17147],"trw":["'o",439],"lp":["eop","eope","eopo"],"rp":["ope","o'","oep","oppe","oepe","opee","poe","'o","-p","'op","-'","oo'","o-p","pope"]},"197":{"input":[1,3,7,8],"trp":["oepa",84],"lp":[],"rp":["oepa","-pa","o-pa"]},"198":{"input":[2,3,7,8],"tlp":["spoe",469],"trp":["o's",1470],"tlw":["soep",218],"trw":["poes",128],"lp":["spoe","dop","soep","so-p","dope","doop"],"rp":["o's","opd","poed","pod","opes","osep","poes","'do","'doe","oesp","'so","-sp"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",4647],"trp":["pg",6426],"tlw":["top",406],"trw":["pot",229],"lp":["top","topt","topp","gp","gop"],"rp":["pg","opg","opt","oopt","pot","pog","pott","poot","poog","pto","ptop","ogop"]},"201":{"input":[1,4,7,8],"tlp":["apot",426],"trp":["pag",1681],"trw":["pag",94],"lp":["apot","apto","gpa","gaap"],"rp":["pag","pga","opga","pgaa"]},"202":{"input":[2,4,7,8],"tlp":["stop",2723],"trp":["opst",808],"tlw":["stop",253],"trw":["post",353],"lp":["stop","spot","coop","sopg","gops","gsp"],"rp":["opst","post","psto","opsc"]},"203":{"input":[1,2,4,7,8],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",6839],"trp":["pro",15569],"tlw":["erop",1554],"trw":["poort",291],"lp":["rop","roep","gep","erop","to'","gepr","grep","rope"],"rp":["pro","pge","opge","opte","por","port","orp","poor","oto'","oper","-top","opr"]},"205":{"input":[1,3,4,7,8],"tlw":["gepraat",288],"trw":["page",694],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["dorp",866],"trw":["proces",337],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["waarop",2183],"trw":["professor",384],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",134142],"trw":["om",51031],"lp":[],"rp":["om","mo","moo","mon","pu","mom","um","mu","omm","nom","oom","opn","omp","onm","pun","up","num","muu","umm","numm"]},"209":{"input":[1,5,7,8],"tlp":["amo",374],"trp":["oma",3325],"trw":["oma",579],"lp":["amo","amon","anmo","aup","amu","aom"],"rp":["oma","pano","oman","pau","omaa","omma","opna","mau","opma","moa","onma","napo","naom","mano"]},"210":{"input":[2,5,7,8],"tlp":["som",5660],"trp":["oms",6883],"tlw":["soms",3682],"trw":["joop",104],"lp":["som","soms","somm","spu","sup","smo","spon","spun","sum"],"rp":["oms","mso","opj","mons","mos","mus","joop","nspo","ooms","nopj","pus"]},"211":{"input":[1,2,5,7,8],"trw":["mouw",188],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["enom",3098],"trp":["moe",46854],"trw":["open",4188],"lp":["enom","emo","emoe","epu"],"rp":["moe","ome","omen","open","oem","mome","o'n","noem","nome","omme","oeme","umme","ompe","ume","opme","umen"]},"213":{"input":[1,3,5,7,8],"trw":["opnamen",87],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dom",313],"trw":["mond",3010],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["samenwonen",65],"trw":["panose-",1128],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",2789],"trp":["mog",5827],"tlw":["boom",593],"trw":["punt",1157],"lp":["tom","tmo","bom","ttom","boom"],"rp":["mog","omt","punt","mot","mg","omg","ontm","ntmo","put","pub","nmog","moto","mob","omb","mput"]},"217":{"input":[1,4,5,7,8],"tlw":["tatum",76],"trw":["mag",2733],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["stom",368],"trw":["muts",127],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["spontaan",128],"trw":["opstaan",213],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["genomen",1400],"trw":["moet",11124],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["roman",605],"trw":["magere",261],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["sprong",808],"trw":["moest",9460],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["waarom",5384],"trw":["omdat",8221],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",22888],"trw":["loop",1091],"lp":[],"rp":["pl","lop","lp","pol","poli","plo","loop","lip","lipp","opl","opi","pli","oplo","pil","lopi","olp","lopp","ipo","pill","ilip"]},"225":{"input":[1,6,7,8],"tlp":["alp",160],"trp":["pla",12933],"trw":["paal",163],"lp":["alp","appl","apl","apol"],"rp":["pla","plaa","lap","laap","opz","paal","opzi","pal","lapp","pzo","opzo","pala","opla","lpla","lpz","lpza"]},"226":{"input":[2,6,7,8],"tlp":["spl",351],"trp":["kop",4373],"tlw":["sloop",153],"trw":["kop",1414],"lp":["spl","slip"],"rp":["kop","klop","koop","posi","plos","opk","pols","kopp","ispl","pko","opko","ikop","kopl","kpl","kopi","pkl","lsp","ilsp"]},"227":{"input":[1,2,6,7,8],"tlw":["slaap",1052],"trw":["klap",617],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",2649],"trp":["liep",7656],"trw":["liep",5744],"lp":["elp","elop","elpe","epl","epel"],"rp":["liep","pel","lope","ple","lpe","peel","pele","ppel","plee","peli","-pi","plei","ielp","ople","pell"]},"229":{"input":[1,3,6,7,8],"tlw":["appel",103],"trw":["'zo",172],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["speelde",689],"trw":["plek",1535],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["slappe",172],"trw":["'als",569],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["glip",148],"trp":["plot",2109],"tlw":["volop",111],"trw":["loopt",1197],"lp":["glip","glop","gpl"],"rp":["plot","pig","opv","lopt","pogi","opig","ppig","pvo","opvo","lpt","pvol","oopv","lipt","opti","potl","igp","ligp"]},"233":{"input":[1,4,6,7,8],"tlw":["afloop",252],"trw":["plat",242],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["pistool",468],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["slaapt",181],"trw":["plaats",3721],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["voorlopig",401],"trw":["politie",1676],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",288],"trw":["plezier",573],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["gesprek",1386],"trw":["periode",563],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["collega's",441],"trw":["opgewekt",248],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mil",7222],"trw":["mooi",1931],"lp":[],"rp":["mil","lim","ml","mooi","iml","liml","lm","hoop","mili","uim","minu","omh","opni","ommi","lom","mho","omho","mhoo","hop","ulp"],"special":"enter"},"241":{"input":[1,5,6,7,8],"trw":["plan",1394],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simon",579],"trw":["kom",2728],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["wanhoop",258],"trw":["opzij",767],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["lopen",2578],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["allemaal",4589],"trw":["helemaal",5218],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["spelen",1140],"trw":["komen",7764],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["slapen",1278],"trw":["opnieuw",2178],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["glimp",157],"trw":["omhoog",1619],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",493],"trw":["langzaam",2034],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["schuim",127],"trw":["komt",4942],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["glimlach",1179],"trw":["lichaam",2366],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["ruimte",1214],"trw":["minuten",1824],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["familie",1891],"trw":["mezelf",1423],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["gekomen",2342],"trw":["mogelijk",2546],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["gemaakt",2371],"trw":["mevrouw",2250],"lp":[],"rp":[]}} \ No newline at end of file
diff --git a/keyboards/gboards/dicts/aset/_generator/src/num-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/num-keymap.json
new file mode 100644
index 0000000000..55ab69fca8
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/_generator/src/num-keymap.json
@@ -0,0 +1,2830 @@
+{
+ "0": {
+ "value": 0,
+ "notes": [
+ "Developer : Zack Dennis (zack@asetniop.com)",
+ "Date : 12/12/2014",
+ "All code (c) 2014 Pointesa, LLC all rights reserved",
+ "Abbreviations : ",
+ "tlp = top left partial",
+ "lp = left partials",
+ "trp = top right partial",
+ "rp = right partials",
+ "tlw = top left word",
+ "lw = left words",
+ "trw = top right word",
+ "rw = right words"
+ ]
+ },
+ "1": {
+ "input": [
+ 1
+ ],
+ "keys": "a",
+ "base": "1",
+ "baseshift": "!"
+ },
+ "2": {
+ "input": [
+ 2
+ ],
+ "keys": "s",
+ "base": "2",
+ "baseshift": "@"
+ },
+ "3": {
+ "input": [
+ 1,
+ 2
+ ],
+ "keys": "as",
+ "base": " ",
+ "baseshift": " "
+ },
+ "4": {
+ "input": [
+ 3
+ ],
+ "keys": "e",
+ "base": "3",
+ "baseshift": "#"
+ },
+ "5": {
+ "input": [
+ 1,
+ 3
+ ],
+ "keys": "ae",
+ "base": "`",
+ "baseshift": "~"
+ },
+ "6": {
+ "input": [
+ 2,
+ 3
+ ],
+ "keys": "se",
+ "base": "-",
+ "baseshift": "_"
+ },
+ "7": {
+ "input": [
+ 1,
+ 2,
+ 3
+ ],
+ "keys": "ase",
+ "base": "",
+ "baseshift": ""
+ },
+ "8": {
+ "input": [
+ 4
+ ],
+ "keys": "t",
+ "base": "4",
+ "baseshift": "$"
+ },
+ "9": {
+ "input": [
+ 1,
+ 4
+ ],
+ "keys": "at",
+ "base": "[",
+ "baseshift": "{"
+ },
+ "10": {
+ "input": [
+ 2,
+ 4
+ ],
+ "keys": "st",
+ "base": "Fn",
+ "baseshift": "Fn"
+ },
+ "11": {
+ "input": [
+ 1,
+ 2,
+ 4
+ ],
+ "keys": "ast",
+ "base": "",
+ "baseshift": ""
+ },
+ "12": {
+ "input": [
+ 3,
+ 4
+ ],
+ "keys": "et",
+ "base": "5",
+ "baseshift": "%"
+ },
+ "13": {
+ "input": [
+ 1,
+ 3,
+ 4
+ ],
+ "keys": "aet",
+ "base": "",
+ "baseshift": ""
+ },
+ "14": {
+ "input": [
+ 2,
+ 3,
+ 4
+ ],
+ "keys": "set",
+ "base": "",
+ "baseshift": ""
+ },
+ "15": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "keys": "aset",
+ "base": "",
+ "baseshift": ""
+ },
+ "16": {
+ "input": [
+ 5
+ ],
+ "keys": "n",
+ "base": "7",
+ "baseshift": "&"
+ },
+ "17": {
+ "input": [
+ 1,
+ 5
+ ],
+ "keys": "an",
+ "base": " ",
+ "baseshift": " "
+ },
+ "18": {
+ "input": [
+ 2,
+ 5
+ ],
+ "keys": "sn",
+ "base": "End",
+ "baseshift": "End"
+ },
+ "19": {
+ "input": [
+ 1,
+ 2,
+ 5
+ ],
+ "keys": "asn",
+ "base": "",
+ "baseshift": ""
+ },
+ "20": {
+ "input": [
+ 3,
+ 5
+ ],
+ "keys": "en",
+ "base": "Home",
+ "baseshift": "Home"
+ },
+ "21": {
+ "input": [
+ 1,
+ 3,
+ 5
+ ],
+ "keys": "aen",
+ "base": "",
+ "baseshift": ""
+ },
+ "22": {
+ "input": [
+ 2,
+ 3,
+ 5
+ ],
+ "keys": "sen",
+ "base": "",
+ "baseshift": ""
+ },
+ "23": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 5
+ ],
+ "keys": "asen",
+ "base": "",
+ "baseshift": ""
+ },
+ "24": {
+ "input": [
+ 4,
+ 5
+ ],
+ "keys": "tn",
+ "base": "",
+ "baseshift": ""
+ },
+ "25": {
+ "input": [
+ 1,
+ 4,
+ 5
+ ],
+ "keys": "atn",
+ "base": "",
+ "baseshift": ""
+ },
+ "26": {
+ "input": [
+ 2,
+ 4,
+ 5
+ ],
+ "keys": "stn",
+ "base": "",
+ "baseshift": ""
+ },
+ "27": {
+ "input": [
+ 1,
+ 2,
+ 4,
+ 5
+ ],
+ "keys": "astn",
+ "base": "",
+ "baseshift": ""
+ },
+ "28": {
+ "input": [
+ 3,
+ 4,
+ 5
+ ],
+ "keys": "etn",
+ "base": "",
+ "baseshift": ""
+ },
+ "29": {
+ "input": [
+ 1,
+ 3,
+ 4,
+ 5
+ ],
+ "keys": "aetn",
+ "base": "",
+ "baseshift": ""
+ },
+ "30": {
+ "input": [
+ 2,
+ 3,
+ 4,
+ 5
+ ],
+ "keys": "setn",
+ "base": "",
+ "baseshift": ""
+ },
+ "31": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5
+ ],
+ "keys": "asetn",
+ "base": "",
+ "baseshift": ""
+ },
+ "32": {
+ "input": [
+ 6
+ ],
+ "keys": "i",
+ "base": "8",
+ "baseshift": "*"
+ },
+ "33": {
+ "input": [
+ 1,
+ 6
+ ],
+ "keys": "ai",
+ "base": "!",
+ "baseshift": "!"
+ },
+ "34": {
+ "input": [
+ 2,
+ 6
+ ],
+ "keys": "si",
+ "base": "=",
+ "baseshift": "+"
+ },
+ "35": {
+ "input": [
+ 1,
+ 2,
+ 6
+ ],
+ "keys": "asi",
+ "base": "",
+ "baseshift": ""
+ },
+ "36": {
+ "input": [
+ 3,
+ 6
+ ],
+ "keys": "ei",
+ "base": ",",
+ "baseshift": "<"
+ },
+ "37": {
+ "input": [
+ 1,
+ 3,
+ 6
+ ],
+ "keys": "aei",
+ "base": "",
+ "baseshift": ""
+ },
+ "38": {
+ "input": [
+ 2,
+ 3,
+ 6
+ ],
+ "keys": "sei",
+ "base": "",
+ "baseshift": ""
+ },
+ "39": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 6
+ ],
+ "keys": "asei",
+ "base": "",
+ "baseshift": ""
+ },
+ "40": {
+ "input": [
+ 4,
+ 6
+ ],
+ "keys": "ti",
+ "base": "",
+ "baseshift": ""
+ },
+ "41": {
+ "input": [
+ 1,
+ 4,
+ 6
+ ],
+ "keys": "ati",
+ "base": "",
+ "baseshift": ""
+ },
+ "42": {
+ "input": [
+ 2,
+ 4,
+ 6
+ ],
+ "keys": "sti",
+ "base": "",
+ "baseshift": ""
+ },
+ "43": {
+ "input": [
+ 1,
+ 2,
+ 4,
+ 6
+ ],
+ "keys": "asti",
+ "base": "",
+ "baseshift": ""
+ },
+ "44": {
+ "input": [
+ 3,
+ 4,
+ 6
+ ],
+ "keys": "eti",
+ "base": "",
+ "baseshift": ""
+ },
+ "45": {
+ "input": [
+ 1,
+ 3,
+ 4,
+ 6
+ ],
+ "keys": "aeti",
+ "base": "",
+ "baseshift": ""
+ },
+ "46": {
+ "input": [
+ 2,
+ 3,
+ 4,
+ 6
+ ],
+ "keys": "seti",
+ "base": "",
+ "baseshift": ""
+ },
+ "47": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 6
+ ],
+ "keys": "aseti",
+ "base": "",
+ "baseshift": ""
+ },
+ "48": {
+ "input": [
+ 5,
+ 6
+ ],
+ "keys": "ni",
+ "base": "6",
+ "baseshift": "^"
+ },
+ "49": {
+ "input": [
+ 1,
+ 5,
+ 6
+ ],
+ "keys": "ani",
+ "base": "",
+ "baseshift": ""
+ },
+ "50": {
+ "input": [
+ 2,
+ 5,
+ 6
+ ],
+ "keys": "sni",
+ "base": "",
+ "baseshift": ""
+ },
+ "51": {
+ "input": [
+ 1,
+ 2,
+ 5,
+ 6
+ ],
+ "keys": "asni",
+ "base": "",
+ "baseshift": ""
+ },
+ "52": {
+ "input": [
+ 3,
+ 5,
+ 6
+ ],
+ "keys": "eni",
+ "base": "",
+ "baseshift": ""
+ },
+ "53": {
+ "input": [
+ 1,
+ 3,
+ 5,
+ 6
+ ],
+ "keys": "aeni",
+ "base": "",
+ "baseshift": ""
+ },
+ "54": {
+ "input": [
+ 2,
+ 3,
+ 5,
+ 6
+ ],
+ "keys": "seni",
+ "base": "",
+ "baseshift": ""
+ },
+ "55": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 5,
+ 6
+ ],
+ "keys": "aseni",
+ "base": "",
+ "baseshift": ""
+ },
+ "56": {
+ "input": [
+ 4,
+ 5,
+ 6
+ ],
+ "keys": "tni",
+ "base": "",
+ "baseshift": ""
+ },
+ "57": {
+ "input": [
+ 1,
+ 4,
+ 5,
+ 6
+ ],
+ "keys": "atni",
+ "base": "",
+ "baseshift": ""
+ },
+ "58": {
+ "input": [
+ 2,
+ 4,
+ 5,
+ 6
+ ],
+ "keys": "stni",
+ "base": "",
+ "baseshift": ""
+ },
+ "59": {
+ "input": [
+ 1,
+ 2,
+ 4,
+ 5,
+ 6
+ ],
+ "keys": "astni",
+ "base": "",
+ "baseshift": ""
+ },
+ "60": {
+ "input": [
+ 3,
+ 4,
+ 5,
+ 6
+ ],
+ "keys": "etni",
+ "base": "",
+ "baseshift": ""
+ },
+ "61": {
+ "input": [
+ 1,
+ 3,
+ 4,
+ 5,
+ 6
+ ],
+ "keys": "aetni",
+ "base": "",
+ "baseshift": ""
+ },
+ "62": {
+ "input": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 6
+ ],
+ "keys": "setni",
+ "base": "",
+ "baseshift": ""
+ },
+ "63": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6
+ ],
+ "keys": "asetni",
+ "base": "",
+ "baseshift": ""
+ },
+ "64": {
+ "input": [
+ 7
+ ],
+ "keys": "o",
+ "base": "9",
+ "baseshift": "("
+ },
+ "65": {
+ "input": [
+ 1,
+ 7
+ ],
+ "keys": "ao",
+ "base": "(",
+ "baseshift": "("
+ },
+ "66": {
+ "input": [
+ 2,
+ 7
+ ],
+ "keys": "so",
+ "base": ".",
+ "baseshift": ">"
+ },
+ "67": {
+ "input": [
+ 1,
+ 2,
+ 7
+ ],
+ "keys": "aso",
+ "base": "",
+ "baseshift": ""
+ },
+ "68": {
+ "input": [
+ 3,
+ 7
+ ],
+ "keys": "eo",
+ "base": "-",
+ "baseshift": "_"
+ },
+ "69": {
+ "input": [
+ 1,
+ 3,
+ 7
+ ],
+ "keys": "aeo",
+ "base": "",
+ "baseshift": ""
+ },
+ "70": {
+ "input": [
+ 2,
+ 3,
+ 7
+ ],
+ "keys": "seo",
+ "base": "",
+ "baseshift": ""
+ },
+ "71": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 7
+ ],
+ "keys": "aseo",
+ "base": "",
+ "baseshift": ""
+ },
+ "72": {
+ "input": [
+ 4,
+ 7
+ ],
+ "keys": "to",
+ "base": "",
+ "baseshift": ""
+ },
+ "73": {
+ "input": [
+ 1,
+ 4,
+ 7
+ ],
+ "keys": "ato",
+ "base": "",
+ "baseshift": ""
+ },
+ "74": {
+ "input": [
+ 2,
+ 4,
+ 7
+ ],
+ "keys": "sto",
+ "base": "",
+ "baseshift": ""
+ },
+ "75": {
+ "input": [
+ 1,
+ 2,
+ 4,
+ 7
+ ],
+ "keys": "asto",
+ "base": "",
+ "baseshift": ""
+ },
+ "76": {
+ "input": [
+ 3,
+ 4,
+ 7
+ ],
+ "keys": "eto",
+ "base": "",
+ "baseshift": ""
+ },
+ "77": {
+ "input": [
+ 1,
+ 3,
+ 4,
+ 7
+ ],
+ "keys": "aeto",
+ "base": "",
+ "baseshift": ""
+ },
+ "78": {
+ "input": [
+ 2,
+ 3,
+ 4,
+ 7
+ ],
+ "keys": "seto",
+ "base": "",
+ "baseshift": ""
+ },
+ "79": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 7
+ ],
+ "keys": "aseto",
+ "base": "",
+ "baseshift": ""
+ },
+ "80": {
+ "input": [
+ 5,
+ 7
+ ],
+ "keys": "no",
+ "base": "Fn",
+ "baseshift": "Fn"
+ },
+ "81": {
+ "input": [
+ 1,
+ 5,
+ 7
+ ],
+ "keys": "ano",
+ "base": "",
+ "baseshift": ""
+ },
+ "82": {
+ "input": [
+ 2,
+ 5,
+ 7
+ ],
+ "keys": "sno",
+ "base": "",
+ "baseshift": ""
+ },
+ "83": {
+ "input": [
+ 1,
+ 2,
+ 5,
+ 7
+ ],
+ "keys": "asno",
+ "base": "",
+ "baseshift": ""
+ },
+ "84": {
+ "input": [
+ 3,
+ 5,
+ 7
+ ],
+ "keys": "eno",
+ "base": "",
+ "baseshift": ""
+ },
+ "85": {
+ "input": [
+ 1,
+ 3,
+ 5,
+ 7
+ ],
+ "keys": "aeno",
+ "base": "",
+ "baseshift": ""
+ },
+ "86": {
+ "input": [
+ 2,
+ 3,
+ 5,
+ 7
+ ],
+ "keys": "seno",
+ "base": "",
+ "baseshift": ""
+ },
+ "87": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 5,
+ 7
+ ],
+ "keys": "aseno",
+ "base": "",
+ "baseshift": ""
+ },
+ "88": {
+ "input": [
+ 4,
+ 5,
+ 7
+ ],
+ "keys": "tno",
+ "base": "",
+ "baseshift": ""
+ },
+ "89": {
+ "input": [
+ 1,
+ 4,
+ 5,
+ 7
+ ],
+ "keys": "atno",
+ "base": "",
+ "baseshift": ""
+ },
+ "90": {
+ "input": [
+ 2,
+ 4,
+ 5,
+ 7
+ ],
+ "keys": "stno",
+ "base": "",
+ "baseshift": ""
+ },
+ "91": {
+ "input": [
+ 1,
+ 2,
+ 4,
+ 5,
+ 7
+ ],
+ "keys": "astno",
+ "base": "",
+ "baseshift": ""
+ },
+ "92": {
+ "input": [
+ 3,
+ 4,
+ 5,
+ 7
+ ],
+ "keys": "etno",
+ "base": "",
+ "baseshift": ""
+ },
+ "93": {
+ "input": [
+ 1,
+ 3,
+ 4,
+ 5,
+ 7
+ ],
+ "keys": "aetno",
+ "base": "",
+ "baseshift": ""
+ },
+ "94": {
+ "input": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 7
+ ],
+ "keys": "setno",
+ "base": "",
+ "baseshift": ""
+ },
+ "95": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 7
+ ],
+ "keys": "asetno",
+ "base": "",
+ "baseshift": ""
+ },
+ "96": {
+ "input": [
+ 6,
+ 7
+ ],
+ "keys": "io",
+ "base": "=",
+ "baseshift": "+"
+ },
+ "97": {
+ "input": [
+ 1,
+ 6,
+ 7
+ ],
+ "keys": "aio",
+ "base": "",
+ "baseshift": ""
+ },
+ "98": {
+ "input": [
+ 2,
+ 6,
+ 7
+ ],
+ "keys": "sio",
+ "base": "",
+ "baseshift": ""
+ },
+ "99": {
+ "input": [
+ 1,
+ 2,
+ 6,
+ 7
+ ],
+ "keys": "asio",
+ "base": "",
+ "baseshift": ""
+ },
+ "100": {
+ "input": [
+ 3,
+ 6,
+ 7
+ ],
+ "keys": "eio",
+ "base": "",
+ "baseshift": ""
+ },
+ "101": {
+ "input": [
+ 1,
+ 3,
+ 6,
+ 7
+ ],
+ "keys": "aeio",
+ "base": "",
+ "baseshift": ""
+ },
+ "102": {
+ "input": [
+ 2,
+ 3,
+ 6,
+ 7
+ ],
+ "keys": "seio",
+ "base": "",
+ "baseshift": ""
+ },
+ "103": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 6,
+ 7
+ ],
+ "keys": "aseio",
+ "base": "",
+ "baseshift": ""
+ },
+ "104": {
+ "input": [
+ 4,
+ 6,
+ 7
+ ],
+ "keys": "tio",
+ "base": "",
+ "baseshift": ""
+ },
+ "105": {
+ "input": [
+ 1,
+ 4,
+ 6,
+ 7
+ ],
+ "keys": "atio",
+ "base": "",
+ "baseshift": ""
+ },
+ "106": {
+ "input": [
+ 2,
+ 4,
+ 6,
+ 7
+ ],
+ "keys": "stio",
+ "base": "",
+ "baseshift": ""
+ },
+ "107": {
+ "input": [
+ 1,
+ 2,
+ 4,
+ 6,
+ 7
+ ],
+ "keys": "astio",
+ "base": "",
+ "baseshift": ""
+ },
+ "108": {
+ "input": [
+ 3,
+ 4,
+ 6,
+ 7
+ ],
+ "keys": "etio",
+ "base": "",
+ "baseshift": ""
+ },
+ "109": {
+ "input": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 7
+ ],
+ "keys": "aetio",
+ "base": "",
+ "baseshift": ""
+ },
+ "110": {
+ "input": [
+ 2,
+ 3,
+ 4,
+ 6,
+ 7
+ ],
+ "keys": "setio",
+ "base": "",
+ "baseshift": ""
+ },
+ "111": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 6,
+ 7
+ ],
+ "keys": "asetio",
+ "base": "",
+ "baseshift": ""
+ },
+ "112": {
+ "input": [
+ 5,
+ 6,
+ 7
+ ],
+ "keys": "nio",
+ "base": "",
+ "baseshift": ""
+ },
+ "113": {
+ "input": [
+ 1,
+ 5,
+ 6,
+ 7
+ ],
+ "keys": "anio",
+ "base": "",
+ "baseshift": ""
+ },
+ "114": {
+ "input": [
+ 2,
+ 5,
+ 6,
+ 7
+ ],
+ "keys": "snio",
+ "base": "",
+ "baseshift": ""
+ },
+ "115": {
+ "input": [
+ 1,
+ 2,
+ 5,
+ 6,
+ 7
+ ],
+ "keys": "asnio",
+ "base": "",
+ "baseshift": ""
+ },
+ "116": {
+ "input": [
+ 3,
+ 5,
+ 6,
+ 7
+ ],
+ "keys": "enio",
+ "base": "",
+ "baseshift": ""
+ },
+ "117": {
+ "input": [
+ 1,
+ 3,
+ 5,
+ 6,
+ 7
+ ],
+ "keys": "aenio",
+ "base": "",
+ "baseshift": ""
+ },
+ "118": {
+ "input": [
+ 2,
+ 3,
+ 5,
+ 6,
+ 7
+ ],
+ "keys": "senio",
+ "base": "",
+ "baseshift": ""
+ },
+ "119": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 5,
+ 6,
+ 7
+ ],
+ "keys": "asenio",
+ "base": "",
+ "baseshift": ""
+ },
+ "120": {
+ "input": [
+ 4,
+ 5,
+ 6,
+ 7
+ ],
+ "keys": "tnio",
+ "base": "",
+ "baseshift": ""
+ },
+ "121": {
+ "input": [
+ 1,
+ 4,
+ 5,
+ 6,
+ 7
+ ],
+ "keys": "atnio",
+ "base": "",
+ "baseshift": ""
+ },
+ "122": {
+ "input": [
+ 2,
+ 4,
+ 5,
+ 6,
+ 7
+ ],
+ "keys": "stnio",
+ "base": "",
+ "baseshift": ""
+ },
+ "123": {
+ "input": [
+ 1,
+ 2,
+ 4,
+ 5,
+ 6,
+ 7
+ ],
+ "keys": "astnio",
+ "base": "",
+ "baseshift": ""
+ },
+ "124": {
+ "input": [
+ 3,
+ 4,
+ 5,
+ 6,
+ 7
+ ],
+ "keys": "etnio",
+ "base": "",
+ "baseshift": ""
+ },
+ "125": {
+ "input": [
+ 1,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7
+ ],
+ "keys": "aetnio",
+ "base": "",
+ "baseshift": ""
+ },
+ "126": {
+ "input": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7
+ ],
+ "keys": "setnio",
+ "base": "",
+ "baseshift": ""
+ },
+ "127": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7
+ ],
+ "keys": "asetnio",
+ "base": "",
+ "baseshift": ""
+ },
+ "128": {
+ "input": [
+ 8
+ ],
+ "keys": "p",
+ "base": "0",
+ "baseshift": ")"
+ },
+ "129": {
+ "input": [
+ 1,
+ 8
+ ],
+ "keys": "ap",
+ "base": "?",
+ "baseshift": "/"
+ },
+ "130": {
+ "input": [
+ 2,
+ 8
+ ],
+ "keys": "sp",
+ "base": ")",
+ "baseshift": ")"
+ },
+ "131": {
+ "input": [
+ 1,
+ 2,
+ 8
+ ],
+ "keys": "asp",
+ "base": "",
+ "baseshift": ""
+ },
+ "132": {
+ "input": [
+ 3,
+ 8
+ ],
+ "keys": "ep",
+ "base": "'",
+ "baseshift": "'"
+ },
+ "133": {
+ "input": [
+ 1,
+ 3,
+ 8
+ ],
+ "keys": "aep",
+ "base": "",
+ "baseshift": ""
+ },
+ "134": {
+ "input": [
+ 2,
+ 3,
+ 8
+ ],
+ "keys": "sep",
+ "base": "",
+ "baseshift": ""
+ },
+ "135": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 8
+ ],
+ "keys": "asep",
+ "base": "",
+ "baseshift": ""
+ },
+ "136": {
+ "input": [
+ 4,
+ 8
+ ],
+ "keys": "tp",
+ "base": "",
+ "baseshift": "",
+ "special": "bksp"
+ },
+ "137": {
+ "input": [
+ 1,
+ 4,
+ 8
+ ],
+ "keys": "atp",
+ "base": "",
+ "baseshift": ""
+ },
+ "138": {
+ "input": [
+ 2,
+ 4,
+ 8
+ ],
+ "keys": "stp",
+ "base": "",
+ "baseshift": ""
+ },
+ "139": {
+ "input": [
+ 1,
+ 2,
+ 4,
+ 8
+ ],
+ "keys": "astp",
+ "base": "",
+ "baseshift": ""
+ },
+ "140": {
+ "input": [
+ 3,
+ 4,
+ 8
+ ],
+ "keys": "etp",
+ "base": "",
+ "baseshift": ""
+ },
+ "141": {
+ "input": [
+ 1,
+ 3,
+ 4,
+ 8
+ ],
+ "keys": "aetp",
+ "base": "",
+ "baseshift": ""
+ },
+ "142": {
+ "input": [
+ 2,
+ 3,
+ 4,
+ 8
+ ],
+ "keys": "setp",
+ "base": "",
+ "baseshift": ""
+ },
+ "143": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 8
+ ],
+ "keys": "asetp",
+ "base": "",
+ "baseshift": ""
+ },
+ "144": {
+ "input": [
+ 5,
+ 8
+ ],
+ "keys": "np",
+ "base": "]",
+ "baseshift": "}"
+ },
+ "145": {
+ "input": [
+ 1,
+ 5,
+ 8
+ ],
+ "keys": "anp",
+ "base": "",
+ "baseshift": ""
+ },
+ "146": {
+ "input": [
+ 2,
+ 5,
+ 8
+ ],
+ "keys": "snp",
+ "base": "",
+ "baseshift": ""
+ },
+ "147": {
+ "input": [
+ 1,
+ 2,
+ 5,
+ 8
+ ],
+ "keys": "asnp",
+ "base": "",
+ "baseshift": ""
+ },
+ "148": {
+ "input": [
+ 3,
+ 5,
+ 8
+ ],
+ "keys": "enp",
+ "base": "",
+ "baseshift": ""
+ },
+ "149": {
+ "input": [
+ 1,
+ 3,
+ 5,
+ 8
+ ],
+ "keys": "aenp",
+ "base": "",
+ "baseshift": ""
+ },
+ "150": {
+ "input": [
+ 2,
+ 3,
+ 5,
+ 8
+ ],
+ "keys": "senp",
+ "base": "",
+ "baseshift": ""
+ },
+ "151": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 5,
+ 8
+ ],
+ "keys": "asenp",
+ "base": "",
+ "baseshift": ""
+ },
+ "152": {
+ "input": [
+ 4,
+ 5,
+ 8
+ ],
+ "keys": "tnp",
+ "base": "",
+ "baseshift": ""
+ },
+ "153": {
+ "input": [
+ 1,
+ 4,
+ 5,
+ 8
+ ],
+ "keys": "atnp",
+ "base": "LETTERS",
+ "baseshift": "LETTERS",
+ "special": "letters"
+ },
+ "154": {
+ "input": [
+ 2,
+ 4,
+ 5,
+ 8
+ ],
+ "keys": "stnp",
+ "base": "",
+ "baseshift": ""
+ },
+ "155": {
+ "input": [
+ 1,
+ 2,
+ 4,
+ 5,
+ 8
+ ],
+ "keys": "astnp",
+ "base": "",
+ "baseshift": ""
+ },
+ "156": {
+ "input": [
+ 3,
+ 4,
+ 5,
+ 8
+ ],
+ "keys": "etnp",
+ "base": "",
+ "baseshift": ""
+ },
+ "157": {
+ "input": [
+ 1,
+ 3,
+ 4,
+ 5,
+ 8
+ ],
+ "keys": "aetnp",
+ "base": "",
+ "baseshift": ""
+ },
+ "158": {
+ "input": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 8
+ ],
+ "keys": "setnp",
+ "base": "",
+ "baseshift": ""
+ },
+ "159": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 8
+ ],
+ "keys": "asetnp",
+ "base": "",
+ "baseshift": ""
+ },
+ "160": {
+ "input": [
+ 6,
+ 8
+ ],
+ "keys": "ip",
+ "base": "",
+ "baseshift": "|"
+ },
+ "161": {
+ "input": [
+ 1,
+ 6,
+ 8
+ ],
+ "keys": "aip",
+ "base": "",
+ "baseshift": ""
+ },
+ "162": {
+ "input": [
+ 2,
+ 6,
+ 8
+ ],
+ "keys": "sip",
+ "base": "",
+ "baseshift": ""
+ },
+ "163": {
+ "input": [
+ 1,
+ 2,
+ 6,
+ 8
+ ],
+ "keys": "asip",
+ "base": "",
+ "baseshift": ""
+ },
+ "164": {
+ "input": [
+ 3,
+ 6,
+ 8
+ ],
+ "keys": "eip",
+ "base": "",
+ "baseshift": ""
+ },
+ "165": {
+ "input": [
+ 1,
+ 3,
+ 6,
+ 8
+ ],
+ "keys": "aeip",
+ "base": "",
+ "baseshift": ""
+ },
+ "166": {
+ "input": [
+ 2,
+ 3,
+ 6,
+ 8
+ ],
+ "keys": "seip",
+ "base": "",
+ "baseshift": ""
+ },
+ "167": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 6,
+ 8
+ ],
+ "keys": "aseip",
+ "base": "",
+ "baseshift": ""
+ },
+ "168": {
+ "input": [
+ 4,
+ 6,
+ 8
+ ],
+ "keys": "tip",
+ "base": "",
+ "baseshift": ""
+ },
+ "169": {
+ "input": [
+ 1,
+ 4,
+ 6,
+ 8
+ ],
+ "keys": "atip",
+ "base": "",
+ "baseshift": ""
+ },
+ "170": {
+ "input": [
+ 2,
+ 4,
+ 6,
+ 8
+ ],
+ "keys": "stip",
+ "base": "",
+ "baseshift": ""
+ },
+ "171": {
+ "input": [
+ 1,
+ 2,
+ 4,
+ 6,
+ 8
+ ],
+ "keys": "astip",
+ "base": "",
+ "baseshift": ""
+ },
+ "172": {
+ "input": [
+ 3,
+ 4,
+ 6,
+ 8
+ ],
+ "keys": "etip",
+ "base": "",
+ "baseshift": ""
+ },
+ "173": {
+ "input": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 8
+ ],
+ "keys": "aetip",
+ "base": "",
+ "baseshift": ""
+ },
+ "174": {
+ "input": [
+ 2,
+ 3,
+ 4,
+ 6,
+ 8
+ ],
+ "keys": "setip",
+ "base": "",
+ "baseshift": ""
+ },
+ "175": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 6,
+ 8
+ ],
+ "keys": "asetip",
+ "base": "",
+ "baseshift": ""
+ },
+ "176": {
+ "input": [
+ 5,
+ 6,
+ 8
+ ],
+ "keys": "nip",
+ "base": "",
+ "baseshift": ""
+ },
+ "177": {
+ "input": [
+ 1,
+ 5,
+ 6,
+ 8
+ ],
+ "keys": "anip",
+ "base": "",
+ "baseshift": ""
+ },
+ "178": {
+ "input": [
+ 2,
+ 5,
+ 6,
+ 8
+ ],
+ "keys": "snip",
+ "base": "",
+ "baseshift": ""
+ },
+ "179": {
+ "input": [
+ 1,
+ 2,
+ 5,
+ 6,
+ 8
+ ],
+ "keys": "asnip",
+ "base": "",
+ "baseshift": ""
+ },
+ "180": {
+ "input": [
+ 3,
+ 5,
+ 6,
+ 8
+ ],
+ "keys": "enip",
+ "base": "",
+ "baseshift": ""
+ },
+ "181": {
+ "input": [
+ 1,
+ 3,
+ 5,
+ 6,
+ 8
+ ],
+ "keys": "aenip",
+ "base": "",
+ "baseshift": ""
+ },
+ "182": {
+ "input": [
+ 2,
+ 3,
+ 5,
+ 6,
+ 8
+ ],
+ "keys": "senip",
+ "base": "",
+ "baseshift": ""
+ },
+ "183": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 5,
+ 6,
+ 8
+ ],
+ "keys": "asenip",
+ "base": "",
+ "baseshift": ""
+ },
+ "184": {
+ "input": [
+ 4,
+ 5,
+ 6,
+ 8
+ ],
+ "keys": "tnip",
+ "base": "",
+ "baseshift": ""
+ },
+ "185": {
+ "input": [
+ 1,
+ 4,
+ 5,
+ 6,
+ 8
+ ],
+ "keys": "atnip",
+ "base": "",
+ "baseshift": ""
+ },
+ "186": {
+ "input": [
+ 2,
+ 4,
+ 5,
+ 6,
+ 8
+ ],
+ "keys": "stnip",
+ "base": "",
+ "baseshift": ""
+ },
+ "187": {
+ "input": [
+ 1,
+ 2,
+ 4,
+ 5,
+ 6,
+ 8
+ ],
+ "keys": "astnip",
+ "base": "",
+ "baseshift": ""
+ },
+ "188": {
+ "input": [
+ 3,
+ 4,
+ 5,
+ 6,
+ 8
+ ],
+ "keys": "etnip",
+ "base": "",
+ "baseshift": ""
+ },
+ "189": {
+ "input": [
+ 1,
+ 3,
+ 4,
+ 5,
+ 6,
+ 8
+ ],
+ "keys": "aetnip",
+ "base": "",
+ "baseshift": ""
+ },
+ "190": {
+ "input": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 8
+ ],
+ "keys": "setnip",
+ "base": "",
+ "baseshift": ""
+ },
+ "191": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 8
+ ],
+ "keys": "asetnip",
+ "base": "",
+ "baseshift": ""
+ },
+ "192": {
+ "input": [
+ 7,
+ 8
+ ],
+ "keys": "op",
+ "base": ";",
+ "baseshift": ":"
+ },
+ "193": {
+ "input": [
+ 1,
+ 7,
+ 8
+ ],
+ "keys": "aop",
+ "base": "",
+ "baseshift": ""
+ },
+ "194": {
+ "input": [
+ 2,
+ 7,
+ 8
+ ],
+ "keys": "sop",
+ "base": "",
+ "baseshift": ""
+ },
+ "195": {
+ "input": [
+ 1,
+ 2,
+ 7,
+ 8
+ ],
+ "keys": "asop",
+ "base": "",
+ "baseshift": ""
+ },
+ "196": {
+ "input": [
+ 3,
+ 7,
+ 8
+ ],
+ "keys": "eop",
+ "base": "",
+ "baseshift": ""
+ },
+ "197": {
+ "input": [
+ 1,
+ 3,
+ 7,
+ 8
+ ],
+ "keys": "aeop",
+ "base": "",
+ "baseshift": ""
+ },
+ "198": {
+ "input": [
+ 2,
+ 3,
+ 7,
+ 8
+ ],
+ "keys": "seop",
+ "base": "",
+ "baseshift": ""
+ },
+ "199": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 7,
+ 8
+ ],
+ "keys": "aseop",
+ "base": "",
+ "baseshift": ""
+ },
+ "200": {
+ "input": [
+ 4,
+ 7,
+ 8
+ ],
+ "keys": "top",
+ "base": "",
+ "baseshift": ""
+ },
+ "201": {
+ "input": [
+ 1,
+ 4,
+ 7,
+ 8
+ ],
+ "keys": "atop",
+ "base": "",
+ "baseshift": ""
+ },
+ "202": {
+ "input": [
+ 2,
+ 4,
+ 7,
+ 8
+ ],
+ "keys": "stop",
+ "base": "",
+ "baseshift": ""
+ },
+ "203": {
+ "input": [
+ 1,
+ 2,
+ 4,
+ 7,
+ 8
+ ],
+ "keys": "astop",
+ "base": "",
+ "baseshift": ""
+ },
+ "204": {
+ "input": [
+ 3,
+ 4,
+ 7,
+ 8
+ ],
+ "keys": "etop",
+ "base": "",
+ "baseshift": ""
+ },
+ "205": {
+ "input": [
+ 1,
+ 3,
+ 4,
+ 7,
+ 8
+ ],
+ "keys": "aetop",
+ "base": "",
+ "baseshift": ""
+ },
+ "206": {
+ "input": [
+ 2,
+ 3,
+ 4,
+ 7,
+ 8
+ ],
+ "keys": "setop",
+ "base": "",
+ "baseshift": ""
+ },
+ "207": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 7,
+ 8
+ ],
+ "keys": "asetop",
+ "base": "",
+ "baseshift": ""
+ },
+ "208": {
+ "input": [
+ 5,
+ 7,
+ 8
+ ],
+ "keys": "nop",
+ "base": "",
+ "baseshift": ""
+ },
+ "209": {
+ "input": [
+ 1,
+ 5,
+ 7,
+ 8
+ ],
+ "keys": "anop",
+ "base": "",
+ "baseshift": ""
+ },
+ "210": {
+ "input": [
+ 2,
+ 5,
+ 7,
+ 8
+ ],
+ "keys": "snop",
+ "base": "",
+ "baseshift": ""
+ },
+ "211": {
+ "input": [
+ 1,
+ 2,
+ 5,
+ 7,
+ 8
+ ],
+ "keys": "asnop",
+ "base": "",
+ "baseshift": ""
+ },
+ "212": {
+ "input": [
+ 3,
+ 5,
+ 7,
+ 8
+ ],
+ "keys": "enop",
+ "base": "",
+ "baseshift": ""
+ },
+ "213": {
+ "input": [
+ 1,
+ 3,
+ 5,
+ 7,
+ 8
+ ],
+ "keys": "aenop",
+ "base": "",
+ "baseshift": ""
+ },
+ "214": {
+ "input": [
+ 2,
+ 3,
+ 5,
+ 7,
+ 8
+ ],
+ "keys": "senop",
+ "base": "",
+ "baseshift": ""
+ },
+ "215": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 5,
+ 7,
+ 8
+ ],
+ "keys": "asenop",
+ "base": "",
+ "baseshift": ""
+ },
+ "216": {
+ "input": [
+ 4,
+ 5,
+ 7,
+ 8
+ ],
+ "keys": "tnop",
+ "base": "",
+ "baseshift": ""
+ },
+ "217": {
+ "input": [
+ 1,
+ 4,
+ 5,
+ 7,
+ 8
+ ],
+ "keys": "atnop",
+ "base": "",
+ "baseshift": ""
+ },
+ "218": {
+ "input": [
+ 2,
+ 4,
+ 5,
+ 7,
+ 8
+ ],
+ "keys": "stnop",
+ "base": "",
+ "baseshift": ""
+ },
+ "219": {
+ "input": [
+ 1,
+ 2,
+ 4,
+ 5,
+ 7,
+ 8
+ ],
+ "keys": "astnop",
+ "base": "",
+ "baseshift": ""
+ },
+ "220": {
+ "input": [
+ 3,
+ 4,
+ 5,
+ 7,
+ 8
+ ],
+ "keys": "etnop",
+ "base": "",
+ "baseshift": ""
+ },
+ "221": {
+ "input": [
+ 1,
+ 3,
+ 4,
+ 5,
+ 7,
+ 8
+ ],
+ "keys": "aetnop",
+ "base": "",
+ "baseshift": ""
+ },
+ "222": {
+ "input": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 7,
+ 8
+ ],
+ "keys": "setnop",
+ "base": "",
+ "baseshift": ""
+ },
+ "223": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 7,
+ 8
+ ],
+ "keys": "asetnop",
+ "base": "",
+ "baseshift": ""
+ },
+ "224": {
+ "input": [
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "iop",
+ "base": "",
+ "baseshift": ""
+ },
+ "225": {
+ "input": [
+ 1,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "aiop",
+ "base": "",
+ "baseshift": ""
+ },
+ "226": {
+ "input": [
+ 2,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "siop",
+ "base": "",
+ "baseshift": ""
+ },
+ "227": {
+ "input": [
+ 1,
+ 2,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "asiop",
+ "base": "",
+ "baseshift": ""
+ },
+ "228": {
+ "input": [
+ 3,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "eiop",
+ "base": "",
+ "baseshift": ""
+ },
+ "229": {
+ "input": [
+ 1,
+ 3,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "aeiop",
+ "base": "",
+ "baseshift": ""
+ },
+ "230": {
+ "input": [
+ 2,
+ 3,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "seiop",
+ "base": "",
+ "baseshift": ""
+ },
+ "231": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "aseiop",
+ "base": "",
+ "baseshift": ""
+ },
+ "232": {
+ "input": [
+ 4,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "tiop",
+ "base": "",
+ "baseshift": ""
+ },
+ "233": {
+ "input": [
+ 1,
+ 4,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "atiop",
+ "base": "",
+ "baseshift": ""
+ },
+ "234": {
+ "input": [
+ 2,
+ 4,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "stiop",
+ "base": "",
+ "baseshift": ""
+ },
+ "235": {
+ "input": [
+ 1,
+ 2,
+ 4,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "astiop",
+ "base": "",
+ "baseshift": ""
+ },
+ "236": {
+ "input": [
+ 3,
+ 4,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "etiop",
+ "base": "",
+ "baseshift": ""
+ },
+ "237": {
+ "input": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "aetiop",
+ "base": "",
+ "baseshift": ""
+ },
+ "238": {
+ "input": [
+ 2,
+ 3,
+ 4,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "setiop",
+ "base": "",
+ "baseshift": ""
+ },
+ "239": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "asetiop",
+ "base": "",
+ "baseshift": ""
+ },
+ "240": {
+ "input": [
+ 5,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "niop",
+ "base": " ",
+ "baseshift": " "
+ },
+ "241": {
+ "input": [
+ 1,
+ 5,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "aniop",
+ "base": "",
+ "baseshift": ""
+ },
+ "242": {
+ "input": [
+ 2,
+ 5,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "sniop",
+ "base": "",
+ "baseshift": ""
+ },
+ "243": {
+ "input": [
+ 1,
+ 2,
+ 5,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "asniop",
+ "base": "",
+ "baseshift": ""
+ },
+ "244": {
+ "input": [
+ 3,
+ 5,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "eniop",
+ "base": "",
+ "baseshift": ""
+ },
+ "245": {
+ "input": [
+ 1,
+ 3,
+ 5,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "aeniop",
+ "base": "",
+ "baseshift": ""
+ },
+ "246": {
+ "input": [
+ 2,
+ 3,
+ 5,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "seniop",
+ "base": "",
+ "baseshift": ""
+ },
+ "247": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 5,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "aseniop",
+ "base": "",
+ "baseshift": ""
+ },
+ "248": {
+ "input": [
+ 4,
+ 5,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "tniop",
+ "base": "",
+ "baseshift": ""
+ },
+ "249": {
+ "input": [
+ 1,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "atniop",
+ "base": "",
+ "baseshift": ""
+ },
+ "250": {
+ "input": [
+ 2,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "stniop",
+ "base": "",
+ "baseshift": ""
+ },
+ "251": {
+ "input": [
+ 1,
+ 2,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "astniop",
+ "base": "",
+ "baseshift": ""
+ },
+ "252": {
+ "input": [
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "etniop",
+ "base": "",
+ "baseshift": ""
+ },
+ "253": {
+ "input": [
+ 1,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "aetniop",
+ "base": "",
+ "baseshift": ""
+ },
+ "254": {
+ "input": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "setniop",
+ "base": "",
+ "baseshift": ""
+ },
+ "255": {
+ "input": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8
+ ],
+ "keys": "asetniop",
+ "base": "SPACE",
+ "baseshift": ""
+ }
+} \ No newline at end of file
diff --git a/keyboards/gboards/dicts/aset/_generator/src/nw-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/nw-keymap.json
new file mode 100644
index 0000000000..a326e75806
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/_generator/src/nw-keymap.json
@@ -0,0 +1 @@
+{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",112911],"tlw":["a",7695],"lp":["aa","aaa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",10806],"tlw":["s",577],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",77058],"tlw":["saa",19034],"lp":["sa","saa","as","aas","ass","ssa","wa","saas","asa","waa","ssaa","asaa","saaa","assa","aasa"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",6166],"tlw":["e",308],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ae",70925],"tlw":["ex",147],"lp":["ae","aae","ea","ax","ex","aee","xe","exe","xa","exa","axe"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",411497],"tlw":["de",31445],"lp":["de","ed","se","es","ede","dd","dde","ds","des","sse","edes","dse","eds","see","ess","ese","edd","esse","edde","sed"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",41689],"tlw":["da",17989],"lp":["da","ad","add","adde","ade","aad","aes","aed","sae","aade","aede","ada","daa","dda","sad","asse","aese","saad","aada","ads"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",41039],"tlw":["t",37],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",83084],"tlw":["at",55917],"lp":["at","ta","fa","af","ft","att","aat","faa","taa","aatt","ff","aft","fat","tat","tta","aff","fatt","tf","tatt","ata"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",98189],"tlw":["st",132],"lp":["st","ts","sst","sc","tst","ct","tc","cc","tts","tss"],"rp":[]},"11":{"input":[1,2,4],"tlp":["sta",12336],"tlw":["sat",1574],"lp":["sta","ast","sat","staa","satt","tsa","ca","fas","fast","tsaa","fs","afs","ac","stat","fst","afst","ats","tats","tsat","asta"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",261904],"tlw":["er",33906],"lp":["er","et","te","re","rt","ere","tte","ter","tr","ett","ette","ret","rte","rr","ert","tter","tet","rre","err","tre"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",123529],"tlw":["fra",10890],"lp":["ar","ra","fr","aer","fra","aar","aere","fte","are","ef","atte","art","tra","eft","fter","efte","rae","fe","fre","tae"],"rp":[]},"14":{"input":[2,3,4],"tlp":["det",95805],"tlw":["det",77200],"lp":["det","der","ste","dt","rd","dr","rs","est","dre","rde","este","rst","res","red","dett","str","dte","ser","ers","erd"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["ard",3773],"tlw":["satte",1224],"lp":["ard","aest","stra","aerd","dra","ader","saet","derf","aste","rda","tad","rad","raad","stae","aard","stad","raed","fred","rsta","ras"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",37980],"trw":["n",328],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",164272],"trp":["na",33880],"tlw":["anna",1134],"trw":["na",964],"lp":["an","ann","aan","anna","ana"],"rp":["na","naa","nna","nan","nnan","nann","nana"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",5809],"trp":["ns",30049],"trw":["j",102],"lp":["sn","sj","ssn"],"rp":["ns","nj","jn","js","nns","nss","nsn"]},"19":{"input":[1,2,5],"tlp":["ans",16881],"trp":["ja",19604],"tlw":["sja",654],"trw":["ja",6049],"lp":["ans","sna","san","sja","aj","ansa","sjaa","sann","asj","aja","ssan","asn"],"rp":["ja","jaa","nja","nsa","nas","jan","njaa","nasj"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",321311],"trp":["ne",82848],"tlw":["en",38749],"trw":["nye",777],"lp":["en","enn","enne","ene","een","enen","ey"],"rp":["ne","nne","yn","nen","ny","ye","yne","nnen","nene","yen","nye","nny","nee"]},"21":{"input":[1,3,5],"tlp":["aen",13038],"trp":["nae",5436],"tlw":["annen",219],"trw":["naae",45],"lp":["aen","anne","ane","aaen","enna","anny","anen","aane","aene","ena","any","aany","enan","xan","exan"],"rp":["nae","naae","yna","ya","naee"]},"22":{"input":[2,3,5],"tlp":["den",74661],"trp":["nd",121952],"tlw":["den",37787],"trw":["ned",3945],"lp":["den","end","ende","sen","ens","denn","sy","syn","dn"],"rp":["nd","je","nde","jen","nden","nes","ned","ys","yd","nnes","ndes"]},"23":{"input":[1,2,3,5],"tlp":["and",33662],"trp":["jae",5122],"tlw":["anden",2420],"trw":["naade",166],"lp":["and","ande","dan","aend","aand","adan","sand","anse","enda","ands","aden","dans","dann","anda","sjae"],"rp":["jae","nda","naes","nand","ndda"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["tn",2343],"trp":["nt",20514],"tlw":["b",230],"trw":["nb",169],"lp":["tn","bt","bn","bb","tb","ttn"],"rp":["nt","nb","nnt","ntn"]},"25":{"input":[1,4,5],"tlp":["ba",17182],"trp":["nat",3688],"tlw":["fann",272],"trw":["nat",367],"lp":["ba","tan","ab","ant","fan","aab","baa","ban","abt","fann","abn","aabn","tab","aabt","anta","fant"],"rp":["nat","nf","natt","nta"]},"26":{"input":[2,4,5],"tlp":["bj",1597],"trp":["nst",1389],"lp":["bj","tj","sb","stn","bs","sbn","stj","sbj","stb","tsb","tsj","bst"],"rp":["nst","jst","jt","nc","jtn","nsc","nnst","nstn"]},"27":{"input":[1,2,4,5],"tlp":["stan",2679],"trp":["nsta",211],"tlw":["sant",289],"trw":["jf",31],"lp":["stan","fj","tans","sant","tja","bas","abs","anst","anc","fja","asb","asbj","stba","bja","tanc"],"rp":["nsta","jac","nast","jtna","ntas"]},"28":{"input":[3,4,5],"tlp":["be",28242],"trp":["nte",10150],"tlw":["berre",1003],"trw":["nyt",327],"lp":["be","ten","ren","rn","br","ent","rne","ern","erne","ty","ry","ber","ente","eb","rb","eren"],"rp":["nte","ner","yr","net"]},"29":{"input":[1,3,4,5],"tlp":["bar",6004],"trp":["nar",6320],"tlw":["bare",3028],"trw":["naar",5355],"lp":["bar","ran","taen","bare","fy","bra","arn","fyr","aren","ften","abe","barn","raen","arb","bae"],"rp":["nar","naar","naer","nnar","nart"]},"30":{"input":[2,3,4,5],"tlp":["sten",6428],"trp":["nder",11117],"tlw":["syntes",1260],"lp":["sten","bes","endt","rden","bed","sty","best","rend","dern","synt"],"rp":["nder","ndt","ndr","ndre","jer","ndet","ndte","yst","nest","jern"]},"31":{"input":[1,2,3,4,5],"tlw":["andre",3868],"trw":["naesten",1049],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1106],"trw":["i",62852],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",969],"trp":["ia",2946],"tlw":["ai",51],"lp":["ai","aai","za"],"rp":["ia","iaa"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",57626],"trp":["kk",58266],"tlw":["si",1195],"trw":["k",1220],"lp":["si","sk","ski","sik","sikk","skik","sis"],"rp":["kk","ik","ikk","is","ki","ks","iss","isk","kik","iks","kki","ikki","kikk"]},"35":{"input":[1,2,6],"tlp":["ak",14837],"trp":["ka",36672],"tlw":["saki",383],"trw":["ka",36],"lp":["ak","ska","akk","ask","aks","sak","aka","aask","akka","aki","saki","sia","aak","skaa"],"rp":["ka","kas","kka","isa","kaa","ika"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",46211],"trp":["ie",12197],"tlw":["ei",2621],"lp":["ei","eie"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["xi",72],"trp":["iae",68],"tlw":["xi",27],"trw":["ix",27],"lp":["xi","aei","eia","xii","xiii"],"rp":["iae","ix"]},"38":{"input":[2,3,6],"tlp":["di",22778],"trp":["ke",75425],"tlw":["dei",9926],"trw":["ikke",27380],"lp":["di","ske","dei","ek","sid","ekk","side","esk","eis","eske","dis","eid"],"rp":["ke","kke","id","ikke","ide","ids","ise","isse"]},"39":{"input":[1,2,3,6],"tlp":["akke",3114],"trp":["ida",2239],"tlw":["skade",227],"trw":["kasse",30],"lp":["akke","aek","aekk","ake","aske","sida","adi","daek","ekka","skad","adsk","akse","eska","dska"],"rp":["ida","idda","isae","kad","kade","kae"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",75549],"trp":["it",21023],"tlw":["vi",9397],"trw":["iv",58],"lp":["ti","vi","tv","vit","vt","tti","tvi","viv","tviv","vii","tiv","vitt","tit"],"rp":["it","iv","itt","iti","ivi","itti","ivt"]},"41":{"input":[1,4,6],"tlp":["va",86367],"trp":["if",2566],"tlw":["av",10474],"lp":["va","av","fi","vaa","ava","avt","avi","fti","tia","atti","aav","vat","ati","vita","aavi"],"rp":["if","ift","ita","iva","iaf"]},"42":{"input":[2,4,6],"tlp":["vis",9768],"trp":["kt",8569],"tlw":["sit",3082],"trw":["kvit",106],"lp":["vis","sv","sti","sit","viss","vist","sitt","vs","ci","ck","vst"],"rp":["kt","ist","kv","kvi","isst","ic","ikt","isti","kst"]},"43":{"input":[1,2,4,6],"tlp":["sva",5726],"trp":["kva",3206],"tlw":["fik",2530],"trw":["kva",1095],"lp":["sva","tak","fik","takk","akt","vak","stak","stia","fis","fisk","taka","vakk","fikk"],"rp":["kva","kast","kaf","ica","kaff","ista","kat"]},"44":{"input":[3,4,6],"tlp":["ve",84601],"trp":["ir",9659],"tlw":["eit",2100],"lp":["ve","ri","ver","ev","eve","vet","rei","eit","vei","rti","rv","rev","eri","eir","eier"],"rp":["ir","ive","ier","ite","iver"]},"45":{"input":[1,3,4,6],"tlp":["var",53426],"trp":["ifte",820],"tlw":["var",42028],"lp":["var","vae","vaer","ave","vart","vera","vare","fri","eva","aev","vara","arv","ari","rav","aeve","arve","fie","evae","fir"],"rp":["ifte"]},"46":{"input":[2,3,4,6],"tlp":["ved",13498],"trp":["kr",10422],"tlw":["ved",10508],"trw":["idet",890],"lp":["ved","vd","rk","vde","tid","rke","dri","vid","erk","skr","rdi"],"rp":["kr","ker","ket","idt","kri","kte","kker","iste","idst"]},"47":{"input":[1,2,3,4,6],"tlw":["fekk",1380],"trw":["kvar",593],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",88711],"trw":["inn",1636],"lp":[],"rp":["in","ni","hi","nin","inn","nh","hin","nhi","ih","nni","iin","nnin","hn","inni","ini","inin","nnh","hii","hiin","nnhi"]},"49":{"input":[1,5,6],"tlp":["ani",619],"trp":["ha",134263],"tlw":["ah",106],"trw":["han",52972],"lp":["ani","ania","ah","ain","anni"],"rp":["ha","han","haa","haan","ina","ian","inan","hina","nia","hann","iani","inna","nha","iana","nz"]},"50":{"input":[2,5,6],"tlp":["sin",12978],"trp":["kj",25013],"tlw":["sin",8225],"trw":["nik",27],"lp":["sin","skj","skin","sni","sh"],"rp":["kj","nk","kkj","ikkj","hj","nsk","kn","nsi","kin","ink","ins","his","nkj","kni","inkj"]},"51":{"input":[1,2,5,6],"tlp":["ansk",3797],"trp":["kan",11435],"tlw":["sank",208],"trw":["hans",8898],"lp":["ansk","ank","ansi","snak","skja","sank","ash","akn"],"rp":["kan","hans","kja","nak","nakk","hja","kans","hak","kann","kna","nska","has"]},"52":{"input":[3,5,6],"tlp":["ein",9181],"trp":["he",52514],"tlw":["ein",5538],"trw":["henne",2515],"lp":["ein","eh","enh","eni","eine","eien","enin","enhe"],"rp":["he","hen","ine","henn","hei","nei","ien","inne","hy","inen","nhe","ihe"]},"53":{"input":[1,3,5,6],"tlp":["eha",758],"trp":["hae",2400],"tlw":["einannan",141],"trw":["hena",63],"lp":["eha","enha","eina","ehan","anie","enia","enz","aine","anei","ahy","ehaa","aein","einz"],"rp":["hae","haen","iane","nhae","hena","hea","hax"]},"54":{"input":[2,3,5,6],"tlp":["enk",5100],"trp":["ind",19969],"tlw":["sine",3555],"trw":["ikkje",7483],"lp":["enk","sine","din"],"rp":["ind","kje","hend","inde","kkje","yk","ken","hed","nke","iden","ykk","hje","nske","ykke","ky","kjen","nesk"]},"55":{"input":[1,2,3,5,6],"tlw":["sidan",654],"trw":["hadde",11705],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["vin",4628],"trp":["hv",25602],"tlw":["thi",1736],"trw":["hit",287],"lp":["vin","th","bi","tin","vn","thi","tni","tnin","vint","bin","vinn"],"rp":["hv","hvi","int","ib","nti","nhv","nv","ntin","hvit"]},"57":{"input":[1,4,5,6],"tlp":["van",4044],"trp":["hav",15474],"tlw":["fin",261],"trw":["navn",696],"lp":["van","fin","avn","finn","tian","vant","anv","fint","vann"],"rp":["hav","hva","nav","navn","hava","hat","havt","haab","hatt","havn","nhav"]},"58":{"input":[2,4,5,6],"tlp":["ch",2454],"trp":["nkt",2442],"tlw":["sint",142],"trw":["hvis",1991],"lp":["ch","stin","sch","svin","skib","bis","tkj","stni"],"rp":["nkt","hvis","kvin","nic","hist","istn","ich","kib","isb","isbn","kniv","inst"]},"59":{"input":[1,2,4,5,6],"tlw":["bak",310],"trw":["kant",169],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["ven",10891],"trp":["her",10731],"tlw":["ven",661],"trw":["her",6657],"lp":["ven","rin","rh","vent","even","vne","beh","bei","bev","evn","erh","the"],"rp":["her","hve","hver","inte","hev","herr","hr","yv"]},"61":{"input":[1,3,4,5,6],"tlw":["fine",333],"trw":["har",14412],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["verden",958],"trw":["kjendte",636],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["vand",853],"trw":["havde",9987],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",42],"trw":["o",923],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","trp":["oa",34],"lp":[],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",62776],"trp":["os",14215],"tlw":["so",6443],"trw":["os",3796],"lp":["so","sos","sso","soso"],"rp":["os","oss","oso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",147],"trp":["ow",102],"trw":["ossaa",45],"lp":["wo","aso","aaso","asso"],"rp":["ow","ossa","owa"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",687],"trp":["oe",3728],"trw":["-",3322],"lp":["eo","e-"],"rp":["oe","-o","o-"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",49],"trp":["ox",122],"lp":["a-","e-a","e-aa"],"rp":["ox","oxe","-a","-aa"]},"70":{"input":[2,3,7],"tlp":["do",13375],"trp":["od",32172],"tlw":["dod",621],"trw":["odd",219],"lp":["do","dod","eso","dode","edo","sod","dso","esso","doe"],"rp":["od","ode","odd","ose","ods","odde","oed","oede","osse","odse","odes"]},"71":{"input":[1,2,3,7],"tlp":["adso",64],"trp":["odsa",186],"lp":["adso","de-a"],"rp":["odsa","oda","odda","-aas"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",34309],"trp":["og",149705],"tlw":["to",2884],"trw":["og",122759],"lp":["to","gt","go","gg","tog","tg","tot","tott","gto","tto","gtt","got","gtto","ttog"],"rp":["og","ot","ott","ogt","ogg","otto"]},"73":{"input":[1,4,7],"tlp":["fo",74135],"trp":["of",3896],"tlw":["gaa",1786],"lp":["fo","ag","ga","agt","gaa","tag","aag","gat","aga","tfo","tga","fot","gf","fag","gaat"],"rp":["of","oft","ofa","off","otta"]},"74":{"input":[2,4,7],"tlp":["sto",16012],"trp":["ogs",5245],"tlw":["stott",99],"trw":["oc",346],"lp":["sto","gs","sog","gst","sg","gso","sost","co","sogt","stot","toc","stoc","tso","sot"],"rp":["ogs","ost","oc","ogso","osto","oct"]},"75":{"input":[1,2,4,7],"tlp":["sag",7523],"trp":["ogsa",5006],"tlw":["sagt",1463],"trw":["ogsaa",3774],"lp":["sag","gsa","gsaa","sagt","ags","sof","saag","sga","asg","asto","sofa","sgaa","aco","fos","sfo","stof","soga","gsta"],"rp":["ogsa","ofas"]},"76":{"input":[3,4,7],"tlp":["ge",87205],"trp":["or",142919],"tlw":["eg",8868],"trw":["or",301],"lp":["ge","eg","ro","tor","get","ger","gr","ege","rg","gte","gge","tro","eget"],"rp":["or","ort","ore","oge","orte","org","oget"]},"77":{"input":[1,3,4,7],"tlp":["for",64883],"trp":["ora",3045],"tlw":["for",32016],"trw":["ofte",1064],"lp":["for","age","fort","aeg","tage","rag","gar","rfo","rfor","gra","fore","gaar","fora","agte","erfo","aegg"],"rp":["ora","ofte","orta","orf"]},"78":{"input":[2,3,4,7],"tlp":["stor",7850],"trp":["ord",13774],"tlw":["seg",6090],"trw":["ord",1982],"lp":["stor","god","seg","gd","tod","stod","gde","ges","dog","godt","rod","deg","dor","rso","sor"],"rp":["ord","ors","orst","orde","odt"]},"79":{"input":[1,2,3,4,7],"tlw":["sagde",3425],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",57145],"trw":["nu",8186],"lp":[],"rp":["un","no","on","nu","unn","ono","onn","nno","ou","uu","nun","uun","onno","non","nnu","uo","uno","oun"]},"81":{"input":[1,5,7],"tlp":["au",4958],"trp":["unna",1842],"tlw":["au",141],"trw":["unna",94],"lp":["au","ano","anu","anua","anno"],"rp":["unna","ona","ua","onna","nau","nua","una"]},"82":{"input":[2,5,7],"tlp":["su",3824],"trp":["jo",23891],"tlw":["son",930],"trw":["jo",3859],"lp":["su","son","sjo","snu","sun","sno","sson","sonn"],"rp":["jo","us","ju","jon","oj","ons","jonn","jus","ojn","uss","jos","uns"]},"83":{"input":[1,2,5,7],"tlp":["aus",1274],"trp":["jona",341],"tlw":["sau",28],"trw":["jau",154],"lp":["aus","ajo","asjo","sau","anus","wu","snau","sua"],"rp":["jona","jau","ussa","onas","janu","usa","onsa"]},"84":{"input":[3,5,7],"tlp":["eno",822],"trp":["ue",3657],"tlw":["enno",276],"trw":["noe",486],"lp":["eno","eu","enno","eon","eun","enu"],"rp":["ue","one","uen","unne","oy","onne","oen","noe","onen","une","noen","yo","oyo","oye"]},"85":{"input":[1,3,5,7],"tlp":["eona",156],"trp":["oxn",30],"lp":["eona","anoe","aue","auen"],"rp":["oxn","oxne","ux","oux","oxen","oya"]},"86":{"input":[2,3,5,7],"tlp":["du",19662],"trp":["und",23222],"tlw":["du",17772],"trw":["ud",4343],"lp":["du","dnu"],"rp":["und","ud","unde","ude","uden","ndnu","use","ond","uds","ndo","udd","udse","udde","oje","nod","ndu","onde","oden"]},"87":{"input":[1,2,3,5,7],"tlw":["daud",104],"trw":["unda",243],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",11738],"trp":["ng",56304],"tlw":["gong",545],"trw":["ut",3855],"lp":["bo","gu","tu","gn","bu","tun","gun","gunn","gut","gon"],"rp":["ng","ut","nog","ug","ung","ngt","ong","ob","utt","ont"]},"89":{"input":[1,4,5,7],"tlp":["ang",17346],"trp":["nga",2499],"tlw":["gang",1862],"trw":["utan",212],"lp":["ang","gan","gang","fu","bag","angt","atu","aug","agn","fun","aut","fang"],"rp":["nga","natu","ngan","uf","nfo","uft","uta","utga"]},"90":{"input":[2,4,5,7],"tlp":["gj",23821],"trp":["ngs",2173],"tlw":["song",96],"trw":["just",538],"lp":["gj","gjo","stu","bjo","stun","tus","ggj","gus","stno"],"rp":["ngs","ust","ngst","jont","just","uc","ngso","job","jot","unst","ugus"]},"91":{"input":[1,2,4,5,7],"tlw":["sang",405],"trw":["jacob",143],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",22078],"trp":["nge",25467],"tlw":["bort",1232],"trw":["noget",4415],"lp":["gen","ru","eng","bor","enge","beg","run","tur","egen","gy"],"rp":["nge","ur","ngen","noge","yg","nger","oren","orn","ogen","nor"]},"93":{"input":[1,3,4,5,7],"tlw":["gunnar",1603],"trw":["naturen",307],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["gjorde",2339],"trw":["jeg",29616],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["dagen",1077],"trw":["udenfor",448],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["il",83974],"trw":["lo",890],"lp":[],"rp":["il","li","ll","ol","lo","ill","oi","lli","oli","io","illi","lil","ili","lill","oll","llo","illo","lio","loi","iil"]},"97":{"input":[1,6,7],"tlp":["al",58249],"trp":["la",46808],"tlw":["al",993],"trw":["la",2277],"lp":["al","all","aal","ala","alli","ali","alla","aala","alo"],"rp":["la","laa","lla","ola","illa","ial","lai","olai","lia","ila","oia"]},"98":{"input":[2,6,7],"tlp":["sl",12627],"trp":["ko",30079],"tlw":["slik",1363],"trw":["los",291],"lp":["sl","sli","slik","sol","slo"],"rp":["ko","ok","ls","lik","lk","kl","olk","lsk","ils","oko","kol","oks","ilk","okk","los"]},"99":{"input":[1,2,6,7],"tlp":["skal",8407],"trp":["kal",10316],"tlw":["skal",8110],"trw":["kalla",209],"lp":["skal","sla","saal","ako","als","sal","slaa","alsk","alk","asl"],"rp":["kal","kla","las","lska","lass","kall","lsa","lask","lak","isla"]},"100":{"input":[3,6,7],"tlp":["el",77241],"trp":["le",79550],"tlw":["elle",34],"trw":["lille",1039],"lp":["el","ell","elle","eli","ele","eil","elli","eel","eile"],"rp":["le","lle","ille","ole","oie","lei","ile","lie","iel","lel","olle"]},"101":{"input":[1,3,6,7],"tlp":["ale",7840],"trp":["lae",9587],"tlw":["alle",5666],"trw":["lea",237],"lp":["ale","alle","ael","aale","aell","ella","aele","ela","alae","alie","alei","eal","eale","aael","alex"],"rp":["lae","laae","lea","iael","lex"]},"102":{"input":[2,3,6,7],"tlp":["els",10495],"trp":["ld",45157],"tlw":["del",665],"trw":["lod",1164],"lp":["els","del","sel","eld","else","deli","elsk","dl","elde"],"rp":["ld","lde","ild","ilde","old","lse","kel","led","lid","lede","keli"]},"103":{"input":[1,2,3,6,7],"tlw":["saaledes",1295],"trw":["lad",661],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["til",52776],"trp":["ig",98658],"tlw":["til",41443],"trw":["liv",1338],"lp":["til","vil","vo","gi","gl","tig","till","tl","gti"],"rp":["ig","lig","ov","lt","lv","igt","liv","lg","lit","ligt","lov"]},"105":{"input":[1,4,6,7],"tlp":["alt",10974],"trp":["lag",4727],"tlw":["alt",4399],"trw":["olav",641],"lp":["alt","fol","tal","fl","gav","fal","gla","alv","talt","folg","alti","flo","fla","tilf","gif"],"rp":["lag","lf","lav","lat","ilf"]},"106":{"input":[2,4,6,7],"tlp":["sig",27397],"trp":["lst",1344],"tlw":["sig",21706],"lp":["sig","gik","tok","stil","sigt","tils","vilk","stol","slig","sov","gvis","slog","gikk","stig"],"rp":["lst","lts","kog","likt","okt","kto"]},"107":{"input":[1,2,4,6,7],"tlw":["folk",2816],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["vor",14150],"trp":["ige",17385],"tlw":["eller",6110],"trw":["over",7437],"lp":["vor","elig","rl","vel","elv","rig","rli","rlig","elt","erl"],"rp":["ige","ove","ler","over","ller","lige","lev","lte","let","live"]},"109":{"input":[1,3,4,6,7],"tlw":["tale",1360],"trw":["laegge",464],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["vilde",7016],"trw":["lidt",2153],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["aldrig",2153],"trw":["idag",668],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",30354],"trw":["hun",21044],"lp":[],"rp":["ho","hu","hun","ul","lu","hol","lin","hon","hono","nl","hoi","uli","ull","oin","nli","hil","llin","oh","oni","nhil"]},"113":{"input":[1,5,6,7],"tlp":["anl",884],"trp":["lan",10243],"tlw":["alonzo",24],"trw":["hall",138],"lp":["anl","anli","ahl"],"rp":["lan","hal","lau","hall","nla","oha","ohan","nal","onal","nnla","nlau","llan","hau","onla","ula","nlan","ulia"]},"114":{"input":[2,5,6,7],"tlp":["sku",10170],"trp":["ku",23180],"tlw":["sjol",372],"trw":["nok",3367],"lp":["sku","skul","skjo","slu"],"rp":["ku","kun","kul","nok","kon","kjo","uk","hos","hus","ukk","noko","kjon","kunn","jol","lj","jul"]},"115":{"input":[1,2,5,6,7],"trw":["hakon",849],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eho",965],"trp":["hel",9131],"trw":["hele",2760],"lp":["eho","elen","enl","ehol"],"rp":["hel","len","ly","yl","hele","hell","oine","lene","olen","ule","ulle","hoie","hoy","heil","uly","nel"]},"117":{"input":[1,3,5,6,7],"tlw":["alene",964],"trw":["nella",82],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["skulde",7929],"trw":["kunde",7993],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["sjael",299],"trw":["land",975],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",22281],"trp":["ing",20917],"tlw":["bli",1395],"trw":["hoit",425],"lp":["bl","bli","ting","gh","bliv","tilb","blo"],"rp":["ing","hvo","ning","lb","igh","ilb","hov","ling","ligh","hvil","lut","ntl","ntli"]},"121":{"input":[1,4,5,6,7],"tlw":["gunnlaug",319],"trw":["langt",1662],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["blik",491],"trw":["och",329],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["ansigt",724],"trw":["langs",495],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["blev",6367],"trw":["hvor",4988],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["tilbage",1441],"trw":["laenge",1067],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["gjekk",2117],"trw":["igjen",3313],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["ganske",1701],"trw":["landet",659],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",6585],"trw":["p",102],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",4962],"trp":["pa",49694],"trw":["paa",26138],"lp":["ap","app","aap","apa","appa","aapa"],"rp":["pa","paa","pap","ppa","ppaa","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",8870],"trp":["ps",217],"trw":["ps",26],"lp":["sp"],"rp":["ps","psp"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",590],"trp":["pas",1229],"tlw":["saapas",42],"trw":["pas",58],"lp":["spa","saap","apas","asp"],"rp":["pas","pass","paas","psa","pspa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",1790],"trp":["pe",12061],"trw":["'",36],"lp":["ep","epp","eppe","epe","e'"],"rp":["pe","ppe","pee","'e","pep","pepp"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["appe",605],"trp":["pae",444],"trw":["'a",44],"lp":["appe","ape","a'","epa","aape","eppa"],"rp":["pae","paee","'a","pea"]},"134":{"input":[2,3,8],"tlp":["spe",488],"trp":["pd",356],"lp":["spe","dp","esp","espe","sep","dsp","edp","s'","d'","d'e","es'","des'","ed'","dep"],"rp":["pd","ped","pede","pped","pes","ppes"]},"135":{"input":[1,2,3,8],"tlp":["spae",291],"trp":["pda",290],"tlw":["sa'",71],"trw":["passe",167],"lp":["spae","dpa","dpaa","sa'","edpa","aspe","depa"],"rp":["pda","pad","paed"]},"136":{"input":[4,8],"tlp":["tp",173],"trp":["pt",1987],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",508],"trp":["pf",337],"tlw":["tapt",32],"lp":["apt","tpa","tap","tapt","tpaa"],"rp":["pf","pta","paaf","pfa","pfat","ptat","pat","ppat","patt"]},"138":{"input":[2,4,8],"trp":["pst",23],"lp":[],"rp":["pst"]},"139":{"input":[1,2,4,8],"tlp":["cap",53],"trp":["past",196],"trw":["paastaa",25],"lp":["cap","capp"],"rp":["past"]},"140":{"input":[3,4,8],"tlp":["rp",1719],"trp":["pr",6671],"tlw":["teppet",51],"trw":["per",998],"lp":["rp","erp","rep","repe","t'","et'","ept","tep"],"rp":["pr","per","pet","pre","pte","pper","ppet","petr","pete","ptr","pere","peer"]},"141":{"input":[1,3,4,8],"tlp":["rpa",1174],"trp":["pra",2577],"tlw":["rapp",178],"trw":["par",1236],"lp":["rpa","rpaa","erpa","rap","arp","rapp","trap","apte","apet","repa","arpe","apr","rape"],"rp":["pra","par","prae","part","prat","para","ptra"]},"142":{"input":[2,3,4,8],"tlp":["spr",1897],"trp":["pres",895],"tlw":["drepe",95],"trw":["prest",134],"lp":["spr","derp","drep","set'","sept","spre","sper","resp","step","rdsp","spec","d'er","dtp","rdp"],"rp":["pres","pers","pred","pdr","pec","pest"]},"143":{"input":[1,2,3,4,8],"tlw":["derpaa",639],"trw":["passer",132],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",21715],"trw":["m",266],"lp":[],"rp":["mm","mp","mn","pn","nm","np","pm","nnp"]},"145":{"input":[1,5,8],"tlp":["am",30376],"trp":["ma",44872],"trw":["man",6961],"lp":["am","amm","ama","amp","aam","apn","aman","amn","ampa"],"rp":["ma","man","maa","mann","pan","mma","nap","nma","maan","npa","mpa"]},"146":{"input":[2,5,8],"tlp":["sm",7709],"trp":["ms",1313],"lp":["sm","spj"],"rp":["ms","nsm","mj","pj","nsp","mps","mss","msp"]},"147":{"input":[1,2,5,8],"tlp":["sam",7924],"trp":["maj",624],"tlw":["smaa",580],"trw":["jaampa",181],"lp":["sam","samm","sma","smaa","sman","asm","aasm","sama","saam","ams"],"rp":["maj","maas","mas","jam","jaam","nsma","mja","mass","jamn","jamm"]},"148":{"input":[3,5,8],"tlp":["em",29102],"trp":["me",119265],"trw":["men",24935],"lp":["em","emm","emme","emn","eme"],"rp":["me","men","mme","mmen","menn","nem","pen","nnem","my","mpe","mene","ppen","mee","nep","'n"]},"149":{"input":[1,3,5,8],"tlp":["amme",6974],"trp":["mae",3374],"tlw":["apne",60],"trw":["mannen",490],"lp":["amme","ame","amen","ema","ampe","aem","apne","enpa","aame","emae","aemp","apen","emna","xem"],"rp":["mae","maen","maae","paen","mane","pmae"]},"150":{"input":[2,3,5,8],"tlp":["dem",8585],"trp":["med",39755],"tlw":["dem",8538],"trw":["med",36341],"lp":["dem","sme","dm","esm","sem","emnd","emd","emde"],"rp":["med","jem","mes","mede","mens","jemm","mmed","mend","mmes","md","mde","mnd"]},"151":{"input":[1,2,3,5,8],"tlw":["samme",2157],"trw":["mand",2119],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",528],"trp":["mt",5699],"lp":["tm","bm","ttm"],"rp":["mt","mb","mtm","mnt"]},"153":{"input":[1,4,5,8],"tlp":["amt",1276],"trp":["maat",2873],"tlw":["amt",30],"trw":["mat",345],"lp":["amt","amf","amta","fam","tma","tman","amtm","tam","tamm","amb"],"rp":["maat","mat","matt","mf","mta","mtma","napt","mant","manf","mata"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["stm",72],"trp":["mst",812],"lp":["stm"],"rp":["mst"]},"155":{"input":[1,2,4,5,8],"tlw":["samt",265],"trw":["jamt",42],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",7650],"trp":["mer",11185],"trw":["mere",2630],"lp":["rm","rme","rem","tem","erm","emt","erme","temm","rmen","remm","emte","temt","rmer"],"rp":["mer","mmer","mere","met","mte","mmet","ment"]},"157":{"input":[1,3,4,5,8],"tlw":["frem",2232],"trw":["maatte",2413],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["dermed",460],"trw":["mest",1195],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["fremmede",427],"trw":["praesten",521],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",3962],"lp":[],"rp":["pi","ip","ipp","ppi","pip","pii","ipi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",565],"trp":["papi",297],"trw":["pipa",30],"lp":["api","apii","aapi"],"rp":["papi","ipa","pia","pipa"]},"162":{"input":[2,6,8],"tlp":["spi",1562],"trp":["pis",688],"tlw":["skip",130],"lp":["spi","spis","skip"],"rp":["pis","kip","pik","isp","kipp","kp","pk","psk","pski","psi","kipi","ips","kips"]},"163":{"input":[1,2,6,8],"tlp":["skap",1414],"trp":["kap",2212],"tlw":["skipa",35],"trw":["kap",53],"lp":["skap","spak"],"rp":["kap","pak","kapi","kapp","pakk","kasp","kipa","kapa"]},"164":{"input":[3,6,8],"tlp":["epi",51],"trp":["ippe",579],"lp":["epi"],"rp":["ippe","ipe","pei","i'","pipe"]},"165":{"input":[1,3,6,8],"trp":["paei",34],"lp":[],"rp":["paei"]},"166":{"input":[2,3,6,8],"tlp":["spid",160],"trp":["pise",465],"tlw":["spise",213],"trw":["pike",73],"lp":["spid","spek","spei","espi","dpi","edpi"],"rp":["pise","kipe","pid","pike","pek","pids","ispe","'k","peis","idsp"]},"167":{"input":[1,2,3,6,8],"tlw":["skape",20],"trw":["pakke",59],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["vp",22],"trp":["pit",244],"lp":["vp"],"rp":["pit","ipt"]},"169":{"input":[1,4,6,8],"tlp":["apit",244],"trp":["pita",83],"lp":["apit","vap","vaap","vpa"],"rp":["pita","pav","paav"]},"170":{"input":[2,4,6,8],"tlp":["cip",35],"trp":["pist",223],"tlw":["spist",76],"lp":["cip"],"rp":["pist"]},"171":{"input":[1,2,4,6,8],"tlw":["skapt",72],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",118],"trp":["pri",1351],"lp":["rip","ript","ripe","tepi"],"rp":["pri","pir","pire","ipet","peri","ptei","pite","ptri","priv","piir","ipte","peti","prii","prei"]},"173":{"input":[1,3,4,6,8],"tlw":["appetit",31],"trw":["parti",114],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["skipet",189],"trw":["pris",147],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["skarpe",106],"trw":["paris",116],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",30489],"trw":["min",5651],"lp":[],"rp":["mi","min","im","imi","ph","him","imm","mh","himm","imp","hm","minn","pin","mni","mnin","inm","phi","phin","nim","pni"]},"177":{"input":[1,5,6,8],"tlp":["ami",591],"trp":["ham",10774],"trw":["ham",10248],"lp":["ami","aim","aima","apni","amin","aham"],"rp":["ham","hamm","mai","ima","iman","inma","hama","maim","hamp","hma","hman","mina","hap","pian"]},"178":{"input":[2,5,6,8],"tlp":["smi",1350],"trp":["mk",1125],"trw":["km",55],"lp":["smi","sim","simp","skim","simi"],"rp":["mk","mis","km","msi","kim","ism","mins","mkj","misk","mik","ksim","insp","mpsk","ims","imss"]},"179":{"input":[1,2,5,6,8],"tlw":["skam",220],"trw":["kamp",171],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["eim",1710],"trp":["ime",2104],"trw":["mine",1626],"lp":["eim","eime","emni","enim"],"rp":["ime","mine","mei","heim","imme","meni","mein","hem","mhe","phe","hemm","impe","menh","imen","pine","hemn"]},"181":{"input":[1,3,5,6,8],"trw":["ha'",122],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["deim",320],"trw":["hjem",1228],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["aminda",55],"trw":["maaske",483],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",1156],"trp":["mit",1962],"trw":["mit",1634],"lp":["tim","timm","tmi","tmin","vm","vim"],"rp":["mit","mti","mv","ntim","mitt","imt","pib","mvi","mvit","mith","mint","pint","imit"]},"185":{"input":[1,4,5,6,8],"tlw":["vapni",74],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["bisp",71],"trw":["minst",66],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"trw":["knapt",173],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["time",369],"trw":["meir",910],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["varme",418],"trw":["marthe",201],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"trw":["mindre",926],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["skarphedin",261],"trw":["maerke",210],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",14625],"trw":["op",5953],"lp":[],"rp":["op","po","opp","opo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",23],"trp":["opa",359],"lp":["apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["spo",1607],"trp":["pos",227],"lp":["spo"],"rp":["pos","ops","osp","poss","pso","opso","opsp"]},"195":{"input":[1,2,7,8],"trp":["ospa",68],"lp":[],"rp":["ospa","opas"]},"196":{"input":[3,7,8],"trp":["oppe",1803],"trw":["oppe",861],"lp":[],"rp":["oppe","ope","-p","-pe","poe","o'","'o"]},"197":{"input":[1,3,7,8],"trp":["opae",89],"lp":[],"rp":["opae"]},"198":{"input":[2,3,7,8],"tlp":["dop",25],"trp":["opd",356],"trw":["posse",49],"lp":["dop","dope"],"rp":["opd","poes","pose"]},"199":{"input":[1,2,3,7,8],"trw":["opad",95],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1476],"trp":["opt",955],"tlw":["top",86],"trw":["pot",131],"lp":["top","topp","ttop"],"rp":["opt","pot","pg","opg","pog","pott","pto","opto","ptog"]},"201":{"input":[1,4,7,8],"trp":["opf",337],"trw":["optat",55],"lp":[],"rp":["opf","opta","pfo","opfo","ptag","pga","opga","opfa","pag","pagt"]},"202":{"input":[2,4,7,8],"tlp":["stop",159],"trp":["post",133],"tlw":["spog",66],"trw":["post",83],"lp":["stop","spog","spot"],"rp":["post","psog","opst","psto"]},"203":{"input":[1,2,4,7,8],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",1406],"trp":["por",1635],"tlw":["ropte",390],"trw":["potter",86],"lp":["rop","etop","ropp","ropt","erop","grep","t-p","t-pe"],"rp":["por","pro","porg","opte","opr","orp","prog","port","optr","pote","opro","pror"]},"205":{"input":[1,3,4,7,8],"tlw":["ropa",47],"trw":["praeg",79],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["spor",486],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"trw":["pastor",149],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",89943],"trw":["om",15683],"lp":[],"rp":["om","mo","omm","um","mu","pu","nom","onom","up","mun","upp","pun","mon","umm","umu","mum","omn","opm","munn","mom"]},"209":{"input":[1,5,7,8],"tlp":["amu",199],"trp":["oma",845],"trw":["opnaa",33],"lp":["amu","amun","amum","aum","anmo","aup"],"rp":["oma","uma","omma","pau","opma","oman","opna","uppa","manu","umaa","mau","upa","napo"]},"210":{"input":[2,5,7,8],"tlp":["som",43671],"trp":["oms",911],"tlw":["som",39317],"trw":["mons",44],"lp":["som","spu","smu","somm","smo","smun","sum","sup","supp","spjo"],"rp":["oms","osm","jom","mus","jop","nsom","pus","mons","mos","pjo"]},"211":{"input":[1,2,5,7,8],"tlw":["saasom",54],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["enom",392],"trp":["omme",9224],"trw":["munnen",129],"lp":["enom","emo","epu"],"rp":["omme","umme","uppe","ome","omne","omen","ume","moe","mue","opme","upe","ompe","mome","umen","muen","moen","omy"]},"213":{"input":[1,3,5,7,8],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dom",370],"trw":["mod",2528],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["aasmund",396],"trw":["pause",88],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",707],"trp":["mot",4043],"tlw":["tom",164],"trw":["mot",2107],"lp":["tom","tum","tomm","gm","gom","tomt","gmu","gmun","tup"],"rp":["mot","omt","mott","munt","mg","pub","omb","mbo","ombo","mob","omg"]},"217":{"input":[1,4,5,7,8],"tlw":["bagom",48],"trw":["magt",486],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["spjot",59],"trw":["pust",52],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["smag",190],"trw":["magnus",34],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"trw":["meget",2988],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["form",273],"trw":["mange",2669],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["gjennem",1415],"trw":["moder",464],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["sprang",713],"trw":["majoren",426],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",3409],"trw":["lop",55],"lp":[],"rp":["pl","lp","pil","pill","lip","lipp","opl","pol","poli","pli","plo","opi","lop","oppi","polo","lpi","oplo"]},"225":{"input":[1,6,7,8],"tlp":["alp",182],"trp":["pla",1343],"trw":["paal",37],"lp":["alp","apol"],"rp":["pla","lap","lapp","lpa","paal","pal","opla","pall"]},"226":{"input":[2,6,7,8],"tlp":["spil",667],"trp":["kop",224],"tlw":["spil",91],"trw":["kop",63],"lp":["spil","slip","skop","spl","spok"],"rp":["kop","klip","pok","pokk","okp","kopp","opk","pko","opko","opsi","plos"]},"227":{"input":[1,2,6,7,8],"tlw":["slap",263],"trw":["plass",85],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",1444],"trp":["pel",799],"trw":["pleie",43],"lp":["elp","elpe","elpi"],"rp":["pel","ple","lpe","plei","pell","lep","ople","lepp","peil","li'","ielp","ppel","pele","le'","peli","pile"]},"229":{"input":[1,3,6,7,8],"trw":["la'",34],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["slippe",195],"trw":["pleiede",91],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["selskap",63],"trw":["plads",500],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"trp":["pig",957],"trw":["pligt",151],"lp":[],"rp":["pig","pov","opov","plig","pilt","lpt","pgi","opgi","pgiv","pitl","opig","ppig","lvp","plog"]},"233":{"input":[1,4,6,7,8],"trw":["opgav",46],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["spilt",21],"trw":["opkog",50],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["slapt",29],"trw":["kapital",22],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["pige",436],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",106],"trw":["opgave",88],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["spiller",93],"trw":["krop",146],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["sprak-",207],"trw":["kapitel",109],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["ml",5031],"trw":["honom",2975],"lp":[],"rp":["ml","imo","mil","lm","mul","lom","muli","plu","mli","mill","llom","lmi","lmin","hop","omh","umul","mili","uml","iml","oph"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alm",22],"trw":["maal",213],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["smil",397],"trw":["kom",8732],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["smal",74],"trw":["koma",530],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["emil",46],"trw":["mellem",1590],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["amalie",193],"trw":["lampen",95],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["smukke",238],"trw":["komme",2169],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["allesammen",166],"trw":["hjaelp",283],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["glum",116],"trw":["mig",10638],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["gamal",73],"trw":["opfatning",67],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["smukt",152],"trw":["punkt",134],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["stockmann",328],"trw":["langsomt",378],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["temmelig",368],"trw":["nemlig",491],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["gamle",2534],"trw":["maelte",821],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["smilte",389],"trw":["kommer",2127],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["bokselskap",856],"trw":["litteraturselskap",207],"lp":[],"rp":[]}} \ No newline at end of file
diff --git a/keyboards/gboards/dicts/aset/_generator/src/pl-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/pl-keymap.json
new file mode 100644
index 0000000000..63735a422d
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/_generator/src/pl-keymap.json
@@ -0,0 +1 @@
+{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",468],"tlw":["a",8903],"lp":["aa","aaa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",175],"tlw":["s",502],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",42610],"tlw":["w",22418],"lp":["as","wa","aw","ws","sw","sa","awa","aws","was","asa","wsw","swa","asw","waw","ww","sas","wsa","wawa","wwa","awas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",518],"tlw":["e",106],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ax",1780],"tlw":["x",92],"lp":["ax","ea","xa","axa","ex"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["es",52602],"tlw":["d",228],"lp":["es","ed","de","se","ede","dd","ds","des","sed","dde","eds","ese","ess","see","sede","eed","dese","ded","dede","dee"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",35569],"tlw":["dwa",1359],"lp":["ad","da","we","ew","dw","ada","wd","awe","daw","awd","ewa","swe","dwa","dawa","ase","ade","eda","sad","ews","wes"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",560],"tlw":["t",88],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",68848],"tlw":["ta",2431],"lp":["ta","at","ata","tat","fa","af","ft","aft","ff","tta","att","fat","tata","atta","fta","afta"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",75161],"tlw":["c",338],"lp":["st","sc","tc","ts","stc","ct","cs"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ac",50494],"tlw":["stas",540],"lp":["ac","sta","ca","tw","wc","wt","ast","twa","tac","stw","wac","stac","stat","aca","wst","tas","taw","staw","asta","asc"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["te",45936],"tlw":["te",3281],"lp":["te","er","tr","re","et","ter","etr","ret","rt","ere","ete","tre","rte","tere","tet","ert","ett","rete","rr","erte"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ra",55331],"tlw":["ar",328],"lp":["ra","ar","era","tar","atr","ara","tra","ate","tera","are","eta","art","rat","fe","tare","raf","tara","traf","fr","ef"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ec",48514],"tlw":["rece",1133],"lp":["ec","ce","est","dr","str","esc","rs","ste","rd","rc","erc","ece","res","este","sr","ser","rec","serc","dc","rce"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["raw",8030],"tlw":["serca",563],"lp":["raw","wr","rac","rw","war","ard","star","erw","wet","awet","dac","rawd","twar","wte","rad","stra","rws","erws","rwa","wra"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",7406],"trw":["n",208],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",48964],"trp":["na",112653],"tlw":["anna",723],"trw":["na",21439],"lp":["an","ana","ann","anna"],"rp":["na","nan","nna","nana","naa"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",7535],"trp":["js",5713],"trw":["j",184],"lp":["sn","sj"],"rp":["js","ns","jn","jj"]},"19":{"input":[1,2,5],"tlp":["aj",20342],"trp":["ja",55861],"tlw":["aja",432],"trw":["ja",8216],"lp":["aj","wn","aja","asn","wan","awn","wna","wj","sna","ans","ajw"],"rp":["ja","nas","naj","naw","jan","jas","jw","jasn","najw"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",30498],"trp":["ne",25369],"trw":["ne",747],"lp":["en","enn","ey","ene","enny","eye","enne","een","eny"],"rp":["ne","ny","yn","nny","nne","yny","ye","yne","ynn","yy","nee"]},"21":{"input":[1,3,5],"tlp":["any",2470],"trp":["yna",3436],"tlw":["aye",124],"lp":["any","ane","ena","ay","anny","aye","ean","anne","enna"],"rp":["yna","nany","nane","ynan","yea","nex","ya","yya"]},"22":{"input":[2,3,5],"tlp":["ej",45590],"trp":["je",68792],"tlw":["syn",389],"trw":["jej",5718],"lp":["ej","dy","dn","edn","edy","sy","ejs","dne","den"],"rp":["je","ys","jes","jed","jedn","jej","nd","yj","yd","jd","nej"]},"23":{"input":[1,2,3,5],"tlp":["wy",23292],"trp":["nad",7353],"tlw":["and",2280],"trw":["nad",3785],"lp":["wy","dna","edna","aje","and","ewn","wys","wne","daj","adn","dan","wyd","wej","wyda"],"rp":["nad","yw","nawe","ywa","yja","yda"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["tn",4086],"trp":["nt",3555],"tlw":["b",226],"lp":["tn","bn"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ba",16398],"trp":["nat",3728],"tlw":["ant",708],"lp":["ba","ab","tan","atn","tatn","ant","tana","aba","bab","tna","bna","ban","fn","baba","fab","bat"],"rp":["nat","nta","nf","nab"]},"26":{"input":[2,4,5],"tlp":["cj",4424],"trp":["nc",4520],"tlw":["tj",127],"lp":["cj","cn","bc","bs","stn","cb","bj","sb","tj"],"rp":["nc","jsc","jc","nst","jst","jb","jt","ncj","nts"]},"27":{"input":[1,2,4,5],"tlp":["stan",3867],"trp":["jac",5445],"tlw":["stan",180],"trw":["jac",97],"lp":["stan","ajac","taj","acj","bac","baw","anc","staj","cja","caj","wnat"],"rp":["jac","nac","nast","nca","nstw","jsca","jca","nasc","jat"]},"28":{"input":[3,4,5],"tlp":["by",46129],"trp":["yt",8428],"tlw":["ten",4023],"trw":["net",73],"lp":["by","ty","ry","be","eb","br","ten","rn","eby","ety","ent","ern","byt","tyn","ber"],"rp":["yt","yb","yby","yr","net"]},"29":{"input":[1,3,4,5],"tlp":["bra",4962],"trp":["yta",3398],"tlw":["aby",2523],"trw":["nate",242],"lp":["bra","bar","ary","aby","aty","eba","ran","arn","tary","rna","abr","aryn","ryna","brat"],"rp":["yta","nar","naty","yra","yba","ynar"]},"30":{"input":[2,3,4,5],"tlp":["cy",8269],"trp":["yc",28802],"tlw":["byc",2943],"trw":["jest",9582],"lp":["cy","bed","tyc","tej","ryc","byc","ejsc","dyt","edyt","dyb","dyby","rej","cej","ecej","sty"],"rp":["yc","jest","yst","nyc","jr"]},"31":{"input":[1,2,3,4,5],"tlw":["stary",943],"trw":["nawet",3158],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",2169],"trw":["i",28082],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["za",76007],"trp":["ia",68340],"tlw":["z",15934],"trw":["iz",305],"lp":["za","zi","az","zia","ai","aza","azi","zz","zaz","zza","zzi","zaza","zai"],"rp":["ia","iz","iaz","iza","iaza","izz","iazi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",90184],"trp":["ki",45823],"tlw":["si",39],"trw":["is",1279],"lp":["si","sk","ski","sis","sks"],"rp":["ki","is","ik","ks","isk","ksi","kis","iki","isi","kk","iski","kki","kik","iss"]},"35":{"input":[1,2,6],"tlp":["wi",87989],"trp":["ka",38575],"tlw":["zas",2170],"trw":["ka",698],"lp":["wi","sz","ak","wsz","zas","wia","aki","zw","sza","asz","zk","swi","sia","awi","wz","ska","zis"],"rp":["ka","iw","kaz"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",1323],"trp":["ie",368657],"lp":["ei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",125561],"trp":["iez",5190],"tlw":["ze",12240],"trw":["ize",38],"lp":["ze","zie","ez","zez","aze","eza","eze","azie","ezi","ziez","ezie","ziei","xi","zeze"],"rp":["iez","iaze","ize","ieza","iezi","ieze"]},"38":{"input":[2,3,6],"tlp":["sie",75832],"trp":["kie",18740],"tlw":["sie",65236],"trw":["ide",164],"lp":["sie","ek","dk","eki","esi","sied","eks","skie","esie","eke"],"rp":["kie","ied","ies","iek","id","kied","ke","iesi","ieks","ieki"]},"39":{"input":[1,2,3,6],"tlp":["dz",71993],"trp":["iedz",11935],"tlw":["dzis",2729],"trw":["kad",1125],"lp":["dz","dzi","wie","dzie","edz","sze","esz","edzi","zes","zd","dzia","zed","wied","zek","wid","wiek","adz","eka"],"rp":["iedz","iew"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",1632],"trp":["it",10113],"tlw":["v",123],"trw":["it",677],"lp":["ti","vi","vii","tv","tvi","tti","tiv","viii"],"rp":["it","iv","iti","itt","itiv"]},"41":{"input":[1,4,6],"tlp":["zt",5011],"trp":["iat",4655],"tlw":["tai",754],"trw":["if",169],"lp":["zt","fi","zat","zta","tai","av","fia","afi","va","tav","vaa","vaaa","tia","azat","ait","fit"],"rp":["iat","ita","iata","if"]},"42":{"input":[2,4,6],"tlp":["ci",62579],"trp":["ic",34576],"tlw":["ci",3112],"trw":["isc",445],"lp":["ci","sci","tk","stk","tki","stki","cic","ck","tkic","cis","vis","scic"],"rp":["ic","kt","kic","ist","isc","ikt","isci","ici"]},"43":{"input":[1,2,4,6],"tlp":["cz",84284],"trp":["iast",2879],"tlw":["tak",10183],"trw":["itak",560],"lp":["cz","tak","cza","zc","cia","szc","zcz","szcz","acz","zac","czas","wiat","taki","aci","wcz","scia","zacz","wic"],"rp":["iast","iac"]},"44":{"input":[3,4,6],"tlp":["ri",3494],"trp":["ier",13295],"tlw":["tie",65],"trw":["ir",2637],"lp":["ri","ve","rie","ev","vie","ver","rii","eve","ever","eri","tri","eir","rei"],"rp":["ier","iet","ir","ite","ietr","iete","iter"]},"45":{"input":[1,3,4,6],"tlp":["rz",90643],"trp":["ierz",2732],"tlw":["teraz",3005],"trw":["iteraz",110],"lp":["rz","rze","raz","trz","rzez","rza","arz","trze","zar","zr","eraz","erz","atrz","tez","zer","raze","trza","zara","zet"],"rp":["ierz"]},"46":{"input":[2,3,4,6],"tlp":["cie",23265],"trp":["iec",26434],"tlw":["cie",2111],"trw":["itd",184],"lp":["cie","eci","esci","scie","rek","ecie","rsk","rski","tkie","siec","rk"],"rp":["iec","kr","ieci","kre","iesc","kret","iece","ice","ierc"]},"47":{"input":[1,2,3,4,6],"tlw":["wiec",3828],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["ni",174405],"trw":["in",1322],"lp":[],"rp":["ni","in","inn","ini","hi","hn","nni","hin","inni","hni","nii","nin","iin","iinn","inii","nh"]},"49":{"input":[1,5,6],"tlp":["zn",27628],"trp":["nia",13186],"tlw":["ani",2778],"trw":["niz",2084],"lp":["zn","ani","zna","zni","ania","zan","zin","azn","zani","azni","znan"],"rp":["nia","ha","ina","niz","ian","naz","nani","han","hna"]},"50":{"input":[2,5,6],"tlp":["sni",3453],"trp":["nik",4194],"tlw":["sni",32],"trw":["his",454],"lp":["sni","sh"],"rp":["nik","kn","nk","ij","ji","nis","his","kni","jni","jsk","nisk","nsk","nki","nski","kin","ins","jis","isn"]},"51":{"input":[1,2,5,6],"tlp":["wni",5839],"trp":["jak",28350],"tlw":["wina",268],"trw":["jak",14792],"lp":["wni","win","zaj","wini","znaj","asni","szn","zj","wnia"],"rp":["jak","nak","jaki","hw","hwi","nasz","ija","kna","kan","jaka","iwn"]},"52":{"input":[3,5,6],"tlp":["eni",11343],"trp":["nie",115708],"trw":["nie",47473],"lp":["eni","enie"],"rp":["nie","he","ien","ieni","yni","inie","hy","inny","nien","inne","ynie","ine","iny","hen","nnie","hey","ienn","hnie"]},"53":{"input":[1,3,5,6],"tlp":["zy",86799],"trp":["yz",4726],"tlw":["zenie",780],"trw":["nanie",104],"lp":["zy","anie","zen","zeni","znie","zyn","enia","zyz","azy","zien","ezy","zne","zny","zyni","zyna","zyzn","ezn"],"rp":["yz","niez","yzn"]},"54":{"input":[2,3,5,6],"tlp":["dni",6393],"trp":["iej",15859],"tlw":["she",1219],"trw":["kiedy",2587],"lp":["dni","snie","dnie","she","esni","ekn"],"rp":["iej","niej","yk","iedy","iejs","kiej","nies","ysi","ieje","iekn","niek","nied","ije","ysie"]},"55":{"input":[1,2,3,5,6],"tlw":["dzien",1087],"trw":["jednak",3118],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",21105],"trp":["ib",902],"tlw":["bi",50],"lp":["bi","th","tni","thi","bni","thin","bit","bin","bh","tin"],"rp":["ib","ht","nib","ith","int","itn","hb","nit","niti","hit"]},"57":{"input":[1,4,5,6],"tlp":["zb",4172],"trp":["hat",1109],"tlw":["that",591],"trw":["izba",42],"lp":["zb","tani","bia","zab","atni","abi","tha","that","zabi","zbi","zba","tnia","ath","bani"],"rp":["hat","itan","izb","inf","hta","hav"]},"58":{"input":[2,4,5,6],"tlp":["ch",74579],"trp":["ich",14715],"tlw":["bci",274],"trw":["ich",4866],"lp":["ch","chc","chci","bic","cji","chn","cich","bk"],"rp":["ich","nic","hc","kich","kb","hci","nich","icj","inic","nicj","nikt","jci"]},"59":{"input":[1,2,4,5,6],"tlw":["znich",449],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["bie",13336],"trp":["ieb",5068],"tlw":["the",3042],"trw":["her",1605],"lp":["bie","ebi","the","ebie","tnie","biet","rni","bnie"],"rp":["ieb","iebi","her","hr","nieb","nier","iety","hyb","iby","hry","iern","niby"]},"61":{"input":[1,3,4,5,6],"tlw":["bez",2806],"trw":["nieraz",449],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["tych",1735],"trw":["niech",1470],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["czy",5191],"trw":["jeszcze",5354],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",763],"trw":["o",6106],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",782],"trp":["oa",209],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",12921],"trp":["os",50523],"tlw":["so",247],"lp":["so","sos","soo"],"rp":["os","oso","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",32063],"trp":["ow",64725],"tlw":["wo",109],"trw":["ow",544],"lp":["wo","swo","awo","sow","wos","wow","aso","asow","wso","wswo","aswo","awos"],"rp":["ow","owa","owo","ows","osa","osw","osow","owos"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",700],"trp":["-o",242],"trw":["-",43777],"lp":["eo"],"rp":["-o","oe"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",67],"trp":["-a",577],"trw":["-a",43],"lp":["xo","axo","a-"],"rp":["-a","ox"]},"70":{"input":[2,3,7],"tlp":["do",46979],"trp":["od",49479],"tlw":["do",12671],"trw":["od",4136],"lp":["do","dos","dod","eso","dodo","doo","edo","doe","does"],"rp":["od","odo","ode","odd","ose","ods","-d","odde","odos","oes","-do"]},"71":{"input":[1,2,3,7],"tlp":["wod",4591],"trp":["owe",3290],"tlw":["woda",528],"trw":["owe",142],"lp":["wod","dow","ado","dwo","ewo","dowo","wdo","dowa","ados","woda","doda","wode","awdo","dosw"],"rp":["owe","oda","owod","odda","owad","odw"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",72862],"trp":["ot",22422],"tlw":["to",23311],"trw":["oto",1109],"lp":["to","go","got","goto","tot","too","goo"],"rp":["ot","og","oto","ogo","ott","oog"]},"73":{"input":[1,4,7],"tlp":["ag",8439],"trp":["oga",3404],"tlw":["ato",208],"trw":["of",1252],"lp":["ag","ga","fo","ato","aga","ago","gat","tota","fot","tof","gf","gata"],"rp":["oga","of","ota","off","ogat","otta","ofa"]},"74":{"input":[2,4,7],"tlp":["co",15974],"trp":["oc",26832],"tlw":["co",5162],"lp":["co","sto","cos","gos","tos","cot","gosc","stos","stot","tosc","coto","toc","cott","sco"],"rp":["oc","osc","ost","osto","otc","ogos"]},"75":{"input":[1,2,4,7],"tlp":["two",4901],"trp":["osta",7294],"tlw":["gotow",216],"trw":["owoc",43],"lp":["two","tow","stwo","towa","woc","cow","wag","gw","wosc","gow","wg","wowc"],"rp":["osta","otw","owc","owac","otow","oca","owt","ogow"]},"76":{"input":[3,4,7],"tlp":["ro",57299],"trp":["or",45488],"tlw":["tego",4358],"trw":["-to",452],"lp":["ro","eg","ego","tor","tore","teg","tego","tro","gr","ge","rog","gor","gro","reg","ero","rego"],"rp":["or","ore","ote","otr"]},"77":{"input":[1,3,4,7],"tlp":["tora",3418],"trp":["ora",7565],"tlw":["for",554],"trw":["-ato",55],"lp":["tora","for","aro","rag","ateg","ega","gra","roga","gar","age","gora","arg","arto","areg","fro","taro"],"rp":["ora","otra","-ta","ogar"]},"78":{"input":[2,3,4,7],"tlp":["gd",17099],"trp":["ors",3173],"tlw":["dosc",813],"trw":["odtego",117],"lp":["gd","rod","roc","ros","dro","stro","god","tors","sro","srod","drog","rost","dot","dosc","cor","dost"],"rp":["ors","odc","odr","ostr"]},"79":{"input":[1,2,3,4,7],"tlw":["wsrod",1050],"trw":["otwarte",152],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",34225],"trw":["on",3987],"lp":[],"rp":["on","no","un","nu","ou","ono","uo","onu","nuo","nno","uno","oun","oon","onn","unu","onno","non","unon","nou"]},"81":{"input":[1,5,7],"tlp":["au",3651],"trp":["ona",5686],"tlw":["aon",234],"trw":["ona",1285],"lp":["au","ano","anu","aon","aona","anno","aun","auna","qu"],"rp":["ona","nau","una","nao","ua","onan","nano","oan","oann","nona","uau"]},"82":{"input":[2,5,7],"tlp":["su",4815],"trp":["oj",23708],"tlw":["su",735],"trw":["jo",359],"lp":["su","sno","sun","sus","snu"],"rp":["oj","us","ju","nos","uj","jo","jus","ojn","oju","osn","ojs","osu","nso","ojo","osno"]},"83":{"input":[1,2,5,7],"tlp":["woj",7645],"trp":["now",8001],"tlw":["swoja",803],"trw":["jau",356],"lp":["woj","swoj","wu","anow","wno","asu","aju","woja","wojn","won","sown"],"rp":["now","own","oja","uw","uwa","owu","nowu","uja","onow"]},"84":{"input":[3,5,7],"tlp":["eu",1045],"trp":["ony",3245],"trw":["you",832],"lp":["eu","eon","eno","eun","enu"],"rp":["ony","one","-n","yo","you","neu","yno","une","ynu","-no","ynno","uny","ynuo","-nu","-on"]},"85":{"input":[1,3,5,7],"tlp":["aux",164],"trp":["ux",164],"lp":["aux","eona","eanu","eau"],"rp":["ux"]},"86":{"input":[2,3,5,7],"tlp":["du",7756],"trp":["ud",11878],"tlw":["synu",166],"trw":["jedno",549],"lp":["du","dno","dus","don","edno","ejo","dnos"],"rp":["ud","oje","odn","uje","ody","ojej","odu","udn","osy","ude","yso","udy","-j"]},"87":{"input":[1,2,3,5,7],"tlw":["swoje",1014],"trw":["nowe",458],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",17356],"trp":["ob",32371],"tlw":["tu",4701],"trw":["obu",290],"lp":["bo","tu","bu","gn","bog","gu","tob","tut","but","bot"],"rp":["ob","ug","ut","ub","obo","obn","nog","ugo","ogn","ng"]},"89":{"input":[1,4,5,7],"tlp":["gna",1454],"trp":["oba",4176],"tlw":["boga",442],"trw":["nato",715],"lp":["gna","agn","atu","tano","agna","boga","tuta","agu","toba","abo","gan"],"rp":["oba","nag","nato","uta","uga","noga","natu","nfo","obna"]},"90":{"input":[2,4,5,7],"tlp":["sob",8597],"trp":["uc",9675],"tlw":["boju",171],"trw":["noc",701],"lp":["sob","cu","stu","cju","cjus","boj","bos","scu","cno"],"rp":["uc","ust","nosc","onc","osob","noc","ojc","ncu","oncu","ocn","just"]},"91":{"input":[1,2,4,5,7],"tlw":["soba",912],"trw":["usta",582],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ru",10352],"trp":["ory",10533],"tlw":["gory",402],"trw":["nero",306],"lp":["ru","tory","ron","rob","tron","bro","rug","tru","rony"],"rp":["ory","ur","obr","neg","nego","yto","oty","ytor","yg","oby","obe"]},"93":{"input":[1,3,4,5,7],"tlw":["rano",301],"trw":["natury",131],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["gdy",6483],"trw":["jego",6471],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["dobra",471],"trw":["justyna",463],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["lo",50381],"trw":["li",307],"lp":[],"rp":["lo","li","il","ol","io","oi","oli","olo","ilo","ili","ll","iol","lil","llo","ill","lli","lio","ilio","oil","loo"]},"97":{"input":[1,6,7],"tlp":["al",107956],"trp":["la",64546],"tlw":["zal",356],"trw":["la",391],"lp":["al","zo","ala","zl","zal","zial","alo","zlo","ali","zil","zla","zli","azal"],"rp":["la","oz","ial","ola","iala","ila","lal"]},"98":{"input":[2,6,7],"tlp":["sl",22280],"trp":["ko",47506],"tlw":["sil",387],"trw":["okolo",573],"lp":["sl","sli","slo","sil","sko"],"rp":["ko","ok","lk","kl","lko","los","oko","kol","lki","osi","ilk","kil","oki","kilk","okol"]},"99":{"input":[1,2,6,7],"tlp":["wal",9697],"trp":["owi",22633],"tlw":["slowa",956],"trw":["kilka",1527],"lp":["wal","wil","wol","wl","ako","szl","zos","wla","sla","wlas","slow"],"rp":["owi","low","las","lowi","kla","osz","lka","lowa","kow"]},"100":{"input":[3,6,7],"tlp":["el",23557],"trp":["le",60091],"trw":["ile",574],"lp":["el","eli","ele","elo","ell","ello","elli"],"rp":["le","iel","ole","ile","ieli","iele","iell","ielo","lie","lei","olei","lle","iole"]},"101":{"input":[1,3,6,7],"tlp":["ale",25698],"trp":["oze",6806],"tlw":["ale",11823],"trw":["lezal",224],"lp":["ale","zel","ela","alez","zle","ziel","zeli","zela","zale","ezal","ezel","ezl"],"rp":["oze","lez","iale","leza","iela","lale","ozle","loze"]},"102":{"input":[2,3,6,7],"tlp":["dl",18350],"trp":["lek",3460],"tlw":["sile",224],"trw":["like",346],"lp":["dl","ekl","elk","edl","esl","esli","dok","elki","eko","dol","dlo"],"rp":["lek","ielk","lod","ld","lkie","osie","led","ido","okie"]},"103":{"input":[1,2,3,6,7],"tlw":["dla",5302],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["gl",20525],"trp":["ogl",5611],"tlw":["gi",147],"trw":["ito",358],"lp":["gl","gi","glo","tol","tl","vo","gol"],"rp":["ogl","ig","ogi","lit","ito","lot","lig","igi","itol","ligi","lt","iot","oglo"]},"105":{"input":[1,4,6,7],"tlp":["tal",9006],"trp":["lat",3663],"tlw":["zato",341],"trw":["lat",1084],"lp":["tal","gla","zg","agl","tala","talo","zgo","agi","zlot","gal","atl","zgl","alt","toz"],"rp":["lat","iag","ogla","ofi","iatl","ofia"]},"106":{"input":[2,4,6,7],"tlp":["cil",3725],"trp":["kto",24526],"tlw":["glos",1013],"trw":["kto",1969],"lp":["cil","glos","tko","stko","stol"],"rp":["kto","osci","oci","lic","losc","lc","ocil","otk","oic","okt","okto","kosc","koc","isto","olic"]},"107":{"input":[1,2,4,6,7],"tlw":["glowa",1247],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["gle",3643],"trp":["ieg",7405],"tlw":["teorii",136],"trw":["ligie",262],"lp":["gle","gie","rol","rl","egl","rogi","tel","egi","role","giel"],"rp":["ieg","iego","leg","iero","lite","ori","lego","ior","ogie","legl"]},"109":{"input":[1,3,4,6,7],"tlw":["zeto",514],"trw":["oraz",543],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["drogi",663],"trw":["ktore",3303],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["gdzie",3077],"trw":["lecz",4127],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["lu",22354],"trw":["oni",779],"lp":[],"rp":["lu","ho","oni","ln","iu","lni","lon","ul","oln","niu","hl","nio","hlo","olni","hu","uni","ion","nil","lno","olu"]},"113":{"input":[1,5,6,7],"tlp":["zu",11610],"trp":["uz",13328],"tlw":["znalazl",366],"trw":["uz",245],"lp":["zu","zno","znal","zon","zul","azu","alan"],"rp":["uz","nal","ozn","ozna","lan","ozu","luz","hal","ozni","lna","nala","lani","nial"]},"114":{"input":[2,5,6,7],"tlp":["slu",3167],"trp":["ku",13470],"tlw":["skoku",179],"trw":["ku",734],"lp":["slu","slon","sku"],"rp":["ku","kon","uk","usi","koj","okoj","koni","oku","unk","nios","kun","lus","ius","nius","nku","nosi","niko"]},"115":{"input":[1,2,5,6,7],"tlw":["znowu",1380],"trw":["juz",8066],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eln",2354],"trp":["yl",37140],"trw":["-nie",970],"lp":["eln","elu","elni","eniu"],"rp":["yl","ly","ylo","onie","lnie","yli","yly","yle","nel","ily","-ni","-nie","lny","lne","len","ielu"]},"117":{"input":[1,3,5,6,7],"tlw":["zony",234],"trw":["lzy",407],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["sily",637],"trw":["jesli",2399],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["dalej",1297],"trw":["ludzi",1877],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",4510],"trp":["obi",10397],"tlw":["buvo",526],"trw":["lub",2322],"lp":["bl","gni","bli","bil","tlu","bol","tobi"],"rp":["obi","lb","ugi","lug","lub","lbo","nig","lugo","ogni","lugi","obil","obl","uv"]},"121":{"input":[1,4,5,6,7],"tlw":["albo",1927],"trw":["ognia",422],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["choc",1394],"trw":["obok",680],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["chwili",1257],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["bylo",6619],"trw":["niego",1339],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["byla",3016],"trw":["nagle",1105],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["tylko",7436],"trw":["ktory",4337],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["wszystko",2576],"trw":["oczy",2137],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",172],"trw":["p",135],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",9918],"trp":["pa",27218],"trw":["pa",145],"lp":["ap","apa","app"],"rp":["pa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",14576],"trp":["ps",984],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["wp",3537],"trp":["pas",1206],"trw":["pas",221],"lp":["wp","spa","wsp","wpa","wspa","apas","asp","aspa","wap","awp","wpas","spas"],"rp":["pas","paw","psa","pasa","pw"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",5528],"trp":["pe",8856],"trw":["pe",37],"lp":["ep","e'","epe","eep"],"rp":["pe","ppe","pee"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",1033],"trp":["pea",94],"lp":["ape","epa","a'","appe"],"rp":["pea","ppea"]},"134":{"input":[2,3,8],"tlp":["dp",2912],"trp":["'s",698],"lp":["dp","eps","esp","spe","e's","sped","spee","e'd","desp","dep","sep"],"rp":["'s","ped","'d","pede"]},"135":{"input":[1,2,3,8],"tlp":["dpa",640],"trp":["pew",3258],"tlw":["wpada",59],"trw":["pada",80],"lp":["dpa","apew","wpad","aped","spad","a's","apad","wpe","wpew","epas","epew"],"rp":["pew","pad","pada","pade","pawe","pase","pwe"]},"136":{"input":[4,8],"tlp":["tp",340],"trp":["pt",863],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",450],"trp":["pat",2675],"lp":["tap","atp"],"rp":["pat","pta","pf"]},"138":{"input":[2,4,8],"tlp":["cp",40],"trp":["pc",913],"lp":["cp"],"rp":["pc","pst"]},"139":{"input":[1,2,4,8],"tlp":["stap",450],"trp":["pac",1055],"tlw":["spac",240],"trw":["pats",97],"lp":["stap","apac","watp","spac","wpat","acp","cpa","wacp","acpa"],"rp":["pac","pca","pasc","past","pats","pstw","ptac"]},"140":{"input":[3,4,8],"tlp":["tep",1202],"trp":["pr",57473],"trw":["per",245],"lp":["tep","epr","rp","erp","ept","t'","epte","re'","ere'","tepe"],"rp":["pr","pre","pet","petr","per","'t","pret","'r","'re","pte"]},"141":{"input":[1,3,4,8],"tlp":["apr",1964],"trp":["pra",9765],"tlw":["tarp",77],"trw":["pare",337],"lp":["apr","apra","epra","epta","arp","tarp","at'","apar","apre"],"rp":["pra","patr","par","pare","pfe","para","pera","part","papr"]},"142":{"input":[2,3,4,8],"tlp":["spr",2056],"trp":["pred",1040],"trw":["press",30],"lp":["spr","step","t's","epc","tepc","cep","rcep","cepc","spec","re's","epce","cept","depc"],"rp":["pred","prec","perc","pres","pce","peec","pec"]},"143":{"input":[1,2,3,4,8],"tlw":["sprawe",290],"trw":["prawda",673],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mn",14832],"trw":["m",312],"lp":[],"rp":["mn","pn","mp","nm","np","mm"]},"145":{"input":[1,5,8],"tlp":["am",33618],"trp":["ma",28562],"tlw":["apan",98],"trw":["pan",4034],"lp":["am","ama","amn","amp","apan","anam"],"rp":["ma","pan","nam","nap","mam","mna","pana","man","pam","pann","namn","napa","pna","mama"]},"146":{"input":[2,5,8],"tlp":["sm",6824],"trp":["jm",1565],"lp":["sm"],"rp":["jm","ms","jmn","jp"]},"147":{"input":[1,2,5,8],"tlp":["sam",6796],"trp":["maj",1759],"tlw":["sam",2445],"trw":["maja",826],"lp":["sam","wam","ajm","sama","ajmn","wm","asam","sma","ajp","span","asm"],"rp":["maj","maja","mas","najm","jam","pans","maw","najp","nasm"]},"148":{"input":[3,5,8],"tlp":["em",47785],"trp":["ym",25806],"tlw":["eme",32],"trw":["my",1084],"lp":["em","emn","emy","epn","eme","emne"],"rp":["ym","my","me","yp","py","nym","nem","men","mne","mny","nnym","mym","n'","mem"]},"149":{"input":[1,3,5,8],"tlp":["amy",2050],"trp":["yma",2522],"tlw":["amy",88],"trw":["max",1479],"lp":["amy","ame","apy","ema","emna","amym","anem","epna","an'","amem"],"rp":["yma","max","ypa","mamy","nape","mane","pane","namy","maxa","na'"]},"150":{"input":[2,3,5,8],"tlp":["sem",2689],"trp":["mys",5369],"tlw":["dym",154],"trw":["jednym",518],"lp":["sem","dym","smy","dem","spy","dm","dnym","esm","edem","esmy","edm","ems"],"rp":["mys","jem","jemn","ysp","mej","ysm","ysmy","yms"]},"151":{"input":[1,2,3,5,8],"tlw":["samym",432],"trw":["pewna",264],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",173],"trp":["mt",555],"lp":["tm"],"rp":["mt","mb"]},"153":{"input":[1,4,5,8],"tlp":["tam",5042],"trp":["mat",1787],"tlw":["tam",3597],"trw":["mat",31],"lp":["tam","amt","tamt","amta","fam","atam","bam","amf","atm","fm"],"rp":["mat","mta","mf","pant","mnat"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",184],"trp":["mc",1077],"tlw":["tms",55],"lp":["cm","tms"],"rp":["mc","mst","pcj","msc"]},"155":{"input":[1,2,4,5,8],"tlw":["wacpan",40],"trw":["majac",369],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["tem",8044],"trp":["pyt",2717],"tlw":["tym",4037],"lp":["tem","tym","rym","bym","rm","rem","tepn","bem"],"rp":["pyt","mr","met","n't","mbe","mber","metr","ment","ybym","mer","ypr","mte"]},"157":{"input":[1,3,4,5,8],"tlw":["temat",228],"trw":["natym",299],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["system",322],"trw":["jestem",1324],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["wtym",987],"trw":["naprawde",460],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",22224],"trw":["pi",56],"lp":[],"rp":["pi","ip"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["zap",2987],"trp":["pia",562],"lp":["zap","api","zp","aip","zapa","zpi","zpa","apia"],"rp":["pia","papi","ipa","paz","izap"]},"162":{"input":[2,6,8],"tlp":["spi",1310],"trp":["pis",4398],"tlw":["spi",122],"lp":["spi","skip"],"rp":["pis","kip","pk","isp","pki","psi"]},"163":{"input":[1,2,6,8],"tlp":["wpi",267],"trp":["kap",1184],"tlw":["zapas",72],"trw":["kaip",681],"lp":["wpi","apis","apk","zapk","szp","zkap","szpi"],"rp":["kap","kapi","kaip","psz","pisa","pak","pias","pisz","piw","kasp","pask","psza","piwa"]},"164":{"input":[3,6,8],"tlp":["epi",972],"trp":["pie",13522],"trw":["pie",48],"lp":["epi","epie"],"rp":["pie","iep","i'","ipe","iepe","pei","ppei"]},"165":{"input":[1,3,6,8],"tlp":["zep",1368],"trp":["piez",95],"tlw":["apie",272],"trw":["papieza",54],"lp":["zep","apie","ezp","zpie","ezpi","zape","zepa","zpe"],"rp":["piez"]},"166":{"input":[2,3,6,8],"tlp":["spie",1047],"trp":["pies",1441],"trw":["pies",178],"lp":["spie","epek","spek"],"rp":["pies","piek","iesp","kipe","pke","pek","kep"]},"167":{"input":[1,2,3,6,8],"tlw":["spiew",96],"trw":["pisze",141],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tpi",70],"trp":["pit",866],"trw":["itp",74],"lp":["tpi"],"rp":["pit","itp","pti"]},"169":{"input":[1,4,6,8],"tlp":["apit",763],"trp":["pita",834],"tlw":["taip",402],"trw":["pati",50],"lp":["apit","tapi","taip","zpit","atpi"],"rp":["pita","piat","pati","ipat"]},"170":{"input":[2,4,6,8],"tlp":["cip",42],"trp":["pic",402],"trw":["pic",106],"lp":["cip","spit"],"rp":["pic","ipc","pist"]},"171":{"input":[1,2,4,6,8],"tlw":["czapka",41],"trw":["ptak",106],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rpi",335],"trp":["pier",5070],"trw":["prie",378],"lp":["rpi","erpi","rpie","tpie","epti"],"rp":["pier","ierp","pri","prie","iepr","piet","ipr","it'","iper","pir"]},"173":{"input":[1,3,4,6,8],"tlw":["rzepa",61],"trw":["przez",6795],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["skiper",201],"trw":["piec",482],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["wprawdzie",446],"trw":["przed",3656],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",59941],"trw":["mi",6561],"lp":[],"rp":["mi","im","mni","nim","imi","min","pni","hm","mim","nimi","hmi","imn","him","hip","mini","pin","imni","nmi","pini","imim"]},"177":{"input":[1,5,6,8],"tlp":["ami",9688],"trp":["mia",11078],"tlw":["zanim",753],"trw":["pani",1381],"lp":["ami","zm","zam","zmi","zami","anim","amia","zim","zma","znim","zmia","znam"],"rp":["mia","pani","nami","pami","hmia","mian","mina","maz"]},"178":{"input":[2,5,6,8],"tlp":["smi",4361],"trp":["kim",3177],"tlw":["spij",31],"trw":["kim",153],"lp":["smi","sim","skim"],"rp":["kim","mis","mk","jmni","ism","mkn","ims","kims","pij","kimi","mkni","jmi","jpi","misj","msk","mski","pism"]},"179":{"input":[1,2,5,6,8],"tlw":["wnim",424],"trw":["masz",794],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",3623],"trp":["mie",22534],"trw":["mnie",6049],"lp":["emi","emie","emni","epni"],"rp":["mie","iem","mnie","niem","iemi","mien","ypi","ymi","iemn","hem","pien","imie","pnie","niep","iemy","imy"]},"181":{"input":[1,3,5,6,8],"tlw":["ziemi",986],"trw":["panie",1750],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["siedem",200],"trw":["mniej",628],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["wiem",1473],"trw":["miedzy",1744],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",148],"trp":["mit",146],"trw":["mit",116],"lp":["tim","bim","tnim","vim"],"rp":["mit","imit"]},"185":{"input":[1,4,5,6,8],"trw":["itam",129],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"trw":["mscic",37],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["zamiast",457],"trw":["matka",605],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["tymi",175],"trw":["itym",97],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["razem",1159],"trw":["przy",3948],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["smierc",577],"trw":["miec",761],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["tymczasem",730],"trw":["przypis",2677],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",79029],"trw":["po",5485],"lp":[],"rp":["po","op","pop","opo","opp","popp","popo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",1764],"trp":["opa",1101],"lp":["apo"],"rp":["opa","popa"]},"194":{"input":[2,7,8],"tlp":["spo",8518],"trp":["pos",6704],"tlw":["spo",52],"lp":["spo","spos"],"rp":["pos","poso","osp","ospo","posp","pso"]},"195":{"input":[1,2,7,8],"tlp":["wpo",932],"trp":["pow",12141],"trw":["psow",77],"lp":["wpo","wspo","apos","wpow","apow","wpos","awpo","wpop"],"rp":["pow","powo","opow","pows","powa","posa","posw","psow","paso"]},"196":{"input":[3,7,8],"tlp":["epo",395],"trp":["-p",478],"lp":["epo","eop"],"rp":["-p","ope","oppe","poe","peo","peop","-po"]},"197":{"input":[1,3,7,8],"trp":["-pa",318],"trw":["poppea",94],"lp":[],"rp":["-pa"]},"198":{"input":[2,3,7,8],"tlp":["dpo",2241],"trp":["pod",11766],"tlw":["spod",439],"trw":["pod",4050],"lp":["dpo","dop","spod","dopo","espo","epod","dope"],"rp":["pod","odp","odpo","podo","opod","pods","pode","podd","pose","pedo","podp","odep","osep"]},"199":{"input":[1,2,3,7,8],"trw":["powod",76],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1200],"trp":["pot",6309],"trw":["pot",71],"lp":["top"],"rp":["pot","pog","pogo","opot","poto"]},"201":{"input":[1,4,7,8],"tlp":["apot",497],"trp":["poga",110],"lp":["apot","topa"],"rp":["poga","opat","pota"]},"202":{"input":[2,4,7,8],"tlp":["stop",1200],"trp":["poc",5454],"tlw":["stop",300],"lp":["stop","spot","gosp","spog","spoc","cop"],"rp":["poc","post","opc","posc","pco","opco"]},"203":{"input":[1,2,4,7,8],"tlw":["stopa",56],"trw":["postac",287],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",301],"trp":["pro",7398],"trw":["popr",1453],"lp":["rop","epro","tepo"],"rp":["pro","pote","opr","por","popr","potr","opro","prog","poro","pror","opor","-pr","oper","-pro","poet","opre","opet"]},"205":{"input":[1,3,4,7,8],"trw":["pora",123],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["sporo",108],"trw":["prosto",232],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["wprost",448],"trw":["prawo",368],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mo",36877],"trw":["mu",7197],"lp":[],"rp":["mo","mu","om","um","pom","up","omu","pu","omo","omn","pon","pomo","mno","pomn","opn","pun","mom","omp","umn","opu"]},"209":{"input":[1,5,7,8],"tlp":["amo",1213],"trp":["oma",1236],"trw":["panu",545],"lp":["amo","apom","anom","apon","anum"],"rp":["oma","pano","uma","panu","upa","pona","napo","onam","mano","oman","omna","opan","namo","poma","mamo"]},"210":{"input":[2,5,7,8],"tlp":["spoj",1485],"trp":["moj",4972],"tlw":["spoj",47],"trw":["moj",1601],"lp":["spoj","smu","spom","sum"],"rp":["moj","mus","poj","pus","usm","mos","mnos","omos","opus","muj","osm","jmo","jom","jmu","jmuj","pojs"]},"211":{"input":[1,2,5,7,8],"tlw":["samo",635],"trw":["moja",1288],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emu",3362],"trp":["ome",1246],"trw":["open",44],"lp":["emu","emo","emno"],"rp":["ome","omy","upe","pomy","umy","ypo","omen","mome","ymu","ypom","upy","ume","onem","omny","omne","ypu","-m"]},"213":{"input":[1,3,5,7,8],"trw":["-pan",98],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["domu",1023],"trw":["moje",1112],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["wdomu",466],"trw":["mowy",435],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",725],"trp":["mog",6878],"tlw":["tom",165],"trw":["potu",49],"lp":["tom","topn","gm","gom","bom","gmu","gmun"],"rp":["mog","mot","mut","pob","mutn","moto","umb","mg","ptu","put","mput","motn","ogom"]},"217":{"input":[1,4,5,7,8],"tlw":["toma",53],"trw":["moga",569],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["sposob",1064],"trw":["moc",367],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["smutna",117],"trw":["mnostwo",266],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["temu",761],"trw":["potem",2023],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",589],"trw":["megan",179],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["gdybym",317],"trw":["prostu",339],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["samego",331],"trw":["pewnego",233],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pol",5926],"trw":["pol",506],"lp":[],"rp":["pol","pl","opi","lop","polo","pil","plo","ipo","pio","poli","pli","lopi","lp","lopo","opl","lip","ipol","opol","pili","pilo"]},"225":{"input":[1,6,7,8],"tlp":["zpo",957],"trp":["poz",4658],"tlw":["zlapal",59],"trw":["poza",483],"lp":["zpo","zapo","apl","apla","apal","apil","alp"],"rp":["poz","pla","pal","pozo","pola","poza","ozp","pali","lopa","ozpa","pala","ozpo","pozi"]},"226":{"input":[2,6,7,8],"tlp":["spok",1225],"trp":["pok",4474],"trw":["polski",326],"lp":["spok","spol"],"rp":["pok","poko","pols","piso","poki","posi","posl","pokl","opok","ospi","klop","opis","ipos","kop","pios","ispo","polk"]},"227":{"input":[1,2,6,7,8],"tlw":["wpol",123],"trw":["powoli",384],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["epl",290],"trp":["pel",2439],"trw":["pole",188],"lp":["epl","eplo","eple","eopl","elp"],"rp":["pel","opie","lep","lepi","pole","ple","iepl","iepo","pele","ople","'l","i'l","'ll","i'll","piel"]},"229":{"input":[1,3,6,7,8],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["dopoki",198],"trw":["polskie",78],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["wpadl",182],"trw":["powiedzial",1337],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tpl",196],"trp":["piot",350],"trw":["plot",40],"lp":["tpl","tpli","topi"],"rp":["piot","pogl","plot","polg","polt","ptio","pito","ipog","pogi"]},"233":{"input":[1,4,6,7,8],"tlw":["filip",38],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["pociski",37],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["spotkac",156],"trw":["poczal",800],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["piotr",231],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"trw":["przeto",243],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["dopiero",1010],"trw":["predko",303],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"trw":["prosze",860],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mil",4286],"trw":["mimo",629],"lp":[],"rp":["mil","umi","omi","ml","mlo","hlop","oim","pomi","omni","milo","mio","poni","moi","lum","imo","mimo","mion","iom","moim","minu"],"special":"enter"},"241":{"input":[1,5,6,7,8],"trw":["mial",2579],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["spokoj",193],"trw":["musi",771],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["swoim",499],"trw":["mowil",1284],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["mieli",613],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["zupelnie",861],"trw":["moze",4134],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["spokojnie",378],"trw":["lepiej",825],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["widzialem",345],"trw":["pozniej",689],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["tlum",312],"trw":["mogl",1899],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["galima",72],"trw":["mogla",591],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["chlop",216],"trw":["milosc",470],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["chlopak",251],"trw":["mowic",686],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["bylem",489],"trw":["moglem",321],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["zapytal",512],"trw":["potrzeba",320],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["glosem",676],"trw":["ktorym",841],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["bowiem",669],"trw":["petroniusz",731],"lp":[],"rp":[]}} \ No newline at end of file
diff --git a/keyboards/gboards/dicts/aset/_generator/src/pt-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/pt-keymap.json
new file mode 100644
index 0000000000..afa22643f9
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/_generator/src/pt-keymap.json
@@ -0,0 +1 @@
+{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",311],"tlw":["a",279974],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",199930],"tlw":["s",1267],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",403955],"tlw":["as",56128],"lp":["as","sa","ssa","ass","sas","asa","assa","ssas","wa","was","ww","sass","asas","www","aw","awa","sw","swa","ws"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",4232],"tlw":["e",282983],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ex",35539],"tlw":["x",299],"lp":["ex","xa","ea","ae","xe","exe","exa","ax","axa","xx"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",603738],"tlw":["de",316379],"lp":["de","es","se","ess","sse","des","ed","esse","ese","ses","dess","dese","ede","eses","sses","sd","esd","sde","desd","esde"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",290653],"tlw":["da",79087],"lp":["da","ad","ade","ada","dad","dade","das","essa","esa","ase","sad","asse","eda","ades","adas","ssad","desa","edad","sada","sex"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",2738],"tlw":["t",692],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",336586],"tlw":["ta",503],"lp":["ta","at","fa","ata","af","fat","tat","afa","ff","ft","att","tata","taf","atat","ataf","tf","fata","aft","tfa","tta"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",220589],"tlw":["c",936],"lp":["st","sc","ct","tc","cc","ts","cs"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",291876],"tlw":["casa",8888],"lp":["ca","sta","ac","aca","cas","tas","casa","ast","fac","stas","sca","tac","asta","sf","cac","sac","taca","caca","asc","fas"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",412432],"tlw":["ter",11405],"lp":["er","te","re","tr","rt","ter","rr","et","tre","ere","ert","rte","err","rre","ret","terr","ete","etr","rer","tere"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ra",489515],"tlw":["era",37427],"lp":["ra","ar","ara","era","tra","fe","tar","are","rta","ate","art","rar","fr","eta","ef","rra","atr","fer","arr","rat"],"rp":[]},"14":{"input":[2,3,4],"tlp":["est",130667],"tlw":["ser",18726],"lp":["est","ce","ec","res","ser","rec","rd","cr","esc","tes","ece","ste","rc","der","cer","str","erd","este","rece","ces"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["esta",82829],"tlw":["esta",19307],"lp":["esta","car","ras","eca","cad","tad","rac","rad","sar","arec","rda","dar","tras","raca","cada","erda","ard","star","stra","rca"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",5010],"trw":["n",1260],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",281535],"trp":["na",264338],"tlw":["q",346],"trw":["na",47469],"lp":["an","aq","ana","ann","anq","anna","anan","aan"],"rp":["na","nq","naq","nan","nna"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",220],"trp":["ns",77600],"trw":["j",385],"lp":["sn","sj"],"rp":["ns","nj"]},"19":{"input":[1,2,5],"tlp":["san",8808],"trp":["ja",39162],"tlw":["san",234],"trw":["ja",13037],"lp":["san","ans","aj","sq","ssan","ansa","anas","anj","aja","anja","ajan","wn"],"rp":["ja","nas","nsa","jan","nsan","jas","nja","nsas"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",399933],"trp":["ne",63763],"tlw":["en",763],"trw":["y",1207],"lp":["en","ene","een","ey","enn","enny","eyn","eyne","enen","enne"],"rp":["ne","nen","ny","nny","yn","yne","ney","nne","ye","ynn"]},"21":{"input":[1,3,5],"tlp":["ena",18156],"trp":["ya",615],"tlw":["any",171],"lp":["ena","ane","eq","enq","xan","ay","ean","anny","anea","enx","aen","any","enxe","anen"],"rp":["ya","nea","nx","nxe","nex","nexa"]},"22":{"input":[2,3,5],"tlp":["sen",38594],"trp":["nd",184626],"tlw":["eyes",75],"trw":["nesse",1917],"lp":["sen","end","ens","den","ej","ende","sej","esen","esej","send","eend","sens"],"rp":["nd","nde","je","nse","nes","ness","nden","ndes"]},"23":{"input":[1,2,3,5],"tlp":["and",82846],"trp":["nda",26353],"tlw":["seja",3811],"trw":["nada",9040],"lp":["and","ensa","ande","eja","enas","dan","anda","seja","esq","daq","sand","enda","dand","seq"],"rp":["nda","nad","nada","jane","nand","ndan"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",711],"trp":["nt",380933],"tlw":["b",631],"lp":["bt","bb"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ant",80565],"trp":["nta",60116],"tlw":["tanta",767],"lp":["ant","ab","ba","tan","tant","aba","anta","ban","bat","fan","aban","fant","taq","bata","tab"],"rp":["nta","nf","ntan","nat","ntat"]},"26":{"input":[2,4,5],"tlp":["bs",6193],"trp":["nc",98606],"lp":["bs","bj","cn","bst","sb","bsc","bc"],"rp":["nc","nst","nsc","nts"]},"27":{"input":[1,2,4,5],"tlp":["anc",29762],"trp":["nca",33491],"tlw":["tantas",546],"lp":["anc","sab","cab","anca","can","stan","bas","acab","caba","tanc","bast","cant","sant"],"rp":["nca","ntas","ncas","nsta","nac","nsac","nsf"]},"28":{"input":[3,4,5],"tlp":["ent",207420],"trp":["nte",165647],"tlw":["entre",8275],"trw":["net",250],"lp":["ent","ente","be","br","ten","entr","ren","rn","bre","ber","eb","rent","ern","tent","eren"],"rp":["nte","ntr","ntre","nter","nten"]},"29":{"input":[1,3,4,5],"tlp":["ran",42850],"trp":["ntra",17480],"tlw":["frente",4513],"trw":["nate",648],"lp":["ran","ante","enta","abe","bra","rq","rna","rab","tran","trab","raba","bar","rant","aber","abr","rtan","fren"],"rp":["ntra","ntar","nar"]},"30":{"input":[2,3,4,5],"tlp":["enc",39246],"trp":["ntes",21043],"tlw":["entender",1104],"trw":["neste",1524],"lp":["enc","sent","cen","dent","tend","bec","cent","ceb","tenc","rend","cebe","renc","rceb"],"rp":["ntes","nce","nder","ntec","nec","nece","nstr"]},"31":{"input":[1,2,3,4,5],"tlw":["antes",8436],"trw":["jantar",1170],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1421],"trw":["i",2965],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",127585],"trp":["ia",229190],"tlw":["ai",2545],"trw":["ia",3166],"lp":["ai","az","za","zi","zia","azi","azia","aia","aza","zz","aiz","zzi"],"rp":["ia","iz","iza","izi","iai","izia","izz","izzi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",84867],"trp":["is",248469],"tlw":["si",3658],"trw":["is",409],"lp":["si","ssi","sis","ssis","sk","ski"],"rp":["is","iss","isi","ik","ki","issi","iki","ks"]},"35":{"input":[1,2,6],"tlp":["ais",63939],"trp":["isa",27355],"tlw":["saia",685],"lp":["ais","assi","sai","asi","wi","sia","asia","ak","saia","sias","zas","ssia","aisa"],"rp":["isa","ias","isas","issa","ka","iais","ika"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",135404],"trp":["ie",27112],"tlw":["ei",385],"trw":["ie",93],"lp":["ei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",41552],"trp":["ix",21958],"tlw":["xia",158],"trw":["ix",103],"lp":["ze","ez","aze","xi","eix","aix","eia","eza","eze","eixa","exi","aixa","eixe","axi","ezi","eai"],"rp":["ix","ize","ixa","ixe"]},"38":{"input":[2,3,6],"tlp":["di",149151],"trp":["id",117035],"tlw":["disse",22191],"lp":["di","dis","diss","dei","edi","sid","sei","eis","did","side","esi","essi"],"rp":["id","isse","ide","ise","idi","idei","ke","ied"]},"39":{"input":[1,2,3,6],"tlp":["dia",31205],"trp":["ida",58061],"tlw":["dia",8588],"trw":["ideia",3049],"lp":["dia","diz","deix","zes","dize","ezes","adei","deia","xis","exis","dez","dias","adi","edia","sida","dida"],"rp":["ida","idad","iad","ieda"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",136577],"trp":["it",117311],"tlw":["vi",1966],"trw":["it",901],"lp":["ti","vi","tiv","viv","vit","tit","vivi","tivi","viti","tv","vii","viii","vitt"],"rp":["it","iv","iti","ivi","itiv","itt"]},"41":{"input":[1,4,6],"tlp":["va",136327],"trp":["ita",29811],"tlw":["vai",6210],"lp":["va","av","ava","fi","tav","tava","via","faz","avi","avia","ati","vai","tia","ativ","tiva","afi"],"rp":["ita","if","ifi","iva"]},"42":{"input":[2,4,6],"tlp":["ci",126068],"trp":["ic",96581],"tlw":["civis",136],"lp":["ci","sti","tic","vis","cis","sit","siv","sic","vist","stiv","ssiv","sist","sci","ck","visi"],"rp":["ic","ist","ici","isc","isti"]},"43":{"input":[1,2,4,6],"tlp":["cia",40513],"trp":["ica",47187],"tlw":["vista",1644],"lp":["cia","stav","fic","fica","aci","cav","fici","cava","tica","sav","cisa","cai","sava","sica","vas"],"rp":["ica","ista","ific","icia","itas"]},"44":{"input":[3,4,6],"tlp":["ri",197607],"trp":["ir",123977],"tlw":["ver",6812],"trw":["ir",3642],"lp":["ri","ve","eri","ver","ev","eir","eit","eve","rei","tir","rv","rit","tive","teri","vr","rri"],"rp":["ir","ive","ite","ire"]},"45":{"input":[1,3,4,6],"tlp":["ria",65506],"trp":["ira",34560],"tlw":["vez",10904],"trw":["iria",1476],"lp":["ria","ari","eria","vez","eira","zer","ave","faze","rav","azer","aria","eva","fei","feit","var","arti","rava","eita"],"rp":["ira","izer"]},"46":{"input":[2,3,4,6],"tlp":["eci",33622],"trp":["iste",8299],"tlw":["tivesse",3417],"lp":["eci","vid","ves","reci","cid","cri","dir","dev","cie","ris","esti","tid","vess","ecis","rid","verd","dire","seri","deve"],"rp":["iste"]},"47":{"input":[1,2,3,4,6],"tlw":["estava",26264],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",225142],"trw":["in",1383],"lp":[],"rp":["in","nh","inh","ni","hi","ini","nin","nni","hin","nhi","hn","inin","ninh","hnn"]},"49":{"input":[1,5,6],"tlp":["anh",17458],"trp":["ha",149599],"tlw":["ah",1851],"trw":["ha",7686],"lp":["anh","ain","anha","ani","zin","zinh","ah"],"rp":["ha","nha","inha","ina","ian","han","iq","nia","nz","nina","nai","inz","hia"]},"50":{"input":[2,5,6],"tlp":["sin",6776],"trp":["nsi",8141],"tlw":["sin",78],"trw":["his",425],"lp":["sin","sh","ssin","shi","shin"],"rp":["nsi","ins","his","nis","ij","ji","inis","nsis","insi","nsin","niss","nk","kh","inj","kin"]},"51":{"input":[1,2,5,6],"tlp":["sina",3120],"trp":["has",9127],"tlw":["sinais",487],"trw":["haja",264],"lp":["sina","ansi","wh","ash","ashi","win","sain","anis","wash","siq","ank","wins"],"rp":["has","nhas","inas","nais","iaj","iaja","isq","ija"]},"52":{"input":[3,5,6],"tlp":["enh",22040],"trp":["he",69162],"trw":["he",710],"lp":["enh","eni","enin","ein","enie"],"rp":["he","nhe","ien","hei","nei","nenh","nhei","ine","inhe","nie","hen","nnie","hy","hine","hie"]},"53":{"input":[1,3,5,6],"tlp":["zen",6089],"trp":["izen",1523],"tlw":["annie",302],"lp":["zen","anei","enha","azen","anhe","eina","anie","ezen","xin","xinh"],"rp":["izen","nze","heia","inze","ixan","hae","nzen","hay","ixin","hea"]},"54":{"input":[2,3,5,6],"tlp":["senh",8286],"trp":["ind",27747],"tlw":["she",187],"trw":["keynes",525],"lp":["senh","din","endi","dinh","ensi","eij"],"rp":["ind","ndi","iden","nid","indi","jei","hes","nsid","ndid","nsei","inde","hesi","ines","hid"]},"55":{"input":[1,2,3,5,6],"tlw":["ainda",11235],"trw":["had",467],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["tin",38604],"trp":["nti",28083],"tlw":["bit",131],"lp":["tin","tinh","bi","th","vin","bit","vinh","bin"],"rp":["nti","int","nv","ntin","ib","niv","inv","nit","nvi","ith","ibi","ht"]},"57":{"input":[1,4,5,6],"tlp":["abi",11269],"trp":["hav",21186],"tlw":["tinha",19974],"trw":["havia",12654],"lp":["abi","fin","bai","van","bia","fina","abia","anti","vant"],"rp":["hav","havi","inf","iant","nfi","hava","nif","nav","ntia","inta","nifi"]},"58":{"input":[2,4,5,6],"tlp":["ch",51196],"trp":["nci",30934],"tlw":["this",245],"trw":["nick",345],"lp":["ch","cin","stin","cinc","chi","sint","sib"],"rp":["nci","inc","nic","hist","inci","inst","inic","nici","nist","nsci","nch","nsti","ich"]},"59":{"input":[1,2,4,5,6],"tlw":["sabia",4759],"trw":["jack",1117],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["enti",15708],"trp":["inte",16818],"tlw":["the",5095],"trw":["neve",796],"lp":["enti","bri","rin","ven","the","tenh","vent","vern","env"],"rp":["inte","her","ient","nve","heir","ntei","neir","nver","here","nive","ntir"]},"61":{"input":[1,3,4,5,6],"tlw":["tenha",2165],"trw":["haver",852],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["sentir",1575],"trw":["interesse",884],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["diante",2499],"trw":["instante",1219],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",2403],"trw":["o",225240],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",290064],"trp":["oa",20855],"tlw":["ao",31621],"lp":["ao","aao"],"rp":["oa","oao"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",163724],"trp":["os",421052],"tlw":["so",11721],"trw":["os",73145],"lp":["so","sso","sos","ssos","soo"],"rp":["os","oss","osso","oso","osos","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["sao",23278],"trp":["oas",8168],"tlw":["sao",10362],"lp":["sao","soa","aos","ssoa","soas","aso","ssao","asso","wo","asos","woo","asao"],"rp":["oas","ossa","osa","ow","osas","osao","owa","osw"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",6725],"trp":["oe",22866],"trw":["-",58877],"lp":["eo","e-","e-o"],"rp":["oe","o-","-e","-o","o-e"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",11510],"trp":["ox",5327],"trw":["-a",77],"lp":["xo","a-","exo","xao","eao","xoe","exao","xa-","xe-","e-a","axo","axoe","exoe","ao-","a-a"],"rp":["ox","-a","oxa","oxo","-a-"]},"70":{"input":[2,3,7],"tlp":["do",416137],"trp":["od",73365],"tlw":["do",90461],"trw":["-se",74],"lp":["do","dos","esso","edo","eso","dedo","edos","soe","soes","doe","do-"],"rp":["od","ode","odo","oes","-s","-se","odos","osse","ose"]},"71":{"input":[1,2,3,7],"tlp":["ado",79015],"trp":["oda",11723],"tlw":["dado",976],"lp":["ado","ados","dado","sado","dao","a-s","a-se","xado","sexo","eado","xos","da-","dosa","adao","xoes","exos"],"rp":["oda","odas","oeda","owe"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",290254],"trp":["ot",25787],"tlw":["to",1894],"lp":["to","go","tot","tto","got","tog","gt","gto","too","gg","goo"],"rp":["ot","og","ogo","oto","ott","otto","otog","ogg"]},"73":{"input":[1,4,7],"tlp":["fo",73193],"trp":["of",13544],"tlw":["tao",9962],"trw":["of",1931],"lp":["fo","ga","ag","tao","ago","ato","aga","fato","fog","tota","gat","fogo","fot","foto","gao","tag","tato"],"rp":["of","ota","oga"]},"74":{"input":[2,4,7],"tlp":["co",405580],"trp":["oc",76923],"tlw":["gosto",1191],"lp":["co","sto","tos","cos","sco","gos","gost","cost","soc","toc","stos","cto","goc","coc","scoc","coco"],"rp":["oc","ost","osto","oco"]},"75":{"input":[1,2,4,7],"tlp":["cao",52031],"trp":["oca",15079],"tlw":["caso",3450],"lp":["cao","acao","aco","fos","foss","stao","caso","gas","sag","acos","sof","atos","sfo","saco","toca","asto"],"rp":["oca","osta","ocas","otas"]},"76":{"input":[3,4,7],"tlp":["ro",189615],"trp":["or",300995],"tlw":["george",652],"trw":["or",278],"lp":["ro","eg","ge","tro","gr","rg","tor","rto","erg","gor","ero","rro","eto","erto"],"rp":["or","ort","orr","ore","orre","orte"]},"77":{"input":[1,3,4,7],"tlp":["for",35880],"trp":["ora",47672],"tlw":["agora",9502],"trw":["ora",1045],"lp":["for","gar","gra","ega","age","aro","fora","agor","gora","arg","egar","rof","arro","rox","rao","rga","fort","agr"],"rp":["ora","orta"]},"78":{"input":[2,3,4,7],"tlp":["ros",31755],"trp":["oce",38021],"tlw":["todos",10399],"lp":["ros","cor","tod","seg","todo","dor","esco","eco","coe","coes","corr","esto","tros","sor","roc"],"rp":["oce","ord","oder","ores","orc"]},"79":{"input":[1,2,3,4,7],"tlw":["fosse",5405],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["ou",187963],"trw":["no",51404],"lp":[],"rp":["ou","no","on","un","nu","nun","nou","ono","uo","nuo","uou","nuou","onn","uno","onou","oou","oun","non","oon","unn"]},"81":{"input":[1,5,7],"tlp":["qu",415783],"trp":["ua",141069],"tlw":["ano",2467],"trw":["nao",106447],"lp":["qu","qua","quan","aqu","ano","au","anu","anqu"],"rp":["ua","nao","uan","nqu","ona","nqua","naqu","nua","una","oq","oqu","uq"]},"82":{"input":[2,5,7],"tlp":["su",74848],"trp":["us",60120],"tlw":["sou",2630],"trw":["nos",20778],"lp":["su","sou","son","ssu","sus","ssou","sun"],"rp":["us","nos","ons","jo","ju","noss","uns","oj","jun","nso","uj","uso","nsou"]},"83":{"input":[1,2,5,7],"tlp":["sua",42963],"trp":["uas",22607],"tlw":["sua",31618],"trw":["nossa",3352],"lp":["sua","anos","suas","quas","squ","aus","ausa","aju","assu","sau"],"rp":["uas","usa","nsao","joa","uja","usan","oja","joao","usao","onsa"]},"84":{"input":[3,5,7],"tlp":["eu",147300],"trp":["ue",347032],"tlw":["eu",43591],"trw":["you",709],"lp":["eu","eno","eun","eon","eu-","enou"],"rp":["ue","uen","u-","one","ou-","ueno","n-","yo","oen","you","ueu","nou-","nue","-n"]},"85":{"input":[1,3,5,7],"tlp":["que",325065],"trp":["ux",2970],"tlw":["que",242225],"trw":["-nao",146],"lp":["que","aque","equ","quen","eque","enqu","xou","xu","exu","xua","exua"],"rp":["ux","uena","nque","uxa","oque","uxo","oux","uxe","ouxe"]},"86":{"input":[2,3,5,7],"tlp":["seu",45915],"trp":["ndo",102634],"tlw":["seu",30091],"trw":["onde",9124],"lp":["seu","eus","du","endo","deu","seus","enos","deus"],"rp":["ndo","ud","ond","und","onde","udo","undo","onse","ude","u-s","u-se","ndeu"]},"87":{"input":[1,2,3,5,7],"tlw":["quando",23534],"trw":["usando",884],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["gu",87969],"trp":["nto",82230],"tlw":["tu",788],"trw":["notou",383],"lp":["gu","tu","bo","tou","gun","gunt"],"rp":["nto","ont","ut","ob","ng","out","unt","ntou","ug","ub","unto","ngu","uto","ong"]},"89":{"input":[1,4,5,7],"tlp":["anto",26539],"trp":["uant",14606],"tlw":["quanto",4990],"trw":["nota",549],"lp":["anto","fu","gua","gan","fun","atu","tua","ang","agu","agua","fon","abo"],"rp":["uant","onta","ntao","uga","uta","onf","unta","nfo"]},"90":{"input":[2,4,5,7],"tlp":["con",88877],"trp":["uc",20930],"tlw":["sob",2880],"trw":["junto",1728],"lp":["con","cu","cont","cons","sob","cou","scu","stou","cob","guns"],"rp":["uc","nco","ntos","ouc","uco","unc","ouco","ncon","ocu","nunc"]},"91":{"input":[1,2,4,5,7],"tlw":["boca",2277],"trw":["nunca",7198],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ento",36495],"trp":["ur",58598],"tlw":["gente",3137],"trw":["outro",7994],"lp":["ento","egu","ru","gue","rou","tur","rgu","gen","ergu"],"rp":["ur","uer","obr","utr","outr","obre","ontr","utro","onte","ntro","uro"]},"93":{"input":[1,3,4,5,7],"tlw":["entao",11118],"trw":["outra",6635],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["sobre",14110],"trw":["outros",5996],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["grande",7378],"trw":["outras",3514],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["io",92146],"trw":["l",496],"lp":[],"rp":["io","lo","ol","li","oi","il","ili","olo","oli","ll","ilo","ill","lio","iol","oll","oio","lli","ilio","loo","illi"]},"97":{"input":[1,6,7],"tlp":["al",200651],"trp":["la",162745],"tlw":["ali",4130],"trw":["la",8495],"lp":["al","ala","ali","aio","alo","zo","alia","zao","azao"],"rp":["la","oz","lia","ial","ola","liz","iao","ilia","ozi","ila","liza"]},"98":{"input":[2,6,7],"tlp":["sol",10331],"trp":["ois",42788],"tlw":["sol",2060],"trw":["isso",18569],"lp":["sol","sil","sio","sl","ssio","soli","solo"],"rp":["ois","isso","ios","los","iso","ossi","osi","ls","lis","lso","ioso","ols","ok"]},"99":{"input":[1,2,6,7],"tlp":["sal",8453],"trp":["oisa",15190],"tlw":["sala",3032],"trw":["las",303],"lp":["sal","sala","asil","wil","will","soz","sozi","soal","alis","alos","alas","als"],"rp":["oisa","las","isao","iosa","lass","lias","lsa","olsa"]},"100":{"input":[3,6,7],"tlp":["el",253859],"trp":["le",167939],"tlw":["ele",53580],"trw":["lei",1081],"lp":["el","ele","elo","eio","eli","e-l","e-lo","ell"],"rp":["le","lei","ole","-l","ile","-lo","leo","lie","ioe","ilei","oel","iole"]},"101":{"input":[1,3,6,7],"tlp":["ela",75025],"trp":["ixo",8660],"tlw":["ela",31605],"trw":["lixo",278],"lp":["ela","ale","eal","aixo","eliz","eixo","eali","a-l","alei","ael","a-lo"],"rp":["ixo","oxi","lex","oze","-la","lez","leza","ia-","lea"]},"102":{"input":[2,3,6,7],"tlp":["del",18683],"trp":["ido",37514],"tlw":["eles",10957],"trw":["ido",578],"lp":["del","eles","dele","doi","dois","elos","sido","dio","dido","sile","sel","dol"],"rp":["ido","les","odi","lid","ld","idos","ilid","old"]},"103":{"input":[1,2,3,6,7],"tlw":["dela",4626],"trw":["lado",7350],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",89842],"trp":["ito",55627],"tlw":["tio",740],"trw":["logo",3653],"lp":["vo","gi","vol","volt"],"rp":["ito","ig","lt","ov","lg","igo","olt","lv","oit","ovo","lto","liv","log","ivo","lig","lti"]},"105":{"input":[1,4,6,7],"tlp":["alg",28147],"trp":["lta",14607],"tlw":["foi",19254],"lp":["alg","tal","foi","fal","alt","fil","fala","alv","val","agi","alav","talv","fl","voz","gia"],"rp":["lta","iga","ova","olta","lav"]},"106":{"input":[2,4,6,7],"tlp":["voc",35885],"trp":["ico",23673],"tlw":["visto",1856],"trw":["isto",3322],"lp":["voc","coi","cio","cois","cl","col","vos","cil","colo","sig","scol"],"rp":["ico","lic","isto","itos","oci","loc","igos","icio","lc"]},"107":{"input":[1,2,4,6,7],"tlw":["coisa",9623],"trw":["local",1110],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rio",30701],"trp":["iro",27990],"tlw":["rio",2083],"trw":["livro",2336],"lp":["rio","vel","eiro","eito","tori","rel","rig","erio","tel","rito","rov"],"rp":["iro","ori","ior","lev","ove","lve","ivel","oite","orri"]},"109":{"input":[1,3,4,6,7],"tlw":["talvez",5564],"trw":["levar",1384],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["voce",31586],"trw":["livros",1191],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["claro",3392],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",111008],"trw":["olhou",3514],"lp":[],"rp":["ho","lh","ui","ul","lho","nho","olh","iu","lu","ilh","olho","onh","hu","uni","ulh","inu","ulo","lin","hou","ino"]},"113":{"input":[1,5,6,7],"tlp":["qui",23334],"trp":["lha",27941],"tlw":["aqui",6587],"trw":["luz",3303],"lp":["qui","qual","alh","aqui","alq","alqu","alha"],"rp":["lha","ual","lan","nal","olha","uz","lq","lqu","ualq","ilha","inal","iona","ula"]},"114":{"input":[2,5,6,7],"tlp":["sul",3044],"trp":["hos",17929],"tlw":["sonhos",1378],"trw":["olhos",8588],"lp":["sul","sonh","sion","solu","sui","sino"],"rp":["hos","lhos","uis","onsi","nhos","hoj","usi","ulos","lus","jul","inos","ijo","ku","loj"]},"115":{"input":[1,2,5,6,7],"tlw":["quais",1786],"trw":["loja",754],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elh",18680],"trp":["lhe",25233],"trw":["lhe",9996],"lp":["elh","elho","enho","enhu","elen"],"rp":["lhe","uel","len","uele","onhe","ulhe","nel","uei","olhe","in-","ilen","ly","-lh","-lhe","nele"]},"117":{"input":[1,3,5,6,7],"tlw":["aquele",3696],"trw":["naquele",1801],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["disse-lhe",457],"trw":["hoje",2804],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["aqueles",1766],"trw":["olhando",2030],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["gui",16504],"trp":["uit",26642],"tlw":["vou",3725],"trw":["novo",4638],"lp":["gui","bl","gin"],"rp":["uit","lgu","uito","uv","nov","ing","ouv","ult","uvi","itu","ouvi","noit","lug","ingu","onti","long","onv"]},"121":{"input":[1,4,5,6,7],"tlw":["filho",2705],"trw":["nova",2638],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["cinco",2400],"trw":["unico",1538],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["alguns",5675],"trw":["unica",1846],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["tenho",3664],"trw":["noite",6059],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["qualquer",7063],"trw":["lugar",5157],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["senhor",5213],"trw":["jeito",1631],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["fazendo",2599],"trw":["historia",3341],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",1293],"trw":["p",1742],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",54655],"trp":["pa",230757],"trw":["papa",278],"lp":["ap","apa","app"],"rp":["pa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",45986],"trp":["ps",1182],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",5532],"trp":["pas",19597],"trw":["passa",679],"lp":["spa","sap","sapa","asp","apas","aps","ssap"],"rp":["pas","pass"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",29704],"trp":["pe",179445],"trw":["pe",2387],"lp":["ep","epe","e'"],"rp":["pe","pee","''"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",14035],"trp":["pape",2221],"lp":["ape","xp","exp","epa","xpe","expe","xpa","expa","a'"],"rp":["pape","'a","pea","px"]},"134":{"input":[2,3,8],"tlp":["esp",37689],"trp":["pes",22163],"trw":["pes",1833],"lp":["esp","spe","espe","dep","depe","sep","desp","sesp","sped","spes","d'","eps","ssep"],"rp":["pes","pess","ped","pede","pd","'s","'d"]},"135":{"input":[1,2,3,8],"tlp":["espa",4992],"trp":["pad",5872],"tlw":["espada",1207],"trw":["pesada",361],"lp":["espa","apes","esap","spad","aspe","sepa","depa","d'a","xped","epas","spea","spx","aspx"],"rp":["pad","pesa","pada","peda","pade"]},"136":{"input":[4,8],"tlp":["tp",287],"trp":["pt",3485],"trw":["pt",2780],"lp":["tp","ttp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apat",596],"trp":["pat",2789],"tlw":["tapa",93],"lp":["apat","tap","apt","tapa","apta"],"rp":["pat","pata","pta"]},"138":{"input":[2,4,8],"trp":["pc",1162],"lp":[],"rp":["pc"]},"139":{"input":[1,2,4,8],"tlp":["cap",9324],"trp":["pac",6453],"tlw":["capa",572],"trw":["pasta",248],"lp":["cap","capa","spac","apac","scap","capt"],"rp":["pac","pca","paca","past","pact","patc"]},"140":{"input":[3,4,8],"tlp":["rep",8013],"trp":["pr",132035],"trw":["peter",441],"lp":["rep","rp","repe","rpr","rpre","epr","epre","epet","repr","erp"],"rp":["pr","per","pre","pert","pet","pret","pree","prep","pete","pere"]},"141":{"input":[1,3,4,8],"tlp":["apar",7369],"trp":["par",142915],"tlw":["tapete",247],"trw":["para",95245],"lp":["apar","apr","rap","apre","epar","rapa","xper","repa","xpr","expr","xpre","aper"],"rp":["par","para","pare","part","pra","pera","prat","perf"]},"142":{"input":[2,3,4,8],"tlp":["resp",11738],"trp":["pres",18252],"tlw":["espere",312],"trw":["perder",886],"lp":["resp","sper","spec","depr","cep","epc","cepc","spet","rsp"],"rp":["pres","prec","pec","perd","perc","pedr","pect","pers","pesc","pred","pest"]},"143":{"input":[1,2,3,4,8],"tlw":["apesar",1985],"trw":["parece",2731],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",67484],"trw":["m",1887],"lp":[],"rp":["mp","mm","pn","mn","nm"]},"145":{"input":[1,5,8],"tlp":["am",185140],"trp":["ma",359934],"tlw":["ama",422],"trw":["ma",502],"lp":["am","ama","amp","aman","ampa","apan"],"rp":["ma","man","mpa","pan","mana","mpan","nam","mam","maq","pam","mama","map","mapa","nama"]},"146":{"input":[2,5,8],"tlp":["sm",24615],"trp":["nsp",908],"lp":["sm"],"rp":["nsp","nsm","ms"]},"147":{"input":[1,2,5,8],"tlp":["sam",7995],"trp":["mas",58930],"tlw":["sam",195],"trw":["mas",44387],"lp":["sam","sma","span","asam","asm","ssam","amas","smas","asma","ansp","ansm"],"rp":["mas","jam","nsam","jama","mass","jap","maj","mans","mpas"]},"148":{"input":[3,5,8],"tlp":["em",283802],"trp":["me",270378],"tlw":["em",82946],"trw":["me",23412],"lp":["em","emp","eme","emen","epen","empe","emm","eem"],"rp":["me","men","pen","mem","nem","mpe","my","mpen","n'","mmy","pene","ym"]},"149":{"input":[1,3,5,8],"tlp":["ame",42844],"trp":["pena",8675],"tlw":["emma",305],"trw":["mae",5046],"lp":["ame","amen","ema","apen","eman","xem","exem","xemp","xam","exam"],"rp":["pena","mae","peq","mane","name","mea","mame","max","pame","nema"]},"150":{"input":[2,3,5,8],"tlp":["sem",29109],"trp":["mes",30950],"tlw":["sem",13046],"trw":["meses",1641],"lp":["sem","esm","dem","semp","ssem","dm","sme","esme","smen","seme"],"rp":["mes","mesm","pens","med","mens","pend","mese","mend","ndep","mped"]},"151":{"input":[1,2,3,5,8],"tlw":["apenas",7324],"trw":["mesma",4037],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",964],"trp":["mb",32610],"lp":["tm","bm"],"rp":["mb"]},"153":{"input":[1,4,5,8],"tlp":["tam",28816],"trp":["mat",4959],"tlw":["fama",211],"trw":["matt",334],"lp":["tam","amb","tamb","fam","atam","tama","amba","tamp","bam","abam","atm"],"rp":["mat","mant","mba","ntam","mata","pant","mbat","mpat","matt"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",156],"trp":["mc",119],"tlw":["cm",85],"lp":["cm","cmm"],"rp":["mc","mcc"]},"155":{"input":[1,2,4,5,8],"tlw":["cama",2189],"trw":["maca",202],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",41396],"trp":["ment",85913],"tlw":["bem",13447],"trw":["mente",2130],"lp":["rm","tem","bem","temp","emb","rem","empr","erm","rme","embr","term"],"rp":["ment","mpr","mpre","mer","mbr","mbe","mbem","met","ntem"]},"157":{"input":[1,3,4,5,8],"tlw":["tambem",10764],"trw":["mar",1598],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["sempre",8109],"trw":["presente",1043],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["certamente",1039],"trw":["pensar",2492],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",24405],"lp":[],"rp":["pi","ip","ipi","pip","ppi","ipp","pipp","ippi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",7700],"trp":["pai",11844],"trw":["pai",5571],"lp":["api","apaz","apai","zap","apia","zip"],"rp":["pai","paz","ipa","pia","ipai","piz","pizz","pazz"]},"162":{"input":[2,6,8],"tlp":["spi",5606],"trp":["isp",2854],"lp":["spi","sip","ssip"],"rp":["isp","pis","psi"]},"163":{"input":[1,2,6,8],"tlp":["apis",171],"trp":["pais",4098],"trw":["pais",2931],"lp":["apis","spia"],"rp":["pais","ispa","pisa","pias"]},"164":{"input":[3,6,8],"tlp":["epi",511],"trp":["pei",5264],"lp":["epi"],"rp":["pei","ipe","i'","pie","pipe"]},"165":{"input":[1,3,6,8],"tlp":["apei",323],"trp":["paix",1055],"trw":["peixe",323],"lp":["apei","a'z","a'za","zipe"],"rp":["paix","paze","peix","pez","peza","'z","'za","peia"]},"166":{"input":[2,3,6,8],"tlp":["espi",3719],"trp":["pedi",4130],"trw":["pedi",235],"lp":["espi","spei","disp","epis"],"rp":["pedi","pid","pide","peis","pied","ipes","i'd","ispe","kesp"]},"167":{"input":[1,2,3,6,8],"tlw":["despedida",129],"trw":["paises",490],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",3741],"trp":["pit",4493],"lp":["tip","tipi"],"rp":["pit"]},"169":{"input":[1,4,6,8],"tlp":["apit",3841],"trp":["pita",2323],"lp":["apit","vap","apav"],"rp":["pita","pati","pav","pava","pavi"]},"170":{"input":[2,4,6,8],"tlp":["cip",5141],"trp":["pist",660],"lp":["cip","cipi","spit","scip"],"rp":["pist","pisc","psic","icip","pic","ipic","ipc","pci","ipci"]},"171":{"input":[1,2,4,6,8],"tlw":["capaz",1624],"trw":["passava",922],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",238],"trp":["pri",25730],"tlw":["repetir",222],"trw":["piper",124],"lp":["rip","trip","repi","tepi","epit"],"rp":["pri","peri","pir","peit","piri","peti","prie","priv","prev","pire","prir","iper","it'","prei","ptei"]},"173":{"input":[1,3,4,6,8],"tlw":["rapaz",1561],"trw":["partir",1512],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["especie",1783],"trw":["pedir",815],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["esperava",1003],"trw":["parecia",5095],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["im",105296],"trw":["mim",6113],"lp":[],"rp":["im","mi","min","minh","imp","mim","nim","imi","mini","pin","ph","inim","nimi","pini","imin","mpi","hip","phi","imm","him"]},"177":{"input":[1,5,6,8],"tlp":["ami",18005],"trp":["mai",54885],"tlw":["amanha",798],"trw":["minha",12630],"lp":["ami","amin","anim","amai","ziam","aph"],"rp":["mai","ima","iam","ham","nham","mina","manh","hama","panh","nima","mia","impa","inam","imai"]},"178":{"input":[2,5,6,8],"tlp":["sim",20054],"trp":["mis",5228],"tlw":["sim",4845],"trw":["jim",693],"lp":["sim","ssim","simp","smi","spin","smis","sism","simi"],"rp":["mis","miss","jim","ism","mik","nism","insp","jimm","nspi","nsmi","mins","mk"]},"179":{"input":[1,2,5,6,8],"tlw":["assim",9572],"trw":["mais",42140],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",2072],"trp":["ime",24625],"trw":["i'm",90],"lp":["emi","eph","emin","eim"],"rp":["ime","mei","imen","imei","meni","impe","inem","penh","immy","hem","mine","ymi","mie","peni","phie","pime"]},"181":{"input":[1,3,5,6,8],"trw":["menina",1204],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["seph",283],"trw":["pensei",1244],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["demais",2703],"trw":["medida",966],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",10629],"trp":["mit",5096],"tlw":["vim",252],"trw":["http",287],"lp":["tim","vim","timi","thm","bmi"],"rp":["mit","ntim","miti","imit","mbi","itim","imb","pint","itm","mbin","htm","http","mith","mint","himb"]},"185":{"input":[1,4,5,6,8],"tlw":["tinham",4868],"trw":["haviam",2041],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",280],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["cima",3152],"trw":["incapaz",367],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["vem",1339],"trw":["permitir",306],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["fazem",993],"trw":["primeira",3896],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["devem",852],"trw":["presidente",1153],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["estavam",5892],"trw":["imediatamente",1406],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",224923],"trw":["po",410],"lp":[],"rp":["po","op","opo","pop","opp","oop"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",6185],"trp":["opa",1837],"trw":["pao",557],"lp":["apo","apao"],"rp":["opa","pao","papo","popa"]},"194":{"input":[2,7,8],"tlp":["spo",12061],"trp":["pos",28599],"trw":["posso",2774],"lp":["spo","spos","sop"],"rp":["pos","poss","opos","osp","pso","poso"]},"195":{"input":[1,2,7,8],"tlp":["apos",2721],"trp":["posa",1096],"tlw":["apos",1872],"trw":["passo",1318],"lp":["apos","sapo","sopa","apso"],"rp":["posa","opas","pow"]},"196":{"input":[3,7,8],"tlp":["epo",16405],"trp":["ope",1755],"trw":["poe",134],"lp":["epo","eop","eopo","e-p"],"rp":["ope","poe","o'","peo","peop","-p","oope"]},"197":{"input":[1,3,7,8],"tlp":["xpo",537],"trp":["peao",87],"lp":["xpo","expo"],"rp":["peao"]},"198":{"input":[2,3,7,8],"tlp":["depo",14313],"trp":["pod",31617],"tlw":["espesso",79],"trw":["pode",9510],"lp":["depo","espo","epos","spoe"],"rp":["pod","pode","peso","pose","ospe","pos-","poes","osep","opes"]},"199":{"input":[1,2,3,7,8],"tlw":["esposa",847],"trw":["pessoas",7432],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1854],"trp":["pot",800],"tlw":["topo",438],"lp":["top","topo"],"rp":["pot","opt","pg","pto","ptop"]},"201":{"input":[1,4,7,8],"tlp":["apag",291],"trp":["pag",4975],"trw":["pag",402],"lp":["apag","apg","apto"],"rp":["pag","paga","pato","pago","opag","opat"]},"202":{"input":[2,4,7,8],"tlp":["cop",1332],"trp":["post",6329],"tlw":["copo",522],"trw":["posto",634],"lp":["cop","copo","copt","coop"],"rp":["post","poc","poco","opc","pco","opco","pgc","pgcs"]},"203":{"input":[1,2,4,7,8],"tlw":["sapatos",482],"trw":["opcao",191],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",10909],"trp":["por",83084],"tlw":["reporter",133],"trw":["por",51332],"lp":["rop","ropr","rpo","ropo"],"rp":["por","pro","port","perg","prop","opr","orp","orpo","peg","pore","preo","preg","pero","opor","pego","prot"]},"205":{"input":[1,3,4,7,8],"tlw":["aeroporto",244],"trw":["porta",4885],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["corpo",3692],"trw":["poder",3010],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["resposta",1706],"trw":["professor",1075],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["um",243291],"trw":["um",108193],"lp":[],"rp":["um","om","mo","mu","omo","mpo","omp","pu","num","pon","up","pou","mun","mon","nom","mom","upo","mou","omu","oup"]},"209":{"input":[1,5,7,8],"tlp":["amo",18697],"trp":["uma",107111],"tlw":["amo",321],"trw":["uma",83293],"lp":["amo","ampo","apon","amou","aum"],"rp":["uma","mao","oma","upa","numa","ompa","uman","oman","pau","mano","oupa","onam","maqu","mau","namo"]},"210":{"input":[2,5,7,8],"tlp":["smo",16965],"trp":["mos",29583],"tlw":["som",1252],"trw":["pousou",166],"lp":["smo","spon","som","sup","susp","sum","supo","somo","smos","ssum","spu"],"rp":["mos","mpos","mus","usp","omos","mons","pons","upos","pous"]},"211":{"input":[1,2,5,7,8],"tlw":["soma",177],"trw":["maos",4073],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emo",14088],"trp":["ome",42557],"trw":["meu",13196],"lp":["emo","empo","emon"],"rp":["ome","meu","uem","omen","meno","omem","ume","mome","nome","nume","upe","umen","-m","-me","ompe","peu","memo"]},"213":{"input":[1,3,5,7,8],"tlw":["quem",7441],"trw":["pequeno",2129],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"trw":["mesmo",14794],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["damon",277],"trw":["pensando",1275],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["gum",14061],"trp":["mbo",6406],"tlw":["bom",4344],"trw":["ponto",2616],"lp":["gum","tom","bom","tum","ttom","tomo","tmo","gm"],"rp":["mbo","pont","omb","mot","mont","pub","put","pob","mput","moto","umb","utom"]},"217":{"input":[1,4,5,7,8],"tlw":["apontou",487],"trw":["ponta",807],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["com",79743],"trw":["pouco",7236],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["campo",1321],"trw":["moca",1091],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["tempo",10746],"trw":["momento",4691],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",4643],"trw":["porque",9040],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["comecou",3483],"trw":["ombros",1499],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["estamos",1849],"trw":["pensamentos",1108],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",22248],"trw":["polo",95],"lp":[],"rp":["pl","poi","pol","pli","ipo","plo","poli","lp","pio","opi","ipio","pil","olp","ppl","poio","lop","pilo","ipl","lip","ipli"]},"225":{"input":[1,6,7,8],"tlp":["apoi",894],"trp":["pal",9950],"tlw":["apoio",472],"trw":["paola",89],"lp":["apoi","alp","appl","apl","apli","apol","apla","alpa"],"rp":["pal","pla","pala","ipal","lpa","pali","lap","poia","opia","pila","lapi","palp"]},"226":{"input":[2,6,7,8],"tlp":["spio",144],"trp":["pois",18374],"trw":["pois",4416],"lp":["spio","spl"],"rp":["pois","posi","ispo","plos","ospi","piso","ipos","pios","psl"]},"227":{"input":[1,2,6,7,8],"trw":["lapis",171],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["epoi",14052],"trp":["pel",32898],"trw":["pelo",11997],"lp":["epoi","epl","epli","elop","elip","eple"],"rp":["pel","pelo","ple","pele","lpe","olpe","pple","pole","lope","poei","lipe","leop","l'","peli"]},"229":{"input":[1,3,6,7,8],"tlw":["apple",759],"trw":["pela",10602],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["depois",13958],"trw":["pelos",3503],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["explosao",225],"trw":["podia",5600],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tipo",3460],"trp":["pov",1630],"tlw":["tipo",3053],"trw":["povo",1274],"lp":["tipo","golp","gip","tipl"],"rp":["pov","povo","ipot","polt","pito","polv","pig","ltip"]},"233":{"input":[1,4,6,7,8],"tlw":["galpao",98],"trw":["patio",409],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["tipos",407],"trw":["politico",317],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capitao",887],"trw":["policia",1169],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["golpe",619],"trw":["proprio",2614],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"trw":["propria",2409],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["respeito",2148],"trw":["possivel",2464],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["rapido",1145],"trw":["poderia",4184],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mui",26105],"trw":["mil",1923],"lp":[],"rp":["mui","lm","hom","mpl","mil","hum","mul","imo","mulh","omi","impo","nhum","mili","impl","lim","minu","ompl","pul","mplo","umi"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alma",1095],"trw":["mal",2849],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["suponho",319],"trw":["possui",298],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["almas",218],"trw":["humanos",876],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["elmo",138],"trw":["homem",8542],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["alem",3586],"trw":["nenhuma",2224],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["simples",1787],"trw":["homens",5348],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["zaphod",507],"trw":["podiam",1009],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["tumulo",138],"trw":["muito",18767],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["alguma",5734],"trw":["ultima",1690],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["comigo",1864],"trw":["muitos",2820],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["algumas",3503],"trw":["muitas",2792],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["vermelho",829],"trw":["melhor",5197],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["alguem",4202],"trw":["maior",3758],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["simplesmente",1695],"trw":["mulheres",2796],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["completamente",1313],"trw":["marido",1424],"lp":[],"rp":[]}} \ No newline at end of file
diff --git a/keyboards/gboards/dicts/aset/_generator/src/ro-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/ro-keymap.json
new file mode 100644
index 0000000000..0bed185ec5
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/_generator/src/ro-keymap.json
@@ -0,0 +1 @@
+{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",511],"tlw":["a",83146],"lp":["aa","aaa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",3507],"tlw":["s",933],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",334071],"tlw":["sa",168486],"lp":["sa","as","asa","sas","ssa","asas","wa","aw","sw","ass","ws","was"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",21380],"tlw":["e",25573],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",331408],"tlw":["ea",17717],"lp":["ea","ex","eea","ae","xa","exa","xe","exe","ax"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",474727],"tlw":["de",299045],"lp":["de","se","es","ed","des","ese","ede","ses","sese","dee","sed","dese","sse","ess","edes","esed","sede","dd","eed","eses"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",156223],"tlw":["da",10448],"lp":["da","ad","ase","eas","dea","sea","ada","ade","dad","esa","edea","deas","ases","adea","asea","esea","sase","eeas","dade","ew"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",3013],"tlw":["t",835],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",414820],"tlw":["fata",15507],"lp":["at","ta","ata","fa","tat","af","fat","atat","fata","tf","afa","tata","ft","afat","fta","ff","att","tta","ftat","atf"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",311126],"tlw":["c",706],"lp":["st","sc","ct","cc","tc","ts"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",523509],"tlw":["ca",133317],"lp":["ca","ac","sta","ast","cat","aca","fac","asta","sca","asc","cas","asca","act","sf","stat","sat","casa","sfa","tac","faca"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["re",521801],"tlw":["te",15374],"lp":["re","te","er","tr","tre","et","rt","ere","rte","ter","ete","ret","tere","etr","ert","rer","tet","etre","rere","eret"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",509043],"tlw":["era",39299],"lp":["ar","ra","are","ate","era","rea","ara","tea","fe","tra","art","rat","arte","tar","tate","far","rta","area","fara","fr"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ce",303452],"tlw":["ce",59249],"lp":["ce","ec","est","ste","este","cr","str","ces","dr","rec","cest","rc","rs","cre","res","cer","dec","esc","rd","cee"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["car",108000],"tlw":["care",72655],"lp":["car","care","ace","dar","cea","dat","eca","ras","aces","dac","daca","stra","data","acea","ecat","ceea","face","rca","east","astr"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",3834],"trw":["n",1145],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",216706],"trp":["na",142605],"tlw":["an",1202],"trw":["na",594],"lp":["an","ana","ann","anan","anna","aq","anaq"],"rp":["na","nan","nna","naq"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",3093],"trp":["ns",69609],"trw":["j",435],"lp":["sn"],"rp":["ns","nj"]},"19":{"input":[1,2,5],"tlp":["aj",20324],"trp":["nsa",12265],"tlw":["sansa",539],"trw":["nas",518],"lp":["aj","ans","san","ansa","anj","sana","aja","saj","sans","anja","asan","wn","anas","awn"],"rp":["nsa","ja","nas","nja","nsas","jan"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",157322],"trp":["ne",182563],"tlw":["en",86],"trw":["ne",11044],"lp":["en","ene","ey","eyn","enn","eye","een","enen","eyne","enny","enne"],"rp":["ne","yn","nen","nne","ny","nee","ye","nny","yne"]},"21":{"input":[1,3,5],"tlp":["ane",10158],"trp":["nea",30604],"tlw":["anne",526],"trw":["nea",342],"lp":["ane","enea","ena","ean","anee","ay","anne","anea","anen","xan","exan","eann","aye","eane","anx"],"rp":["nea","ya","nay","yx","nx"]},"22":{"input":[2,3,5],"tlp":["ej",6230],"trp":["nd",131965],"tlw":["sens",684],"trw":["je",103],"lp":["ej","sen","den","ens","dej","end","dy","sens","sey","ssey","seyn"],"rp":["nd","nde","nse","je","nes","ndes","nses","jd","ys"]},"23":{"input":[1,2,3,5],"tlp":["and",65203],"trp":["nda",9766],"tlw":["deja",3062],"trw":["new",498],"lp":["and","dan","anda","ande","eja","deja","adan","anse","dane","dans","esan","esaj","eaj"],"rp":["nda","ndea","nsea","neas","nand","new","jea"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",2355],"trp":["nt",306047],"tlw":["b",322],"lp":["bt","bb"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ba",71864],"trp":["nta",47119],"tlw":["ba",2052],"trw":["nat",115],"lp":["ba","ant","ab","tan","bat","anta","aba","ban","tant","bab","tana","bata","anat","fan","tab"],"rp":["nta","nat","nf","ntat","nata"]},"26":{"input":[2,4,5],"tlp":["bs",4364],"trp":["nc",92637],"lp":["bs","cn","bc","bst","sb","tj"],"rp":["nc","nst","nct","jb"]},"27":{"input":[1,2,4,5],"tlp":["can",32837],"trp":["nca",22051],"tlw":["banca",519],"trw":["nasca",92],"lp":["can","anc","stan","anca","cant","bas","abs","bast","cab","taj","tanc","acan","banc","sab"],"rp":["nca","ncat","nsta","nast","nanc","nsf"]},"28":{"input":[3,4,5],"tlp":["ent",84157],"trp":["ntr",104253],"tlw":["brett",483],"trw":["nr",169],"lp":["ent","entr","eb","reb","treb","be","rb","br","rn","ten","ren","ern","rbe","tent"],"rp":["ntr","nte","ntre","ner","nter","net"]},"29":{"input":[1,3,4,5],"tlp":["ran",24100],"trp":["ntra",6602],"tlw":["barbat",1660],"lp":["ran","enta","bar","eba","reba","rba","bra","tran","arb","rab","arba","bea","barb","rbat","rant","ante"],"rp":["ntra","nar","ntea","neat"]},"30":{"input":[2,3,4,5],"tlp":["cen",5052],"trp":["nce",27047],"tlw":["recent",181],"trw":["jerry",121],"lp":["cen","dent","bes","cent","rbes","bse","sten","sent","bser","best"],"rp":["nce","ncer","ndr","nec","ndre","ncet","ncr","ndc","ncre","nstr"]},"31":{"input":[1,2,3,4,5],"tlw":["cand",24121],"trw":["jeff",677],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",110946],"trw":["ii",23134],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",175637],"trp":["ia",127873],"tlw":["ai",14411],"trw":["ia",3588],"lp":["ai","zi","az","za","aza","aia","azi","zia","zii","azia","aii","aiz","azii"],"rp":["ia","iz","iza","izi","iaz","iaza","izii"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",392768],"trp":["is",116257],"tlw":["si",229731],"trw":["isi",19173],"lp":["si","sis","sii","sk","ski","ssi","sisi","siss"],"rp":["is","isi","ki","ik","ks","iis","isk","iss","iki","kik","kiki","isis"]},"35":{"input":[1,2,6],"tlp":["asi",21012],"trp":["isa",3757],"tlw":["zis",2561],"trw":["iasa",754],"lp":["asi","zis","sai","sia","ak","wi","asis","sasi","wis","ais","aias","saiz","asii","zas","zias"],"rp":["isa","ias","ka","iasa","iasi"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",94946],"trp":["ie",135041],"tlw":["ei",24160],"trw":["iei",524],"lp":["ei","eie","eii"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",32829],"trp":["ize",3487],"tlw":["zeii",292],"trw":["izea",421],"lp":["ez","ze","eze","ezi","xi","exi","aie","eza","eia","eaz","eaza","aze","zea","zie","zei","eai","eiz","eize"],"rp":["ize","ix"]},"38":{"input":[2,3,6],"tlp":["di",145395],"trp":["id",28001],"tlw":["desi",3541],"trw":["iesi",1561],"lp":["di","esi","edi","dis","desi","sie","sid","side","die","sise","sei","sedi"],"rp":["id","ise","ide","ies","idi","iesi","ke","idee"]},"39":{"input":[1,2,3,6],"tlp":["zise",7538],"trp":["ida",1906],"tlw":["zise",6592],"trw":["ideea",1322],"lp":["zise","xis","exis","adi","dia","sez","asez","edia","seza","easi","dai","zid","esia","aies","dez","aid","ezis","aide","ake"],"rp":["ida"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",295163],"trp":["it",151806],"tlw":["ti",1335],"trw":["iti",3989],"lp":["ti","vi","tii","tit","tiv","vit","vii","titi","viit","tivi","tv"],"rp":["it","iv","iti","ivi","ivit","iit","itii","itiv","itit"]},"41":{"input":[1,4,6],"tlp":["va",110914],"trp":["ita",36266],"tlw":["fi",38843],"trw":["iata",1833],"lp":["va","fi","ati","av","tia","fii","vaz","zit","via","viat","ava","tai","tati","atii"],"rp":["ita","iat","itat","iata","iva","if"]},"42":{"input":[2,4,6],"tlp":["ci",156406],"trp":["ic",148028],"tlw":["ci",3836],"trw":["ici",186],"lp":["ci","sti","sit","cit","cti","tic","stii","stit","tis","vic","ctiv","vis","cii","sist"],"rp":["ic","ici","ist","isc","isti","itic"]},"43":{"input":[1,2,4,6],"tlp":["aci",11683],"trp":["ica",34598],"tlw":["aici",9541],"lp":["aci","aic","aici","caz","stia","acti","zic","fic","cati","caci","cia","asti","tica","faci","cai"],"rp":["ica","ista","icat","isca","ific"]},"44":{"input":[3,4,6],"tlp":["ri",261934],"trp":["ir",38667],"tlw":["trei",5142],"trw":["ieri",560],"lp":["ri","ve","ev","eri","vr","vre","tie","riv","tri","eti","rie","rei","rit","rivi","rti"],"rp":["ir","ire","ite","ier","iet"]},"45":{"input":[1,3,4,6],"tlp":["eva",33520],"trp":["iar",32094],"tlw":["avea",12237],"trw":["iar",16087],"lp":["eva","ari","ave","vea","fie","avea","rez","var","ria","evar","arti","reze","feri","vrea","vara","teva","rai","raz"],"rp":["iar","irea"]},"46":{"input":[2,3,4,6],"tlp":["ric",22696],"trp":["ice",14452],"tlw":["cei",7477],"trw":["iesit",918],"lp":["ric","eci","esti","dev","dic","cev","cei","ris","cri","ved","vede","rid","ves","ridi","eric","scri"],"rp":["ice","iste","iec","idic"]},"47":{"input":[1,2,3,4,6],"tlw":["ceva",11423],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",750933],"trw":["in",184145],"lp":[],"rp":["in","ni","hi","ini","nii","iin","hii","nin","ih","hn","inii","nni","ihn","iini","hin","inn","ihi","nh","hni","inin"]},"49":{"input":[1,5,6],"tlp":["ani",21231],"trp":["ina",49485],"tlw":["ani",6375],"trw":["hai",1393],"lp":["ani","ain","aini","ah","aha","anii","zin","zan"],"rp":["ina","ha","hia","nai","inai","nain","nz","hai","nia","han","ian","nza"]},"50":{"input":[2,5,6],"tlp":["sin",18411],"trp":["ins",33866],"tlw":["sin",190],"trw":["jh",411],"lp":["sin","sh","sih","sini","sni"],"rp":["ins","nis","ij","his","nsi","inis","ji","isn","iji","insi","jin","ijin","nsis","nk","nik"]},"51":{"input":[1,2,5,6],"tlp":["asin",3239],"trp":["insa",9893],"tlw":["ash",252],"trw":["insa",7993],"lp":["asin","sina","aji","ank","siha","sha","ash","ansi","ajii","anis","asni"],"rp":["insa","ija","hisa","hans","jak","kan","jah","ijah","hka"]},"52":{"input":[3,5,6],"tlp":["eni",33619],"trp":["ine",65502],"tlw":["eh",87],"trw":["hei",371],"lp":["eni","enii","ein","enin","eh","enie"],"rp":["ine","he","nei","ien","nie","hei","nein","inei","hen","heie","nnie","niei","hne","hie"]},"53":{"input":[1,3,5,6],"tlp":["aine",3733],"trp":["inea",7586],"trw":["haine",380],"lp":["aine","zen","ezen","enz","anie","ezin","enza","zne","azne","ezn","ezna","enzi"],"rp":["inea","nez","neze","hea","iena","nze","heia","neaz"]},"54":{"input":[2,3,5,6],"tlp":["din",90282],"trp":["ind",36487],"tlw":["din",67566],"trw":["iesind",261],"lp":["din","sine","dine","edin","enis","ensi"],"rp":["ind","ndi","inse","inde","iind","indi","hise","iden","nsid","hid","nise","hes","hide","nind"]},"55":{"input":[1,2,3,5,6],"tlw":["sinea",401],"trw":["jake",478],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",58255],"trp":["int",156160],"tlw":["vin",1566],"trw":["intii",232],"lp":["bi","tin","bin","vin","th","bit","vint","tint"],"rp":["int","nti","ib","nit","inti","ntin","nv","ibi","iint","inv","nvi","ntii"]},"57":{"input":[1,4,5,6],"tlp":["abi",11731],"trp":["inta",22656],"tlw":["abia",2225],"trw":["nava",1620],"lp":["abi","aint","van","fiin","zb","tina","vant","bia","atin","bai","abia","babi","vina","bati","aib"],"rp":["inta","inf","nav","iba","inat"]},"58":{"input":[2,4,5,6],"tlp":["ch",61576],"trp":["inc",60349],"tlw":["cinci",2724],"trw":["nici",22847],"lp":["ch","chi","cin","sch","schi","chii","chis","stin","cinc","bis"],"rp":["inc","nic","nici","nci","nist","inci","nch","nchi","inch","nsti"]},"59":{"input":[1,2,4,5,6],"tlw":["stiinta",654],"trw":["inca",8005],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["rin",33243],"trp":["intr",61098],"tlw":["bine",14803],"trw":["intre",5472],"lp":["rin","bine","ven","veni","tine","rint","enti","rni","enit","rbi","even","bir","bie"],"rp":["intr","inte","nev","ient","inev","ibe","iber"]},"61":{"input":[1,3,4,5,6],"tlw":["tinea",1218],"trw":["inainte",6948],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["dintre",7665],"trw":["niste",5419],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["chiar",12228],"trw":["incerca",1941],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",1200],"trw":["o",113236],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",642],"trp":["oa",151490],"trw":["oa",179],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",36626],"trp":["os",73956],"tlw":["so",137],"trw":["os",129],"lp":["so","sos","sso"],"rp":["os","oss","oso","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["soa",8768],"trp":["oas",22126],"lp":["soa","aso","wo","swo","sow","woo","asoa","sowa","asso","ssow","aos"],"rp":["oas","oasa","ow","osa","ossa","owa","oass","ows"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["e-",29604],"trp":["-o",27659],"trw":["-",97955],"lp":["e-","eo","e-o"],"rp":["-o","oe","-e","o-","-o-"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",46041],"trp":["-a",104204],"tlw":["a-",97],"trw":["-a",320],"lp":["a-","e-a","eoa","a-a","a-o"],"rp":["-a","ox","-a-"]},"70":{"input":[2,3,7],"tlp":["do",69536],"trp":["od",23024],"tlw":["s-o",6502],"lp":["do","s-","s-o","de-","deo","eod","deod","eso","eos","deos","eose","e-s"],"rp":["od","-s","ose","-se","ode","odo","oses","osse"]},"71":{"input":[1,2,3,7],"tlp":["sa-",34714],"trp":["oda",11577],"tlw":["s-a",12787],"trw":["oase",184],"lp":["sa-","s-a","doa","a-s","sa-s","de-a","eoda","deoa","ado","asa-","da-"],"rp":["oda","oase","-as","-ad","-ade","osea","oad","oada","odea"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",107166],"trp":["ot",74165],"tlw":["tot",13553],"trw":["otto",232],"lp":["to","tot","go","tog","tto","toto","gg","got","gt","gto","togo","tg"],"rp":["ot","og","oto","ott","otog","ogo","otto","oog"]},"73":{"input":[1,4,7],"tlp":["ga",71011],"trp":["oat",31855],"tlw":["toata",5023],"trw":["ofta",463],"lp":["ga","fo","toa","ag","toat","gat","ato","foa","aga","atoa","gata","ago","goa"],"rp":["oat","of","oata","ota","oga","oft","ogat"]},"74":{"input":[2,4,7],"tlp":["co",95698],"trp":["oc",55455],"tlw":["scos",703],"lp":["co","sco","sto","cto","cot","sot","soc","toc","gos","cos","gost","scot","goss"],"rp":["oc","ost","osc","oct","octo","oco","ocot"]},"75":{"input":[1,2,4,7],"tlp":["fos",18330],"trp":["oast",12711],"tlw":["fost",18063],"trw":["ostas",97],"lp":["fos","fost","aco","gas","coa","scoa","foc","coas","agos","coat","asto","sato","cato","sfo"],"rp":["oast","oca","oac","osta","ocat","oasc"]},"76":{"input":[3,4,7],"tlp":["ro",71384],"trp":["or",188766],"tlw":["rog",1945],"trw":["ore",1272],"lp":["ro","ge","eg","tor","gr","r-","tr-","rg","reg","ege","r-o","tr-o","gre","erg","reo"],"rp":["or","ort","-t","ore","ote"]},"77":{"input":[1,3,4,7],"tlp":["foar",10466],"trp":["oar",59190],"tlw":["toate",11462],"trw":["oare",2672],"lp":["foar","toar","for","roa","rag","ega","ator","gra","egat","a-t","arg","gea"],"rp":["oar","oare","oate","oart","ora","-ar","orta","oara"]},"78":{"input":[2,3,4,7],"tlp":["dor",9727],"trp":["ord",7233],"tlw":["rost",832],"lp":["dor","ros","cor","ce-","sor","rost","rso","ctor","deg","erso","stor","dege","roc","totd","doc"],"rp":["ord","oce","ostr","otd","otde"]},"79":{"input":[1,2,3,4,7],"tlw":["doar",7637],"trw":["oras",1618],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",291116],"trw":["nu",113453],"lp":[],"rp":["un","nu","on","no","ou","unu","uno","nou","nun","onu","ono","onn","non","oon","oun","uu","nuu","nno","onun","onon"]},"81":{"input":[1,5,7],"tlp":["au",127814],"trp":["ua",38098],"tlw":["au",14003],"trw":["una",3763],"lp":["au","anu","aun","auna","qu","anun","ano"],"rp":["ua","una","oua","noa","ona","nua","oan","noua","unoa","oana","nau","naun","nuna"]},"82":{"input":[2,5,7],"tlp":["su",87996],"trp":["us",98070],"tlw":["sus",2880],"trw":["jos",3880],"lp":["su","sun","sus","son","snu"],"rp":["us","ju","uns","jo","jun","nos","ons","unos","jos","juns","nsu","uso","nus","osu","nsus"]},"83":{"input":[1,2,5,7],"tlp":["sau",22053],"trp":["noas",7379],"tlw":["sau",21799],"trw":["usa",4343],"lp":["sau","asu","aju","ajun","soan","suna","sona","aus","ajo","anus","asun","ason","saju"],"rp":["noas","usa","joa","uas","usoa","nasu","ouas"]},"84":{"input":[3,5,7],"tlp":["eu",42582],"trp":["une",33961],"tlw":["eu",16688],"trw":["n-o",3069],"lp":["eu","enu","eun","enun","eno"],"rp":["une","n-","u-","nu-","-u","-un","ne-","ue","n-o","neo","one","uneo","-n","ony","une-"]},"85":{"input":[1,3,5,7],"tlp":["eau",24032],"trp":["n-a",17307],"trw":["n-a",2864],"lp":["eau","eaun","euna","que","xu","exu","e-au","eaua","xua","exua"],"rp":["n-a","-au","unea","ne-a","oane","neau","n-au","uque","ux","onea"]},"86":{"input":[2,3,5,7],"tlp":["du",82602],"trp":["use",37853],"tlw":["dus",2022],"trw":["unde",9415],"lp":["du","dou","dus","duse","eus","du-","esu","du-s"],"rp":["use","und","unde","ud","ndu","uses","unse","ond","u-s","ndo","ndu-","ude"]},"87":{"input":[1,2,3,5,7],"tlw":["doua",9678],"trw":["n-as",944],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",124429],"trp":["ut",118950],"tlw":["tu",6631],"trw":["unt",87],"lp":["tu","bu","gu","bo","tun","bun","totu"],"rp":["ut","ng","unt","ob","ub","ntu","otu","nto","ont","ung","ngu","utu","ug"]},"89":{"input":[1,4,5,7],"tlp":["atu",33704],"trp":["uta",13540],"tlw":["buna",3510],"trw":["nota",476],"lp":["atu","fu","gan","atun","ang","aut","anga","tau","buna","antu","fun","gatu","tua"],"rp":["uta","nga","uf","uat","ntoa","uga","oba"]},"90":{"input":[2,4,5,7],"tlp":["cu",251869],"trp":["uc",41800],"tlw":["cu",107724],"trw":["joc",840],"lp":["cu","con","cut","sunt","scu","cun","tunc","stu","cont","cuno","sub","cons","scut","tus"],"rp":["uc","unc","ocu","onst","ust","nost"]},"91":{"input":[1,2,4,5,7],"tlw":["facut",6146],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ru",139075],"trp":["ur",142738],"tlw":["greu",2486],"trw":["unor",2218],"lp":["ru","tru","ebu","tur","gur","rebu","reu","rob","run","r-u","tr-u","r-un","eru"],"rp":["ur","ntru","ute","ntr-","orb","oru","ngur"]},"93":{"input":[1,3,4,5,7],"tlw":["erau",9639],"trw":["n-ar",2738],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["trecut",2015],"trw":["usor",3025],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["fusese",5088],"trw":["noastra",2596],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["il",100912],"trw":["il",17933],"lp":[],"rp":["il","lo","li","oi","ol","io","olo","ilo","ili","oli","ll","iil","ill","lio","lii","oil","ilio","iol","lli","iilo"]},"97":{"input":[1,6,7],"tlp":["al",157962],"trp":["la",223904],"tlw":["al",17061],"trw":["la",103939],"lp":["al","ala","ali","zil","zo","alal"],"rp":["la","ioa","lal","ial","ila","oz","oia","loa","ozi","oal","ola","lia","iala","ilal"]},"98":{"input":[2,6,7],"tlp":["sol",5524],"trp":["osi",9398],"tlw":["sol",477],"trw":["ok",68],"lp":["sol","sl","sil","sosi","sio","sili"],"rp":["osi","los","olos","iso","ios","losi","ko","ls","lis","osii","ois","kil","kilo","iko"]},"99":{"input":[1,2,6,7],"tlp":["sal",9118],"trp":["las",16180],"tlw":["sala",1335],"trw":["lasa",3143],"lp":["sal","sla","sala","sola","alis","salo","wil","sall","als","sali","will"],"rp":["las","lasa","lasi","isoa","ioas","olas","llas","law","low"]},"100":{"input":[3,6,7],"tlp":["el",182428],"trp":["le",217374],"tlw":["el",30829],"trw":["le",16173],"lp":["el","ele","elo","eli","e-i","eil"],"rp":["le","ile","i-","-i","-l","l-","oie","lie","iile","lel","le-","ole","i-l","i-o"]},"101":{"input":[1,3,6,7],"tlp":["ale",32820],"trp":["i-a",24465],"tlw":["ale",8429],"trw":["i-a",2798],"lp":["ale","a-i","ela","a-l","eal","zile","eala","e-ai","elea","elal","eila","alea","zel","eali"],"rp":["i-a","-ai","lea","l-a","le-a","i-ai"]},"102":{"input":[2,3,6,7],"tlp":["si-",10078],"trp":["-si",12424],"tlw":["doi",4637],"trw":["ideile",361],"lp":["si-","doi","sel","eles","del","sele","delo","si-l","dio","si-i","esel"],"rp":["-si","les","iod","ld","lose","odi","old","lid","i-s"]},"103":{"input":[1,2,3,6,7],"tlw":["sa-i",9425],"trw":["lase",794],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",55302],"trp":["lt",70688],"tlw":["voi",6798],"trw":["lovi",446],"lp":["vo","gi","voi","toti","til","gl","tio"],"rp":["lt","ig","oti","ov","lti","lit","ito","ovi","olit","liti","lov","lig","lv"]},"105":{"input":[1,4,6,7],"tlp":["alt",31331],"trp":["lta",15965],"tlw":["afla",4776],"lp":["alt","fl","tal","fla","afl","afla","alta","voa","alti","val","avo","fol","folo","alat"],"rp":["lta","lat","lalt","iga","lita","lati"]},"106":{"input":[2,4,6,7],"tlp":["col",18912],"trp":["loc",16849],"tlw":["colt",621],"trw":["loc",5973],"lp":["col","cl","sig","cio","colo","cli","voc","cil","soci","soti"],"rp":["loc","icio","lic","osti","oci","ico","ltc","lc","osit","isto"]},"107":{"input":[1,2,4,6,7],"tlw":["acolo",7879],"trw":["lasat",1202],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["tel",33441],"trp":["ori",36339],"tlw":["vor",6208],"trw":["lor",11526],"lp":["tel","tele","vor","ril","rile","rel","tori","rio","elor","rele","evo","egi","erio","evoi"],"rp":["ori","lor","leg","lte","ilor","-ti"]},"109":{"input":[1,3,4,6,7],"tlw":["fel",7250],"trw":["i-ar",1059],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["cel",9164],"trw":["orice",4726],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["astfel",4825],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ul",257995],"trw":["lui",42818],"lp":[],"rp":["ul","lu","ui","lui","iu","nul","ulu","ului","lin","lul","inu","nui","uni","noi","iul","lun","iun","ho","unul","unui"]},"113":{"input":[1,5,6,7],"tlp":["zu",17502],"trp":["uz",18000],"tlw":["ziua",2202],"trw":["lua",3594],"lp":["zu","azu","auz","alu","anul","auzi","ziu","zul","alul"],"rp":["uz","lan","lua","nal","uzi","uia","inua","uza","inal","ula","onal"]},"114":{"input":[2,5,6,7],"tlp":["sul",13027],"trp":["usi",13886],"tlw":["solul",203],"trw":["insusi",1408],"lp":["sul","solu","snui","siu","siun","sulu"],"rp":["usi","insu","jul","onsi","jl","ijl","jlo","ijlo","nsul","isnu","lus","ius","isu","niso"]},"115":{"input":[1,2,5,6,7],"tlw":["salon",359],"trw":["nasul",473],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elu",10235],"trp":["uie",12750],"trw":["nu-i",6710],"lp":["elu","elul","elui","enul"],"rp":["uie","u-i","nu-i","nel","unei","ule","iune","nele","nile","nule","ley","u-l","len","nu-l","inel","unel"]},"117":{"input":[1,3,5,6,7],"tlw":["auzea",594],"trw":["n-ai",1802],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["seldon",899],"trw":["nu-si",1718],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["daneel",945],"trw":["indoiala",1534],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["tul",54201],"trp":["ult",36980],"tlw":["totul",5658],"trw":["lungul",1158],"lp":["tul","bui","bil","tiu","bl","gin","tinu"],"rp":["ult","ing","uti","uit","into","ntul","utin","igu","ingu","uv","otul","itu","ulti"]},"121":{"input":[1,4,5,6,7],"tlw":["vazut",3775],"trw":["langa",4102],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["stiu",5950],"trw":["ochii",6711],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["atunci",10484],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["trebuie",10427],"trw":["intr-o",7901],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["vorba",4095],"trw":["legatura",2214],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["sigur",2888],"trw":["lucru",5287],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["singura",2707],"trw":["niciodata",5038],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",639],"trw":["p",1061],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",93968],"trp":["pa",161658],"tlw":["apa",3245],"trw":["pa",666],"lp":["ap","apa"],"rp":["pa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",103043],"trp":["ps",4877],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["asp",12078],"trp":["pas",8637],"tlw":["apasa",575],"trw":["pas",1350],"lp":["asp","spa","sap","apas","aspa","aps","apsa","sapa"],"rp":["pas","pasa","psa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",52344],"trp":["pe",216440],"trw":["pe",110407],"lp":["ep","epe"],"rp":["pe"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",10151],"trp":["pea",1505],"tlw":["ape",142],"lp":["ape","epa","xp","exp","eap","xpe","expe","eapa","epea","a'","apea"],"rp":["pea","'a","pape"]},"134":{"input":[2,3,8],"tlp":["esp",14229],"trp":["pes",7355],"tlw":["spe",120],"trw":["pese",104],"lp":["esp","desp","spe","dep","eped","espe","d'","sep","depe","eps","edep","deps"],"rp":["pes","ped","pede","pse","pese","pses","'d"]},"135":{"input":[1,2,3,8],"tlp":["depa",6164],"trp":["pad",2363],"tlw":["da'",470],"trw":["pedeapsa",277],"lp":["depa","aspe","epas","d'a","dap","apad","adap","da'","espa","deap","spad","sepa","xped","eaps","dape","apes"],"rp":["pad","pada","pase","psea"]},"136":{"input":[4,8],"trp":["pt",44775],"lp":[],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",16520],"trp":["pat",19529],"tlw":["fapt",2580],"trw":["pat",1592],"lp":["apt","fap","fapt","apta","tap","apat","tapa"],"rp":["pat","pta","ptat","pata"]},"138":{"input":[2,4,8],"tlp":["tsp",179],"trp":["pc",487],"lp":["tsp"],"rp":["pc","pts","ptsp"]},"139":{"input":[1,2,4,8],"tlp":["cap",19242],"trp":["pac",5660],"tlw":["cap",4694],"trw":["pacat",460],"lp":["cap","spat","capa","stap","sapt","scap","apac","apc","capc","apca"],"rp":["pac","past","paca","ptas","pca"]},"140":{"input":[3,4,8],"tlp":["ept",20779],"trp":["pr",175984],"tlw":["trepte",244],"trw":["perete",698],"lp":["ept","rep","rept","tep","tept","repe","rp","epte","rpr","epet","epr"],"rp":["pr","pre","per","pte","pet","pere","petr","pret","pete"]},"141":{"input":[1,3,4,8],"tlp":["apr",12184],"trp":["par",57159],"tlw":["repeta",897],"trw":["prea",8562],"lp":["apr","epta","apar","epar","apte","eapt","rap","reap","xper","xpr"],"rp":["par","part","pra","pare","prea","para","patr","pate","pera","ptea"]},"142":{"input":[2,3,4,8],"tlp":["spr",29330],"trp":["pest",6829],"tlw":["spre",12456],"trw":["peste",6431],"lp":["spr","spre","cep","espr","drep","step","spec","sper","resp","cept","cepe","ccep","spet","ecep"],"rp":["pest","pres","pec","pers","pect","prec"]},"143":{"input":[1,2,3,4,8],"tlw":["departe",3651],"trw":["parca",3176],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",55904],"trw":["m",611],"lp":[],"rp":["mp","mn","mm","pn","nm"]},"145":{"input":[1,5,8],"tlp":["am",164027],"trp":["ma",278091],"tlw":["am",32990],"trw":["ma",23028],"lp":["am","ama","aman","amn","amp","amna","apan"],"rp":["ma","man","pan","mana","pana","mna","pam","pama","mpa","mam","nap","mama","mpan"]},"146":{"input":[2,5,8],"tlp":["sm",3780],"trp":["nsp",2667],"lp":["sm"],"rp":["nsp","ms","nsm","jm"]},"147":{"input":[1,2,5,8],"tlp":["amas",5157],"trp":["mas",15541],"tlw":["sam",974],"trw":["masa",3415],"lp":["amas","sam","sma","sman","wm","wma","wman","ansp","ansm","ajm","ajma","asm","asam"],"rp":["mas","masa","maj","nspa","jma","paj","msw"]},"148":{"input":[3,5,8],"tlp":["em",62631],"trp":["me",133398],"tlw":["emmy",120],"trw":["pen",562],"lp":["em","eme","emn","emen","emp","emne","epen"],"rp":["me","pen","men","mne","mene","mpe","mem","nem","nep","my","mey","meye","meme"]},"149":{"input":[1,3,5,8],"tlp":["ame",19413],"trp":["mea",17220],"tlw":["amy",498],"trw":["mea",8040],"lp":["ame","eam","amen","eama","ema","emna","eamn","emea","eman","amne","xem","exem","xemp"],"rp":["mea","mnea","mane","max","pane","neam","mame"]},"150":{"input":[2,3,5,8],"tlp":["sem",11901],"trp":["med",6644],"tlw":["semn",1590],"trw":["mese",274],"lp":["sem","semn","seme","dem","dm","edem","demn","esem"],"rp":["med","mes","ndep","nsem","mese","mens","md","mped","mej","mejd","ndem","pend"]},"151":{"input":[1,2,3,5,8],"tlw":["seama",5586],"trw":["newman",723],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",1176],"trp":["mb",18560],"lp":["tm"],"rp":["mb","mt","mpt","ntm"]},"153":{"input":[1,4,5,8],"tlp":["tam",11107],"trp":["mat",12972],"tlw":["tam",65],"trw":["pamant",2358],"lp":["tam","tamp","amb","fam","tama","apab","atm","amba"],"rp":["mat","ntam","mba","mant","mata","ptam","pant","mnat","pab","mbat","mta","ptan"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",3183],"trp":["mc",201],"lp":["cm"],"rp":["mc","mcn"]},"155":{"input":[1,2,4,5,8],"tlw":["cam",2462],"trw":["manca",317],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",42362],"trp":["pent",38307],"tlw":["tem",615],"trw":["merry",352],"lp":["rm","rem","tem","erm","reme","rme","term","trem"],"rp":["pent","mer","ment","mbr","mpr","mpre","met","mte","mbe","mere","ntem","perm"]},"157":{"input":[1,3,4,5,8],"tlw":["eram",2315],"trw":["mare",9405],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["cemp",522],"trw":["mers",716],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["camera",2871],"trw":["macar",2850],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",47365],"trw":["pi",147],"lp":[],"rp":["pi","ip","pii","ipi","pip","piii","ipp","ppi","pipp","ippi","ipii"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",2966],"trp":["ipa",7902],"trw":["pai",991],"lp":["api","zap","zapa","aip"],"rp":["ipa","pia","pai","paz","paza","pipa","paia","ipai"]},"162":{"input":[2,6,8],"tlp":["spi",4099],"trp":["isp",6275],"lp":["spi","sip","sipi"],"rp":["isp","ips","psi","ipsi","pis","isip","pisi"]},"163":{"input":[1,2,6,8],"tlp":["spai",782],"trp":["ispa",2264],"trw":["pasi",1282],"lp":["spai","wisp","aisp"],"rp":["ispa","pasi","ipsa","pais","pias"]},"164":{"input":[3,6,8],"tlp":["epi",929],"trp":["pie",11267],"lp":["epi"],"rp":["pie","ipe","iep","piep","pipe","pei","ipei"]},"165":{"input":[1,3,6,8],"tlp":["epez",640],"trp":["pez",756],"tlw":["apei",412],"trw":["paie",113],"lp":["epez","apei"],"rp":["pez","pezi","paie","piez"]},"166":{"input":[2,3,6,8],"tlp":["disp",4472],"trp":["pid",1040],"trw":["piese",120],"lp":["disp","espi","depi","epis","eisp","dip","edip","epsi"],"rp":["pid","pied","ipse","ispe","pedi","pies","peis","pide","psei"]},"167":{"input":[1,2,3,6,8],"tlw":["zapada",443],"trw":["piesa",219],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",2064],"trp":["pit",3627],"tlw":["tip",589],"lp":["tip","tipi"],"rp":["pit","pti","ptii","ipit","piti","ipt","piv","ptit"]},"169":{"input":[1,4,6,8],"tlp":["apit",1785],"trp":["piat",2890],"tlw":["tipa",384],"trw":["piata",623],"lp":["apit","tipa","fip","fipt","tapi"],"rp":["piat","pita","pati","pav","ptia","ipat","pavi","ptz"]},"170":{"input":[2,4,6,8],"tlp":["cip",1891],"trp":["pic",7270],"tlw":["tipic",72],"trw":["pic",662],"lp":["cip","spit","cipi","cisp","scip","spic"],"rp":["pic","pici","psit","pist","pci","pisc","icip","pict","ipic"]},"171":{"input":[1,2,4,6,8],"tlw":["twisp",358],"trw":["pisica",266],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",1804],"trp":["pri",68428],"trw":["privi",2867],"lp":["rip","rpri","epti","ripi","tipe"],"rp":["pri","priv","peri","pier","prie","pir","iept","piri","iper","prii","prit","piet","ptie","prir","peti"]},"173":{"input":[1,3,4,6,8],"tlw":["aparitia",471],"trw":["privirea",2009],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["spirit",395],"trw":["priveste",1176],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["expresie",605],"trw":["paris",654],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",133805],"trw":["imi",6836],"lp":[],"rp":["mi","im","min","imp","imi","nim","nimi","pin","him","hip","mii","mni","inim","mpi","imin","mini","impi","mpin","imii","hm"]},"177":{"input":[1,5,6,8],"tlp":["ami",12341],"trp":["mai",98477],"tlw":["amiaza",160],"trw":["mai",80029],"lp":["ami","amin","zam","anim","aim","aima"],"rp":["mai","ima","mina","main","nima","pina","mani","inap","pani","iam","impa","mia","miaz","hipa"]},"178":{"input":[2,5,6,8],"tlp":["sim",14730],"trp":["mis",9725],"tlw":["sim",169],"trw":["nisip",353],"lp":["sim","simp","smi","spin","smin","smis"],"rp":["mis","mij","imis","insp","mnis","psih","misi","pins","ism","nsmi","jim","nism","nspi","mik"]},"179":{"input":[1,2,5,6,8],"tlw":["spaima",491],"trw":["masina",2136],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emei",6102],"trp":["ime",17305],"trw":["mine",8864],"lp":["emei","emi","enim","emni","epin"],"rp":["ime","meni","mine","mei","imen","nime","mie","meie","impe","hem","mpie","hme","nemi","mnei","hmey"]},"181":{"input":[1,3,5,6,8],"tlw":["examina",267],"trw":["maine",960],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["depinde",317],"trw":["mesei",432],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["asemeni",170],"trw":["inseamna",2064],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",26063],"trp":["mit",11574],"tlw":["timp",11216],"trw":["mintii",377],"lp":["tim","timp","timi","bim"],"rp":["mit","mint","imt","imb","mti","imti","himb","imit","ntim","mbi","mv","mtit","imbi","miti","mbin","mnit"]},"185":{"input":[1,4,5,6,8],"tlw":["zambi",959],"trw":["pamint",327],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["simti",2661],"trw":["nimic",9112],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["stiam",937],"trw":["mica",2010],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["vreme",4271],"trw":["prin",13288],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["femeie",2003],"trw":["prima",3179],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["trimis",946],"trw":["incepe",1001],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["dimineata",2070],"trw":["imediat",2866],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",78466],"trw":["po",250],"lp":[],"rp":["po","op","opo","pop","popo","ppo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",15763],"trp":["poa",16012],"lp":["apo","apoa"],"rp":["poa","oap","opa","oapa","opoa"]},"194":{"input":[2,7,8],"tlp":["spo",1393],"trp":["pos",4845],"lp":["spo","sop"],"rp":["pos","osp","ppos","poso"]},"195":{"input":[1,2,7,8],"tlp":["apos",506],"trp":["oasp",820],"lp":["apos","soap"],"rp":["oasp","pow"]},"196":{"input":[3,7,8],"tlp":["eop",544],"trp":["ope",5829],"trw":["pe-o",124],"lp":["eop","epo","eopo"],"rp":["ope","pe-","poe","o'","pe-o","oep","-p","-po"]},"197":{"input":[1,3,7,8],"tlp":["eopa",329],"trp":["oape",5724],"lp":["eopa","eoap"],"rp":["oape","pa-","pa-a","pe-a","-ap","-apo"]},"198":{"input":[2,3,7,8],"tlp":["deop",448],"trp":["pod",1174],"trw":["pod",151],"lp":["deop","espo","depo"],"rp":["pod","pode","oped","o'd","'do","o'do","pose","podo","ospe"]},"199":{"input":[1,2,3,7,8],"trw":["podea",484],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",280],"trp":["pot",14753],"trw":["pot",6200],"lp":["top","topo"],"rp":["pot","opt","pto","poto","opot"]},"201":{"input":[1,4,7,8],"trp":["poat",13885],"trw":["poata",1395],"lp":[],"rp":["poat","oapt","pof","pag","poft","opat","opag","paga"]},"202":{"input":[2,4,7,8],"tlp":["cop",12351],"trp":["post",1578],"tlw":["scop",481],"trw":["post",334],"lp":["cop","scop","sopt","stop"],"rp":["post","poc","opts"]},"203":{"input":[1,2,4,7,8],"tlw":["soapta",372],"trw":["ostap",497],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",9845],"trp":["pro",33227],"trw":["pro",584],"lp":["rop","ropr","torp","ropo"],"rp":["pro","por","prop","port","opr","oper","potr","orp","preg","opor","prot","preo","opre","pote","prog","poet"]},"205":{"input":[1,3,4,7,8],"tlw":["aproape",5419],"trw":["poate",12490],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["corp",515],"trw":["prost",652],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["castorp",852],"trw":["profesor",467],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["pu",141518],"trw":["om",4434],"lp":[],"rp":["pu","um","mu","om","up","mo","pun","num","omn","mun","mnu","umn","omnu","mpo","mpu","mom","omu","upu","omp","umu"]},"209":{"input":[1,5,7,8],"tlp":["apu",6837],"trp":["upa",22884],"trw":["puna",1094],"lp":["apu","anum","amu"],"rp":["upa","uma","oam","numa","moa","oma","oamn","noap","puna","oman","manu","napo","uman","umoa","ompa","mau","umpa"]},"210":{"input":[2,5,7,8],"tlp":["spu",46684],"trp":["pus",30635],"tlw":["spus",7687],"trw":["pus",1846],"lp":["spu","spun","spus","sup","supu","smu","sum","som","somn"],"rp":["pus","puns","mos","jum","mus","umos","mons","usm","opus","mpos","upus"]},"211":{"input":[1,2,5,7,8],"tlw":["spuna",1588],"trw":["pusa",270],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["epu",10511],"trp":["ume",17000],"trw":["meu",6128],"lp":["epu","emu","emo","e-m"],"rp":["ume","pune","-m","m-","ome","omen","umne","nume","meu","mome","u-m","nu-m","upe","umen","unem","pome"]},"213":{"input":[1,3,5,7,8],"tlw":["anume",1489],"trw":["m-am",5385],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["spuse",11543],"trw":["mod",2741],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["dupa",19290],"trw":["m-as",588],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["gm",4573],"trp":["put",44011],"tlw":["tom",831],"trw":["putut",3710],"lp":["gm","gmu","gmun","tum","tom","gom","gomo"],"rp":["put","ptu","putu","mot","upt","mpot","umb","pub","munt","omot","nopt","mut","omb"]},"217":{"input":[1,4,5,7,8],"tlw":["fum",415],"trw":["muta",298],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["cum",21263],"trw":["punct",1203],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["acum",14119],"trw":["munca",1233],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["grup",794],"trw":["pentru",38307],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",2036],"trw":["putea",12961],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["drum",2045],"trw":["precum",1277],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["asupra",4961],"trw":["jumatate",2548],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",51269],"trw":["lipi",125],"lp":[],"rp":["pl","poi","pli","opi","lip","pil","pol","poli","opii","opil","plo","ipl","lipi","lop","piil","ilip","ipo","lp","opol","ipil"]},"225":{"input":[1,6,7,8],"tlp":["apoi",14490],"trp":["pla",21202],"tlw":["apoi",11964],"trw":["ploaia",308],"lp":["apoi","apl","alp","apli","alpi","aipo"],"rp":["pla","lipa","pal","poz","pozi","opia","pala","ipal","pali","ploa","pila","lap","poal","ploz"]},"226":{"input":[2,6,7,8],"tlp":["spl",128],"trp":["posi",2885],"trw":["lipsi",96],"lp":["spl","spio"],"rp":["posi","lips","ispo","oisp","ipos"]},"227":{"input":[1,2,6,7,8],"tlw":["spala",165],"trw":["lipsa",702],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["epl",2223],"trp":["ple",12048],"trw":["piele",586],"lp":["epl","epli","elep"],"rp":["ple","opie","pel","piel","iple","lep","lipe","pele","lope","pile","pelo","ipel","pleo","ople","lpe","opei","i-p"]},"229":{"input":[1,3,6,7,8],"tlw":["apele",237],"trw":["pielea",663],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spele",82],"trw":["leopold",96],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["deplasa",142],"trw":["pilda",452],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["topi",144],"trp":["poti",3337],"tlw":["topi",76],"trw":["poti",3337],"lp":["topi","gip","gipt"],"rp":["poti","pov","opti","plit","pito","ptil","ipot","opit","poit"]},"233":{"input":[1,4,6,7,8],"tlw":["filip",379],"trw":["pozitia",504],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["copii",1305],"trw":["lipsit",548],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["clipa",4697],"trw":["politica",737],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["opri",1970],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["apropie",1375],"trw":["propria",852],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["clipe",748],"trw":["plece",755],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["spatele",2337],"trw":["picioare",2645],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mul",40796],"trw":["omul",2345],"lp":[],"rp":["mul","pul","mpl","lum","umi","mnul","lumi","impo","mil","umin","plu","impu","impl","plin","mpul","lim","mili","imu","mplu","imul"],"special":"enter"},"241":{"input":[1,5,6,7,8],"trw":["numai",8412],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simplu",2223],"trw":["plus",1041],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["simpla",704],"trw":["psihanaliza",445],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["mele",3338],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["exemplu",767],"trw":["oameni",4178],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["domnule",3620],"trw":["limpede",719],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["sa-mi",4566],"trw":["mesajul",279],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["timpul",4000],"trw":["mult",13114],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["faptul",2300],"trw":["multa",2401],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["chipul",1320],"trw":["mijlocul",1212],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["capul",3813],"trw":["placut",782],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["trupul",1201],"trw":["multe",4923],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["ti-am",981],"trw":["probabil",2719],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["sigmund",4378],"trw":["inceput",3590],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["dumneavoastra",3116],"trw":["pardaillan",1106],"lp":[],"rp":[]}} \ No newline at end of file
diff --git a/keyboards/gboards/dicts/aset/_generator/src/sv-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/sv-keymap.json
new file mode 100644
index 0000000000..7f37672f41
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/_generator/src/sv-keymap.json
@@ -0,0 +1 @@
+{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",697],"tlw":["a",9529],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",67011],"tlw":["s",3622],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",278948],"tlw":["sa",80180],"lp":["sa","as","ssa","ass","wa","assa","asa","was","sas","aw","ww","awa","sw","www","ws","swa","swas","wass","sass","saa"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",6371],"tlw":["e",4153],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ex",11230],"tlw":["ae",267],"lp":["ex","ea","ax","ae","xe","xa","exe","exa","axe","axa"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",849873],"tlw":["de",70970],"lp":["de","ed","se","es","des","dd","ess","sed","dde","ds","sse","dess","ede","edd","esse","edde","ese","see","eds","ses"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",298347],"tlw":["da",17349],"lp":["ad","ade","da","eda","sad","ada","seda","sade","ades","add","sada","dda","dad","we","essa","dade","ase","sex","ew","esa"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",430036],"tlw":["t",873],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",420129],"tlw":["att",208516],"lp":["at","ta","att","fa","ft","tta","atta","af","ff","ata","tat","fat","fatt","aff","ffa","affa","aft","tf","fta","tfa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",283811],"tlw":["c",718],"lp":["st","ts","sst","sc","ct","cc","tst","tc","tts","cts","cs","sts","tss","css","stst","stt"],"rp":[]},"11":{"input":[1,2,4],"tlp":["sta",95542],"tlw":["satt",11381],"lp":["sta","ast","sat","ac","satt","tsa","asta","ats","ca","tsat","tac","fas","fast","stat","tas","ssta","stas","tast","sats","stac"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["et",462362],"tlw":["ett",56585],"lp":["et","er","te","re","ter","rt","tr","ett","tte","rr","tre","ete","ret","tet","rre","tter","ert","eter","ere","ttr"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",760793],"tlw":["ar",85841],"lp":["ar","ra","fr","ara","fra","are","era","ef","rat","fte","art","fter","tar","eft","efte","far","tra","ratt","fe","atte"],"rp":[]},"14":{"input":[2,3,4],"tlp":["det",223222],"tlw":["det",200915],"lp":["det","rs","dr","rd","der","ste","rde","rst","ers","est","res","red","str","ser","ec","ce","set","ster","rts","ters"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["dar",44203],"tlw":["dar",26310],"lp":["dar","rad","dra","tad","tade","rade","aste","rsta","ars","ttad","ras","erad","ard","star","sar","esta","reda","dare","stra","dera"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",152794],"trw":["n",1184],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",778026],"trp":["na",315512],"tlw":["an",15455],"trw":["nan",1595],"lp":["an","ann","anna","ana","anan","aan","aana","aq"],"rp":["na","nna","nan","nnan","nq","nana"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sj",21534],"trp":["ns",134271],"trw":["j",959],"lp":["sj","sn","ssn","sjn"],"rp":["ns","nns","nss","nj","jn","js"]},"19":{"input":[1,2,5],"tlp":["ans",66128],"trp":["ja",200724],"tlw":["san",954],"trw":["ja",6931],"lp":["ans","san","sja","sna","anns","sann","ssna","ansa","anss","aj","ssan"],"rp":["ja","nas","nsa","jan","nnas","jans","jana","nja","nans"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",686772],"trp":["ne",122568],"tlw":["en",141247],"trw":["ny",2216],"lp":["en","enn","enne","ene","een","ey","enen","enny"],"rp":["ne","nne","nen","ny","yn","nnen","ye","yne","nny","ynn","ynen","ynne"]},"21":{"input":[1,3,5],"tlp":["ena",17736],"trp":["ya",3990],"tlw":["ena",2504],"trw":["nya",3694],"lp":["ena","anne","ane","enna","ay","aen","any","anen","xan","exan","ean","xen","xn","xna","enq"],"rp":["ya","nya","yx","yea","nea"]},"22":{"input":[2,3,5],"tlp":["den",113774],"trp":["nd",217577],"tlw":["den",78914],"trw":["nej",5908],"lp":["den","sen","ens","ej","end","sy","dn","ende","dj"],"rp":["nd","nde","je","ys","nes","nnes","yd","nden","nej","jd","nse"]},"23":{"input":[1,2,3,5],"tlp":["and",132309],"trp":["nda",24974],"tlw":["sedan",13315],"trw":["new",1697],"lp":["and","ande","dan","edan","anda","sena","adan","enda","aden","anad","ensa","enas","aend","anse"],"rp":["nda","nad","nade","jad","jade","ndan"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",13062],"trp":["nt",180386],"tlw":["b",734],"lp":["bb","tn","ttn","bt","bbt","tb"],"rp":["nt","nb","ntn","ntb"]},"25":{"input":[1,4,5],"tlp":["ba",80692],"trp":["nat",22606],"tlw":["annat",5472],"trw":["nat",1860],"lp":["ba","tan","ant","fan","anta","fann","ab","ban","abb","anf","bat","bba","tna"],"rp":["nat","nta","nf","nnat","nab","nabb","natt"]},"26":{"input":[2,4,5],"tlp":["tj",8505],"trp":["nst",17861],"tlw":["bbc",225],"lp":["tj","bj","bs","stn","sb","sjt","stj","sjtj","tsn","ttj","bc","bbc","stb"],"rp":["nst","nc","jt","nts","jtj","nsc","nstn"]},"27":{"input":[1,2,4,5],"tlp":["stan",20169],"trp":["nast",10284],"tlw":["fanns",8575],"trw":["nastan",4851],"lp":["stan","bas","snab","anst","sant","bast","tja","tans","stna","tjan","bac","can","abs","snac"],"rp":["nast","nsta","jat","nac","jac","ntas"]},"28":{"input":[3,4,5],"tlp":["be",75593],"trp":["nte",109829],"tlw":["be",2398],"trw":["ner",9674],"lp":["be","rn","ten","br","ty","ent","ren","ry","ern","ber","bet","rb"],"rp":["nte","ner","yt","ytt","yr","nner","ntr","net"]},"29":{"input":[1,3,4,5],"tlp":["ran",60950],"trp":["nar",65863],"tlw":["fran",27093],"trw":["nar",38189],"lp":["ran","rna","bar","fran","arn","bara","arna","erna","bra","aran","aren","enar","barn","bera","arb","fy","arbe","beta"],"rp":["nar","nare"]},"30":{"input":[2,3,4,5],"tlp":["rj",17958],"trp":["yc",35067],"tlw":["tyst",1977],"lp":["rj","bes","tyc","sten","tys","tyd","dern","ryc","tryc","best","tyst","rden","rje","cen"],"rp":["yc","nder","ndr","yst","ndet","jer"]},"31":{"input":[1,2,3,4,5],"tlw":["andra",13622],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1872],"trw":["i",182908],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",2800],"trp":["ia",13569],"tlw":["ai",142],"trw":["ia",109],"lp":["ai","za","zi","az","zia","azi","zz","zzi","zza"],"rp":["ia","iz","iza","izz","izza","izi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["sk",180550],"trp":["is",102522],"trw":["is",3657],"lp":["sk","si","ski","sik","sis","ssi","sisk","ssis"],"rp":["is","ik","isk","ks","ki","iss","iks","kis","isi","iki","kisk","kss"]},"35":{"input":[1,2,6],"tlp":["ak",74294],"trp":["ka",235111],"tlw":["ska",12542],"trw":["kaka",73],"lp":["ak","ska","sak","aka","wi","ask","skak","asi","aska","aks","aki"],"rp":["ka","ika","ksa","iska","isa","kas","issa","kak","kaka"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",3018],"trp":["ie",21160],"tlw":["ei",236],"trw":["ie",545],"lp":["ei","eii","eiie"],"rp":["ie","iie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["xi",1347],"trp":["ix",677],"tlw":["xii",198],"trw":["iae",103],"lp":["xi","ez","axi","exi","ezi","ezia","eiz","ze","xii","eza","aie","zie","zzie","eizi"],"rp":["ix","ixa","iae"]},"38":{"input":[2,3,6],"tlp":["di",49953],"trp":["ke",99121],"tlw":["skedde",390],"trw":["ide",614],"lp":["di","ek","ske","sid","dis","disk","sek","edi","esk","dsk","die"],"rp":["ke","id","ide","idi","ike","ise","idd","isse","iske"]},"39":{"input":[1,2,3,6],"tlp":["ake",15029],"trp":["kad",24793],"tlw":["sida",1628],"trw":["kikade",168],"lp":["ake","sake","sida","eka","skad","adi","akad","ekad","dska","xak","exak"],"rp":["kad","kade","ida","isad","idda","kada","kae","ikae","ikad"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",221703],"trp":["it",120245],"tlw":["vi",40006],"trw":["it",2563],"lp":["ti","vi","tv","vit","tit","titt","tvi","vt","tiv","tti","vitt","tivt","viv"],"rp":["it","itt","iv","ivi","iti","ivit","ivt"]},"41":{"input":[1,4,6],"tlp":["va",353292],"trp":["itta",13428],"tlw":["av",76117],"trw":["if",757],"lp":["va","av","fi","ati","tva","vat","vatt","ava","avi","tav","ativ","vita","via","tia","tati"],"rp":["itta","if","iva","ita","ift"]},"42":{"input":[2,4,6],"tlp":["ck",135164],"trp":["kt",95132],"tlw":["sitt",8546],"trw":["its",666],"lp":["ck","sv","vis","sit","cks","ci","sti","sitt","viss","tis","ckt","tisk"],"rp":["kt","ic","ick","kv","ikt","kti","ist","isst"]},"43":{"input":[1,2,4,6],"tlp":["cka",27505],"trp":["kva",11609],"tlw":["fick",13643],"lp":["cka","sva","akt","ack","fic","fick","cksa","akti","tack","visa","acka","avs","tak","akta","fak"],"rp":["kva","icka","kta","kat","ista"]},"44":{"input":[3,4,6],"tlp":["ri",112888],"trp":["ite",18519],"tlw":["vet",9572],"trw":["iver",119],"lp":["ri","ve","ver","ev","vet","rit","eri","rv","riv","rti","rev","eve","erv","vr","rie","tri"],"rp":["ite","ir","ive","ivet"]},"45":{"input":[1,3,4,6],"tlp":["var",212597],"trp":["ifr",5093],"tlw":["var",117709],"lp":["var","vara","ari","vari","ave","arit","vart","rva","varf","vare","arti","rav","ria","veta","fri","eva","rati","riva"],"rp":["ifr","ifra"]},"46":{"input":[2,3,4,6],"tlp":["rk",39613],"trp":["kr",38960],"tlw":["vid",15758],"lp":["rk","tid","cke","vid","rik","cket","skr","erk","dri","verk","sve","ckte","tidi","ris","ekt"],"rp":["kr","kte","ker","ket","kri"]},"47":{"input":[1,2,3,4,6],"tlw":["vad",23975],"trw":["kvar",4233],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",374950],"trw":["in",24928],"lp":[],"rp":["in","ni","inn","nin","hi","nni","ih","nh","hin","ini","nnin","hn","hinn","hnn","inni","ninn","inh","nih","ihi","nihi"]},"49":{"input":[1,5,6],"tlp":["anni",10319],"trp":["ha",405073],"tlw":["ah",652],"trw":["han",135757],"lp":["anni","ani","anin","ah","anh","ain","aha","anha"],"rp":["ha","han","ina","inna","hann","ian","nha","iha","nhan","nina","naz","nazi"]},"50":{"input":[2,5,6],"tlp":["sin",33457],"trp":["nk",33920],"tlw":["sin",19809],"trw":["his",717],"lp":["sin","sh"],"rp":["nk","nsk","kn","ins","nis","nsi","inns","hj","nisk","nnis","his","nsik","nik","kni","kh","kin","nnik","kj"]},"51":{"input":[1,2,5,6],"tlp":["ank",24052],"trp":["kan",66516],"tlw":["sina",10070],"trw":["hans",21333],"lp":["ank","ansk","sina","anka","ansi","zj","akn","akna","wh","skan"],"rp":["kan","hans","kans","nska","kna","kann","nka","hja","has","nika"]},"52":{"input":[3,5,6],"tlp":["eh",10650],"trp":["he",119485],"tlw":["eh",118],"trw":["henne",15609],"lp":["eh","enh","enhe","eni","enin","enni"],"rp":["he","hen","henn","inne","ien","nhe","ine","hy","nie","hey","neh","nneh","hei","nnie"]},"53":{"input":[1,3,5,6],"tlp":["eha",2865],"trp":["neha",654],"tlw":["annie",246],"lp":["eha","anie","ehan","anhe","enha","xin","axin","eani"],"rp":["neha","hea","hay","iane","hae","ynha","hane"]},"54":{"input":[2,3,5,6],"tlp":["dni",7195],"trp":["ken",21208],"tlw":["din",3500],"trw":["hennes",10942],"lp":["dni","dnin","ensk","din","sky","enk","edni","enke"],"rp":["ken","nske","nke","ind","iden","ky","ysk","ndi","isen","yk","iken","inde"]},"55":{"input":[1,2,3,5,6],"tlw":["sidan",3037],"trw":["hade",75973],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["th",42119],"trp":["int",110738],"tlw":["bit",873],"trw":["hit",1552],"lp":["th","bi","vin","tin","vinn","tni","tnin","thi","vb","ttni"],"rp":["int","nti","hit","ntin","nv","hitt","ib","nit","ith","nnit"]},"57":{"input":[1,4,5,6],"tlp":["van",36400],"trp":["hat",6563],"tlw":["that",4254],"trw":["haft",3590],"lp":["van","fin","finn","vant","tha","that","vann","anv","anva","vana","vani"],"rp":["hat","nva","haf","haft","inf","nvan","hav","hant","nati"]},"58":{"input":[2,4,5,6],"tlp":["ch",278681],"trp":["nkt",10498],"tlw":["this",1111],"trw":["nick",290],"lp":["ch","vj","ckh","sch","stin","ckn","this","svin","tch"],"rp":["nkt","kvin","inst","nic","nick","hist","nsv","nist","nsti","ich","nsiv"]},"59":{"input":[1,2,4,5,6],"tlw":["finns",6035],"trw":["kvinna",2323],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["the",26354],"trp":["inte",103570],"tlw":["the",18662],"trw":["inte",98723],"lp":["the","rin","ven","beh","rh","enti","bri","ther","erh","rhe","rhet","erin"],"rp":["inte","het","hete","her","intr","iten","nhet","hr"]},"61":{"input":[1,3,4,5,6],"tlw":["aven",6437],"trw":["har",67488],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["tiden",4874],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["tankte",6155],"trw":["kanner",3200],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",2318],"trw":["o",784],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",454],"trp":["oa",4643],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",206463],"trp":["os",36642],"tlw":["so",864],"trw":["oss",8697],"lp":["so","sso","soo"],"rp":["os","oss","oso","osso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",2187],"trp":["ow",2946],"tlw":["wow",58],"lp":["wo","aso","asso","saso","aos","woo","wow","sao"],"rp":["ow","osa","ossa","ows","owa"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",2376],"trp":["oe",2841],"trw":["-",1201],"lp":["eo"],"rp":["oe","-o","-e"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",397],"trp":["ox",399],"lp":["xo","a-"],"rp":["ox","-a","oxe"]},"70":{"input":[2,3,7],"tlp":["do",35235],"trp":["od",40189],"tlw":["dod",2129],"trw":["ode",316],"lp":["do","dod","eso","edo","sod","sode","esso","dode","doe","does","dsso","dods"],"rp":["od","ode","odd","odde","ose","ods","ood","oes"]},"71":{"input":[1,2,3,7],"tlp":["doda",2068],"trp":["oda",5346],"tlw":["doda",1277],"lp":["doda","ado","sado","dow","easo","dosa","wood"],"rp":["oda","oad","odad","owe","oade","odda"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",90775],"trp":["ot",87066],"tlw":["tog",9006],"trw":["otto",257],"lp":["to","go","gt","got","gg","tog","gott","tto","tot","tg","tott"],"rp":["ot","og","ott","ogo","oto","ogt","otto","otog","ogg"]},"73":{"input":[1,4,7],"tlp":["ag",317285],"trp":["of",22543],"tlw":["ga",7744],"trw":["of",10904],"lp":["ag","fo","ga","ago","aga","agot","tag","gat","agg","agt","gga","gatt","fot","agga"],"rp":["of","oft","off","ota","ofta","oga"]},"74":{"input":[2,4,7],"tlp":["sto",40954],"trp":["oc",289376],"tlw":["sot",305],"trw":["ost",163],"lp":["sto","gs","co","gst","toc","stoc","soc","stot","sog","sot","sogo","togs","gts"],"rp":["oc","ost","ots","ogs","ogst","otst","osc"]},"75":{"input":[1,2,4,7],"tlp":["sag",35425],"trp":["osta",1492],"tlw":["sag",13608],"trw":["oftast",553],"lp":["sag","saga","ags","sagt","gas","gast","gsa","sof","aco","soff","asto","sags","gsta","stag","ggas","agas","two"],"rp":["osta","otsa","osca"]},"76":{"input":[3,4,7],"tlp":["ge",165737],"trp":["or",421801],"tlw":["gor",5705],"trw":["or",1673],"lp":["ge","ro","gr","ger","tor","eg","tro","gor","rg","get","ror","ege","gre","rot"],"rp":["or","ort","ore","orr","org","orre"]},"77":{"input":[1,3,4,7],"tlp":["for",206825],"trp":["ora",29125],"tlw":["for",86020],"lp":["for","gar","age","gra","rag","fort","frag","agr","raga","agra","gora","ager","rfo","rfor","fore","arfo","gare","agar","tora"],"rp":["ora"]},"78":{"input":[2,3,4,7],"tlp":["rso",20201],"trp":["ors",42598],"tlw":["stod",7497],"trw":["ord",2401],"lp":["rso","stor","erso","tod","stod","gd","dor","rod","gde","ros","dro","dorr","rost","sor"],"rp":["ors","ord","orde","orst","orso","orts"]},"79":{"input":[1,2,3,4,7],"tlw":["sager",8656],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",215270],"trw":["nu",20433],"lp":[],"rp":["on","un","no","nu","ono","unn","ou","nno","nnu","onn","non","oun","oon","onnu","nou"]},"81":{"input":[1,5,7],"tlp":["au",4722],"trp":["unna",7691],"tlw":["annu",3706],"lp":["au","annu","anno","ano","qu","anu","anua","anon","aou"],"rp":["unna","ua","ona","oan","nua","onna","una","oona","nqu","oann","uan"]},"82":{"input":[2,5,7],"tlp":["son",18325],"trp":["ju",46060],"tlw":["son",1353],"trw":["ju",10993],"lp":["son","su","sson","sju","ssu","sjo","sjon","sjun"],"rp":["ju","jo","us","oj","ons","jus","jon","nsso","uss","jun","jou","noj"]},"83":{"input":[1,2,5,7],"tlp":["aus",996],"trp":["usa",2823],"tlw":["sonja",276],"trw":["usa",1340],"lp":["aus","sona","wou","susa","ajo","ason"],"rp":["usa","oja","now","joa","own","janu","usan","onsa","onja","jua","jusa","ojan","nown","joan"]},"84":{"input":[3,5,7],"tlp":["eno",11644],"trp":["one",21213],"tlw":["eu",207],"trw":["you",1411],"lp":["eno","eu","eun","enou","enu"],"rp":["one","onen","yo","ue","you","unne","oen","une","n-","ony","oy","neu","y-","yon","nony"]},"85":{"input":[1,3,5,7],"tlp":["xu",643],"trp":["ux",939],"tlw":["anyone",56],"lp":["xu","exu","xue","exue","enqu","que","xua","exua","ann-","anyo"],"rp":["ux","uxn","uxna","yxo","uxe","uxen","na-","nna-","oxen","oya"]},"86":{"input":[2,3,5,7],"tlp":["du",45128],"trp":["und",57348],"tlw":["du",40597],"trw":["nojd",538],"lp":["du","essu","sone","dju","esu","don"],"rp":["und","unde","ud","use","ude","jud","ond","ojd","ojde","ndo","jude","nod","usen","oend"]},"87":{"input":[1,2,3,5,7],"tlw":["down",202],"trw":["undan",1747],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",46434],"trp":["ng",167442],"tlw":["but",1259],"trw":["ut",23705],"lp":["bo","gon","tu","gn","ton","tun","gu","bu"],"rp":["ng","ut","ob","ung","ont","ug","ogon","ngt","unt","obb","uto","nog"]},"89":{"input":[1,4,5,7],"tlp":["ang",59439],"trp":["nag",48054],"tlw":["gang",6284],"trw":["nagot",17486],"lp":["ang","gan","agon","gang","anga","fu","gna","fon","angt","anfo","fun","atu"],"rp":["nag","nago","nga","uta","utan","nfo","natu","uf"]},"90":{"input":[2,4,5,7],"tlp":["gj",14385],"trp":["ust",11850],"tlw":["tjugo",984],"trw":["just",6345],"lp":["gj","gjo","stu","sut","stun","ssut","suto","gons","ston","bjo"],"rp":["ust","job","onst","just","ngs","jobb","uc","uts","jut","jug"]},"91":{"input":[1,2,4,5,7],"tlw":["sang",726],"trw":["jag",133333],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",96318],"trp":["nge",54194],"tlw":["bort",5520],"trw":["ur",6494],"lp":["gen","ru","bor","geno","run","bort","bro","egen","gent","tur"],"rp":["nge","ur","ngen","yg","ngr","ute","nor","orn","nger","unge"]},"93":{"input":[1,3,4,5,7],"tlw":["gangen",3207],"trw":["nagra",10760],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["gjorde",8777],"trw":["under",14292],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["borjade",6021],"trw":["undrade",1668],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ll",353262],"trw":["ol",691],"lp":[],"rp":["ll","li","il","ill","ol","lo","io","oli","oll","lli","ili","lil","lill","olo","illi","ilo","llo","oi","lio","ool"]},"97":{"input":[1,6,7],"tlp":["al",238639],"trp":["la",255368],"tlw":["alla",16475],"trw":["lilla",2283],"lp":["al","all","alla","ala","ali","alli","zl","zla","zo"],"rp":["la","lla","illa","ola","ial","lia","ila","olla","ilia","oal","oz"]},"98":{"input":[2,6,7],"tlp":["sl",40951],"trp":["ko",98099],"tlw":["sol",152],"trw":["loss",451],"lp":["sl","sok","sko","slo","skil","sli"],"rp":["ko","kl","ls","ok","lk","lik","kli","lls","lis","kil","ilk","olis","ills","kol"]},"99":{"input":[1,2,6,7],"tlp":["sla",15876],"trp":["kla",20340],"tlw":["alls",1882],"trw":["lika",4448],"lp":["sla","als","sal","ako","skal","alls","soka","alsk","wal"],"rp":["kla","las","kal","kall","lika","oka","lsa","lska","llsa","lak","lka"]},"100":{"input":[3,6,7],"tlp":["el",123518],"trp":["le",182809],"tlw":["el",140],"trw":["le",410],"lp":["el","ell","elle","ele","eli","elo","elie"],"rp":["le","lle","ille","ile","olle","ole","lie","iel","lee","iell","lei","ilie","leo"]},"101":{"input":[1,3,6,7],"tlp":["ela",19365],"trp":["lex",1360],"tlw":["alex",558],"trw":["ozzie",67],"lp":["ela","alle","ale","ella","alex","ael","xl","axl","xla","axla","alie","xel","axel","eal","zoe","elal"],"rp":["lex","lexa","lea","oale"]},"102":{"input":[2,3,6,7],"tlp":["del",18169],"trp":["ld",45006],"tlw":["del",4570],"trw":["ledde",906],"lp":["del","els","dl","else","dli","dele"],"rp":["ld","lde","lld","led","lse","llde","lke","oke","ild","ilke","les","kel","lise","lek"]},"103":{"input":[1,2,3,6,7],"tlw":["alldeles",2595],"trw":["lade",1957],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["til",104652],"trp":["ig",244414],"tlw":["till",78901],"trw":["liv",4044],"lp":["til","till","gi","vil","vill","tio","tig","gl","tl"],"rp":["ig","lig","lt","ov","igt","llt","ligt","lv","lit","liv","log"]},"105":{"input":[1,4,6,7],"tlp":["tal",36626],"trp":["lat",26260],"tlw":["allt",11228],"trw":["lag",5318],"lp":["tal","allt","val","fl","alv","vag","tall","fal","fol","fall","atio","tala","alt","gla"],"rp":["lat","lag","iga","liga","ova","lva"]},"106":{"input":[2,4,6,7],"tlp":["sig",64325],"trp":["ock",24775],"tlw":["sig",62876],"trw":["likt",416],"lp":["sig","gic","gick","vilk","sokt","sov","ckl"],"rp":["ock","ocks","lic","ktig","lick","klig","okt","loc","lock","lst","kov","lts","llts"]},"107":{"input":[1,2,4,6,7],"tlw":["alltsa",3917],"trw":["ocksa",11852],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rl",28320],"trp":["ler",39552],"tlw":["eller",21635],"trw":["over",17755],"lp":["rl","rig","rli","elt","rlig","tel","rol","erl","rige"],"rp":["ler","ige","ller","ove","over","lev","lige","let","lite","llet","lir"]},"109":{"input":[1,3,4,6,7],"tlw":["varfor",5432],"trw":["later",1516],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["dig",9388],"trw":["kort",3076],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["aldrig",8974],"trw":["klart",1941],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",156427],"trw":["hon",71785],"lp":[],"rp":["ho","hon","ul","ull","hu","lu","hono","ion","nl","lin","nli","hol","ln","holl","oh","iho","uni","hun","lun","ino"]},"113":{"input":[1,5,6,7],"tlp":["anl",7509],"trp":["lan",56925],"tlw":["quinn",114],"trw":["halla",3206],"lp":["anl","anli","alin","alln","alan"],"rp":["lan","hal","hall","llan","nal","oha","ohan","ula","nali","olan","lina","ulla","lna","nla","inal"]},"114":{"input":[2,5,6,7],"tlp":["sku",43264],"trp":["ku",78375],"tlw":["skull",1127],"trw":["hos",4276],"lp":["sku","skul","slu"],"rp":["ku","kul","kull","kun","lj","uk","kon","hus","ilj","juk","kunn","olj","jl","ojl","jli","ojli","hos"]},"115":{"input":[1,2,5,6,7],"tlw":["skolan",1295],"trw":["kunna",5127],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eho",7167],"trp":["ulle",40111],"tlw":["elin",222],"trw":["hel",1084],"lp":["eho","eln","enl","enli"],"rp":["ulle","hel","len","ly","ione","llen","yl","hell","ilen","yll","olen","nle","uel","uell","leen","nel"]},"117":{"input":[1,3,5,6,7],"tlw":["elina",933],"trw":["hela",8378],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["skulle",39287],"trw":["kunde",19109],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["skillnad",573],"trw":["handlade",1198],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",59992],"trp":["ing",86010],"tlw":["bli",9179],"trw":["hogt",1449],"lp":["bl","bli","tion","bil","vu","ting","gh"],"rp":["ing","ning","lut","lb","nlig","llb","illb","hog","uv","hov","huv","uvu","huvu"]},"121":{"input":[1,4,5,6,7],"tlw":["vanligt",1746],"trw":["inga",3339],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["slut",3258],"trw":["och",261930],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["sjalv",9343],"trw":["klockan",2663],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["blev",11880],"trw":["hur",18534],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["vagen",2479],"trw":["langre",3962],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["verkligen",3128],"trw":["huvudet",3819],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["bland",3152],"trw":["ibland",2952],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",78667],"trw":["p",2050],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",29927],"trp":["pa",207370],"trw":["pa",144323],"lp":["ap","app","appa","apa"],"rp":["pa","ppa","pap","papp"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",19698],"trp":["ps",3998],"lp":["sp"],"rp":["ps","pps","psp","ppsp"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",4537],"trp":["pas",7949],"tlw":["asp",86],"trw":["pass",549],"lp":["spa","sap","asp","aps","spas","aspa"],"rp":["pas","pass","ppas","psa","ppsa","pspa","pasa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",6152],"trp":["pe",48173],"trw":["'",472],"lp":["ep","epp","e'","eppe","e'e","eep"],"rp":["pe","ppe","'e","pee","pep","pepp"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",3130],"trp":["pape",411],"lp":["ape","appe","xp","exp","epa","xpe","expe","eap","eape","eppa"],"rp":["pape","'a"]},"134":{"input":[2,3,8],"tlp":["spe",8127],"trp":["pd",798],"tlw":["esp",72],"trw":["'de",96],"lp":["spe","esp","espe","sep","desp","dp","dsp","eps","dspe","dep","e's","d'","d'e"],"rp":["pd","ppd","'s","'d","'de","pse","'es"]},"135":{"input":[1,2,3,8],"tlp":["apad",573],"trp":["pad",4572],"trw":["passade",486],"lp":["apad","epad","dap","adap","spad","aspe","we'"],"rp":["pad","pade","ppad","pase","pesa"]},"136":{"input":[4,8],"tlp":["tp",509],"trp":["pt",11645],"trw":["pt",359],"lp":["tp","ttp"],"rp":["pt","ppt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["appt",2622],"trp":["pat",2945],"tlw":["tappa",242],"trw":["pat",56],"lp":["appt","tap","tapp","apt","apat","tpa","apta"],"rp":["pat","pf","ppf","pta","ppta","pfa","ppfa","pfat","ppat","ptat","pata","paf","patt"]},"138":{"input":[2,4,8],"tlp":["tsp",635],"trp":["pst",539],"lp":["tsp","stp","ttsp"],"rp":["pst","ppst"]},"139":{"input":[1,2,4,8],"tlp":["stpa",148],"trp":["past",2465],"trw":["pasta",175],"lp":["stpa","cap","astp","tpas","spac"],"rp":["past","ptac","pac","psta","psat","pats"]},"140":{"input":[3,4,8],"tlp":["rep",3339],"trp":["pr",31793],"tlw":["rep",90],"trw":["per",1755],"lp":["rep","ept","rp","epte","repp"],"rp":["pr","per","pre","pet","pte","pper","ppr","pete","ppte","'t","ppet","pter","petr","ppre","prep"]},"141":{"input":[1,3,4,8],"tlp":["rap",2854],"trp":["par",13633],"tlw":["trappa",178],"trw":["par",3758],"lp":["rap","rapp","trap","arp","rpa","arpa","apet","xper","repa","apr"],"rp":["par","pra","prat","part","pera","ppar","patr","pare","perf","para"]},"142":{"input":[2,3,4,8],"tlp":["spr",4496],"trp":["pers",6327],"tlw":["spred",228],"trw":["press",442],"lp":["spr","spec","cep","cept","resp","ccep","sept","t's","rsp","spre","etsp","sper","rspr","ecep"],"rp":["pers","prec","pres","pec","pdr","ppdr"]},"143":{"input":[1,2,3,4,8],"tlw":["spar",785],"trw":["pratade",1339],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",66159],"trw":["m",1599],"lp":[],"rp":["mm","mn","mp","pn","ppn","pm","ppm","nm","np"]},"145":{"input":[1,5,8],"tlp":["am",108972],"trp":["ma",166775],"tlw":["am",93],"trw":["man",29921],"lp":["am","amm","amma","amn","amna"],"rp":["ma","man","mma","mann","mna","mman","pan","nam","mam","mamm","pna","namn","ppna","nap","napp"]},"146":{"input":[2,5,8],"tlp":["sm",12954],"trp":["ms",5095],"tlw":["sms",163],"trw":["jp",57],"lp":["sm","sms","spj","ssm"],"rp":["ms","mj","nsp","nsm","pj","jp"]},"147":{"input":[1,2,5,8],"tlp":["sam",33659],"trp":["mas",17101],"tlw":["samma",6340],"trw":["massa",827],"lp":["sam","samm","sma","span","ams","sman","asm","smas","sama"],"rp":["mas","mans","nsam","jam","mass","maj","mmas","jap","japa","pans","jamn"]},"148":{"input":[3,5,8],"tlp":["em",51088],"trp":["me",242113],"tlw":["e'en",102],"trw":["men",54243],"lp":["em","eme","emm","emp","empe","emen"],"rp":["me","men","mme","my","pen","ppen","ym","mpe","mne","yp","mmen","n'","mnen","ymm"]},"149":{"input":[1,3,5,8],"tlp":["ame",4829],"trp":["mena",3740],"tlw":["amy",218],"trw":["mannen",4191],"lp":["ame","emma","amne","xem","exem","xemp","amme","ema","apen","eman","amen","an'","apne"],"rp":["mena","mea","yma","yman","many","may","pany"]},"150":{"input":[2,3,5,8],"tlp":["dem",15113],"trp":["med",110013],"tlw":["dem",13812],"trw":["med",97131],"lp":["dem","ems","sme","smy","sem","seme","emes"],"rp":["med","mes","md","mde","mede","psy","mej","mens","medd","mnd","pens","mnde","mynd"]},"151":{"input":[1,2,3,5,8],"tlw":["ensam",1863],"trw":["medan",4549],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",3262],"trp":["mt",19904],"lp":["tm","bm"],"rp":["mt","mb","mnt","pb"]},"153":{"input":[1,4,5,8],"tlp":["amt",15300],"trp":["mat",7731],"tlw":["famn",168],"trw":["mat",1157],"lp":["amt","tam","amf","amta","fam","amb","atm","tamm","amba","amat","tamt","tma"],"rp":["mat","mf","mta","mba","matt","mnat","mban","mfa"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["tsm",656],"trp":["mst",2612],"lp":["tsm","ttsm"],"rp":["mst","mts"]},"155":{"input":[1,2,4,5,8],"tlw":["samt",1065],"trw":["mats",293],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",23979],"trp":["mer",31601],"tlw":["typ",630],"trw":["mer",11323],"lp":["rm","rme","rmen","tem","rem","emb","embe","erm","typ","emt"],"rp":["mer","mmer","met","mmet","mr","ment","mbe","mber","mete","penb"]},"157":{"input":[1,3,4,5,8],"tlw":["fram",10772],"trw":["menar",2322],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["september",636],"trw":["mest",3296],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["bestamde",1009],"trw":["maste",10840],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",5476],"lp":[],"rp":["pi","ip","ipp","pip","ppi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",1326],"trp":["ippa",1060],"trw":["pia",366],"lp":["api"],"rp":["ippa","ipa","pia","pipa","piz","pizz"]},"162":{"input":[2,6,8],"tlp":["spi",447],"trp":["pis",1842],"tlw":["skip",66],"lp":["spi","spis","spik","skip"],"rp":["pis","ips","psk","ppsk","pisk","isp","ksp","pik","psi","ppsi","psik","pk","ppk","kip"]},"163":{"input":[1,2,6,8],"tlp":["skap",4614],"trp":["kap",6395],"tlw":["skapa",567],"trw":["kapp",67],"lp":["skap"],"rp":["kap","kapi","kapa","pska","pisa","pak","kapp","ispa","ipas","ikap"]},"164":{"input":[3,6,8],"trp":["ipe",417],"lp":[],"rp":["ipe","pie","pei","ippe","i'"]},"165":{"input":[1,3,6,8],"lp":[],"rp":[]},"166":{"input":[2,3,6,8],"tlp":["spek",1307],"trp":["pek",3334],"tlw":["skepp",67],"trw":["keep",74],"lp":["spek","skep","disp","dip","espi"],"rp":["pek","idp","kep","pise","peis","kspe","pike","keep","ipse","kepp","keps","kesp"]},"167":{"input":[1,2,3,6,8],"tlw":["skapade",297],"trw":["pekade",973],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",162],"trp":["pit",1381],"lp":["tip"],"rp":["pit","pti","ippt","pv","ppv"]},"169":{"input":[1,4,6,8],"tlp":["vap",1525],"trp":["pav",1648],"lp":["vap","apit"],"rp":["pav","pati","pita","pva","ppva","pif","ppif"]},"170":{"input":[2,4,6,8],"tlp":["cip",532],"trp":["pist",342],"tlw":["tips",162],"lp":["cip","tips","cksp","visp","scip","spit"],"rp":["pist","ptis","istp","pic"]},"171":{"input":[1,2,4,6,8],"tlw":["skapat",225],"trw":["packa",130],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",1494],"trp":["pri",4672],"trw":["pierre",295],"lp":["rip","epti","vep","ripe","vept","epri"],"rp":["pri","peri","pite","priv","it'","prit","pier","iper","ppri","'ti"]},"173":{"input":[1,3,4,6,8],"tlw":["varpa",108],"trw":["partiet",469],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["respekt",485],"trw":["precis",3817],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["sprak",390],"trw":["patrik",492],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",102861],"trw":["min",13506],"lp":[],"rp":["mi","min","im","mmi","imm","minn","mh","ph","him","mpi","mini","pph","imi","imp","hm","imin","mni","mnin","pni","ppni"]},"177":{"input":[1,5,6,8],"tlp":["ami",5806],"trp":["mina",5578],"trw":["mina",5090],"lp":["ami","amh","amin","amha","amni","ahm"],"rp":["mina","ham","imma","hamn","manh","mha","pami","pani","ima","hap","hami","mani","mia","iam"]},"178":{"input":[2,5,6,8],"tlp":["smi",1160],"trp":["mis",5636],"tlw":["smink",63],"trw":["minns",1738],"lp":["smi","smin","sim","simp","simm"],"rp":["mis","miss","mins","mk","mik","ism","mpis","mmis","misk","msk","kim","msi","insp","jim","km"]},"179":{"input":[1,2,5,6,8],"tlw":["smak",323],"trw":["manniska",1359],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",765],"trp":["hem",10392],"trw":["hem",4760],"lp":["emi","ehm"],"rp":["hem","hemm","ime","mhe","imme","meni","mine","phy","ypi","imen","iem","phe","hemi","iemi","hym","meh","hme","mehm"]},"181":{"input":[1,3,5,6,8],"trw":["hemma",2590],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["spisen",158],"trw":["mindes",642],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["spanien",197],"trw":["make",607],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",4993],"trp":["mit",12022],"tlw":["bmi",74],"trw":["mitt",7427],"lp":["tim","timm","tmi","tmin","vtim","vm"],"rp":["mit","mitt","mti","mmit","mv","ntim","http","mbi","mith","pbi","mbin","imb","imt","htm"]},"185":{"input":[1,4,5,6,8],"tlw":["fatima",168],"trw":["hamta",775],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",142],"trw":["minst",1383],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["skamt",390],"trw":["knappt",1332],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["vem",3834],"trw":["mitten",567],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["timmar",1675],"trw":["paven",682],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["centimeter",252],"trw":["mycket",13594],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["amerikanska",1014],"trw":["marken",865],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",29076],"lp":[],"rp":["op","po","opp","ppo","pop","poo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["appo",1452],"trp":["oppa",4532],"lp":["appo","apo"],"rp":["oppa","opa","poa"]},"194":{"input":[2,7,8],"tlp":["spo",1053],"trp":["pos",1604],"tlw":["sop",69],"lp":["spo","sop","sopp"],"rp":["pos","poss","osp","osop","opps"]},"195":{"input":[1,2,7,8],"tlp":["sapo",311],"trp":["pow",123],"tlw":["sapo",311],"lp":["sapo","apos"],"rp":["pow","opas"]},"196":{"input":[3,7,8],"tlp":["epo",584],"trp":["oppe",3306],"trw":["o'",107],"lp":["epo","eop"],"rp":["oppe","ope","peo","peop","o'","poe","o'e"]},"197":{"input":[1,3,7,8],"tlp":["xpo",151],"tlw":["expo",95],"lp":["xpo","expo"],"rp":[]},"198":{"input":[2,3,7,8],"tlp":["dop",66],"trp":["pose",156],"lp":["dop","espo"],"rp":["pose","ospe","osep","pod"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",2236],"trp":["pg",2205],"tlw":["topp",124],"lp":["top","topp","gp"],"rp":["pg","ppg","opt","pot","pott","pto"]},"201":{"input":[1,4,7,8],"tlp":["gap",69],"trp":["pag",1136],"trw":["pagatt",71],"lp":["gap","gapa"],"rp":["pag","pfo","ppfo","paga","ptag","pota","pga","ppga","opag"]},"202":{"input":[2,4,7,8],"tlp":["stop",1589],"trp":["post",535],"tlw":["stopp",156],"trw":["post",266],"lp":["stop","gsp","tspo","spot"],"rp":["post","psto"]},"203":{"input":[1,2,4,7,8],"tlw":["stoppa",368],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",6174],"trp":["pro",9288],"tlw":["grepp",356],"trw":["oppet",450],"lp":["rop","ropp","grep","repo","epor","rope","rpo","rrop"],"rp":["pro","por","port","oper","ppor","opte","prog","ppro","pror","prot","peg","pege"]},"205":{"input":[1,3,4,7,8],"tlw":["rapport",324],"trw":["page",231],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["greps",172],"trw":["process",250],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["ropade",806],"trw":["pastod",364],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",354658],"trw":["om",75959],"lp":[],"rp":["om","mo","up","upp","nom","omm","onom","um","mu","umm","oppn","pu","mun","num","omp","mon","pon","omn","munn","pun"]},"209":{"input":[1,5,7,8],"tlp":["amo",397],"trp":["omma",9507],"trw":["oppna",1197],"lp":["amo","amu","ampo","amon","ammo"],"rp":["omma","oma","pau","omna","upa","umma","uma","uman","ompa","uppa","moa","oman","poan","mona","ooma"]},"210":{"input":[2,5,7,8],"tlp":["som",155381],"trp":["moj",5297],"tlw":["som",144609],"trw":["puss",75],"lp":["som","somm","somn","smu","smo","sum","summ"],"rp":["moj","jup","mos","upps","poj","mus","oms","omoj","mju","mons","mjo","mso","omso"]},"211":{"input":[1,2,5,7,8],"tlw":["somna",238],"trw":["paus",417],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["enom",10795],"trp":["omme",12449],"trw":["uppe",1318],"lp":["enom","emo","emon"],"rp":["omme","umme","ome","uppe","ume","omen","nume","umen","pone","memo","meu","open","-m","on'","upe","onem","mue"]},"213":{"input":[1,3,5,7,8],"tlw":["anonym",71],"trw":["umea",222],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dom",4177],"trw":["mod",240],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["djupa",306],"trw":["oppnade",1540],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",8905],"trp":["mot",29248],"tlw":["tom",739],"trw":["mot",18572],"lp":["tom","gom","tum","tomm"],"rp":["mot","utom","mg","uppg","uppt","omt","mob","upt","pub","mott","utm","omg","omb","mog","mut","moto"]},"217":{"input":[1,4,5,7,8],"tlw":["tomma",544],"trw":["manga",6574],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["com",216],"trw":["most",517],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["tomas",242],"trw":["magnus",263],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["genom",7651],"trw":["mor",2097],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["framfor",3779],"trw":["pengar",2420],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["dessutom",3021],"trw":["person",1635],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["eftersom",5237],"trw":["omradet",633],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",19160],"trw":["lopp",92],"lp":[],"rp":["pl","pol","poli","plo","lp","ppl","lip","lipp","pli","lop","ilip","opl","oppl","opi","lopp","ipl","llop","ipli","pio","ppli"]},"225":{"input":[1,6,7,8],"tlp":["alp",4565],"trp":["pla",9629],"trw":["lapp",124],"lp":["alp","alpa","appl","apl","apli","apol"],"rp":["pla","lap","lapp","lpa","pal","ppla","lapa","pala","pola","lopa","opia","plai","pall"]},"226":{"input":[2,6,7,8],"tlp":["slip",785],"trp":["kop",4334],"tlw":["slips",162],"trw":["polis",999],"lp":["slip","spl","spol","skop","spok","spio"],"rp":["kop","kopp","posi","klip","kopi","lips","plik","lsp","llsp","pok","ispl","pols","psl","ppsl"]},"227":{"input":[1,2,6,7,8],"tlw":["sallskap",673],"trw":["kopa",928],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["eopl",483],"trp":["pel",7276],"trw":["people",483],"lp":["eopl","elop","elp","e'l","e'll"],"rp":["pel","ple","pple","ople","lpe","pole","pell","lope","opei","pele","ppel","'l","'ll","opie"]},"229":{"input":[1,3,6,7,8],"tlw":["apple",405],"trw":["pela",641],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spel",332],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["spelade",1035],"trw":["klappade",170],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["gpl",562],"trp":["plot",3391],"trw":["pigg",86],"lp":["gpl","gip","tiop"],"rp":["plot","pgi","ppgi","lpt","plig","ptio","pig","lopt","pgiv","pitl","pigg","pigt"]},"233":{"input":[1,4,6,7,8],"tlw":["filippa",520],"trw":["pavliga",154],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["plotsligt",3109],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["slappt",216],"trw":["plats",2333],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["grip",561],"trw":["prov",161],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",550],"trw":["lappar",380],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["speciellt",540],"trw":["kropp",1211],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["slappte",734],"trw":["kapitel",1031],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["ml",11059],"trw":["honom",25475],"lp":[],"rp":["ml","mil","hop","lm","ommi","mli","ihop","hopp","inom","minu","lom","olm","holm","mill","uppl","mili","iml","ilm","omi","oml"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["allihop",335],"trw":["lamna",1453],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["slump",168],"trw":["kom",13274],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["smala",395],"trw":["komma",5926],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["mille",982],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["exempel",1422],"trw":["mellan",5596],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["ekonomi",202],"trw":["polisen",2473],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["samlade",437],"trw":["lamnade",1603],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["glomt",566],"trw":["mig",33025],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["gamla",2772],"trw":["lamnat",936],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["stockholm",1670],"trw":["kommit",3251],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["bakom",3858],"trw":["langsamt",1192],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"trw":["igenom",2222],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["tvartom",521],"trw":["information",924],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["emellertid",640],"trw":["kommer",10071],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["samtidigt",3340],"trw":["manniskor",3295],"lp":[],"rp":[]}} \ No newline at end of file
diff --git a/keyboards/gboards/dicts/aset/_generator/src/tr-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/tr-keymap.json
new file mode 100644
index 0000000000..338d9a62a5
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/_generator/src/tr-keymap.json
@@ -0,0 +1 @@
+{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",4698],"tlw":["a",3554],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",4821],"tlw":["s",2414],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",119382],"tlw":["www",328],"lp":["as","sa","asa","saa","sas","asas","ww","ssa","ass","www","assa","aw","ssas","wa","was","aas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",787],"tlw":["e",2415],"lp":["ee","eee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",1611],"tlw":["x",136],"lp":["ea","ax","ex","ae"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",225606],"tlw":["de",36223],"lp":["de","se","ed","es","ede","ded","ses","ese","dd","des","ess","dde","sed","sse","sess","ds","ssed","sede","dede","ddes"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",206254],"tlw":["da",34321],"lp":["da","ad","ada","ade","sad","das","sade","adas","esa","dad","add","we","asad","adde","dea","dada","eda","ew","esas","ades"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",24695],"tlw":["t",1015],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",77585],"tlw":["ta",701],"lp":["ta","at","fa","af","att","ata","aat","afa","tta","atta","ft","tat","fta","aft","afta","tf","taf","tafa","fat","tfa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",68030],"tlw":["c",1161],"lp":["st","ct","ts","tc","sc","cs","cc","stc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",58921],"tlw":["saat",1953],"lp":["ca","ac","aca","sta","ast","tas","saat","asta","sac","cas","sat","fas","afas","act","ats","saf","tsa","fac","cat","staf"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",226224],"tlw":["r",1919],"lp":["er","re","te","et","ere","rt","ter","ett","ret","tr","rr","ete","rer","ert","etr","tte","eter","tre","tere","ette"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",265101],"tlw":["ara",805],"lp":["ar","ra","ara","tar","ef","fe","art","rar","are","rta","raf","tara","efe","ate","far","araf","arar","era","aret","rat"],"rp":[]},"14":{"input":[2,3,4],"tlp":["rd",94145],"tlw":["eder",1592],"lp":["rd","ce","ec","rs","ece","ste","der","erd","rc","rde","erc","rce","erce","tes","ster","erde","eder","cer","dec","dece"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["ard",24858],"tlw":["sadece",3474],"lp":["ard","dar","adar","rad","rada","sar","ars","ras","aras","rda","arda","rsa","adec","car","arc","rca","arca","sara","arad","ates"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",4449],"trw":["n",2786],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",238539],"trp":["na",72648],"tlw":["an",2138],"trw":["na",265],"lp":["an","ana","ann","anan","anna","anaa"],"rp":["na","nan","nana","nna","naa"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",731],"trp":["ns",19851],"trw":["j",258],"lp":["sn","sj"],"rp":["ns"]},"19":{"input":[1,2,5],"tlp":["san",27441],"trp":["nsa",12550],"tlw":["sana",3065],"trw":["jan",70],"lp":["san","sana","ans","asan","aj","sans","anas","sna","ansa","saj","wn","snas","aja","ajan"],"rp":["nsa","nsan","nas","ja","jan","jas"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",210551],"trp":["ne",100917],"tlw":["en",11061],"trw":["ne",21701],"lp":["en","ey","eye","ene","eyen","enn","enen","enne","eyn","eney"],"rp":["ne","ye","yen","yn","ny","nne","ney","nen","neye","yey"]},"21":{"input":[1,3,5],"tlp":["ay",82752],"trp":["ya",146697],"tlw":["ay",1315],"trw":["ya",9294],"lp":["ay","aya","ayn","ayan","eya","aye","anne","ane","ena","ean","ayna"],"rp":["ya","yan","nya","yana","yay","yna","nyan","nyay","nay"]},"22":{"input":[2,3,5],"tlp":["den",42341],"trp":["nd",145890],"tlw":["sey",11559],"trw":["neden",3186],"lp":["den","end","sey","sen","eden","eyd","sy","ende","eys","eyse","dey"],"rp":["nd","nde","yd","nden","ned","nede","nes","ys","yse"]},"23":{"input":[1,2,3,5],"tlp":["dan",31876],"trp":["nda",59116],"tlw":["anda",2147],"trw":["yandan",1000],"lp":["dan","and","anda","adan","say","ayd","day","sya","daya","saya"],"rp":["nda","ndan","yas","yasa","yda","yad","yand","yada","ydan","nyad"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",403],"trp":["nt",8039],"tlw":["b",1063],"lp":["bb","bn","tn"],"rp":["nt","nb","ntt"]},"25":{"input":[1,4,5],"tlp":["ba",93513],"trp":["nat",1344],"tlw":["bana",7207],"lp":["ba","ab","tan","aba","ban","bana","bab","baba","tab","aban","ant","bat","anb","tanb","atan","anat","anta","taba"],"rp":["nat","nta"]},"26":{"input":[2,4,5],"tlp":["cb",5912],"trp":["nc",43318],"lp":["cb","sb","bs"],"rp":["nc","nst","nts","nct","ncs"]},"27":{"input":[1,2,4,5],"tlp":["bas",33680],"trp":["nca",9555],"tlw":["bas",1003],"lp":["bas","anc","anca","can","sab","stan","saba","cab","abas","basa","banc","caba","bast","acab","bac","baca","acan"],"rp":["nca","jac","nanc"]},"28":{"input":[3,4,5],"tlp":["be",64335],"trp":["nr",22775],"tlw":["ben",11408],"trw":["yere",2638],"lp":["be","ben","ren","ten","ber","rb","bey","eb","ry","rn","rey","rry","bet"],"rp":["nr","yer","yet","ner","yr","yere","nere"]},"29":{"input":[1,3,4,5],"tlp":["ran",8536],"trp":["nra",19010],"tlw":["bay",1366],"trw":["nefret",613],"lp":["ran","ray","ayr","bay","ayat","rab","fen","anr","tanr","raya","abe","aber","bar","tay","aran","efen"],"rp":["nra","yar","yat","yara"]},"30":{"input":[2,3,4,5],"tlp":["enc",7430],"trp":["nce",17802],"tlw":["bes",2395],"trw":["yerde",2084],"lp":["enc","rden","bes","cen","ence","ecen","bend","bed","eyec","seb","sebe","cey","bede","denb","renc"],"rp":["nce","yerd","yec","ncer","yece"]},"31":{"input":[1,2,3,4,5],"tlw":["cay",353],"trw":["nefes",591],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",3027],"trw":["i",6002],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["az",37543],"trp":["iz",67417],"tlw":["az",2781],"trw":["iz",185],"lp":["az","zi","za","azi","ai","aza","zz","zza","ziz","aziz","azz","azza","aiz","zizi"],"rp":["iz","izi","ia","iza","izz","izza"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",195648],"trp":["is",144843],"tlw":["sik",1643],"trw":["ki",13823],"lp":["si","sk","sik","ski","sis"],"rp":["is","ki","ik","isi","iki","kis","ks","kisi","kk","kki","ksi","isik","isk","iss","ikk"]},"35":{"input":[1,2,6],"tlp":["ak",120301],"trp":["ka",146870],"tlw":["siz",2295],"trw":["kiz",2838],"lp":["ak","asi","aki","siz","ask","aka","ska","aska","aks","sizi","akk","sak"],"rp":["ka","ika","isa","kiz","ksa","kas","kasi","kka"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",1119],"trp":["ie",1447],"lp":["ei"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",32460],"trp":["ize",5154],"lp":["ze","ez","aze","eza","ezi","eze","xi","axi","zize","ezz","zze","ezze"],"rp":["ize","ix"]},"38":{"input":[2,3,6],"tlp":["di",240613],"trp":["ke",66794],"tlw":["dedi",14715],"trw":["ise",4856],"lp":["di","ek","edi","esi","dedi","eki","dis","disi","dik","sek","eke","esk","dek","eski"],"rp":["ke","id","ide","ise","kes","idi"]},"39":{"input":[1,2,3,6],"tlp":["adi",32039],"trp":["kad",29760],"tlw":["size",2133],"trw":["kez",2647],"lp":["adi","dak","zd","daki","zde","dasi","disa","size","dai","zdi","diz","aske","azd"],"rp":["kad","kada","kadi","ida","kez","izd","izde"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",111166],"trp":["it",25283],"tlw":["v",314],"trw":["iv",158],"lp":["ti","tti","vi","vv","tit","vit","tv","vitt","vvi","titi"],"rp":["it","itt","itti","iti","iv","ivi"]},"41":{"input":[1,4,6],"tlp":["va",43131],"trp":["if",8297],"tlw":["atti",862],"trw":["itaat",146],"lp":["va","av","ati","fi","ava","afi","faz","atti","zat","avi","fif","afif","tav","ait","zav","zava"],"rp":["if","ita","ifa","ift"]},"42":{"input":[2,4,6],"tlp":["ci",93762],"trp":["ic",75936],"tlw":["cikti",1490],"trw":["ic",1182],"lp":["ci","sti","cik","tik","cti","sit","cikt","tk","tki","cis"],"rp":["ic","ici","kt","ist","isti","kti","ikt","kit","ikti","kc"]},"43":{"input":[1,2,4,6],"tlp":["cak",14208],"trp":["kat",11273],"tlw":["fakat",5422],"trw":["kac",836],"lp":["cak","aci","akt","fak","akti","acak","cika","akat","faka","vas","tak","avas","acik","zc"],"rp":["kat","kta","kac","ica","izc","kita"]},"44":{"input":[3,4,6],"tlp":["ri",163641],"trp":["ir",286103],"tlw":["ve",81408],"trw":["iri",579],"lp":["ri","ve","eri","ev","ver","tir","etti","eti","rti","evi","eve","vet","vr","veri","evet","etir","evr"],"rp":["ir","iri","ire"]},"45":{"input":[1,3,4,6],"tlp":["ari",56898],"trp":["ira",15785],"tlw":["var",7891],"trw":["itiraf",311],"lp":["ari","var","zer","zeri","arti","raz","eva","rafi","zar","tari","avr","zate","zir","zere","air","fir","azir","atir"],"rp":["ira","iraz"]},"46":{"input":[2,3,4,6],"tlp":["rk",38427],"trp":["iste",14557],"tlw":["tek",4748],"trw":["iste",3907],"lp":["rk","rdi","rek","cek","dir","erek","rke","rsi","ekt","tek","erk","sir","erke","erdi","ris"],"rp":["iste","ird","irdi","kte","kir"]},"47":{"input":[1,2,3,4,6],"tlw":["vardi",6467],"trw":["kadar",16753],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",370626],"trw":["in",526],"lp":[],"rp":["in","ni","ini","nin","hi","inin","ih","hin","ihi","nini","nih","hn","ihin","ihn","hni","ihni","hini","hnin","nni","hnn"]},"49":{"input":[1,5,6],"tlp":["ah",50091],"trp":["ha",92564],"tlw":["ah",1397],"trw":["izin",1006],"lp":["ah","ani","aha","anin","zin","ahi","zan"],"rp":["ha","ina","niz","han","izin","iniz","hiz","nz","haz","inan","hani","nina","hazi"]},"50":{"input":[2,5,6],"tlp":["sin",65670],"trp":["isin",17912],"tlw":["sinsi",110],"trw":["isin",932],"lp":["sin","sini","skin","sh"],"rp":["isin","kin","ins","nk","nki","ikin","his","kkin","nis","nsi","hs","nik","hiss","ji","hk","hik"]},"51":{"input":[1,2,5,6],"tlp":["asin",26353],"trp":["insa",12256],"tlw":["sanki",2615],"trw":["insan",3805],"lp":["asin","sina","akin","sah","sani","ank","sahi","anki","sank","ansi","akan"],"rp":["insa","kan","nasi","hak","hakk","has","kah","ikan","nsiz"]},"52":{"input":[3,5,6],"tlp":["eni",37090],"trp":["iy",103444],"tlw":["eh",335],"trw":["iyi",7728],"lp":["eni","eyi","enin","eh","eyin","ehi"],"rp":["iy","yi","he","ine","iye","iyi","yin","yeni","yni","niy","yine","niye","hen","hey"]},"53":{"input":[1,3,5,6],"tlp":["ayi",16661],"trp":["hay",12548],"tlw":["ayni",4770],"trw":["yani",4094],"lp":["ayi","ayni","zen","enz","aniy","ziy","ayin","enze","eniz","eyaz"],"rp":["hay","yani","iya","yaz","haya","hayi","yazi","yah","nze","iyan"]},"54":{"input":[2,3,5,6],"tlp":["endi",29457],"trp":["ind",72325],"tlw":["diye",15017],"trw":["kendi",7334],"lp":["endi","diy","din","sind","diye","esin","dini","siy","seni","sine","ediy"],"rp":["ind","ken","ndi","inde","kend","ydi","ndis","ndin","kiy"]},"55":{"input":[1,2,3,5,6],"tlw":["daha",20490],"trw":["kadin",3728],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",275568],"trp":["ib",28649],"tlw":["bin",1281],"trw":["hint",87],"lp":["bi","tin","bin","vin","th","tini","bit","bii"],"rp":["ib","ibi","ht","iht","hti","ihti","nti","nit","int","hib","hibi","inti"]},"57":{"input":[1,4,5,6],"tlp":["biz",10055],"trp":["hat",6156],"tlw":["biz",2560],"trw":["hatta",2528],"lp":["biz","abi","bizi","baz","fin","afin","bah","atin","tabi","bazi","tani","van","ahat","abah"],"rp":["hat","haf","hav","hava","hatt","hab"]},"58":{"input":[2,4,5,6],"tlp":["cin",41998],"trp":["icin",39248],"tlw":["cin",367],"trw":["icin",25984],"lp":["cin","cbi","bic","ch","bici","cini","vinc"],"rp":["icin","hic","inc","nci","icb","hicb","icbi","inci","kinc","nic","hc","nici","ich"]},"59":{"input":[1,2,4,5,6],"tlw":["baska",6795],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["bir",195972],"trp":["her",22311],"tlw":["bir",148963],"trw":["her",15822],"lp":["bir","rin","erin","rini","beni","biri","rine","tiy","riy","evin","rh","rbi","birb"],"rp":["her","irin","yeri","yir","nri","yri","irb"]},"61":{"input":[1,3,4,5,6],"tlw":["biraz",4474],"trw":["hayir",2604],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["birden",2181],"trw":["icinde",7275],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["arasinda",3496],"trw":["yavas",1614],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",542],"trw":["o",25996],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","trp":["oa",60],"lp":[],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",67268],"trp":["os",16832],"tlw":["so",92],"lp":["so","sos"],"rp":["os","oso","oss"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",188],"trp":["osa",584],"lp":["wo","woo"],"rp":["osa","ow"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",1196],"trp":["oe",285],"trw":["-",13834],"lp":["eo","e-"],"rp":["oe","-e","-o"],"special":"punc"},"69":{"input":[1,3,7],"trp":["-a",61],"lp":[],"rp":["-a"]},"70":{"input":[2,3,7],"tlp":["do",35030],"trp":["od",5854],"tlw":["do",161],"lp":["do","dos","eso","edo","s-","s-s","s-se","sdo","dosd","deo"],"rp":["od","ose","-s","ode","oses","ood","osed","-se","osd","osdo"]},"71":{"input":[1,2,3,7],"tlp":["ado",548],"trp":["oda",4372],"trw":["odada",430],"lp":["ado","wood","eoda"],"rp":["oda","odas","odad","-w","-we","owe","oad"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["go",43595],"trp":["og",22300],"tlw":["g",946],"trw":["ot",144],"lp":["go","to","got","tto","gog","tog","tg","gg","gt","gto"],"rp":["og","ot","oto","ott","otto","otog","ogg","ogo"]},"73":{"input":[1,4,7],"tlp":["ag",32516],"trp":["of",2290],"tlw":["aga",174],"trw":["of",191],"lp":["ag","ga","aga","fo","tag","atag","ato","fot","foto","taga","fag","tfag","faga","ago","fog","fogg"],"rp":["of","oga","ofo","ota"]},"74":{"input":[2,4,7],"tlp":["co",29333],"trp":["oc",10369],"tlw":["goc",81],"trw":["oc",52],"lp":["co","coc","gos","gost","cog","sog","sto","sg","gs","gogs","tos","cos","gc","sgc","stos"],"rp":["oc","ost","osto","ogs","osc"]},"75":{"input":[1,2,4,7],"tlp":["sag",5201],"trp":["oca",3682],"tlw":["sag",869],"lp":["sag","cag","acag","asag","gac","agac","sof","saga","gas","sga","gaca","sofo","gasa","astg","asg"],"rp":["oca","ocas","osta","osca","ocag"]},"76":{"input":[3,4,7],"tlp":["ge",85092],"trp":["or",124494],"tlw":["gore",3389],"trw":["ote",515],"lp":["ge","eg","ger","gor","gr","gere","gore","ege","ro","rg","eger","gre","get","tor"],"rp":["or","ogr","ort","ore","ote","ogre"]},"77":{"input":[1,3,4,7],"tlp":["gar",3353],"trp":["orta",6084],"tlw":["fotograf",161],"trw":["orta",641],"lp":["gar","arg","rag","gra","efo","age","t-f","t-fa","gara","rato","ator","for","rof","graf","agr"],"rp":["orta","ora","-f","-fa","ogra"]},"78":{"input":[2,3,4,7],"tlp":["deg",18415],"trp":["ord",34113],"tlw":["gece",2933],"trw":["otede",232],"lp":["deg","gec","dog","dogr","sor","gece","gerc","gord","sord","ceg","dor","eceg","dort","gect","dost","dege","gd"],"rp":["ord","oste","ors"]},"79":{"input":[1,2,3,4,7],"tlw":["dag",243],"trw":["orada",2520],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",176917],"trw":["onu",9693],"lp":[],"rp":["un","on","nu","onu","unu","nun","onun","unun","no","nunu","ou","non","ono","nou","unn"]},"81":{"input":[1,5,7],"tlp":["ano",845],"trp":["una",8817],"trw":["ona",7053],"lp":["ano","anu","au","qu","anun","anon","aun"],"rp":["una","ona","unan","ua","nuna","uan","nano","onan"]},"82":{"input":[2,5,7],"tlp":["su",56434],"trp":["us",59637],"tlw":["su",6093],"trw":["us",133],"lp":["su","son","sun","sunu","sonu","sus","sons"],"rp":["us","usu","usun","nus","onus","nusu","osu","jo","ons","nsu","onsu","osun","ju"]},"83":{"input":[1,2,5,7],"tlp":["suna",877],"trp":["usa",2657],"tlw":["sona",460],"lp":["suna","sona","asu","anus","susa","ajo","sano","sau","saun","asus","anso"],"rp":["usa","usan","nusa","own","usaa","now","nown","osan","unas"]},"84":{"input":[3,5,7],"tlp":["enu",1411],"trp":["yo",85768],"trw":["onune",1033],"lp":["enu"],"rp":["yo","uy","yu","oy","uyo","uyu","une","one","uny","oyu","yun","nuy","oyun","nuyo","yon","unuy","n-","oyn","yone"]},"85":{"input":[1,3,5,7],"tlp":["anyo",338],"trp":["unya",5800],"trw":["yunan",253],"lp":["anyo","eona","eux","an-","que"],"rp":["unya","uya","uyan","oya","yuna","oyna","ux","nuya","yuya","onay","yoya","-ya","yano","oyan","yona"]},"86":{"input":[2,3,5,7],"tlp":["du",128153],"trp":["und",24604],"tlw":["dondu",1341],"trw":["onunde",1790],"lp":["du","soy","dus","dusu","don","dun","duny","duy","sund"],"rp":["und","unde","ud","ndu","ond","nund","undu","udu","ydu","uyd","uydu"]},"87":{"input":[1,2,3,5,7],"tlw":["sonunda",2463],"trw":["ondan",1762],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bu",129214],"trp":["ug",30997],"tlw":["bu",59152],"trw":["not",308],"lp":["bu","gu","tu","gun","bun","bo","tun","gunu","bunu","but","butu"],"rp":["ug","ugu","ut","ugun","utu","utun","otu","ng","ogu"]},"89":{"input":[1,4,5,7],"tlp":["bag",4649],"trp":["uf",2044],"tlw":["buna",2248],"lp":["bag","ang","abu","fon","buna","font","anbu","gan","guna","fu","tuta","agan"],"rp":["uf","uta","utf","ufa","utan","uga","uba","nag"]},"90":{"input":[2,4,5,7],"tlp":["cu",29850],"trp":["uc",23984],"tlw":["bos",1277],"trw":["uc",3579],"lp":["cu","stu","cun","cocu","guc","stun","sunc","bos","cug","cogu"],"rp":["uc","ust","ucu","ustu","unc","onc","ocu","ucun","nuc","onuc"]},"91":{"input":[1,2,4,5,7],"tlw":["fonts",354],"trw":["usta",320],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ru",61296],"trp":["ur",80226],"tlw":["gene",1320],"trw":["uygun",1047],"lp":["ru","tur","boy","buy","buyu","gru","run","gen","bur","goru"],"rp":["ur","yor","oru","onr","uru","uyor","yoru","ogru","orun","ure"]},"93":{"input":[1,3,4,5,7],"tlw":["buraya",1264],"trw":["ortaya",2163],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["dogru",6276],"trw":["once",6114],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["sonra",17553],"trw":["oradan",704],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["li",153361],"trw":["l",1692],"lp":[],"rp":["li","il","ol","ili","ll","lli","ill","lo","oll","oli","illi","lil","olo","io","ilo","lili","ool","llo"]},"97":{"input":[1,6,7],"tlp":["al",111125],"trp":["la",193014],"tlw":["al",750],"trw":["la",412],"lp":["al","ali","zl","ala","zla","all","zo","alla","azl","zli","azla"],"rp":["la","ola","oz","ila","lla","ozl","izl","izli","izla"]},"98":{"input":[2,6,7],"tlp":["sl",30642],"trp":["ok",45144],"tlw":["sol",615],"trw":["ilk",4866],"lp":["sl","sil","sli","sili"],"rp":["ok","ko","kl","lik","lk","lis","kli","kil","ikl","ls","isl","lki","ols","ilk","kol","likl"]},"99":{"input":[1,2,6,7],"tlp":["asl",17339],"trp":["kal",18830],"tlw":["soz",2999],"trw":["olsa",1993],"lp":["asl","sla","asla","akl","asil","soz","sal","alis","akla","asli","alk","akli"],"rp":["kal","kla","las","lak","kala","lasi","kali","lsa"]},"100":{"input":[3,6,7],"tlp":["el",88486],"trp":["le",161881],"tlw":["el",1633],"trw":["ile",9283],"lp":["el","eli","ele","ell","elli","elle","elel","elil"],"rp":["le","ile","lle","ille","ole","lel","leo","-i","lee","leli","lele","i-"]},"101":{"input":[1,3,6,7],"tlp":["zle",10682],"trp":["ozle",8085],"tlw":["aile",576],"trw":["ozel",1294],"lp":["zle","zel","ale","ela","zell","aile","alle","zeli","elal","ael","elia","eal","ezil","ezel","azel","aale"],"rp":["ozle","oze","ozel","izle"]},"102":{"input":[2,3,6,7],"tlp":["dil",10774],"trp":["ld",66610],"tlw":["sekilde",2905],"trw":["kisisel",342],"lp":["dil","ekl","eld","sle","sel","eldi","dol","dile","esl","ekli"],"rp":["ld","old","ldi","ild","ildi","kle","lde","led","ledi","ikle"]},"103":{"input":[1,2,3,6,7],"tlw":["aldi",1426],"trw":["kaldi",1084],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["gi",137313],"trp":["ig",40159],"tlw":["gitti",1369],"trw":["ilgili",1508],"lp":["gi","gil","tl","gl","tig","tigi","git","gili","tli","vl"],"rp":["ig","igi","lt","lg","lti","ilg","lgi","ilgi","lig","ligi"]},"105":{"input":[1,4,6,7],"tlp":["agi",15275],"trp":["lat",3470],"tlw":["fazla",3194],"trw":["laf",255],"lp":["agi","goz","alt","alti","gozl","agl","atl","fazl","tal","gla","tla","zg","agla","giz","val","atli","agli","gal","gz"],"rp":["lat"]},"106":{"input":[2,4,6,7],"tlp":["cok",19740],"trp":["okt",7640],"tlw":["cok",17627],"trw":["isigi",416],"lp":["cok","cl","cil","gis","sig","gisi","cli","sigi"],"rp":["okt","likt","kot","koc","lc","ktig","lic","olc","list","isig","kto","okto"]},"107":{"input":[1,2,4,6,7],"tlw":["asagi",1220],"trw":["olacak",1662],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rl",31288],"trp":["ler",57971],"tlw":["geri",3197],"trw":["ileri",1117],"lp":["rl","egi","gel","egil","rli","gir","rle","erl","geli","rler","erle","gele","eler"],"rp":["ler","leri","lir","iler","irl","ilir","irli"]},"109":{"input":[1,3,4,6,7],"tlw":["agir",1726],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["degil",8435],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["farkli",1113],"trw":["olarak",9384],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["nl",58209],"trw":["unlu",539],"lp":[],"rp":["nl","lu","ul","olu","lin","ulu","unl","nli","onl","lun","inl","hu","ln","lni","uh","ulun","ho","olun","lini","ilin"]},"113":{"input":[1,5,6,7],"tlp":["anl",26128],"trp":["uz",53334],"tlw":["allah",1522],"trw":["olan",10895],"lp":["anl","zu","anla","zun","anli","aln","alni"],"rp":["uz","nla","lan","hal","uzu","olan","uzun","onla","unla","ula","lniz","ozu","uza"]},"114":{"input":[2,5,6,7],"tlp":["sul",3102],"trp":["ku",42732],"tlw":["soluk",557],"trw":["olsun",2457],"lp":["sul"],"rp":["ku","uk","kon","konu","oku","unk","kul","nku","unku","ukl","luk","nlik","kus","kun","uks","lsu","olsu","lsun","lus"]},"115":{"input":[1,2,5,6,7],"tlw":["sozunu",629],"trw":["nasil",6031],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eyl",6217],"trp":["yl",48761],"tlw":["elini",1491],"trw":["oyle",5326],"lp":["eyl","elin","eyle","elen"],"rp":["yl","iyo","yle","oyl","oyle","liy","liyo","yil","len","yol","iyl","nle","ley","luy","iliy","luyo"]},"117":{"input":[1,3,5,6,7],"trw":["yalniz",2707],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["soyle",2267],"trw":["yok",5734],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["aslinda",1786],"trw":["halde",2581],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bil",29017],"trp":["igin",12379],"tlw":["gibi",22656],"trw":["oglu",704],"lp":["bil","gib","gibi","gin","bul","bili","gini","bunl","bulu","gul","vu","bol","glu"],"rp":["igin","ngi","uv","ltin","lb","utl","ult"]},"121":{"input":[1,4,5,6,7],"tlw":["bulunan",1116],"trw":["hangi",1195],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["cunku",5282],"trw":["kucuk",4807],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["sultan",928],"trw":["kabul",2501],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["bile",8084],"trw":["olur",3157],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["guzel",3729],"trw":["uzerine",3191],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["buyuk",8285],"trw":["oldugunu",7814],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["basladi",3009],"trw":["uzerinde",2861],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trw":["p",380],"lp":[],"rp":[]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",33487],"trp":["pa",24487],"trw":["papa",112],"lp":["ap","apa"],"rp":["pa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",921],"trp":["ps",3704],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["sap",796],"trp":["pas",1542],"trw":["pasa",973],"lp":["sap","spa","aps","asp","sapa","aspa","saps","apsa"],"rp":["pas","pasa","pasp","psa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",9410],"trp":["pe",13191],"trw":["'",2126],"lp":["ep","e'","epe"],"rp":["pe","'e","''","pee"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["a'",2478],"trp":["'a",813],"lp":["a'","epa","ape","x'","ax'","a'e"],"rp":["'a","pa'"]},"134":{"input":[2,3,8],"tlp":["eps",2946],"trp":["'d",2842],"trw":["'de",625],"lp":["eps","s'","e'd","e'de","epes","d'","esp","eped","spe","s'e","es'","spee"],"rp":["'d","'de","pes","ped","pede","pse","pd","pds"]},"135":{"input":[1,2,3,8],"tlp":["sa'",753],"trp":["'da",1650],"trw":["'da",254],"lp":["sa'","a'd","a'da","asa'","esap","apad","sa'd","da'","aspe","apse","apd","apds","d'a"],"rp":["'da","pad","pa'd"]},"136":{"input":[4,8],"tlp":["tp",76],"trp":["pt",7654],"trw":["pt",1404],"lp":["tp","ttp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",5195],"trp":["pta",1168],"trw":["pat",52],"lp":["apt","tap","apta","apat","tapt"],"rp":["pta","pat","patt","pata"]},"138":{"input":[2,4,8],"trp":["pc",141],"lp":[],"rp":["pc"]},"139":{"input":[1,2,4,8],"tlp":["apac",1249],"trp":["pac",1249],"lp":["apac","apc","apca","spat","cap"],"rp":["pac","paca","pca"]},"140":{"input":[3,4,8],"tlp":["rp",1331],"trp":["pr",3486],"tlw":["tepe",103],"trw":["'te",217],"lp":["rp","tep","tepe","r'","re'","ere'","er'","rpt","ept","epte","rpe","rper"],"rp":["pr","per","'t","pre","pet","'te","petr","pte"]},"141":{"input":[1,3,4,8],"tlp":["apar",1698],"trp":["par",11587],"tlw":["arap",301],"trw":["para",1673],"lp":["apar","rap","arp","arap","ra'","tepa","f'","rpa","arpa","ara'","arpt","apr","apra"],"rp":["par","para","pra","part","patr","'ta","pera"]},"142":{"input":[2,3,4,8],"tlp":["cep",294],"trp":["perd",423],"tlw":["cep",124],"trw":["perde",178],"lp":["cep","step","s't","s'te","tesp","r'd","er'd","sper","re'd","ecep","ste'"],"rp":["perd","perc","pers"]},"143":{"input":[1,2,3,4,8],"tlw":["sarap",440],"trw":["parca",649],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["nm",9106],"trw":["m",1569],"lp":[],"rp":["nm","pm","mm","mp","mn"]},"145":{"input":[1,5,8],"tlp":["am",92732],"trp":["ma",129330],"tlw":["ama",21666],"trw":["mana",161],"lp":["am","ama","aman","apm","apma","anm","amam","anma","apan","amm"],"rp":["ma","man","mam","pma","nma","pan","mana","mpa","nam","mama"]},"146":{"input":[2,5,8],"tlp":["sm",13256],"trp":["ms",8305],"lp":["sm"],"rp":["ms","mps"]},"147":{"input":[1,2,5,8],"tlp":["sma",8191],"trp":["mas",9911],"tlw":["sam",348],"trw":["masa",380],"lp":["sma","sam","sman","asam","sama","asm","asma","amas","ams","smas","sanm","span","ssam"],"rp":["mas","masa","msa","pmas","nmas","maj","mans"]},"148":{"input":[3,5,8],"tlp":["em",49576],"trp":["me",74751],"tlw":["epey",418],"trw":["yemeye",95],"lp":["em","eme","emen","enm","emey"],"rp":["me","men","mey","meye","nem","'n","mem","nme","yem","ym","yeme","'y","pen","pey","y'"]},"149":{"input":[1,3,5,8],"tlp":["ame",2729],"trp":["yap",17207],"tlw":["annem",417],"trw":["yapan",657],"lp":["ame","amay","ema","a'n","amen","an'","a'y","eyma","a'ya"],"rp":["yap","may","maya","yapa","yapm","yma","'ya","mame","pmay","yman","pay"]},"150":{"input":[2,3,5,8],"tlp":["dem",6920],"trp":["md",15044],"tlw":["demeye",98],"trw":["'den",147],"lp":["dem","deme","sme","esm","emed","sem","ems","edem"],"rp":["md","mse","mes","med","mde","mede","mese","msey","meyd","mden","msen","msed"]},"151":{"input":[1,2,3,5,8],"tlw":["adam",4638],"trw":["meydana",782],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",17169],"trp":["mb",2359],"lp":["tm"],"rp":["mb","mt"]},"153":{"input":[1,4,5,8],"tlp":["tam",6202],"trp":["mat",647],"tlw":["tam",3821],"lp":["tam","tma","atm","tama","atma","bam","abam","amb","fam","amba","afam","apab","tatm","tman"],"rp":["mat","mba","mant","pab","ptan","pant"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",3662],"trp":["mc",1577],"lp":["cm"],"rp":["mc"]},"155":{"input":[1,2,4,5,8],"tlw":["cam",364],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",25050],"trp":["mer",5044],"tlw":["etmeye",820],"trw":["mr",413],"lp":["rm","etm","tme","rme","etme","tem","erm","erme","teme","tmey","rmey","rem","renm","term","ry'","rry'"],"rp":["mer","met","mr","mbe"]},"157":{"input":[1,3,4,5,8],"tlw":["tamamen",907],"trw":["yapar",447],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["sebep",489],"trw":["pencereden",421],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["stepan",214],"trw":["jandarma",125],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["ip",23109],"trw":["ip",98],"lp":[],"rp":["ip","pi","pip","ipi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",10616],"trp":["paz",682],"trw":["papaz",183],"lp":["api","apip","apaz","zip","azip","zap","azap"],"rp":["paz","paza"]},"162":{"input":[2,6,8],"tlp":["sip",883],"trp":["kip",3619],"tlw":["sikisip",77],"trw":["pis",531],"lp":["sip","spi"],"rp":["kip","psi","pis","pk","pisi","pki","ipk","ipki","ikip","psik","isip","pik","pkk","kipk","isp","pisk","ipik","kipi"]},"163":{"input":[1,2,6,8],"tlp":["apis",1831],"trp":["kap",8447],"tlw":["sapka",135],"trw":["kapi",974],"lp":["apis","akip","asip","apk","apka","sapk","apsi"],"rp":["kap","kapi","kapa","pka","ispa","pkas","pak","kapk","paki"]},"164":{"input":[3,6,8],"tlp":["epi",576],"trp":["'i",3340],"trw":["'i",87],"lp":["epi","e'i"],"rp":["'i","i'","ipe","ie'","pie"]},"165":{"input":[1,3,6,8],"tlp":["x'i",65],"trp":["pez",51],"lp":["x'i","ax'i"],"rp":["pez","peze"]},"166":{"input":[2,3,6,8],"tlp":["epsi",2946],"trp":["pek",6932],"tlw":["edip",667],"trw":["pek",4304],"lp":["epsi","dip","edip","ekip","ski'","epk","epki","espi","esip","s'i"],"rp":["pek","peki","idip","pesi","pid","k'","is'","ipek","ki'","k'i"]},"167":{"input":[1,2,3,6,8],"trw":["kapida",236],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",2155],"trp":["pti",4694],"tlw":["tip",299],"trw":["itip",81],"lp":["tip","tipi"],"rp":["pti","ipt","ipti","pit","itip"]},"169":{"input":[1,4,6,8],"tlp":["apti",4186],"trp":["itap",1997],"tlw":["atip",257],"lp":["apti","vap","atip","apit"],"rp":["itap","pav","pati","ipta","pita"]},"170":{"input":[2,4,6,8],"tlp":["cip",1668],"trp":["ptik",601],"tlw":["tipki",865],"trw":["icip",79],"lp":["cip","tipk","spit"],"rp":["ptik","pic","pici","icip","pist"]},"171":{"input":[1,2,4,6,8],"tlw":["takip",521],"trw":["kitap",795],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",3191],"trp":["irip",1440],"tlw":["verip",240],"trw":["pir",218],"lp":["rip","ri'","rpi","erip","ti'","rpti","r'i","re'i","ver'","er'i","rpip","rpri"],"rp":["irip","pir","piri","ptir","iti'","peri","irp","pri"]},"173":{"input":[1,3,4,6,8],"trw":["parti",379],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["cekip",471],"trw":["kirip",55],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["cevap",1689],"trw":["parcasi",437],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["im",97151],"trw":["mi",12284],"lp":[],"rp":["im","mi","min","nim","imi","nmi","mini","hip","hm","imin","inm","ph","pin","nip","pini","pmi","inmi","him","imp","nimi"]},"177":{"input":[1,5,6,8],"tlp":["zam",15802],"trp":["miz",5126],"tlw":["zaman",9588],"trw":["hanim",555],"lp":["zam","zama","ami","zim","amin","anim","ahip","zm","ahm","anmi"],"rp":["miz","maz","ima","izim","imiz","mani","mizi","mah","ham","mami"]},"178":{"input":[2,5,6,8],"tlp":["sim",12135],"trp":["mis",35215],"tlw":["simsiki",221],"trw":["kim",1847],"lp":["sim","smi"],"rp":["mis","kim","km","ism","ims","kims","ikm","misi","mk","kmi","nmis","kmis","kimi","ismi","isim","msi","ikmi","psin"]},"179":{"input":[1,2,5,6,8],"tlw":["aksam",1411],"trw":["misiniz",745],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",12554],"trp":["hem",8923],"tlw":["emin",834],"trw":["hemen",4788],"lp":["emi","enim","emin","emiy"],"rp":["hem","miy","hep","heme","'ni","'nin","piy","'in","ime","yim","yip","i'n","i'ni","hme","nemi","piyi"]},"181":{"input":[1,3,5,6,8],"tlw":["annemin",178],"trw":["hepimiz",316],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["simdi",5781],"trw":["kimse",1852],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["adamin",1501],"trw":["kapiyi",1057],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",7187],"trp":["itm",2987],"tlw":["tim",161],"trw":["mit",80],"lp":["tim","tmi","ttim","vim","timi","bitm","tmin","thm"],"rp":["itm","itmi","itim","ptim","mit","hipt","mbi","htim","ptin","imb","imbi","ntim"]},"185":{"input":[1,4,5,6,8],"tlw":["bizim",2636],"trw":["mavi",631],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["cikmis",550],"trw":["mistik",111],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["canim",596],"trw":["kaptan",268],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["benim",6122],"trw":["yirmi",1140],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["tanrim",479],"trw":["yapti",759],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["etmek",2074],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["devam",2432],"trw":["yardim",1282],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",8798],"lp":[],"rp":["op","po","opo","pop","popo","poo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",362],"trp":["opa",623],"tlw":["apo",61],"lp":["apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["sop",218],"trp":["pos",264],"lp":["sop","spo"],"rp":["pos","opos","osp","pso"]},"195":{"input":[1,2,7,8],"tlp":["sopa",88],"trp":["pow",86],"tlw":["sopa",88],"lp":["sopa"],"rp":["pow"]},"196":{"input":[3,7,8],"tlp":["eop",251],"trp":["ope",871],"lp":["eop"],"rp":["ope","o'"]},"197":{"input":[1,3,7,8],"tlp":["eopa",251],"lp":["eopa"],"rp":[]},"198":{"input":[2,3,7,8],"tlp":["do'",50],"trp":["od'",59],"lp":["do'"],"rp":["od'","ood'"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",5867],"trp":["opt",260],"tlw":["top",230],"lp":["top"],"rp":["opt","pot","pott"]},"201":{"input":[1,4,7,8],"tlp":["apag",165],"trp":["pag",1236],"lp":["apag"],"rp":["pag","opat","opag","paga","pota"]},"202":{"input":[2,4,7,8],"tlp":["cop",181],"trp":["post",126],"tlw":["cop",181],"trw":["otostop",67],"lp":["cop","stop"],"rp":["post"]},"203":{"input":[1,2,4,7,8],"trw":["posta",126],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["topr",1446],"trp":["opr",1640],"trw":["potter",167],"lp":["topr","rop"],"rp":["opr","pro","-top","por","prog","peg","opeg","prop","oper","port","prot"]},"205":{"input":[1,3,4,7,8],"tlw":["topraga",181],"trw":["page",832],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["spor",119],"trw":["protesto",51],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"trw":["profesor",263],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["um",48695],"trw":["mu",2378],"lp":[],"rp":["um","mu","up","umu","om","mo","unm","mun","omu","umun","mum","nmu","onm","nup","num","onup","unmu","pu","onmu","mnu"]},"209":{"input":[1,5,7,8],"tlp":["amu",724],"trp":["uma",3601],"lp":["amu","ammu","amo","apon"],"rp":["uma","oma","upa","unma","uman","oman","mua","numa","pau","pamu","muna","namu","uam","muam"]},"210":{"input":[2,5,7,8],"tlp":["sunm",1248],"trp":["mus",15207],"trw":["musun",1010],"lp":["sunm","sup","smu","smus","sum","som"],"rp":["mus","usm","nusm","ums","osm","musu","umus","nmus","msu","usmu","umsu","usup","mos","osum"]},"211":{"input":[1,2,5,7,8],"trw":["osman",247],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emnu",603],"trp":["onem",4198],"trw":["memnun",488],"lp":["emnu","emu"],"rp":["onem","ume","yum","muy","unme","yumu","ome","uym","ymu","muyo","'u","memu","uyum","oym","onme","o'n","umuy","'un"]},"213":{"input":[1,3,5,7,8],"trw":["maymun",120],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["donup",819],"trw":["muydu",265],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["dusman",463],"trw":["musaade",167],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tum",4398],"trp":["mut",4536],"tlw":["tum",2174],"trw":["umut",237],"lp":["tum","gum","gm","gumu","tom","tup","gmu","ttom","tutm","tumu","tmu","gom"],"rp":["mut","ugum","utm","omut","nutm","umut","utmu","utup"]},"217":{"input":[1,4,5,7,8],"tlw":["bomba",100],"trw":["mutfaga",167],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["gumus",409],"trw":["unutmus",110],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["cuma",169],"trw":["mustafa",624],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["grup",385],"trw":["oturup",540],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["ragmen",1330],"trw":["yagmur",493],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["durum",881],"trw":["oturmus",358],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["durumda",912],"trw":["propaganda",168],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",6579],"trw":["pol",144],"lp":[],"rp":["pl","lip","opl","pil","pol","poli","ilip","ipl","lp","pli","pili","ilp","pilo","ipli","pool"]},"225":{"input":[1,6,7,8],"tlp":["apil",2908],"trp":["pla",4024],"tlw":["alip",1109],"lp":["apil","alip","apl","apla","apal","alp","apli"],"rp":["pla","opla","pila","pal","pali","ipla","lap","olap"]},"226":{"input":[2,6,7,8],"tlp":["skop",138],"trp":["kop",1470],"tlw":["silip",98],"trw":["polis",725],"lp":["skop","sipl"],"rp":["kop","lkip","kopo","pisl"]},"227":{"input":[1,2,6,7,8],"trw":["kapali",519],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elip",1112],"trp":["l'",1267],"trw":["poole",60],"lp":["elip","el'","el'i","epl","eple"],"rp":["l'","'l","ple","l'i","leop","li'","lep","'le","le'","lle'","le'i","iple","'li","ll'","ll'i"]},"229":{"input":[1,3,6,7,8],"trw":["la'e",56],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"trw":["kopek",433],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["dolasip",126],"trw":["pekala",402],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["topl",3261],"trp":["ptig",2000],"trw":["popov",105],"lp":["topl","gip"],"rp":["ptig","ptil","pov","opov"]},"233":{"input":[1,4,6,7,8],"tlw":["aptal",428],"trw":["iptal",64],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["politik",151],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["ciplak",453],"trw":["politika",153],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["gelip",1112],"trw":["piril",272],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["garip",992],"trw":["pavel",210],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["gidip",1162],"trw":["polisler",126],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["toprak",602],"trw":["parlak",776],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["lm",46943],"trw":["olup",1530],"lp":[],"rp":["lm","olm","lmi","ilm","ml","lim","lum","ilmi","lmu","mli","olmu","olum","mil","iml","ulm","ilim","lup","plu","oplu","olup"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["anlamina",563],"trw":["olmaz",1004],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["sokup",136],"trw":["olmus",1359],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["almak",825],"trw":["olmak",1877],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["elimi",221],"trw":["onemli",2111],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["almaya",456],"trw":["olmayan",1555],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["soylemek",674],"trw":["oldum",429],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["aldim",504],"trw":["olmadi",572],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["bolum",547],"trw":["mutlu",849],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",181],"trw":["hamilton",186],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["gitmis",374],"trw":["olmustu",1519],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["baslamisti",1046],"trw":["kocaman",640],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["biliyorum",953],"trw":["muhtemelen",286],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["zamanlar",874],"trw":["yaptigi",1060],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["gormek",1084],"trw":["istiyorum",996],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["basladim",495],"trw":["olmadigini",1197],"lp":[],"rp":[]}} \ No newline at end of file
diff --git a/keyboards/gboards/dicts/aset/cmd-keymap.def b/keyboards/gboards/dicts/aset/cmd-keymap.def
new file mode 100644
index 0000000000..0d7398dd4a
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/cmd-keymap.def
@@ -0,0 +1,28 @@
+PRES(CMD | AA, KC_LCTL)
+PRES(CMD | AS, KC_LSFT)
+PRES(CMD | AE, KC_LALT)
+PRES(CMD | AT, KC_LGUI)
+PRES(CMD | AN, KC_LEFT)
+PRES(CMD | AI, KC_DOWN)
+PRES(CMD | AO, KC_UP)
+PRES(CMD | AP, KC_RIGHT)
+PRES(CMD | AR, KC_PGUP)
+PRES(CMD | AL, KC_PGDN)
+
+PRES(CMD | AA | AP, KC_F1)
+PRES(CMD | AA | AO, KC_F2)
+PRES(CMD | AA | AO | AP, KC_F3)
+PRES(CMD | AA | AI, KC_F4)
+PRES(CMD | AA | AI | AP, KC_F5)
+PRES(CMD | AA | AI | AO, KC_F6)
+PRES(CMD | AA | AI | AO | AP, KC_F7)
+PRES(CMD | AA | AN, KC_F8)
+PRES(CMD | AA | AN | AP, KC_F9)
+PRES(CMD | AA | AN | AO, KC_F10)
+PRES(CMD | AA | AN | AO | AP, KC_F11)
+PRES(CMD | AA | AN | AI, KC_F12)
+
+PRES(CMD | AS | AN, KC_HOME)
+PRES(CMD | AS | AP, KC_END)
+PRES(CMD | AS | AI, KC_INS)
+PRES(CMD | AS | AO, KC_DEL)
diff --git a/keyboards/gboards/dicts/aset/da-keymap.def b/keyboards/gboards/dicts/aset/da-keymap.def
new file mode 100644
index 0000000000..48fe42aca1
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/da-keymap.def
@@ -0,0 +1,386 @@
+// This file is automatically generated. Do not edit it!
+
+PRES(AT, KC_T)
+PRES(AS, KC_S)
+PRES(AN, KC_N)
+PRES(AE, KC_E)
+PRES(AP, KC_P)
+PRES(AO, KC_O)
+PRES(AI, KC_I)
+PRES(AA, KC_A)
+PRES(AT|AI, KC_V)
+PRES(AS|AI, KC_K)
+PRES(AE|AT, KC_R)
+PRES(AT|AN, KC_B)
+PRES(AN|AI, KC_H)
+PRES(AA|AS, KC_W)
+PRES(AN|AP, KC_M)
+PRES(AA|AI, KC_Z)
+PRES(AE|AO, KC_MINS)
+KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END})
+PRES(AE|AI, KC_COMM)
+PRES(AS|AO, KC_DOT)
+PRES(AS|AE, KC_D)
+PRES(AS|AN, KC_J)
+PRES(AT|AO, KC_G)
+KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END})
+PRES(AO|AP, KC_SCLN)
+KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END})
+PRES(AE|AN, KC_Y)
+PRES(AT|AP, KC_BSPC)
+PRES(AI|AO, KC_L)
+PRES(AA|AE, KC_X)
+PRES(AE|AP, KC_QUOT)
+PRES(AA|AP, KC_QUOT)
+PRES(AA|AT, KC_F)
+PRES(AN|AO, KC_U)
+PRES(AA|AN, KC_Q)
+PRES(AS|AT, KC_C)
+SUBS(AR|AS|AI|AP, str_565EB49E602024EF, "pis ")
+SUBS(AR|AA|AE|AO, str_C243E0504A15B978, "-aa ")
+SUBS(AR|AI|AO|AP, str_88B19184FF89676C, "pol ")
+SUBS(AR|AA|AE|AT, str_452BE2346B5B80C3, "fra ")
+SUBS(AR|AS|AE|AT, str_925BB6ABF283A228, "det ")
+SUBS(AR|AS|AT|AI, str_2B382E2C87F633B5, "sit ")
+SUBS(AR|AA|AS|AT, str_71D766F84D388274, "fast ")
+PRES(AN|AI|AO|AP, KC_ENT)
+SUBS(AR|AA|AT|AI, str_72AD8360CE343978, "tav ")
+SUBS(AR|AA|AS|AO, str_83C2A82DF3DB1D35, "wos ")
+SUBS(AR|AN|AI|AO, str_5A09FD44BA314863, "hun ")
+SUBS(AR|AN|AI|AP, str_683696748A01B41C, "min ")
+SUBS(AR|AN|AO|AP, str_0F33CAECD78B3E6B, "om ")
+SUBS(AR|AS|AN|AP, str_D63FDE230FD34803, "sms ")
+SUBS(AR|AA|AS|AP, str_467C897077B58F08, "pas ")
+SUBS(AR|AA|AN|AO, str_FD846B750BDF7708, "au ")
+SUBS(AR|AE|AN|AO, str_683A471B89B5678B, "nue ")
+SUBS(AR|AE|AO|AP, str_5AC772D310448B08, "oppe ")
+SUBS(AR|AA|AS|AE, str_6E5B393925FE64CE, "da ")
+SUBS(AR|AE|AN|AI, str_7A4D8698951A1FAD, "hen ")
+SUBS(AR|AA|AE|AI, str_D2F95EA81F7C61D5, "ix ")
+SUBS(AR|AS|AT|AI|AP, str_A19F8973C971DB48, "spist ")
+SUBS(AR|AA|AS|AT|AN, str_7BC51A9B4E5AFDF1, "satan ")
+SUBS(AR|AA|AE|AN|AO, str_F1CF8B964BEDDE0C, "-naa ")
+SUBS(AR|AS|AN|AI|AP, str_CE4E838E0BC6E4DA, "km ")
+SUBS(AR|AT|AI|AO|AP, str_702F532D7A48BC00, "pligt ")
+SUBS(AR|AE|AN|AO|AP, str_BA75DF4F8F68AF81, "-men ")
+SUBS(AR|AA|AN|AO|AP, str_38342550D5BCF484, "opnaa ")
+SUBS(AR|AS|AT|AN|AP, str_DE6CBE601C534F3D, "cm ")
+SUBS(AR|AE|AN|AI|AP, str_B95094D0F4C2F09E, "mine ")
+SUBS(AR|AA|AS|AI|AP, str_CC46AF41D9985527, "pak ")
+SUBS(AR|AA|AS|AE|AO, str_8D630077F3C9958C, "-saa ")
+SUBS(AR|AA|AT|AI|AP, str_46C3C336E40056DB, "fip ")
+SUBS(AR|AE|AI|AO|AP, str_FAF3CEB5A465C19D, "pille ")
+SUBS(AR|AT|AN|AI|AP, str_168886128C6CCE68, "mit ")
+SUBS(AR|AA|AN|AI|AP, str_FC9AB513E2B03A28, "ham ")
+SUBS(AR|AA|AT|AN|AP, str_06AABBFC9BF9658F, "mat ")
+SUBS(AR|AA|AS|AN|AO, str_84BEE048B4700886, "jow ")
+SUBS(AR|AA|AS|AE|AT, str_7E1EAC57B515C2D1, "satte ")
+SUBS(AR|AS|AE|AO|AP, str_578A5EB31DA360B8, "pose ")
+SUBS(AR|AS|AI|AO, str_C9ADB25B4C37D131, "sol ")
+SUBS(AR|RGT|AS|AI|AO, str_7D5664732C823A0F, "los ")
+SUBS(AR|AE|AT|AN, str_8FB071FDE5C78172, "byen ")
+SUBS(AR|RGT|AE|AT|AN, str_77D0DE1110F92FFB, "nyt ")
+SUBS(AR|AA|AT|AN, str_72977AC3F75E644A, "tabt ")
+SUBS(AR|RGT|AA|AT|AN, str_47B698232847D3D2, "nat ")
+SUBS(AR|AA|AN|AI, str_DF39EA07684EC8FC, "zina ")
+SUBS(AR|RGT|AA|AN|AI, str_BB30CFFA4957C51C, "han ")
+SUBS(AR|AS|AE|AN, str_ECE5A6CDF4EED85C, "den ")
+SUBS(AR|RGT|AS|AE|AN, str_FB507079A5396F2A, "ned ")
+SUBS(AR|AT|AN|AI, str_802658407F3418BA, "thi ")
+SUBS(AR|RGT|AT|AN|AI, str_D6E1C0ECF0F9B0E2, "int ")
+SUBS(AR|AS|AE|AI, str_BA01E476816FB907, "disse ")
+SUBS(AR|RGT|AS|AE|AI, str_25694FCDDE3987C4, "ikke ")
+SUBS(AR|AS|AN|AI, str_55863E4A819B49C1, "sin ")
+SUBS(AR|RGT|AS|AN|AI, str_E1D43A91C597031D, "nik ")
+SUBS(AR|AT|AO|AP, str_8574F11BEB82545C, "top ")
+SUBS(AR|RGT|AT|AO|AP, str_0E727A3FBE39D351, "optog ")
+SUBS(AR|AE|AN|AP, str_AA0B430BA00E4952, "emne ")
+SUBS(AR|RGT|AE|AN|AP, str_B969E2F841D9C54A, "men ")
+SUBS(AR|AE|AT|AO, str_1EDA9A722270F7E4, "gore ")
+SUBS(AR|RGT|AE|AT|AO, str_6B77658521E3C3E6, "ore ")
+SUBS(AR|AS|AN|AO, str_3D29840CE477716A, "son ")
+SUBS(AR|RGT|AS|AN|AO, str_6E23CC4BFF56B58C, "jo ")
+SUBS(AR|AE|AT|AI, str_31E88DBD75048F73, "rev ")
+SUBS(AR|RGT|AE|AT|AI, str_60A95BD1113F9846, "iver ")
+SUBS(AR|AA|AE|AN, str_9CAD49AC9B02787F, "anne ")
+SUBS(AR|RGT|AA|AE|AN, str_890375A57AD3EAF4, "nae ")
+SUBS(AR|AE|AI|AO, str_05ED48987A1828F9, "el ")
+SUBS(AR|RGT|AE|AI|AO, str_E2986299752E3DE1, "lille ")
+SUBS(AR|AE|AT|AP, str_BDA9C3AA21C8CDAF, "er'et ")
+SUBS(AR|RGT|AE|AT|AP, str_342F8CACA85F0AD6, "per ")
+SUBS(AR|AS|AT|AO, str_5E351F69DA243685, "sogt ")
+SUBS(AR|RGT|AS|AT|AO, str_F12BF1912FA70BCD, "ost ")
+SUBS(AR|AA|AN|AP, str_85720F1C792E457F, "anm ")
+SUBS(AR|RGT|AA|AN|AP, str_7814AB9A9D941FFB, "man ")
+SUBS(AR|AA|AT|AO, str_A75FF214306BA9D1, "gaa ")
+SUBS(AR|RGT|AA|AT|AO, str_BF38370C83727D39, "of ")
+SUBS(AR|AA|AE|AP, str_102DD7D0196F36BB, "a' ")
+SUBS(AR|RGT|AA|AE|AP, str_67EC607457C73440, "pae' ")
+SUBS(AR|AA|AS|AN, str_CE3B00B88629D10F, "sans ")
+SUBS(AR|RGT|AA|AS|AN, str_16D6BE915787F782, "ja ")
+SUBS(AR|AS|AE|AO, str_5630D9590D848D9C, "dod ")
+SUBS(AR|RGT|AS|AE|AO, str_239CA41F6B24AC83, "ode ")
+SUBS(AR|AA|AS|AI, str_D8D6C8ABDF11FE6C, "zak ")
+SUBS(AR|RGT|AA|AS|AI, str_423FC7030B57068F, "ka ")
+SUBS(AR|AT|AN|AO, str_93A2E40FC11E1E12, "bog ")
+SUBS(AR|RGT|AT|AN|AO, str_AF77719623630FD4, "ung ")
+SUBS(AR|AA|AI|AO, str_C49001FAA655F248, "al ")
+SUBS(AR|RGT|AA|AI|AO, str_8CC474B4A7886F51, "laa ")
+SUBS(AR|AT|AI|AO, str_1C31AEE8DFCCE8EB, "til ")
+SUBS(AR|RGT|AT|AI|AO, str_DD07510FB54603F8, "liv ")
+SUBS(AR|AA|AS|AE|AT|AO, str_CA49BEAA613AC2F8, "sagde ")
+SUBS(AR|AE|AT|AI|AO|AP, str_348B2BB289B8817D, "pige ")
+SUBS(AR|AA|AE|AI|AO|AP, str_6726AAAD1B841698, "la' ")
+SUBS(AR|AA|AT|AN|AI|AP, str_78F7EA49F8D0A783, "timian ")
+SUBS(AR|AA|AS|AE|AO|AP, str_9D443C23601872A4, "opad ")
+SUBS(AR|AS|AT|AI|AO|AP, str_94A710198AA418ED, "politik ")
+SUBS(AR|AA|AE|AT|AN|AO, str_48AAA3207915A63E, "foran ")
+SUBS(AR|AA|AE|AN|AO|AP, str_7B08962D53257530, "-man ")
+SUBS(AR|AA|AS|AT|AI|AO, str_23089E82F5DFD0B4, "folk ")
+SUBS(AR|AE|AN|AI|AO|AP, str_8FB9C780573B2537, "mellem ")
+SUBS(AR|AA|AE|AN|AI|AP, str_9B092F875E2DA1B4, "ha' ")
+SUBS(AR|AS|AE|AI|AO, str_1861909A5CAE7807, "del ")
+SUBS(AR|RGT|AS|AE|AI|AO, str_3CB77C2629D9FD41, "lod ")
+SUBS(AR|AA|AT|AN|AI, str_67B9DF0E88D8FE99, "tania ")
+SUBS(AR|RGT|AA|AT|AN|AI, str_7589149FDAADDD5C, "navn ")
+SUBS(AR|AE|AT|AN|AP, str_8A3CF03C5FA779DF, "type ")
+SUBS(AR|RGT|AE|AT|AN|AP, str_DEE3BBD571C511F7, "mere ")
+SUBS(AR|AA|AE|AT|AO, str_DAE84F2729ACCE2B, "for ")
+SUBS(AR|RGT|AA|AE|AT|AO, str_CC8D36F0E3CEDCB9, "ofte ")
+SUBS(AR|AT|AN|AO|AP, str_C7B05810B9878F2F, "tom ")
+SUBS(AR|RGT|AT|AN|AO|AP, str_A9E20DE572F5CF4F, "omt ")
+SUBS(AR|AA|AS|AN|AP, str_FDE849B83007B2AD, "smaa ")
+SUBS(AR|RGT|AA|AS|AN|AP, str_03C4681E621B41C8, "maj ")
+SUBS(AR|AA|AT|AI|AO, str_15B496B76D052225, "alt ")
+SUBS(AR|RGT|AA|AT|AI|AO, str_4447120BEB624253, "lagt ")
+SUBS(AR|AA|AE|AN|AI, str_B0D068D005493603, "annie ")
+SUBS(AR|RGT|AA|AE|AN|AI, str_384473729F209570, "hanne ")
+SUBS(AR|AA|AS|AI|AO, str_408F0634544C632D, "skal ")
+SUBS(AR|RGT|AA|AS|AI|AO, str_05DBE3DB5EFBA943, "las ")
+SUBS(AR|AS|AI|AO|AP, str_AE39F7849C80EFF0, "spil ")
+SUBS(AR|RGT|AS|AI|AO|AP, str_87CFB86F7172C44A, "kop ")
+SUBS(AR|AS|AT|AN|AI, str_28584900EB088AC4, "skib ")
+SUBS(AR|RGT|AS|AT|AN|AI, str_1F36E9BDFB6C17A3, "hvis ")
+SUBS(AR|AS|AE|AT|AI, str_44D89FF8C9DEFE4D, "ved ")
+SUBS(AR|RGT|AS|AE|AT|AI, str_44E526692C9E5C02, "idet ")
+SUBS(AR|AS|AT|AN|AO, str_E09BE53AF628FF96, "sgu ")
+SUBS(AR|RGT|AS|AT|AN|AO, str_C039D2A5D9FC5D72, "just ")
+SUBS(AR|AA|AE|AI|AO, str_4B68781D007741F3, "alle ")
+SUBS(AR|RGT|AA|AE|AI|AO, str_F714B73058073162, "lae ")
+SUBS(AR|AE|AT|AI|AP, str_C2FA19F55AA9E107, "vipper ")
+SUBS(AR|RGT|AE|AT|AI|AP, str_BBC09EC206C805A7, "itt' ")
+SUBS(AR|AT|AN|AI|AO, str_5ED581CFD1E789A6, "blot ")
+SUBS(AR|RGT|AT|AN|AI|AO, str_B3E389F57E160329, "lob ")
+SUBS(AR|AA|AE|AT|AP, str_E94650909CA1EEA6, "ta'r ")
+SUBS(AR|RGT|AA|AE|AT|AP, str_F552C5CE7412D067, "par ")
+SUBS(AR|AA|AS|AE|AI, str_9CD8BF58537BE31A, "skade ")
+SUBS(AR|RGT|AA|AS|AE|AI, str_DA742024F3D69E0A, "ida ")
+SUBS(AR|AS|AE|AT|AN, str_BB930E6E87DE648C, "syntes ")
+SUBS(AR|RGT|AS|AE|AT|AN, str_F5B0A1B8E66C4027, "jer ")
+SUBS(AR|AA|AE|AT|AN, str_9C31DB94CBCECD2F, "bare ")
+SUBS(AR|RGT|AA|AE|AT|AN, str_986149229D18C728, "naar ")
+SUBS(AR|AE|AT|AI|AO, str_87C9A08BCD5987C8, "eller ")
+SUBS(AR|RGT|AE|AT|AI|AO, str_2CCE6615DDD45C8E, "over ")
+SUBS(AR|AS|AE|AT|AP, str_0F9FE8330213D831, "spredte ")
+SUBS(AR|RGT|AS|AE|AT|AP, str_0D904C6A57F1A574, "peder ")
+SUBS(AR|AA|AS|AE|AN, str_C51486569CE1AF4C, "anden ")
+SUBS(AR|RGT|AA|AS|AE|AN, str_0C372259E4C87260, "naade ")
+SUBS(AR|AA|AS|AN|AI, str_4401268928040B20, "sank ")
+SUBS(AR|RGT|AA|AS|AN|AI, str_FA2CEC25FAE97341, "kan ")
+SUBS(AR|AS|AE|AN|AO, str_68105B858B425CB4, "du ")
+SUBS(AR|RGT|AS|AE|AN|AO, str_D208B44DAA2DC351, "ud ")
+SUBS(AR|AS|AT|AO|AP, str_769DB022AD959409, "spog ")
+SUBS(AR|RGT|AS|AT|AO|AP, str_993FB3354F37599E, "post ")
+SUBS(AR|AE|AN|AI|AO, str_7623453E9CFB03D4, "ellen ")
+SUBS(AR|RGT|AE|AN|AI|AO, str_EC7EE4878609F3D9, "hele ")
+SUBS(AR|AA|AS|AE|AP, str_80A2B7F4EDFF0C95, "saa' ")
+SUBS(AR|RGT|AA|AS|AE|AP, str_1B1C50D62E726AE4, "passe ")
+SUBS(AR|AE|AT|AO|AP, str_E645E421C52D9A7B, "toppe ")
+SUBS(AR|RGT|AE|AT|AO|AP, str_CDD6CAA713E7A893, "port ")
+SUBS(AR|AA|AN|AI|AO, str_BB59749492E9C0BF, "alanzo ")
+SUBS(AR|RGT|AA|AN|AI|AO, str_4FB4F9ADE1176547, "hal ")
+SUBS(AR|AS|AE|AN|AP, str_AB4FDC245F092768, "dem ")
+SUBS(AR|RGT|AS|AE|AN|AP, str_BA4C53A61687D977, "med ")
+SUBS(AR|AS|AT|AI|AO, str_1109F5FD7D22AAC8, "sig ")
+SUBS(AR|RGT|AS|AT|AI|AO, str_66170C57E8AC354A, "livs ")
+SUBS(AR|AA|AE|AN|AP, str_1FE98214FA4D409C, "examen ")
+SUBS(AR|RGT|AA|AE|AN|AP, str_C81F567AC96D5CA9, "mae ")
+SUBS(AR|AA|AE|AT|AI, str_776A8271136FBCDD, "var ")
+SUBS(AR|RGT|AA|AE|AT|AI, str_A1D412B3CD7242F7, "ivar ")
+SUBS(AR|AS|AE|AN|AI, str_5673F12CA48839F3, "sine ")
+SUBS(AR|RGT|AS|AE|AN|AI, str_AB7A61D4A1CAD6AB, "ind ")
+SUBS(AR|AA|AS|AT|AI, str_8B539FEEE1CA73C0, "fik ")
+SUBS(AR|RGT|AA|AS|AT|AI, str_8492FC43FC840935, "kat ")
+SUBS(AR|AS|AE|AI|AP, str_6F2A64F59BE5E26E, "spise ")
+SUBS(AR|RGT|AS|AE|AI|AP, str_93E3B5B12E90C7FE, "piskede ")
+SUBS(AR|AS|AE|AT|AO, str_119AA3B0A66372A8, "dog ")
+SUBS(AR|RGT|AS|AE|AT|AO, str_D859293B22449C89, "ord ")
+SUBS(AR|AA|AS|AT|AO, str_B68AFDA999042AE2, "sagt ")
+SUBS(AR|RGT|AA|AS|AT|AO, str_592113E20E9BD955, "ogsaa ")
+SUBS(AR|AE|AT|AN|AO, str_BA3BD4D2DA7AE86E, "bort ")
+SUBS(AR|RGT|AE|AT|AN|AO, str_B7409EC7507F1CD9, "noget ")
+SUBS(AR|AS|AN|AO|AP, str_7A83FEE54F908E5E, "som ")
+SUBS(AR|RGT|AS|AN|AO|AP, str_7B49EFB61062D284, "moj ")
+SUBS(AR|AA|AT|AN|AO, str_F3FA41B52DE36D40, "gang ")
+SUBS(AR|RGT|AA|AT|AN|AO, str_279E6A9F2A6C0F4C, "nabo ")
+SUBS(AR|AE|AT|AN|AI, str_47FD2EA69E80E270, "ven ")
+SUBS(AR|RGT|AE|AT|AN|AI, str_8BA7632DC4B89BB1, "her ")
+SUBS(AR|AS|AN|AI|AO, str_6C63BE2099406E05, "suk ")
+SUBS(AR|RGT|AS|AN|AI|AO, str_1B15DE9B098FFE3E, "kun ")
+SUBS(AR|AA|AS|AE|AT|AO|AP, str_20D6D6623B1192DC, "pastor ")
+SUBS(AR|AA|AS|AI|AO|AP, str_0C564574F3F9E640, "slap ")
+SUBS(AR|RGT|AA|AS|AI|AO|AP, str_AF121D4C6F58EBE5, "klap ")
+SUBS(AR|AA|AS|AN|AI|AP, str_F3A14A8A57EB3C42, "skam ")
+SUBS(AR|RGT|AA|AS|AN|AI|AP, str_D105DFD94D8C3073, "knap ")
+SUBS(AR|AA|AS|AT|AN|AI, str_3AC2E8986403E297, "skabt ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI, str_5105E1ED4EE07DAD, "kant ")
+SUBS(AR|AA|AS|AE|AN|AO, str_1D0D73185CF895B8, "aa-e-ja ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO, str_2F5A5708B8F10188, "-ja ")
+SUBS(AR|AA|AE|AT|AO|AP, str_7614AC25161CB23C, "fo'r ")
+SUBS(AR|RGT|AA|AE|AT|AO|AP, str_49DD08FC11AFE8DA, "proft ")
+SUBS(AR|AS|AE|AT|AI|AP, str_DB6474B9B6FE3F2A, "spiste ")
+SUBS(AR|RGT|AS|AE|AT|AI|AP, str_405D34AF2264AD2A, "pris ")
+SUBS(AR|AA|AS|AN|AI|AO, str_0C54B4D2BB598DFD, "slank ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO, str_41741403D88D5809, "nikola ")
+SUBS(AR|AA|AT|AI|AO|AP, str_F7C74701175E069E, "galop ")
+SUBS(AR|RGT|AA|AT|AI|AO|AP, str_2C59793065D02EDC, "opgav ")
+SUBS(AR|AA|AS|AE|AT|AP, str_2622E4CB4E7E9609, "derpaa ")
+SUBS(AR|RGT|AA|AS|AE|AT|AP, str_8B03947A124AA4BC, "praest ")
+SUBS(AR|AA|AS|AE|AT|AI, str_92D89244D618E868, "svarede ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI, str_33B15859793355EB, "kastede ")
+SUBS(AR|AA|AE|AN|AI|AO, str_9CD03918EFCF7A9D, "alene ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO, str_5F31E0CB8997A3A5, "hallen ")
+SUBS(AR|AS|AE|AT|AO|AP, str_C3F89E20008EF31C, "spor ")
+SUBS(AR|RGT|AS|AE|AT|AO|AP, str_BFCD83C170167ADB, "pegede ")
+SUBS(AR|AA|AS|AE|AT|AN, str_691DC3BEDE0F7276, "andre ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN, str_33BEF0A978E16432, "naesten ")
+SUBS(AR|AA|AE|AT|AI|AP, str_D5CAE91410E03313, "appetit ")
+SUBS(AR|RGT|AA|AE|AT|AI|AP, str_8255DE4A198805C4, "papir ")
+SUBS(AR|AE|AT|AN|AO|AP, str_20ED4FBB1B1D71AF, "gennem ")
+SUBS(AR|RGT|AE|AT|AN|AO|AP, str_879E412A510F3163, "meget ")
+SUBS(AR|AA|AE|AT|AI|AO, str_C4AF10EDD7B3CE20, "tale ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO, str_FE5FFDC3CA0DDDB6, "lave ")
+SUBS(AR|AS|AE|AI|AO|AP, str_FEDCA8331F2F4CE3, "spillede ")
+SUBS(AR|RGT|AS|AE|AI|AO|AP, str_6349762FDCAACF99, "poesi ")
+SUBS(AR|AS|AE|AT|AN|AP, str_F8F8EA0520C3D9BE, "stemme ")
+SUBS(AR|RGT|AS|AE|AT|AN|AP, str_44BF2FC17F81D9DC, "mest ")
+SUBS(AR|AS|AN|AI|AO|AP, str_D2957C6524A4A470, "smil ")
+SUBS(AR|RGT|AS|AN|AI|AO|AP, str_C50B116423771F39, "kom ")
+SUBS(AR|AA|AS|AN|AO|AP, str_FEC58E5F68E80032, "saasom ")
+SUBS(AR|RGT|AA|AS|AN|AO|AP, str_E2395CA046B6C017, "mansson ")
+SUBS(AR|AA|AE|AT|AN|AP, str_943BA4CC51713FB6, "frem ")
+SUBS(AR|RGT|AA|AE|AT|AN|AP, str_D4702E3A6CDC1944, "maatte ")
+SUBS(AR|AA|AE|AT|AN|AI, str_701758C383D21C1A, "fine ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI, str_4ADA2A4F18F54100, "har ")
+SUBS(AR|AA|AS|AT|AN|AO, str_C87062042895E975, "sang ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO, str_08202FCF2789869B, "jagt ")
+SUBS(AR|AA|AS|AE|AI|AP, str_9432D01EEB76A7DE, "ska' ")
+SUBS(AR|RGT|AA|AS|AE|AI|AP, str_94F2F9657A2B07AA, "pakke ")
+SUBS(AR|AS|AE|AN|AI|AO, str_33147076F22F7144, "skulde ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO, str_5E4907A9602E385A, "kunde ")
+SUBS(AR|AA|AS|AT|AN|AP, str_0F7A33633730631F, "samt ")
+SUBS(AR|RGT|AA|AS|AT|AN|AP, str_D38D5FAD0D7E36AD, "pjat ")
+SUBS(AR|AA|AS|AE|AN|AP, str_9A129D3C2CF63359, "samme ")
+SUBS(AR|RGT|AA|AS|AE|AN|AP, str_60F97D11D338DF2C, "mand ")
+SUBS(AR|AT|AN|AI|AO|AP, str_63C1E2163E48481C, "glimt ")
+SUBS(AR|RGT|AT|AN|AI|AO|AP, str_2CB95DC376B85715, "mig ")
+SUBS(AR|AS|AE|AT|AI|AO, str_5338F98C86098565, "selv ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO, str_D3FB3DC22A4E2199, "lidt ")
+SUBS(AR|AE|AT|AN|AI|AP, str_22BF017D1B0FAE0F, "timer ")
+SUBS(AR|RGT|AE|AT|AN|AI|AP, str_CB074ED3C95642B2, "hvem ")
+SUBS(AR|AS|AE|AT|AN|AO, str_8DF4F0A3E8D06533, "gjorde ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO, str_40D58FBA4B772732, "jeg ")
+SUBS(AR|AA|AT|AN|AO|AP, str_721982306C26ABCE, "afmagt ")
+SUBS(AR|RGT|AA|AT|AN|AO|AP, str_59A99855C94EE38F, "magt ")
+SUBS(AR|AS|AE|AN|AI|AP, str_A09A36EF5C897FD4, "spidsen ")
+SUBS(AR|RGT|AS|AE|AN|AI|AP, str_88A02478E01864F9, "hjem ")
+SUBS(AR|AA|AT|AN|AI|AO, str_933D28650E857DFF, "blaa ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO, str_5057A823E6EF6941, "langt ")
+SUBS(AR|AE|AT|AN|AI|AO, str_13A17952D7936000, "blev ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO, str_C4B71F459D277067, "hvor ")
+SUBS(AR|AS|AT|AN|AI|AO, str_803AA4D54E4ECA25, "blik ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO, str_5EF4D4ADB7F8591F, "hojt ")
+SUBS(AR|AA|AS|AE|AN|AI, str_938DC9B1D87622B2, "danske ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI, str_B2437363459B367E, "hinanden ")
+SUBS(AR|AA|AS|AE|AI|AO, str_078A61B5A3D2EDA1, "saaledes ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO, str_443AFB8E5BA06E0D, "lad ")
+SUBS(AR|AS|AE|AN|AO|AP, str_12BF12EEF13D6E95, "dom ")
+SUBS(AR|RGT|AS|AE|AN|AO|AP, str_03BC9D6CB8B3908A, "mod ")
+SUBS(AR|AA|AN|AI|AO|AP, str_CE78129290A1AC26, "alpina ")
+SUBS(AR|RGT|AA|AN|AI|AO|AP, str_2F0B08746C6E2063, "plan ")
+SUBS(AR|AS|AT|AN|AO|AP, str_102331403E7D212B, "stum ")
+SUBS(AR|RGT|AS|AT|AN|AO|AP, str_58A09E210104136F, "pust ")
+SUBS(AR|AS|AE|AT|AN|AI, str_85DA91107E7DA1F3, "vendte ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI, str_213EA61EA400BBAD, "hvide ")
+SUBS(AR|AA|AS|AN|AI|AO|AP, str_26668284D5C950DB, "william ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_3A0061CD2EC08D57, "hjalp ")
+SUBS(AR|AA|AS|AE|AT|AI|AP, str_1AA224C15D31BCF5, "skarpt ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_7FC6F92BECEAFDC2, "praksis ")
+SUBS(AR|AA|AS|AT|AN|AO|AP, str_72BCBC6B67C84CC5, "smag ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_FFAE1393B428FE51, "magnus ")
+SUBS(AR|AA|AE|AT|AN|AI|AO, str_17CD626AEBE3C3D7, "tilbage ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_DEAE0E631215F7DA, "laenge ")
+SUBS(AR|AA|AS|AE|AN|AO|AP, str_D140198E539D5FB4, "somand ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_99241769490F065E, "pause ")
+SUBS(AR|AA|AS|AT|AI|AO|AP, str_A75EC7D775742180, "tilpas ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_10D21E1E9517FD2A, "plastisk ")
+SUBS(AR|AA|AE|AT|AN|AI|AP, str_26E9D183E5DC1CEC, "varme ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_F9E5DFC6DC88C53E, "marie ")
+SUBS(AR|AS|AE|AT|AI|AO|AP, str_BCBFC8DF86BE653E, "spiller ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_EA2F32DA16BB8574, "krop ")
+SUBS(AR|AS|AE|AT|AN|AO|AP, str_55209DB4E6FCF722, "spurgte ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_155D8FA196A129D1, "mogens ")
+SUBS(AR|AS|AT|AN|AI|AO|AP, str_1B4E5EF4EEBE2A23, "smukt ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_A2E95332F90A605E, "punkt ")
+SUBS(AR|AA|AS|AE|AT|AI|AO, str_B874CB7A247D38E7, "aldrig ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_36558B26E43D5E66, "lagde ")
+SUBS(AR|AA|AS|AE|AT|AN|AI, str_62F5395F48D42C53, "finde ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_3E3C52395DF34DEA, "havde ")
+SUBS(AR|AA|AE|AN|AI|AO|AP, str_600FF892DBD3178D, "emmanuelo ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_15B3FA68E5B2A5AF, "lampen ")
+SUBS(AR|AA|AS|AE|AN|AI|AP, str_3AEC649DEA641DBB, "eksamen ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_6F3CCDA8F4434AEF, "maske ")
+SUBS(AR|AA|AE|AT|AI|AO|AP, str_58DBAC3080F43A2C, "april ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_14CE87608C69A9E7, "opgave ")
+SUBS(AR|AS|AE|AN|AI|AO|AP, str_F3CCDFD12CC6AD7E, "smilede ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_C3072C8E402D9AF0, "komme ")
+SUBS(AR|AA|AS|AE|AI|AO|AP, str_AC1AE0D91923A15A, "slappe ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_DBE9C589EF0C7ECD, "plads ")
+SUBS(AR|AA|AS|AT|AN|AI|AP, str_25F4ED8252F9FF46, "capitain ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_23061DC1E942126E, "knapt ")
+SUBS(AR|AA|AS|AT|AN|AI|AO, str_A1BF08CE77023301, "ansigt ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_6C2D114EB287C846, "langs ")
+SUBS(AR|AE|AT|AN|AI|AO|AP, str_F569C2435FBC8FED, "glemt ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_1F771F0D1A16F9DD, "norholm ")
+SUBS(AR|AS|AE|AT|AN|AI|AO, str_52B74BED48AFF3E2, "teknologi ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_9205FD9E9CDAF415, "holdt ")
+SUBS(AR|AS|AE|AT|AN|AI|AP, str_B1448BBD59EE98E0, "derhjemme ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_100E9AB1EAEC3211, "mennesker ")
+SUBS(AR|AA|AS|AE|AT|AN|AO, str_84B545298327CD46, "dagen ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_17EB714C2539A733, "udenfor ")
+SUBS(AR|AA|AS|AE|AN|AI|AO, str_91508723D13E50C2, "sjael ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_7D17F74FF1147EF0, "land ")
+SUBS(AR|AA|AE|AT|AN|AO|AP, str_F4959725FF42EA5E, "form ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_C2CF32C587BF7039, "mange ")
+SUBS(AR|AA|AT|AN|AI|AO|AP, str_2E642CEEC56D4266, "film ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_BD4D850A2591977C, "pollnitz ")
+SUBS(AR|AA|AS|AE|AT|AN|AP, str_FD9C5088E67087F9, "fremmede ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_998AAA8FA0BD2EFA, "praesten ")
+SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_2CFDA380E510B024, "samlede ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_7C4D116A0E83A9CF, "hjaelp ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_6C41807404A5B896, "danmark ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_2DD2C51B8291C701, "maerke ")
+SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_809202FFCE5E1F57, "gamle ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_67AA89D7A8EEBF79, "planter ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_3100B6504E408AF8, "ganske ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_FF719EEE10F9EAED, "hvordan ")
+SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_F7217B4882909E73, "samling ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_AE887234BAEDACCA, "langsomt ")
+SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_9A3D6726509D76D8, "blomster ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_2286C79D95E0BDDA, "kommer ")
+SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_17C78FC5B7BDC81D, "vokseplads ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_E4B4237662F98075, "kapitel ")
+SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_983BB9490F1B54AF, "sprang ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_A298D7050F8B5E04, "professoren ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_8F0ADC7147FCCC3B, "samtidig ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_D484C569AB49E016, "plantes ")
diff --git a/keyboards/gboards/dicts/aset/de-keymap.def b/keyboards/gboards/dicts/aset/de-keymap.def
new file mode 100644
index 0000000000..6a2229f7a9
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/de-keymap.def
@@ -0,0 +1,373 @@
+// This file is automatically generated. Do not edit it!
+
+PRES(AT, KC_T)
+PRES(AE, KC_E)
+PRES(AN, KC_N)
+PRES(AP, KC_P)
+PRES(AA, KC_A)
+PRES(AI, KC_I)
+PRES(AS, KC_S)
+PRES(AO, KC_O)
+PRES(AS|AT, KC_C)
+KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END})
+PRES(AT|AI, KC_V)
+PRES(AE|AP, KC_QUOT)
+KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END})
+PRES(AS|AI, KC_K)
+PRES(AE|AN, KC_Y)
+PRES(AA|AN, KC_Q)
+PRES(AA|AT, KC_F)
+PRES(AE|AT, KC_R)
+PRES(AT|AO, KC_G)
+PRES(AA|AE, KC_X)
+KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END})
+PRES(AE|AI, KC_COMM)
+PRES(AN|AO, KC_U)
+PRES(AA|AP, KC_QUOT)
+PRES(AA|AS, KC_W)
+PRES(AI|AO, KC_L)
+PRES(AT|AP, KC_BSPC)
+PRES(AS|AE, KC_D)
+PRES(AT|AN, KC_B)
+PRES(AE|AO, KC_MINS)
+PRES(AS|AN, KC_J)
+PRES(AN|AI, KC_H)
+PRES(AA|AI, KC_Z)
+PRES(AS|AO, KC_DOT)
+PRES(AN|AP, KC_M)
+PRES(AO|AP, KC_SCLN)
+SUBS(AR|AA|AT|AP, str_7A06301D23DD2E0F, "pat ")
+SUBS(AR|AS|AE|AO, str_6C007D0218D5E48D, "dose ")
+SUBS(AR|AA|AT|AI, str_5FE37289F8887901, "fitz ")
+SUBS(AR|AA|AT|AN, str_BC6573200E84B046, "ab ")
+SUBS(AR|AT|AN|AI, str_BF8295FE584BC5B0, "bin ")
+SUBS(AR|AA|AS|AI, str_C6565548AE81D246, "kai ")
+SUBS(AR|AN|AO|AP, str_96877FFA56942058, "um ")
+SUBS(AR|AS|AN|AP, str_D63FDE230FD34803, "sms ")
+SUBS(AR|AS|AT|AO, str_435A04363A1FC13B, "sto ")
+PRES(AN|AI|AO|AP, KC_ENT)
+SUBS(AR|AA|AN|AO, str_FD846B750BDF7708, "au ")
+SUBS(AR|AE|AT|AI, str_90DFFD07F9A960E1, "vier ")
+SUBS(AR|AA|AI|AP, str_DF4123F19953E2FD, "pia ")
+SUBS(AR|AA|AS|AE, str_6F5C46A47AA6D99E, "das ")
+SUBS(AR|AA|AS|AO, str_CBD1BA8947756219, "wo ")
+SUBS(AR|AS|AE|AT, str_1D0F4378A54C5C40, "der ")
+SUBS(AR|AA|AE|AP, str_B67661087B126CF1, "px ")
+SUBS(AR|AN|AI|AO, str_C7CD45D62BA33F37, "oh ")
+SUBS(AR|AE|AN|AO, str_C496E6E32E8C3A35, "neue ")
+SUBS(AR|AN|AI|AP, str_679C70AAB26706C0, "im ")
+SUBS(AR|AT|AI|AP, str_649734635B526795, "tippt ")
+SUBS(AR|AA|AS|AT, str_71D766F84D388274, "fast ")
+SUBS(AR|AA|AE|AT, str_1BBF9954E92B20BA, "trat ")
+SUBS(AR|AA|AE|AN, str_FBA19A9C1068CDAE, "nyx ")
+SUBS(AR|AA|AS|AE|AT, str_4861633B8205D116, "war ")
+SUBS(AR|AS|AE|AT|AI, str_CC5037F46E942D16, "dir ")
+SUBS(AR|AA|AT|AO|AP, str_9AA18794DB870BEB, "topf ")
+SUBS(AR|AE|AT|AI|AP, str_34BFA950C82D4F06, "tippte ")
+SUBS(AR|AA|AT|AI|AP, str_7970FB9D8AD7C647, "pfiff ")
+SUBS(AR|AA|AS|AE|AO, str_C7C9AFB6DDACE053, "sodass ")
+SUBS(AR|AA|AN|AO|AP, str_40B810EB6C30C217, "mona ")
+SUBS(AR|AA|AE|AT|AO, str_830AC10C454BC7CF, "fragte ")
+SUBS(AR|AE|AI|AO|AP, str_50240762B8933D32, "lippe ")
+SUBS(AR|AA|AE|AT|AI, str_C0B227849D9DA1BE, "zeit ")
+SUBS(AR|AS|AE|AI|AP, str_EAB63C3360390CF9, "spie ")
+SUBS(AR|AE|AN|AO|AP, str_F1E53A6EC2A7EEED, "neuem ")
+SUBS(AR|AS|AI|AO|AP, str_CC1E52D0BA53ECB6, "klops ")
+SUBS(AR|AT|AI|AO|AP, str_C97DA9851380EBAC, "pilot ")
+SUBS(AR|AA|AS|AT|AN, str_F8A2E43D3F3804D2, "sanft ")
+SUBS(AR|AA|AE|AT|AN, str_A6FDC6F40D49C030, "aber ")
+SUBS(AR|AA|AS|AT|AO, str_B68AFDA999042AE2, "sagt ")
+SUBS(AR|AS|AN|AO|AP, str_ADCADC5263539961, "muss ")
+SUBS(AR|AA|AS|AE|AP, str_1B1C50D62E726AE4, "passe ")
+SUBS(AR|AE|AN|AI|AO, str_BD86612621F1DEED, "ohne ")
+SUBS(AR|AE|AN|AI, str_02B1330BAE5CC4C1, "ein ")
+SUBS(AR|RGT|AE|AN|AI, str_CBE1960539B0E1B0, "ihnen ")
+SUBS(AR|AA|AI|AO, str_9F8EB086C328F80A, "all ")
+SUBS(AR|RGT|AA|AI|AO, str_0CDC91ED0A3C486E, "lilia ")
+SUBS(AR|AS|AI|AO, str_39168E0086ED545A, "soll ")
+SUBS(AR|RGT|AS|AI|AO, str_7D5664732C823A0F, "los ")
+SUBS(AR|AA|AN|AI, str_BF40C27E59DAAC7B, "ah ")
+SUBS(AR|RGT|AA|AN|AI, str_B65C7D9679E557CE, "nah ")
+SUBS(AR|AA|AS|AN, str_FB4580CB5C9E8D0C, "wann ")
+SUBS(AR|RGT|AA|AS|AN, str_16D6BE915787F782, "ja ")
+SUBS(AR|AS|AN|AI, str_E6780CCCF0717AA1, "sinn ")
+SUBS(AR|RGT|AS|AN|AI, str_EA9B7981A49111E5, "ins ")
+SUBS(AR|AS|AN|AO, str_7412E38D9D55C2DC, "su ")
+SUBS(AR|RGT|AS|AN|AO, str_A93C132A8DDF37AE, "uns ")
+SUBS(AR|AT|AI|AO, str_6BAEC4FB06A1849B, "vollig ")
+SUBS(AR|RGT|AT|AI|AO, str_64B9C1F4E5391AFD, "ig ")
+SUBS(AR|AA|AT|AO, str_BC186EE69CA0005E, "tag ")
+SUBS(AR|RGT|AA|AT|AO, str_44FBBABD801177BF, "oft ")
+SUBS(AR|AS|AT|AI, str_C1642DCE31CFDD0A, "vick ")
+SUBS(AR|RGT|AS|AT|AI, str_7313B62E48DA6777, "ist ")
+SUBS(AR|AE|AT|AP, str_CDD70EFAD623B33D, "treppe ")
+SUBS(AR|RGT|AE|AT|AP, str_D89F06941F4B44CE, "peter ")
+SUBS(AR|AE|AN|AP, str_B6C3042679BF7796, "em ")
+SUBS(AR|RGT|AE|AN|AP, str_8167BA049DBA2E41, "'ne ")
+SUBS(AR|AE|AI|AO, str_FFF635055C061C64, "eile ")
+SUBS(AR|RGT|AE|AI|AO, str_E7368ADE4F929A85, "lie ")
+SUBS(AR|AS|AE|AI, str_8DB12FA16BCFEA58, "die ")
+SUBS(AR|RGT|AS|AE|AI, str_8A50CBEF7E0A6524, "idee ")
+SUBS(AR|AE|AT|AN, str_C604097EB91F7B8E, "bett ")
+SUBS(AR|RGT|AE|AT|AN, str_DE73AC8CD7EDF112, "neben ")
+SUBS(AR|AA|AS|AP, str_FAD23F8E4E835984, "spa ")
+SUBS(AR|RGT|AA|AS|AP, str_4DFAE898587FE4FE, "pass ")
+SUBS(AR|AT|AN|AO, str_F303EEA86E1643BB, "gut ")
+SUBS(AR|RGT|AT|AN|AO, str_C4E8F4887CFD230A, "ob ")
+SUBS(AR|AE|AT|AO, str_02D571A452E0AF06, "gro ")
+SUBS(AR|RGT|AE|AT|AO, str_A5C288037377FAC0, "ort ")
+SUBS(AR|AS|AE|AN, str_ECE5A6CDF4EED85C, "den ")
+SUBS(AR|RGT|AS|AE|AN, str_BE269998D08E0255, "jeden ")
+SUBS(AR|AA|AN|AP, str_77BE4D44A5F2AD27, "am ")
+SUBS(AR|RGT|AA|AN|AP, str_7814AB9A9D941FFB, "man ")
+SUBS(AR|AA|AS|AE|AI|AP, str_B94ABE989DA4CCCD, "kappe ")
+SUBS(AR|AA|AS|AE|AT|AI, str_58435ED595907AF1, "wir ")
+SUBS(AR|AA|AS|AI|AO|AP, str_24A1B010F973F0D1, "klaps ")
+SUBS(AR|AA|AE|AI|AO|AP, str_F97A23E3E0ED8554, "pelz ")
+SUBS(AR|AE|AN|AI|AO|AP, str_DF52F7F5FDA2EE96, "himmel ")
+SUBS(AR|AS|AT|AI|AO|AP, str_94A710198AA418ED, "politik ")
+SUBS(AR|AA|AS|AE|AT|AN, str_DAED66ED9574D407, "waren ")
+SUBS(AR|AA|AS|AE|AT|AO, str_EA0DC5764E119536, "sagte ")
+SUBS(AR|AE|AT|AI|AO|AP, str_007AFEEC6A5820E2, "prior ")
+SUBS(AR|AS|AE|AN|AO, str_68105B858B425CB4, "du ")
+SUBS(AR|RGT|AS|AE|AN|AO, str_E8DD0B7F8884F0E0, "und ")
+SUBS(AR|AE|AT|AN|AO, str_1778F5F15FD92AD4, "gegen ")
+SUBS(AR|RGT|AE|AT|AN|AO, str_29DB5F4E8CEEA0C5, "nur ")
+SUBS(AR|AS|AE|AT|AO, str_F65CE91616912CA6, "dort ")
+SUBS(AR|RGT|AS|AE|AT|AO, str_87D6EE7EB7BA66A2, "oder ")
+SUBS(AR|AE|AT|AI|AO, str_0FE705D961162F91, "vor ")
+SUBS(AR|RGT|AE|AT|AI|AO, str_61ABD98243A48ED8, "legte ")
+SUBS(AR|AT|AN|AO|AP, str_C7B05810B9878F2F, "tom ")
+SUBS(AR|RGT|AT|AN|AO|AP, str_E7938942689FE8F0, "mut ")
+SUBS(AR|AS|AE|AN|AP, str_AB4FDC245F092768, "dem ")
+SUBS(AR|RGT|AS|AE|AN|AP, str_F98CE3717B69FD61, "jedem ")
+SUBS(AR|AE|AN|AI|AP, str_25CA5E64BF5601DA, "einem ")
+SUBS(AR|RGT|AE|AN|AI|AP, str_4C8DF934B25FACD2, "meine ")
+SUBS(AR|AA|AN|AI|AO, str_30D9A7F1D6109836, "zu ")
+SUBS(AR|RGT|AA|AN|AI|AO, str_4B92B2052C1070A6, "hinzu ")
+SUBS(AR|AS|AE|AI|AO, str_D3C668A9DCC935F9, "seele ")
+SUBS(AR|RGT|AS|AE|AI|AO, str_B552F89639B85B19, "leise ")
+SUBS(AR|AT|AN|AI|AP, str_AF1FE256DC6BB784, "tim ")
+SUBS(AR|RGT|AT|AN|AI|AP, str_168886128C6CCE68, "mit ")
+SUBS(AR|AA|AE|AI|AO, str_4B68781D007741F3, "alle ")
+SUBS(AR|RGT|AA|AE|AI|AO, str_2BCCE3C0702A7BCE, "lizzie ")
+SUBS(AR|AE|AT|AN|AP, str_CD9F3081A1453B39, "typ ")
+SUBS(AR|RGT|AE|AT|AN|AP, str_10A1A694946FA759, "mr ")
+SUBS(AR|AA|AE|AN|AP, str_7E02E71632E36E12, "amy ")
+SUBS(AR|RGT|AA|AE|AN|AP, str_7E7D867E8D1507CE, "namen ")
+SUBS(AR|AA|AT|AN|AP, str_415DEF2531D5D328, "amt ")
+SUBS(AR|RGT|AA|AT|AN|AP, str_84D6693F0314A756, "matt ")
+SUBS(AR|AA|AS|AE|AN, str_076A05E119373A20, "wenn ")
+SUBS(AR|RGT|AA|AS|AE|AN, str_5016D98F0EC9B5B2, "nase ")
+SUBS(AR|AS|AT|AI|AO, str_503F03DCEE6CB398, "still ")
+SUBS(AR|RGT|AS|AT|AI|AO, str_4DC1C2755B24D34B, "lost ")
+SUBS(AR|AA|AS|AE|AI, str_19A2468090CBBDBF, "wie ")
+SUBS(AR|RGT|AA|AS|AE|AI, str_3A427AA9A457931E, "kase ")
+SUBS(AR|AA|AS|AN|AO, str_4D41107A5D038E06, "aus ")
+SUBS(AR|RGT|AA|AS|AN|AO, str_1850922148A52C13, "jason ")
+SUBS(AR|AS|AT|AN|AO, str_EE61C0244D00B288, "sonst ")
+SUBS(AR|RGT|AS|AT|AN|AO, str_5FFA7FB69B0B139A, "jung ")
+SUBS(AR|AS|AT|AN|AI, str_EC9AF40130B60492, "sich ")
+SUBS(AR|RGT|AS|AT|AN|AI, str_A2BD28473653B4A5, "ich ")
+SUBS(AR|AS|AE|AT|AP, str_F0889D6FB58D8DB4, "speer ")
+SUBS(AR|RGT|AS|AE|AT|AP, str_69D2F191AE8A202E, "presste ")
+SUBS(AR|AS|AN|AI|AO, str_0CEFF135F2E02EB0, "sohn ")
+SUBS(AR|RGT|AS|AN|AI|AO, str_B24523534C6D82C9, "john ")
+SUBS(AR|AA|AI|AO|AP, str_36DDB482F63F4218, "apollo ")
+SUBS(AR|RGT|AA|AI|AO|AP, str_6AE5BB2A9F06CEC2, "opal ")
+SUBS(AR|AT|AN|AI|AO, str_FE0DE06C30B4AB8D, "von ")
+SUBS(AR|RGT|AT|AN|AI|AO, str_4FCC0CDF3BBFB405, "hob ")
+SUBS(AR|AS|AN|AI|AP, str_59872F714705B2C5, "sims ")
+SUBS(AR|RGT|AS|AN|AI|AP, str_EE6DB6F94A1DBF2A, "miss ")
+SUBS(AR|AE|AT|AO|AP, str_FBCCDFCB24EEF885, "reporter ")
+SUBS(AR|RGT|AE|AT|AO|AP, str_C49A79241347400B, "potter ")
+SUBS(AR|AA|AT|AN|AI, str_6FA800B1DE90EC33, "zantini ")
+SUBS(AR|RGT|AA|AT|AN|AI, str_C58EDF9C4F3ABF68, "hat ")
+SUBS(AR|AA|AS|AI|AO, str_29CE2FDA396D8322, "als ")
+SUBS(AR|RGT|AA|AS|AI|AO, str_990499D84C6C6E2B, "lass ")
+SUBS(AR|AA|AT|AI|AO, str_2C2A0B8EADF98F75, "zog ")
+SUBS(AR|RGT|AA|AT|AI|AO, str_03908167F0479139, "lag ")
+SUBS(AR|AA|AT|AN|AO, str_F8243E78F018E913, "auf ")
+SUBS(AR|RGT|AA|AT|AN|AO, str_1CED875C402D54D0, "offnung ")
+SUBS(AR|AA|AE|AT|AP, str_00C6F477FE7982F4, "tapfer ")
+SUBS(AR|RGT|AA|AE|AT|AP, str_77422CDECD520E45, "paar ")
+SUBS(AR|AS|AE|AT|AN, str_06DF3617C6E69D0E, "ersten ")
+SUBS(AR|RGT|AS|AE|AT|AN, str_4FCC7C2D812C8649, "jeder ")
+SUBS(AR|AA|AS|AT|AP, str_3421EC5B25389E38, "spat ")
+SUBS(AR|RGT|AA|AS|AT|AP, str_D5A9BD507CE653C2, "passt ")
+SUBS(AR|AA|AE|AN|AI, str_EAE54E70C7202AC7, "zehn ")
+SUBS(AR|RGT|AA|AE|AN|AI, str_9D4B150BD3065A8C, "nahe ")
+SUBS(AR|AA|AS|AN|AP, str_020E794D3DE91D12, "sam ")
+SUBS(AR|RGT|AA|AS|AN|AP, str_21C1365689620902, "japan ")
+SUBS(AR|AS|AE|AN|AI, str_4C96EF4DA8B974F6, "sein ")
+SUBS(AR|RGT|AS|AE|AN|AI, str_16BA655FB5C97393, "keine ")
+SUBS(AR|AA|AN|AI|AP, str_EDDDB55A1CC27DD4, "ahm ")
+SUBS(AR|RGT|AA|AN|AI|AP, str_6AEA92022C18E6EA, "nahm ")
+SUBS(AR|AA|AS|AN|AI, str_CAF0F677C1C11C4E, "sah ")
+SUBS(AR|RGT|AA|AS|AN|AI, str_2FBBF18B488D07D9, "kann ")
+SUBS(AR|AS|AT|AO|AP, str_1FE10D1897307E54, "spott ")
+SUBS(AR|RGT|AS|AT|AO|AP, str_993FB3354F37599E, "post ")
+SUBS(AR|AE|AT|AN|AI, str_938AC13845137AF2, "einer ")
+SUBS(AR|RGT|AE|AT|AN|AI, str_311A8F79C2DA7621, "ihr ")
+SUBS(AR|AA|AS|AT|AI, str_13007E19FB8F2C35, "satz ")
+SUBS(AR|RGT|AA|AS|AT|AI, str_C38E7280C2F336C5, "katsa ")
+SUBS(AR|AA|AS|AE|AT|AN|AO, str_0585C12E982BE26D, "wurde ")
+SUBS(AR|AS|AT|AN|AI|AO, str_7B32E32451340B4E, "schon ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO, str_A7B248A061F44321, "noch ")
+SUBS(AR|AS|AE|AT|AI|AP, str_5AE975DD19C6232D, "ripred ")
+SUBS(AR|RGT|AS|AE|AT|AI|AP, str_4D5328416DE780D7, "preis ")
+SUBS(AR|AA|AT|AN|AI|AP, str_546C421CC97F3567, "tamani ")
+SUBS(AR|RGT|AA|AT|AN|AI|AP, str_2C3632930C2AB50B, "mattia ")
+SUBS(AR|AE|AT|AN|AO|AP, str_EF1387C702D8A23C, "genommen ")
+SUBS(AR|RGT|AE|AT|AN|AO|AP, str_89317B9F835E8023, "mutter ")
+SUBS(AR|AA|AS|AE|AN|AP, str_3F5CB505A40D708F, "wem ")
+SUBS(AR|RGT|AA|AS|AE|AN|AP, str_242475997AA55CFF, "jemand ")
+SUBS(AR|AS|AE|AT|AN|AO, str_3C8D95A8EA816E72, "boden ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO, str_FF5FFA7FB69B0B13, "junge ")
+SUBS(AR|AA|AS|AE|AN|AO, str_13EF2FBCAADCBAF8, "sonea ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO, str_00F3AC940625EA74, "nasuada ")
+SUBS(AR|AA|AS|AT|AI|AP, str_E52C387D589C50E0, "spitz ")
+SUBS(AR|RGT|AA|AS|AT|AI|AP, str_30C0B19C0CE24E51, "packt ")
+SUBS(AR|AS|AE|AN|AI|AP, str_3680EB2E0F839352, "seinem ")
+SUBS(AR|RGT|AS|AE|AN|AI|AP, str_9E9475D12693FC4A, "meines ")
+SUBS(AR|AA|AS|AE|AI|AO, str_D68A9E9EAEE0475A, "alles ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO, str_0377FCFAFF399698, "lasse ")
+SUBS(AR|AA|AS|AE|AT|AP, str_BC6F9AA6272C5136, "spater ")
+SUBS(AR|RGT|AA|AS|AE|AT|AP, str_FA65DF21B0052C92, "pferd ")
+SUBS(AR|AA|AE|AT|AI|AO, str_D981242C8D8F47E3, "fiel ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO, str_9942C2E11AAAD8F1, "letzte ")
+SUBS(AR|AA|AE|AN|AI|AP, str_E160DEC99532918D, "annehmen ")
+SUBS(AR|RGT|AA|AE|AN|AI|AP, str_C0427811132C070F, "nahmen ")
+SUBS(AR|AA|AE|AT|AO|AP, str_3C2ED0348FD80B64, "tropfte ")
+SUBS(AR|RGT|AA|AE|AT|AO|AP, str_35744E33D0C7E01D, "pfote ")
+SUBS(AR|AA|AS|AT|AI|AO, str_F398E30808EEBB52, "willst ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO, str_CDC2117CADADAFBE, "lasst ")
+SUBS(AR|AS|AE|AN|AI|AO, str_8B3154C92495F09F, "sollen ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO, str_B4439F1511896DFF, "konnen ")
+SUBS(AR|AA|AT|AN|AI|AO, str_B13EE8BE7FE6B633, "ganz ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO, str_398EA44DBAA1E5C8, "luft ")
+SUBS(AR|AS|AE|AI|AO|AP, str_634E6ED82D9B6E02, "spiel ")
+SUBS(AR|RGT|AS|AE|AI|AO|AP, str_39D6AFDD5BD7AAF4, "klippe ")
+SUBS(AR|AA|AE|AT|AN|AI, str_062F83881A2C3959, "arbeit ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI, str_606FEB70500CC1B2, "hatte ")
+SUBS(AR|AA|AE|AT|AI|AP, str_D5CAE91410E03313, "appetit ")
+SUBS(AR|RGT|AA|AE|AT|AI|AP, str_C3B90DAB4B7472C5, "papier ")
+SUBS(AR|AS|AE|AT|AI|AO, str_4F97AB670397150E, "sollte ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO, str_BA8EDD63707197A4, "krieger ")
+SUBS(AR|AE|AT|AN|AI|AP, str_5AE21533ACB6295B, "beim ")
+SUBS(AR|RGT|AE|AT|AN|AI|AP, str_99DC73C1DBA33000, "mir ")
+SUBS(AR|AS|AE|AT|AO|AP, str_E2BE3AA566F0D36D, "gepresst ")
+SUBS(AR|RGT|AS|AE|AT|AO|AP, str_0A5A646931994D47, "perdor ")
+SUBS(AR|AA|AS|AN|AI|AO, str_8FD1EE1AD212099B, "wohl ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO, str_86110AE6A132D1F0, "haus ")
+SUBS(AR|AA|AE|AN|AI|AO, str_7BB3BE37770C35C5, "allein ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO, str_D422763B4AE8465F, "luxa ")
+SUBS(AR|AE|AT|AN|AI|AO, str_C0CCF67B8D935B78, "gehen ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO, str_6629424CB065B1AE, "leben ")
+SUBS(AR|AA|AS|AT|AN|AO, str_B25D747563F50C00, "angst ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO, str_412E9C52008E2FFC, "jacob ")
+SUBS(AR|AS|AT|AN|AI|AP, str_AE837C0AEB806908, "stimmt ")
+SUBS(AR|RGT|AS|AT|AN|AI|AP, str_03B991FD60FCCDFF, "mich ")
+SUBS(AR|AA|AE|AT|AN|AP, str_7469004C9DDD63E7, "arm ")
+SUBS(AR|RGT|AA|AE|AT|AN|AP, str_9E5EFC5EABED59CC, "manner ")
+SUBS(AR|AA|AT|AN|AO|AP, str_57D69F490DECB8EF, "baum ")
+SUBS(AR|RGT|AA|AT|AN|AO|AP, str_3C9B602D612DFCF2, "mag ")
+SUBS(AR|AA|AS|AT|AN|AI, str_C83A8D38120EC478, "ach ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI, str_4F0DAA6022D45F46, "nach ")
+SUBS(AR|AA|AS|AN|AO|AP, str_7B97470A7290A70E, "amos ")
+SUBS(AR|RGT|AA|AS|AN|AO|AP, str_EC45A9C00BACF75C, "maus ")
+SUBS(AR|AA|AS|AT|AN|AP, str_DD7F938F95466D27, "stamm ")
+SUBS(AR|RGT|AA|AS|AT|AN|AP, str_B8ACD052577C0651, "mats ")
+SUBS(AR|AA|AS|AN|AI|AP, str_E3789DAB3DE05442, "asami ")
+SUBS(AR|RGT|AA|AS|AN|AI|AP, str_BD8696CC510E8C75, "kam ")
+SUBS(AR|AA|AN|AI|AO|AP, str_B6BB0FC67BB88D7B, "zum ")
+SUBS(AR|RGT|AA|AN|AI|AO|AP, str_8C909DCD35D4BFA0, "mal ")
+SUBS(AR|AS|AE|AT|AN|AP, str_B42DFF54430B4550, "erdem ")
+SUBS(AR|RGT|AS|AE|AT|AN|AP, str_E7AFF3FB05CB8051, "mrs ")
+SUBS(AR|AA|AE|AT|AN|AO, str_435CFA31A8B3D018, "fur ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO, str_A4D24EE321C80B02, "offnete ")
+SUBS(AR|AS|AT|AN|AO|AP, str_F45F5C5B98553BB1, "stumm ")
+SUBS(AR|RGT|AS|AT|AN|AO|AP, str_AA6545AD9B1F0BD5, "musst ")
+SUBS(AR|AA|AT|AI|AO|AP, str_39B2E8A10609C1C3, "zopf ")
+SUBS(AR|RGT|AA|AT|AI|AO|AP, str_BF2275E23C9ECA0A, "platz ")
+SUBS(AR|AS|AE|AT|AN|AI, str_F123495253B562C3, "dich ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI, str_1999466E4B7043DF, "nickte ")
+SUBS(AR|AS|AE|AN|AO|AP, str_02F72B6BF4AAD698, "dumm ")
+SUBS(AR|RGT|AS|AE|AN|AO|AP, str_94618F45CA2C605A, "mussen ")
+SUBS(AR|AS|AN|AI|AO|AP, str_6CBFC109D0CB9CF1, "simon ")
+SUBS(AR|RGT|AS|AN|AI|AO|AP, str_7D95E314453BF79D, "komm ")
+SUBS(AR|AA|AS|AE|AN|AI, str_35BB9422ACD256E4, "wissen ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI, str_0AADDE3779A6F980, "hand ")
+SUBS(AR|AT|AN|AI|AO|AP, str_B9A79A859B5354B9, "vom ")
+SUBS(AR|RGT|AT|AN|AI|AO|AP, str_161CFD16FFB06DAC, "html ")
+SUBS(AR|AA|AE|AT|AN|AO|AP, str_1BE695808028BBAA, "raum ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_8E9A7834DFD0CC67, "magen ")
+SUBS(AR|AS|AE|AT|AN|AI|AP, str_6036918CB914502E, "stimme ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_2E7CB51A7ADC6E9E, "menschen ")
+SUBS(AR|AA|AS|AE|AN|AI|AP, str_BCA7000FD6B05A39, "damien ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_0D1D4961DFE731F5, "niemand ")
+SUBS(AR|AE|AT|AN|AI|AO|AP, str_396493EB412BD750, "gemeint ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_36A57B2C1C0D6713, "herum ")
+SUBS(AR|AA|AT|AN|AI|AO|AP, str_2E642CEEC56D4266, "film ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_93267E69B60F8881, "umhang ")
+SUBS(AR|AS|AE|AT|AN|AO|AP, str_3091E4B33387D834, "spurte ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_50C770EBED2E85CB, "musste ")
+SUBS(AR|AA|AE|AT|AI|AO|AP, str_1B1197EA0B486110, "rappelte ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_C09994AC92D47FCA, "pfeil ")
+SUBS(AR|AA|AE|AN|AI|AO|AP, str_64C4FBD09C403322, "einmal ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_90D65FA847C4AF11, "plane ")
+SUBS(AR|AA|AS|AE|AT|AO|AP, str_0761A25382557BF1, "stopfte ")
+SUBS(AR|RGT|AA|AS|AE|AT|AO|AP, str_6CD2A548A39A7E32, "professor ")
+SUBS(AR|AA|AS|AT|AN|AI|AP, str_EA28998A02AE4A5E, "wachmann ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_89BDE0660B1C8164, "macht ")
+SUBS(AR|AA|AE|AT|AN|AI|AO, str_00FB909A81FDF653, "zur ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_9EE245A5B47B5067, "lange ")
+SUBS(AR|AA|AS|AE|AN|AI|AO, str_BDEF7A864183C449, "dazu ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_BB8CBC4B0646DA9F, "lassen ")
+SUBS(AR|AA|AS|AE|AN|AO|AP, str_29D5EC092B9A2FF0, "damon ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_99241769490F065E, "pause ")
+SUBS(AR|AA|AS|AT|AI|AO|AP, str_C738A9EAECAE9E1A, "spalt ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_686C6836A9E1635A, "kopf ")
+SUBS(AR|AA|AS|AN|AI|AO|AP, str_26668284D5C950DB, "william ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_A54C47E63EA517D3, "kaum ")
+SUBS(AR|AS|AE|AN|AI|AO|AP, str_BFCFF5C5E4554E1E, "spielen ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_D36C2228C44239C6, "kommen ")
+SUBS(AR|AS|AE|AT|AN|AI|AO, str_731B0EED34C80E79, "doch ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_70E560BB368B886E, "konnte ")
+SUBS(AR|AA|AS|AE|AT|AI|AO, str_5B5C513164D09493, "wollte ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_5B962B1BC7184BBE, "klar ")
+SUBS(AR|AA|AS|AE|AT|AN|AP, str_7AC4A6E3D6183CB2, "warme ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_7A5E7F2D4DB59E4D, "mandred ")
+SUBS(AR|AA|AS|AE|AT|AN|AI, str_FCFC74A798F643C8, "wahrend ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_19B746E69FDBAC14, "jetzt ")
+SUBS(AR|AA|AS|AT|AN|AO|AP, str_45818156770C84E3, "anspannung ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_FFAE1393B428FE51, "magnus ")
+SUBS(AR|AA|AS|AE|AI|AO|AP, str_D5E8F2EB97BF0173, "speisesaal ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_D6A2FD2C4AB2A414, "klappe ")
+SUBS(AR|AA|AS|AT|AN|AI|AO, str_D8D080DFD0656224, "auch ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_B85922905A88930C, "obwohl ")
+SUBS(AR|AS|AT|AN|AI|AO|AP, str_7476EFD58741E176, "schlimm ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_0DB2C10812B9A3D6, "kommt ")
+SUBS(AR|AS|AE|AT|AI|AO|AP, str_7B690A6BC357AB8F, "spielte ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_ACE7A3DE5FA29EEB, "korper ")
+SUBS(AR|AA|AE|AT|AN|AI|AP, str_4A1A67F07D7A0329, "zimmer ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_A3320077C9966D89, "prinz ")
+SUBS(AR|AA|AS|AE|AT|AI|AP, str_1EDA55E43290AD17, "spitze ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_11169DA3F2AA9CB6, "passiert ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_32E1673FAAFCC3C0, "gemacht ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_3FC44629481B6D2F, "damit ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_AC0A502D01CB7CB7, "machte ")
+SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_D72027B770292097, "allmahlich ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_C5D764B9E14F7C80, "plotzlich ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_4E8F1B367AD6BB68, "zuruck ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_42F74CF5A5F20F76, "naturlich ")
+SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_7002CFB3C9601BBE, "distelpfote ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_E4B4237662F98075, "kapitel ")
+SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_D1DF47DF3AB253AB, "zusammen ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_E52EA210631D14A1, "niemals ")
+SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_9A5CA8CE178D4467, "gekommen ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_A03F863B696E8289, "mochte ")
+SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_A659555F342991D6, "familie ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_BD59ECDDA8A173B4, "uberhaupt ")
+SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_BD0367D811B87CFD, "warum ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_841E9767DB8BD57B, "umstanden ")
diff --git a/keyboards/gboards/dicts/aset/en-colemak-keymap.def b/keyboards/gboards/dicts/aset/en-colemak-keymap.def
new file mode 100644
index 0000000000..0f738df3eb
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/en-colemak-keymap.def
@@ -0,0 +1,394 @@
+// This file is automatically generated. Do not edit it!
+
+PRES(AA, KC_A)
+PRES(AT, KC_T)
+PRES(AO, KC_I)
+PRES(AE, KC_S)
+PRES(AI, KC_E)
+PRES(AS, KC_R)
+PRES(AN, KC_N)
+PRES(AP, KC_O)
+PRES(AS|AT, KC_C)
+PRES(AA|AN, KC_J)
+KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END})
+PRES(AE|AP, KC_QUOT)
+PRES(AT|AO, KC_G)
+PRES(AT|AP, KC_QUOT)
+PRES(AN|AI, KC_H)
+PRES(AA|AT, KC_P)
+PRES(AT|AI, KC_V)
+PRES(AA|AS, KC_W)
+PRES(AE|AO, KC_MINS)
+PRES(AN|AO, KC_Y)
+PRES(AE|AI, KC_COMM)
+PRES(AS|AO, KC_DOT)
+PRES(AT|AN, KC_B)
+KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END})
+PRES(AS|AN, KC_K)
+PRES(AA|AI, KC_Q)
+PRES(AN|AP, KC_L)
+PRES(AE|AT, KC_D)
+PRES(AI|AO, KC_U)
+PRES(AS|AI, KC_Z)
+PRES(AA|AE, KC_X)
+PRES(AA|AP, KC_BSPC)
+PRES(AS|AE, KC_F)
+PRES(AE|AN, KC_M)
+PRES(AO|AP, KC_SCLN)
+KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END})
+SUBS(AR|AA|AS|AP, str_3B360FC9D89799E1, "row ")
+SUBS(AR|AS|AT|AN, str_F270B528E852FC3E, "bc ")
+SUBS(AR|AN|AO|AP, str_67863008AE8FD451, "only ")
+SUBS(AR|AS|AI|AO, str_2B9D2DB0A0FB41C0, "rue ")
+SUBS(AR|AN|AI|AP, str_9A6C6AD5C510E57E, "one ")
+SUBS(AR|AA|AS|AT, str_2569286750C7B4F4, "part ")
+SUBS(AR|AS|AT|AP, str_53F9A8D9EF9D3CBE, "root ")
+PRES(AN|AI|AO|AP, KC_ENT)
+SUBS(AR|AS|AE|AT, str_546AE2E8DF2AFDB3, "dr ")
+SUBS(AR|AN|AI|AO, str_92FEB537D58ED05D, "eye ")
+SUBS(AR|AA|AE|AT, str_718051F50C1745F9, "past ")
+SUBS(AR|AS|AN|AO, str_60A15FB00ABCCBCA, "ink ")
+SUBS(AR|AT|AN|AO, str_8CCEA54EEE3F864A, "by ")
+SUBS(AR|AA|AS|AE, str_FB4F2F8581A28E79, "was ")
+SUBS(AR|AT|AI|AP, str_27ABA0A3E8746DD6, "vote ")
+SUBS(AR|AA|AT|AO, str_EDDB4B5D8E6E6CF7, "tip ")
+SUBS(AR|AE|AT|AN, str_1F5578C977E22C6F, "nd ")
+SUBS(AR|AS|AE|AN, str_10A1A694946FA759, "mr ")
+SUBS(AR|AS|AT|AO, str_A78456C45593516E, "critic ")
+SUBS(AR|AA|AT|AP, str_8574F11BEB82545C, "top ")
+SUBS(AR|AS|AE|AI, str_639A23C5AE6F83D0, "free ")
+SUBS(AR|AE|AO|AP, str_E5D0DBF6833C9487, "'i ")
+SUBS(AR|AT|AO|AP, str_EB95C155685E35D7, "go ")
+SUBS(AR|AA|AS|AE|AT, str_51931D246213D5BA, "fact ")
+SUBS(AR|AA|AE|AT|AP, str_CB532D5DED67E46B, "stop ")
+SUBS(AR|AT|AI|AO|AP, str_99844BD74A4B3366, "out ")
+SUBS(AR|AE|AT|AI|AP, str_D624E87354EE13C9, "does ")
+SUBS(AR|AA|AS|AE|AP, str_BFB948F92BEFA09D, "sofa ")
+SUBS(AR|AA|AT|AN|AO, str_25F54E15B0B3ABC1, "again ")
+SUBS(AR|AS|AT|AN|AP, str_A9DE0A41D933835E, "took ")
+SUBS(AR|AS|AE|AT|AO, str_F3E5067A2519AD56, "first ")
+SUBS(AR|AA|AS|AT|AO, str_B9BD537963CF3EDE, "wait ")
+SUBS(AR|AA|AT|AI|AP, str_AAB1D405F8D273AF, "pope ")
+SUBS(AR|AS|AI|AO|AP, str_16D0BE041D84CD0E, "our ")
+SUBS(AR|AS|AE|AT|AP, str_DCFA6A07F97D055B, "door ")
+SUBS(AR|AS|AE|AO|AP, str_FA8B03390F6118D3, "'if ")
+SUBS(AR|AA|AT|AO|AP, str_353D7D379A2BBFCE, "ago ")
+SUBS(AR|AA|AS|AE|AO, str_6737263D9BE8622F, "fair ")
+SUBS(AR|AA|AS|AT|AP, str_035228752979D35D, "two ")
+SUBS(AR|AA|AE|AI|AO, str_85D1F287CC8F2629, "usa ")
+SUBS(AR|AA|AS|AO|AP, str_8E2E49CC75F3CE28, "warrior ")
+SUBS(AR|AA|AS|AT|AI, str_A93FC4E7A3AB3CA1, "water ")
+SUBS(AR|AT|AI|AO, str_D3479574413D1475, "get ")
+SUBS(AR|RGT|AT|AI|AO, str_AA0C2C72B7AD23DB, "iv ")
+SUBS(AR|AS|AE|AO, str_A46CDBFFD039CDDD, "sir ")
+SUBS(AR|RGT|AS|AE|AO, str_D7978D4AE69E4592, "if ")
+SUBS(AR|AS|AN|AP, str_24F8045EA4C1F586, "roll ")
+SUBS(AR|RGT|AS|AN|AP, str_0A9A527945928EFB, "look ")
+SUBS(AR|AE|AT|AP, str_16AE4BE38D2F26C0, "do ")
+SUBS(AR|RGT|AE|AT|AP, str_90B2E8A16883F3EC, "odd ")
+SUBS(AR|AA|AI|AO, str_6A810E6F1345F79D, "que ")
+SUBS(AR|RGT|AA|AI|AO, str_9676951FE3C582DC, "iq ")
+SUBS(AR|AS|AT|AI, str_14773DB067F2C32D, "tree ")
+SUBS(AR|RGT|AS|AT|AI, str_F867205888E811D6, "ever ")
+SUBS(AR|AT|AN|AP, str_5B5C6B353D361F4E, "bob ")
+SUBS(AR|RGT|AT|AN|AP, str_3F3B1F8B5A3E409E, "not ")
+SUBS(AR|AA|AS|AN, str_7AAFE2EE07648FED, "ran ")
+SUBS(AR|RGT|AA|AS|AN, str_2CE76540AD536EFF, "jr ")
+SUBS(AR|AT|AN|AI, str_0C571CCD7FA5FAEF, "the ")
+SUBS(AR|RGT|AT|AN|AI, str_098DC5EDD94A95CA, "even ")
+SUBS(AR|AA|AS|AO, str_0F745394BA57F7F1, "air ")
+SUBS(AR|RGT|AA|AS|AO, str_929FE1BEB911F16F, "ira ")
+SUBS(AR|AA|AN|AI, str_9CAD49AC9B02787F, "anne ")
+SUBS(AR|RGT|AA|AN|AI, str_825E86353E58E557, "jane ")
+SUBS(AR|AE|AT|AO, str_3E9F631F6868B537, "did ")
+SUBS(AR|RGT|AE|AT|AO, str_732FCC97258E0FD6, "its ")
+SUBS(AR|AA|AS|AI, str_467AF751A93D5FEA, "were ")
+SUBS(AR|RGT|AA|AS|AI, str_E379EB50E86BEB3A, "ear ")
+SUBS(AR|AA|AN|AO, str_83396DA0D7927D05, "any ")
+SUBS(AR|RGT|AA|AN|AO, str_78E990102B716EE8, "nay ")
+SUBS(AR|AS|AI|AP, str_C07FB7D845986B9B, "zero ")
+SUBS(AR|RGT|AS|AI|AP, str_ECAAA38338BDFA85, "error ")
+SUBS(AR|AA|AE|AN, str_77BE4D44A5F2AD27, "am ")
+SUBS(AR|RGT|AA|AE|AN, str_7814AB9A9D941FFB, "man ")
+SUBS(AR|AA|AT|AI, str_F231D25717222487, "tea ")
+SUBS(AR|RGT|AA|AT|AI, str_6C2D1E83BFA41552, "eat ")
+SUBS(AR|AA|AE|AO, str_A7496AA18767D1E0, "six ")
+SUBS(AR|RGT|AA|AE|AO, str_D2F95EA81F7C61D5, "ix ")
+SUBS(AR|AE|AN|AI, str_B164BA3889B2FB9E, "she ")
+SUBS(AR|RGT|AE|AN|AI, str_5140BEC191346017, "me ")
+SUBS(AR|AS|AE|AP, str_DAE84F2729ACCE2B, "for ")
+SUBS(AR|RGT|AS|AE|AP, str_BF38370C83727D39, "of ")
+SUBS(AR|AA|AE|AI, str_4F0274A2E13525F6, "sea ")
+SUBS(AR|RGT|AA|AE|AI, str_9951159C79D95936, "ease ")
+SUBS(AR|AS|AN|AI, str_D1550EF3FF742581, "zen ")
+SUBS(AR|RGT|AS|AN|AI, str_8BA7632DC4B89BB1, "her ")
+SUBS(AR|AE|AN|AO, str_55863E4A819B49C1, "sin ")
+SUBS(AR|RGT|AE|AN|AO, str_A0AA5B74C096E40B, "my ")
+SUBS(AR|AE|AT|AI, str_FA675AA04C2E42E3, "set ")
+SUBS(AR|RGT|AE|AT|AI, str_F24CCF918506949F, "ed ")
+SUBS(AR|AE|AI|AO, str_1496CCFA31912C0B, "sue ")
+SUBS(AR|RGT|AE|AI|AO, str_93E9AC18AF76041F, "us ")
+SUBS(AR|AA|AN|AP, str_9F8EB086C328F80A, "all ")
+SUBS(AR|RGT|AA|AN|AP, str_7E7904D7326BCF29, "la ")
+SUBS(AR|AA|AT|AN, str_04B8207B25B0547B, "pan ")
+SUBS(AR|RGT|AA|AT|AN, str_21C1365689620902, "japan ")
+SUBS(AR|AE|AN|AP, str_30A932E1CBDCE716, "soon ")
+SUBS(AR|RGT|AE|AN|AP, str_473356DB440A7383, "mom ")
+SUBS(AR|AS|AE|AT|AI|AO, str_40711EF1BB6CE033, "five ")
+SUBS(AR|AA|AS|AE|AT|AO, str_4F6C506138FB813D, "paris ")
+SUBS(AR|AA|AS|AT|AI|AO, str_CB15D333C42E37D6, "great ")
+SUBS(AR|AA|AS|AE|AO|AP, str_B605F828461B6E2D, "warriors ")
+SUBS(AR|AA|AS|AE|AT|AP, str_6FD3D941462F3451, "words ")
+SUBS(AR|AA|AS|AT|AN|AO, str_0A79A87D8918C37C, "taking ")
+SUBS(AR|AA|AS|AE|AI|AP, str_66F9514DBFA60EF2, "we're ")
+SUBS(AR|AA|AE|AI|AO|AP, str_79D3E26175FCC175, "sioux ")
+SUBS(AR|AS|AE|AT|AO|AP, str_AEA7AF69C32E2CD4, "forgot ")
+SUBS(AR|AA|AS|AT|AO|AP, str_4E9BF03EDB04ADE3, "grow ")
+SUBS(AR|AA|AS|AE|AT|AN, str_A8A3948AAFF44BE9, "dark ")
+SUBS(AR|AA|AT|AI|AO, str_9B3F02A3D0BBA370, "put ")
+SUBS(AR|RGT|AA|AT|AI|AO, str_D443D6F10491FB2B, "up ")
+SUBS(AR|AA|AS|AE|AN, str_AFD48C0D96C26C82, "ask ")
+SUBS(AR|RGT|AA|AS|AE|AN, str_5A394C259CBDE4D5, "mark ")
+SUBS(AR|AA|AE|AN|AP, str_446D4CA556AB6841, "also ")
+SUBS(AR|RGT|AA|AE|AN|AP, str_B111895E3DEEB720, "man's ")
+SUBS(AR|AS|AT|AO|AP, str_8D95248E464BC3C1, "torrio ")
+SUBS(AR|RGT|AS|AT|AO|AP, str_9FF353D289A363BD, "org ")
+SUBS(AR|AS|AN|AI|AP, str_6077CFE95878168F, "role ")
+SUBS(AR|RGT|AS|AN|AI|AP, str_8E5F7D801B25691B, "honor ")
+SUBS(AR|AS|AE|AI|AO, str_E4CF94D769353920, "sure ")
+SUBS(AR|RGT|AS|AE|AI|AO, str_23A06B50C1DE7196, "users ")
+SUBS(AR|AA|AN|AO|AP, str_BA829DA851D5C5EF, "ally ")
+SUBS(AR|RGT|AA|AN|AO|AP, str_06FE528509A5B57E, "lay ")
+SUBS(AR|AA|AE|AT|AI, str_4E512B260E36DC65, "state ")
+SUBS(AR|RGT|AA|AE|AT|AI, str_57E4F81A2B4D6010, "east ")
+SUBS(AR|AE|AN|AI|AO, str_A49D311A65686F59, "sun ")
+SUBS(AR|RGT|AE|AN|AI|AO, str_E9D65B1F0CC7B588, "his ")
+SUBS(AR|AS|AN|AO|AP, str_43C37D137046DBEF, "roy ")
+SUBS(AR|RGT|AS|AN|AO|AP, str_890C8D54DAEB7C87, "york ")
+SUBS(AR|AT|AN|AI|AP, str_237E8B21EE3454D9, "both ")
+SUBS(AR|RGT|AT|AN|AI|AP, str_F8DC13D4D6DED2F5, "let ")
+SUBS(AR|AA|AS|AT|AN, str_90AB495ADEB4039C, "can ")
+SUBS(AR|RGT|AA|AS|AT|AN, str_7F1DF9F101812702, "jack ")
+SUBS(AR|AS|AT|AN|AO, str_721DAB46F9F1A099, "city ")
+SUBS(AR|RGT|AS|AT|AN|AO, str_01B39F439069940D, "king ")
+SUBS(AR|AS|AT|AI|AO, str_3433466C48D994E3, "true ")
+SUBS(AR|RGT|AS|AT|AI|AO, str_9DE220743565099F, "ice ")
+SUBS(AR|AS|AE|AN|AP, str_2DCB6A06FF45764B, "from ")
+SUBS(AR|RGT|AS|AE|AN|AP, str_216AEBBD35BB1EF3, "looks ")
+SUBS(AR|AT|AN|AO|AP, str_82F82D9347982012, "going ")
+SUBS(AR|RGT|AT|AN|AO|AP, str_E9481F155C267491, "into ")
+SUBS(AR|AA|AE|AT|AN, str_C1FDC4AB8597A676, "and ")
+SUBS(AR|RGT|AA|AE|AT|AN, str_7B311AC4CACA03C6, "mad ")
+SUBS(AR|AS|AT|AN|AI, str_08358E010E322628, "there ")
+SUBS(AR|RGT|AS|AT|AN|AI, str_06B986ED8B5C2398, "never ")
+SUBS(AR|AA|AE|AT|AO, str_B39CDB39BA4EDFE7, "said ")
+SUBS(AR|RGT|AA|AE|AT|AO, str_DA742024F3D69E0A, "ida ")
+SUBS(AR|AE|AN|AI|AP, str_29703C252684465E, "some ")
+SUBS(AR|RGT|AE|AN|AI|AP, str_AC07FAFFDC50A99F, "home ")
+SUBS(AR|AA|AS|AN|AO, str_F86A9EDBD6FC9244, "way ")
+SUBS(AR|RGT|AA|AS|AN|AO, str_AC11722CD97971C7, "iran ")
+SUBS(AR|AS|AE|AN|AO, str_76ADD09A983F86E4, "firm ")
+SUBS(AR|RGT|AS|AE|AN|AO, str_A20A8B3D86F67BE2, "kiss ")
+SUBS(AR|AE|AT|AN|AI, str_224997ADD6DF35BA, "them ")
+SUBS(AR|RGT|AE|AT|AN|AI, str_57FCD18102003294, "need ")
+SUBS(AR|AA|AS|AN|AP, str_2A1FE2610765B6AF, "work ")
+SUBS(AR|RGT|AA|AS|AN|AP, str_78916562F1D9BFAA, "now ")
+SUBS(AR|AS|AE|AN|AI, str_EF44C91E30C22640, "fresh ")
+SUBS(AR|RGT|AS|AE|AN|AI, str_DEE3BBD571C511F7, "mere ")
+SUBS(AR|AA|AE|AN|AO, str_04451BF193552568, "say ")
+SUBS(AR|RGT|AA|AE|AN|AO, str_223DD41A813D045F, "many ")
+SUBS(AR|AA|AS|AI|AO, str_625BCB0AF25BADC4, "require ")
+SUBS(AR|RGT|AA|AS|AI|AO, str_1A51ED70233C0AEF, "iraq ")
+SUBS(AR|AA|AS|AE|AI, str_ABE60ED77BB0868A, "few ")
+SUBS(AR|RGT|AA|AS|AE|AI, str_3F7738E523F5301A, "ears ")
+SUBS(AR|AA|AS|AN|AI, str_43D073A61B4D28EA, "when ")
+SUBS(AR|RGT|AA|AS|AN|AI, str_C161ABA85FEDF657, "new ")
+SUBS(AR|AT|AN|AI|AO, str_30278AC8BAD5995C, "but ")
+SUBS(AR|RGT|AT|AN|AI|AO, str_7E91AE1D0B9C584A, "night ")
+SUBS(AR|AE|AT|AO|AP, str_0806A00E99F47F1E, "good ")
+SUBS(AR|RGT|AE|AT|AO|AP, str_8553C9AE3540A19D, "it's ")
+SUBS(AR|AA|AE|AN|AI, str_C1CFDEE565A45A39, "same ")
+SUBS(AR|RGT|AA|AE|AN|AI, str_F9F466F11B521E6F, "has ")
+SUBS(AR|AS|AN|AI|AO, str_9B96D050F4020292, "run ")
+SUBS(AR|RGT|AS|AN|AI|AO, str_4F0FB0EFA2C3B084, "henry ")
+SUBS(AR|AS|AT|AI|AP, str_3A528F16E289F01C, "cover ")
+SUBS(AR|RGT|AS|AT|AI|AP, str_2CCE6615DDD45C8E, "over ")
+SUBS(AR|AA|AN|AI|AP, str_88405EF2E946D1D6, "alone ")
+SUBS(AR|RGT|AA|AN|AI|AP, str_B24523534C6D82C9, "john ")
+SUBS(AR|AE|AT|AI|AO, str_EF833FE60ABC700E, "side ")
+SUBS(AR|RGT|AE|AT|AI|AO, str_85BC1A1AD7135055, "used ")
+SUBS(AR|AA|AN|AI|AO, str_D36C353C29396FB8, "queen ")
+SUBS(AR|RGT|AA|AN|AI|AO, str_0749613DBDDF6C21, "yeah ")
+SUBS(AR|AE|AT|AN|AO, str_DBD97E3B522FD333, "sitting ")
+SUBS(AR|RGT|AE|AT|AN|AO, str_0A7ED86EF765AFF1, "mind ")
+SUBS(AR|AS|AE|AT|AN, str_2F546AE769C0CBF8, "cbs ")
+SUBS(AR|RGT|AS|AE|AT|AN, str_8AC14839F77F07D3, "kd ")
+SUBS(AR|AA|AS|AI|AP, str_52EA90BBAFB4F4A1, "wore ")
+SUBS(AR|RGT|AA|AS|AI|AP, str_FEE35575A17EE85A, "owe ")
+SUBS(AR|AS|AE|AI|AP, str_6C574A0F59FA2300, "rose ")
+SUBS(AR|RGT|AS|AE|AI|AP, str_A9A8259196570018, "offer ")
+SUBS(AR|AS|AE|AT|AI, str_51512241229C5DF3, "street ")
+SUBS(AR|RGT|AS|AE|AT|AI, str_92C7783DE595AB4A, "effect ")
+SUBS(AR|AA|AT|AN|AI, str_DA20B440A7186A4B, "that ")
+SUBS(AR|RGT|AA|AT|AN|AI, str_89E5D4BB42BF5AC6, "have ")
+SUBS(AR|AE|AN|AO|AP, str_81F316EF045DA533, "sly ")
+SUBS(AR|RGT|AE|AN|AO|AP, str_2A2F016FAA9B3070, "i'm ")
+SUBS(AR|AE|AT|AN|AP, str_2457621BE8FFDD2E, "don't ")
+SUBS(AR|RGT|AE|AT|AN|AP, str_502F482B79087297, "most ")
+SUBS(AR|AA|AT|AN|AP, str_2F0B08746C6E2063, "plan ")
+SUBS(AR|RGT|AA|AT|AN|AP, str_31DBCE4A196B6F93, "job ")
+SUBS(AR|AA|AS|AE|AT|AI|AP, str_5204C59B3BF29E2F, "process ")
+SUBS(AR|AA|AS|AE|AI|AO|AP, str_2EEF85D3F346985C, "wife's ")
+SUBS(AR|AA|AS|AE|AT|AO|AP, str_51EB56552116C89D, "radio ")
+SUBS(AR|AA|AS|AE|AT|AI|AO, str_E484C1C2B2A4F93A, "arrived ")
+SUBS(AR|AA|AS|AE|AN|AO|AP, str_606B2F10B55FE195, "always ")
+SUBS(AR|AA|AS|AE|AT|AN|AP, str_1D76C98090617D6E, "down ")
+SUBS(AR|AA|AE|AN|AI|AO, str_D11B9A654063B9B3, "assume ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO, str_DEBD70C653B8860B, "human ")
+SUBS(AR|AE|AN|AI|AO|AP, str_AA1A1A0DAC58FCE8, "smile ")
+SUBS(AR|RGT|AE|AN|AI|AO|AP, str_C031A6DB25D4AFF7, "house ")
+SUBS(AR|AA|AE|AT|AN|AP, str_95C7F6F3D4DB5B15, "almost ")
+SUBS(AR|RGT|AA|AE|AT|AN|AP, str_A57E20B51804CF2C, "last ")
+SUBS(AR|AA|AT|AI|AO|AP, str_035AAD7808B22162, "quote ")
+SUBS(AR|RGT|AA|AT|AI|AO|AP, str_1907DA045A375125, "output ")
+SUBS(AR|AS|AE|AI|AO|AP, str_7E93CBAD3C3B58D0, "four ")
+SUBS(AR|RGT|AS|AE|AI|AO|AP, str_C2FEB17C7BDA2BD4, "ours ")
+SUBS(AR|AE|AT|AN|AI|AO, str_F67830C3E4E560AB, "this ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO, str_9AE637BD5FD038A8, "might ")
+SUBS(AR|AS|AE|AT|AN|AI, str_BF99AB6937309FE2, "remember ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI, str_F35A6D491FB40217, "members ")
+SUBS(AR|AS|AT|AI|AO|AP, str_03E3F540957262B2, "voice ")
+SUBS(AR|RGT|AS|AT|AI|AO|AP, str_209C990BC721AB9D, "occur ")
+SUBS(AR|AS|AT|AN|AO|AP, str_D86D167AB9B47857, "girl ")
+SUBS(AR|RGT|AS|AT|AN|AO|AP, str_101345D47E9C9CDE, "looking ")
+SUBS(AR|AA|AN|AI|AO|AP, str_7D50A0C65C92712F, "anyone ")
+SUBS(AR|RGT|AA|AN|AI|AO|AP, str_37D7C0A214B0A265, "enjoy ")
+SUBS(AR|AT|AN|AI|AO|AP, str_EF6EC7C5B5FE957F, "thought ")
+SUBS(AR|RGT|AT|AN|AI|AO|AP, str_F5F45EC56E19863D, "little ")
+SUBS(AR|AA|AS|AE|AT|AI, str_0E857BEC949CC40A, "after ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI, str_85DD689D339275FF, "except ")
+SUBS(AR|AA|AS|AE|AN|AI, str_BA89A60792F6D2AE, "answer ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI, str_4643015F5002ABFF, "make ")
+SUBS(AR|AA|AS|AN|AI|AP, str_4E6E8E4C9B45508F, "who ")
+SUBS(AR|RGT|AA|AS|AN|AI|AP, str_FAA922DD96A4D310, "how ")
+SUBS(AR|AA|AT|AN|AO|AP, str_12D789B35778048E, "point ")
+SUBS(AR|RGT|AA|AT|AN|AO|AP, str_8C3955AAA5717454, "national ")
+SUBS(AR|AA|AS|AE|AI|AO, str_31EBE5BA3BAF1564, "wife ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO, str_C3EA5519A54A708E, "easier ")
+SUBS(AR|AA|AS|AN|AI|AO, str_BCA1DAA79DB9C8AE, "why ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO, str_79F7715BBBB21655, "year ")
+SUBS(AR|AE|AT|AN|AO|AP, str_503F03DCEE6CB398, "still ")
+SUBS(AR|RGT|AE|AT|AN|AO|AP, str_18EB5CEDC005C927, "isn't ")
+SUBS(AR|AA|AE|AT|AI|AO, str_8F0137935E32C458, "despite ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO, str_F180086B81853B17, "idea ")
+SUBS(AR|AE|AT|AI|AO|AP, str_F0177691329BF1AD, "goes ")
+SUBS(AR|RGT|AE|AT|AI|AO|AP, str_67BF6CF47B192C42, "i've ")
+SUBS(AR|AA|AE|AT|AO|AP, str_E892467E0460DAC0, "gossip ")
+SUBS(AR|RGT|AA|AE|AT|AO|AP, str_A9AE864FDE8A2520, "ipod ")
+SUBS(AR|AA|AS|AT|AN|AP, str_9D99660948094B78, "call ")
+SUBS(AR|RGT|AA|AS|AT|AN|AP, str_B8729A7E003EEBD7, "local ")
+SUBS(AR|AS|AE|AN|AI|AP, str_4F290479EC7B8012, "feel ")
+SUBS(AR|RGT|AS|AE|AN|AI|AP, str_CA73DC3F774CBABC, "more ")
+SUBS(AR|AS|AN|AI|AO|AP, str_A1E8E2FD164B5C7E, "rule ")
+SUBS(AR|RGT|AS|AN|AI|AO|AP, str_8C5E240F4E5D3061, "your ")
+SUBS(AR|AS|AT|AN|AI|AO, str_84895AD0D6A60E58, "their ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO, str_E6D5EDD2E27809F9, "every ")
+SUBS(AR|AE|AT|AN|AI|AP, str_484C9079546B7C6E, "those ")
+SUBS(AR|RGT|AE|AT|AN|AI|AP, str_FD8E708197F5C58E, "moment ")
+SUBS(AR|AS|AT|AN|AI|AP, str_C19C0AAE3679C6D9, "brother ")
+SUBS(AR|RGT|AS|AT|AN|AI|AP, str_36FAD9241CEA5C82, "other ")
+SUBS(AR|AA|AE|AT|AN|AO, str_6C79F7FA2DF8C5A3, "day ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO, str_62D4959696367129, "instant ")
+SUBS(AR|AS|AE|AT|AN|AO, str_C339147D80754375, "find ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO, str_4619E5AA3B8E6B39, "kind ")
+SUBS(AR|AA|AE|AT|AN|AI, str_8ACEDC7348DC7E27, "death ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI, str_B8157EA41E09D921, "had ")
+SUBS(AR|AA|AT|AN|AI|AP, str_56B0C240EA9FE481, "people ")
+SUBS(AR|RGT|AA|AT|AN|AI|AP, str_591BCA852B1294CC, "help ")
+SUBS(AR|AA|AS|AE|AN|AP, str_BA3809CE0E475488, "woman ")
+SUBS(AR|RGT|AA|AS|AE|AN|AP, str_6F239254D0D8ABBC, "major ")
+SUBS(AR|AA|AT|AN|AI|AO, str_A199A8785F0B305B, "anything ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO, str_AD1AB4C08BF16CA6, "having ")
+SUBS(AR|AA|AE|AN|AI|AP, str_EE46D7E3DE224990, "shall ")
+SUBS(AR|RGT|AA|AE|AN|AI|AP, str_7A05C28B693E6259, "male ")
+SUBS(AR|AS|AE|AT|AI|AP, str_5173ADE4944D0776, "force ")
+SUBS(AR|RGT|AS|AE|AT|AI|AP, str_EC35C4B5B1F55FBB, "order ")
+SUBS(AR|AA|AS|AE|AN|AO, str_D3DB4C04069FC93F, "army ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO, str_D326DB4A65CE22C7, "mary ")
+SUBS(AR|AS|AE|AT|AN|AP, str_AFCC3D83DFCADE82, "front ")
+SUBS(AR|RGT|AS|AE|AT|AN|AP, str_64B31ADF56C7440F, "lord ")
+SUBS(AR|AS|AE|AN|AO|AP, str_C670DB2E3BA8D8F4, "sorry ")
+SUBS(AR|RGT|AS|AE|AN|AO|AP, str_E6F5630257B79DD0, "mirror ")
+SUBS(AR|AA|AE|AN|AO|AP, str_279C5D17219228B4, "animal ")
+SUBS(AR|RGT|AA|AE|AN|AO|AP, str_AB1E39CC151AAAEC, "mail ")
+SUBS(AR|AA|AE|AT|AI|AP, str_97D5E1E2DDCE0F5D, "stopped ")
+SUBS(AR|RGT|AA|AE|AT|AI|AP, str_B2BF1DD0344AF8AF, "exposed ")
+SUBS(AR|AA|AS|AT|AN|AI, str_FC132AA2C16D882F, "what ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI, str_864A667355C4B3C2, "each ")
+SUBS(AR|AS|AE|AN|AI|AO, str_701758C383D21C1A, "fine ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO, str_2CC4A420745FDB22, "mike ")
+SUBS(AR|AA|AS|AT|AI|AP, str_4D2A6306F9C9BFCB, "power ")
+SUBS(AR|RGT|AA|AS|AT|AI|AP, str_EC999A983A431E7C, "operate ")
+SUBS(AR|AA|AS|AN|AO|AP, str_CC94E0C76922BF90, "will ")
+SUBS(AR|RGT|AA|AS|AN|AO|AP, str_21145976ED448EED, "okay ")
+SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_696F5175F70F9C32, "support ")
+SUBS(AR|AS|AE|AT|AN|AO|AP, str_3FAB961579587CB5, "story ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_1CEE30E7027402BC, "morning ")
+SUBS(AR|AA|AE|AT|AN|AI|AP, str_6BC2917C61A3F92D, "that's ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_1160B06F4F7112E2, "least ")
+SUBS(AR|AS|AE|AN|AI|AO|AP, str_DEED0AFBEF843B42, "full ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_B49C2360C17BFAA5, "life ")
+SUBS(AR|AS|AE|AT|AI|AO|AP, str_A3E4FBB212A28B78, "course ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_2044EBFCFC5E992B, "office ")
+SUBS(AR|AA|AS|AT|AN|AI|AO, str_87226571AE131D8A, "with ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_073DA3382936C187, "nature ")
+SUBS(AR|AA|AS|AE|AT|AN|AI, str_8DFFD42CE860597C, "came ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_DA7F1A6E228C1A5B, "heard ")
+SUBS(AR|AA|AS|AT|AN|AO|AP, str_2F5D687E7759B962, "working ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_49E4C34496734F49, "knowing ")
+SUBS(AR|AA|AE|AN|AI|AO|AP, str_8589EF9E59347006, "anxious ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_B9DB7C8FDF935A94, "usually ")
+SUBS(AR|AA|AE|AT|AI|AO|AP, str_48F8387F4FB7D369, "positive ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_3B9FD8A0395168B4, "opposite ")
+SUBS(AR|AS|AE|AT|AN|AI|AO, str_AF3D9EAA19F822D9, "such ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_401EFB5649B2EBB4, "much ")
+SUBS(AR|AA|AS|AT|AN|AI|AP, str_C8DEFAE65FA4EF3E, "another ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_B74E83C046B23FC2, "later ")
+SUBS(AR|AS|AE|AT|AN|AI|AP, str_6E7EEC08674ED6D1, "before ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_EC81EEB3F21B0472, "left ")
+SUBS(AR|AA|AT|AN|AI|AO|AP, str_28BB10C5BB93CDE6, "about ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_7E7546519DC7B3C8, "upon ")
+SUBS(AR|AA|AS|AE|AT|AN|AO, str_38471417B8BD2111, "asking ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_114560D7A89BA1F4, "making ")
+SUBS(AR|AA|AS|AE|AN|AI|AO, str_BB64A6A5972FD42C, "wish ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_6BB7E1A1CA75BFB5, "years ")
+SUBS(AR|AA|AS|AT|AI|AO|AP, str_456C45E3CE4E4FD1, "group ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_E6642DD0F48EDBD7, "europe ")
+SUBS(AR|AA|AE|AT|AN|AI|AO, str_FA45FD5460D2DE0C, "game ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_C039D2A5D9FC5D72, "just ")
+SUBS(AR|AA|AE|AT|AN|AO|AP, str_612AE2FB632AD051, "among ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_8623908E0D25EC7E, "lady ")
+SUBS(AR|AA|AS|AN|AI|AO|AP, str_2223CB8066D845B9, "while ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_CB9940FE62844BE1, "early ")
+SUBS(AR|AA|AS|AE|AN|AI|AP, str_7B4540ACD20A8E39, "women ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_57FB1B446847BBC1, "half ")
+SUBS(AR|AE|AT|AN|AI|AO|AP, str_D6EE20239053CED9, "something ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_95035F1A76A4B5DB, "lives ")
+SUBS(AR|AS|AT|AN|AI|AO|AP, str_4527C3E99AECDB31, "through ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_E1CDCB2AFADE1111, "everyone ")
+SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_E5AE62F9B29AD444, "families ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_93375F8043379EC1, "meanwhile ")
+SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_CD4ABC5E1C8E848A, "could ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_38DACC470533AA15, "itself ")
+SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_F1CF6AF5D5BFD0AF, "without ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_DD452F0E9D35762C, "large ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_D70EDAD8867014E8, "called ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_5F9274F22D0B449A, "learned ")
+SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_719BC090B9A903EE, "possible ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_7FE017B6D898E126, "immediately ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_C358A55785D991BA, "because ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_22575911E719BC02, "experience ")
+SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_2BFAFC3EB8546058, "company ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_B36787B90CE5F35A, "important ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_83235A0FA2F65989, "would ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_6EBFDE396F485CF3, "especially ")
diff --git a/keyboards/gboards/dicts/aset/en-dvorak-keymap.def b/keyboards/gboards/dicts/aset/en-dvorak-keymap.def
new file mode 100644
index 0000000000..343e8b7cec
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/en-dvorak-keymap.def
@@ -0,0 +1,420 @@
+// This file is automatically generated. Do not edit it!
+
+PRES(AP, KC_S)
+PRES(AA, KC_A)
+PRES(AN, KC_H)
+PRES(AE, KC_E)
+PRES(AS, KC_O)
+PRES(AI, KC_T)
+PRES(AO, KC_N)
+PRES(AT, KC_I)
+PRES(AT|AI, KC_K)
+PRES(AA|AT, KC_P)
+PRES(AT|AP, KC_QUOT)
+PRES(AA|AN, KC_SCLN)
+PRES(AS|AT, KC_Y)
+PRES(AA|AO, KC_QUOT)
+PRES(AA|AP, KC_MINS)
+PRES(AA|AS, KC_COMM)
+PRES(AN|AI, KC_D)
+PRES(AO|AP, KC_L)
+PRES(AE|AI, KC_C)
+PRES(AI|AO, KC_R)
+PRES(AE|AN, KC_J)
+PRES(AN|AO, KC_G)
+PRES(AS|AN, KC_B)
+PRES(AE|AO, KC_V)
+PRES(AE|AT, KC_U)
+KEYS(AE|AP, cmb_e52b969e99584c51, {KC_LSFT, KC_0, COMBO_END})
+PRES(AS|AE, KC_DOT)
+PRES(AI|AP, KC_Z)
+PRES(AS|AP, KC_BSPC)
+PRES(AT|AN, KC_F)
+PRES(AS|AI, KC_W)
+PRES(AN|AP, KC_M)
+PRES(AS|AO, KC_Q)
+KEYS(AA|AI, cmb_12a7d61ee7e909a6, {KC_LSFT, KC_9, COMBO_END})
+KEYS(AA|AE, cmb_326203cf248f5a0b, {KC_LSFT, KC_1, COMBO_END})
+PRES(AT|AO, KC_X)
+SUBS(AR|AA|AI|AP, str_3B1A13C290639852, "sat ")
+SUBS(AR|AS|AT|AO, str_3ED234DBAE3D7B8E, "nixon ")
+SUBS(AR|AE|AI|AP, str_FA675AA04C2E42E3, "set ")
+PRES(AN|AI|AO|AP, KC_ENT)
+SUBS(AR|AS|AE|AT, str_E429BF3EE734FF3A, "you ")
+SUBS(AR|AA|AS|AO, str_68A050786B16A5F7, "o' ")
+SUBS(AR|AA|AT|AN, str_AE7C21F6A7204ABC, "hip ")
+SUBS(AR|AS|AN|AO, str_EB95C155685E35D7, "go ")
+SUBS(AR|AA|AT|AP, str_4DFAE898587FE4FE, "pass ")
+SUBS(AR|AA|AI|AO, str_7AAFE2EE07648FED, "ran ")
+SUBS(AR|AA|AE|AO, str_868067C442CD38C1, "van ")
+SUBS(AR|AS|AT|AN|AI, str_87226571AE131D8A, "with ")
+SUBS(AR|AA|AT|AI|AO, str_2569286750C7B4F4, "part ")
+SUBS(AR|AS|AT|AI|AP, str_BDB5D53B3D616C95, "sky ")
+SUBS(AR|AA|AS|AT|AP, str_04451BF193552568, "say ")
+SUBS(AR|AA|AS|AE|AI, str_7AAAAFE6320C0D6B, "coat ")
+SUBS(AR|AE|AT|AI|AP, str_371C6F1198A5A44E, "success ")
+SUBS(AR|AA|AS|AE|AN, str_E71CDEA10812077E, "abee ")
+SUBS(AR|AS|AE|AI|AP, str_DC266345A77997C1, "west ")
+SUBS(AR|AA|AS|AI|AP, str_FB4F2F8581A28E79, "was ")
+SUBS(AR|AS|AE|AT|AP, str_9CFD6F6C59053F15, "eyes ")
+SUBS(AR|AA|AT|AI|AP, str_AFD48C0D96C26C82, "ask ")
+SUBS(AR|AA|AE|AT|AN, str_DCADC79BBC1A1497, "heap ")
+SUBS(AR|AA|AS|AE|AT, str_AAB1D405F8D273AF, "pope ")
+SUBS(AR|AS|AE|AI, str_C8F40BD7102B7E24, "we ")
+SUBS(AR|RGT|AS|AE|AI, str_FEE35575A17EE85A, "owe ")
+SUBS(AR|AN|AI|AO, str_546AE2E8DF2AFDB3, "dr ")
+SUBS(AR|RGT|AN|AI|AO, str_1F5578C977E22C6F, "nd ")
+SUBS(AR|AS|AN|AP, str_D2A8142DD2C2B864, "boss ")
+SUBS(AR|RGT|AS|AN|AP, str_473356DB440A7383, "mom ")
+SUBS(AR|AS|AI|AP, str_D2FF232093ED7FE9, "toss ")
+SUBS(AR|RGT|AS|AI|AP, str_4ED2D2B9D2D0F925, "oz ")
+SUBS(AR|AA|AE|AT, str_288993BA9FAF1F15, "pipe ")
+SUBS(AR|RGT|AA|AE|AT, str_D443D6F10491FB2B, "up ")
+SUBS(AR|AE|AT|AI, str_0F2C6B822BBFF497, "cut ")
+SUBS(AR|RGT|AE|AT|AI, str_9DE220743565099F, "ice ")
+SUBS(AR|AA|AN|AO, str_F3FA41B52DE36D40, "gang ")
+SUBS(AR|RGT|AA|AN|AO, str_4D07A4DED24106B4, "hang ")
+SUBS(AR|AS|AO|AP, str_30A932E1CBDCE716, "soon ")
+SUBS(AR|RGT|AS|AO|AP, str_71BB7B180F4C724C, "loss ")
+SUBS(AR|AS|AE|AN, str_7D2440FBBF9D0256, "be ")
+SUBS(AR|RGT|AS|AE|AN, str_31DBCE4A196B6F93, "job ")
+SUBS(AR|AA|AS|AT, str_4559382E20EB9335, "pay ")
+SUBS(AR|RGT|AA|AS|AT, str_CBA94FFB9DDDB35B, "ya ")
+SUBS(AR|AE|AO|AP, str_9DC99BC1636105A0, "seen ")
+SUBS(AR|RGT|AE|AO|AP, str_652B1CF209C5D907, "less ")
+SUBS(AR|AT|AI|AO, str_E8B598BF778C48B0, "tin ")
+SUBS(AR|RGT|AT|AI|AO, str_60A15FB00ABCCBCA, "ink ")
+SUBS(AR|AS|AE|AO, str_FE0DE06C30B4AB8D, "von ")
+SUBS(AR|RGT|AS|AE|AO, str_9A6C6AD5C510E57E, "one ")
+SUBS(AR|AA|AE|AP, str_4F0274A2E13525F6, "sea ")
+SUBS(AR|RGT|AA|AE|AP, str_9951159C79D95936, "ease ")
+SUBS(AR|AT|AN|AP, str_EABA263238C776B5, "fish ")
+SUBS(AR|RGT|AT|AN|AP, str_E9D65B1F0CC7B588, "his ")
+SUBS(AR|AA|AT|AO, str_968AF4858B6521BE, "pain ")
+SUBS(AR|RGT|AA|AT|AO, str_E5D0DBF6833C9487, "'i ")
+SUBS(AR|AA|AO|AP, str_9F8EB086C328F80A, "all ")
+SUBS(AR|RGT|AA|AO|AP, str_7E7904D7326BCF29, "la ")
+SUBS(AR|AA|AN|AP, str_77BE4D44A5F2AD27, "am ")
+SUBS(AR|RGT|AA|AN|AP, str_F9F466F11B521E6F, "has ")
+SUBS(AR|AE|AN|AP, str_B164BA3889B2FB9E, "she ")
+SUBS(AR|RGT|AE|AN|AP, str_5140BEC191346017, "me ")
+SUBS(AR|AT|AN|AO, str_0722DB63E15B9195, "fig ")
+SUBS(AR|RGT|AT|AN|AO, str_A8907BB9162F31E2, "high ")
+SUBS(AR|AE|AN|AO, str_FB51F2C8C00A7A37, "gene ")
+SUBS(AR|RGT|AE|AN|AO, str_3EB37F14209CB484, "egg ")
+SUBS(AR|AS|AT|AI, str_A9DE0A41D933835E, "took ")
+SUBS(AR|RGT|AS|AT|AI, str_9A86C59444872BAC, "kitty ")
+SUBS(AR|AS|AI|AO, str_5146C3491DA57E2B, "town ")
+SUBS(AR|RGT|AS|AI|AO, str_3F3B1F8B5A3E409E, "not ")
+SUBS(AR|AA|AT|AI, str_EDDB4B5D8E6E6CF7, "tip ")
+SUBS(AR|RGT|AA|AT|AI, str_31F7D241519F6E20, "kaa ")
+SUBS(AR|AT|AI|AP, str_2B382E2C87F633B5, "sit ")
+SUBS(AR|RGT|AT|AI|AP, str_732FCC97258E0FD6, "its ")
+SUBS(AR|AE|AT|AP, str_1496CCFA31912C0B, "sue ")
+SUBS(AR|RGT|AE|AT|AP, str_93E9AC18AF76041F, "us ")
+SUBS(AR|AS|AT|AN, str_8CCEA54EEE3F864A, "by ")
+SUBS(AR|RGT|AS|AT|AN, str_BF38370C83727D39, "of ")
+SUBS(AR|AE|AT|AN, str_22F999B882C34098, "fee ")
+SUBS(AR|RGT|AE|AT|AN, str_D55D0897EDFEB60B, "huh ")
+SUBS(AR|AT|AN|AI, str_3E9F631F6868B537, "did ")
+SUBS(AR|RGT|AT|AN|AI, str_D5ACE27258AF148F, "hit ")
+SUBS(AR|AT|AO|AP, str_A7496AA18767D1E0, "six ")
+SUBS(AR|RGT|AT|AO|AP, str_F50915F9E77588D7, "ill ")
+SUBS(AR|AE|AI|AO, str_39EAEC33BC5439E6, "ten ")
+SUBS(AR|RGT|AE|AI|AO, str_06B986ED8B5C2398, "never ")
+SUBS(AR|AS|AN|AI, str_4E6E8E4C9B45508F, "who ")
+SUBS(AR|RGT|AS|AN|AI, str_FAA922DD96A4D310, "how ")
+SUBS(AR|AE|AT|AO, str_106C36C84C6A6D7C, "vi ")
+SUBS(AR|RGT|AE|AT|AO, str_9F630A3292B712FA, "nine ")
+SUBS(AR|AA|AN|AI, str_DA20B440A7186A4B, "that ")
+SUBS(AR|RGT|AA|AN|AI, str_B8157EA41E09D921, "had ")
+SUBS(AR|AA|AE|AI, str_39D0688D43AC4064, "act ")
+SUBS(AR|RGT|AA|AE|AI, str_6C2D1E83BFA41552, "eat ")
+SUBS(AR|AE|AN|AI, str_0C571CCD7FA5FAEF, "the ")
+SUBS(AR|RGT|AE|AN|AI, str_F24CCF918506949F, "ed ")
+SUBS(AR|AS|AE|AN|AI|AP, str_484C9079546B7C6E, "those ")
+SUBS(AR|AA|AS|AN|AI|AO, str_2457621BE8FFDD2E, "don't ")
+SUBS(AR|AA|AS|AE|AN|AP, str_C8D8A206971E3C22, "base ")
+SUBS(AR|AA|AS|AE|AI|AP, str_95D15754412C81DA, "coast ")
+SUBS(AR|AA|AS|AN|AI|AP, str_A1ECA5B498E1A83A, "thomas ")
+SUBS(AR|AA|AS|AT|AI|AP, str_CB532D5DED67E46B, "stop ")
+SUBS(AR|AA|AS|AE|AT|AI, str_8A3CF03C5FA779DF, "type ")
+SUBS(AR|AE|AN|AO|AP, str_783DF1EF3115D810, "smell ")
+SUBS(AR|RGT|AE|AN|AO|AP, str_B969E2F841D9C54A, "men ")
+SUBS(AR|AS|AN|AI|AO, str_1D76C98090617D6E, "down ")
+SUBS(AR|RGT|AS|AN|AI|AO, str_242C57A2EE5F055B, "north ")
+SUBS(AR|AS|AE|AI|AO, str_467AF751A93D5FEA, "were ")
+SUBS(AR|RGT|AS|AE|AI|AO, str_2CCE6615DDD45C8E, "over ")
+SUBS(AR|AA|AS|AN|AO, str_353D7D379A2BBFCE, "ago ")
+SUBS(AR|RGT|AA|AS|AN|AO, str_0E60BB84D855A13B, "noah ")
+SUBS(AR|AT|AI|AO|AP, str_503F03DCEE6CB398, "still ")
+SUBS(AR|RGT|AT|AI|AO|AP, str_CFF985CA3C59BFF1, "list ")
+SUBS(AR|AA|AS|AO|AP, str_446D4CA556AB6841, "also ")
+SUBS(AR|RGT|AA|AS|AO|AP, str_BAE95AEBCBC31CEB, "loan ")
+SUBS(AR|AA|AS|AN|AI, str_FC132AA2C16D882F, "what ")
+SUBS(AR|RGT|AA|AS|AN|AI, str_4EE1983616EF60F2, "oath ")
+SUBS(AR|AS|AE|AN|AP, str_29703C252684465E, "some ")
+SUBS(AR|RGT|AS|AE|AN|AP, str_AC07FAFFDC50A99F, "home ")
+SUBS(AR|AE|AN|AI|AP, str_224997ADD6DF35BA, "them ")
+SUBS(AR|RGT|AE|AN|AI|AP, str_C7D7F29E47B4BF3E, "met ")
+SUBS(AR|AA|AE|AN|AI, str_8ACEDC7348DC7E27, "death ")
+SUBS(AR|RGT|AA|AE|AN|AI, str_864A667355C4B3C2, "each ")
+SUBS(AR|AS|AE|AN|AI, str_6DF8502CC4CDA8DB, "bed ")
+SUBS(AR|RGT|AS|AE|AN|AI, str_02FA2F0D36F77191, "object ")
+SUBS(AR|AA|AE|AN|AP, str_C1CFDEE565A45A39, "same ")
+SUBS(AR|RGT|AA|AE|AN|AP, str_DED45DDEBF0E4340, "james ")
+SUBS(AR|AS|AT|AI|AO, str_2A1FE2610765B6AF, "work ")
+SUBS(AR|RGT|AS|AT|AI|AO, str_E9481F155C267491, "into ")
+SUBS(AR|AS|AE|AO|AP, str_CB57DFC7BDDD7B84, "solve ")
+SUBS(AR|RGT|AS|AE|AO|AP, str_16E01F03892DC1D1, "love ")
+SUBS(AR|AA|AE|AI|AP, str_D5362858B5329DFE, "case ")
+SUBS(AR|RGT|AA|AE|AI|AP, str_57E4F81A2B4D6010, "east ")
+SUBS(AR|AS|AT|AN|AP, str_6B58DAE77CF6F199, "boys ")
+SUBS(AR|RGT|AS|AT|AN|AP, str_A0AA5B74C096E40B, "my ")
+SUBS(AR|AA|AE|AT|AO, str_A1FE22CFB5711A8E, "avenue ")
+SUBS(AR|RGT|AA|AE|AT|AO, str_67BF6CF47B192C42, "i've ")
+SUBS(AR|AS|AE|AT|AN, str_0F7882FBB9E32466, "buy ")
+SUBS(AR|RGT|AS|AE|AT|AN, str_FC4B92921CA14A88, "joy ")
+SUBS(AR|AA|AE|AO|AP, str_0C921261B86BB507, "save ")
+SUBS(AR|RGT|AA|AE|AO|AP, str_4A416D199D780078, "leave ")
+SUBS(AR|AA|AT|AN|AP, str_E05BFDB0A1C5FA8B, "ship ")
+SUBS(AR|RGT|AA|AT|AN|AP, str_7D7A787864763BBC, "map ")
+SUBS(AR|AE|AT|AN|AP, str_E3374BF3CE8F906D, "sum ")
+SUBS(AR|RGT|AE|AT|AN|AP, str_92AF4A68D7F14A59, "jim ")
+SUBS(AR|AA|AE|AN|AO, str_371831D0BD1D3132, "gave ")
+SUBS(AR|RGT|AA|AE|AN|AO, str_89E5D4BB42BF5AC6, "have ")
+SUBS(AR|AA|AN|AI|AO, str_C1FDC4AB8597A676, "and ")
+SUBS(AR|RGT|AA|AN|AI|AO, str_0AADDE3779A6F980, "hand ")
+SUBS(AR|AA|AS|AT|AI, str_F86A9EDBD6FC9244, "way ")
+SUBS(AR|RGT|AA|AS|AT|AI, str_21145976ED448EED, "okay ")
+SUBS(AR|AA|AS|AT|AO, str_83396DA0D7927D05, "any ")
+SUBS(AR|RGT|AA|AS|AT|AO, str_9BD947158C16F69A, "opinion ")
+SUBS(AR|AA|AE|AT|AP, str_99241769490F065E, "pause ")
+SUBS(AR|RGT|AA|AE|AT|AP, str_85D1F287CC8F2629, "usa ")
+SUBS(AR|AA|AS|AT|AN, str_4D9F45FDB5471EFD, "baby ")
+SUBS(AR|RGT|AA|AS|AT|AN, str_ACD7C28D984A2833, "happy ")
+SUBS(AR|AA|AE|AI|AO, str_83C8874562C3DF81, "are ")
+SUBS(AR|RGT|AA|AE|AI|AO, str_644ECC08D8B17004, "near ")
+SUBS(AR|AA|AN|AI|AP, str_4681B2FAC150FE1B, "sad ")
+SUBS(AR|RGT|AA|AN|AI|AP, str_7B311AC4CACA03C6, "mad ")
+SUBS(AR|AA|AS|AI|AO, str_85FB90AD5AF3F778, "want ")
+SUBS(AR|RGT|AA|AS|AI|AO, str_DA84D9A4529A15B9, "narrow ")
+SUBS(AR|AA|AT|AO|AP, str_2F0B08746C6E2063, "plan ")
+SUBS(AR|RGT|AA|AT|AO|AP, str_BA84125506BFD178, "i'll ")
+SUBS(AR|AA|AT|AN|AI, str_95AF45DBDC3B3D83, "paid ")
+SUBS(AR|RGT|AA|AT|AN|AI, str_DA742024F3D69E0A, "ida ")
+SUBS(AR|AS|AE|AT|AO, str_D36C353C29396FB8, "queen ")
+SUBS(AR|RGT|AS|AE|AT|AO, str_9B2E6FD27C339188, "union ")
+SUBS(AR|AE|AT|AO|AP, str_A49D311A65686F59, "sun ")
+SUBS(AR|RGT|AE|AT|AO|AP, str_94D858BCEE50AD6B, "live ")
+SUBS(AR|AA|AI|AO|AP, str_E84B7CE6394EDDE8, "start ")
+SUBS(AR|RGT|AA|AI|AO|AP, str_A57E20B51804CF2C, "last ")
+SUBS(AR|AA|AE|AT|AI, str_F8E9D339EE8F0786, "take ")
+SUBS(AR|RGT|AA|AE|AT|AI, str_3BE3101B06222C42, "keep ")
+SUBS(AR|AS|AI|AO|AP, str_EBE5544575924AF7, "sort ")
+SUBS(AR|RGT|AS|AI|AO|AP, str_412CDD1E78EA9B08, "lot ")
+SUBS(AR|AS|AT|AO|AP, str_81F316EF045DA533, "sly ")
+SUBS(AR|RGT|AS|AT|AO|AP, str_67863008AE8FD451, "only ")
+SUBS(AR|AS|AN|AI|AP, str_B48EFE9B90416327, "show ")
+SUBS(AR|RGT|AS|AN|AI|AP, str_502F482B79087297, "most ")
+SUBS(AR|AT|AN|AI|AP, str_F67830C3E4E560AB, "this ")
+SUBS(AR|RGT|AT|AN|AI|AP, str_BE08333590E1E58A, "kids ")
+SUBS(AR|AA|AT|AN|AO, str_25F54E15B0B3ABC1, "again ")
+SUBS(AR|RGT|AA|AT|AN|AO, str_A119D81D4A86EB8B, "hanging ")
+SUBS(AR|AS|AN|AO|AP, str_20CF80C46BB5F512, "song ")
+SUBS(AR|RGT|AS|AN|AO|AP, str_D2026F6619D39DA3, "long ")
+SUBS(AR|AE|AT|AI|AO, str_054DDEADD30B1F66, "turn ")
+SUBS(AR|RGT|AE|AT|AI|AO, str_8F95067BEB108348, "next ")
+SUBS(AR|AA|AS|AN|AP, str_3A17F6ED91E2A403, "bass ")
+SUBS(AR|RGT|AA|AS|AN|AP, str_49324C2305B3B483, "obama ")
+SUBS(AR|AE|AT|AN|AO, str_5D9F94AF994041EF, "give ")
+SUBS(AR|RGT|AE|AT|AN|AO, str_286C425EC106E430, "evening ")
+SUBS(AR|AS|AE|AN|AO, str_CC171B56CC89A739, "been ")
+SUBS(AR|RGT|AS|AE|AN|AO, str_B24523534C6D82C9, "john ")
+SUBS(AR|AA|AN|AO|AP, str_841274C574BC6F3C, "small ")
+SUBS(AR|RGT|AA|AN|AO|AP, str_7814AB9A9D941FFB, "man ")
+SUBS(AR|AE|AI|AO|AP, str_7C0F5E706EA39A05, "tell ")
+SUBS(AR|RGT|AE|AI|AO|AP, str_F8DC13D4D6DED2F5, "let ")
+SUBS(AR|AE|AT|AN|AI, str_C513224842565A3D, "feet ")
+SUBS(AR|RGT|AE|AT|AN|AI, str_92C7783DE595AB4A, "effect ")
+SUBS(AR|AE|AN|AI|AO, str_08358E010E322628, "there ")
+SUBS(AR|RGT|AE|AN|AI|AO, str_8BA7632DC4B89BB1, "her ")
+SUBS(AR|AS|AT|AN|AO, str_82F82D9347982012, "going ")
+SUBS(AR|RGT|AS|AT|AN|AO, str_371EE465B604F023, "ongoing ")
+SUBS(AR|AT|AN|AO|AP, str_A2B348B0BB34204B, "sign ")
+SUBS(AR|RGT|AT|AN|AO|AP, str_3E590F651B44D721, "hill ")
+SUBS(AR|AT|AN|AI|AO, str_1773D3DE23E4854F, "think ")
+SUBS(AR|RGT|AT|AN|AI|AO, str_7E91AE1D0B9C584A, "night ")
+SUBS(AR|AS|AE|AT|AI, str_721DAB46F9F1A099, "city ")
+SUBS(AR|RGT|AS|AE|AT|AI, str_99844BD74A4B3366, "out ")
+SUBS(AR|AE|AT|AN|AI|AP, str_FAC1CC00AF3E4FF0, "time ")
+SUBS(AR|RGT|AE|AT|AN|AI|AP, str_C039D2A5D9FC5D72, "just ")
+SUBS(AR|AA|AS|AE|AT|AO, str_7D50A0C65C92712F, "anyone ")
+SUBS(AR|RGT|AA|AS|AE|AT|AO, str_7E7546519DC7B3C8, "upon ")
+SUBS(AR|AE|AT|AN|AI|AO, str_84895AD0D6A60E58, "their ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO, str_7A9785B2733BF653, "under ")
+SUBS(AR|AA|AS|AE|AO|AP, str_88405EF2E946D1D6, "alone ")
+SUBS(AR|RGT|AA|AS|AE|AO|AP, str_9C2D045532275AE8, "one's ")
+SUBS(AR|AA|AS|AE|AT|AP, str_F333C561F94B5419, "suppose ")
+SUBS(AR|RGT|AA|AS|AE|AT|AP, str_68BBF029287BDD2A, "easy ")
+SUBS(AR|AA|AT|AN|AI|AP, str_B39CDB39BA4EDFE7, "said ")
+SUBS(AR|RGT|AA|AT|AN|AI|AP, str_5CBFBEC5EA04168A, "maid ")
+SUBS(AR|AA|AE|AT|AN|AI, str_9F26F0A23087EC9C, "face ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI, str_F180086B81853B17, "idea ")
+SUBS(AR|AA|AS|AE|AN|AI, str_BF2E6EC7C02A7E7E, "watch ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI, str_FC3367E0C6099BCA, "jaw ")
+SUBS(AR|AS|AE|AI|AO|AP, str_5A3CC09208D67861, "well ")
+SUBS(AR|RGT|AS|AE|AI|AO|AP, str_9F8B412C91D1400E, "news ")
+SUBS(AR|AS|AE|AT|AN|AO, str_E8116E15417ED2E9, "being ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO, str_D3C70CC67CBA9A1E, "enough ")
+SUBS(AR|AA|AS|AN|AO|AP, str_7CC468A54106718D, "along ")
+SUBS(AR|RGT|AA|AS|AN|AO|AP, str_CB6E0E5D0C6F9065, "lab ")
+SUBS(AR|AA|AE|AN|AI|AO, str_CB15D333C42E37D6, "great ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO, str_DA7F1A6E228C1A5B, "heard ")
+SUBS(AR|AT|AN|AI|AO|AP, str_F3E5067A2519AD56, "first ")
+SUBS(AR|RGT|AT|AN|AI|AO|AP, str_9AE637BD5FD038A8, "might ")
+SUBS(AR|AE|AT|AI|AO|AP, str_4CF76BBAFC5418A8, "since ")
+SUBS(AR|RGT|AE|AT|AI|AO|AP, str_312A2E7E56737AFE, "like ")
+SUBS(AR|AA|AE|AT|AO|AP, str_2B3F3F8FD6F81D18, "value ")
+SUBS(AR|RGT|AA|AE|AT|AO|AP, str_EDEECE8BA4D74D8C, "explain ")
+SUBS(AR|AS|AT|AN|AI|AP, str_2D5F3DAB5D1EE0CD, "books ")
+SUBS(AR|RGT|AS|AT|AN|AI|AP, str_CAB4630B3E51B22D, "myth ")
+SUBS(AR|AA|AE|AT|AI|AO, str_BE19F1863CB54849, "taken ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO, str_22575911E719BC02, "experience ")
+SUBS(AR|AA|AT|AN|AI|AO, str_F371381A7FBC125D, "didn't ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO, str_6EA0CAD85622D379, "i'd ")
+SUBS(AR|AS|AN|AI|AO|AP, str_3E10FCFA54E158F8, "world ")
+SUBS(AR|RGT|AS|AN|AI|AO|AP, str_8090D54F7F16580B, "old ")
+SUBS(AR|AA|AS|AT|AN|AO, str_695F4C5E27C2021C, "paying ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO, str_ED485F122FBF5650, "hoping ")
+SUBS(AR|AA|AT|AI|AO|AP, str_BC5A62377F628C2E, "talk ")
+SUBS(AR|RGT|AA|AT|AI|AO|AP, str_8553C9AE3540A19D, "it's ")
+SUBS(AR|AA|AS|AT|AI|AO, str_12D789B35778048E, "point ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO, str_516342B1ECA2730B, "nation ")
+SUBS(AR|AA|AE|AI|AO|AP, str_9D99660948094B78, "call ")
+SUBS(AR|RGT|AA|AE|AI|AO|AP, str_B74E83C046B23FC2, "later ")
+SUBS(AR|AA|AS|AT|AN|AP, str_88F447F6C429C220, "shop ")
+SUBS(AR|RGT|AA|AS|AT|AN|AP, str_39F5B3CF98CFD8B5, "may ")
+SUBS(AR|AA|AN|AI|AO|AP, str_6BC2917C61A3F92D, "that's ")
+SUBS(AR|RGT|AA|AN|AI|AO|AP, str_737BE95337E844AC, "hands ")
+SUBS(AR|AS|AT|AN|AO|AP, str_EAF049284E789A79, "bill ")
+SUBS(AR|RGT|AS|AT|AN|AO|AP, str_40A6847AD3E4A1D1, "million ")
+SUBS(AR|AA|AS|AI|AO|AP, str_4968598C78A4FB4D, "wasn't ")
+SUBS(AR|RGT|AA|AS|AI|AO|AP, str_7E0B205FA174F770, "law ")
+SUBS(AR|AA|AS|AE|AT|AN, str_69F05648D6473B51, "pub ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN, str_09F58C3D64737E0A, "hope ")
+SUBS(AR|AA|AE|AT|AI|AP, str_08E1BE82C44AD245, "speak ")
+SUBS(AR|RGT|AA|AE|AT|AI|AP, str_0532D3EC1FD0BA68, "escape ")
+SUBS(AR|AS|AT|AI|AO|AP, str_CC94E0C76922BF90, "will ")
+SUBS(AR|RGT|AS|AT|AI|AO|AP, str_0A9A527945928EFB, "look ")
+SUBS(AR|AA|AT|AN|AO|AP, str_F7CDC52FE2976DD4, "fall ")
+SUBS(AR|RGT|AA|AT|AN|AO|AP, str_2A2F016FAA9B3070, "i'm ")
+SUBS(AR|AE|AN|AI|AO|AP, str_9188264C284ED629, "themselves ")
+SUBS(AR|RGT|AE|AN|AI|AO|AP, str_5F50A83985AEACB6, "held ")
+SUBS(AR|AA|AE|AN|AI|AP, str_8DFFD42CE860597C, "came ")
+SUBS(AR|RGT|AA|AE|AN|AI|AP, str_6A27FF657EABC9BE, "made ")
+SUBS(AR|AS|AE|AT|AI|AO, str_AA7E98BADAB37A2A, "very ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO, str_8C5E240F4E5D3061, "your ")
+SUBS(AR|AS|AE|AN|AO|AP, str_8D52764B3308B085, "someone ")
+SUBS(AR|RGT|AS|AE|AN|AO|AP, str_0B0E955DAB01600D, "move ")
+SUBS(AR|AS|AE|AT|AN|AP, str_10128867CBAFEEA8, "busy ")
+SUBS(AR|RGT|AS|AE|AT|AN|AP, str_C031A6DB25D4AFF7, "house ")
+SUBS(AR|AS|AE|AN|AI|AO, str_43D073A61B4D28EA, "when ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO, str_36FAD9241CEA5C82, "other ")
+SUBS(AR|AA|AS|AE|AI|AO, str_A93FC4E7A3AB3CA1, "water ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO, str_B27709BF0298CE44, "ocean ")
+SUBS(AR|AA|AE|AN|AO|AP, str_FA45FD5460D2DE0C, "game ")
+SUBS(AR|RGT|AA|AE|AN|AO|AP, str_08DF25FB539B7130, "name ")
+SUBS(AR|AS|AE|AT|AO|AP, str_5D99B1A0E283597E, "soul ")
+SUBS(AR|RGT|AS|AE|AT|AO|AP, str_4927358DC229B618, "louis ")
+SUBS(AR|AS|AT|AN|AI|AO, str_DAE84F2729ACCE2B, "for ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO, str_6D8F86A39402B401, "nothing ")
+SUBS(AR|AA|AE|AT|AN|AP, str_2CD669BD9740E2C9, "safe ")
+SUBS(AR|RGT|AA|AE|AT|AN|AP, str_E320ED557B21C7C3, "jump ")
+SUBS(AR|AA|AE|AT|AN|AO, str_5E0C8ECDADE5F1A0, "page ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO, str_AD1AB4C08BF16CA6, "having ")
+SUBS(AR|AA|AS|AT|AO|AP, str_6EEA10216935E72D, "play ")
+SUBS(AR|RGT|AA|AS|AT|AO|AP, str_06FE528509A5B57E, "lay ")
+SUBS(AR|AS|AE|AT|AI|AP, str_FF228D3D8317FB83, "weeks ")
+SUBS(AR|RGT|AS|AE|AT|AI|AP, str_8D5265A24936F5EE, "keys ")
+SUBS(AR|AE|AT|AN|AO|AP, str_4F290479EC7B8012, "feel ")
+SUBS(AR|RGT|AE|AT|AN|AO|AP, str_B49C2360C17BFAA5, "life ")
+SUBS(AR|AS|AE|AT|AN|AI, str_30278AC8BAD5995C, "but ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI, str_2044EBFCFC5E992B, "office ")
+SUBS(AR|AA|AS|AT|AN|AI, str_6C79F7FA2DF8C5A3, "day ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI, str_5C1F7D75957CA201, "habit ")
+SUBS(AR|AA|AS|AE|AN|AO, str_6845B958D04E4FC6, "began ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO, str_F68E672F0728D823, "joan ")
+SUBS(AR|AA|AS|AE|AN|AI|AP, str_E0B528088F72D995, "became ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_8F9CB366A24B6DB9, "matthew ")
+SUBS(AR|AA|AE|AT|AN|AI|AP, str_D895CF9C2FCAE9D4, "asked ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_4643015F5002ABFF, "make ")
+SUBS(AR|AS|AE|AT|AN|AO|AP, str_F024C3F42062CAC2, "business ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_39E44B61B232DC17, "money ")
+SUBS(AR|AA|AS|AN|AI|AO|AP, str_95C7F6F3D4DB5B15, "almost ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_61179DB6D77CCDC6, "normal ")
+SUBS(AR|AE|AT|AN|AI|AO|AP, str_81D86634091300D7, "felt ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_EC81EEB3F21B0472, "left ")
+SUBS(AR|AA|AE|AN|AI|AO|AP, str_D70EDAD8867014E8, "called ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_DD452F0E9D35762C, "large ")
+SUBS(AR|AA|AS|AE|AI|AO|AP, str_0B68014AA9B44CC3, "across ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_B8729A7E003EEBD7, "local ")
+SUBS(AR|AA|AS|AE|AT|AN|AO, str_0FD394108C563406, "phone ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_59C6FA07ACC41B99, "heavy ")
+SUBS(AR|AA|AE|AT|AN|AI|AO, str_0E857BEC949CC40A, "after ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_B44202A156C97D96, "happened ")
+SUBS(AR|AA|AS|AT|AN|AI|AO, str_A199A8785F0B305B, "anything ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_59404CE48B401EA7, "ordinary ")
+SUBS(AR|AA|AS|AE|AN|AO|AP, str_A3D79ADD43575D94, "able ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_1B3C73CC12F8382A, "ebola ")
+SUBS(AR|AA|AS|AE|AT|AI|AO, str_4D2A6306F9C9BFCB, "power ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_291B6E5B19493008, "you're ")
+SUBS(AR|AA|AS|AE|AT|AN|AI, str_28BB10C5BB93CDE6, "about ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_F8D04F9FB877451A, "hoped ")
+SUBS(AR|AA|AE|AT|AN|AO|AP, str_7B8F91CB37DDB1F1, "simple ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_591BCA852B1294CC, "help ")
+SUBS(AR|AS|AE|AN|AI|AO|AP, str_448C9E2516C09696, "school ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_CA73DC3F774CBABC, "more ")
+SUBS(AR|AA|AS|AT|AN|AO|AP, str_7A84F6987C8A0811, "family ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_223DD41A813D045F, "many ")
+SUBS(AR|AS|AE|AT|AI|AO|AP, str_A3E4FBB212A28B78, "course ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_1CD7FF66940DE6E1, "likely ")
+SUBS(AR|AA|AS|AE|AN|AI|AO, str_C8DEFAE65FA4EF3E, "another ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_8E5A30364A943EC9, "edward ")
+SUBS(AR|AA|AS|AT|AN|AI|AP, str_CF8005E3F33D2936, "days ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_096F40DBA124CEDA, "habits ")
+SUBS(AR|AA|AS|AE|AT|AI|AP, str_DD746578C42672FD, "spoke ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_3B9FD8A0395168B4, "opposite ")
+SUBS(AR|AA|AT|AN|AI|AO|AP, str_006F85EBC7D6A342, "against ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_114560D7A89BA1F4, "making ")
+SUBS(AR|AA|AS|AE|AT|AO|AP, str_56B0C240EA9FE481, "people ")
+SUBS(AR|RGT|AA|AS|AE|AT|AO|AP, str_B9DB7C8FDF935A94, "usually ")
+SUBS(AR|AA|AS|AT|AI|AO|AP, str_606B2F10B55FE195, "always ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_8C3955AAA5717454, "national ")
+SUBS(AR|AS|AE|AT|AN|AI|AP, str_DC7DFAB3AB8E58A3, "sometimes ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_3ED202F6EBEE1C48, "outside ")
+SUBS(AR|AS|AT|AN|AI|AO|AP, str_2DCB6A06FF45764B, "from ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_101345D47E9C9CDE, "looking ")
+SUBS(AR|AS|AE|AT|AN|AI|AO, str_6E7EEC08674ED6D1, "before ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_F35A484FAD9BBE28, "often ")
+SUBS(AR|AA|AS|AE|AT|AN|AP, str_9F163FD928C775B2, "famous ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_3F67EE3EB98FBB4E, "maybe ")
+SUBS(AR|AA|AE|AT|AI|AO|AP, str_156052B6D0CC2F4A, "place ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_3831167D4AD8D40A, "natural ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_AF21CBC44BF9F140, "already ")
+SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_83235A0FA2F65989, "would ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_DFEA45C24149232E, "looked ")
+SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_3B78B1B662DA2511, "perhaps ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_CF044FBEAC05C20D, "instead ")
+SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_1F550C2F963E4CE7, "table ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_6F239254D0D8ABBC, "major ")
+SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_4435AADD7147CC97, "probably ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_B36787B90CE5F35A, "important ")
+SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_719BC090B9A903EE, "possible ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_7C4D111A8B27C0F1, "impossible ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_C358A55785D991BA, "because ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_1D26BFD0E139E5CE, "empty ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_17DD5A4D81625F40, "around ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_96F62D82D3878045, "opened ")
+SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_84E788D5ABD94372, "really ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_6BB7E1A1CA75BFB5, "years ")
diff --git a/keyboards/gboards/dicts/aset/en-keymap.def b/keyboards/gboards/dicts/aset/en-keymap.def
new file mode 100644
index 0000000000..d8d721f1b7
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/en-keymap.def
@@ -0,0 +1,403 @@
+// This file is automatically generated. Do not edit it!
+
+PRES(AP, KC_P)
+PRES(AI, KC_I)
+PRES(AT, KC_T)
+PRES(AE, KC_E)
+PRES(AA, KC_A)
+PRES(AO, KC_O)
+PRES(AS, KC_S)
+PRES(AN, KC_N)
+PRES(AS|AN, KC_J)
+PRES(AA|AI, KC_Z)
+PRES(AE|AT, KC_R)
+PRES(AA|AE, KC_X)
+PRES(AT|AI, KC_V)
+PRES(AN|AI, KC_H)
+KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END})
+PRES(AN|AP, KC_M)
+PRES(AE|AP, KC_QUOT)
+PRES(AA|AT, KC_F)
+PRES(AA|AS, KC_W)
+PRES(AO|AP, KC_SCLN)
+PRES(AS|AI, KC_K)
+PRES(AS|AE, KC_D)
+PRES(AS|AO, KC_DOT)
+KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END})
+PRES(AE|AN, KC_Y)
+PRES(AA|AN, KC_Q)
+PRES(AN|AO, KC_U)
+PRES(AE|AI, KC_COMM)
+PRES(AT|AP, KC_BSPC)
+PRES(AT|AN, KC_B)
+PRES(AE|AO, KC_MINS)
+PRES(AI|AO, KC_L)
+PRES(AT|AO, KC_G)
+KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END})
+PRES(AS|AT, KC_C)
+PRES(AA|AP, KC_SLSH)
+SUBS(AR|AI|AO|AP, str_E21E9A5405E9A529, "pool ")
+SUBS(AR|AN|AO|AP, str_D443D6F10491FB2B, "up ")
+SUBS(AR|AA|AS|AE, str_C8F40BD7102B7E24, "we ")
+SUBS(AR|AS|AE|AT, str_FA675AA04C2E42E3, "set ")
+PRES(AN|AI|AO|AP, KC_ENT)
+SUBS(AR|AA|AE|AT, str_83C8874562C3DF81, "are ")
+SUBS(AR|AS|AN|AP, str_A38FEA2A97C8F836, "ms ")
+SUBS(AR|AE|AI|AP, str_E5D0DBF6833C9487, "'i ")
+SUBS(AR|AA|AS|AT, str_51931D246213D5BA, "fact ")
+SUBS(AR|AE|AN|AO, str_E429BF3EE734FF3A, "you ")
+SUBS(AR|AA|AI|AP, str_9EFFC1EA3EEA7DCB, "pizza ")
+SUBS(AR|AS|AT|AN, str_F270B528E852FC3E, "bc ")
+SUBS(AR|AA|AT|AN, str_538F2D3A0A77D97B, "fan ")
+SUBS(AR|AS|AT|AO, str_F33C271EA486B8BF, "cost ")
+SUBS(AR|AN|AI|AP, str_ECB888FDF52591CF, "him ")
+SUBS(AR|AE|AO|AP, str_AAB1D405F8D273AF, "pope ")
+SUBS(AR|AE|AT|AP, str_342F8CACA85F0AD6, "per ")
+SUBS(AR|AN|AI|AO, str_C7CD45D62BA33F37, "oh ")
+SUBS(AR|AA|AS|AO, str_F8126BA90C544306, "wow ")
+SUBS(AR|AA|AS|AT|AO, str_035228752979D35D, "two ")
+SUBS(AR|AE|AN|AO|AP, str_39E44B61B232DC17, "money ")
+SUBS(AR|AE|AI|AO|AP, str_56B0C240EA9FE481, "people ")
+SUBS(AR|AA|AS|AT|AN, str_90AB495ADEB4039C, "can ")
+SUBS(AR|AS|AE|AO|AP, str_329F2D4D4E320928, "possessed ")
+SUBS(AR|AS|AE|AT|AN, str_FA42CAAA8023B228, "best ")
+SUBS(AR|AE|AN|AI|AP, str_2A2F016FAA9B3070, "i'm ")
+SUBS(AR|AA|AE|AT|AI, str_40711EF1BB6CE033, "five ")
+SUBS(AR|AA|AT|AN|AO, str_28BB10C5BB93CDE6, "about ")
+SUBS(AR|AA|AS|AO|AP, str_4D4A66AB4047501D, "soap ")
+SUBS(AR|AA|AE|AN|AO, str_7D50A0C65C92712F, "anyone ")
+SUBS(AR|AA|AE|AI|AO, str_4D67956A1937C06A, "alex ")
+SUBS(AR|AA|AN|AO|AP, str_CB3AE7249E334094, "mao ")
+SUBS(AR|AE|AN|AI|AO, str_67863008AE8FD451, "only ")
+SUBS(AR|AA|AS|AE|AT, str_467AF751A93D5FEA, "were ")
+SUBS(AR|AA|AT|AI|AO, str_F7CDC52FE2976DD4, "fall ")
+SUBS(AR|AS|AE|AT|AI, str_A9281666A28E6EC3, "tried ")
+SUBS(AR|AA|AT|AN|AP, str_4EF41F48D393118D, "mba ")
+SUBS(AR|AT|AI|AO|AP, str_C97DA9851380EBAC, "pilot ")
+SUBS(AR|AE|AT|AO, str_D3479574413D1475, "get ")
+SUBS(AR|RGT|AE|AT|AO, str_B97355B02DCE4543, "or ")
+SUBS(AR|AE|AT|AN, str_7D2440FBBF9D0256, "be ")
+SUBS(AR|RGT|AE|AT|AN, str_EEF73D4A4AA7E9A8, "yet ")
+SUBS(AR|AE|AI|AO, str_05ED48987A1828F9, "el ")
+SUBS(AR|RGT|AE|AI|AO, str_E7368ADE4F929A85, "lie ")
+SUBS(AR|AS|AI|AP, str_50E8EDA878796D86, "sip ")
+SUBS(AR|RGT|AS|AI|AP, str_277D4DE77C229423, "piss ")
+SUBS(AR|AT|AI|AO, str_EAA77E250F575DF4, "till ")
+SUBS(AR|RGT|AT|AI|AO, str_412CDD1E78EA9B08, "lot ")
+SUBS(AR|AE|AN|AP, str_49B1300C7F5B31D3, "enemy ")
+SUBS(AR|RGT|AE|AN|AP, str_A0AA5B74C096E40B, "my ")
+SUBS(AR|AA|AI|AO, str_9F8EB086C328F80A, "all ")
+SUBS(AR|RGT|AA|AI|AO, str_7E7904D7326BCF29, "la ")
+SUBS(AR|AT|AN|AO, str_30278AC8BAD5995C, "but ")
+SUBS(AR|RGT|AT|AN|AO, str_3F3B1F8B5A3E409E, "not ")
+SUBS(AR|AT|AO|AP, str_8574F11BEB82545C, "top ")
+SUBS(AR|RGT|AT|AO|AP, str_028BB7B551A4BD43, "pot ")
+SUBS(AR|AA|AE|AI, str_2F03BA66EA35FE84, "xiii ")
+SUBS(AR|RGT|AA|AE|AI, str_D2F95EA81F7C61D5, "ix ")
+SUBS(AR|AA|AE|AN, str_83396DA0D7927D05, "any ")
+SUBS(AR|RGT|AA|AE|AN, str_78E990102B716EE8, "nay ")
+SUBS(AR|AS|AT|AI, str_2B382E2C87F633B5, "sit ")
+SUBS(AR|RGT|AS|AT|AI, str_732FCC97258E0FD6, "its ")
+SUBS(AR|AA|AN|AP, str_77BE4D44A5F2AD27, "am ")
+SUBS(AR|RGT|AA|AN|AP, str_7814AB9A9D941FFB, "man ")
+SUBS(AR|AA|AS|AN, str_45A403A4960EE226, "san ")
+SUBS(AR|RGT|AA|AS|AN, str_FC3367E0C6099BCA, "jaw ")
+SUBS(AR|AA|AT|AO, str_353D7D379A2BBFCE, "ago ")
+SUBS(AR|RGT|AA|AT|AO, str_BF38370C83727D39, "of ")
+SUBS(AR|AA|AS|AP, str_40CAD0466FECC661, "sap ")
+SUBS(AR|RGT|AA|AS|AP, str_4DFAE898587FE4FE, "pass ")
+SUBS(AR|AS|AE|AP, str_851EF570F98047B6, "deep ")
+SUBS(AR|RGT|AS|AE|AP, str_9B6ECB908551EEF3, "'s ")
+SUBS(AR|AS|AE|AI, str_3E9F631F6868B537, "did ")
+SUBS(AR|RGT|AS|AE|AI, str_BE08333590E1E58A, "kids ")
+SUBS(AR|AS|AE|AO, str_16AE4BE38D2F26C0, "do ")
+SUBS(AR|RGT|AS|AE|AO, str_90B2E8A16883F3EC, "odd ")
+SUBS(AR|AA|AT|AI, str_3D1300B21B8F08E8, "fit ")
+SUBS(AR|RGT|AA|AT|AI, str_D7978D4AE69E4592, "if ")
+SUBS(AR|AA|AS|AI, str_AFD48C0D96C26C82, "ask ")
+SUBS(AR|RGT|AA|AS|AI, str_31F7D241519F6E20, "kaa ")
+SUBS(AR|AT|AN|AI, str_C13C85985E26BFC4, "bit ")
+SUBS(AR|RGT|AT|AN|AI, str_D5ACE27258AF148F, "hit ")
+SUBS(AR|AS|AE|AN, str_9CFD6F6C59053F15, "eyes ")
+SUBS(AR|RGT|AS|AE|AN, str_57FCD18102003294, "need ")
+SUBS(AR|AS|AN|AI, str_A4290D8DEB996891, "skin ")
+SUBS(AR|RGT|AS|AN|AI, str_E9D65B1F0CC7B588, "his ")
+SUBS(AR|AA|AT|AP, str_FDF976B399FBC710, "tap ")
+SUBS(AR|RGT|AA|AT|AP, str_7A06301D23DD2E0F, "pat ")
+SUBS(AR|AS|AN|AO, str_30A932E1CBDCE716, "soon ")
+SUBS(AR|RGT|AS|AN|AO, str_93E9AC18AF76041F, "us ")
+SUBS(AR|AT|AI|AP, str_EDDB4B5D8E6E6CF7, "tip ")
+SUBS(AR|RGT|AT|AI|AP, str_6A240DF3344885E8, "pit ")
+SUBS(AR|AE|AN|AI, str_7E3D8B1C859776CA, "eh ")
+SUBS(AR|RGT|AE|AN|AI, str_C4D48E3111A94BAB, "he ")
+SUBS(AR|AE|AT|AI, str_F867205888E811D6, "ever ")
+SUBS(AR|RGT|AE|AT|AI, str_28326B589AD375ED, "ive ")
+SUBS(AR|AS|AI|AO, str_05076833F755C857, "skills ")
+SUBS(AR|RGT|AS|AI|AO, str_0A9A527945928EFB, "look ")
+SUBS(AR|AA|AN|AI, str_BF40C27E59DAAC7B, "ah ")
+SUBS(AR|RGT|AA|AN|AI, str_BB30CFFA4957C51C, "han ")
+SUBS(AR|AA|AT|AN|AI|AP, str_BC2C779464890843, "path ")
+SUBS(AR|AA|AS|AE|AT|AI, str_F3E5067A2519AD56, "first ")
+SUBS(AR|AA|AS|AT|AI|AP, str_E784B575D979691F, "pack ")
+SUBS(AR|AA|AS|AE|AO|AP, str_B2BF1DD0344AF8AF, "exposed ")
+SUBS(AR|AA|AS|AT|AO|AP, str_AD78DF7DDE0D91B8, "gaps ")
+SUBS(AR|AA|AS|AT|AN|AO, str_5146C3491DA57E2B, "town ")
+SUBS(AR|AT|AN|AI|AO|AP, str_9AE637BD5FD038A8, "might ")
+SUBS(AR|AS|AE|AI|AO, str_30F2D4838947F30C, "else ")
+SUBS(AR|RGT|AS|AE|AI|AO, str_312A2E7E56737AFE, "like ")
+SUBS(AR|AA|AS|AE|AI, str_B39CDB39BA4EDFE7, "said ")
+SUBS(AR|RGT|AA|AS|AE|AI, str_F180086B81853B17, "idea ")
+SUBS(AR|AA|AI|AO|AP, str_36DDB482F63F4218, "apollo ")
+SUBS(AR|RGT|AA|AI|AO|AP, str_42719932F51C5677, "lap ")
+SUBS(AR|AS|AE|AN|AO, str_C9F20BC0A0F63318, "done ")
+SUBS(AR|RGT|AS|AE|AN|AO, str_FE0131033300781A, "use ")
+SUBS(AR|AA|AS|AN|AI, str_BB64A6A5972FD42C, "wish ")
+SUBS(AR|RGT|AA|AS|AN|AI, str_F9F466F11B521E6F, "has ")
+SUBS(AR|AT|AN|AO|AP, str_C7B05810B9878F2F, "tom ")
+SUBS(AR|RGT|AT|AN|AO|AP, str_9B3F02A3D0BBA370, "put ")
+SUBS(AR|AT|AN|AI|AP, str_AF1FE256DC6BB784, "tim ")
+SUBS(AR|RGT|AT|AN|AI|AP, str_3EAADEEF96AB44F4, "ibm ")
+SUBS(AR|AA|AS|AE|AO, str_4436AAC714307C5B, "wood ")
+SUBS(AR|RGT|AA|AS|AE|AO, str_E10AD3B44A42A964, "owed ")
+SUBS(AR|AE|AT|AN|AP, str_BF99AB6937309FE2, "remember ")
+SUBS(AR|RGT|AE|AT|AN|AP, str_10A1A694946FA759, "mr ")
+SUBS(AR|AS|AT|AN|AO, str_0F2C6B822BBFF497, "cut ")
+SUBS(AR|RGT|AS|AT|AN|AO, str_C039D2A5D9FC5D72, "just ")
+SUBS(AR|AS|AT|AI|AO, str_503F03DCEE6CB398, "still ")
+SUBS(AR|RGT|AS|AT|AI|AO, str_4DC1C2755B24D34B, "lost ")
+SUBS(AR|AS|AE|AI|AP, str_D50EF184D7DE152A, "spies ")
+SUBS(AR|RGT|AS|AE|AI|AP, str_3BE3101B06222C42, "keep ")
+SUBS(AR|AA|AT|AN|AI, str_DA20B440A7186A4B, "that ")
+SUBS(AR|RGT|AA|AT|AN|AI, str_C58EDF9C4F3ABF68, "hat ")
+SUBS(AR|AA|AS|AI|AO, str_CC94E0C76922BF90, "will ")
+SUBS(AR|RGT|AA|AS|AI|AO, str_0686A7F7D30D643C, "low ")
+SUBS(AR|AA|AE|AT|AP, str_56EEBB00F4636C97, "appear ")
+SUBS(AR|RGT|AA|AE|AT|AP, str_2569286750C7B4F4, "part ")
+SUBS(AR|AE|AT|AI|AP, str_704D673E0131D56E, "trip ")
+SUBS(AR|RGT|AE|AT|AI|AP, str_67BF6CF47B192C42, "i've ")
+SUBS(AR|AA|AS|AN|AO, str_C1060126A1DEC646, "won ")
+SUBS(AR|RGT|AA|AS|AN|AO, str_78916562F1D9BFAA, "now ")
+SUBS(AR|AS|AI|AO|AP, str_1C74789AE46C4DA7, "slip ")
+SUBS(AR|RGT|AS|AI|AO|AP, str_0EB8B6118D400DE1, "lips ")
+SUBS(AR|AS|AN|AI|AO, str_5D99B1A0E283597E, "soul ")
+SUBS(AR|RGT|AS|AN|AI|AO, str_B24523534C6D82C9, "john ")
+SUBS(AR|AA|AS|AE|AN, str_C1FDC4AB8597A676, "and ")
+SUBS(AR|RGT|AA|AS|AE|AN, str_C161ABA85FEDF657, "new ")
+SUBS(AR|AS|AE|AN|AP, str_ABDD78CFD9534F96, "seemed ")
+SUBS(AR|RGT|AS|AE|AN|AP, str_43F03EE41C293B0F, "jem ")
+SUBS(AR|AE|AT|AI|AO, str_7C0F5E706EA39A05, "tell ")
+SUBS(AR|RGT|AE|AT|AI|AO, str_2CCE6615DDD45C8E, "over ")
+SUBS(AR|AS|AT|AI|AP, str_ADFCEE2911E10044, "tips ")
+SUBS(AR|RGT|AS|AT|AI|AP, str_8D03100AFD2419C2, "pick ")
+SUBS(AR|AE|AT|AN|AI, str_0C571CCD7FA5FAEF, "the ")
+SUBS(AR|RGT|AE|AT|AN|AI, str_8BA7632DC4B89BB1, "her ")
+SUBS(AR|AA|AS|AN|AP, str_020E794D3DE91D12, "sam ")
+SUBS(AR|RGT|AA|AS|AN|AP, str_84EA13866E40CFF7, "mass ")
+SUBS(AR|AS|AN|AI|AP, str_E05BFDB0A1C5FA8B, "ship ")
+SUBS(AR|RGT|AS|AN|AI|AP, str_EE6DB6F94A1DBF2A, "miss ")
+SUBS(AR|AS|AE|AT|AO, str_0806A00E99F47F1E, "good ")
+SUBS(AR|RGT|AS|AE|AT|AO, str_EC35C4B5B1F55FBB, "order ")
+SUBS(AR|AA|AE|AT|AN, str_7AAFE2EE07648FED, "ran ")
+SUBS(AR|RGT|AA|AE|AT|AN, str_8F95067BEB108348, "next ")
+SUBS(AR|AS|AT|AO|AP, str_CB532D5DED67E46B, "stop ")
+SUBS(AR|RGT|AS|AT|AO|AP, str_993FB3354F37599E, "post ")
+SUBS(AR|AS|AT|AN|AI, str_F67830C3E4E560AB, "this ")
+SUBS(AR|RGT|AS|AT|AN|AI, str_622075F6AD6ED0AF, "nick ")
+SUBS(AR|AE|AT|AO|AP, str_F3B3DFDAE9EB2E0E, "report ")
+SUBS(AR|RGT|AE|AT|AO|AP, str_E77049B6FC0B816E, "poor ")
+SUBS(AR|AA|AS|AT|AI, str_B9BD537963CF3EDE, "wait ")
+SUBS(AR|RGT|AA|AS|AT|AI, str_67001204CE551856, "isaac ")
+SUBS(AR|AS|AN|AO|AP, str_E3374BF3CE8F906D, "sum ")
+SUBS(AR|RGT|AS|AN|AO|AP, str_E320ED557B21C7C3, "jump ")
+SUBS(AR|AA|AT|AO|AP, str_69EA1F9262FF90F7, "gap ")
+SUBS(AR|RGT|AA|AT|AO|AP, str_E4D8FCFFAEC006E6, "potato ")
+SUBS(AR|AA|AE|AT|AO, str_DAE84F2729ACCE2B, "for ")
+SUBS(AR|RGT|AA|AE|AT|AO, str_A9A8259196570018, "offer ")
+SUBS(AR|AA|AN|AI|AP, str_B934CCC840128CD9, "aim ")
+SUBS(AR|RGT|AA|AN|AI|AP, str_968AF4858B6521BE, "pain ")
+SUBS(AR|AE|AT|AN|AO, str_054DDEADD30B1F66, "turn ")
+SUBS(AR|RGT|AE|AT|AN|AO, str_8C5E240F4E5D3061, "your ")
+SUBS(AR|AA|AN|AI|AO, str_C99D050CA3B2DCC7, "annual ")
+SUBS(AR|RGT|AA|AN|AI|AO, str_54DEAA1A3F19A7FC, "hall ")
+SUBS(AR|AA|AE|AN|AI, str_B0D068D005493603, "annie ")
+SUBS(AR|RGT|AA|AE|AN|AI, str_0749613DBDDF6C21, "yeah ")
+SUBS(AR|AA|AS|AT|AP, str_95C59AB8275627DB, "cap ")
+SUBS(AR|RGT|AA|AS|AT|AP, str_718051F50C1745F9, "past ")
+SUBS(AR|AA|AE|AN|AP, str_E2E19588C5B3DEE3, "an' ")
+SUBS(AR|RGT|AA|AE|AN|AP, str_223DD41A813D045F, "many ")
+SUBS(AR|AS|AE|AT|AP, str_72A3E3974353AD96, "step ")
+SUBS(AR|RGT|AS|AE|AT|AP, str_D4E79D57ECF89EE4, "press ")
+SUBS(AR|AA|AS|AE|AP, str_C1951FB3B98123CF, "we'd ")
+SUBS(AR|RGT|AA|AS|AE|AP, str_D6DAEAB665CE4271, "passed ")
+SUBS(AR|AT|AN|AI|AO, str_EF6EC7C5B5FE957F, "thought ")
+SUBS(AR|RGT|AT|AN|AI|AO, str_E9481F155C267491, "into ")
+SUBS(AR|AS|AE|AN|AI, str_B164BA3889B2FB9E, "she ")
+SUBS(AR|RGT|AS|AE|AN|AI, str_4619E5AA3B8E6B39, "kind ")
+SUBS(AR|AA|AS|AT|AN|AI|AO, str_F1CF6AF5D5BFD0AF, "without ")
+SUBS(AR|AA|AE|AT|AN|AI|AO, str_C8DEFAE65FA4EF3E, "another ")
+SUBS(AR|AA|AS|AT|AI|AO, str_9D99660948094B78, "call ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO, str_A57E20B51804CF2C, "last ")
+SUBS(AR|AA|AS|AE|AN|AI, str_43D073A61B4D28EA, "when ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI, str_B8157EA41E09D921, "had ")
+SUBS(AR|AA|AS|AT|AN|AP, str_389AFA2E457B3E69, "camp ")
+SUBS(AR|RGT|AA|AS|AT|AN|AP, str_A9394C08A99670E3, "pants ")
+SUBS(AR|AA|AN|AI|AO|AP, str_279C5D17219228B4, "animal ")
+SUBS(AR|RGT|AA|AN|AI|AO|AP, str_DEBD70C653B8860B, "human ")
+SUBS(AR|AS|AE|AT|AN|AP, str_92C5DFE410A6CB2C, "spent ")
+SUBS(AR|RGT|AS|AE|AT|AN|AP, str_E7AFF3FB05CB8051, "mrs ")
+SUBS(AR|AS|AT|AN|AO|AP, str_430B184EA4F97301, "common ")
+SUBS(AR|RGT|AS|AT|AN|AO|AP, str_502F482B79087297, "most ")
+SUBS(AR|AA|AS|AN|AO|AP, str_BA3809CE0E475488, "woman ")
+SUBS(AR|RGT|AA|AS|AN|AO|AP, str_1E4A792A7CF7D30C, "mason ")
+SUBS(AR|AS|AN|AI|AO|AP, str_88F447F6C429C220, "shop ")
+SUBS(AR|RGT|AS|AN|AI|AO|AP, str_4E775E54248555FE, "mission ")
+SUBS(AR|AS|AT|AN|AI|AP, str_A523540C97D0BDFB, "smith ")
+SUBS(AR|RGT|AS|AT|AN|AI|AP, str_5640D73DE51D8F81, "pitch ")
+SUBS(AR|AE|AT|AI|AO|AP, str_1A4EF315EA80344F, "grip ")
+SUBS(AR|RGT|AE|AT|AI|AO|AP, str_A72C9EA66C108632, "prove ")
+SUBS(AR|AS|AE|AN|AI|AO, str_6C75DAC99724579F, "should ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO, str_C031A6DB25D4AFF7, "house ")
+SUBS(AR|AA|AS|AE|AN|AP, str_C1CFDEE565A45A39, "same ")
+SUBS(AR|RGT|AA|AS|AE|AN|AP, str_6A27FF657EABC9BE, "made ")
+SUBS(AR|AA|AS|AT|AN|AI, str_87226571AE131D8A, "with ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI, str_7F1DF9F101812702, "jack ")
+SUBS(AR|AA|AS|AE|AT|AN, str_79D415871F5A4054, "went ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN, str_6BB7E1A1CA75BFB5, "years ")
+SUBS(AR|AS|AE|AT|AN|AO, str_A3E4FBB212A28B78, "course ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO, str_BA082B87D184320C, "once ")
+SUBS(AR|AA|AE|AT|AN|AI, str_0FE57C284CD1D01B, "father ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI, str_89E5D4BB42BF5AC6, "have ")
+SUBS(AR|AA|AE|AI|AO|AP, str_F7D795E2DE04290F, "apple ")
+SUBS(AR|RGT|AA|AE|AI|AO|AP, str_B31539955F014950, "pale ")
+SUBS(AR|AS|AT|AI|AO|AP, str_FB0F58059CAD1F9C, "split ")
+SUBS(AR|RGT|AS|AT|AI|AO|AP, str_C319BFFA441D1BA3, "politics ")
+SUBS(AR|AS|AE|AN|AI|AP, str_89C08DE82ADCA512, "she'd ")
+SUBS(AR|RGT|AS|AE|AN|AI|AP, str_0A7ED86EF765AFF1, "mind ")
+SUBS(AR|AA|AT|AN|AO|AP, str_612AE2FB632AD051, "among ")
+SUBS(AR|RGT|AA|AT|AN|AO|AP, str_49324C2305B3B483, "obama ")
+SUBS(AR|AS|AT|AN|AI|AO, str_AF3D9EAA19F822D9, "such ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO, str_101345D47E9C9CDE, "looking ")
+SUBS(AR|AA|AT|AN|AI|AO, str_25F54E15B0B3ABC1, "again ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO, str_AD1AB4C08BF16CA6, "having ")
+SUBS(AR|AS|AE|AI|AO|AP, str_DD746578C42672FD, "spoke ")
+SUBS(AR|RGT|AS|AE|AI|AO|AP, str_724168D3AC384FD6, "people's ")
+SUBS(AR|AA|AS|AE|AI|AP, str_08E1BE82C44AD245, "speak ")
+SUBS(AR|RGT|AA|AS|AE|AI|AP, str_95AF45DBDC3B3D83, "paid ")
+SUBS(AR|AS|AE|AT|AI|AO, str_9F3EBE9397348D28, "told ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO, str_95035F1A76A4B5DB, "lives ")
+SUBS(AR|AE|AN|AI|AO|AP, str_A6ED3464B310461D, "employee ")
+SUBS(AR|RGT|AE|AN|AI|AO|AP, str_AC07FAFFDC50A99F, "home ")
+SUBS(AR|AA|AE|AN|AI|AP, str_E6E33C0422C174D9, "examine ")
+SUBS(AR|RGT|AA|AE|AN|AI|AP, str_ACD7C28D984A2833, "happy ")
+SUBS(AR|AE|AT|AN|AI|AO, str_4527C3E99AECDB31, "through ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO, str_36FAD9241CEA5C82, "other ")
+SUBS(AR|AE|AT|AN|AO|AP, str_6AEDC2564217B9FE, "room ")
+SUBS(AR|RGT|AE|AT|AN|AO|AP, str_CA73DC3F774CBABC, "more ")
+SUBS(AR|AA|AE|AT|AN|AO, str_6E7EEC08674ED6D1, "before ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO, str_F35A484FAD9BBE28, "often ")
+SUBS(AR|AA|AS|AN|AI|AP, str_2411238235BDC80F, "spanish ")
+SUBS(AR|RGT|AA|AS|AN|AI|AP, str_0ED035B7C06D15D8, "mask ")
+SUBS(AR|AA|AE|AT|AO|AP, str_0C644F2339AF7F37, "rapport ")
+SUBS(AR|RGT|AA|AE|AT|AO|AP, str_5E0C8ECDADE5F1A0, "page ")
+SUBS(AR|AA|AE|AT|AI|AO, str_81D86634091300D7, "felt ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO, str_B49C2360C17BFAA5, "life ")
+SUBS(AR|AA|AS|AN|AI|AO, str_4E6E8E4C9B45508F, "who ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO, str_FAA922DD96A4D310, "how ")
+SUBS(AR|AA|AS|AE|AT|AP, str_66F9514DBFA60EF2, "we're ")
+SUBS(AR|RGT|AA|AS|AE|AT|AP, str_854113AE64CFBDCB, "perfect ")
+SUBS(AR|AA|AS|AE|AI|AO, str_5A3CC09208D67861, "well ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO, str_AD5C8C5F9A14AB9D, "lead ")
+SUBS(AR|AS|AE|AN|AO|AP, str_29703C252684465E, "some ")
+SUBS(AR|RGT|AS|AE|AN|AO|AP, str_96F62D82D3878045, "opened ")
+SUBS(AR|AA|AS|AI|AO|AP, str_0C564574F3F9E640, "slap ")
+SUBS(AR|RGT|AA|AS|AI|AO|AP, str_F36F1306B68B4B29, "pillow ")
+SUBS(AR|AS|AE|AT|AI|AP, str_8F0137935E32C458, "despite ")
+SUBS(AR|RGT|AS|AE|AT|AI|AP, str_8553C9AE3540A19D, "it's ")
+SUBS(AR|AA|AE|AT|AN|AP, str_D3DB4C04069FC93F, "army ")
+SUBS(AR|RGT|AA|AE|AT|AN|AP, str_C7589DCE3D265D20, "matter ")
+SUBS(AR|AA|AS|AE|AN|AO, str_1D76C98090617D6E, "down ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO, str_603E54921B1E4A7D, "owned ")
+SUBS(AR|AA|AS|AE|AT|AO, str_6FD3D941462F3451, "words ")
+SUBS(AR|RGT|AA|AS|AE|AT|AO, str_C22A200B9829FEE1, "offered ")
+SUBS(AR|AS|AE|AT|AO|AP, str_97D5E1E2DDCE0F5D, "stopped ")
+SUBS(AR|RGT|AS|AE|AT|AO|AP, str_5204C59B3BF29E2F, "process ")
+SUBS(AR|AA|AE|AN|AI|AO, str_88405EF2E946D1D6, "alone ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO, str_06FE528509A5B57E, "lay ")
+SUBS(AR|AE|AT|AN|AI|AP, str_224997ADD6DF35BA, "them ")
+SUBS(AR|RGT|AE|AT|AN|AI|AP, str_03B00766F858AC97, "prevent ")
+SUBS(AR|AS|AE|AT|AN|AI, str_5CDCF79352E2D725, "these ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI, str_020C4055128AF08A, "interest ")
+SUBS(AR|AA|AE|AT|AI|AP, str_5905044D20CB233F, "repair ")
+SUBS(AR|RGT|AA|AE|AT|AI|AP, str_1CF1E20A6157822C, "private ")
+SUBS(AR|AA|AT|AI|AO|AP, str_3A10D175C336684E, "flip ")
+SUBS(AR|RGT|AA|AT|AI|AO|AP, str_0A475BE09185AD1F, "plato ")
+SUBS(AR|AA|AS|AE|AN|AI|AP, str_FE2065C67E4B5B94, "shame ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_4643015F5002ABFF, "make ")
+SUBS(AR|AA|AS|AE|AT|AN|AO, str_C358A55785D991BA, "because ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_A6F5E14196CFA092, "understand ")
+SUBS(AR|AA|AE|AN|AI|AO|AP, str_CFB2C1EB66ED6A6F, "example ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_6EEA10216935E72D, "play ")
+SUBS(AR|AS|AE|AN|AI|AO|AP, str_8A65747E667F35ED, "simply ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_68C5AA31332067D5, "pulled ")
+SUBS(AR|AA|AS|AN|AI|AO|AP, str_841274C574BC6F3C, "small ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_62190B4341383730, "plans ")
+SUBS(AR|AA|AS|AE|AI|AO|AP, str_7ABF668E1E4D2979, "we'll ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_6E1297423B061106, "please ")
+SUBS(AR|AS|AT|AN|AI|AO|AP, str_AF422F414139D629, "coming ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_401EFB5649B2EBB4, "much ")
+SUBS(AR|AE|AT|AN|AI|AO|AP, str_C6F4A4120E3273E8, "government ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_88CA21737CCD8555, "mother ")
+SUBS(AR|AA|AE|AT|AI|AO|AP, str_58DBAC3080F43A2C, "april ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_0962EABEC6DBB122, "plate ")
+SUBS(AR|AA|AS|AE|AT|AN|AP, str_8DFFD42CE860597C, "came ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_BC5AF0DFB06127DD, "parents ")
+SUBS(AR|AA|AT|AN|AI|AO|AP, str_2E642CEEC56D4266, "film ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_ED3D57E7A6CC9262, "imagination ")
+SUBS(AR|AA|AS|AE|AT|AN|AI, str_EC4217A15A7E46CA, "where ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_DA7F1A6E228C1A5B, "heard ")
+SUBS(AR|AA|AS|AT|AN|AO|AP, str_9F163FD928C775B2, "famous ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_83D651B957F56E60, "moscow ")
+SUBS(AR|AA|AS|AE|AT|AO|AP, str_8CCEE136EC2CB2E7, "corporate ")
+SUBS(AR|RGT|AA|AS|AE|AT|AO|AP, str_4D2A6306F9C9BFCB, "power ")
+SUBS(AR|AS|AE|AT|AN|AI|AO, str_CD4ABC5E1C8E848A, "could ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_87C388038CCDA852, "others ")
+SUBS(AR|AS|AE|AT|AN|AI|AP, str_F371381A7FBC125D, "didn't ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_18EB5CEDC005C927, "isn't ")
+SUBS(AR|AA|AS|AE|AT|AI|AO, str_2A1FE2610765B6AF, "work ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_1160B06F4F7112E2, "least ")
+SUBS(AR|AA|AS|AE|AT|AI|AP, str_A784182F63EBD443, "we've ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_4F6C506138FB813D, "paris ")
+SUBS(AR|AA|AE|AT|AN|AO|AP, str_2DCB6A06FF45764B, "from ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_C17A5BF262856807, "program ")
+SUBS(AR|AS|AE|AT|AN|AO|AP, str_2457621BE8FFDD2E, "don't ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_938C6DD7DE962990, "person ")
+SUBS(AR|AA|AS|AE|AN|AO|AP, str_7B4540ACD20A8E39, "women ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_9ABDD772A92586B9, "paused ")
+SUBS(AR|AA|AS|AT|AI|AO|AP, str_A069AFF6B6716321, "capital ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_F0F9720F9F9B0214, "political ")
+SUBS(AR|AA|AS|AT|AN|AI|AP, str_9BF471CFA3E278C9, "captain ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_FD725E8016F75D43, "match ")
+SUBS(AR|AA|AE|AT|AN|AI|AP, str_61FF1AE647568C2A, "remain ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_221AC40E44A1566C, "haven't ")
+SUBS(AR|AS|AE|AT|AI|AO|AP, str_2FF09ABA6AA2E0E4, "replied ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_323C08EE5775F9CB, "police ")
+SUBS(AR|AA|AS|AE|AN|AI|AO, str_83235A0FA2F65989, "would ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_B9DB7C8FDF935A94, "usually ")
+SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_B11AEB82875D9459, "special ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_156052B6D0CC2F4A, "place ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_AF21CBC44BF9F140, "already ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_987D112C04ADE934, "however ")
+SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_7A84F6987C8A0811, "family ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_B36787B90CE5F35A, "important ")
+SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_95C7F6F3D4DB5B15, "almost ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_114560D7A89BA1F4, "making ")
+SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_D6EE20239053CED9, "something ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_719BC090B9A903EE, "possible ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_6BC2917C61A3F92D, "that's ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_3B78B1B662DA2511, "perhaps ")
+SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_2BFAFC3EB8546058, "company ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_6F239254D0D8ABBC, "major ")
+SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_E80104C0BEF4DB70, "explained ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_5DE5DC9F9633371B, "played ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_6EBFDE396F485CF3, "especially ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_DB27096F0EC176E2, "himself ")
diff --git a/keyboards/gboards/dicts/aset/es-keymap.def b/keyboards/gboards/dicts/aset/es-keymap.def
new file mode 100644
index 0000000000..90eb8a9c68
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/es-keymap.def
@@ -0,0 +1,389 @@
+// This file is automatically generated. Do not edit it!
+
+PRES(AP, KC_P)
+PRES(AE, KC_E)
+PRES(AI, KC_I)
+PRES(AO, KC_O)
+PRES(AA, KC_A)
+PRES(AN, KC_N)
+PRES(AS, KC_S)
+PRES(AT, KC_T)
+PRES(AA|AP, KC_QUOT)
+PRES(AA|AN, KC_Q)
+PRES(AE|AP, KC_QUOT)
+PRES(AO|AP, KC_SCLN)
+KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END})
+PRES(AE|AT, KC_R)
+PRES(AT|AI, KC_V)
+PRES(AT|AO, KC_G)
+PRES(AA|AS, KC_W)
+PRES(AA|AE, KC_X)
+PRES(AS|AT, KC_C)
+PRES(AN|AO, KC_U)
+PRES(AT|AN, KC_B)
+PRES(AA|AI, KC_Z)
+PRES(AE|AN, KC_Y)
+PRES(AS|AN, KC_J)
+PRES(AS|AO, KC_DOT)
+KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END})
+PRES(AS|AI, KC_K)
+PRES(AE|AI, KC_COMM)
+PRES(AN|AI, KC_H)
+PRES(AT|AP, KC_BSPC)
+PRES(AN|AP, KC_M)
+PRES(AS|AE, KC_D)
+PRES(AE|AO, KC_MINS)
+PRES(AI|AO, KC_L)
+KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END})
+PRES(AA|AT, KC_F)
+SUBS(AR|AN|AI|AP, str_DD31FA4C91A58242, "mi ")
+SUBS(AR|AA|AO|AP, str_D1611781075D2D9C, "popa ")
+SUBS(AR|AS|AE|AO, str_17D1C10C08DF4AD2, "dos ")
+PRES(AN|AI|AO|AP, KC_ENT)
+SUBS(AR|AA|AT|AN, str_F897A5516019E357, "tan ")
+SUBS(AR|AA|AS|AE, str_50DEB8798435C793, "esa ")
+SUBS(AR|AE|AN|AO, str_B35C3D21350CF155, "yo ")
+SUBS(AR|AA|AT|AI, str_E7CDB1C1B374D11A, "va ")
+SUBS(AR|AS|AN|AI, str_55863E4A819B49C1, "sin ")
+SUBS(AR|AN|AO|AP, str_30C2B43BBCEDE1E1, "puno ")
+SUBS(AR|AS|AE|AT, str_7533AF731BE1BC8B, "ser ")
+SUBS(AR|AE|AN|AP, str_5140BEC191346017, "me ")
+SUBS(AR|AS|AE|AN, str_1C1F25487A3242E2, "deje ")
+SUBS(AR|AI|AO|AP, str_B5B1422F3FD01968, "pollo ")
+SUBS(AR|AE|AT|AN, str_5E7FFBEBF6AB0C31, "entre ")
+SUBS(AR|AT|AN|AI, str_7900A4063D4CBBC0, "ibn ")
+SUBS(AR|AS|AO|AP, str_3EF10ED805CC1C44, "pos ")
+SUBS(AR|AE|AI|AP, str_A491E07566DCBCCE, "pie ")
+SUBS(AR|AT|AO|AP, str_989F8AEF9B574D84, "opto ")
+SUBS(AR|AA|AE|AP, str_2481C00632CA30D3, "pa' ")
+SUBS(AR|AA|AI|AP, str_02F342C78B0C6C01, "paz ")
+SUBS(AR|AS|AT|AO, str_0351BD49ED64AC3B, "toco ")
+SUBS(AR|AE|AT|AP, str_D89F06941F4B44CE, "peter ")
+SUBS(AR|AS|AE|AP, str_431A39591B2ACBF3, "pese ")
+SUBS(AR|AA|AS|AP, str_C4E57FF7A10C22EC, "pasa ")
+SUBS(AR|AA|AS|AT, str_AEE6EBDC4ABDC3CD, "casa ")
+SUBS(AR|AN|AI|AO, str_9C46BB6CC5E90EC7, "nino ")
+SUBS(AR|AA|AE|AT, str_0437C1EBD8E5369E, "era ")
+SUBS(AR|AA|AT|AI|AP, str_5A09773083420344, "tapia ")
+SUBS(AR|AS|AE|AI|AP, str_6F968C7D36E5FB46, "pies ")
+SUBS(AR|AA|AS|AE|AT, str_75DF9DA7D504F48F, "esta ")
+SUBS(AR|AE|AI|AO|AP, str_D9D61321CCA0806E, "piel ")
+SUBS(AR|AE|AT|AN|AI, str_5ABF3B03AD7D60C8, "bien ")
+SUBS(AR|AA|AE|AN|AI, str_FAD1D7AF4C0C0252, "hay ")
+SUBS(AR|AA|AS|AT|AO, str_8B25EEAAE9A0AF25, "cosas ")
+SUBS(AR|AE|AN|AI|AO, str_825C50073E75911E, "hoy ")
+SUBS(AR|AA|AS|AI|AP, str_D44E5D8ED960FACD, "pais ")
+SUBS(AR|AA|AS|AT|AN, str_C45142C704A9D613, "santa ")
+SUBS(AR|AS|AE|AT|AN, str_0C3D18A66DA7E905, "debe ")
+SUBS(AR|AA|AE|AN|AO, str_6A810E6F1345F79D, "que ")
+SUBS(AR|AA|AS|AT|AI, str_59476CD5B5A37FAB, "casi ")
+SUBS(AR|AA|AS|AE|AO, str_9B9896941ABC7ABF, "dado ")
+SUBS(AR|AS|AT|AO|AP, str_74EB943165D62B4B, "poco ")
+SUBS(AR|AA|AE|AI|AP, str_9C44889EA41AEDDD, "pieza ")
+SUBS(AR|AS|AN|AI|AP, str_2AF23F7FD8046F6F, "mis ")
+SUBS(AR|AE|AT|AI, str_B617CB13CF22666C, "ver ")
+SUBS(AR|RGT|AE|AT|AI, str_D1DCEFF648227DE8, "ir ")
+SUBS(AR|AA|AI|AO, str_C49001FAA655F248, "al ")
+SUBS(AR|RGT|AA|AI|AO, str_7E7904D7326BCF29, "la ")
+SUBS(AR|AS|AE|AI, str_0E524646FABCAF85, "seis ")
+SUBS(AR|RGT|AS|AE|AI, str_E92B6095BA22C49B, "kid ")
+SUBS(AR|AA|AS|AN, str_45A403A4960EE226, "san ")
+SUBS(AR|RGT|AA|AS|AN, str_16D6BE915787F782, "ja ")
+SUBS(AR|AA|AN|AO, str_0F85B9710F065575, "aun ")
+SUBS(AR|RGT|AA|AN|AO, str_2023844574ACF1BC, "una ")
+SUBS(AR|AT|AI|AO, str_5D906EE6B78C720C, "volvio ")
+SUBS(AR|RGT|AT|AI|AO, str_C563754EAC80F5F1, "oigo ")
+SUBS(AR|AE|AT|AO, str_ECAAA38338BDFA85, "error ")
+SUBS(AR|RGT|AE|AT|AO, str_0C1FB583BB12C203, "otro ")
+SUBS(AR|AS|AN|AO, str_7412E38D9D55C2DC, "su ")
+SUBS(AR|RGT|AS|AN|AO, str_0341A6E60E56E199, "nos ")
+SUBS(AR|AT|AN|AO, str_48542059A4690B7A, "tu ")
+SUBS(AR|RGT|AT|AN|AO, str_87CA49C5238B7C4E, "noto ")
+SUBS(AR|AA|AS|AI, str_5B50BA5A3E82CCD9, "asi ")
+SUBS(AR|RGT|AA|AS|AI, str_C8C9A1891557B2DC, "kazz ")
+SUBS(AR|AA|AN|AI, str_960D76DEE34D23E7, "ahi ")
+SUBS(AR|RGT|AA|AN|AI, str_BF044DB5EE261598, "ha ")
+SUBS(AR|AA|AT|AO, str_68BE1B3432EE72AE, "foto ")
+SUBS(AR|RGT|AA|AT|AO, str_BF38370C83727D39, "of ")
+SUBS(AR|AA|AE|AI, str_4267018742102E46, "xii ")
+SUBS(AR|RGT|AA|AE|AI, str_D2F95EA81F7C61D5, "ix ")
+SUBS(AR|AA|AT|AP, str_4E64DC39CCCFB68B, "tapa ")
+SUBS(AR|RGT|AA|AT|AP, str_F8A3BC239830EB4A, "pata ")
+SUBS(AR|AA|AE|AN, str_71F52FF80B4E955D, "ay ")
+SUBS(AR|RGT|AA|AE|AN, str_CBA94FFB9DDDB35B, "ya ")
+SUBS(AR|AA|AN|AP, str_F438C1279CCEB43D, "ama ")
+SUBS(AR|RGT|AA|AN|AP, str_9EC2935D719709ED, "manana ")
+SUBS(AR|AE|AI|AO, str_05ED48987A1828F9, "el ")
+SUBS(AR|RGT|AE|AI|AO, str_05A9C753CDE4911A, "le ")
+SUBS(AR|AE|AN|AI, str_7E3D8B1C859776CA, "eh ")
+SUBS(AR|RGT|AE|AN|AI, str_C4D48E3111A94BAB, "he ")
+SUBS(AR|AS|AI|AO, str_7EBCF4E92D0AAB6E, "solo ")
+SUBS(AR|RGT|AS|AI|AO, str_7D5664732C823A0F, "los ")
+SUBS(AR|AA|AS|AE|AN|AO, str_34AB0010764EC1DA, "quedo ")
+SUBS(AR|AA|AT|AN|AI|AP, str_CF5289964180B811, "pinta ")
+SUBS(AR|AA|AS|AI|AO|AP, str_C7229D2451BA2DB0, "pasillo ")
+SUBS(AR|AA|AS|AE|AT|AN, str_EACD25C315D637DE, "estaba ")
+SUBS(AR|AA|AS|AE|AT|AI, str_FE075F445FAD0891, "vida ")
+SUBS(AR|AS|AT|AN|AI|AP, str_A523540C97D0BDFB, "smith ")
+SUBS(AR|AS|AE|AT|AI|AO, str_8A801F9AF69282E7, "cierto ")
+SUBS(AR|AT|AN|AI|AO|AP, str_7BE8D089AFEAFDA6, "ultimo ")
+SUBS(AR|AA|AE|AI|AO|AP, str_566479242BB250D5, "papel ")
+SUBS(AR|AS|AN|AI|AO|AP, str_EBC29441D7946099, "mismo ")
+SUBS(AR|AS|AT|AN|AO, str_E826CEF2ACCD90D0, "con ")
+SUBS(AR|RGT|AS|AT|AN|AO, str_2105BA4B2B9F53F7, "junto ")
+SUBS(AR|AA|AI|AO|AP, str_F6496DC813AAA524, "apolo ")
+SUBS(AR|RGT|AA|AI|AO|AP, str_0A3FAE924B2D7C5D, "plaza ")
+SUBS(AR|AS|AE|AN|AI, str_8AB7051D1BC68513, "dije ")
+SUBS(AR|RGT|AS|AE|AN|AI, str_6C0FF8EE7E7F564E, "ines ")
+SUBS(AR|AA|AT|AN|AP, str_9C7BB48EBD7121E3, "fama ")
+SUBS(AR|RGT|AA|AT|AN|AP, str_31B3473DAE0FC043, "mata ")
+SUBS(AR|AS|AE|AT|AO, str_3F177E9DD458659D, "todo ")
+SUBS(AR|RGT|AS|AE|AT|AO, str_FDBB7644FF4A00E1, "otros ")
+SUBS(AR|AS|AE|AN|AO, str_96C8EA5BE3B7A827, "donde ")
+SUBS(AR|RGT|AS|AE|AN|AO, str_CF131237C55B2EA5, "jose ")
+SUBS(AR|AA|AT|AN|AO, str_BABEDB16982A6B02, "tanto ")
+SUBS(AR|RGT|AA|AT|AN|AO, str_FF3F3B1F8B5A3E40, "nota ")
+SUBS(AR|AA|AS|AN|AP, str_020E794D3DE91D12, "sam ")
+SUBS(AR|RGT|AA|AS|AN|AP, str_3AD00291CF91C488, "mas ")
+SUBS(AR|AA|AE|AI|AO, str_470292E1774A98B0, "ella ")
+SUBS(AR|RGT|AA|AE|AI|AO, str_75803E8B71A90126, "leia ")
+SUBS(AR|AA|AN|AI|AP, str_B74E44C3D09CB3F0, "anima ")
+SUBS(AR|RGT|AA|AN|AI|AP, str_A3EDA8102177A97D, "mia ")
+SUBS(AR|AA|AT|AI|AO, str_A5547E1BA5CDE53E, "algo ")
+SUBS(AR|RGT|AA|AT|AI|AO, str_B3551F9AAD6C7D45, "italia ")
+SUBS(AR|AS|AT|AI|AO, str_913CECC656E36EDE, "visto ")
+SUBS(AR|RGT|AS|AT|AI|AO, str_A015E57171C5A19E, "loco ")
+SUBS(AR|AA|AE|AT|AI, str_41B64C1A303CDA0A, "vez ")
+SUBS(AR|RGT|AA|AE|AT|AI, str_929FE1BEB911F16F, "ira ")
+SUBS(AR|AA|AS|AI|AO, str_6741844A368F981E, "salio ")
+SUBS(AR|RGT|AA|AS|AI|AO, str_05DBE3DB5EFBA943, "las ")
+SUBS(AR|AT|AN|AI|AO, str_771EDB710CE19AB8, "tuvo ")
+SUBS(AR|RGT|AT|AN|AI|AO, str_EEF3139E99561E3D, "ningun ")
+SUBS(AR|AE|AN|AO|AP, str_68C3CD2B0D07881A, "empeno ")
+SUBS(AR|RGT|AE|AN|AO|AP, str_D8CC81716BA955CA, "muy ")
+SUBS(AR|AA|AS|AE|AP, str_F5D8B6FDF8888805, "espada ")
+SUBS(AR|RGT|AA|AS|AE|AP, str_BF35BC735E837CDF, "pase ")
+SUBS(AR|AA|AN|AI|AO, str_DF3A88D1DCACE502, "aqui ")
+SUBS(AR|RGT|AA|AN|AI|AO, str_3118B416FA644770, "hizo ")
+SUBS(AR|AS|AE|AT|AP, str_3ACC31C908690E7F, "espere ")
+SUBS(AR|RGT|AS|AE|AT|AP, str_B3AAAAA39FAD04BA, "perder ")
+SUBS(AR|AS|AE|AT|AI, str_2F957842D4460850, "decir ")
+SUBS(AR|RGT|AS|AE|AT|AI, str_958C07341B0A8741, "irse ")
+SUBS(AR|AS|AE|AI|AO, str_1861909A5CAE7807, "del ")
+SUBS(AR|RGT|AS|AE|AI|AO, str_C4A6AAB982B673F2, "les ")
+SUBS(AR|AA|AN|AO|AP, str_8CCDB3FD341FF633, "amo ")
+SUBS(AR|RGT|AA|AN|AO|AP, str_D0F280F187C19C7E, "mano ")
+SUBS(AR|AA|AS|AE|AI, str_F661EC259440B46B, "dia ")
+SUBS(AR|RGT|AA|AS|AE|AI, str_F180086B81853B17, "idea ")
+SUBS(AR|AE|AT|AN|AP, str_A7DAAA10DFA0B705, "repente ")
+SUBS(AR|RGT|AE|AT|AN|AP, str_680AEAD7C557B390, "mente ")
+SUBS(AR|AS|AE|AN|AP, str_D065DAF5F418D7EC, "depende ")
+SUBS(AR|RGT|AS|AE|AN|AP, str_92C437930874C6F2, "meses ")
+SUBS(AR|AA|AE|AT|AP, str_9B3D84E54FCB95F9, "aparte ")
+SUBS(AR|RGT|AA|AE|AT|AP, str_900C0665FDDCD3E1, "para ")
+SUBS(AR|AA|AS|AN|AO, str_3A8B64D5C12E1153, "anos ")
+SUBS(AR|RGT|AA|AS|AN|AO, str_798CC0CCB621062A, "unas ")
+SUBS(AR|AA|AT|AO|AP, str_F3EF3850A26E01B3, "apago ")
+SUBS(AR|RGT|AA|AT|AO|AP, str_5D293F93FABBED9D, "pago ")
+SUBS(AR|AA|AE|AT|AO, str_BB8BDA4574B8EAFC, "rato ")
+SUBS(AR|RGT|AA|AE|AT|AO, str_74EAC75913C3800D, "otra ")
+SUBS(AR|AS|AN|AI|AO, str_55564072F3D625CE, "sino ")
+SUBS(AR|RGT|AS|AN|AI|AO, str_115CCFCAD54F10BE, "hijo ")
+SUBS(AR|AA|AT|AN|AI, str_43AD10D41DE2729C, "fin ")
+SUBS(AR|RGT|AA|AT|AN|AI, str_E97A53773867C514, "habia ")
+SUBS(AR|AA|AS|AN|AI, str_B7AC20B542E223B0, "ansia ")
+SUBS(AR|RGT|AA|AS|AN|AI, str_F9F466F11B521E6F, "has ")
+SUBS(AR|AE|AT|AN|AO, str_86524E6ACDECD253, "gente ")
+SUBS(AR|RGT|AE|AT|AN|AO, str_B27B3C5A169EEAF2, "negro ")
+SUBS(AR|AT|AN|AO|AP, str_7BDC3AE19F1D3F77, "tomo ")
+SUBS(AR|RGT|AT|AN|AO|AP, str_63598A0CFD4270CA, "punto ")
+SUBS(AR|AE|AT|AO|AP, str_985226B4E7F941ED, "torpe ")
+SUBS(AR|RGT|AE|AT|AO|AP, str_8DDF4266066B432B, "por ")
+SUBS(AR|AT|AI|AO|AP, str_5C160B9C40438458, "tipo ")
+SUBS(AR|RGT|AT|AI|AO|AP, str_2C05F739BECF075B, "polvo ")
+SUBS(AR|AE|AT|AI|AO, str_D9A393BE13567B65, "rio ")
+SUBS(AR|RGT|AE|AT|AI|AO, str_337C838CCF3DA296, "llego ")
+SUBS(AR|AA|AS|AE|AN, str_67CFE6CC85BD1CD1, "deja ")
+SUBS(AR|RGT|AA|AS|AE|AN, str_37C4A203E75175E9, "nada ")
+SUBS(AR|AS|AI|AO|AP, str_1261B12442D25FC1, "soplo ")
+SUBS(AR|RGT|AS|AI|AO|AP, str_D697A8522D80103F, "piso ")
+SUBS(AR|AA|AS|AT|AP, str_53DD616AAFCCD0DA, "capa ")
+SUBS(AR|RGT|AA|AS|AT|AP, str_DD762A3048134660, "patas ")
+SUBS(AR|AS|AN|AO|AP, str_621C55C64E25834A, "somos ")
+SUBS(AR|RGT|AS|AN|AO|AP, str_9530C2F904CE3674, "puso ")
+SUBS(AR|AS|AE|AO|AP, str_79909EEF056E4804, "esposo ")
+SUBS(AR|RGT|AS|AE|AO|AP, str_403F88074C74D7CE, "peso ")
+SUBS(AR|AA|AE|AT|AN, str_34DF09A540AEF857, "eran ")
+SUBS(AR|RGT|AA|AE|AT|AN, str_324452A46CC22F53, "yabran ")
+SUBS(AR|AA|AE|AN|AP, str_1FE98214FA4D409C, "examen ")
+SUBS(AR|RGT|AA|AE|AN|AP, str_9D388C1F5C864255, "pena ")
+SUBS(AR|AA|AS|AO|AP, str_F75289636128CFF8, "sopa ")
+SUBS(AR|RGT|AA|AS|AO|AP, str_BC100D2D09DD60E2, "paso ")
+SUBS(AR|AE|AT|AI|AP, str_8256E9932CEBED2F, "repetir ")
+SUBS(AR|RGT|AE|AT|AI|AP, str_10A8823ACF08084F, "pierre ")
+SUBS(AR|AA|AN|AI|AO|AP, str_6451C20BA328EECD, "alma ")
+SUBS(AR|RGT|AA|AN|AI|AO|AP, str_8C909DCD35D4BFA0, "mal ")
+SUBS(AR|AA|AS|AT|AN|AI, str_F70B1450DD7EC677, "sabia ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI, str_A68C8E0159949EF0, "hasta ")
+SUBS(AR|AA|AS|AT|AO|AP, str_BB6283AAECECCCBD, "copa ")
+SUBS(AR|RGT|AA|AS|AT|AO|AP, str_1659A90E2B306C83, "pocas ")
+SUBS(AR|AS|AE|AN|AO|AP, str_4AC40B9D027BDCF1, "despues ")
+SUBS(AR|RGT|AS|AE|AN|AO|AP, str_579872B81E64C48F, "menos ")
+SUBS(AR|AA|AS|AT|AN|AP, str_F62F17A817EF074F, "cama ")
+SUBS(AR|RGT|AA|AS|AT|AN|AP, str_897A2E33CAB4B0A7, "pasaba ")
+SUBS(AR|AA|AS|AE|AN|AI, str_480C993D59043FCC, "ansiedad ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI, str_4AA54B27A70328DC, "nadie ")
+SUBS(AR|AA|AS|AN|AI|AP, str_91DCC24BDBD7539C, "animas ")
+SUBS(AR|RGT|AA|AS|AN|AI|AP, str_9337E69B7F452297, "misma ")
+SUBS(AR|AS|AT|AN|AI|AO, str_E3D64E1E756C466B, "cinco ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO, str_2CD6BC9A640B9A6A, "incluso ")
+SUBS(AR|AA|AE|AT|AN|AP, str_17B92FD13145D632, "tema ")
+SUBS(AR|RGT|AA|AE|AT|AN|AP, str_93F61927D0CD9859, "manera ")
+SUBS(AR|AA|AE|AN|AI|AP, str_4B51E1D9A287659B, "empieza ")
+SUBS(AR|RGT|AA|AE|AN|AI|AP, str_09298B99F194ADAA, "maxima ")
+SUBS(AR|AE|AN|AI|AO|AP, str_D0563E464AD42DFC, "empleo ")
+SUBS(AR|RGT|AE|AN|AI|AO|AP, str_6FDC6BDC55330400, "pleno ")
+SUBS(AR|AA|AE|AN|AO|AP, str_439926E4BC1CD956, "apoyo ")
+SUBS(AR|RGT|AA|AE|AN|AO|AP, str_43134FE349F09948, "pequeno ")
+SUBS(AR|AA|AS|AE|AI|AO, str_F59AA55712B30216, "ellas ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO, str_74ECC4650BD9745F, "lado ")
+SUBS(AR|AS|AT|AN|AO|AP, str_666587B2FC1E5926, "como ")
+SUBS(AR|RGT|AS|AT|AN|AO|AP, str_14818793B0F13BB9, "puntos ")
+SUBS(AR|AS|AE|AT|AN|AI, str_A909FE2491EAA9D0, "tienes ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI, str_7060991E500462BF, "interes ")
+SUBS(AR|AA|AT|AI|AO|AP, str_32BC6D00D39A360B, "filipo ")
+SUBS(AR|RGT|AA|AT|AI|AO|AP, str_3CBEF26B0E24699B, "patio ")
+SUBS(AR|AA|AE|AN|AI|AO, str_45C4156948CDA849, "quien ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO, str_A39427F4E330E2AE, "linea ")
+SUBS(AR|AA|AT|AN|AO|AP, str_0329483B37CC7D79, "toma ")
+SUBS(AR|RGT|AA|AT|AN|AO|AP, str_1BACF8D6559332C4, "punta ")
+SUBS(AR|AS|AE|AN|AI|AP, str_B6F1C6C922FA4CB5, "dime ")
+SUBS(AR|RGT|AS|AE|AN|AI|AP, str_79E29C103C51988C, "impide ")
+SUBS(AR|AA|AS|AT|AI|AO, str_E51B6C18C29EEBDB, "facil ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO, str_161DBE8CF3A9A5A4, "oficial ")
+SUBS(AR|AA|AS|AN|AO|AP, str_933FD2B59738529C, "suma ")
+SUBS(AR|RGT|AA|AS|AN|AO|AP, str_20225BC096D643FF, "manos ")
+SUBS(AR|AA|AE|AT|AO|AP, str_EABC033D43046E24, "ropa ")
+SUBS(AR|RGT|AA|AE|AT|AO|AP, str_FA4B0FAFB0B04EE8, "pagar ")
+SUBS(AR|AA|AS|AT|AN|AO, str_AF722CF8A42E2D3B, "bajo ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO, str_A79F0232F547106C, "nunca ")
+SUBS(AR|AS|AE|AT|AN|AO, str_E295746522B0BD52, "sobre ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO, str_944760B90B42A4C1, "usted ")
+SUBS(AR|AA|AS|AE|AO|AP, str_0165EC35ADBF0A0A, "esposa ")
+SUBS(AR|RGT|AA|AS|AE|AO|AP, str_9920E6AF0789CA02, "pasado ")
+SUBS(AR|AS|AE|AT|AN|AP, str_EE50716BCD51147C, "empece ")
+SUBS(AR|RGT|AS|AE|AT|AN|AP, str_7E1CBDFF36145A35, "presente ")
+SUBS(AR|AA|AS|AT|AI|AP, str_2DA569F77B293059, "capaz ")
+SUBS(AR|RGT|AA|AS|AT|AI|AP, str_B3FE0277F9A4F391, "pista ")
+SUBS(AR|AA|AE|AT|AI|AO, str_9EF12B22C2E9CC6A, "favor ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO, str_4A2EA7F3FB7C8BF5, "llegar ")
+SUBS(AR|AA|AE|AT|AN|AO, str_02BDE264ADE81756, "fue ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO, str_23DDCA183C040D0D, "obra ")
+SUBS(AR|AA|AS|AE|AN|AP, str_E74A1D7F4ABBBBCF, "ademas ")
+SUBS(AR|RGT|AA|AS|AE|AN|AP, str_F1DA01C3D29ABEC9, "mesa ")
+SUBS(AR|AE|AT|AN|AI|AO, str_BFECF83935EF6CC3, "voy ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO, str_8DD651EA71B00EEF, "luego ")
+SUBS(AR|AS|AE|AN|AI|AO, str_8992B4434C98992E, "dijo ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO, str_F79A80F2680953FD, "lejos ")
+SUBS(AR|AE|AT|AN|AO|AP, str_A727C75BFAA555B4, "grupo ")
+SUBS(AR|RGT|AE|AT|AN|AO|AP, str_FA935D927875D182, "momento ")
+SUBS(AR|AE|AT|AN|AI|AP, str_5153F8FB6D6E9B9C, "verme ")
+SUBS(AR|RGT|AE|AT|AN|AI|AP, str_C94F57BD3A7A4B8C, "primer ")
+SUBS(AR|AE|AT|AI|AO|AP, str_ED9183D066499E2C, "golpe ")
+SUBS(AR|RGT|AE|AT|AI|AO|AP, str_6A1F3C1FD7686EE1, "propio ")
+SUBS(AR|AA|AE|AT|AI|AP, str_B8673242D63F7452, "repetia ")
+SUBS(AR|RGT|AA|AE|AT|AI|AP, str_5597E67A7CD10BAB, "partir ")
+SUBS(AR|AS|AE|AI|AO|AP, str_5A715E41626B3D16, "episodio ")
+SUBS(AR|RGT|AS|AE|AI|AO|AP, str_E22B2895287222B0, "podido ")
+SUBS(AR|AA|AS|AE|AI|AP, str_67D1B2EBB6A8350B, "despedida ")
+SUBS(AR|RGT|AA|AS|AE|AI|AP, str_0FA2BE67B86DCB22, "paises ")
+SUBS(AR|AA|AS|AN|AI|AO, str_BE01984D01AD9843, "quiso ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO, str_82157CC619B91DFA, "julia ")
+SUBS(AR|AA|AT|AN|AI|AO, str_9066C56ADAECEC3C, "alguna ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO, str_8A1F9C1F409F6AFA, "ninguna ")
+SUBS(AR|AS|AT|AI|AO|AP, str_54CD08E80EB8F31D, "tipos ")
+SUBS(AR|RGT|AS|AT|AI|AO|AP, str_3E346AFB17A7EA70, "politicos ")
+SUBS(AR|AA|AS|AE|AT|AO, str_47E20C477C892793, "toda ")
+SUBS(AR|RGT|AA|AS|AE|AT|AO, str_8536F1EC8D3393AD, "otras ")
+SUBS(AR|AS|AE|AT|AO|AP, str_39E980975F371242, "espero ")
+SUBS(AR|RGT|AS|AE|AT|AO|AP, str_D9390A2702CDE82C, "poder ")
+SUBS(AR|AA|AS|AE|AT|AP, str_411CF24DF7E6504C, "espera ")
+SUBS(AR|RGT|AA|AS|AE|AT|AP, str_27C9C54FCC0F7B22, "padre ")
+SUBS(AR|AA|AE|AT|AN|AI, str_1003F676006A79E9, "tenia ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI, str_0214FC2A096B2D3F, "haber ")
+SUBS(AR|AS|AE|AT|AI|AP, str_5A72A21CB90AD104, "especie ")
+SUBS(AR|RGT|AS|AE|AT|AI|AP, str_DCCF38E69C29D422, "pedir ")
+SUBS(AR|AS|AE|AT|AN|AI|AO, str_A176D3524344ABBE, "dicho ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_006CFB75D04A1288, "noche ")
+SUBS(AR|AA|AT|AN|AI|AO|AP, str_50786631B00C5A67, "amigo ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_031DA253073BBFA8, "ultima ")
+SUBS(AR|AA|AS|AE|AT|AO|AP, str_771950E48592891C, "aspecto ")
+SUBS(AR|RGT|AA|AS|AE|AT|AO|AP, str_76D62DECF1B3082E, "profesor ")
+SUBS(AR|AA|AS|AE|AN|AI|AO, str_7A64D0AC8DD32E92, "aquellos ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_F02761E53BEA7019, "juez ")
+SUBS(AR|AA|AS|AT|AI|AO|AP, str_A069AFF6B6716321, "capital ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_4A062895BD6EDDB1, "politica ")
+SUBS(AR|AA|AS|AN|AI|AO|AP, str_DC91BD1B64D71163, "suponia ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_A17CD2AD2C03004E, "humanos ")
+SUBS(AR|AA|AS|AE|AN|AO|AP, str_C7C449F8712039AD, "amado ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_3CD1092D35907F13, "mando ")
+SUBS(AR|AS|AE|AN|AI|AO|AP, str_BEDC41F928972057, "ejemplo ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_DA4D4AA12CA3D373, "medio ")
+SUBS(AR|AS|AE|AT|AI|AO|AP, str_F754DD1C5BB79B1D, "replico ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_D9E2B84B7D94D53F, "perdido ")
+SUBS(AR|AS|AT|AN|AI|AO|AP, str_DA1E2B68B3C399A5, "conmigo ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_7FA79F0F0BA0204A, "mucho ")
+SUBS(AR|AA|AS|AT|AN|AI|AP, str_54ED99A11E31C37A, "capitan ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_56218FD730A2BA00, "incapaz ")
+SUBS(AR|AA|AE|AT|AN|AI|AP, str_11294A1DDFAD3126, "tambien ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_76D6D8384449BC59, "primera ")
+SUBS(AR|AA|AS|AE|AT|AN|AI, str_E54FFB041363F705, "cabeza ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_3D1F1D60980140F4, "hacer ")
+SUBS(AR|AA|AS|AE|AT|AN|AO, str_86B28BB9A90E886E, "cuando ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_A38365CA3FD960D2, "nuestra ")
+SUBS(AR|AS|AE|AT|AN|AI|AP, str_1046780BB03E6785, "siempre ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_73DED435CD93F261, "presidente ")
+SUBS(AR|AA|AS|AE|AT|AI|AO, str_DB5F4E3A529D6369, "todavia ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_E0DE09BD0CB15981, "llegado ")
+SUBS(AR|AA|AE|AT|AN|AI|AO, str_7531BB5E7A882E0D, "ahora ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_D9AA8032648D36A1, "lugar ")
+SUBS(AR|AA|AS|AT|AN|AI|AO, str_310FA4C3D2129DB5, "cual ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_7C3CF1A77C559788, "habitacion ")
+SUBS(AR|AA|AE|AT|AI|AO|AP, str_85F6E4888BE994B4, "felipe ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_12EA4EC57FB92CEF, "propia ")
+SUBS(AR|AA|AS|AE|AT|AN|AP, str_C7DF534AB38D394D, "armas ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_638F1E032E80A700, "madre ")
+SUBS(AR|AA|AE|AN|AI|AO|AP, str_89FAFF95FE610565, "empezo ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_65A4E3E28D565AB1, "manuel ")
+SUBS(AR|AA|AS|AE|AT|AI|AP, str_F901C73007FAD22F, "capacidad ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_3914D06D01AF9C60, "parecia ")
+SUBS(AR|AA|AS|AT|AN|AO|AP, str_3F7DE52F17067AA5, "tampoco ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_D244322B82D54F7C, "montanas ")
+SUBS(AR|AS|AE|AT|AN|AO|AP, str_5396FAD4FB94A42A, "cuerpo ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_ED597F2F7B9A6674, "mujer ")
+SUBS(AR|AA|AS|AE|AI|AO|AP, str_041A46748B75F9B0, "espalda ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_3257A57A33C10007, "podia ")
+SUBS(AR|AA|AE|AT|AN|AO|AP, str_522EE9C819BBCA09, "forma ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_2A7C4309211FCEA4, "porque ")
+SUBS(AR|AE|AT|AN|AI|AO|AP, str_AC2F7362DC40E7E3, "tiempo ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_0A5C1BABC2D03D1A, "hombre ")
+SUBS(AR|AA|AS|AE|AN|AI|AP, str_6B50A3CC9EDDA93C, "demasiadas ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_A2B8387B8472917D, "media ")
+SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_E6406ED5BB75DD5B, "demasiado ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_C49154DBAB485663, "podian ")
+SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_54D67E5ED6829471, "camino ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_A57CA9BB16F945E7, "muchas ")
+SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_B6AA74001228186C, "especial ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_E1FC9B0FC8F2C7DF, "podria ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_945CAEDEAFDE3382, "ciudad ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_FFAD1D59E3A668DD, "historia ")
+SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_F1F8C335E094A263, "respuesta ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_7DD78EFB96678F56, "personas ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_F5D118999EAE9F31, "encima ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_B0A365B3B8B29EFB, "mientras ")
+SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_3E9D05E02CFFC29E, "finalmente ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_E436EA5C72F51789, "hermano ")
+SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_CFD8D772EF06188A, "respondio ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_C4A95F657AB9475E, "hombres ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_C9DC300EB8DE2143, "comenzo ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_89C817C4BE2B5BFC, "palabras ")
diff --git a/keyboards/gboards/dicts/aset/fn-keymap.def b/keyboards/gboards/dicts/aset/fn-keymap.def
new file mode 100644
index 0000000000..9c484d30f4
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/fn-keymap.def
@@ -0,0 +1,374 @@
+// This file is automatically generated. Do not edit it!
+
+PRES(AT, KC_T)
+PRES(AP, KC_P)
+PRES(AA, KC_A)
+PRES(AI, KC_I)
+PRES(AN, KC_N)
+PRES(AO, KC_O)
+PRES(AE, KC_E)
+PRES(AS, KC_S)
+PRES(AI|AO, KC_L)
+PRES(AS|AI, KC_K)
+PRES(AO|AP, KC_SCLN)
+PRES(AN|AP, KC_M)
+PRES(AE|AI, KC_COMM)
+PRES(AS|AE, KC_D)
+PRES(AT|AP, KC_BSPC)
+PRES(AE|AN, KC_Y)
+KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END})
+PRES(AS|AT, KC_C)
+KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END})
+PRES(AS|AN, KC_J)
+PRES(AT|AO, KC_G)
+PRES(AN|AI, KC_H)
+PRES(AE|AO, KC_MINS)
+PRES(AA|AT, KC_F)
+PRES(AS|AO, KC_DOT)
+PRES(AA|AP, KC_QUOT)
+PRES(AN|AO, KC_U)
+PRES(AA|AS, KC_W)
+KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END})
+PRES(AA|AI, KC_Z)
+PRES(AE|AP, KC_QUOT)
+PRES(AT|AI, KC_V)
+PRES(AT|AN, KC_B)
+PRES(AA|AN, KC_Q)
+PRES(AE|AT, KC_R)
+PRES(AA|AE, KC_X)
+SUBS(AR|AS|AE|AT, str_CA8CA0A8D3D87E1E, "ester ")
+SUBS(AR|AE|AT|AP, str_230EE54B9F1F8C37, "ett' ")
+SUBS(AR|AI|AO|AP, str_D6B6365E10D5695D, "oppi ")
+SUBS(AR|AA|AI|AP, str_2B4ABD32782C2DFB, "pappi ")
+SUBS(AR|AE|AT|AO, str_32B2587A37FE032A, "eero ")
+SUBS(AR|AA|AS|AE, str_33A13A91F9C8F071, "saada ")
+SUBS(AR|AA|AS|AO, str_14A690C62F8EC5A5, "osaa ")
+SUBS(AR|AA|AS|AT, str_B3D649184647D65A, "taas ")
+SUBS(AR|AA|AE|AP, str_13D0B652141ACD51, "aape ")
+SUBS(AR|AN|AI|AO, str_CDE4DA38099DE335, "olin ")
+SUBS(AR|AS|AE|AN, str_84D94AC64A433897, "sen ")
+SUBS(AR|AA|AT|AN, str_1ABDBBAEA3608926, "antaa ")
+SUBS(AR|AA|AT|AI, str_C4ED1C3C34714250, "tai ")
+SUBS(AR|AN|AI|AP, str_67055DC3D727C27D, "mihin ")
+SUBS(AR|AA|AE|AT, str_C8EC3B522313F5FE, "etta ")
+SUBS(AR|AA|AS|AP, str_2122BA631ABC6CB5, "paassa ")
+SUBS(AR|AT|AI|AP, str_65859E55437327F1, "piti ")
+PRES(AN|AI|AO|AP, KC_ENT)
+SUBS(AR|AA|AN|AP, str_730FE67FAC142F03, "nama ")
+SUBS(AR|AN|AO|AP, str_54BDC5FC6B38B79F, "muu ")
+SUBS(AR|AS|AT|AI|AP, str_445F857E06BA4FF7, "pisti ")
+SUBS(AR|AS|AE|AT|AN, str_736B8FB339395666, "syntynyt ")
+SUBS(AR|AA|AE|AT|AP, str_0BBD5DC7C7067071, "paeta ")
+SUBS(AR|AT|AN|AI|AP, str_9C65B9DF26360FAE, "nimitti ")
+SUBS(AR|AA|AN|AI|AP, str_C28057540B4DAEAD, "mina ")
+SUBS(AR|AS|AE|AI|AP, str_BFB3494FFF558EA1, "kiipesi ")
+SUBS(AR|AA|AE|AI|AP, str_753DF9D1477A64CF, "eipa ")
+SUBS(AR|AA|AI|AO|AP, str_1A810308AF700748, "lapi ")
+SUBS(AR|AA|AE|AT|AI, str_622B9208A276CF4C, "eivat ")
+SUBS(AR|AA|AS|AE|AO, str_6D42BDC389AF9939, "sodassa ")
+SUBS(AR|AS|AE|AT|AO, str_172CFA86BE3A3BC1, "god ")
+SUBS(AR|AA|AS|AT|AP, str_1D6479B72380A513, "paasta ")
+SUBS(AR|AA|AE|AT|AO, str_95FAD039B7409DDA, "erottaa ")
+SUBS(AR|AS|AN|AI|AP, str_83D77267B1EECB14, "miksi ")
+SUBS(AR|AA|AE|AN|AO, str_7B32335A69464622, "yona ")
+SUBS(AR|AE|AT|AO|AP, str_7C794BD375481E68, "peto ")
+SUBS(AR|AA|AS|AE|AT, str_761BA0AE12AB2324, "eras ")
+SUBS(AR|AS|AN|AO|AP, str_B69C651C2E0852D3, "suom ")
+SUBS(AR|AT|AI|AO, str_C277590164DC0A8A, "voi ")
+SUBS(AR|RGT|AT|AI|AO, str_EBE4FA16893104C0, "otti ")
+SUBS(AR|AE|AN|AI, str_675A5EE07E7575FB, "enin ")
+SUBS(AR|RGT|AE|AN|AI, str_C4D48E3111A94BAB, "he ")
+SUBS(AR|AS|AN|AI, str_86283CF0D25AC8E0, "sikin ")
+SUBS(AR|RGT|AS|AN|AI, str_6E9EBAD15E54CE5D, "kiinni ")
+SUBS(AR|AA|AE|AN, str_BCA35D6AC296C37D, "enaa ")
+SUBS(AR|RGT|AA|AE|AN, str_A8F6E5F510F79985, "naen ")
+SUBS(AR|AA|AS|AI, str_79DEBAC9C2664321, "sai ")
+SUBS(AR|RGT|AA|AS|AI, str_6E2CA43C65391E79, "kaikki ")
+SUBS(AR|AA|AT|AP, str_4E64DC39CCCFB68B, "tapa ")
+SUBS(AR|RGT|AA|AT|AP, str_F792D8ED82AFC75D, "paata ")
+SUBS(AR|AT|AN|AI, str_46438117CE00C474, "viini ")
+SUBS(AR|RGT|AT|AN|AI, str_B0A27A04D5F474D3, "nti ")
+SUBS(AR|AS|AI|AO, str_01533D61B01FD06D, "soi ")
+SUBS(AR|RGT|AS|AI|AO, str_2FCEFD145E2C7692, "olisi ")
+SUBS(AR|AS|AN|AO, str_A49D311A65686F59, "sun ")
+SUBS(AR|RGT|AS|AN|AO, str_FF6E23CC4BFF56B5, "jos ")
+SUBS(AR|AE|AN|AO, str_8DD9BC6194C75208, "eno ")
+SUBS(AR|RGT|AE|AN|AO, str_29B9E3E6E2FEDA21, "yon ")
+SUBS(AR|AA|AN|AI, str_5A4E2CDD929A273D, "aina ")
+SUBS(AR|RGT|AA|AN|AI, str_BB30CFFA4957C51C, "han ")
+SUBS(AR|AE|AI|AO, str_AB5FBA967AA94E7A, "eli ")
+SUBS(AR|RGT|AE|AI|AO, str_33BE99F17CB10764, "ole ")
+SUBS(AR|AE|AT|AI, str_56954BEA38D53E11, "ettei ")
+SUBS(AR|RGT|AE|AT|AI, str_25BB806D22A7ACB2, "irti ")
+SUBS(AR|AE|AN|AP, str_5730C9BD457F5A45, "emme ")
+SUBS(AR|RGT|AE|AN|AP, str_5140BEC191346017, "me ")
+SUBS(AR|AA|AI|AO, str_30B8BB99FFF81FC0, "alla ")
+SUBS(AR|RGT|AA|AI|AO, str_93ABD4AC2276D5E8, "olla ")
+SUBS(AR|AS|AE|AI, str_8DB12FA16BCFEA58, "die ")
+SUBS(AR|RGT|AS|AE|AI, str_412E95852FAF9DC5, "keksi ")
+SUBS(AR|AE|AT|AN, str_80EB5933B56D1367, "eteen ")
+SUBS(AR|RGT|AE|AT|AN, str_77D0DE1110F92FFB, "nyt ")
+SUBS(AR|AS|AT|AI, str_E3B1F7D5762313E1, "viisi ")
+SUBS(AR|RGT|AS|AT|AI, str_ABA342344458F587, "itki ")
+SUBS(AR|AA|AT|AO, str_A0C7EBEDA346A9D5, "totta ")
+SUBS(AR|RGT|AA|AT|AO, str_8E11213C133D3905, "ottaa ")
+SUBS(AR|AT|AN|AO, str_AA80DB5190D83147, "tuo ")
+SUBS(AR|RGT|AT|AN|AO, str_5BBBEE8F4F949763, "outo ")
+SUBS(AR|AA|AE|AI, str_4267018742102E46, "xii ")
+SUBS(AR|RGT|AA|AE|AI, str_D2F95EA81F7C61D5, "ix ")
+SUBS(AR|AA|AS|AN, str_FCEDCF5CA4FBEE40, "ajan ")
+SUBS(AR|RGT|AA|AS|AN, str_16D6BE915787F782, "ja ")
+SUBS(AR|AS|AT|AI|AO|AP, str_B92B9BA93DC4BFC1, "potki ")
+SUBS(AR|AA|AS|AT|AO|AP, str_E41584A9F12B8D4E, "paatos ")
+SUBS(AR|AA|AE|AT|AO|AP, str_78D5016A3AE8C3A8, "opettaa ")
+SUBS(AR|AA|AS|AN|AI|AP, str_571467A48BD08511, "mika ")
+SUBS(AR|AA|AT|AN|AO|AP, str_9E750E8EF92FA417, "mutta ")
+SUBS(AR|AA|AT|AN|AI|AP, str_5B34E2428A52B09E, "mita ")
+SUBS(AR|AA|AE|AN|AO|AP, str_099DC162DA8116C2, "myonnan ")
+SUBS(AR|AS|AT|AN|AO|AP, str_9E0173B50CE1376D, "muutos ")
+SUBS(AR|AA|AE|AN|AI|AP, str_684D92D2E5BF10A6, "miehia ")
+SUBS(AR|AS|AE|AT|AN|AP, str_E7AFF3FB05CB8051, "mrs ")
+SUBS(AR|AS|AE|AT|AI|AP, str_5FF559A76614003A, "sit' ")
+SUBS(AR|AE|AN|AI|AO|AP, str_C842ABEA6FAAC7B6, "minulle ")
+SUBS(AR|AS|AT|AN|AI|AP, str_BCA33D02145BFA16, "pitkin ")
+SUBS(AR|AA|AS|AI|AO|AP, str_322697417AFE4827, "poika ")
+SUBS(AR|AA|AE|AT|AN, str_185456031754722E, "taytyy ")
+SUBS(AR|RGT|AA|AE|AT|AN, str_D648F593169AE3F1, "naet ")
+SUBS(AR|AS|AE|AN|AI, str_477DEEAECC34BE5E, "siihen ")
+SUBS(AR|RGT|AS|AE|AN|AI, str_DE22FC07EB049ABA, "niiden ")
+SUBS(AR|AA|AS|AN|AP, str_9938249A98B4D533, "samassa ")
+SUBS(AR|RGT|AA|AS|AN|AP, str_5D8E3182A2982735, "paansa ")
+SUBS(AR|AE|AT|AI|AO, str_4DBB6F79687D879F, "teille ")
+SUBS(AR|RGT|AE|AT|AI|AO, str_6205BED2C428E817, "olet ")
+SUBS(AR|AA|AS|AT|AO, str_362FC001BD651549, "sota ")
+SUBS(AR|RGT|AA|AS|AT|AO, str_DF9896A6FDFA5C11, "ostaa ")
+SUBS(AR|AA|AN|AI|AO, str_F226A68871ED358F, "ainoa ")
+SUBS(AR|RGT|AA|AN|AI|AO, str_1401F607621C240F, "liian ")
+SUBS(AR|AA|AS|AE|AI, str_B86035559AB58BF1, "eika ")
+SUBS(AR|RGT|AA|AS|AE|AI, str_44A6DF6A3DF7AD3E, "kaikkea ")
+SUBS(AR|AS|AT|AI|AO, str_AFD6CA11BAC8D729, "voisi ")
+SUBS(AR|RGT|AS|AT|AI|AO, str_8556FE314ADA0FD5, "kiitos ")
+SUBS(AR|AS|AI|AO|AP, str_08A1740795808A15, "sopii ")
+SUBS(AR|RGT|AS|AI|AO|AP, str_3CF1BF4E9A40E6AA, "pois ")
+SUBS(AR|AA|AT|AI|AO, str_3B728CA7E68948B1, "taalla ")
+SUBS(AR|RGT|AA|AT|AI|AO, str_153DFDFC7A82D836, "olivat ")
+SUBS(AR|AE|AT|AN|AI, str_5527811895A7B881, "tehnyt ")
+SUBS(AR|RGT|AE|AT|AN|AI, str_A8C5FAFF02A38346, "hyvin ")
+SUBS(AR|AA|AN|AO|AP, str_1790EE92B2D834AF, "apua ")
+SUBS(AR|RGT|AA|AN|AO|AP, str_E2CD069C8F622519, "oman ")
+SUBS(AR|AA|AE|AN|AI, str_21252A50AF8148E5, "eihan ")
+SUBS(AR|RGT|AA|AE|AN|AI, str_655639CA393D6ED2, "hanen ")
+SUBS(AR|AA|AS|AT|AI, str_B41787BEDA1879F3, "sita ")
+SUBS(AR|RGT|AA|AS|AT|AI, str_23A70ED4245B5AF7, "kavi ")
+SUBS(AR|AE|AI|AO|AP, str_8DC63EBBD1D8047D, "ell'ei ")
+SUBS(AR|RGT|AE|AI|AO|AP, str_A9D4E9854B52E26A, "piilee ")
+SUBS(AR|AE|AT|AN|AO, str_D865AE3A4AB82C56, "tytto ")
+SUBS(AR|RGT|AE|AT|AN|AO, str_DD1960AED9632F0E, "nuoren ")
+SUBS(AR|AA|AS|AN|AO, str_090C8E43D966392D, "sanoa ")
+SUBS(AR|RGT|AA|AS|AN|AO, str_8183CC20DAAEDDC2, "jossa ")
+SUBS(AR|AA|AT|AN|AP, str_EB96AAFB74EC611E, "tama ")
+SUBS(AR|RGT|AA|AT|AN|AP, str_B3D403A160201B7F, "maata ")
+SUBS(AR|AE|AN|AI|AO, str_1C77E61836652578, "eilen ")
+SUBS(AR|RGT|AE|AN|AI|AO, str_1CBBAEB4C2459263, "olen ")
+SUBS(AR|AS|AE|AN|AP, str_DCAFFCF484A425C6, "esm ")
+SUBS(AR|RGT|AS|AE|AN|AP, str_F04223914D45AAA0, "pysyy ")
+SUBS(AR|AS|AT|AN|AI, str_1DF97975CDE00E69, "viisin ")
+SUBS(AR|RGT|AS|AT|AN|AI, str_7787F9559C51CC44, "kiinnitti ")
+SUBS(AR|AE|AT|AN|AP, str_E8FE0169A844CB5E, "ett'en ")
+SUBS(AR|RGT|AE|AT|AN|AP, str_10A1A694946FA759, "mr ")
+SUBS(AR|AS|AN|AI|AO, str_786AB758DD23FB02, "silloin ")
+SUBS(AR|RGT|AS|AN|AI|AO, str_3ADDFD8B7CA298E9, "kuin ")
+SUBS(AR|AA|AT|AN|AI, str_CACFF4AF501B4E91, "vaan ")
+SUBS(AR|RGT|AA|AT|AN|AI, str_DA2005E0E1B0D570, "hanta ")
+SUBS(AR|AS|AE|AI|AO, str_C095478F3264C9FF, "eiko ")
+SUBS(AR|RGT|AS|AE|AI|AO, str_7F6943458FF55753, "kello ")
+SUBS(AR|AA|AT|AI|AP, str_F271A41EF35FE81F, "vapaa ")
+SUBS(AR|RGT|AA|AT|AI|AP, str_BB1DEFAEA0058E92, "pitaa ")
+SUBS(AR|AE|AT|AI|AP, str_D484B804FC2C6A59, "ett'ei ")
+SUBS(AR|RGT|AE|AT|AI|AP, str_5AEF78115BF28919, "peitti ")
+SUBS(AR|AS|AE|AN|AO, str_C6EC0928AD174160, "syo ")
+SUBS(AR|RGT|AS|AE|AN|AO, str_0E0AA6DDD84D9D8E, "uuden ")
+SUBS(AR|AE|AN|AI|AP, str_1520018BB475867D, "ennemmin ")
+SUBS(AR|RGT|AE|AN|AI|AP, str_A389F00895A7D53A, "meni ")
+SUBS(AR|AA|AT|AN|AO, str_C6CA6B37A4E7C0F2, "tuota ")
+SUBS(AR|RGT|AA|AT|AN|AO, str_6473D009487AC796, "uutta ")
+SUBS(AR|AT|AI|AO|AP, str_52ED40A75FB9C43E, "voipi ")
+SUBS(AR|RGT|AT|AI|AO|AP, str_3B4B853A21FED6C9, "ippolit ")
+SUBS(AR|AA|AS|AE|AP, str_E3C2EE8967A164B3, "sepa ")
+SUBS(AR|RGT|AA|AS|AE|AP, str_B004D8BD441C50C8, "paase ")
+SUBS(AR|AA|AS|AI|AO, str_655494910FA6FF4C, "silla ")
+SUBS(AR|RGT|AA|AS|AI|AO, str_EDC8FD72D1D401B5, "koska ")
+SUBS(AR|AS|AT|AN|AO, str_7C30555AC9E6A4FC, "totuus ")
+SUBS(AR|RGT|AS|AT|AN|AO, str_5EE8E16E428CF57A, "joutunut ")
+SUBS(AR|AA|AE|AI|AO, str_C2B49FFFE04218EB, "elaa ")
+SUBS(AR|RGT|AA|AE|AI|AO, str_4DB93DD67BC5B5E0, "lea ")
+SUBS(AR|AA|AS|AN|AI, str_2DA332A85B0767C0, "sina ")
+SUBS(AR|RGT|AA|AS|AN|AI, str_47EA3D1C20B9AA45, "kanssa ")
+SUBS(AR|AA|AS|AT|AN, str_C4E427E90604CD74, "sanat ")
+SUBS(AR|RGT|AA|AS|AT|AN, str_8A528ACAEACE373B, "jattaa ")
+SUBS(AR|AA|AS|AE|AN, str_0D8E085D9A4111EE, "sydan ")
+SUBS(AR|RGT|AA|AS|AE|AN, str_958A93767B59B3AE, "jaada ")
+SUBS(AR|AT|AN|AO|AP, str_C7B05810B9878F2F, "tom ")
+SUBS(AR|RGT|AT|AN|AO|AP, str_F91FDF7952D700CD, "muut ")
+SUBS(AR|AT|AN|AI|AO, str_61FE9BB4DA317AE3, "tuli ")
+SUBS(AR|RGT|AT|AN|AI|AO, str_C6818A39BD064FAD, "ollut ")
+SUBS(AR|AA|AE|AN|AP, str_E02371EE635B357E, "enemman ")
+SUBS(AR|RGT|AA|AE|AN|AP, str_8A6E9C45BBC7F390, "menna ")
+SUBS(AR|AS|AE|AT|AI, str_88B7129EABB752FF, "teki ")
+SUBS(AR|RGT|AS|AE|AT|AI, str_17B4408B7C77EBFB, "itse ")
+SUBS(AR|AA|AS|AI|AP, str_25398F26F5B0C168, "saapi ")
+SUBS(AR|RGT|AA|AS|AI|AP, str_3C759C30448DB29D, "paasi ")
+SUBS(AR|AE|AN|AO|AP, str_70E236D771B6411F, "emo ")
+SUBS(AR|RGT|AE|AN|AO|AP, str_78055334B7691B59, "monen ")
+SUBS(AR|AA|AS|AT|AN|AI|AP, str_F7B8D93B1B2B2FB3, "mista ")
+SUBS(AR|AA|AS|AE|AT|AO|AP, str_D3BCCC21C4DBB9CB, "petosta ")
+SUBS(AR|AA|AS|AE|AT|AI, str_26E006419956B6A2, "tieda ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI, str_45DC10FA34290BC8, "kertaa ")
+SUBS(AR|AA|AN|AI|AO|AP, str_706EF5E4D1C65008, "aamulla ")
+SUBS(AR|RGT|AA|AN|AI|AO|AP, str_DFFD2B48FFDF953E, "minua ")
+SUBS(AR|AS|AE|AN|AI|AP, str_5C5CAFE86DB6C14F, "esim ")
+SUBS(AR|RGT|AS|AE|AN|AI|AP, str_A686776300DAD04F, "mies ")
+SUBS(AR|AA|AS|AE|AN|AI, str_876BD41F0BDFE63A, "ehka ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI, str_7CF2DD5BBB07B098, "heidan ")
+SUBS(AR|AA|AS|AN|AI|AO, str_FEAD094A2678854B, "sanoi ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO, str_84A59781026A8CBF, "joka ")
+SUBS(AR|AA|AE|AT|AN|AO, str_5E0410BE3D304962, "tyota ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO, str_E286864CE8595811, "yota ")
+SUBS(AR|AA|AS|AT|AN|AI, str_5F6BC953B9A329DF, "vastaan ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI, str_09682C268D24C1D3, "niista ")
+SUBS(AR|AS|AE|AT|AN|AO, str_4A771ED6475F8206, "suuren ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO, str_BF80952BCD08AEB7, "joten ")
+SUBS(AR|AE|AT|AI|AO|AP, str_657A0B7655472430, "viel' ")
+SUBS(AR|RGT|AE|AT|AI|AO|AP, str_8CE1A14C5267904E, "perille ")
+SUBS(AR|AA|AE|AT|AI|AP, str_061EDCECAF5A9699, "ett'eivat ")
+SUBS(AR|RGT|AA|AE|AT|AI|AP, str_67AD816C02C26F87, "pari ")
+SUBS(AR|AA|AS|AT|AI|AO, str_B0BA9B0F5D39D5D7, "saattoi ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO, str_D9C9F9C1E3AC7EA6, "katsoi ")
+SUBS(AR|AS|AE|AI|AO|AP, str_D2E2DB7F06962CCE, "s'oli ")
+SUBS(AR|RGT|AS|AE|AI|AO|AP, str_5D5EC7B653D09D96, "pelko ")
+SUBS(AR|AA|AS|AE|AT|AP, str_33FC3E302A6E2839, "d'astarac ")
+SUBS(AR|RGT|AA|AS|AE|AT|AP, str_2A983F7F1EC3ACA2, "perasta ")
+SUBS(AR|AA|AS|AE|AT|AO, str_505D48BB6AB25BC6, "grace ")
+SUBS(AR|RGT|AA|AS|AE|AT|AO, str_D169B6D8C80A2582, "odottaa ")
+SUBS(AR|AT|AN|AI|AO|AP, str_4F45D8A580125317, "toimi ")
+SUBS(AR|RGT|AT|AN|AI|AO|AP, str_6A98054A52C4F22B, "minut ")
+SUBS(AR|AA|AS|AT|AN|AO, str_22C9DA27FC59D0C1, "saanut ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO, str_8885126703E8B930, "jota ")
+SUBS(AR|AA|AS|AT|AN|AP, str_85F80436B5BA7B29, "samat ")
+SUBS(AR|RGT|AA|AS|AT|AN|AP, str_12934B4B65444606, "maasta ")
+SUBS(AR|AA|AS|AE|AN|AO, str_FDC5B5BCBBD7FB44, "sanoen ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO, str_46BF52073D0F2BFC, "juoda ")
+SUBS(AR|AS|AE|AN|AO|AP, str_D0551B2605575C0D, "suomen ")
+SUBS(AR|RGT|AS|AE|AN|AO|AP, str_CA79F357E6547808, "myos ")
+SUBS(AR|AA|AE|AN|AI|AO, str_D829668D084E33AF, "aanella ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO, str_04B66DB2CBFD3095, "hanelle ")
+SUBS(AR|AA|AS|AE|AI|AP, str_5D9FEE5EA22843BA, "sieppasi ")
+SUBS(AR|RGT|AA|AS|AE|AI|AP, str_B26062809346CC59, "pida ")
+SUBS(AR|AE|AT|AN|AO|AP, str_11901F5B01D04DE7, "bergbom ")
+SUBS(AR|RGT|AE|AT|AN|AO|AP, str_65351474F0D0A5E3, "muuten ")
+SUBS(AR|AA|AT|AI|AO|AP, str_3667E8E2F5A9D13E, "apotti ")
+SUBS(AR|RGT|AA|AT|AI|AO|AP, str_335C000BF215B773, "palata ")
+SUBS(AR|AA|AS|AE|AN|AP, str_16EE6F0C24B3AFF0, "sydamensa ")
+SUBS(AR|RGT|AA|AS|AE|AN|AP, str_5211664BB4194AEF, "pyydan ")
+SUBS(AR|AA|AE|AT|AN|AP, str_F3C70CD01CC2B03E, "emanta ")
+SUBS(AR|RGT|AA|AE|AT|AN|AP, str_0FF86DE89DF13B6F, "ymmarra ")
+SUBS(AR|AS|AT|AN|AI|AO, str_3226CEA0F3AFD8F9, "tunsi ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO, str_9337BF7AF614B249, "istui ")
+SUBS(AR|AS|AE|AT|AN|AI, str_CDCA7F1BD345B31C, "sitten ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI, str_53B2746FC723A689, "kenties ")
+SUBS(AR|AS|AN|AI|AO|AP, str_3F525D6479B13343, "silmin ")
+SUBS(AR|RGT|AS|AN|AI|AO|AP, str_061D0AAC3A7D6F03, "pikku ")
+SUBS(AR|AA|AE|AI|AO|AP, str_A9E8B510F611965D, "epailla ")
+SUBS(AR|RGT|AA|AE|AI|AO|AP, str_5469B5757E41971F, "paalle ")
+SUBS(AR|AA|AS|AN|AO|AP, str_D3C55FF6838E726B, "sanomaan ")
+SUBS(AR|RGT|AA|AS|AN|AO|AP, str_01114430CC02AAE6, "pojan ")
+SUBS(AR|AA|AS|AT|AI|AP, str_C52ACE16E9BDC0F4, "sitapaitsi ")
+SUBS(AR|RGT|AA|AS|AT|AI|AP, str_478BC427388CCE75, "pitaisi ")
+SUBS(AR|AS|AE|AN|AI|AO, str_F27857B89DD29865, "ennenkuin ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO, str_6A2FA82287FDA259, "oikein ")
+SUBS(AR|AA|AE|AT|AI|AO, str_8E98D56FE94B5DF9, "viela ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO, str_DB536AB8405B26B9, "oleva ")
+SUBS(AR|AA|AS|AE|AT|AN, str_A6B5D074DB77833C, "sentaan ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN, str_E8AA66011602C31F, "jaanyt ")
+SUBS(AR|AS|AE|AT|AI|AO, str_2B262B4AE3E71586, "toiset ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO, str_CAF0105BB94E24E2, "kertoi ")
+SUBS(AR|AE|AT|AN|AI|AO, str_88AB89229B2D8E5F, "tulee ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO, str_1B98663FE8C86702, "nuori ")
+SUBS(AR|AA|AT|AN|AI|AO, str_B7B00EDA2FE78A86, "tulla ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO, str_4DD4B7FD19CD9A51, "lahti ")
+SUBS(AR|AA|AE|AT|AN|AI, str_65CFF73B46671467, "taytyi ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI, str_1BE829AC3F5014A6, "hanet ")
+SUBS(AR|AE|AT|AN|AI|AP, str_6607671A4D40B96A, "viimein ")
+SUBS(AR|RGT|AE|AT|AN|AI|AP, str_F5FD43E435B19560, "miten ")
+SUBS(AR|AA|AS|AE|AI|AO, str_AC8C6A15F079C769, "siella ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO, str_8C3B170B843D3A6A, "keskella ")
+SUBS(AR|AA|AS|AT|AI|AO|AP, str_8A4F8EE78569F915, "sopiva ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_B51DF84BB7117F58, "palasivat ")
+SUBS(AR|AA|AE|AN|AI|AO|AP, str_90FD2D279878472E, "elaman ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_2D576457B671BB24, "meilla ")
+SUBS(AR|AS|AT|AN|AI|AO|AP, str_6D3916C656615EE4, "sopinut ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_3D02EAD5BE3A8845, "muutkin ")
+SUBS(AR|AS|AE|AT|AN|AO|AP, str_C17A439FA44061D3, "sprengtport ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_9B2F935F57297FC8, "prudence ")
+SUBS(AR|AA|AS|AE|AT|AI|AO, str_9CEA2C27C8C73B40, "sielta ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_F8717DABB4A28652, "katseli ")
+SUBS(AR|AA|AT|AN|AI|AO|AP, str_F22CD82D60F743EC, "tapahtunut ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_8BB722DEC599A4A2, "muutamia ")
+SUBS(AR|AE|AT|AN|AI|AO|AP, str_254459CC6C094FF5, "toimeen ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_FF8ED353CB7E54E1, "miltei ")
+SUBS(AR|AA|AS|AN|AI|AO|AP, str_97A3E80803C670AA, "samalla ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_1E41744B134F83AC, "paljon ")
+SUBS(AR|AA|AS|AE|AN|AI|AO, str_1E2E5858EFEFE8D1, "sellainen ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_D36240DF33379F88, "kylla ")
+SUBS(AR|AA|AS|AE|AT|AN|AI, str_12813AF88FD1344B, "teidan ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_0C3F6921F8227A13, "kerran ")
+SUBS(AR|AA|AE|AT|AN|AI|AO, str_6C2965E88C1BF945, "rouva ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_F34D9613E5382BD2, "olevan ")
+SUBS(AR|AA|AS|AE|AI|AO|AP, str_9F398EB56D1021A6, "sill'aikaa ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_70715E663B34FFB7, "pelkaa ")
+SUBS(AR|AA|AE|AT|AN|AI|AP, str_AA79959130D28B5F, "eteenpain ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_AEE98FA6CCCFECD2, "meita ")
+SUBS(AR|AA|AS|AT|AN|AI|AO, str_23696AEF714A36A0, "ainoastaan ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_0CD62CE71407209A, "jotka ")
+SUBS(AR|AS|AE|AT|AN|AI|AP, str_ACE6B1185AF6A6AD, "sittemmin ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_9A3643BF0D232A2D, "ihmiset ")
+SUBS(AR|AA|AS|AE|AT|AN|AP, str_C7DF534AB38D394D, "armas ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_311EF51A0020A890, "paassyt ")
+SUBS(AR|AS|AE|AN|AI|AO|AP, str_51705648C1A115C5, "semmoinen ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_138B63F22FE84CCB, "myoskin ")
+SUBS(AR|AA|AS|AE|AT|AI|AP, str_8F8429CAD7D93C5D, "tarpeeksi ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_6FA1342A7829A535, "parka ")
+SUBS(AR|AS|AE|AT|AN|AI|AO, str_9E4190674474F1D1, "suuri ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_C8D03930E7EF1A38, "kuitenkin ")
+SUBS(AR|AA|AE|AT|AI|AO|AP, str_9CFD517CEAF0015D, "vielapa ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_995CAF23BE5EF14D, "portaita ")
+SUBS(AR|AA|AS|AE|AN|AO|AP, str_1E1F19E4BD823797, "suomessa ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_A4226EDA6DE9D750, "poydan ")
+SUBS(AR|AA|AS|AE|AT|AN|AO, str_F50122FC9FD239A4, "suurta ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_7C5D2BE7427C35B2, "uudestaan ")
+SUBS(AR|AA|AS|AT|AN|AO|AP, str_E5AA7EF87A6E7418, "tuomas ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_7FAF5456CA6FD092, "pojat ")
+SUBS(AR|AA|AE|AT|AN|AO|AP, str_A27D8719EF3E9505, "tuntemaan ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_8104E67C46E35F5F, "poytaan ")
+SUBS(AR|AS|AE|AT|AI|AO|AP, str_80642C64EE2C3C1B, "tok' ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_18FC721930BF4B61, "posket ")
+SUBS(AR|AA|AS|AE|AN|AI|AP, str_CDDE6FEE75C17FE8, "ensimainen ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_09BDF252AE5256C3, "meidan ")
+SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_51CE70EC6849E2D0, "silmat ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_814F6728326BF5BA, "minusta ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_EFFBA321177771BB, "varmaankin ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_332B284E82C5E009, "miesta ")
+SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_4C82FA8B22D5A52F, "epailematta ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_04CC9A34F5527C9A, "molemmat ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_958F45A5BF9A9926, "tahdon ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_CFFF552EB34BDD5F, "kuitenkaan ")
+SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_D2F7E610FC106643, "suomalaisen ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_BA16E5C3B446F4DB, "kallem ")
+SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_5988D62F8D29886E, "tarpeellista ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_E30132CF665E428F, "lapset ")
+SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_5D0AFC533FD1EDC5, "rupesi ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_B27A17B72C2F77D4, "helposti ")
+SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_ED3155D6B29343B8, "etupaassa ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_1B9974C23C440480, "opettaja ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_BDF6476C40CC63D4, "tapauksessa ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_836FBC8B50FD212A, "puolesta ")
diff --git a/keyboards/gboards/dicts/aset/fr-keymap.def b/keyboards/gboards/dicts/aset/fr-keymap.def
new file mode 100644
index 0000000000..88c9d5b2cb
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/fr-keymap.def
@@ -0,0 +1,391 @@
+// This file is automatically generated. Do not edit it!
+
+PRES(AT, KC_T)
+PRES(AS, KC_S)
+PRES(AP, KC_P)
+PRES(AE, KC_E)
+PRES(AA, KC_A)
+PRES(AO, KC_O)
+PRES(AI, KC_I)
+PRES(AN, KC_N)
+PRES(AS|AO, KC_DOT)
+PRES(AS|AT, KC_C)
+KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END})
+PRES(AE|AN, KC_Y)
+PRES(AA|AT, KC_F)
+PRES(AA|AN, KC_Q)
+PRES(AI|AO, KC_L)
+PRES(AT|AI, KC_V)
+KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END})
+PRES(AA|AP, KC_QUOT)
+PRES(AE|AT, KC_R)
+PRES(AN|AI, KC_H)
+PRES(AO|AP, KC_SCLN)
+PRES(AE|AI, KC_COMM)
+PRES(AN|AO, KC_U)
+PRES(AT|AN, KC_B)
+PRES(AS|AE, KC_D)
+PRES(AA|AS, KC_W)
+PRES(AT|AO, KC_G)
+PRES(AS|AI, KC_K)
+PRES(AT|AP, KC_BSPC)
+PRES(AS|AN, KC_J)
+PRES(AE|AO, KC_MINS)
+PRES(AA|AE, KC_X)
+PRES(AA|AI, KC_Z)
+PRES(AN|AP, KC_M)
+PRES(AE|AP, KC_QUOT)
+KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END})
+SUBS(AR|AA|AT|AO, str_78081C47BB80A57E, "ota ")
+SUBS(AR|AA|AE|AP, str_420E36C5BBF26FC8, "pape ")
+SUBS(AR|AS|AN|AI, str_4FA7F5796CAA3748, "siskin ")
+SUBS(AR|AA|AS|AT, str_521DFAED1CC2AD68, "ca ")
+SUBS(AR|AA|AI|AP, str_9EFFC1EA3EEA7DCB, "pizza ")
+SUBS(AR|AA|AS|AE, str_883010E38FBB9167, "sexe ")
+SUBS(AR|AE|AT|AN, str_5E7FFBEBF6AB0C31, "entre ")
+SUBS(AR|AA|AT|AN, str_A3C80E4F3C86151C, "tant ")
+SUBS(AR|AE|AI|AP, str_288993BA9FAF1F15, "pipe ")
+SUBS(AR|AS|AT|AO, str_75E299337C819F75, "scott ")
+SUBS(AR|AA|AN|AP, str_2A907D456EBB3E24, "ma ")
+SUBS(AR|AT|AI|AP, str_2741375E1176FC82, "pitt ")
+SUBS(AR|AS|AN|AP, str_A38FEA2A97C8F836, "ms ")
+SUBS(AR|AE|AT|AI, str_26A9A7CA01A1D074, "vie ")
+SUBS(AR|AI|AO|AP, str_8AB1201260059D82, "poil ")
+SUBS(AR|AN|AI|AP, str_149A1D953225FF9C, "pin ")
+SUBS(AR|AA|AT|AP, str_4E64DC39CCCFB68B, "tapa ")
+SUBS(AR|AA|AS|AI, str_F27DC36CBF1518A9, "sais ")
+SUBS(AR|AS|AE|AT, str_29CD3969E34DF35B, "ce ")
+SUBS(AR|AA|AE|AI, str_4E954BC1BF0C30BF, "aie ")
+SUBS(AR|AN|AI|AO, str_9A5CC103ABF05E48, "lui ")
+SUBS(AR|AS|AI|AP, str_565EB49E602024EF, "pis ")
+SUBS(AR|AT|AN|AI, str_96A25A2A55589326, "vin ")
+PRES(AN|AI|AO|AP, KC_ENT)
+SUBS(AR|AA|AE|AT, str_84F2B8BF6F246A77, "frere ")
+SUBS(AR|AN|AO|AP, str_00992C32EFED8CB7, "mon ")
+SUBS(AR|AA|AS|AT|AI, str_9829604A158B3E05, "vais ")
+SUBS(AR|AS|AN|AO|AP, str_12AF93D01647F576, "noms ")
+SUBS(AR|AA|AT|AO|AP, str_1BD669DDC261A05C, "tapota ")
+SUBS(AR|AS|AT|AI|AP, str_2BC515A6311342A6, "pic ")
+SUBS(AR|AS|AE|AT|AI, str_4304C227395BD37E, "dit ")
+SUBS(AR|AA|AS|AT|AP, str_95C59AB8275627DB, "cap ")
+SUBS(AR|AA|AN|AO|AP, str_40B810EB6C30C217, "mona ")
+SUBS(AR|AA|AT|AN|AO, str_CC080FE2FF7C2E70, "fut ")
+SUBS(AR|AE|AI|AO|AP, str_40D2BC6DD117FB71, "l'oeil ")
+SUBS(AR|AA|AS|AE|AO, str_FEE35575A17EE85A, "owe ")
+SUBS(AR|AA|AE|AT|AI, str_D325B8F33D71AF69, "etait ")
+SUBS(AR|AA|AE|AI|AP, str_6445A06E8D99B99F, "paix ")
+SUBS(AR|AA|AS|AT|AO, str_16E25DDA29420EFF, "costas ")
+SUBS(AR|AS|AT|AN|AO, str_1AFE5B1591616C6F, "sont ")
+SUBS(AR|AS|AN|AI|AP, str_2AF23F7FD8046F6F, "mis ")
+SUBS(AR|AA|AS|AI|AP, str_28F8ABE7BAB525FA, "passai ")
+SUBS(AR|AA|AS|AT|AN, str_ED64011B1DDBB524, "bas ")
+SUBS(AR|AA|AS|AE|AT, str_2F48A027894655CD, "tard ")
+SUBS(AR|AA|AS|AE|AI, str_6273F3FFBACF5CF4, "assez ")
+SUBS(AR|AA|AE|AT|AN, str_BD5CBA745807BD42, "enfant ")
+SUBS(AR|AS|AI|AO|AP, str_877FC3FABAB14793, "poils ")
+SUBS(AR|AS|AT|AN|AP, str_DE6CBE601C534F3D, "cm ")
+SUBS(AR|AA|AT|AI|AP, str_E3FED3DD94790CBB, "tapait ")
+SUBS(AR|AA|AI|AO|AP, str_0A3FAE924B2D7C5D, "plaza ")
+SUBS(AR|AA|AS|AO|AP, str_2C5A9D37E22C3E8B, "posa ")
+SUBS(AR|AA|AT|AI, str_0A95DEE41936732C, "avait ")
+SUBS(AR|RGT|AA|AT|AI, str_D7978D4AE69E4592, "if ")
+SUBS(AR|AT|AI|AO, str_BC609B944608D11C, "toi ")
+SUBS(AR|RGT|AT|AI|AO, str_298367581D06A3A3, "lit ")
+SUBS(AR|AA|AE|AN, str_618F1C5CCE914755, "annee ")
+SUBS(AR|RGT|AA|AE|AN, str_93990AACC914CE2D, "nanny ")
+SUBS(AR|AE|AN|AP, str_A2F6876B6C66BF2E, "emmene ")
+SUBS(AR|RGT|AE|AN|AP, str_5140BEC191346017, "me ")
+SUBS(AR|AS|AE|AO, str_17D1C10C08DF4AD2, "dos ")
+SUBS(AR|RGT|AS|AE|AO, str_3F9E1C177D3332EB, "ose ")
+SUBS(AR|AE|AN|AI, str_7E3D8B1C859776CA, "eh ")
+SUBS(AR|RGT|AE|AN|AI, str_C9E12997526D9B37, "hein ")
+SUBS(AR|AA|AN|AO, str_FD846B750BDF7708, "au ")
+SUBS(AR|RGT|AA|AN|AO, str_ABD6428DD78ACF4D, "noua ")
+SUBS(AR|AS|AT|AI, str_D466F321075D4855, "vis ")
+SUBS(AR|RGT|AS|AT|AI, str_119364F935F4EBCA, "ici ")
+SUBS(AR|AS|AI|AO, str_C9ADB25B4C37D131, "sol ")
+SUBS(AR|RGT|AS|AI|AO, str_43498AA51D30F3FF, "ils ")
+SUBS(AR|AE|AI|AO, str_3CD2516588C5C683, "elle ")
+SUBS(AR|RGT|AE|AI|AO, str_05A9C753CDE4911A, "le ")
+SUBS(AR|AE|AT|AO, str_CC2393E67BC4FD99, "gorge ")
+SUBS(AR|RGT|AE|AT|AO, str_B97355B02DCE4543, "or ")
+SUBS(AR|AA|AS|AP, str_96F2FCCCDB7B158D, "saps ")
+SUBS(AR|RGT|AA|AS|AP, str_467C897077B58F08, "pas ")
+SUBS(AR|AT|AN|AO, str_862A200BA269E645, "tout ")
+SUBS(AR|RGT|AT|AN|AO, str_54D987539784DC58, "ont ")
+SUBS(AR|AS|AE|AI, str_7F7E7B4A6D337279, "dis ")
+SUBS(AR|RGT|AS|AE|AI, str_8A50CBEF7E0A6524, "idee ")
+SUBS(AR|AT|AO|AP, str_8574F11BEB82545C, "top ")
+SUBS(AR|RGT|AT|AO|AP, str_028BB7B551A4BD43, "pot ")
+SUBS(AR|AS|AE|AN, str_32148592C3806623, "sens ")
+SUBS(AR|RGT|AS|AE|AN, str_6D067D15A808A9B1, "je ")
+SUBS(AR|AS|AN|AO, str_3D29840CE477716A, "son ")
+SUBS(AR|RGT|AS|AN|AO, str_22C9D5E22EF9095F, "nous ")
+SUBS(AR|AS|AE|AP, str_B595D9406FDA4F64, "epees ")
+SUBS(AR|RGT|AS|AE|AP, str_9209A1D5F27363FA, "pdd ")
+SUBS(AR|AA|AN|AI, str_BF40C27E59DAAC7B, "ah ")
+SUBS(AR|RGT|AA|AN|AI, str_4394B0F660AFCB43, "hanna ")
+SUBS(AR|AA|AS|AN, str_CE3B00B88629D10F, "sans ")
+SUBS(AR|RGT|AA|AS|AN, str_C5270D6F6B831E8A, "jan ")
+SUBS(AR|AE|AN|AO, str_3CF92217D792ADB9, "eu ")
+SUBS(AR|RGT|AE|AN|AO, str_5BF347C18B23AF8F, "une ")
+SUBS(AR|AE|AT|AP, str_4139EFF0D81A84C8, "repete ")
+SUBS(AR|RGT|AE|AT|AP, str_17F340CB47FA3AFE, "pere ")
+SUBS(AR|AA|AI|AO, str_30B8BB99FFF81FC0, "alla ")
+SUBS(AR|RGT|AA|AI|AO, str_7E7904D7326BCF29, "la ")
+SUBS(AR|AA|AS|AI|AO|AP, str_1FB1E1A6B345A6F4, "palais ")
+SUBS(AR|AA|AS|AE|AT|AI, str_4168E4A652CEAF80, "avec ")
+SUBS(AR|AE|AN|AI|AO|AP, str_2770B52E1461FA12, "homme ")
+SUBS(AR|AA|AE|AT|AN|AO, str_39654F9A6C617C0D, "autre ")
+SUBS(AR|AA|AS|AN|AO|AP, str_169D4FC4776F16BE, "poussa ")
+SUBS(AR|AA|AS|AE|AT|AO, str_7B2E217198FB3271, "regard ")
+SUBS(AR|AA|AS|AT|AO|AP, str_2DDD9C85A181E11B, "capot ")
+SUBS(AR|AA|AS|AE|AO|AP, str_96D231FB065DF073, "deposa ")
+SUBS(AR|AS|AE|AT|AN|AI, str_09433F144B1C4CE6, "dernier ")
+SUBS(AR|AS|AT|AN|AI|AP, str_A523540C97D0BDFB, "smith ")
+SUBS(AR|AA|AS|AT|AN|AO, str_7930E0090F32732B, "facon ")
+SUBS(AR|AE|AT|AI|AP, str_424298BF8C008AB0, "reprit ")
+SUBS(AR|RGT|AE|AT|AI|AP, str_869487CB835CCBF0, "petit ")
+SUBS(AR|AA|AE|AT|AO, str_CD81FDAA52C86F1E, "fort ")
+SUBS(AR|RGT|AA|AE|AT|AO, str_0CF42461BCC5C13F, "offert ")
+SUBS(AR|AS|AT|AI|AO, str_26B898C1A85DA5C9, "soit ")
+SUBS(AR|RGT|AS|AT|AI|AO, str_280E295D8F1242CA, "kotko ")
+SUBS(AR|AA|AE|AT|AP, str_2A4B646527ABFDB5, "frappe ")
+SUBS(AR|RGT|AA|AE|AT|AP, str_F552C5CE7412D067, "par ")
+SUBS(AR|AS|AE|AI|AO, str_34E7EC35CEFED8A7, "elles ")
+SUBS(AR|RGT|AS|AE|AI|AO, str_C4A6AAB982B673F2, "les ")
+SUBS(AR|AE|AT|AO|AP, str_18E2DD7864DDEDC5, "trop ")
+SUBS(AR|RGT|AE|AT|AO|AP, str_BB421D7D5BAA04A1, "porte ")
+SUBS(AR|AA|AE|AN|AO, str_6A810E6F1345F79D, "que ")
+SUBS(AR|RGT|AA|AE|AN|AO, str_9BEBF2BB1F8A8717, "yeux ")
+SUBS(AR|AS|AE|AT|AO, str_01CF094CCF2E483F, "cote ")
+SUBS(AR|RGT|AS|AE|AT|AO, str_E4239056762C3D8E, "orc ")
+SUBS(AR|AA|AT|AN|AI, str_36D31D30200ABA8A, "avant ")
+SUBS(AR|RGT|AA|AT|AN|AI, str_16285952EF2702B1, "navait ")
+SUBS(AR|AS|AE|AT|AN, str_425E36361A2CC461, "cent ")
+SUBS(AR|RGT|AS|AE|AT|AN, str_9AC336D3C99667F3, "jeter ")
+SUBS(AR|AE|AN|AI|AP, str_11F84E12BBBFCCEA, "ennemi ")
+SUBS(AR|RGT|AE|AN|AI|AP, str_08CB227850D070F0, "peine ")
+SUBS(AR|AA|AN|AI|AP, str_0399462E63D0085B, "ami ")
+SUBS(AR|RGT|AA|AN|AI|AP, str_5F9A0F9BBD5A0AB7, "main ")
+SUBS(AR|AS|AE|AT|AP, str_249204828DFE2B87, "c'est ")
+SUBS(AR|RGT|AS|AE|AT|AP, str_91024023E9BCDC7C, "pres ")
+SUBS(AR|AE|AT|AN|AP, str_8A3CF03C5FA779DF, "type ")
+SUBS(AR|RGT|AE|AT|AN|AP, str_DEE3BBD571C511F7, "mere ")
+SUBS(AR|AA|AS|AE|AN, str_D382BDEBE52AB75E, "dans ")
+SUBS(AR|RGT|AA|AS|AE|AN, str_E21E00C501A17368, "jean ")
+SUBS(AR|AT|AN|AO|AP, str_C7B05810B9878F2F, "tom ")
+SUBS(AR|RGT|AT|AN|AO|AP, str_7E273C54E980F6C3, "mot ")
+SUBS(AR|AT|AN|AI|AP, str_AF1FE256DC6BB784, "tim ")
+SUBS(AR|RGT|AT|AN|AI|AP, str_168886128C6CCE68, "mit ")
+SUBS(AR|AT|AN|AI|AO, str_E186D37D1DC8E960, "vu ")
+SUBS(AR|RGT|AT|AN|AI|AO, str_2E374ECBD051C431, "nuit ")
+SUBS(AR|AS|AE|AN|AO, str_68105B858B425CB4, "du ")
+SUBS(AR|RGT|AS|AE|AN|AO, str_09307894AF437586, "jeune ")
+SUBS(AR|AE|AT|AI|AO, str_0BE27CEF5EAD8FF1, "votre ")
+SUBS(AR|RGT|AE|AT|AI|AO, str_7BCEB3F9664FB392, "livre ")
+SUBS(AR|AS|AN|AI|AO, str_DB5D0CB8B2064E3F, "suis ")
+SUBS(AR|RGT|AS|AN|AI|AO, str_B24523534C6D82C9, "john ")
+SUBS(AR|AA|AT|AN|AP, str_B3A4DBEADADE554B, "amant ")
+SUBS(AR|RGT|AA|AT|AN|AP, str_06AABBFC9BF9658F, "mat ")
+SUBS(AR|AA|AS|AN|AI, str_F49C2ED16A00AF71, "ainsi ")
+SUBS(AR|RGT|AA|AS|AN|AI, str_F95DB4023FEBBF8D, "jai ")
+SUBS(AR|AE|AN|AI|AO, str_7CFEC9881D601C31, "euh ")
+SUBS(AR|RGT|AE|AN|AI|AO, str_343C08EE75398FFB, "lieu ")
+SUBS(AR|AA|AS|AI|AO, str_986F1E27EAD7EC5B, "siloa ")
+SUBS(AR|RGT|AA|AS|AI|AO, str_A0250F313F0FE686, "laissa ")
+SUBS(AR|AS|AE|AN|AP, str_92522CFA3D4265D4, "s'en ")
+SUBS(AR|RGT|AS|AE|AN|AP, str_FBAD4BF313DC1E39, "mes ")
+SUBS(AR|AA|AE|AN|AP, str_8FE802A36341EA0E, "ame ")
+SUBS(AR|RGT|AA|AE|AN|AP, str_5A71C0C8EFA36509, "m'a ")
+SUBS(AR|AE|AT|AN|AI, str_5ABF3B03AD7D60C8, "bien ")
+SUBS(AR|RGT|AE|AT|AN|AI, str_7FFC98FBA9E3A98C, "hier ")
+SUBS(AR|AA|AE|AN|AI, str_AFC88DA32D0E5B6C, "ayez ")
+SUBS(AR|RGT|AA|AE|AN|AI, str_FE3EA39B5CDB4B6D, "nez ")
+SUBS(AR|AS|AT|AO|AP, str_CB532D5DED67E46B, "stop ")
+SUBS(AR|RGT|AS|AT|AO|AP, str_9903C98C2263313F, "pots ")
+SUBS(AR|AA|AS|AN|AO, str_FEF698E458380208, "sonna ")
+SUBS(AR|RGT|AA|AS|AN|AO, str_4DF8261DC5ABC45C, "joanna ")
+SUBS(AR|AA|AS|AN|AP, str_020E794D3DE91D12, "sam ")
+SUBS(AR|RGT|AA|AS|AN|AP, str_E8089E5AE05C336B, "pans ")
+SUBS(AR|AS|AE|AN|AI, str_4C96EF4DA8B974F6, "sein ")
+SUBS(AR|RGT|AS|AE|AN|AI, str_C18F2D3E5BFCF1EA, "indiens ")
+SUBS(AR|AA|AT|AI|AO, str_5457C8FE44545EC0, "voila ")
+SUBS(AR|RGT|AA|AT|AI|AO, str_CD43BCF9440F029F, "livia ")
+SUBS(AR|AS|AE|AI|AP, str_FB73F266A638529A, "d'idees ")
+SUBS(AR|RGT|AS|AE|AI|AP, str_4D92E385003BEF4D, "pieds ")
+SUBS(AR|AE|AN|AO|AP, str_0E5C26B177DB3B6B, "emu ")
+SUBS(AR|RGT|AE|AN|AO|AP, str_085535C1FC37ABD1, "peu ")
+SUBS(AR|AS|AE|AO|AP, str_ED02F27FF9D2AE40, "depose ")
+SUBS(AR|RGT|AS|AE|AO|AP, str_578A5EB31DA360B8, "pose ")
+SUBS(AR|AS|AT|AN|AI, str_965A2CA8D6D560B3, "chic ")
+SUBS(AR|RGT|AS|AT|AN|AI, str_CACB1DDE4C45C572, "instinct ")
+SUBS(AR|AA|AS|AE|AP, str_C771C064D2998574, "depasse ")
+SUBS(AR|RGT|AA|AS|AE|AP, str_1B1C50D62E726AE4, "passe ")
+SUBS(AR|AA|AE|AI|AO, str_920555295259A453, "allez ")
+SUBS(AR|RGT|AA|AE|AI|AO, str_2BCCE3C0702A7BCE, "lizzie ")
+SUBS(AR|AE|AT|AN|AO, str_E41CC923CDA39A2D, "toute ")
+SUBS(AR|RGT|AE|AT|AN|AO, str_F1E4A268EFF8EC70, "notre ")
+SUBS(AR|AA|AN|AI|AO, str_E6F04AE213D415C8, "qui ")
+SUBS(AR|RGT|AA|AN|AI|AO, str_54DEAA1A3F19A7FC, "hall ")
+SUBS(AR|AA|AS|AE|AT|AN|AO, str_66C5091BFE1D84F2, "grand ")
+SUBS(AR|AA|AE|AN|AI|AO, str_25482DDA67602F3F, "quelque ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO, str_AD3F108A5D363BEA, "laquelle ")
+SUBS(AR|AS|AE|AN|AI|AP, str_AC28A211439F6911, "demi ")
+SUBS(AR|RGT|AS|AE|AN|AI|AP, str_1CA2E2124CE1270B, "mise ")
+SUBS(AR|AE|AT|AN|AI|AP, str_1A112A146452BC73, "termine ")
+SUBS(AR|RGT|AE|AT|AN|AI|AP, str_05D7B87CEB0F914E, "premiere ")
+SUBS(AR|AS|AE|AT|AO|AP, str_C0830DAE0B31642D, "corps ")
+SUBS(AR|RGT|AS|AE|AT|AO|AP, str_F35A63ECE326D256, "propos ")
+SUBS(AR|AS|AE|AT|AI|AO, str_BBAE3D000B70B461, "trois ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO, str_4E7A25870FA9D576, "levres ")
+SUBS(AR|AA|AS|AN|AI|AO, str_5CCED470C6376E24, "aussi ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO, str_1CE92F7D438ECE71, "ouais ")
+SUBS(AR|AA|AS|AT|AN|AI, str_1C08995987F002CC, "cinq ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI, str_62D4959696367129, "instant ")
+SUBS(AR|AA|AT|AN|AO|AP, str_68AF24BC140C3A1C, "tomba ")
+SUBS(AR|RGT|AA|AT|AN|AO|AP, str_C7736F1E6FE4A0FB, "monta ")
+SUBS(AR|AA|AT|AN|AI|AO, str_36D184CC7E806783, "voulait ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO, str_BA6BB38BF55A70F7, "haut ")
+SUBS(AR|AA|AE|AT|AO|AP, str_0C644F2339AF7F37, "rapport ")
+SUBS(AR|RGT|AA|AE|AT|AO|AP, str_5E0C8ECDADE5F1A0, "page ")
+SUBS(AR|AA|AT|AI|AO|AP, str_F7C74701175E069E, "galop ")
+SUBS(AR|RGT|AA|AT|AI|AO|AP, str_622571FA2C6C5F91, "plait ")
+SUBS(AR|AA|AT|AN|AI|AP, str_D177B96161AD1907, "faim ")
+SUBS(AR|RGT|AA|AT|AN|AI|AP, str_CBD66599EF0CEAD6, "matin ")
+SUBS(AR|AS|AE|AT|AN|AP, str_BC8F7D662EC90482, "temps ")
+SUBS(AR|RGT|AS|AE|AT|AN|AP, str_CCD04B34B117B55B, "n'est ")
+SUBS(AR|AA|AE|AT|AN|AI, str_F418D65530DB8FD9, "etaient ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI, str_7F47DD2F4421A474, "navire ")
+SUBS(AR|AS|AN|AI|AO|AP, str_6CBFC109D0CB9CF1, "simon ")
+SUBS(AR|RGT|AS|AN|AI|AO|AP, str_8CF693C1CD0D766F, "plus ")
+SUBS(AR|AA|AE|AT|AI|AP, str_3EDC6B6F5BA07B76, "t'ai ")
+SUBS(AR|RGT|AA|AE|AT|AI|AP, str_1476FE2F798ACCE5, "partie ")
+SUBS(AR|AS|AE|AT|AN|AO, str_5577D4AF34CAEB45, "sur ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO, str_E65DB024A5ECD140, "jour ")
+SUBS(AR|AA|AE|AI|AO|AP, str_92B9AE4B66302B82, "appele ")
+SUBS(AR|RGT|AA|AE|AI|AO|AP, str_657A21827EC908C2, "l'a ")
+SUBS(AR|AS|AE|AN|AO|AP, str_AFAFEA75716A544B, "d'un ")
+SUBS(AR|RGT|AS|AE|AN|AO|AP, str_9CE7D746BF40A906, "monde ")
+SUBS(AR|AA|AS|AE|AN|AI, str_C863303B30CC6CA5, "whisky ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI, str_5A076D67C1E12F00, "jadis ")
+SUBS(AR|AE|AT|AI|AO|AP, str_CAE4F1BAEB60B2AE, "reprit-il ")
+SUBS(AR|RGT|AE|AT|AI|AO|AP, str_3760146EA308F926, "l'oreille ")
+SUBS(AR|AS|AE|AI|AO|AP, str_B7896E215EDAB4D9, "s'il ")
+SUBS(AR|RGT|AS|AE|AI|AO|AP, str_A66EDFD8BBF7C02D, "l'idee ")
+SUBS(AR|AA|AS|AN|AI|AP, str_1338FD4C177C9FA5, "amis ")
+SUBS(AR|RGT|AA|AS|AN|AI|AP, str_1D5EA690EF5FD1C4, "mais ")
+SUBS(AR|AA|AN|AI|AO|AP, str_279C5D17219228B4, "animal ")
+SUBS(AR|RGT|AA|AN|AI|AO|AP, str_8C909DCD35D4BFA0, "mal ")
+SUBS(AR|AA|AS|AE|AT|AN, str_27921734FC6C4630, "bras ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN, str_9C15758D0561127B, "jeta ")
+SUBS(AR|AS|AE|AN|AI|AO, str_4909D64AE40AF235, "seul ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO, str_728D44D57F3D5CB5, "luke ")
+SUBS(AR|AA|AS|AT|AI|AP, str_D316E05F7A31C556, "tapis ")
+SUBS(AR|RGT|AA|AS|AT|AI|AP, str_AE1C7C97FC8BC730, "passait ")
+SUBS(AR|AA|AS|AE|AI|AP, str_98E528E6E1AB891E, "epais ")
+SUBS(AR|RGT|AA|AS|AE|AI|AP, str_F7D8B7F7F4102B91, "peake ")
+SUBS(AR|AS|AT|AN|AI|AO, str_818D8DDAB25804FA, "vous ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO, str_CF3E7E7B6F09026E, "longs ")
+SUBS(AR|AA|AS|AT|AN|AP, str_389AFA2E457B3E69, "camp ")
+SUBS(AR|RGT|AA|AS|AT|AN|AP, str_925ABF43C5B70E96, "passant ")
+SUBS(AR|AA|AE|AT|AN|AP, str_FFEC257529F84974, "femme ")
+SUBS(AR|RGT|AA|AE|AT|AN|AP, str_0686EEF367676984, "payer ")
+SUBS(AR|AE|AT|AN|AO|AP, str_39CC5C55E54AE0EF, "tomber ")
+SUBS(AR|RGT|AE|AT|AN|AO|AP, str_7EC4FCA07D149F5D, "pour ")
+SUBS(AR|AA|AS|AE|AN|AO, str_52FB09A529B5AC1E, "deux ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO, str_71AF7338D30200D2, "judas ")
+SUBS(AR|AA|AS|AE|AN|AP, str_E39928C19E258CBE, "demande ")
+SUBS(AR|RGT|AA|AS|AE|AN|AP, str_F40A2652F64BAD03, "pays ")
+SUBS(AR|AT|AN|AI|AO|AP, str_20E52916AEA83DFC, "bulpitt ")
+SUBS(AR|RGT|AT|AN|AI|AO|AP, str_12D789B35778048E, "point ")
+SUBS(AR|AE|AT|AN|AI|AO, str_B2F5969132301C29, "trouve ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO, str_BEAAEA0A6F8EBEC3, "leur ")
+SUBS(AR|AA|AS|AT|AI|AO, str_3CA68843DB6F2127, "fois ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO, str_784042E30FC8CF0A, "lac ")
+SUBS(AR|AA|AE|AN|AO|AP, str_65074CCDD92E4631, "qu'on ")
+SUBS(AR|RGT|AA|AE|AN|AO|AP, str_69712A142CC3282B, "peux ")
+SUBS(AR|AA|AS|AE|AI|AO, str_F1F005E4E14CAF9F, "salle ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO, str_DBF5CCB5C080B8B5, "laisse ")
+SUBS(AR|AS|AT|AN|AO|AP, str_E0435EDC3EE5DE27, "coup ")
+SUBS(AR|RGT|AS|AT|AN|AO|AP, str_50133292145C1A36, "mots ")
+SUBS(AR|AA|AE|AT|AI|AO, str_C09D7F6A02526130, "voix ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO, str_79A0BB6D702B34A9, "leva ")
+SUBS(AR|AA|AE|AN|AI|AP, str_DCA565EF88646A19, "aime ")
+SUBS(AR|RGT|AA|AE|AN|AI|AP, str_A64527EB8358356B, "n'ai ")
+SUBS(AR|AS|AE|AT|AI|AP, str_5118FCC0399F38AC, "esprit ")
+SUBS(AR|RGT|AS|AE|AT|AI|AP, str_405D34AF2264AD2A, "pris ")
+SUBS(AR|AA|AS|AE|AT|AP, str_3FC447E0B1693052, "apres ")
+SUBS(AR|RGT|AA|AS|AE|AT|AP, str_0453CA40903350E1, "parce ")
+SUBS(AR|AA|AS|AT|AN|AO|AP, str_928C8C0A02A7EB95, "combat ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_18BBE181BAB96E83, "poussant ")
+SUBS(AR|AA|AE|AT|AN|AI|AO, str_251617D0E028ECE3, "veux ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_ED52DD3F41A23E90, "nouveau ")
+SUBS(AR|AE|AT|AN|AI|AO|AP, str_763CFE2AD899C547, "telephone ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_B91211B1C7BF142A, "lumiere ")
+SUBS(AR|AS|AE|AT|AI|AO|AP, str_B1B7CEEBE8C4B932, "desespoir ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_323C08EE5775F9CB, "police ")
+SUBS(AR|AS|AE|AT|AN|AI|AP, str_C2CA1BF2E422BA55, "chemin ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_BBDE7CF9FA9FE9E6, "merci ")
+SUBS(AR|AA|AS|AT|AI|AO|AP, str_A069AFF6B6716321, "capital ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_DD33617FFDEE917C, "posait ")
+SUBS(AR|AS|AE|AT|AN|AO|AP, str_950566F32F1EBB8F, "comme ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_A37C242ABE327536, "personne ")
+SUBS(AR|AA|AS|AE|AT|AO|AP, str_6F460357096E0596, "d'accord ")
+SUBS(AR|RGT|AA|AS|AE|AT|AO|AP, str_182416B9DC666D5A, "passage ")
+SUBS(AR|AA|AE|AN|AI|AO|AP, str_F92CC0DC1482DEC1, "qu'il ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_CD72C767C5B6D6FE, "mieux ")
+SUBS(AR|AA|AS|AE|AT|AI|AO, str_8B9405490B496F6F, "alors ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_8ED6918DB98B9605, "laisser ")
+SUBS(AR|AA|AS|AE|AI|AO|AP, str_9180E61C10C3729B, "s'appelle ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_B45035A406DC95FA, "l'aide ")
+SUBS(AR|AA|AE|AT|AN|AO|AP, str_29FE2A4CE634943A, "forme ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_151F217B67BA2BC9, "pourtant ")
+SUBS(AR|AS|AE|AN|AI|AO|AP, str_47E63E96300262A3, "depuis ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_3325F4C200714AFF, "hommes ")
+SUBS(AR|AS|AT|AN|AI|AO|AP, str_69600B03931090D9, "commis ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_FC0C294EC6F5001A, "jimbo ")
+SUBS(AR|AA|AS|AE|AN|AO|AP, str_18302BCF2C813E23, "d'eau ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_EE1B0995F3E463E4, "jusqu'a ")
+SUBS(AR|AS|AE|AT|AN|AI|AO, str_E252EF88BE5FC18F, "chose ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_50D3BF444ADA147E, "leurs ")
+SUBS(AR|AA|AS|AE|AT|AN|AP, str_2328F43B45266617, "femmes ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_DF6E230A237C3578, "pendant ")
+SUBS(AR|AA|AE|AT|AI|AO|AP, str_344987CAE0102D4A, "appeler ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_9E45601B45E6A290, "l'air ")
+SUBS(AR|AA|AS|AE|AN|AI|AO, str_F74F861955523A82, "quelques ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_30950D620683AF51, "la-dedans ")
+SUBS(AR|AA|AS|AN|AI|AO|AP, str_93C5B21D9ECF3845, "salim ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_FB61EB5A0298BAB9, "maison ")
+SUBS(AR|AA|AE|AT|AN|AI|AP, str_D38B77B3B282F7EF, "vraiment ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_D25857E29FFF781D, "n'etait ")
+SUBS(AR|AA|AT|AN|AI|AO|AP, str_2E642CEEC56D4266, "film ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_602AE79E1C6F73F6, "pouvait ")
+SUBS(AR|AA|AS|AE|AN|AI|AP, str_924E469EF66C97F9, "semaine ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_D1FF0E930BEAB21B, "j'ai ")
+SUBS(AR|AA|AS|AE|AT|AN|AI, str_229DB63F9CAE985C, "devant ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_C8C3FE7AD27CA4CF, "jardin ")
+SUBS(AR|AA|AS|AE|AT|AI|AP, str_FEABAA3D7026B6A4, "c'etait ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_4F6C506138FB813D, "paris ")
+SUBS(AR|AA|AS|AT|AN|AI|AP, str_E741DF3E0D367E7F, "champ ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_FCF69A9140927069, "massif ")
+SUBS(AR|AA|AS|AT|AN|AI|AO, str_E216469D374207EA, "avons ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_244FCF4397B9D4E5, "lanca ")
+SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_37F6FFA75B31CE13, "qu'est-ce ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_432C4A96D08E0AB5, "presque ")
+SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_A1ECA5B498E1A83A, "thomas ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_176F238754B63C2C, "mauvais ")
+SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_A4100F3934E1B845, "qu'ils ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_2EAA520471AA5336, "musique ")
+SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_A436652AE4501CD4, "repondit ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_F1FA2F03D5969C88, "longtemps ")
+SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_33CD65AFB4B4BA6A, "famille ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_40469D10CEE2718D, "pourquoi ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_B7C7AA91F5D47EA4, "chaque ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_7140D3F219DA935B, "lorsque ")
+SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_AC7DF9B6CE60B66A, "d'avoir ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_156052B6D0CC2F4A, "place ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_A12E737B76D8C8DD, "chambre ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_BC2EBDFC3C3596EF, "j'avais ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_61C4FD13C960A702, "semblait ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_D91637207DF55DED, "larmes ")
diff --git a/keyboards/gboards/dicts/aset/hu-keymap.def b/keyboards/gboards/dicts/aset/hu-keymap.def
new file mode 100644
index 0000000000..a6b236fde3
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/hu-keymap.def
@@ -0,0 +1,395 @@
+// This file is automatically generated. Do not edit it!
+
+PRES(AS, KC_S)
+PRES(AN, KC_N)
+PRES(AT, KC_T)
+PRES(AP, KC_P)
+PRES(AI, KC_I)
+PRES(AA, KC_A)
+PRES(AO, KC_O)
+PRES(AE, KC_E)
+PRES(AE|AO, KC_MINS)
+PRES(AA|AT, KC_F)
+KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END})
+KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END})
+PRES(AN|AI, KC_H)
+PRES(AE|AP, KC_QUOT)
+KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END})
+PRES(AS|AI, KC_K)
+PRES(AA|AN, KC_Q)
+PRES(AI|AO, KC_L)
+PRES(AN|AP, KC_M)
+PRES(AT|AP, KC_BSPC)
+PRES(AA|AI, KC_Z)
+PRES(AA|AP, KC_QUOT)
+PRES(AT|AI, KC_V)
+PRES(AA|AE, KC_X)
+PRES(AE|AI, KC_COMM)
+PRES(AE|AT, KC_R)
+PRES(AS|AT, KC_C)
+PRES(AS|AN, KC_J)
+PRES(AT|AN, KC_B)
+PRES(AA|AS, KC_W)
+PRES(AO|AP, KC_SCLN)
+PRES(AS|AO, KC_DOT)
+PRES(AT|AO, KC_G)
+PRES(AS|AE, KC_D)
+PRES(AN|AO, KC_U)
+PRES(AE|AN, KC_Y)
+SUBS(AR|AS|AE|AP, str_9B6ECB908551EEF3, "'s ")
+SUBS(AR|AN|AI|AO, str_37397E05936EF60B, "hol ")
+SUBS(AR|AI|AO|AP, str_B03D03B4D5AE548B, "pl ")
+SUBS(AR|AA|AS|AT, str_51931D246213D5BA, "fact ")
+SUBS(AR|AS|AN|AI, str_E9D65B1F0CC7B588, "his ")
+PRES(AN|AI|AO|AP, KC_ENT)
+SUBS(AR|AS|AT|AO, str_4397946AE21A0B1E, "sot ")
+SUBS(AR|AE|AT|AP, str_D89F06941F4B44CE, "peter ")
+SUBS(AR|AS|AI|AP, str_50E8EDA878796D86, "sip ")
+SUBS(AR|AN|AO|AP, str_D443D6F10491FB2B, "up ")
+SUBS(AR|AA|AE|AO, str_AB819235D216611C, "-a ")
+SUBS(AR|AA|AS|AE, str_C8F40BD7102B7E24, "we ")
+SUBS(AR|AA|AE|AT, str_55C1EFD3A930269F, "arra ")
+SUBS(AR|AS|AT|AN, str_7C050C0539297C01, "stb ")
+SUBS(AR|AA|AE|AP, str_102DD7D0196F36BB, "a' ")
+SUBS(AR|AA|AE|AN, str_83396DA0D7927D05, "any ")
+SUBS(AR|AN|AI|AP, str_DD31FA4C91A58242, "mi ")
+SUBS(AR|AA|AS|AP, str_467C897077B58F08, "pas ")
+SUBS(AR|AE|AT|AN, str_7D2440FBBF9D0256, "be ")
+SUBS(AR|AS|AE|AT, str_0E0F5E232A8BAABC, "este ")
+SUBS(AR|AA|AT|AN, str_1E9FF302BE0690D7, "abban ")
+SUBS(AR|AE|AO|AP, str_AAB1D405F8D273AF, "pope ")
+SUBS(AR|AT|AN|AP, str_C8416EF912866543, "bp ")
+SUBS(AR|AT|AI|AO|AP, str_D83E8C3C544E3C39, "lopott ")
+SUBS(AR|AS|AT|AN|AP, str_DE6CBE601C534F3D, "cm ")
+SUBS(AR|AA|AE|AT|AI, str_A170D207626BFA6C, "ezt ")
+SUBS(AR|AE|AN|AO|AP, str_9A83D40FDDF2FD43, "unnep ")
+SUBS(AR|AA|AN|AO|AP, str_BB21C3559B0505B3, "napon ")
+SUBS(AR|AA|AS|AT|AI, str_8F4D5A11E1075008, "csak ")
+SUBS(AR|AA|AS|AT|AO, str_035228752979D35D, "two ")
+SUBS(AR|AA|AS|AI|AP, str_FF423FC7030B5706, "kap ")
+SUBS(AR|AS|AN|AI|AO, str_492EBC90B1BA2D9D, "jol ")
+SUBS(AR|AS|AE|AT|AN, str_47B7DB9C9515D10F, "esetben ")
+SUBS(AR|AS|AT|AO|AP, str_2F7B8DE60CE15A4C, "csopp ")
+SUBS(AR|AS|AE|AI|AP, str_89EF8827BC5CAFEE, "kepes ")
+SUBS(AR|AA|AS|AT|AN, str_38CBA2C343AD7A58, "sajat ")
+SUBS(AR|AE|AI|AO|AP, str_56B0C240EA9FE481, "people ")
+SUBS(AR|AE|AT|AI|AP, str_E67528768F8F1A01, "epitett ")
+SUBS(AR|AS|AI|AO|AP, str_B21314858751F43A, "pokol ")
+SUBS(AR|AT|AN|AI|AP, str_77E57956A656C9B8, "mint ")
+SUBS(AR|AA|AT|AI|AP, str_51714F0721910950, "pava ")
+SUBS(AR|AS|AN|AI|AP, str_A0C8194E7629B540, "mik ")
+SUBS(AR|AA|AS|AE|AT, str_467AF751A93D5FEA, "were ")
+SUBS(AR|AS|AE|AO, str_282BCAA32CE4859D, "eso ")
+SUBS(AR|RGT|AS|AE|AO, str_8A213E5D6F2BA5DB, "-es ")
+SUBS(AR|AE|AN|AP, str_E17A5ED5A1A6AF4A, "eppen ")
+SUBS(AR|RGT|AE|AN|AP, str_BFDFBBCE59808C23, "nem ")
+SUBS(AR|AT|AI|AO, str_D9780B17825EA8D9, "volt ")
+SUBS(AR|RGT|AT|AI|AO, str_11DA009B8D0699A1, "ivott ")
+SUBS(AR|AT|AN|AI, str_0A908952F66CD009, "th ")
+SUBS(AR|RGT|AT|AN|AI, str_D5ACE27258AF148F, "hit ")
+SUBS(AR|AA|AT|AI, str_5D5F572D27C24D40, "azt ")
+SUBS(AR|RGT|AA|AT|AI, str_D7978D4AE69E4592, "if ")
+SUBS(AR|AA|AN|AI, str_BF40C27E59DAAC7B, "ah ")
+SUBS(AR|RGT|AA|AN|AI, str_BF044DB5EE261598, "ha ")
+SUBS(AR|AT|AN|AO, str_68E7CCE8B282E00C, "tobb ")
+SUBS(AR|RGT|AT|AN|AO, str_3F3B1F8B5A3E409E, "not ")
+SUBS(AR|AA|AI|AP, str_01085B25BEA005B6, "apai ")
+SUBS(AR|RGT|AA|AI|AP, str_CE7F7248BB638D9D, "papi ")
+SUBS(AR|AE|AI|AO, str_05ED48987A1828F9, "el ")
+SUBS(AR|RGT|AE|AI|AO, str_05A9C753CDE4911A, "le ")
+SUBS(AR|AA|AN|AP, str_77BE4D44A5F2AD27, "am ")
+SUBS(AR|RGT|AA|AN|AP, str_2A907D456EBB3E24, "ma ")
+SUBS(AR|AS|AE|AN, str_8AB9BD4B2DD7D691, "ej ")
+SUBS(AR|RGT|AS|AE|AN, str_57FCD18102003294, "need ")
+SUBS(AR|AS|AN|AO, str_3D29840CE477716A, "son ")
+SUBS(AR|RGT|AS|AN|AO, str_6E23CC4BFF56B58C, "jo ")
+SUBS(AR|AE|AN|AI, str_6766245913211D5A, "enni ")
+SUBS(AR|RGT|AE|AN|AI, str_C4D48E3111A94BAB, "he ")
+SUBS(AR|AS|AE|AI, str_3E9F631F6868B537, "did ")
+SUBS(AR|RGT|AS|AE|AI, str_A1A4E3A00C59C039, "ide ")
+SUBS(AR|AA|AN|AO, str_FD846B750BDF7708, "au ")
+SUBS(AR|RGT|AA|AN|AO, str_1CCC7EC82E802088, "onnan ")
+SUBS(AR|AE|AT|AI, str_B7E480E46E7DFA02, "vette ")
+SUBS(AR|RGT|AE|AT|AI, str_27FACFBC140A967A, "irt ")
+SUBS(AR|AA|AS|AN, str_4BC4F429F19A0C20, "aj ")
+SUBS(AR|RGT|AA|AS|AN, str_BEF7CEEB940C40B9, "jaj ")
+SUBS(AR|AS|AI|AO, str_F5D70B36185F7036, "sok ")
+SUBS(AR|RGT|AS|AI|AO, str_80673F3F8044C003, "ok ")
+SUBS(AR|AA|AS|AI, str_6B36FC68063C30F0, "aki ")
+SUBS(AR|RGT|AA|AS|AI, str_7E1764BDF98728ED, "iszik ")
+SUBS(AR|AA|AE|AI, str_F7221C737CE4B0D8, "ez ")
+SUBS(AR|RGT|AA|AE|AI, str_F96D1FD4510B04BB, "ize ")
+SUBS(AR|AA|AT|AP, str_43CCF22EECA5DEC5, "apat ")
+SUBS(AR|RGT|AA|AT|AP, str_1D23167759D2504B, "papat ")
+SUBS(AR|AA|AT|AO, str_6F8D612584B7A93E, "fog ")
+SUBS(AR|RGT|AA|AT|AO, str_BF38370C83727D39, "of ")
+SUBS(AR|AA|AI|AO, str_9F8EB086C328F80A, "all ")
+SUBS(AR|RGT|AA|AI|AO, str_7E7904D7326BCF29, "la ")
+SUBS(AR|AE|AT|AO, str_B5E6B5782EE16BAB, "eg ")
+SUBS(AR|RGT|AE|AT|AO, str_6584CD3D35668CB7, "oreg ")
+SUBS(AR|AE|AN|AO, str_3CF92217D792ADB9, "eu ")
+SUBS(AR|RGT|AE|AN|AO, str_9A6C6AD5C510E57E, "one ")
+SUBS(AR|AS|AT|AI, str_FE3764D2CF4CD20F, "cit ")
+SUBS(AR|RGT|AS|AT|AI, str_94B0C1ADEB11A2D2, "kit ")
+SUBS(AR|AT|AN|AI|AO|AP, str_2CB95DC376B85715, "mig ")
+SUBS(AR|AE|AT|AI|AO|AP, str_22F64F6B5A7CF6B1, "lepett ")
+SUBS(AR|AA|AE|AT|AI|AP, str_9F69CCD23524A2D6, "ipari ")
+SUBS(AR|AA|AE|AN|AO|AP, str_AAB0586E90F3DB2B, "nyoman ")
+SUBS(AR|AA|AS|AE|AT|AO, str_303554932BA8F823, "adott ")
+SUBS(AR|AS|AT|AN|AI|AP, str_C7230E5D62C6574F, "cim ")
+SUBS(AR|AS|AT|AI|AO, str_8203D41944F59853, "titkos ")
+SUBS(AR|RGT|AS|AT|AI|AO, str_9BA6433AE277E622, "kolto ")
+SUBS(AR|AE|AN|AI|AP, str_CD20717924E4F553, "enyim ")
+SUBS(AR|RGT|AE|AN|AI|AP, str_7DCF1B4C44D94FF6, "menni ")
+SUBS(AR|AA|AE|AN|AP, str_3F6F3E3C536FC149, "anyam ")
+SUBS(AR|RGT|AA|AE|AN|AP, str_223DD41A813D045F, "many ")
+SUBS(AR|AA|AS|AT|AP, str_B931D3C42055A455, "csapat ")
+SUBS(AR|RGT|AA|AS|AT|AP, str_718051F50C1745F9, "past ")
+SUBS(AR|AA|AS|AN|AI, str_D80727E4BA0DDFEA, "annak ")
+SUBS(AR|RGT|AA|AS|AN|AI, str_C0B6DE681C3A7A8F, "hisz ")
+SUBS(AR|AA|AE|AT|AN, str_5E4A4DA51E7CEA4B, "bar ")
+SUBS(AR|RGT|AA|AE|AT|AN, str_CBB292AE06389AEF, "natty ")
+SUBS(AR|AA|AE|AN|AO, str_6A810E6F1345F79D, "que ")
+SUBS(AR|RGT|AA|AE|AN|AO, str_0998DE34E163A419, "-an ")
+SUBS(AR|AA|AS|AE|AI, str_57DB6A8244965367, "ezek ")
+SUBS(AR|RGT|AA|AS|AE|AI, str_3188F741A91C21B7, "kezd ")
+SUBS(AR|AT|AN|AI|AO, str_48BAA03F3958F7D6, "tobbi ")
+SUBS(AR|RGT|AT|AN|AI|AO, str_1DA8E7958266845B, "otthon ")
+SUBS(AR|AA|AT|AO|AP, str_33D3B257A22359EF, "fopap ")
+SUBS(AR|RGT|AA|AT|AO|AP, str_65AE91DF2BABC307, "papot ")
+SUBS(AR|AE|AT|AO|AP, str_A89756F0BEB24A46, "gep ")
+SUBS(AR|RGT|AE|AT|AO|AP, str_8DDF4266066B432B, "por ")
+SUBS(AR|AA|AS|AI|AO, str_99918D3062109DEA, "azok ")
+SUBS(AR|RGT|AA|AS|AI|AO, str_7E0B205FA174F770, "law ")
+SUBS(AR|AA|AT|AN|AP, str_9B718EA927D8ED65, "babam ")
+SUBS(AR|RGT|AA|AT|AN|AP, str_061FDED299547EE8, "mta ")
+SUBS(AR|AS|AE|AT|AP, str_3BEBEA0C0A68F107, "csepp ")
+SUBS(AR|RGT|AS|AE|AT|AP, str_8DAFD4DF49BEF2D5, "pest ")
+SUBS(AR|AA|AT|AN|AI, str_868067C442CD38C1, "van ")
+SUBS(AR|RGT|AA|AT|AN|AI, str_C58EDF9C4F3ABF68, "hat ")
+SUBS(AR|AA|AE|AT|AO, str_DAE84F2729ACCE2B, "for ")
+SUBS(AR|RGT|AA|AE|AT|AO, str_10A7A601DE6C9DD5, "ora ")
+SUBS(AR|AE|AT|AN|AP, str_7298C815AC553A73, "ember ")
+SUBS(AR|RGT|AE|AT|AN|AP, str_10565653235128D1, "mert ")
+SUBS(AR|AA|AN|AI|AO, str_516F020A9E389CB6, "azon ")
+SUBS(AR|RGT|AA|AN|AI|AO, str_289E22A94354DA82, "hozza ")
+SUBS(AR|AA|AN|AI|AP, str_0399462E63D0085B, "ami ")
+SUBS(AR|RGT|AA|AN|AI|AP, str_446E12F7C9FCBEFC, "mai ")
+SUBS(AR|AS|AT|AN|AO, str_0C5D33A5EEBD385B, "bus ")
+SUBS(AR|RGT|AS|AT|AN|AO, str_3DE03C65AEF3DE25, "jott ")
+SUBS(AR|AE|AN|AI|AO, str_7623453E9CFB03D4, "ellen ")
+SUBS(AR|RGT|AE|AN|AI|AO, str_C2547C442D138378, "oly ")
+SUBS(AR|AE|AT|AN|AI, str_0C571CCD7FA5FAEF, "the ")
+SUBS(AR|RGT|AE|AT|AN|AI, str_04F396FE937765D9, "het ")
+SUBS(AR|AA|AS|AE|AO, str_C806F7817F5AACD9, "ado ")
+SUBS(AR|RGT|AA|AS|AE|AO, str_584C679B94ABF2B0, "oda ")
+SUBS(AR|AA|AE|AI|AO, str_D5C749255A53E902, "ezzel ")
+SUBS(AR|RGT|AA|AE|AI|AO, str_F68CBBCCFD4C1B83, "lexi ")
+SUBS(AR|AS|AE|AN|AI, str_FB171C2D065E9AA6, "ennek ")
+SUBS(AR|RGT|AS|AE|AN|AI, str_102E5E1A734F1CE2, "neki ")
+SUBS(AR|AS|AE|AI|AO, str_33D765DDDE19EF31, "elso ")
+SUBS(AR|RGT|AS|AE|AI|AO, str_8EC2B1D21CC5F2B4, "kell ")
+SUBS(AR|AA|AT|AI|AO, str_37FEE4A279EDEAA4, "alatt ")
+SUBS(AR|RGT|AA|AT|AI|AO, str_BC713E0EEBBC72E0, "igaz ")
+SUBS(AR|AT|AN|AO|AP, str_2E80A6F9779A636C, "gomb ")
+SUBS(AR|RGT|AT|AN|AO|AP, str_A403E430455F3DAE, "mogott ")
+SUBS(AR|AA|AS|AE|AP, str_3E575316BD96B88C, "apad ")
+SUBS(AR|RGT|AA|AS|AE|AP, str_D6DAEAB665CE4271, "passed ")
+SUBS(AR|AS|AE|AN|AO, str_68105B858B425CB4, "du ")
+SUBS(AR|RGT|AS|AE|AN|AO, str_E8DD0B7F8884F0E0, "und ")
+SUBS(AR|AA|AS|AN|AO, str_4E401A4F5E3E8371, "sajnos ")
+SUBS(AR|RGT|AA|AS|AN|AO, str_2638B0CBA284BCE0, "janos ")
+SUBS(AR|AA|AE|AT|AP, str_460C0F92618276C4, "expert ")
+SUBS(AR|RGT|AA|AE|AT|AP, str_F552C5CE7412D067, "par ")
+SUBS(AR|AA|AE|AN|AI, str_9F25E5B8B8BE523B, "ezen ")
+SUBS(AR|RGT|AA|AE|AN|AI, str_187F85E2E57920BD, "nehany ")
+SUBS(AR|AA|AS|AE|AN, str_C1FDC4AB8597A676, "and ")
+SUBS(AR|RGT|AA|AS|AE|AN, str_C161ABA85FEDF657, "new ")
+SUBS(AR|AS|AE|AT|AO, str_0E96270660D2B068, "eros ")
+SUBS(AR|RGT|AS|AE|AT|AO, str_E0A0247DB2DA7153, "ordog ")
+SUBS(AR|AE|AT|AI|AO, str_3D2C74C95AD3693E, "elott ")
+SUBS(AR|RGT|AE|AT|AI|AO, str_6517664B6491B1A6, "lett ")
+SUBS(AR|AS|AE|AN|AP, str_C373302FE1A4C7A3, "sem ")
+SUBS(AR|RGT|AS|AE|AN|AP, str_4B03060D57A25BCD, "nemes ")
+SUBS(AR|AA|AI|AO|AP, str_7BBB5B013A64A6BD, "alap ")
+SUBS(AR|RGT|AA|AI|AO|AP, str_F03C162C8DF0F420, "pal ")
+SUBS(AR|AA|AT|AN|AO, str_28BB10C5BB93CDE6, "about ")
+SUBS(AR|RGT|AA|AT|AN|AO, str_FAD744D3AA1797A8, "utan ")
+SUBS(AR|AA|AS|AN|AP, str_1BB06B74B35A0120, "apja ")
+SUBS(AR|RGT|AA|AS|AN|AP, str_3AD00291CF91C488, "mas ")
+SUBS(AR|AS|AT|AN|AI, str_F67830C3E4E560AB, "this ")
+SUBS(AR|RGT|AS|AT|AN|AI, str_FA7EE41D18275CAB, "nincs ")
+SUBS(AR|AS|AN|AO|AP, str_E3374BF3CE8F906D, "sum ")
+SUBS(AR|RGT|AS|AN|AO|AP, str_425D8539BDE857C4, "mos ")
+SUBS(AR|AE|AT|AN|AO, str_3BDDACF6D97E90C3, "egy ")
+SUBS(AR|RGT|AE|AT|AN|AO, str_EED2E60891C47179, "ugy ")
+SUBS(AR|AS|AE|AT|AI, str_A95B29E48DED6617, "vers ")
+SUBS(AR|RGT|AS|AE|AT|AI, str_45EFB52120C9D384, "ket ")
+SUBS(AR|AA|AS|AE|AT|AN|AI, str_AC04ED0C829A4218, "szerint ")
+SUBS(AR|AA|AT|AI|AO|AP, str_40E8B48F5D8A434B, "allapot ")
+SUBS(AR|RGT|AA|AT|AI|AO|AP, str_DBE3E2CBB135AB14, "palota ")
+SUBS(AR|AE|AT|AN|AO|AP, str_21CFADCBE4A679D8, "engem ")
+SUBS(AR|RGT|AE|AT|AN|AO|AP, str_FDE6294FBD602643, "meg ")
+SUBS(AR|AA|AN|AI|AO|AP, str_41F275A21A18EE82, "alom ")
+SUBS(AR|RGT|AA|AN|AI|AO|AP, str_82B33F1AF8703293, "hozzam ")
+SUBS(AR|AS|AT|AN|AI|AO, str_AF3D9EAA19F822D9, "such ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO, str_01B39F439069940D, "king ")
+SUBS(AR|AA|AS|AE|AT|AI, str_320CCBA364330797, "akar ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI, str_A10556A0EEBDA5A2, "kezet ")
+SUBS(AR|AS|AE|AN|AI|AP, str_61D9F0C9A4D5567C, "semmi ")
+SUBS(AR|RGT|AS|AE|AN|AI|AP, str_2D26347C93F557E4, "minden ")
+SUBS(AR|AA|AS|AE|AI|AO, str_6BF6E4E251D135ED, "szel ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO, str_21A4D745F57C3A0E, "lesz ")
+SUBS(AR|AA|AS|AE|AI|AP, str_9A1C01570073B1F1, "szep ")
+SUBS(AR|RGT|AA|AS|AE|AI|AP, str_DEDC388B166E48B4, "kepzes ")
+SUBS(AR|AA|AE|AT|AN|AP, str_3D059807AC8370D9, "ram ")
+SUBS(AR|RGT|AA|AE|AT|AN|AP, str_89FE4E2FCC369BE7, "mar ")
+SUBS(AR|AS|AE|AT|AN|AI, str_5CDCF79352E2D725, "these ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI, str_8F097DCB8D574480, "isten ")
+SUBS(AR|AS|AE|AT|AN|AO, str_DB50823FD4749E7F, "tudott ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO, str_FB56E3054322FAD0, "ures ")
+SUBS(AR|AA|AS|AN|AI|AO, str_C734CF51599633D1, "soha ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO, str_DFD24D003A87651B, "kozul ")
+SUBS(AR|AA|AS|AT|AO|AP, str_BFB27CAE42A6E567, "csapott ")
+SUBS(AR|RGT|AA|AS|AT|AO|AP, str_763E47DF74118590, "papsag ")
+SUBS(AR|AA|AS|AT|AI|AP, str_42B66480C80CC507, "csaptak ")
+SUBS(AR|RGT|AA|AS|AT|AI|AP, str_03E7347EBE66484F, "kapta ")
+SUBS(AR|AA|AS|AE|AN|AI, str_43D073A61B4D28EA, "when ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI, str_B8157EA41E09D921, "had ")
+SUBS(AR|AS|AE|AT|AI|AP, str_8F0137935E32C458, "despite ")
+SUBS(AR|RGT|AS|AE|AT|AI|AP, str_B595314AE8340EE9, "kepet ")
+SUBS(AR|AE|AT|AN|AI|AO, str_38D7A2CAD335BE81, "bele ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO, str_E41DD18023C6647E, "hogy ")
+SUBS(AR|AA|AE|AT|AN|AI, str_377CA225DD99D9A1, "tehat ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI, str_89E5D4BB42BF5AC6, "have ")
+SUBS(AR|AA|AS|AE|AN|AP, str_53F857754C3C0D13, "adam ")
+SUBS(AR|RGT|AA|AS|AE|AN|AP, str_A18434730F75059D, "majd ")
+SUBS(AR|AS|AT|AI|AO|AP, str_0D9E2E52F68C6937, "topic ")
+SUBS(AR|RGT|AS|AT|AI|AO|AP, str_6E78098BA53F15EE, "kopott ")
+SUBS(AR|AS|AE|AT|AO|AP, str_E90A55281F13F652, "troops ")
+SUBS(AR|RGT|AS|AE|AT|AO|AP, str_5204C59B3BF29E2F, "process ")
+SUBS(AR|AA|AT|AN|AI|AO, str_3EA15FBA2936663D, "volna ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO, str_1A8AF5FFFE101892, "hova ")
+SUBS(AR|AA|AS|AE|AN|AO, str_40F2EC1124C9B78E, "adjon ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO, str_C32E34873DABA71F, "odaadja ")
+SUBS(AR|AS|AE|AT|AI|AO, str_D2837F2E7BBDAA50, "ekkor ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO, str_96D359E17A6D2BA5, "kellett ")
+SUBS(AR|AA|AE|AT|AN|AO, str_9F146ACA9C90D112, "baro ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO, str_40C50E84AC0DBCD1, "nagy ")
+SUBS(AR|AA|AS|AT|AN|AP, str_BF985650D5802531, "tamas ")
+SUBS(AR|RGT|AA|AS|AT|AN|AP, str_B890AAEB3A286EF0, "mast ")
+SUBS(AR|AS|AE|AN|AO|AP, str_29703C252684465E, "some ")
+SUBS(AR|RGT|AS|AE|AN|AO|AP, str_D565FA141FD4F9EF, "modon ")
+SUBS(AR|AS|AT|AN|AO|AP, str_430B184EA4F97301, "common ")
+SUBS(AR|RGT|AS|AT|AN|AO|AP, str_502F482B79087297, "most ")
+SUBS(AR|AS|AN|AI|AO|AP, str_6CBFC109D0CB9CF1, "simon ")
+SUBS(AR|RGT|AS|AN|AI|AO|AP, str_D6C155E4E107931B, "miklos ")
+SUBS(AR|AA|AS|AN|AO|AP, str_BC547FDD34973C70, "samu ")
+SUBS(AR|RGT|AA|AS|AN|AO|AP, str_F44C2BB43789DE80, "pompas ")
+SUBS(AR|AA|AE|AN|AI|AP, str_A22179099F950793, "amennyi ")
+SUBS(AR|RGT|AA|AE|AN|AI|AP, str_22FC432392DA91E6, "hanem ")
+SUBS(AR|AA|AE|AN|AI|AO, str_0A49CFDE2344AE9B, "equal ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO, str_4F2D867FD47483FB, "olyan ")
+SUBS(AR|AS|AE|AN|AI|AO, str_4CF809129F2D0BFD, "ejjel ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO, str_036D29F61B9684AD, "nelkul ")
+SUBS(AR|AA|AS|AT|AN|AI, str_87226571AE131D8A, "with ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI, str_26B0653E8710FEDE, "inkabb ")
+SUBS(AR|AE|AT|AN|AI|AP, str_224997ADD6DF35BA, "them ")
+SUBS(AR|RGT|AE|AT|AN|AI|AP, str_7D45403EFC1BFD0D, "miert ")
+SUBS(AR|AA|AT|AN|AI|AP, str_2F42442143143EA2, "amit ")
+SUBS(AR|RGT|AA|AT|AN|AI|AP, str_B6444DF8E7312B64, "mintha ")
+SUBS(AR|AA|AS|AI|AO|AP, str_C2D372336767C50C, "alapos ")
+SUBS(AR|RGT|AA|AS|AI|AO|AP, str_D3EE0E83D1EEB82F, "papok ")
+SUBS(AR|AA|AS|AN|AI|AP, str_F21DB8374859455A, "szama ")
+SUBS(AR|RGT|AA|AS|AN|AI|AP, str_BE1B4C56E533EAFB, "masik ")
+SUBS(AR|AA|AS|AE|AT|AN, str_6453B08D72C44161, "rajta ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN, str_BDF064E3883FFAE9, "jart ")
+SUBS(AR|AE|AN|AI|AO|AP, str_8FB892103C9E200F, "elem ")
+SUBS(AR|RGT|AE|AN|AI|AO|AP, str_77C0A2147D355169, "mely ")
+SUBS(AR|AA|AS|AT|AN|AO, str_78430482BCFE38F2, "fogja ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO, str_1ADC58F447F59EE9, "jobban ")
+SUBS(AR|AS|AE|AT|AN|AP, str_BEB053B5FB649ED1, "erdemes ")
+SUBS(AR|RGT|AS|AE|AT|AN|AP, str_74BC58FFB3FFA7C9, "mester ")
+SUBS(AR|AA|AS|AE|AT|AP, str_FA92C0FE0EF2B583, "arpad ")
+SUBS(AR|RGT|AA|AS|AE|AT|AP, str_E7FA8A19E3858076, "peace ")
+SUBS(AR|AA|AT|AN|AO|AP, str_612AE2FB632AD051, "among ")
+SUBS(AR|RGT|AA|AT|AN|AO|AP, str_ECCCB6576455849A, "maga ")
+SUBS(AR|AA|AE|AT|AI|AO, str_6676520F7E7AA391, "fel ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO, str_EC81EEB3F21B0472, "left ")
+SUBS(AR|AA|AE|AT|AO|AP, str_53235F9C2335BF07, "apro ")
+SUBS(AR|RGT|AA|AE|AT|AO|AP, str_A8AE32F21A88BA59, "poeta ")
+SUBS(AR|AA|AS|AT|AI|AO, str_487552197D425C4E, "voltak ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO, str_BAD14FC6F00358B6, "kozott ")
+SUBS(AR|AS|AE|AI|AO|AP, str_DD746578C42672FD, "spoke ")
+SUBS(AR|RGT|AS|AE|AI|AO|AP, str_C009B8F143DC22DE, "peoples ")
+SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_5324FCBBE5A9585B, "maganak ")
+SUBS(AR|AA|AS|AE|AT|AO|AP, str_411DB80E60AE991F, "gaspar ")
+SUBS(AR|RGT|AA|AS|AE|AT|AO|AP, str_4D2A6306F9C9BFCB, "power ")
+SUBS(AR|AA|AS|AE|AN|AI|AP, str_284877FCB32E84B5, "szepen ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_844E63B941315479, "messze ")
+SUBS(AR|AA|AS|AT|AN|AO|AP, str_FC05E013234E5A14, "csupan ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_0D23985D5198CDA5, "magas ")
+SUBS(AR|AS|AE|AN|AI|AO|AP, str_34E8A4031BB05535, "selyem ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_9902C7D0D33F3D27, "midon ")
+SUBS(AR|AE|AT|AN|AI|AO|AP, str_8B60EA228E7F71C0, "velem ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_58B17637C07A71CD, "mellett ")
+SUBS(AR|AA|AT|AN|AI|AO|AP, str_77B0E84AEA064820, "valami ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_D1E19EAF693C9B7F, "lattam ")
+SUBS(AR|AA|AS|AE|AT|AN|AP, str_AF5825DD354EA7E9, "tamadt ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_1CA8590D125272C4, "matyas ")
+SUBS(AR|AA|AE|AT|AN|AI|AP, str_95BD165EBEA90ED5, "ereztem ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_213E88BABD9FE059, "nemzeti ")
+SUBS(AR|AA|AS|AE|AN|AO|AP, str_2B75D0DD3E459E5F, "adom ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_90AE684911BCF785, "mondja ")
+SUBS(AR|AS|AE|AT|AN|AI|AP, str_E86DFF8A52DD5669, "semmit ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_AB7771EA9E40A305, "mindent ")
+SUBS(AR|AA|AS|AT|AN|AI|AO, str_6F8A5E56C146E49F, "viszont ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_A5B856782344BABA, "ifju ")
+SUBS(AR|AA|AS|AN|AI|AO|AP, str_3ED8C174F4ACDCC7, "alapjan ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_53CAA67CB69EDB69, "munka ")
+SUBS(AR|AA|AS|AT|AI|AO|AP, str_FD2DF433CAF55EFF, "csapatok ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_624DDF9DCD9AEBD0, "kapott ")
+SUBS(AR|AS|AE|AT|AN|AO|AP, str_AC7D659EEE5A0B19, "tudom ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_F191F3FE9AB5586C, "mondott ")
+SUBS(AR|AS|AE|AT|AN|AI|AO, str_B0EE5C054062A407, "egyik ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_B555E87F1EDA15C6, "korul ")
+SUBS(AR|AA|AS|AE|AI|AO|AP, str_AD61B487DF2D6843, "eposz ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_9F19665F1AF00270, "kozepso ")
+SUBS(AR|AA|AE|AT|AN|AI|AO, str_E38156BC30ACB174, "vagy ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_2E117EEF77FD8BCA, "horvath ")
+SUBS(AR|AA|AE|AN|AI|AO|AP, str_D906A5D725E0BD47, "amely ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_A74F31F1C5C3D46F, "mihaly ")
+SUBS(AR|AA|AS|AE|AT|AN|AO, str_B59811E36E56C2F0, "tudja ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_D1C323E3C0A133CD, "ujra ")
+SUBS(AR|AS|AE|AT|AI|AO|AP, str_E40E3D743B1E59CF, "csoportok ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_69AA16E43132B337, "pedig ")
+SUBS(AR|AA|AS|AT|AN|AI|AP, str_9C9D8C615998E880, "szamat ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_875DB32764322A77, "masikat ")
+SUBS(AR|AS|AT|AN|AI|AO|AP, str_9AE3D06B9D0E4FE8, "cimu ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_401EFB5649B2EBB4, "much ")
+SUBS(AR|AA|AS|AE|AN|AI|AO, str_9C70E74E45AFC0AC, "asszony ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_F5A951B6E348A435, "kisasszony ")
+SUBS(AR|AA|AE|AT|AI|AO|AP, str_6B0CAA224AC9CFF9, "alapveto ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_1846AB61BEDCA6FD, "polgari ")
+SUBS(AR|AA|AS|AE|AT|AI|AO, str_30EE0D851BA335AD, "akkor ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_810C08108F997467, "orszag ")
+SUBS(AR|AA|AS|AE|AT|AI|AP, str_DD225950C067DEF3, "szerepet ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_9657DB1B25D916B0, "persze ")
+SUBS(AR|AA|AE|AT|AN|AO|AP, str_2DCB6A06FF45764B, "from ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_C5858198FA44CC8A, "magyar ")
+SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_70A86B8298B03C50, "co-operative ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_AD56C53361989592, "pasztor ")
+SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_421F27E5D397590B, "amelyet ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_D8ABE74215A0FE50, "harom ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_925DF428FD578404, "szamara ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_4FD40E99DDCC2F1C, "mindjart ")
+SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_F45FB8B929D22223, "amelyek ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_BAEC2FDB97434FDC, "masodik ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_5C290EABE0107782, "vagyok ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_E8142D9D9E58D463, "kiraly ")
+SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_D1DB44FAFF9EA5AF, "egymast ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_C867943D4CEE3307, "mondta ")
+SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_BBDA2E4834C56059, "gyermek ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_BF5C21EF50D7C897, "mikor ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_3C30D742993893E7, "amikor ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_88C77D684569B9F9, "magyarok ")
diff --git a/keyboards/gboards/dicts/aset/it-keymap.def b/keyboards/gboards/dicts/aset/it-keymap.def
new file mode 100644
index 0000000000..99edc3df62
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/it-keymap.def
@@ -0,0 +1,399 @@
+// This file is automatically generated. Do not edit it!
+
+PRES(AP, KC_P)
+PRES(AE, KC_E)
+PRES(AN, KC_N)
+PRES(AA, KC_A)
+PRES(AT, KC_T)
+PRES(AS, KC_S)
+PRES(AO, KC_O)
+PRES(AI, KC_I)
+PRES(AT|AO, KC_G)
+PRES(AN|AO, KC_U)
+PRES(AA|AN, KC_Q)
+PRES(AO|AP, KC_SCLN)
+PRES(AS|AI, KC_K)
+PRES(AS|AT, KC_C)
+PRES(AN|AP, KC_M)
+PRES(AA|AE, KC_X)
+PRES(AN|AI, KC_H)
+PRES(AA|AS, KC_W)
+PRES(AE|AP, KC_QUOT)
+PRES(AA|AP, KC_QUOT)
+PRES(AE|AO, KC_MINS)
+PRES(AT|AI, KC_V)
+PRES(AE|AI, KC_COMM)
+PRES(AA|AI, KC_Z)
+PRES(AS|AO, KC_DOT)
+PRES(AT|AP, KC_BSPC)
+KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END})
+KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END})
+PRES(AE|AN, KC_Y)
+PRES(AI|AO, KC_L)
+PRES(AS|AE, KC_D)
+PRES(AS|AN, KC_J)
+PRES(AT|AN, KC_B)
+PRES(AA|AT, KC_F)
+PRES(AE|AT, KC_R)
+KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END})
+SUBS(AR|AN|AO|AP, str_56AF5E7BD571866B, "puo ")
+SUBS(AR|AE|AN|AO, str_0978A85079370611, "oy ")
+SUBS(AR|AA|AS|AN, str_45A403A4960EE226, "san ")
+SUBS(AR|AS|AE|AP, str_CCDC46B0E394BCF4, "de' ")
+SUBS(AR|AE|AI|AP, str_A491E07566DCBCCE, "pie ")
+SUBS(AR|AI|AO|AP, str_404F1EBE03A16630, "poi ")
+SUBS(AR|AS|AE|AT, str_1CFFAF2B6E1CEC1B, "essere ")
+SUBS(AR|AA|AS|AT, str_AEE6EBDC4ABDC3CD, "casa ")
+SUBS(AR|AT|AI|AP, str_D342FE4F178C7A30, "tipi ")
+SUBS(AR|AA|AE|AN, str_6ED1301D90276771, "aye ")
+SUBS(AR|AE|AN|AP, str_5140BEC191346017, "me ")
+SUBS(AR|AS|AN|AI, str_55863E4A819B49C1, "sin ")
+SUBS(AR|AN|AI|AO, str_9A5CC103ABF05E48, "lui ")
+SUBS(AR|AA|AE|AT, str_0437C1EBD8E5369E, "era ")
+SUBS(AR|AS|AI|AP, str_0D73B887B19DE5E2, "spi ")
+SUBS(AR|AE|AT|AP, str_342F8CACA85F0AD6, "per ")
+SUBS(AR|AT|AN|AI, str_F1550476BF0CE003, "bi ")
+SUBS(AR|AT|AO|AP, str_DE2E4C23273EE8E2, "topo ")
+PRES(AN|AI|AO|AP, KC_ENT)
+SUBS(AR|AE|AO|AP, str_5C0C47AE40B3A39F, "po' ")
+SUBS(AR|AA|AI|AP, str_6667F0578BFD0A36, "piazza ")
+SUBS(AR|AA|AS|AE, str_6E5B393925FE64CE, "da ")
+SUBS(AR|AA|AT|AI, str_DE43249870865F5F, "vita ")
+SUBS(AR|AN|AI|AP, str_DD31FA4C91A58242, "mi ")
+SUBS(AR|AS|AT|AI, str_A5BC7DE4E3DC110E, "ci ")
+SUBS(AR|AS|AE|AT|AI, str_BAD1432F2378793A, "dire ")
+SUBS(AR|AE|AI|AO|AP, str_623DB53C3DB2480D, "pelle ")
+SUBS(AR|AS|AT|AI|AO, str_B1F88E15F68363CC, "cosi ")
+SUBS(AR|AA|AS|AE|AT, str_C95D0B55006DE5FC, "testa ")
+SUBS(AR|AA|AE|AT|AI, str_4FFFF02AF006969A, "aveva ")
+SUBS(AR|AS|AE|AT|AO, str_9EA40F112155FCDC, "stesso ")
+SUBS(AR|AE|AN|AO|AP, str_2CDD05DBC2682B52, "meno ")
+SUBS(AR|AA|AS|AE|AO, str_A286D80C860977DA, "adesso ")
+SUBS(AR|AA|AE|AI|AO, str_4B68781D007741F3, "alle ")
+SUBS(AR|AS|AT|AI|AP, str_244F5B1E2326CF97, "tipici ")
+SUBS(AR|AA|AI|AO|AP, str_25A4B83B88C27ED1, "paio ")
+SUBS(AR|AA|AT|AI|AP, str_01F4123645BA397B, "piatti ")
+SUBS(AR|AA|AE|AI|AP, str_F1903D6A5823483D, "pezzi ")
+SUBS(AR|AA|AT|AO|AP, str_994C84A9B607BE0E, "patto ")
+SUBS(AR|AA|AE|AN|AO, str_6A810E6F1345F79D, "que ")
+SUBS(AR|AA|AS|AT|AI, str_9C531B864818604C, "stava ")
+SUBS(AR|AS|AE|AT|AN, str_72CD595FAA8C6C0C, "sebbene ")
+SUBS(AR|AA|AS|AT|AO, str_4659091C099DDFAA, "cosa ")
+SUBS(AR|AA|AS|AT|AN, str_48D42ABC512FFF33, "basta ")
+SUBS(AR|AS|AO|AP, str_82274D54E6521B8A, "spo ")
+SUBS(AR|RGT|AS|AO|AP, str_BB2A8EBDA4A2BCF1, "posso ")
+SUBS(AR|AA|AT|AO, str_6F7F8C386FF723B1, "fatto ")
+SUBS(AR|RGT|AA|AT|AO, str_BF38370C83727D39, "of ")
+SUBS(AR|AT|AN|AO, str_40ABD5B3D36FA5C6, "tutto ")
+SUBS(AR|RGT|AT|AN|AO, str_87CA49C5238B7C4E, "noto ")
+SUBS(AR|AE|AN|AI, str_7E3D8B1C859776CA, "eh ")
+SUBS(AR|RGT|AE|AN|AI, str_C40F784AA60FD210, "nei ")
+SUBS(AR|AA|AS|AP, str_FAD23F8E4E835984, "spa ")
+SUBS(AR|RGT|AA|AS|AP, str_60CC9352D1FD34D7, "passa ")
+SUBS(AR|AE|AT|AN, str_910551EE6A945C9B, "bene ")
+SUBS(AR|RGT|AE|AT|AN, str_F8D0253717B0F393, "nere ")
+SUBS(AR|AA|AN|AO, str_1151CDEBECCAA9AE, "qua ")
+SUBS(AR|RGT|AA|AN|AO, str_2023844574ACF1BC, "una ")
+SUBS(AR|AS|AT|AO, str_DE28723C3FC514C4, "sotto ")
+SUBS(AR|RGT|AS|AT|AO, str_77C6B8367F5A7C65, "oc ")
+SUBS(AR|AE|AI|AO, str_05ED48987A1828F9, "el ")
+SUBS(AR|RGT|AE|AI|AO, str_05A9C753CDE4911A, "le ")
+SUBS(AR|AS|AE|AI, str_99FABE30DAE0D8A8, "di ")
+SUBS(AR|RGT|AS|AE|AI, str_8A50CBEF7E0A6524, "idee ")
+SUBS(AR|AS|AN|AO, str_D76E07CD94AB4974, "sono ")
+SUBS(AR|RGT|AS|AN|AO, str_FD24805D645E6427, "uso ")
+SUBS(AR|AA|AN|AI, str_10DC0D219B939A2A, "anni ")
+SUBS(AR|RGT|AA|AN|AI, str_BF044DB5EE261598, "ha ")
+SUBS(AR|AA|AS|AO, str_FC4E78282D60163B, "sasso ")
+SUBS(AR|RGT|AA|AS|AO, str_9D30183EB9047071, "ossa ")
+SUBS(AR|AA|AE|AI, str_B001879F60551785, "zie ")
+SUBS(AR|RGT|AA|AE|AI, str_D2F95EA81F7C61D5, "ix ")
+SUBS(AR|AA|AT|AN, str_C24BA9CC30FB290C, "tanta ")
+SUBS(AR|RGT|AA|AT|AN, str_1780D9DFC87A2227, "nata ")
+SUBS(AR|AA|AI|AO, str_C49001FAA655F248, "al ")
+SUBS(AR|RGT|AA|AI|AO, str_7E7904D7326BCF29, "la ")
+SUBS(AR|AA|AT|AP, str_3E864890E72C0E60, "tappa ")
+SUBS(AR|RGT|AA|AT|AP, str_7A06301D23DD2E0F, "pat ")
+SUBS(AR|AE|AT|AI, str_D1117FAA9027B7CD, "ri ")
+SUBS(AR|RGT|AE|AT|AI, str_2528D620F9E674D2, "ieri ")
+SUBS(AR|AA|AE|AP, str_102DD7D0196F36BB, "a' ")
+SUBS(AR|RGT|AA|AE|AP, str_B4B3DD9B71491729, "pae ")
+SUBS(AR|AS|AE|AN, str_84D94AC64A433897, "sen ")
+SUBS(AR|RGT|AS|AE|AN, str_BAB1682CA062A864, "nes ")
+SUBS(AR|AS|AE|AO, str_16AE4BE38D2F26C0, "do ")
+SUBS(AR|RGT|AS|AE|AO, str_4BBC015B2B32DD62, "od ")
+SUBS(AR|AT|AI|AO, str_D5487803587D95EC, "gli ")
+SUBS(AR|RGT|AT|AI|AO, str_A288625DB86F17FE, "oggi ")
+SUBS(AR|AA|AN|AP, str_F438C1279CCEB43D, "ama ")
+SUBS(AR|RGT|AA|AN|AP, str_2A907D456EBB3E24, "ma ")
+SUBS(AR|AA|AS|AI, str_9E5D002E2AED54A0, "sia ")
+SUBS(AR|RGT|AA|AS|AI, str_423FC7030B57068F, "ka ")
+SUBS(AR|AE|AT|AO, str_7CC2B33170347490, "ero ")
+SUBS(AR|RGT|AE|AT|AO, str_6B77658521E3C3E6, "ore ")
+SUBS(AR|AS|AI|AO, str_7EBCF4E92D0AAB6E, "solo ")
+SUBS(AR|RGT|AS|AI|AO, str_7D5664732C823A0F, "los ")
+SUBS(AR|AA|AS|AE|AT|AN, str_F7E75210C0A5BA5C, "sarebbe ")
+SUBS(AR|AA|AS|AI|AO|AP, str_C74BA5E1FDD1E774, "spazio ")
+SUBS(AR|AT|AN|AI|AO|AP, str_C191DF51E5E13963, "molto ")
+SUBS(AR|AE|AN|AI|AO|AP, str_4A0CA48878CC3BA2, "l'uomo ")
+SUBS(AR|AA|AS|AE|AT|AO, str_4E3C37722A0C3D73, "fosse ")
+SUBS(AR|AE|AT|AI|AO|AP, str_3865ED18BE5305EA, "proprio ")
+SUBS(AR|AS|AE|AT|AI|AO, str_F9944DF29848CF31, "dove ")
+SUBS(AR|AS|AT|AN|AO|AP, str_AF8CB41B072A6FE4, "com ")
+SUBS(AR|AA|AS|AE|AT|AI, str_B5FD136868B969A5, "avesse ")
+SUBS(AR|AA|AS|AE|AO|AP, str_9DBC9AF330EC0230, "appeso ")
+SUBS(AR|AA|AE|AN|AO|AP, str_3378D03D3632B16E, "umane ")
+SUBS(AR|AS|AT|AN|AI|AP, str_A523540C97D0BDFB, "smith ")
+SUBS(AR|AA|AS|AO|AP, str_96C2E0CE0317D0E7, "sposa ")
+SUBS(AR|RGT|AA|AS|AO|AP, str_1839E188792C76D9, "passo ")
+SUBS(AR|AA|AN|AI|AP, str_B74E44C3D09CB3F0, "anima ")
+SUBS(AR|RGT|AA|AN|AI|AP, str_446E12F7C9FCBEFC, "mai ")
+SUBS(AR|AA|AT|AN|AP, str_9C7BB48EBD7121E3, "fama ")
+SUBS(AR|RGT|AA|AT|AN|AP, str_06AABBFC9BF9658F, "mat ")
+SUBS(AR|AT|AN|AI|AO, str_CFFF206084A05BAE, "tutti ")
+SUBS(AR|RGT|AT|AN|AI|AO, str_E6432621F32A4D14, "ogni ")
+SUBS(AR|AS|AT|AO|AP, str_790F8C89A50660DF, "scopo ")
+SUBS(AR|RGT|AS|AT|AO|AP, str_74EB943165D62B4B, "poco ")
+SUBS(AR|AS|AE|AT|AP, str_C91EE18C530C275D, "c'e ")
+SUBS(AR|RGT|AS|AE|AT|AP, str_2628C9BCEA0406C5, "prese ")
+SUBS(AR|AA|AS|AE|AP, str_627FBA06562052E8, "spada ")
+SUBS(AR|RGT|AA|AS|AE|AP, str_4C2B5D9701B5E7E4, "paese ")
+SUBS(AR|AA|AN|AI|AO, str_E6F04AE213D415C8, "qui ")
+SUBS(AR|RGT|AA|AN|AI|AO, str_3B61C22CC87E894D, "hanno ")
+SUBS(AR|AT|AI|AO|AP, str_5C160B9C40438458, "tipo ")
+SUBS(AR|RGT|AT|AI|AO|AP, str_D8BD43620A5A4529, "piglio ")
+SUBS(AR|AA|AS|AE|AN, str_C1FDC4AB8597A676, "and ")
+SUBS(AR|RGT|AA|AS|AE|AN, str_C161ABA85FEDF657, "new ")
+SUBS(AR|AE|AN|AI|AP, str_11F23070596BCAF8, "ehm ")
+SUBS(AR|RGT|AE|AN|AI|AP, str_D838670506B7AA3B, "miei ")
+SUBS(AR|AE|AT|AO|AP, str_1A5BF9E9D441E258, "troppo ")
+SUBS(AR|RGT|AE|AT|AO|AP, str_14D6F19510A426C3, "pero ")
+SUBS(AR|AA|AS|AI|AP, str_0AD9D3DC11C3CE08, "sappia ")
+SUBS(AR|RGT|AA|AS|AI|AP, str_976D145B2EE388B1, "passi ")
+SUBS(AR|AE|AT|AN|AI, str_5C9AE5CFAF65E1D0, "viene ")
+SUBS(AR|RGT|AE|AT|AN|AI, str_96DA1FCA53585DF0, "niente ")
+SUBS(AR|AA|AS|AI|AO, str_0649863385DBE960, "sola ")
+SUBS(AR|RGT|AA|AS|AI|AO, str_72890DBD1C78F687, "ossia ")
+SUBS(AR|AE|AT|AI|AP, str_F556D726D7373A4A, "ripete ")
+SUBS(AR|RGT|AE|AT|AI|AP, str_E5BD687CBB82B1A5, "pri ")
+SUBS(AR|AA|AS|AT|AP, str_95C59AB8275627DB, "cap ")
+SUBS(AR|RGT|AA|AS|AT|AP, str_BE8B2457E9B377B0, "passata ")
+SUBS(AR|AA|AE|AN|AI, str_B0D068D005493603, "annie ")
+SUBS(AR|RGT|AA|AE|AN|AI, str_58BAA03789672B90, "haze ")
+SUBS(AR|AT|AN|AO|AP, str_C7B05810B9878F2F, "tom ")
+SUBS(AR|RGT|AT|AN|AO|AP, str_63598A0CFD4270CA, "punto ")
+SUBS(AR|AE|AN|AI|AO, str_7623453E9CFB03D4, "ellen ")
+SUBS(AR|RGT|AE|AN|AI|AO, str_0CF1F7705A27D34C, "nel ")
+SUBS(AR|AA|AS|AE|AI, str_11E256C27CCBA3EA, "dai ")
+SUBS(AR|RGT|AA|AS|AE|AI, str_F180086B81853B17, "idea ")
+SUBS(AR|AS|AN|AI|AP, str_5ABDC1D334C04FAB, "spin ")
+SUBS(AR|RGT|AS|AN|AI|AP, str_90D3A69F4C70C55E, "misi ")
+SUBS(AR|AA|AT|AN|AI, str_0EDC36A861828EA6, "avanti ")
+SUBS(AR|RGT|AA|AT|AN|AI, str_9BAF9FCB73B35780, "infatti ")
+SUBS(AR|AA|AS|AN|AO, str_6F460F7ECE1E7238, "sua ")
+SUBS(AR|RGT|AA|AS|AN|AO, str_533368D15997A98F, "naso ")
+SUBS(AR|AE|AT|AI|AO, str_58B1CC51DC4FE20B, "vero ")
+SUBS(AR|RGT|AE|AT|AI|AO, str_D4B8E73F023E075D, "loro ")
+SUBS(AR|AA|AS|AN|AP, str_020E794D3DE91D12, "sam ")
+SUBS(AR|RGT|AA|AS|AN|AP, str_248A481E3372E8F5, "massa ")
+SUBS(AR|AS|AN|AO|AP, str_3A244357A626E54C, "sommo ")
+SUBS(AR|RGT|AS|AN|AO|AP, str_4920A51FCEB17AC1, "possono ")
+SUBS(AR|AS|AE|AI|AP, str_EAB63C3360390CF9, "spie ")
+SUBS(AR|RGT|AS|AE|AI|AP, str_332CF3E306569539, "piedi ")
+SUBS(AR|AA|AE|AT|AO, str_4D7115EC825A991E, "forte ")
+SUBS(AR|RGT|AA|AE|AT|AO, str_10A7A601DE6C9DD5, "ora ")
+SUBS(AR|AE|AT|AN|AP, str_4EE4010F84E9D04E, "be' ")
+SUBS(AR|RGT|AE|AT|AN|AP, str_E04F03BC968CD5E6, "mentre ")
+SUBS(AR|AA|AT|AI|AO, str_A715EAACA829780E, "volta ")
+SUBS(AR|RGT|AA|AT|AI|AO, str_54A8BFB924F22391, "lato ")
+SUBS(AR|AE|AT|AN|AO, str_438E64ED8431B9FB, "tutte ")
+SUBS(AR|RGT|AE|AT|AN|AO, str_994B182E8A14D4DB, "notte ")
+SUBS(AR|AS|AE|AI|AO, str_1861909A5CAE7807, "del ")
+SUBS(AR|RGT|AS|AE|AI|AO, str_C4A6AAB982B673F2, "les ")
+SUBS(AR|AS|AE|AO|AP, str_921E46EAAAFAEBA7, "dopo ")
+SUBS(AR|RGT|AS|AE|AO|AP, str_403F88074C74D7CE, "peso ")
+SUBS(AR|AS|AI|AO|AP, str_E9938D6D376710C4, "spio ")
+SUBS(AR|RGT|AS|AI|AO|AP, str_B991C7C93E522CE7, "polso ")
+SUBS(AR|AT|AN|AI|AP, str_AF1FE256DC6BB784, "tim ")
+SUBS(AR|RGT|AT|AN|AI|AP, str_AC95654B754C0CF8, "miti ")
+SUBS(AR|AS|AE|AN|AP, str_C373302FE1A4C7A3, "sem ")
+SUBS(AR|RGT|AS|AE|AN|AP, str_8A0AC2472D15E0FA, "mese ")
+SUBS(AR|AS|AE|AN|AO, str_7CAA20F18F3CCCC0, "due ")
+SUBS(AR|RGT|AS|AE|AN|AO, str_B07A18C2A67FF244, "nessuno ")
+SUBS(AR|AA|AE|AT|AP, str_97576E1938F64CBA, "aperta ")
+SUBS(AR|RGT|AA|AE|AT|AP, str_185172488624CE89, "parte ")
+SUBS(AR|AS|AN|AI|AO, str_5019074DCD28CF02, "sul ")
+SUBS(AR|RGT|AS|AN|AI|AO, str_B24523534C6D82C9, "john ")
+SUBS(AR|AS|AE|AN|AI, str_780C2F624A3924A3, "sensi ")
+SUBS(AR|RGT|AS|AE|AN|AI, str_EF7717647A1A3977, "jessie ")
+SUBS(AR|AS|AT|AN|AI, str_E81AB44BC199F871, "chi ")
+SUBS(AR|RGT|AS|AT|AN|AI, str_F86C7F9AA66E6D5F, "nisci ")
+SUBS(AR|AA|AT|AN|AO, str_36D0B382FF1F1658, "quanto ")
+SUBS(AR|RGT|AA|AT|AN|AO, str_FF3F3B1F8B5A3E40, "nota ")
+SUBS(AR|AS|AT|AN|AO, str_E826CEF2ACCD90D0, "con ")
+SUBS(AR|RGT|AS|AT|AN|AO, str_5FFA7FB69B0B139A, "jung ")
+SUBS(AR|AA|AE|AN|AP, str_40BB9EEB201E97AB, "appena ")
+SUBS(AR|RGT|AA|AE|AN|AP, str_FAB7798062357072, "'na ")
+SUBS(AR|AA|AE|AT|AN, str_191B510903C8FF15, "entrare ")
+SUBS(AR|RGT|AA|AE|AT|AN, str_8300E6B3E83FADA0, "nera ")
+SUBS(AR|AA|AN|AO|AP, str_8CCDB3FD341FF633, "amo ")
+SUBS(AR|RGT|AA|AN|AO|AP, str_D0F280F187C19C7E, "mano ")
+SUBS(AR|AA|AS|AN|AI, str_50BD1DF3866DB9ED, "assassini ")
+SUBS(AR|RGT|AA|AS|AN|AI, str_4B4CC6627CFD3ECE, "hans ")
+SUBS(AR|AA|AS|AT|AN|AI|AO, str_940219DB060F1864, "qualcosa ")
+SUBS(AR|AA|AS|AE|AT|AI|AO, str_94476FDACCCD8072, "storia ")
+SUBS(AR|AE|AT|AN|AI|AO|AP, str_6325494843B318BE, "meglio ")
+SUBS(AR|AA|AE|AT|AI|AO|AP, str_C9D0F82BFA1911DE, "poteva ")
+SUBS(AR|AS|AN|AI|AO|AP, str_777DDB8DCAC1AF08, "simili ")
+SUBS(AR|RGT|AS|AN|AI|AO|AP, str_4E5C91FA47B8CED1, "luminoso ")
+SUBS(AR|AA|AS|AN|AI|AP, str_B108D1B3DC496BC8, "spina ")
+SUBS(AR|RGT|AA|AS|AN|AI|AP, str_05E967B8F8DDA9BF, "massima ")
+SUBS(AR|AS|AT|AN|AI|AO, str_4DE8C28979BA2FE4, "cui ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO, str_48FEB3117AC85913, "occhi ")
+SUBS(AR|AA|AN|AI|AO|AP, str_F094E87A1D07FEE1, "animali ")
+SUBS(AR|RGT|AA|AN|AI|AO|AP, str_F9A74DD0BA049580, "piano ")
+SUBS(AR|AS|AE|AT|AO|AP, str_3169E81B5A93E031, "corpo ")
+SUBS(AR|RGT|AS|AE|AT|AO|AP, str_5A582F4F89C94271, "presto ")
+SUBS(AR|AA|AS|AT|AO|AP, str_2B2813B0071D92D4, "capo ")
+SUBS(AR|RGT|AA|AS|AT|AO|AP, str_C67E568D416235BE, "passato ")
+SUBS(AR|AA|AS|AE|AN|AO, str_1694C85ED0344196, "quando ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO, str_C88F6A180EAEB04A, "nessuna ")
+SUBS(AR|AA|AT|AN|AI|AP, str_97B14F117DB21FF6, "bambini ")
+SUBS(AR|RGT|AA|AT|AN|AI|AP, str_AF41B19FC73920A3, "mattina ")
+SUBS(AR|AA|AE|AN|AI|AP, str_35CFD6E3C822E5ED, "zampe ")
+SUBS(AR|RGT|AA|AE|AN|AI|AP, str_7D7DBA20577C60A2, "piena ")
+SUBS(AR|AE|AT|AN|AI|AP, str_C2316D0028A47EF6, "tempi ")
+SUBS(AR|RGT|AE|AT|AN|AI|AP, str_C42836DB2A107CF0, "perrin ")
+SUBS(AR|AA|AT|AN|AI|AO, str_7332E99DD48C0027, "fino ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO, str_E6218744D604CCD0, "lingua ")
+SUBS(AR|AS|AE|AN|AI|AP, str_5309F4B1D736620D, "dimmi ")
+SUBS(AR|RGT|AS|AE|AN|AI|AP, str_64658C925245C73D, "insieme ")
+SUBS(AR|AS|AE|AT|AI|AP, str_3357330CDFB08095, "specie ")
+SUBS(AR|RGT|AS|AE|AT|AI|AP, str_AA598D31EA95E490, "presi ")
+SUBS(AR|AS|AT|AI|AO|AP, str_0CD9402551091DEC, "colpo ")
+SUBS(AR|RGT|AS|AT|AI|AO|AP, str_D70498E0A7D19771, "piccolo ")
+SUBS(AR|AS|AE|AI|AO|AP, str_9B701BFEBDD85D9B, "doppio ")
+SUBS(AR|RGT|AS|AE|AI|AO|AP, str_B8C9339F843B55FB, "poesie ")
+SUBS(AR|AA|AT|AI|AO|AP, str_B805430170795B55, "appoggio ")
+SUBS(AR|RGT|AA|AT|AI|AO|AP, str_93376E1B2C5FB7EC, "pioggia ")
+SUBS(AR|AS|AE|AN|AI|AO, str_CA7A2655E43A2BAA, "sulle ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO, str_3558D88358CFB14F, "johnny ")
+SUBS(AR|AA|AE|AT|AN|AP, str_C353F800D63E836C, "entrambe ")
+SUBS(AR|RGT|AA|AE|AT|AN|AP, str_22CC3EFF346CA6DB, "mare ")
+SUBS(AR|AE|AT|AN|AI|AO, str_D356169745F65011, "giorno ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO, str_B83A8DBEA67E130B, "intorno ")
+SUBS(AR|AA|AS|AN|AO|AP, str_42D1318D0EF7A742, "somma ")
+SUBS(AR|RGT|AA|AS|AN|AO|AP, str_E2F4D4EDB680586D, "pausa ")
+SUBS(AR|AA|AS|AT|AN|AO, str_22CAB77FD20C4AC9, "bocca ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO, str_5AF1CE84E0CEF486, "nascosto ")
+SUBS(AR|AA|AS|AE|AI|AP, str_12E86F206723FC58, "appesi ")
+SUBS(AR|RGT|AA|AS|AE|AI|AP, str_C05A191A012405B1, "paesi ")
+SUBS(AR|AA|AE|AT|AI|AO, str_69A52B3D073C6CD1, "allora ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO, str_3D53817090261B7F, "lavoro ")
+SUBS(AR|AA|AS|AT|AN|AP, str_5160763BEFDDD768, "stampa ")
+SUBS(AR|RGT|AA|AS|AT|AN|AP, str_7862B823A47DF4BB, "manca ")
+SUBS(AR|AA|AE|AN|AI|AO, str_77EE6C87C516F499, "quella ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO, str_B9DC345474FEAAFE, "nella ")
+SUBS(AR|AS|AE|AT|AN|AI, str_646BF0C6C1081A24, "che ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI, str_7B1CDBF5FC3E32F1, "invece ")
+SUBS(AR|AA|AE|AT|AN|AI, str_CEC900A37BBC3168, "avrebbe ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI, str_2432FC778706761E, "infine ")
+SUBS(AR|AA|AS|AT|AI|AP, str_A47CE66350D26CBC, "capi ")
+SUBS(AR|RGT|AA|AS|AT|AI|AP, str_1759D773501295AA, "passava ")
+SUBS(AR|AA|AS|AE|AN|AP, str_8B32EFC854F0D146, "damane ")
+SUBS(AR|RGT|AA|AS|AE|AN|AP, str_6BDA31CBE16BF827, "pensa ")
+SUBS(AR|AS|AE|AN|AO|AP, str_AFAFEA75716A544B, "d'un ")
+SUBS(AR|RGT|AS|AE|AN|AO|AP, str_81BDACFB6AD5C9E4, "modo ")
+SUBS(AR|AA|AE|AT|AI|AP, str_DC77AA4F74FA416F, "apri ")
+SUBS(AR|RGT|AA|AE|AT|AI|AP, str_942036C586B52CDC, "parti ")
+SUBS(AR|AS|AE|AT|AN|AO, str_F367B21B8485E533, "contro ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO, str_66AF92A069602B5B, "nostro ")
+SUBS(AR|AE|AT|AN|AO|AP, str_4D6598D37F6B809E, "tempo ")
+SUBS(AR|RGT|AE|AT|AN|AO|AP, str_FA935D927875D182, "momento ")
+SUBS(AR|AA|AE|AT|AN|AO, str_6E941A3BCD6C871C, "erano ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO, str_7CED60BCD6B99FB4, "natura ")
+SUBS(AR|AA|AS|AT|AN|AI, str_A98C9B2EF25728C8, "stanza ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI, str_7F1DF9F101812702, "jack ")
+SUBS(AR|AA|AS|AE|AT|AP, str_C51E53127C35BD9F, "c'era ")
+SUBS(AR|RGT|AA|AS|AE|AT|AP, str_27C9C54FCC0F7B22, "padre ")
+SUBS(AR|AA|AE|AI|AO|AP, str_32466ABDF950ACD3, "appello ")
+SUBS(AR|RGT|AA|AE|AI|AO|AP, str_7EC4C8B90FECB655, "pezzo ")
+SUBS(AR|AA|AS|AE|AI|AO, str_578490E97C45CB3D, "della ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO, str_2F0C90737434677E, "ideale ")
+SUBS(AR|AA|AS|AT|AI|AO, str_68BEF91AF08A5C88, "cavallo ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO, str_9A2BFF5F664BAA67, "lasciato ")
+SUBS(AR|AA|AS|AN|AI|AO, str_B1AAE5D11BB57599, "sulla ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO, str_65401EFABB1CF098, "unknown ")
+SUBS(AR|AA|AS|AE|AN|AI, str_CB66EC17FE62C22F, "senza ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI, str_17CAB6C5BEC5CEEB, "jake ")
+SUBS(AR|AA|AT|AN|AO|AP, str_3007E4D36EFE8829, "appunto ")
+SUBS(AR|RGT|AA|AT|AN|AO|AP, str_1BACF8D6559332C4, "punta ")
+SUBS(AR|AA|AE|AT|AO|AP, str_F12DC8C702B0CDA8, "rapporto ")
+SUBS(AR|RGT|AA|AE|AT|AO|AP, str_C092DEF9A4255A92, "porta ")
+SUBS(AR|AS|AE|AT|AN|AP, str_9729556965A2CBF1, "sempre ")
+SUBS(AR|RGT|AS|AE|AT|AN|AP, str_6480D00B04B8D9E0, "prendere ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_C9CFA1D8D5335D7B, "qualche ")
+SUBS(AR|AA|AS|AT|AN|AI|AP, str_1E51DA803B8E7EBE, "amici ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_85926B44136D7E6F, "macchina ")
+SUBS(AR|AA|AS|AE|AT|AN|AO, str_3DC6111BCF89DAA8, "questo ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_1E5AE07AC1B16955, "nostra ")
+SUBS(AR|AA|AS|AE|AT|AN|AI, str_4D9AD05DA9076D34, "anche ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_51899FBF34DB7299, "neanche ")
+SUBS(AR|AS|AE|AT|AN|AI|AP, str_2CDCA024BE789511, "sentimenti ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_CACE191DFBE942DE, "perche ")
+SUBS(AR|AA|AS|AE|AN|AI|AP, str_EE327B8C1C441DCD, "assieme ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_03852252EC94910E, "pensai ")
+SUBS(AR|AA|AS|AT|AI|AO|AP, str_0472305661A2A14B, "capito ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_AFF1EA3A0F00D57F, "piccola ")
+SUBS(AR|AS|AE|AT|AN|AO|AP, str_654036ECAB40451B, "come ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_FCB63D3380808A14, "persone ")
+SUBS(AR|AA|AE|AN|AI|AO|AP, str_E935BB036FBB02D0, "almeno ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_3A8213F5ED636A77, "mezzo ")
+SUBS(AR|AA|AS|AE|AN|AO|AP, str_72D7B5574B011E3B, "domanda ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_D4C9D328AE006E0D, "pensando ")
+SUBS(AR|AA|AS|AE|AT|AI|AP, str_10D278A48C38C0DA, "sapeva ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_20225CE0CCDCA439, "piacere ")
+SUBS(AR|AA|AE|AT|AN|AO|AP, str_522EE9C819BBCA09, "forma ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_B61DAD7FEA50A960, "paura ")
+SUBS(AR|AA|AS|AE|AN|AI|AO, str_76B46F7C969EB11E, "quindi ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_5977110913154896, "honda ")
+SUBS(AR|AA|AE|AT|AN|AI|AO, str_9DB20D745501B69E, "avevano ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_D78F1104CD1F777E, "labbra ")
+SUBS(AR|AA|AS|AT|AN|AO|AP, str_90C1CE5A1DEDBA0F, "campo ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_0097CAF90CACB6B5, "manco ")
+SUBS(AR|AS|AE|AT|AI|AO|AP, str_5BD8B63BAD28D4C4, "rispose ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_9D02D1D1F067AFEE, "percio ")
+SUBS(AR|AA|AS|AE|AI|AO|AP, str_06CD290E05D55DF5, "spalle ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_C319F01B7BB40BC8, "poesia ")
+SUBS(AR|AA|AS|AE|AT|AO|AP, str_325D3F8AB751D94D, "sopra ")
+SUBS(AR|RGT|AA|AS|AE|AT|AO|AP, str_328132E87587F598, "peccato ")
+SUBS(AR|AS|AE|AN|AI|AO|AP, str_3074B9A389896963, "esempio ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_0EE959283D1A378C, "modi ")
+SUBS(AR|AA|AS|AN|AI|AO|AP, str_E0EB5EC60B39E675, "siamo ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_674B2B8301995883, "possiamo ")
+SUBS(AR|AS|AE|AT|AN|AI|AO, str_0C9D2FC9C2846573, "vecchio ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_62AF793B68A8F752, "luce ")
+SUBS(AR|AA|AT|AN|AI|AO|AP, str_D3BA90640C1DB5CE, "abbiamo ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_05C0AD123C1E39E0, "montalbano ")
+SUBS(AR|AA|AE|AT|AN|AI|AP, str_1FAC9EDE7281CC72, "veramente ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_9399D619292D5B85, "prima ")
+SUBS(AR|AA|AS|AE|AT|AN|AP, str_47E11E86F043AFEE, "sembra ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_638F1E032E80A700, "madre ")
+SUBS(AR|AS|AT|AN|AI|AO|AP, str_3461F7E55F64B53A, "comincio ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_C22466C4BBE6977C, "piuttosto ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_37A2330B35B33CF5, "sembrava ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_7D41F9D3BBE2974A, "presenza ")
+SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_CA67B9DA2861FAD1, "capelli ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_B943DE4F92DA22E1, "particolare ")
+SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_91052F536C4180D6, "amico ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_7FE894ECB3C4779C, "possibilita ")
+SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_0B767D533CC4CD2D, "domani ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_F23B72437C75D0BD, "posizione ")
+SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_6858011AA873A546, "semplice ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_E154B0DAE8265A47, "possibile ")
+SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_3E9D05E02CFFC29E, "finalmente ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_B554953ADD45BD07, "ormai ")
+SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_752C6DAC57EC49CF, "comunque ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_8766FEB77F0FD427, "persona ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_B0AE7F65CBD5FECE, "commissario ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_C509D099D7E1E313, "l'unica ")
diff --git a/keyboards/gboards/dicts/aset/layer-keymap.def b/keyboards/gboards/dicts/aset/layer-keymap.def
new file mode 100644
index 0000000000..0200f98ce6
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/layer-keymap.def
@@ -0,0 +1,22 @@
+// Thumb Keys
+PRES(AL, KC_LSFT)
+PRES(AR, KC_SPC)
+
+// Layer Switches
+// To Number
+SPEC( AA | AT | AN | AP, SPEC_STICKY, NUM)
+SPEC(NUM | AA | AT | AN | AP, SPEC_STICKY, NUM)
+SPEC(CMD | AA | AT | AN | AP, SPEC_STICKY, NUM)
+SPEC(USR | AA | AT | AN | AP, SPEC_STICKY, NUM)
+
+// To Command
+SPEC( AS | AE | AI | AO, SPEC_STICKY, CMD)
+SPEC(NUM | AS | AE | AI | AO, SPEC_STICKY, CMD)
+SPEC(CMD | AS | AE | AI | AO, SPEC_STICKY, CMD)
+SPEC(USR | AS | AE | AI | AO, SPEC_STICKY, CMD)
+
+// To User
+SPEC( AA | AS | AE | AT | AN | AI | AO | AP | AR | AL, SPEC_STICKY, USR)
+SPEC(NUM | AA | AS | AE | AT | AN | AI | AO | AP | AR | AL, SPEC_STICKY, USR)
+SPEC(CMD | AA | AS | AE | AT | AN | AI | AO | AP | AR | AL, SPEC_STICKY, USR)
+SPEC(USR | AA | AS | AE | AT | AN | AI | AO | AP | AR | AL, SPEC_STICKY, USR)
diff --git a/keyboards/gboards/dicts/aset/nl-keymap.def b/keyboards/gboards/dicts/aset/nl-keymap.def
new file mode 100644
index 0000000000..c79bdde121
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/nl-keymap.def
@@ -0,0 +1,396 @@
+// This file is automatically generated. Do not edit it!
+
+PRES(AT, KC_T)
+PRES(AE, KC_E)
+PRES(AI, KC_I)
+PRES(AP, KC_P)
+PRES(AN, KC_N)
+PRES(AO, KC_O)
+PRES(AS, KC_S)
+PRES(AA, KC_A)
+PRES(AA|AE, KC_X)
+PRES(AE|AT, KC_R)
+PRES(AE|AO, KC_MINS)
+PRES(AA|AI, KC_Z)
+PRES(AS|AI, KC_K)
+PRES(AA|AT, KC_F)
+PRES(AE|AP, KC_QUOT)
+KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END})
+PRES(AI|AO, KC_L)
+PRES(AA|AP, KC_QUOT)
+PRES(AA|AS, KC_W)
+PRES(AN|AO, KC_U)
+PRES(AT|AO, KC_G)
+PRES(AA|AN, KC_Q)
+PRES(AE|AI, KC_COMM)
+KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END})
+PRES(AT|AI, KC_V)
+PRES(AN|AP, KC_M)
+PRES(AS|AE, KC_D)
+PRES(AT|AN, KC_B)
+PRES(AS|AO, KC_DOT)
+PRES(AS|AT, KC_C)
+PRES(AT|AP, KC_BSPC)
+PRES(AE|AN, KC_Y)
+PRES(AO|AP, KC_SCLN)
+PRES(AN|AI, KC_H)
+PRES(AS|AN, KC_J)
+KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END})
+SUBS(AR|AA|AS|AT, str_C73596E8D5CA2F7E, "wat ")
+SUBS(AR|AE|AO|AP, str_6A842E25D4F36AEF, "'o ")
+PRES(AN|AI|AO|AP, KC_ENT)
+SUBS(AR|AA|AE|AP, str_B67661087B126CF1, "px ")
+SUBS(AR|AT|AN|AP, str_9FF55347C3A05931, "mt ")
+SUBS(AR|AS|AE|AO, str_2E353EECFF819D7A, "dood ")
+SUBS(AR|AE|AT|AI, str_90DFFD07F9A960E1, "vier ")
+SUBS(AR|AE|AN|AO, str_E429BF3EE734FF3A, "you ")
+SUBS(AR|AT|AN|AI, str_427B48C8BCABBF6C, "bh ")
+SUBS(AR|AS|AN|AP, str_A38FEA2A97C8F836, "ms ")
+SUBS(AR|AA|AO|AP, str_B975552567CD7FCF, "opa ")
+SUBS(AR|AS|AE|AT, str_C8BA9AE3DFEB65D3, "eerste ")
+SUBS(AR|AA|AS|AP, str_467C897077B58F08, "pas ")
+SUBS(AR|AI|AO|AP, str_C70A0EA14058ABE0, "loop ")
+SUBS(AR|AA|AN|AP, str_7814AB9A9D941FFB, "man ")
+SUBS(AR|AA|AE|AI, str_4D4206C98723FE7F, "ze ")
+SUBS(AR|AS|AI|AP, str_DC6492AFCE0DFEC0, "pik ")
+SUBS(AR|AA|AT|AP, str_7A06301D23DD2E0F, "pat ")
+SUBS(AR|AN|AO|AP, str_0F33CAECD78B3E6B, "om ")
+SUBS(AR|AA|AI|AP, str_9EFFC1EA3EEA7DCB, "pizza ")
+SUBS(AR|AA|AE|AN, str_9CAD49AC9B02787F, "anne ")
+SUBS(AR|AE|AT|AP, str_A71472FDD1394FF4, "'t ")
+SUBS(AR|AA|AS|AE, str_C8F40BD7102B7E24, "we ")
+SUBS(AR|AS|AN|AI, str_D0C23190A14D30C8, "hij ")
+SUBS(AR|AN|AI|AO, str_5A09FD44BA314863, "hun ")
+SUBS(AR|AN|AI|AP, str_683696748A01B41C, "min ")
+SUBS(AR|AS|AO|AP, str_545E0508FFACDE01, "poos ")
+SUBS(AR|AA|AE|AT, str_25F80F62480B958F, "extra ")
+SUBS(AR|AS|AE|AP, str_9B6ECB908551EEF3, "'s ")
+SUBS(AR|AA|AS|AT|AO, str_399C79B6EB9B7C4A, "stof ")
+SUBS(AR|AA|AS|AE|AT, str_5326FFC92ECE7899, "dat ")
+SUBS(AR|AA|AS|AO|AP, str_8C9B1A012755CF4B, "oppas ")
+SUBS(AR|AS|AE|AT|AO, str_DCFA6A07F97D055B, "door ")
+SUBS(AR|AA|AN|AI|AP, str_BE5E1C18B0B5E15B, "hap ")
+SUBS(AR|AE|AN|AO|AP, str_5F1CC41FEB0BB428, "open ")
+SUBS(AR|AA|AE|AT|AI, str_038BB83261504480, "zette ")
+SUBS(AR|AA|AN|AO|AP, str_1C8723E7DFEEA85A, "oma ")
+SUBS(AR|AS|AE|AT|AN, str_86BFF886E6DCEFA6, "beetje ")
+SUBS(AR|AA|AT|AO|AP, str_4037EBCCD909B772, "pag ")
+SUBS(AR|AA|AI|AO|AP, str_722CFF3C34B02A02, "paal ")
+SUBS(AR|AS|AT|AI|AP, str_A1A3F3CAA425B3E9, "spits ")
+SUBS(AR|AA|AS|AE|AO, str_F52061A1FE7E4CBB, "woede ")
+SUBS(AR|AE|AI|AO|AP, str_FCC287D489118EA7, "liep ")
+SUBS(AR|AA|AS|AI|AP, str_CC46AF41D9985527, "pak ")
+SUBS(AR|AA|AE|AT|AO, str_0D0B8DC87B531987, "graag ")
+SUBS(AR|AS|AT|AN|AP, str_DE6CBE601C534F3D, "cm ")
+SUBS(AR|AS|AN|AI|AO, str_82A16B8D8890E00D, "kon ")
+SUBS(AR|AE|AI|AO, str_05ED48987A1828F9, "el ")
+SUBS(AR|RGT|AE|AI|AO, str_354C4F0CD314F7EE, "leo ")
+SUBS(AR|AT|AN|AO, str_25F879C1988DA686, "boog ")
+SUBS(AR|RGT|AT|AN|AO, str_050AC45AA0EAD9E3, "nog ")
+SUBS(AR|AS|AT|AI, str_D466F321075D4855, "vis ")
+SUBS(AR|RGT|AS|AT|AI, str_9E703250D29EDAE5, "kist ")
+SUBS(AR|AA|AT|AO, str_E5AF645EF99E967C, "gaat ")
+SUBS(AR|RGT|AA|AT|AO, str_BF38370C83727D39, "of ")
+SUBS(AR|AA|AN|AI, str_000A7A7F34AC54D7, "zin ")
+SUBS(AR|RGT|AA|AN|AI, str_4394B0F660AFCB43, "hanna ")
+SUBS(AR|AA|AI|AO, str_4E67B797D07DE242, "zo ")
+SUBS(AR|RGT|AA|AI|AO, str_7E7904D7326BCF29, "la ")
+SUBS(AR|AE|AT|AN, str_6EDDE1729393B4E6, "ben ")
+SUBS(AR|RGT|AE|AT|AN, str_86CBD141F40A0963, "net ")
+SUBS(AR|AS|AI|AO, str_B94B9E04844A5017, "slok ")
+SUBS(AR|RGT|AS|AI|AO, str_B670619D3111567D, "ook ")
+SUBS(AR|AA|AS|AI, str_9AFF001C35E4C65D, "zaak ")
+SUBS(AR|RGT|AA|AS|AI, str_411BA6BA3421BEEB, "kaas ")
+SUBS(AR|AE|AN|AP, str_B6C3042679BF7796, "em ")
+SUBS(AR|RGT|AE|AN|AP, str_5140BEC191346017, "me ")
+SUBS(AR|AA|AN|AO, str_1151CDEBECCAA9AE, "qua ")
+SUBS(AR|RGT|AA|AN|AO, str_0603690FBF40C46D, "oan ")
+SUBS(AR|AT|AO|AP, str_8574F11BEB82545C, "top ")
+SUBS(AR|RGT|AT|AO|AP, str_028BB7B551A4BD43, "pot ")
+SUBS(AR|AA|AS|AN, str_45A403A4960EE226, "san ")
+SUBS(AR|RGT|AA|AS|AN, str_16D6BE915787F782, "ja ")
+SUBS(AR|AA|AT|AI, str_6E9657F725548544, "zat ")
+SUBS(AR|RGT|AA|AT|AI, str_D7978D4AE69E4592, "if ")
+SUBS(AR|AS|AE|AI, str_8DB12FA16BCFEA58, "die ")
+SUBS(AR|RGT|AS|AE|AI, str_F6734CC303E80959, "keek ")
+SUBS(AR|AT|AI|AP, str_EDDB4B5D8E6E6CF7, "tip ")
+SUBS(AR|RGT|AT|AI|AP, str_2741375E1176FC82, "pitt ")
+SUBS(AR|AS|AE|AN, str_3243B29F82AFA1AE, "eens ")
+SUBS(AR|RGT|AS|AE|AN, str_6D067D15A808A9B1, "je ")
+SUBS(AR|AA|AT|AN, str_F145D71E556DCAA4, "baan ")
+SUBS(AR|RGT|AA|AT|AN, str_47B698232847D3D2, "nat ")
+SUBS(AR|AT|AI|AO, str_0A89D63B98F40BD6, "vol ")
+SUBS(AR|RGT|AT|AI|AO, str_F246E981BC4E2F1C, "ooit ")
+SUBS(AR|AE|AT|AO, str_3011DF1946993349, "toe ")
+SUBS(AR|RGT|AE|AT|AO, str_8F640B129C9BD33D, "oor ")
+SUBS(AR|AS|AN|AO, str_2A4603E856F568A7, "suus ")
+SUBS(AR|RGT|AS|AN|AO, str_68A33E3EC3EC7D5F, "ons ")
+SUBS(AR|AS|AT|AO, str_A506E8E4C24D161A, "stoot ")
+SUBS(AR|RGT|AS|AT|AO, str_A386283D297C53E2, "oogst ")
+SUBS(AR|AE|AN|AI, str_7E3D8B1C859776CA, "eh ")
+SUBS(AR|RGT|AE|AN|AI, str_7A4D8698951A1FAD, "hen ")
+SUBS(AR|AA|AE|AN|AO|AP, str_66E10295AC7B9CA0, "opnamen ")
+SUBS(AR|AA|AS|AE|AT|AO, str_3C79045BF3536CB2, "weg ")
+SUBS(AR|AA|AE|AT|AI|AP, str_C3B90DAB4B7472C5, "papier ")
+SUBS(AR|AS|AE|AN|AI|AP, str_3C9354E1B6E24DAA, "meisje ")
+SUBS(AR|AS|AT|AI|AO|AP, str_DC28411654225FFD, "pistool ")
+SUBS(AR|AA|AS|AN|AO|AP, str_7F2A8884B703B508, "mouw ")
+SUBS(AR|AA|AS|AT|AI|AP, str_41E617C734A9B9D0, "pakt ")
+SUBS(AR|AA|AS|AT|AN|AP, str_F11A03FECD1BAC54, "stam ")
+SUBS(AR|AA|AS|AE|AT|AI, str_201DF979D8D5FD45, "vader ")
+SUBS(AR|AA|AN|AI|AO|AP, str_2F0B08746C6E2063, "plan ")
+SUBS(AR|AE|AN|AI|AO|AP, str_19988C6A8F37C6DA, "lopen ")
+SUBS(AR|AT|AN|AO|AP, str_26DDC89FCFD3BABB, "boom ")
+SUBS(AR|RGT|AT|AN|AO|AP, str_FD52E8E3B927C4FA, "punt ")
+SUBS(AR|AA|AE|AN|AI, str_F9FB633B31DC6D6D, "zien ")
+SUBS(AR|RGT|AA|AE|AN|AI, str_ADDEC78F35080769, "inzien ")
+SUBS(AR|AS|AE|AN|AP, str_07DEA57FA03F84E3, "sms'je ")
+SUBS(AR|RGT|AS|AE|AN|AP, str_F175E0A1227509AD, "mensen ")
+SUBS(AR|AS|AE|AN|AI, str_A5971EF00EAEDA5D, "denk ")
+SUBS(AR|RGT|AS|AE|AN|AI, str_5AEA4E664A6EEF29, "kijken ")
+SUBS(AR|AS|AE|AI|AP, str_13B6D52598748047, "diep ")
+SUBS(AR|RGT|AS|AE|AI|AP, str_C5D40B0A0C57A5E9, "'ik ")
+SUBS(AR|AA|AS|AN|AI, str_D59F9D011F750F2C, "zijn ")
+SUBS(AR|RGT|AA|AS|AN|AI, str_FA2CEC25FAE97341, "kan ")
+SUBS(AR|AS|AT|AI|AO, str_521672AED92958DC, "stil ")
+SUBS(AR|RGT|AS|AT|AI|AO, str_1C4875EFB5E3B65F, "kost ")
+SUBS(AR|AS|AT|AO|AP, str_CB532D5DED67E46B, "stop ")
+SUBS(AR|RGT|AS|AT|AO|AP, str_993FB3354F37599E, "post ")
+SUBS(AR|AA|AE|AT|AP, str_606F5AD016A47E89, "trap ")
+SUBS(AR|RGT|AA|AE|AT|AP, str_77422CDECD520E45, "paar ")
+SUBS(AR|AE|AT|AN|AO, str_D8D04BB18B2FCBFF, "toen ")
+SUBS(AR|RGT|AE|AT|AN|AO, str_3720281455A654E3, "ogen ")
+SUBS(AR|AE|AN|AI|AO, str_7623453E9CFB03D4, "ellen ")
+SUBS(AR|RGT|AE|AN|AI|AO, str_73B6B5B26FD71502, "hoe ")
+SUBS(AR|AA|AT|AN|AO, str_9B117438FFF3EC08, "gaan ")
+SUBS(AR|RGT|AA|AT|AN|AO, str_FF3F3B1F8B5A3E40, "nota ")
+SUBS(AR|AS|AN|AI|AP, str_5ABDC1D334C04FAB, "spin ")
+SUBS(AR|RGT|AS|AN|AI|AP, str_C82620527C76697D, "mijn ")
+SUBS(AR|AA|AS|AT|AP, str_B3DEAAF59F1E7727, "stap ")
+SUBS(AR|RGT|AA|AS|AT|AP, str_718051F50C1745F9, "past ")
+SUBS(AR|AS|AT|AN|AI, str_C452567AA7C49B83, "bij ")
+SUBS(AR|RGT|AS|AT|AN|AI, str_9449E07F4DA95EC4, "kijkt ")
+SUBS(AR|AA|AS|AT|AI, str_4A8E4310C68D5030, "wist ")
+SUBS(AR|RGT|AA|AS|AT|AI, str_F4F7972FF6C3AA38, "kast ")
+SUBS(AR|AA|AE|AI|AO, str_4B68781D007741F3, "alle ")
+SUBS(AR|RGT|AA|AE|AI|AO, str_2BCCE3C0702A7BCE, "lizzie ")
+SUBS(AR|AS|AE|AT|AP, str_9CE549717FD693C0, "respect ")
+SUBS(AR|RGT|AS|AE|AT|AP, str_E53C14204106A2DF, "pers ")
+SUBS(AR|AS|AI|AO|AP, str_7D927358A163458C, "sloop ")
+SUBS(AR|RGT|AS|AI|AO|AP, str_87CFB86F7172C44A, "kop ")
+SUBS(AR|AA|AT|AI|AO, str_54A78C26DF801C39, "zag ")
+SUBS(AR|RGT|AA|AT|AI|AO, str_2CE8A84D8E8E7AF8, "laat ")
+SUBS(AR|AE|AN|AI|AP, str_E96AF9789DFD378D, "eph ")
+SUBS(AR|RGT|AE|AN|AI|AP, str_3DE7FC713EFDE099, "hem ")
+SUBS(AR|AA|AS|AI|AO, str_29CE2FDA396D8322, "als ")
+SUBS(AR|RGT|AA|AS|AI|AO, str_05DBE3DB5EFBA943, "las ")
+SUBS(AR|AA|AS|AN|AO, str_0C965DFEA414E35D, "wou ")
+SUBS(AR|RGT|AA|AS|AN|AO, str_E8396F9C50F95A2C, "uw ")
+SUBS(AR|AA|AN|AI|AO, str_A5359CE1548A4967, "zou ")
+SUBS(AR|RGT|AA|AN|AI|AO, str_4FB4F9ADE1176547, "hal ")
+SUBS(AR|AS|AE|AI|AO, str_009492B1B1F90F25, "elke ")
+SUBS(AR|RGT|AS|AE|AI|AO, str_A7FAFB59ED2F6C4D, "leek ")
+SUBS(AR|AA|AS|AE|AI, str_3C5B5E945519152C, "deze ")
+SUBS(AR|RGT|AA|AS|AE|AI, str_949A6CD175077E9D, "kwaad ")
+SUBS(AR|AA|AE|AT|AN, str_F1DEA8BFE062BA32, "eraan ")
+SUBS(AR|RGT|AA|AE|AT|AN, str_986149229D18C728, "naar ")
+SUBS(AR|AT|AN|AI|AP, str_AF1FE256DC6BB784, "tim ")
+SUBS(AR|RGT|AT|AN|AI|AP, str_494AFE3F4D06465A, "htm ")
+SUBS(AR|AE|AT|AN|AP, str_16003C680922E420, "ermee ")
+SUBS(AR|RGT|AE|AT|AN|AP, str_C7D7F29E47B4BF3E, "met ")
+SUBS(AR|AA|AS|AE|AN, str_2D98EFAF28A302ED, "dan ")
+SUBS(AR|RGT|AA|AS|AE|AN, str_C161ABA85FEDF657, "new ")
+SUBS(AR|AA|AS|AE|AP, str_165816E712C2B28C, "da's ")
+SUBS(AR|RGT|AA|AS|AE|AP, str_E5E885A4F9D42365, "'we ")
+SUBS(AR|AE|AT|AN|AI, str_098DC5EDD94A95CA, "even ")
+SUBS(AR|RGT|AE|AT|AN|AI, str_04F396FE937765D9, "het ")
+SUBS(AR|AS|AE|AT|AI, str_4304C227395BD37E, "dit ")
+SUBS(AR|RGT|AS|AE|AT|AI, str_33397C009A67360D, "iets ")
+SUBS(AR|AA|AS|AT|AN, str_85FB90AD5AF3F778, "want ")
+SUBS(AR|RGT|AA|AS|AT|AN, str_DE8077D7A04BD52E, "naast ")
+SUBS(AR|AE|AT|AO|AP, str_493C5DEFCB354F5C, "erop ")
+SUBS(AR|RGT|AE|AT|AO|AP, str_61F4C15CD4F64EAC, "poort ")
+SUBS(AR|AT|AN|AI|AO, str_997DE4CA09BE1D9D, "ging ")
+SUBS(AR|RGT|AT|AN|AI|AO, str_A9006993E08B5F0F, "uit ")
+SUBS(AR|AA|AE|AI|AP, str_6243A5125E9902B3, "appie ")
+SUBS(AR|RGT|AA|AE|AI|AP, str_605E88BA6EDCA33E, "'ze ")
+SUBS(AR|AS|AE|AN|AO, str_94E0417806EBC8BA, "doen ")
+SUBS(AR|RGT|AS|AE|AN|AO, str_78DA240D37E1DC90, "oude ")
+SUBS(AR|AE|AT|AI|AP, str_13E1E228D95B47CA, "riep ")
+SUBS(AR|RGT|AE|AT|AI|AP, str_BC7EF837C3357A72, "piper ")
+SUBS(AR|AA|AT|AN|AI, str_868067C442CD38C1, "van ")
+SUBS(AR|RGT|AA|AT|AN|AI, str_5B528135063CFD88, "haat ")
+SUBS(AR|AE|AT|AI|AO, str_AB17747230E045A6, "voor ")
+SUBS(AR|RGT|AE|AT|AI|AO, str_2CCE6615DDD45C8E, "over ")
+SUBS(AR|AT|AI|AO|AP, str_A4FDCBAE2772AE16, "volop ")
+SUBS(AR|RGT|AT|AI|AO|AP, str_D04D9E54BC1C50CA, "loopt ")
+SUBS(AR|AS|AE|AO|AP, str_8C372FC99C0A8AAC, "soep ")
+SUBS(AR|RGT|AS|AE|AO|AP, str_EDAECBC2519897FC, "poes ")
+SUBS(AR|AS|AN|AO|AP, str_DBBF68CE2078DE7F, "soms ")
+SUBS(AR|RGT|AS|AN|AO|AP, str_8B6D33658CB36F28, "joop ")
+SUBS(AR|AA|AS|AN|AP, str_4A9FFC3D2355E44C, "span ")
+SUBS(AR|RGT|AA|AS|AN|AP, str_248A481E3372E8F5, "massa ")
+SUBS(AR|AA|AT|AN|AP, str_BF3DDFB8CBFE1C63, "tam ")
+SUBS(AR|RGT|AA|AT|AN|AP, str_31062213ACA2DB24, "maat ")
+SUBS(AR|AS|AT|AN|AO, str_23B31B7D36319EFC, "boos ")
+SUBS(AR|RGT|AS|AT|AN|AO, str_9E6552A2D538596B, "jong ")
+SUBS(AR|AA|AE|AN|AP, str_BF181BAE939DFF3D, "aannemen ")
+SUBS(AR|RGT|AA|AE|AN|AP, str_6FB419EBFA4FDDD0, "mannen ")
+SUBS(AR|AA|AS|AE|AT|AN|AO, str_1A5E6E1C37C5C8B2, "worden ")
+SUBS(AR|AA|AE|AT|AN|AI|AP, str_236D5AAB5DFA58BD, "manier ")
+SUBS(AR|AA|AS|AI|AO|AP, str_EDA01630903ACAA7, "slaap ")
+SUBS(AR|RGT|AA|AS|AI|AO|AP, str_AF121D4C6F58EBE5, "klap ")
+SUBS(AR|AS|AT|AN|AO|AP, str_89978456BF623F18, "stom ")
+SUBS(AR|RGT|AS|AT|AN|AO|AP, str_918C1F865A6F50C7, "muts ")
+SUBS(AR|AA|AT|AN|AI|AO, str_E6F4D34B2D045CCC, "vanuit ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO, str_3ABD8DA65AF381C4, "lang ")
+SUBS(AR|AA|AS|AE|AN|AI, str_2DD4415EE04BAFDB, "weken ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI, str_B8157EA41E09D921, "had ")
+SUBS(AR|AE|AT|AI|AO|AP, str_06159D74F5F706BE, "voorlopig ")
+SUBS(AR|RGT|AE|AT|AI|AO|AP, str_EC5262C322755AE3, "politie ")
+SUBS(AR|AA|AS|AN|AI|AO, str_B3D5DC24825AA93C, "zus ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO, str_E29E3546C55CDCD4, "hals ")
+SUBS(AR|AA|AS|AE|AI|AP, str_5FAA21BFAFFD49DA, "zweep ")
+SUBS(AR|RGT|AA|AS|AE|AI|AP, str_CE173D7A0B469A2C, "'wie ")
+SUBS(AR|AS|AE|AT|AO|AP, str_8D8C2A92E91E7295, "dorp ")
+SUBS(AR|RGT|AS|AE|AT|AO|AP, str_DEB9C407B616CC4C, "proces ")
+SUBS(AR|AS|AE|AT|AN|AO, str_8C74304ECFAE815E, "stond ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO, str_38CBB5F5A5E6D56E, "onder ")
+SUBS(AR|AE|AT|AN|AI|AO, str_37EC60B8A186E3F8, "eigen ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO, str_4F098D98BD76E738, "leven ")
+SUBS(AR|AS|AE|AT|AI|AO, str_E806271D0AA00BA7, "voelde ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO, str_84367956ED9ACA98, "kreeg ")
+SUBS(AR|AA|AS|AE|AI|AO, str_8C72F9BBA7AA2FE0, "wel ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO, str_3662FF4FA5D5A691, "kale ")
+SUBS(AR|AS|AN|AI|AO|AP, str_6CBFC109D0CB9CF1, "simon ")
+SUBS(AR|RGT|AS|AN|AI|AO|AP, str_C50B116423771F39, "kom ")
+SUBS(AR|AS|AT|AN|AI|AO, str_3F2B0424B90C0D3C, "toch ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO, str_78252E3943F32B3B, "kunt ")
+SUBS(AR|AA|AS|AT|AN|AO, str_B25D747563F50C00, "angst ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO, str_412E9C52008E2FFC, "jacob ")
+SUBS(AR|AA|AE|AN|AI|AP, str_F99612A7FA7898A3, "z'n ")
+SUBS(AR|RGT|AA|AE|AN|AI|AP, str_09298B99F194ADAA, "maxima ")
+SUBS(AR|AS|AE|AT|AN|AI, str_75A9436A95A5D939, "tijd ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI, str_CDE7DAB599D30443, "niets ")
+SUBS(AR|AS|AE|AN|AI|AO, str_42D62B365CC2637B, "snel ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO, str_F61FAF52C7544EC2, "kunnen ")
+SUBS(AR|AA|AE|AN|AI|AO, str_AAECCABBBCD44493, "alleen ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO, str_DE871427B5EA3F28, "onze ")
+SUBS(AR|AS|AE|AT|AI|AP, str_F2016119C06FB953, "spreekt ")
+SUBS(AR|RGT|AS|AE|AT|AI|AP, str_621F80E9187A5778, "precies ")
+SUBS(AR|AA|AE|AT|AN|AO, str_8314A7158DB48ABA, "gegaan ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO, str_C5C63B76C01E50BC, "naartoe ")
+SUBS(AR|AA|AT|AN|AO|AP, str_DB4CB9C7228970A5, "tatum ")
+SUBS(AR|RGT|AA|AT|AN|AO|AP, str_3C9B602D612DFCF2, "mag ")
+SUBS(AR|AS|AE|AT|AN|AP, str_30674A9C115676E5, "stem ")
+SUBS(AR|RGT|AS|AE|AT|AN|AP, str_FC94D31C726700B8, "meeste ")
+SUBS(AR|AA|AS|AT|AN|AI, str_1E002CAE03FFABAE, "zich ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI, str_5105E1ED4EE07DAD, "kant ")
+SUBS(AR|AA|AS|AE|AN|AO, str_3A59637361B43864, "wonen ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO, str_A5A5D567FDBB9849, "ouwe ")
+SUBS(AR|AA|AS|AE|AT|AP, str_9761773C743B186A, "stapte ")
+SUBS(AR|RGT|AA|AS|AE|AT|AP, str_84938433B5435F0A, "'dat ")
+SUBS(AR|AA|AE|AT|AN|AP, str_4466B3233DC5388F, "armen ")
+SUBS(AR|RGT|AA|AE|AT|AN|AP, str_BE52D7C0FB6D254C, "maar ")
+SUBS(AR|AA|AS|AE|AT|AN, str_DAED66ED9574D407, "waren ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN, str_EFDB605A15AA4058, "jaar ")
+SUBS(AR|AE|AT|AN|AI|AP, str_AC8ACF17412A79B3, "evenmin ")
+SUBS(AR|RGT|AE|AT|AN|AI|AP, str_D346ED0408FA424A, "'het ")
+SUBS(AR|AA|AE|AT|AO|AP, str_2678AEB1CA537FBF, "gepraat ")
+SUBS(AR|RGT|AA|AE|AT|AO|AP, str_5E0C8ECDADE5F1A0, "page ")
+SUBS(AR|AS|AT|AN|AI|AP, str_16F38A80CD3A17A2, "schip ")
+SUBS(AR|RGT|AS|AT|AN|AI|AP, str_0237BF0C3728CA80, "minst ")
+SUBS(AR|AA|AE|AT|AI|AO, str_DC39801BE4734C10, "zelf ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO, str_B74E83C046B23FC2, "later ")
+SUBS(AR|AA|AS|AT|AI|AO, str_D8A43722373FF9A4, "alsof ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO, str_A57E20B51804CF2C, "last ")
+SUBS(AR|AA|AT|AI|AO|AP, str_ECBA14C4E530E3A1, "afloop ")
+SUBS(AR|RGT|AA|AT|AI|AO|AP, str_51B518126A035A17, "plat ")
+SUBS(AR|AA|AT|AN|AI|AP, str_1AFD7B5D30FA8F4A, "fatima ")
+SUBS(AR|RGT|AA|AT|AN|AI|AP, str_2C3632930C2AB50B, "mattia ")
+SUBS(AR|AS|AE|AN|AO|AP, str_12BF12EEF13D6E95, "dom ")
+SUBS(AR|RGT|AS|AE|AN|AO|AP, str_88469FD19018C34B, "mond ")
+SUBS(AR|AA|AS|AE|AN|AP, str_3A3B5D326F9ADBEC, "samen ")
+SUBS(AR|RGT|AA|AS|AE|AN|AP, str_AAFD24093B719C48, "maanden ")
+SUBS(AR|AE|AT|AN|AO|AP, str_66326E12F17B8F42, "genomen ")
+SUBS(AR|RGT|AE|AT|AN|AO|AP, str_18C489B133CF1DF2, "moet ")
+SUBS(AR|AA|AE|AI|AO|AP, str_F7931A2969F890EC, "appel ")
+SUBS(AR|RGT|AA|AE|AI|AO|AP, str_637B39E43982BF03, "'zo ")
+SUBS(AR|AS|AE|AI|AO|AP, str_EF424961E35142C3, "speelde ")
+SUBS(AR|RGT|AS|AE|AI|AO|AP, str_2688CE2C4C0BFB8E, "plek ")
+SUBS(AR|AT|AN|AI|AO|AP, str_18112192C1C7162F, "glimp ")
+SUBS(AR|RGT|AT|AN|AI|AO|AP, str_96C152701E4AAF29, "omhoog ")
+SUBS(AR|AA|AE|AT|AN|AI, str_85D95EE86FD8D7E0, "zitten ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI, str_D40674E651F303E0, "haar ")
+SUBS(AR|AA|AS|AN|AI|AP, str_3DDEC0B6B7DC4E60, "smaak ")
+SUBS(AR|RGT|AA|AS|AN|AI|AP, str_13427819E20417AC, "kwam ")
+SUBS(AR|AA|AE|AT|AN|AI|AO, str_CFA69B347040DFA4, "zeggen ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_46A466751710BBDE, "laten ")
+SUBS(AR|AS|AE|AN|AI|AO|AP, str_85B7B9EA92DBC33D, "spelen ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_632EEC8003417245, "komen ")
+SUBS(AR|AA|AS|AE|AT|AI|AP, str_60DD52897AE7328E, "sprak ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_98D27C837BA93225, "pakte ")
+SUBS(AR|AA|AS|AT|AN|AI|AO, str_36048F26B12AD2BA, "blijft ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_6C2D114EB287C846, "langs ")
+SUBS(AR|AA|AE|AT|AN|AO|AP, str_04780C055D9DEB2B, "roman ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_1ABC020C1C0B6956, "magere ")
+SUBS(AR|AA|AS|AE|AN|AO|AP, str_01BF2A81399F3EFC, "samenwonen ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_19416B39EDE8D85C, "panose- ")
+SUBS(AR|AE|AT|AN|AI|AO|AP, str_39100C139CAC1A92, "ruimte ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_830AFDF71CF14F69, "minuten ")
+SUBS(AR|AA|AS|AT|AN|AI|AP, str_7442FC1455556F71, "tapijt ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_0A91A845CCB949E5, "maakt ")
+SUBS(AR|AA|AS|AE|AT|AI|AO, str_2316AE8AFD12499B, "elkaar ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_BC1176714EDFB3E3, "laatste ")
+SUBS(AR|AS|AT|AN|AI|AO|AP, str_5E9245C93EB8BBA3, "schuim ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_4481899BE8B172DD, "komt ")
+SUBS(AR|AA|AS|AN|AI|AO|AP, str_7860D88CB37DB0A8, "wanhoop ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_B13D2A8A9BC34AA7, "opzij ")
+SUBS(AR|AA|AS|AT|AI|AO|AP, str_88ABA6EB9267140D, "slaapt ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_D72129058C74C7F1, "plaats ")
+SUBS(AR|AA|AS|AE|AT|AN|AI, str_96A00CB4E77515EE, "achter ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_FBB6D1679D55DF18, "hard ")
+SUBS(AR|AA|AS|AE|AN|AI|AP, str_CAD633A4A63AE769, "zwemmen ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_18325861BE240B96, "maken ")
+SUBS(AR|AA|AS|AE|AT|AO|AP, str_97C13C48CCC03717, "waarop ")
+SUBS(AR|RGT|AA|AS|AE|AT|AO|AP, str_6CD2A548A39A7E32, "professor ")
+SUBS(AR|AS|AE|AT|AN|AI|AO, str_0D31590B6ACC2C8A, "vond ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_F599DDBDDE71784C, "krijgen ")
+SUBS(AR|AA|AE|AT|AI|AO|AP, str_58DBAC3080F43A2C, "april ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_C2E1532C75A2EF31, "plezier ")
+SUBS(AR|AA|AE|AN|AI|AO|AP, str_AEB29283A7830C6E, "allemaal ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_4DD5DE47DC3A8E33, "helemaal ")
+SUBS(AR|AA|AS|AE|AT|AN|AP, str_C2631723111FD5AB, "waarmee ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_DCB82AC96739A6CF, "jasper ")
+SUBS(AR|AS|AE|AT|AI|AO|AP, str_1AFC9CB2074AAA9B, "gesprek ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_DDDFBF7DF64C8DF4, "periode ")
+SUBS(AR|AA|AS|AT|AN|AO|AP, str_EBB00619F6A89029, "spontaan ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_53161901D417782B, "opstaan ")
+SUBS(AR|AA|AS|AE|AI|AO|AP, str_AC1AE0D91923A15A, "slappe ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_FE7B5420A2E0A4B1, "'als ")
+SUBS(AR|AA|AT|AN|AI|AO|AP, str_2E642CEEC56D4266, "film ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_5CE65658ACD6EB87, "langzaam ")
+SUBS(AR|AS|AE|AT|AN|AO|AP, str_70845B894C3B48C8, "sprong ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_65CB04686C20C8C8, "moest ")
+SUBS(AR|AS|AE|AT|AN|AI|AP, str_1C8D1417F75B4C0C, "spreken ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_2BF315D4B342DDE6, "misschien ")
+SUBS(AR|AA|AS|AE|AN|AI|AO, str_170F022302D848C7, "zouden ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_95755922697069DD, "nieuwe ")
+SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_A659555F342991D6, "familie ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_2EA20D24BC9FE614, "mezelf ")
+SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_D50595439EC5EC64, "waarom ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_50D197A6481113D3, "omdat ")
+SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_2AFDC195D9E636B0, "glimlach ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_104B5913C90D8088, "lichaam ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_B041FDB23876F0BB, "altijd ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_07508C5DC7F6C61B, "hoofd ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_3601E608A05BAF49, "amerikaanse ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_D6CB674EF62C8952, "maakte ")
+SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_A9C15615E26C9E7A, "slapen ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_FA42E4481BE23013, "opnieuw ")
+SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_567B8FED8B46FF1C, "collega's ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_132971BEE7D56AFC, "opgewekt ")
+SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_D8726BD9A2A130E1, "gekomen ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_354E3609C2CF02C2, "mogelijk ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_B1CD2F1C6D590B41, "gemaakt ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_F21D471DB7533EEF, "mevrouw ")
diff --git a/keyboards/gboards/dicts/aset/num-keymap.def b/keyboards/gboards/dicts/aset/num-keymap.def
new file mode 100644
index 0000000000..19eda5636c
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/num-keymap.def
@@ -0,0 +1,36 @@
+// This file is automatically generated. Do not edit it!
+
+PRES(NUM|AO, KC_9)
+PRES(NUM|AS, KC_2)
+PRES(NUM|AN, KC_7)
+PRES(NUM|AI, KC_8)
+PRES(NUM|AA, KC_1)
+PRES(NUM|AE, KC_3)
+PRES(NUM|AT, KC_4)
+PRES(NUM|AP, KC_0)
+PRES(NUM|AA|AE, KC_GRV)
+PRES(NUM|AA|AP, KC_QUOT)
+KEYS(NUM|AA|AI, cmb_e9bf29584cf72c14, {KC_LSFT, KC_1, COMBO_END})
+PRES(NUM|AE|AN, KC_HOME)
+PRES(NUM|AN|AI, KC_6)
+PRES(NUM|AE|AI, KC_COMM)
+PRES(NUM|AS|AT, KC_NO)
+PRES(NUM|AE|AP, KC_QUOT)
+PRES(NUM|AA|AS, KC_SPC)
+PRES(NUM|AS|AI, KC_EQL)
+PRES(NUM|AA|AT, KC_LBRC)
+PRES(NUM|AI|AO, KC_EQL)
+KEYS(NUM|AS|AP, cmb_ea889bef063f6825, {KC_LSFT, KC_0, COMBO_END})
+PRES(NUM|AT|AP, KC_BSPC)
+KEYS(NUM|AA|AO, cmb_bff41f9e9cd6fd93, {KC_LSFT, KC_9, COMBO_END})
+PRES(NUM|AA|AN, KC_SPC)
+PRES(NUM|AS|AO, KC_DOT)
+PRES(NUM|AE|AO, KC_MINS)
+PRES(NUM|AS|AE, KC_MINS)
+PRES(NUM|AE|AT, KC_5)
+PRES(NUM|AO|AP, KC_SCLN)
+PRES(NUM|AN|AO, KC_NO)
+PRES(NUM|AN|AP, KC_RBRC)
+PRES(NUM|AS|AN, KC_END)
+PRES(NUM|AN|AI|AO|AP, KC_TAB)
+PRES(NUM|AA|AS|AE|AT|AN|AI|AO|AP, KC_SPC)
diff --git a/keyboards/gboards/dicts/aset/nw-keymap.def b/keyboards/gboards/dicts/aset/nw-keymap.def
new file mode 100644
index 0000000000..d1ecbaef08
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/nw-keymap.def
@@ -0,0 +1,381 @@
+// This file is automatically generated. Do not edit it!
+
+PRES(AE, KC_E)
+PRES(AS, KC_S)
+PRES(AP, KC_P)
+PRES(AN, KC_N)
+PRES(AT, KC_T)
+PRES(AI, KC_I)
+PRES(AO, KC_O)
+PRES(AA, KC_A)
+PRES(AI|AO, KC_L)
+PRES(AS|AN, KC_J)
+PRES(AA|AN, KC_Q)
+PRES(AT|AN, KC_B)
+PRES(AT|AP, KC_BSPC)
+PRES(AA|AI, KC_Z)
+KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END})
+PRES(AO|AP, KC_SCLN)
+PRES(AA|AT, KC_F)
+PRES(AA|AS, KC_W)
+PRES(AE|AI, KC_COMM)
+KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END})
+KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END})
+PRES(AE|AN, KC_Y)
+PRES(AN|AI, KC_H)
+PRES(AN|AP, KC_M)
+PRES(AE|AT, KC_R)
+PRES(AS|AI, KC_K)
+PRES(AS|AO, KC_DOT)
+PRES(AT|AI, KC_V)
+PRES(AA|AE, KC_X)
+PRES(AE|AP, KC_QUOT)
+PRES(AS|AE, KC_D)
+PRES(AN|AO, KC_U)
+PRES(AT|AO, KC_G)
+PRES(AA|AP, KC_QUOT)
+PRES(AS|AT, KC_C)
+PRES(AE|AO, KC_MINS)
+SUBS(AR|AS|AE|AT, str_925BB6ABF283A228, "det ")
+SUBS(AR|AN|AO|AP, str_0F33CAECD78B3E6B, "om ")
+PRES(AN|AI|AO|AP, KC_ENT)
+SUBS(AR|AE|AT|AI, str_7C0F236DA831BEB5, "eit ")
+SUBS(AR|AA|AT|AP, str_FB01F23B61D4D19E, "tapt ")
+SUBS(AR|AA|AE|AP, str_12715CFF7C2228E1, "'a ")
+SUBS(AR|AA|AN|AP, str_7814AB9A9D941FFB, "man ")
+SUBS(AR|AA|AS|AE, str_6E5B393925FE64CE, "da ")
+SUBS(AR|AE|AN|AP, str_B969E2F841D9C54A, "men ")
+SUBS(AR|AA|AS|AT, str_3B1A13C290639852, "sat ")
+SUBS(AR|AA|AI|AP, str_5359503E60204126, "pipa ")
+SUBS(AR|AI|AO|AP, str_3AFC1E9A8765C53B, "lop ")
+SUBS(AR|AA|AS|AO, str_62AB30530BED5D60, "ossaa ")
+SUBS(AR|AN|AI|AO, str_5A09FD44BA314863, "hun ")
+SUBS(AR|AN|AI|AP, str_683696748A01B41C, "min ")
+SUBS(AR|AA|AT|AI, str_BA2E119CA038883C, "av ")
+SUBS(AR|AA|AE|AT, str_452BE2346B5B80C3, "fra ")
+SUBS(AR|AE|AO|AP, str_5AC772D310448B08, "oppe ")
+SUBS(AR|AA|AT|AO, str_A75FF214306BA9D1, "gaa ")
+SUBS(AR|AS|AI|AP, str_A147DE6F127B4CD6, "skip ")
+SUBS(AR|AS|AE|AO|AP, str_B80F3FE3F3FCA0CC, "posse ")
+SUBS(AR|AA|AS|AT|AP, str_092E3BDF639232DD, "paastaa ")
+SUBS(AR|AE|AN|AO|AP, str_21DDFFBA443700D3, "munnen ")
+SUBS(AR|AT|AN|AI|AP, str_168886128C6CCE68, "mit ")
+SUBS(AR|AS|AN|AI|AP, str_CE4E838E0BC6E4DA, "km ")
+SUBS(AR|AS|AT|AI|AO, str_1109F5FD7D22AAC8, "sig ")
+SUBS(AR|AA|AN|AO|AP, str_38342550D5BCF484, "opnaa ")
+SUBS(AR|AA|AI|AO|AP, str_722CFF3C34B02A02, "paal ")
+SUBS(AR|AE|AN|AI|AO, str_EC7EE4878609F3D9, "hele ")
+SUBS(AR|AA|AE|AT|AI, str_776A8271136FBCDD, "var ")
+SUBS(AR|AT|AI|AO|AP, str_702F532D7A48BC00, "pligt ")
+SUBS(AR|AS|AE|AT|AN, str_BB930E6E87DE648C, "syntes ")
+SUBS(AR|AA|AT|AO|AP, str_4CCE26463694D960, "optat ")
+SUBS(AR|AE|AI|AO|AP, str_50BF19563B51D19B, "pleie ")
+SUBS(AR|AE|AN|AI|AP, str_B95094D0F4C2F09E, "mine ")
+SUBS(AR|AE|AT|AN|AP, str_DEE3BBD571C511F7, "mere ")
+SUBS(AR|AA|AN|AI|AP, str_FC9AB513E2B03A28, "ham ")
+SUBS(AR|AS|AT|AI|AP, str_A19F8973C971DB48, "spist ")
+SUBS(AR|AA|AS|AE|AT, str_7E1EAC57B515C2D1, "satte ")
+SUBS(AR|AS|AE|AO, str_5630D9590D848D9C, "dod ")
+SUBS(AR|RGT|AS|AE|AO, str_90B2E8A16883F3EC, "odd ")
+SUBS(AR|AA|AE|AI, str_68E1B1603E13FE30, "xi ")
+SUBS(AR|RGT|AA|AE|AI, str_D2F95EA81F7C61D5, "ix ")
+SUBS(AR|AE|AN|AO, str_E832D18A44EEE332, "enno ")
+SUBS(AR|RGT|AE|AN|AO, str_F18EF20D08AA79B8, "noe ")
+SUBS(AR|AT|AN|AI, str_802658407F3418BA, "thi ")
+SUBS(AR|RGT|AT|AN|AI, str_D5ACE27258AF148F, "hit ")
+SUBS(AR|AT|AN|AO, str_1B45A3756EC37127, "gong ")
+SUBS(AR|RGT|AT|AN|AO, str_AF931575FB1EA518, "ut ")
+SUBS(AR|AE|AT|AP, str_3AC87E4EE66F6E61, "teppet ")
+SUBS(AR|RGT|AE|AT|AP, str_342F8CACA85F0AD6, "per ")
+SUBS(AR|AA|AS|AP, str_C23AF9CA50CD0164, "saapas ")
+SUBS(AR|RGT|AA|AS|AP, str_467C897077B58F08, "pas ")
+SUBS(AR|AE|AT|AO, str_B5E6B5782EE16BAB, "eg ")
+SUBS(AR|RGT|AE|AT|AO, str_B97355B02DCE4543, "or ")
+SUBS(AR|AA|AE|AN, str_D184E1BC9A680407, "annen ")
+SUBS(AR|RGT|AA|AE|AN, str_D980517798430066, "naae ")
+SUBS(AR|AA|AI|AO, str_C49001FAA655F248, "al ")
+SUBS(AR|RGT|AA|AI|AO, str_7E7904D7326BCF29, "la ")
+SUBS(AR|AE|AI|AO, str_3CD2516588C5C683, "elle ")
+SUBS(AR|RGT|AE|AI|AO, str_E2986299752E3DE1, "lille ")
+SUBS(AR|AS|AT|AO, str_685B24601F82F924, "stott ")
+SUBS(AR|RGT|AS|AT|AO, str_77C6B8367F5A7C65, "oc ")
+SUBS(AR|AA|AN|AO, str_FD846B750BDF7708, "au ")
+SUBS(AR|RGT|AA|AN|AO, str_DCF7A99961FBA279, "unna ")
+SUBS(AR|AT|AO|AP, str_8574F11BEB82545C, "top ")
+SUBS(AR|RGT|AT|AO|AP, str_028BB7B551A4BD43, "pot ")
+SUBS(AR|AS|AE|AN, str_ECE5A6CDF4EED85C, "den ")
+SUBS(AR|RGT|AS|AE|AN, str_FB507079A5396F2A, "ned ")
+SUBS(AR|AA|AS|AN, str_63668A98CF9C47B7, "sja ")
+SUBS(AR|RGT|AA|AS|AN, str_16D6BE915787F782, "ja ")
+SUBS(AR|AA|AS|AI, str_2511202E00D980C7, "saki ")
+SUBS(AR|RGT|AA|AS|AI, str_423FC7030B57068F, "ka ")
+SUBS(AR|AS|AT|AI, str_2B382E2C87F633B5, "sit ")
+SUBS(AR|RGT|AS|AT|AI, str_057FCE32C97154C0, "kvit ")
+SUBS(AR|AA|AN|AI, str_BF40C27E59DAAC7B, "ah ")
+SUBS(AR|RGT|AA|AN|AI, str_BB30CFFA4957C51C, "han ")
+SUBS(AR|AS|AN|AI, str_55863E4A819B49C1, "sin ")
+SUBS(AR|RGT|AS|AN|AI, str_E1D43A91C597031D, "nik ")
+SUBS(AR|AS|AI|AO, str_D1E42442E1A668BC, "slik ")
+SUBS(AR|RGT|AS|AI|AO, str_7D5664732C823A0F, "los ")
+SUBS(AR|AT|AI|AO, str_1C31AEE8DFCCE8EB, "til ")
+SUBS(AR|RGT|AT|AI|AO, str_DD07510FB54603F8, "liv ")
+SUBS(AR|AA|AT|AN, str_AA9B005CF3762F95, "fann ")
+SUBS(AR|RGT|AA|AT|AN, str_47B698232847D3D2, "nat ")
+SUBS(AR|AE|AN|AI, str_02B1330BAE5CC4C1, "ein ")
+SUBS(AR|RGT|AE|AN|AI, str_4FFE5A0A17921200, "henne ")
+SUBS(AR|AE|AT|AN, str_131A9B4CD2947310, "berre ")
+SUBS(AR|RGT|AE|AT|AN, str_77D0DE1110F92FFB, "nyt ")
+SUBS(AR|AS|AN|AO, str_3D29840CE477716A, "son ")
+SUBS(AR|RGT|AS|AN|AO, str_6E23CC4BFF56B58C, "jo ")
+SUBS(AR|AS|AE|AI, str_D09F1FA0A086795B, "dei ")
+SUBS(AR|RGT|AS|AE|AI, str_25694FCDDE3987C4, "ikke ")
+SUBS(AR|AA|AS|AT|AI|AO, str_23089E82F5DFD0B4, "folk ")
+SUBS(AR|AA|AT|AI|AO|AP, str_2C59793065D02EDC, "opgav ")
+SUBS(AR|AA|AS|AN|AO|AP, str_FEC58E5F68E80032, "saasom ")
+SUBS(AR|AA|AT|AN|AI|AP, str_29B4DD2D22E83638, "vapni ")
+SUBS(AR|AE|AT|AN|AO|AP, str_879E412A510F3163, "meget ")
+SUBS(AR|AA|AS|AE|AO|AP, str_9D443C23601872A4, "opad ")
+SUBS(AR|AA|AE|AN|AI|AP, str_9B092F875E2DA1B4, "ha' ")
+SUBS(AR|AS|AE|AT|AO|AP, str_C3F89E20008EF31C, "spor ")
+SUBS(AR|AA|AS|AT|AI|AP, str_B3546060F2895743, "skapt ")
+SUBS(AR|AA|AS|AN|AI|AO, str_1F82936043CAFDC8, "hakon ")
+SUBS(AR|AE|AT|AI|AO|AP, str_348B2BB289B8817D, "pige ")
+SUBS(AR|AA|AS|AE|AT|AO, str_CA49BEAA613AC2F8, "sagde ")
+SUBS(AR|AA|AE|AI|AO|AP, str_6726AAAD1B841698, "la' ")
+SUBS(AR|AA|AE|AT|AN, str_9C31DB94CBCECD2F, "bare ")
+SUBS(AR|RGT|AA|AE|AT|AN, str_986149229D18C728, "naar ")
+SUBS(AR|AA|AS|AT|AN, str_F241B9D5D2417008, "sant ")
+SUBS(AR|RGT|AA|AS|AT|AN, str_2AAC07FC03EF5685, "jf ")
+SUBS(AR|AA|AS|AI|AP, str_6CB6EB1D7BCF408B, "skipa ")
+SUBS(AR|RGT|AA|AS|AI|AP, str_FF423FC7030B5706, "kap ")
+SUBS(AR|AS|AE|AN|AP, str_AB4FDC245F092768, "dem ")
+SUBS(AR|RGT|AS|AE|AN|AP, str_BA4C53A61687D977, "med ")
+SUBS(AR|AA|AS|AE|AP, str_659DE3D98174868E, "sa' ")
+SUBS(AR|RGT|AA|AS|AE|AP, str_1B1C50D62E726AE4, "passe ")
+SUBS(AR|AA|AS|AN|AO, str_88345F7C93C4C73D, "sau ")
+SUBS(AR|RGT|AA|AS|AN|AO, str_08B751B76E493B91, "jau ")
+SUBS(AR|AA|AE|AI|AO, str_4B68781D007741F3, "alle ")
+SUBS(AR|RGT|AA|AE|AI|AO, str_4DB93DD67BC5B5E0, "lea ")
+SUBS(AR|AS|AT|AN|AO, str_20CF80C46BB5F512, "song ")
+SUBS(AR|RGT|AS|AT|AN|AO, str_C039D2A5D9FC5D72, "just ")
+SUBS(AR|AA|AT|AN|AI, str_43AD10D41DE2729C, "fin ")
+SUBS(AR|RGT|AA|AT|AN|AI, str_7589149FDAADDD5C, "navn ")
+SUBS(AR|AA|AS|AE|AN, str_C51486569CE1AF4C, "anden ")
+SUBS(AR|RGT|AA|AS|AE|AN, str_0C372259E4C87260, "naade ")
+SUBS(AR|AA|AS|AT|AO, str_B68AFDA999042AE2, "sagt ")
+SUBS(AR|RGT|AA|AS|AT|AO, str_592113E20E9BD955, "ogsaa ")
+SUBS(AR|AA|AE|AN|AP, str_A11DE192909885A2, "apne ")
+SUBS(AR|RGT|AA|AE|AN|AP, str_6FB419EBFA4FDDD0, "mannen ")
+SUBS(AR|AA|AS|AE|AI, str_9CD8BF58537BE31A, "skade ")
+SUBS(AR|RGT|AA|AS|AE|AI, str_056D17F1CB6B6987, "kasse ")
+SUBS(AR|AS|AN|AI|AO, str_070960D6B75F9DAA, "sjol ")
+SUBS(AR|RGT|AS|AN|AI|AO, str_897B80D7A07B3BB6, "nok ")
+SUBS(AR|AA|AN|AI|AO, str_184A1BA14F670A97, "alonzo ")
+SUBS(AR|RGT|AA|AN|AI|AO, str_54DEAA1A3F19A7FC, "hall ")
+SUBS(AR|AE|AT|AI|AO, str_87C9A08BCD5987C8, "eller ")
+SUBS(AR|RGT|AE|AT|AI|AO, str_2CCE6615DDD45C8E, "over ")
+SUBS(AR|AS|AT|AO|AP, str_769DB022AD959409, "spog ")
+SUBS(AR|RGT|AS|AT|AO|AP, str_993FB3354F37599E, "post ")
+SUBS(AR|AA|AE|AT|AP, str_CCB60C7B52B04B65, "rapp ")
+SUBS(AR|RGT|AA|AE|AT|AP, str_F552C5CE7412D067, "par ")
+SUBS(AR|AA|AE|AT|AO, str_DAE84F2729ACCE2B, "for ")
+SUBS(AR|RGT|AA|AE|AT|AO, str_CC8D36F0E3CEDCB9, "ofte ")
+SUBS(AR|AS|AE|AT|AI, str_44D89FF8C9DEFE4D, "ved ")
+SUBS(AR|RGT|AS|AE|AT|AI, str_44E526692C9E5C02, "idet ")
+SUBS(AR|AS|AI|AO|AP, str_AE39F7849C80EFF0, "spil ")
+SUBS(AR|RGT|AS|AI|AO|AP, str_87CFB86F7172C44A, "kop ")
+SUBS(AR|AE|AT|AN|AI, str_47FD2EA69E80E270, "ven ")
+SUBS(AR|RGT|AE|AT|AN|AI, str_8BA7632DC4B89BB1, "her ")
+SUBS(AR|AA|AT|AN|AP, str_415DEF2531D5D328, "amt ")
+SUBS(AR|RGT|AA|AT|AN|AP, str_06AABBFC9BF9658F, "mat ")
+SUBS(AR|AA|AE|AN|AI, str_6CCDD17C98DBD8DA, "einannan ")
+SUBS(AR|RGT|AA|AE|AN|AI, str_3E7CD427C0274FF0, "hena ")
+SUBS(AR|AE|AT|AO|AP, str_7D0F31281EF69F8B, "ropte ")
+SUBS(AR|RGT|AE|AT|AO|AP, str_C49A79241347400B, "potter ")
+SUBS(AR|AS|AE|AT|AP, str_957AA55BB10DC8D1, "drepe ")
+SUBS(AR|RGT|AS|AE|AT|AP, str_E89D243AB8903FE3, "prest ")
+SUBS(AR|AS|AE|AI|AP, str_6F2A64F59BE5E26E, "spise ")
+SUBS(AR|RGT|AS|AE|AI|AP, str_E5D45F3E4260F02B, "pike ")
+SUBS(AR|AA|AS|AN|AP, str_FDE849B83007B2AD, "smaa ")
+SUBS(AR|RGT|AA|AS|AN|AP, str_58182FA043E248BD, "jaampa ")
+SUBS(AR|AA|AS|AI|AO, str_408F0634544C632D, "skal ")
+SUBS(AR|RGT|AA|AS|AI|AO, str_702618E7AF96922D, "kalla ")
+SUBS(AR|AS|AE|AI|AO, str_1861909A5CAE7807, "del ")
+SUBS(AR|RGT|AS|AE|AI|AO, str_3CB77C2629D9FD41, "lod ")
+SUBS(AR|AS|AE|AN|AI, str_5673F12CA48839F3, "sine ")
+SUBS(AR|RGT|AS|AE|AN|AI, str_B2996F5DF156F820, "ikkje ")
+SUBS(AR|AT|AN|AI|AO, str_166C1C638CBE4F0B, "bli ")
+SUBS(AR|RGT|AT|AN|AI|AO, str_A3CF5E1B52894A08, "hoit ")
+SUBS(AR|AE|AT|AN|AO, str_BA3BD4D2DA7AE86E, "bort ")
+SUBS(AR|RGT|AE|AT|AN|AO, str_B7409EC7507F1CD9, "noget ")
+SUBS(AR|AA|AT|AN|AO, str_F3FA41B52DE36D40, "gang ")
+SUBS(AR|RGT|AA|AT|AN|AO, str_FAD744D3AA1797A8, "utan ")
+SUBS(AR|AS|AT|AN|AI, str_98C61CAAF61C00D5, "sint ")
+SUBS(AR|RGT|AS|AT|AN|AI, str_1F36E9BDFB6C17A3, "hvis ")
+SUBS(AR|AA|AT|AI|AO, str_15B496B76D052225, "alt ")
+SUBS(AR|RGT|AA|AT|AI|AO, str_57FCC1E7B02592FD, "olav ")
+SUBS(AR|AS|AE|AT|AO, str_C0568171B6FADB9E, "seg ")
+SUBS(AR|RGT|AS|AE|AT|AO, str_D859293B22449C89, "ord ")
+SUBS(AR|AT|AN|AO|AP, str_C7B05810B9878F2F, "tom ")
+SUBS(AR|RGT|AT|AN|AO|AP, str_7E273C54E980F6C3, "mot ")
+SUBS(AR|AS|AE|AN|AO, str_68105B858B425CB4, "du ")
+SUBS(AR|RGT|AS|AE|AN|AO, str_D208B44DAA2DC351, "ud ")
+SUBS(AR|AA|AS|AT|AI, str_8B539FEEE1CA73C0, "fik ")
+SUBS(AR|RGT|AA|AS|AT|AI, str_2DF56A494788F048, "kva ")
+SUBS(AR|AS|AN|AO|AP, str_7A83FEE54F908E5E, "som ")
+SUBS(AR|RGT|AS|AN|AO|AP, str_C9A7878495430405, "mons ")
+SUBS(AR|AA|AS|AN|AI, str_4401268928040B20, "sank ")
+SUBS(AR|RGT|AA|AS|AN|AI, str_4B4CC6627CFD3ECE, "hans ")
+SUBS(AR|AA|AS|AT|AN|AI|AP, str_23061DC1E942126E, "knapt ")
+SUBS(AR|AA|AS|AE|AT|AO|AP, str_20D6D6623B1192DC, "pastor ")
+SUBS(AR|AS|AE|AT|AN|AI|AP, str_812F7194D11B8ADE, "mindre ")
+SUBS(AR|AA|AE|AT|AN|AI, str_701758C383D21C1A, "fine ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI, str_4ADA2A4F18F54100, "har ")
+SUBS(AR|AA|AS|AE|AT|AP, str_2622E4CB4E7E9609, "derpaa ")
+SUBS(AR|RGT|AA|AS|AE|AT|AP, str_2415BE5D6332DA50, "passer ")
+SUBS(AR|AA|AT|AN|AO|AP, str_20D86D618162A4CE, "bagom ")
+SUBS(AR|RGT|AA|AT|AN|AO|AP, str_59A99855C94EE38F, "magt ")
+SUBS(AR|AS|AE|AT|AI|AP, str_3E11FF89C13615F1, "skipet ")
+SUBS(AR|RGT|AS|AE|AT|AI|AP, str_405D34AF2264AD2A, "pris ")
+SUBS(AR|AE|AN|AI|AO|AP, str_D2C24B68658B63FD, "emil ")
+SUBS(AR|RGT|AE|AN|AI|AO|AP, str_8FB9C780573B2537, "mellem ")
+SUBS(AR|AS|AT|AN|AO|AP, str_1198A5FC9E3C4B8D, "spjot ")
+SUBS(AR|RGT|AS|AT|AN|AO|AP, str_58A09E210104136F, "pust ")
+SUBS(AR|AA|AS|AE|AT|AN, str_691DC3BEDE0F7276, "andre ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN, str_33BEF0A978E16432, "naesten ")
+SUBS(AR|AA|AS|AT|AN|AO, str_C87062042895E975, "sang ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO, str_412E9C52008E2FFC, "jacob ")
+SUBS(AR|AE|AT|AN|AI|AP, str_FAC1CC00AF3E4FF0, "time ")
+SUBS(AR|RGT|AE|AT|AN|AI|AP, str_525F6F04A9513987, "meir ")
+SUBS(AR|AA|AE|AT|AN|AP, str_943BA4CC51713FB6, "frem ")
+SUBS(AR|RGT|AA|AE|AT|AN|AP, str_D4702E3A6CDC1944, "maatte ")
+SUBS(AR|AA|AE|AT|AI|AP, str_D5CAE91410E03313, "appetit ")
+SUBS(AR|RGT|AA|AE|AT|AI|AP, str_942036C586B52CDC, "parti ")
+SUBS(AR|AS|AE|AT|AI|AO, str_B0E66F30B466B53B, "vilde ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO, str_D3FB3DC22A4E2199, "lidt ")
+SUBS(AR|AS|AT|AN|AI|AP, str_173A297B1E582BEA, "bisp ")
+SUBS(AR|RGT|AS|AT|AN|AI|AP, str_0237BF0C3728CA80, "minst ")
+SUBS(AR|AA|AS|AE|AN|AO, str_5F3E693A3DBE9F2E, "daud ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO, str_65076753CFCFEB84, "unda ")
+SUBS(AR|AA|AS|AN|AI|AP, str_F3A14A8A57EB3C42, "skam ")
+SUBS(AR|RGT|AA|AS|AN|AI|AP, str_D7EEA8DF541E3089, "kamp ")
+SUBS(AR|AA|AS|AE|AI|AP, str_7DE18DE6A01D6E65, "skape ")
+SUBS(AR|RGT|AA|AS|AE|AI|AP, str_94F2F9657A2B07AA, "pakke ")
+SUBS(AR|AS|AN|AI|AO|AP, str_D2957C6524A4A470, "smil ")
+SUBS(AR|RGT|AS|AN|AI|AO|AP, str_C50B116423771F39, "kom ")
+SUBS(AR|AA|AS|AE|AT|AI, str_0BDE3ABCCA6AB259, "fekk ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI, str_9A09060F892B014F, "kvar ")
+SUBS(AR|AA|AE|AT|AI|AO, str_C4AF10EDD7B3CE20, "tale ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO, str_8B224A56A722EACC, "laegge ")
+SUBS(AR|AA|AE|AT|AN|AO, str_FBD40D7FE37392C8, "gunnar ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO, str_0DC869483ED5AEE0, "naturen ")
+SUBS(AR|AS|AE|AT|AN|AI, str_95821FFE4D6CCEB7, "verden ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI, str_C94E0D979EC3173C, "kjendte ")
+SUBS(AR|AS|AE|AN|AI|AP, str_168528F7605DED93, "deim ")
+SUBS(AR|RGT|AS|AE|AN|AI|AP, str_88A02478E01864F9, "hjem ")
+SUBS(AR|AS|AT|AI|AO|AP, str_ADBF0C95C8F3EEC7, "spilt ")
+SUBS(AR|RGT|AS|AT|AI|AO|AP, str_0CC9334B24C94347, "opkog ")
+SUBS(AR|AA|AT|AN|AI|AO, str_C52ACE281FD23DC7, "gunnlaug ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO, str_5057A823E6EF6941, "langt ")
+SUBS(AR|AA|AS|AE|AI|AO, str_078A61B5A3D2EDA1, "saaledes ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO, str_443AFB8E5BA06E0D, "lad ")
+SUBS(AR|AA|AS|AT|AN|AP, str_0F7A33633730631F, "samt ")
+SUBS(AR|RGT|AA|AS|AT|AN|AP, str_B1D0E10589BDCF66, "jamt ")
+SUBS(AR|AS|AE|AN|AI|AO, str_33147076F22F7144, "skulde ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO, str_5E4907A9602E385A, "kunde ")
+SUBS(AR|AS|AT|AN|AI|AO, str_803AA4D54E4ECA25, "blik ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO, str_20856FF8512ED81F, "och ")
+SUBS(AR|AA|AS|AE|AN|AP, str_9A129D3C2CF63359, "samme ")
+SUBS(AR|RGT|AA|AS|AE|AN|AP, str_60F97D11D338DF2C, "mand ")
+SUBS(AR|AA|AS|AE|AN|AI, str_41BE0294178512AB, "sidan ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI, str_9524DA52379D77C6, "hadde ")
+SUBS(AR|AA|AE|AT|AO|AP, str_EABC033D43046E24, "ropa ")
+SUBS(AR|RGT|AA|AE|AT|AO|AP, str_6668BB5B4D2A7ED7, "praeg ")
+SUBS(AR|AA|AE|AN|AI|AO, str_9CD03918EFCF7A9D, "alene ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO, str_B9DC345474FEAAFE, "nella ")
+SUBS(AR|AA|AN|AI|AO|AP, str_2CA0FC38C08FA765, "alm ")
+SUBS(AR|RGT|AA|AN|AI|AO|AP, str_BB3C0422028F010B, "maal ")
+SUBS(AR|AS|AE|AT|AN|AO, str_8DF4F0A3E8D06533, "gjorde ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO, str_40D58FBA4B772732, "jeg ")
+SUBS(AR|AS|AE|AT|AN|AP, str_530DA972D63F0664, "dermed ")
+SUBS(AR|RGT|AS|AE|AT|AN|AP, str_44BF2FC17F81D9DC, "mest ")
+SUBS(AR|AE|AT|AN|AI|AO, str_13A17952D7936000, "blev ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO, str_C4B71F459D277067, "hvor ")
+SUBS(AR|AA|AS|AI|AO|AP, str_0C564574F3F9E640, "slap ")
+SUBS(AR|RGT|AA|AS|AI|AO|AP, str_C7EB7D81F91BE0A5, "plass ")
+SUBS(AR|AT|AN|AI|AO|AP, str_9421FD7057EC3479, "glum ")
+SUBS(AR|RGT|AT|AN|AI|AO|AP, str_2CB95DC376B85715, "mig ")
+SUBS(AR|AA|AS|AT|AN|AI, str_675E272AB3F66F0B, "bak ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI, str_5105E1ED4EE07DAD, "kant ")
+SUBS(AR|AS|AE|AI|AO|AP, str_436EB2280846AFBA, "slippe ")
+SUBS(AR|RGT|AS|AE|AI|AO|AP, str_2B428695A66CFFA2, "pleiede ")
+SUBS(AR|AS|AE|AN|AO|AP, str_12BF12EEF13D6E95, "dom ")
+SUBS(AR|RGT|AS|AE|AN|AO|AP, str_03BC9D6CB8B3908A, "mod ")
+SUBS(AR|AA|AE|AT|AN|AI|AP, str_26E9D183E5DC1CEC, "varme ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_4F68B541639EDEFD, "marthe ")
+SUBS(AR|AA|AS|AT|AN|AI|AO, str_A1BF08CE77023301, "ansigt ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_6C2D114EB287C846, "langs ")
+SUBS(AR|AA|AE|AN|AI|AO|AP, str_473981551EFD6393, "amalie ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_15B3FA68E5B2A5AF, "lampen ")
+SUBS(AR|AA|AS|AE|AT|AN|AP, str_FD9C5088E67087F9, "fremmede ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_998AAA8FA0BD2EFA, "praesten ")
+SUBS(AR|AA|AS|AE|AT|AN|AO, str_84B545298327CD46, "dagen ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_17EB714C2539A733, "udenfor ")
+SUBS(AR|AA|AE|AT|AN|AI|AO, str_17CD626AEBE3C3D7, "tilbage ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_DEAE0E631215F7DA, "laenge ")
+SUBS(AR|AE|AT|AN|AI|AO|AP, str_E28487370C845A56, "temmelig ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_E2A0F7ED7FA741CA, "nemlig ")
+SUBS(AR|AS|AE|AT|AN|AI|AO, str_67E1DA9D0CFE08A6, "gjekk ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_8933F64483BB3D68, "igjen ")
+SUBS(AR|AA|AE|AT|AN|AO|AP, str_F4959725FF42EA5E, "form ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_C2CF32C587BF7039, "mange ")
+SUBS(AR|AA|AS|AE|AI|AO|AP, str_5E983D26AD532998, "selskap ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_DBE9C589EF0C7ECD, "plads ")
+SUBS(AR|AA|AS|AT|AI|AO|AP, str_E2DDD7FA1C4E3257, "slapt ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_25C96A14BEB45AC4, "kapital ")
+SUBS(AR|AA|AS|AT|AN|AO|AP, str_72BCBC6B67C84CC5, "smag ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_FFAE1393B428FE51, "magnus ")
+SUBS(AR|AA|AS|AN|AI|AO|AP, str_C2B7418B33310F97, "smal ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_F1E4A79945AA15C8, "koma ")
+SUBS(AR|AA|AS|AE|AN|AI|AO, str_91508723D13E50C2, "sjael ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_7D17F74FF1147EF0, "land ")
+SUBS(AR|AA|AS|AE|AN|AO|AP, str_92B49DE543A0FE87, "aasmund ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_99241769490F065E, "pause ")
+SUBS(AR|AA|AS|AE|AT|AI|AO, str_B874CB7A247D38E7, "aldrig ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_BFA9B4DA0A071FCE, "idag ")
+SUBS(AR|AS|AE|AT|AI|AO|AP, str_BCBFC8DF86BE653E, "spiller ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_EA2F32DA16BB8574, "krop ")
+SUBS(AR|AA|AT|AN|AI|AO|AP, str_41ABC456A5EF7C05, "gamal ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_E7F55670DBE46CD8, "opfatning ")
+SUBS(AR|AA|AS|AE|AT|AI|AP, str_D417C9470FA585D3, "skarpe ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_4F6C506138FB813D, "paris ")
+SUBS(AR|AS|AE|AT|AN|AO|AP, str_50CE1FBCCF8F0C87, "gjennem ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_9D7FD16BE042340E, "moder ")
+SUBS(AR|AS|AE|AN|AI|AO|AP, str_F874B4D22D07CD35, "smukke ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_C3072C8E402D9AF0, "komme ")
+SUBS(AR|AS|AT|AN|AI|AO|AP, str_1B4E5EF4EEBE2A23, "smukt ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_A2E95332F90A605E, "punkt ")
+SUBS(AR|AA|AE|AT|AI|AO|AP, str_58DBAC3080F43A2C, "april ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_14CE87608C69A9E7, "opgave ")
+SUBS(AR|AA|AS|AE|AN|AI|AP, str_283CDFAB45CB688D, "aminda ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_65630D299B492DBA, "maaske ")
+SUBS(AR|AA|AS|AE|AT|AN|AI, str_E58EBBCB29EC30ED, "vand ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_3E3C52395DF34DEA, "havde ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_3100B6504E408AF8, "ganske ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_641EBB3888B96B29, "landet ")
+SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_6A3C132D331BE48F, "sprak- ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_E4B4237662F98075, "kapitel ")
+SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_983BB9490F1B54AF, "sprang ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_525170CB0DE5F109, "majoren ")
+SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_30CB1E9A4531010A, "stockmann ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_AE887234BAEDACCA, "langsomt ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_2B7AC670F25AD6AB, "skarphedin ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_2DD2C51B8291C701, "maerke ")
+SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_9D99E681CE81731E, "smilte ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_2286C79D95E0BDDA, "kommer ")
+SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_809202FFCE5E1F57, "gamle ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_1C42E8C388890F53, "maelte ")
+SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_CEB3DC4E08870198, "allesammen ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_7C4D116A0E83A9CF, "hjaelp ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_B622BC891E1EA930, "bokselskap ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_4AD5B79509B5AD19, "litteraturselskap ")
diff --git a/keyboards/gboards/dicts/aset/pl-keymap.def b/keyboards/gboards/dicts/aset/pl-keymap.def
new file mode 100644
index 0000000000..2105c72e14
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/pl-keymap.def
@@ -0,0 +1,391 @@
+// This file is automatically generated. Do not edit it!
+
+PRES(AI, KC_I)
+PRES(AE, KC_E)
+PRES(AS, KC_S)
+PRES(AO, KC_O)
+PRES(AP, KC_P)
+PRES(AT, KC_T)
+PRES(AN, KC_N)
+PRES(AA, KC_A)
+PRES(AE|AN, KC_Y)
+PRES(AS|AT, KC_C)
+KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END})
+PRES(AT|AP, KC_BSPC)
+PRES(AI|AO, KC_L)
+PRES(AA|AT, KC_F)
+PRES(AE|AP, KC_QUOT)
+PRES(AN|AI, KC_H)
+PRES(AA|AP, KC_QUOT)
+PRES(AS|AE, KC_D)
+PRES(AE|AT, KC_R)
+PRES(AA|AN, KC_Q)
+PRES(AT|AN, KC_B)
+PRES(AE|AO, KC_MINS)
+PRES(AA|AI, KC_Z)
+PRES(AN|AP, KC_M)
+PRES(AS|AO, KC_DOT)
+PRES(AS|AN, KC_J)
+PRES(AO|AP, KC_SCLN)
+PRES(AA|AE, KC_X)
+KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END})
+KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END})
+PRES(AS|AI, KC_K)
+PRES(AT|AI, KC_V)
+PRES(AA|AS, KC_W)
+PRES(AN|AO, KC_U)
+PRES(AT|AO, KC_G)
+PRES(AE|AI, KC_COMM)
+SUBS(AR|AE|AI|AP, str_A491E07566DCBCCE, "pie ")
+SUBS(AR|AE|AN|AO, str_E429BF3EE734FF3A, "you ")
+SUBS(AR|AA|AT|AN, str_BC666593D4A4C03F, "ant ")
+SUBS(AR|AE|AT|AP, str_342F8CACA85F0AD6, "per ")
+SUBS(AR|AT|AN|AI, str_F1550476BF0CE003, "bi ")
+SUBS(AR|AS|AI|AP, str_0D73B887B19DE5E2, "spi ")
+SUBS(AR|AI|AO|AP, str_88B19184FF89676C, "pol ")
+SUBS(AR|AN|AI|AO, str_161D2E58C581072B, "oni ")
+SUBS(AR|AA|AE|AN, str_6ED1301D90276771, "aye ")
+SUBS(AR|AS|AE|AT, str_588356397058DF85, "rece ")
+SUBS(AR|AE|AN|AI, str_9921484B6D464113, "nie ")
+SUBS(AR|AS|AT|AO, str_2AE88837B413EF66, "co ")
+SUBS(AR|AA|AS|AT, str_F474D01C34F98813, "stas ")
+PRES(AN|AI|AO|AP, KC_ENT)
+SUBS(AR|AA|AS|AP, str_467C897077B58F08, "pas ")
+SUBS(AR|AS|AT|AN, str_FE14BF055E2C7052, "tj ")
+SUBS(AR|AT|AO|AP, str_028BB7B551A4BD43, "pot ")
+SUBS(AR|AS|AO|AP, str_82274D54E6521B8A, "spo ")
+SUBS(AR|AT|AI|AP, str_3485B67E8E69F0E2, "itp ")
+SUBS(AR|AN|AI|AP, str_DD31FA4C91A58242, "mi ")
+SUBS(AR|AA|AS|AE, str_AEA81051C91270E9, "dwa ")
+SUBS(AR|AA|AE|AO, str_AB819235D216611C, "-a ")
+SUBS(AR|AN|AO|AP, str_2CDB1FF9C007065E, "mu ")
+SUBS(AR|AA|AE|AT, str_C1FED2185FB7D60F, "ar ")
+SUBS(AR|AE|AI|AO, str_B186DE4E1BCC6BDE, "ile ")
+SUBS(AR|AA|AS|AE|AT, str_EC4EB91CB342E940, "serca ")
+SUBS(AR|AA|AS|AO|AP, str_6C29AC27296DA679, "psow ")
+SUBS(AR|AS|AE|AI|AP, str_6F968C7D36E5FB46, "pies ")
+SUBS(AR|AS|AE|AT|AP, str_D4E79D57ECF89EE4, "press ")
+SUBS(AR|AS|AT|AI|AP, str_2BC515A6311342A6, "pic ")
+SUBS(AR|AE|AT|AN|AP, str_8F5B998AF340E04A, "tym ")
+SUBS(AR|AA|AE|AO|AP, str_753E0EA72488E92A, "poppea ")
+SUBS(AR|AE|AN|AI|AO, str_9A3D75FCA3F72BD8, "-nie ")
+SUBS(AR|AE|AT|AO|AP, str_EB50CC50FD89B4E1, "popr ")
+SUBS(AR|AS|AT|AO|AP, str_CB532D5DED67E46B, "stop ")
+SUBS(AR|AT|AI|AO|AP, str_29389FBA187AC95B, "plot ")
+SUBS(AR|AA|AN|AO|AP, str_675C6B89B793CD03, "panu ")
+SUBS(AR|AE|AT|AI|AP, str_B29260442498350B, "prie ")
+SUBS(AR|AE|AN|AO|AP, str_5F1CC41FEB0BB428, "open ")
+SUBS(AR|AT|AN|AI|AP, str_168886128C6CCE68, "mit ")
+SUBS(AR|AS|AT|AN|AP, str_6B0C78D6F9C44972, "tms ")
+SUBS(AR|AS|AI|AO|AP, str_6FF05C990E42FA88, "polski ")
+SUBS(AR|AE|AN|AI|AP, str_3825F1F13BE93849, "mnie ")
+SUBS(AR|AE|AI|AO|AP, str_5BAADB551C215537, "pole ")
+SUBS(AR|AS|AE|AN, str_75C24596AEB01E0F, "syn ")
+SUBS(AR|RGT|AS|AE|AN, str_7F8A878948419A08, "jej ")
+SUBS(AR|AS|AI|AO, str_A102081D29DBE99A, "sil ")
+SUBS(AR|RGT|AS|AI|AO, str_7F0B7D0481DBB4DB, "okolo ")
+SUBS(AR|AS|AE|AI, str_E58DC3AAD5620A93, "sie ")
+SUBS(AR|RGT|AS|AE|AI, str_A1A4E3A00C59C039, "ide ")
+SUBS(AR|AA|AN|AO, str_96310C678E194B46, "aon ")
+SUBS(AR|RGT|AA|AN|AO, str_E1BCA9513A9FBB4D, "ona ")
+SUBS(AR|AS|AN|AI, str_55BA44F3ECCF2160, "sni ")
+SUBS(AR|RGT|AS|AN|AI, str_E9D65B1F0CC7B588, "his ")
+SUBS(AR|AS|AN|AO, str_7412E38D9D55C2DC, "su ")
+SUBS(AR|RGT|AS|AN|AO, str_6E23CC4BFF56B58C, "jo ")
+SUBS(AR|AT|AI|AO, str_64C134863F91CBBF, "gi ")
+SUBS(AR|RGT|AT|AI|AO, str_82C52922742C8BCA, "ito ")
+SUBS(AR|AT|AN|AO, str_48542059A4690B7A, "tu ")
+SUBS(AR|RGT|AT|AN|AO, str_36A8BF615FFBF261, "obu ")
+SUBS(AR|AA|AS|AI, str_52ECEE9A713C2443, "zas ")
+SUBS(AR|RGT|AA|AS|AI, str_423FC7030B57068F, "ka ")
+SUBS(AR|AA|AS|AN, str_C87E02F3A5F27D9B, "aja ")
+SUBS(AR|RGT|AA|AS|AN, str_16D6BE915787F782, "ja ")
+SUBS(AR|AA|AN|AP, str_3D72E248EAC8A4B1, "apan ")
+SUBS(AR|RGT|AA|AN|AP, str_04B8207B25B0547B, "pan ")
+SUBS(AR|AS|AE|AO, str_16AE4BE38D2F26C0, "do ")
+SUBS(AR|RGT|AS|AE|AO, str_4BBC015B2B32DD62, "od ")
+SUBS(AR|AE|AT|AN, str_39EAEC33BC5439E6, "ten ")
+SUBS(AR|RGT|AE|AT|AN, str_86CBD141F40A0963, "net ")
+SUBS(AR|AA|AE|AI, str_4D4206C98723FE7F, "ze ")
+SUBS(AR|RGT|AA|AE|AI, str_F96D1FD4510B04BB, "ize ")
+SUBS(AR|AA|AS|AO, str_CBD1BA8947756219, "wo ")
+SUBS(AR|RGT|AA|AS|AO, str_718DDA8AD1E6441F, "ow ")
+SUBS(AR|AA|AT|AO, str_E8428C5D5071FB17, "ato ")
+SUBS(AR|RGT|AA|AT|AO, str_BF38370C83727D39, "of ")
+SUBS(AR|AA|AI|AO, str_E4AC71C68B795F6B, "zal ")
+SUBS(AR|RGT|AA|AI|AO, str_7E7904D7326BCF29, "la ")
+SUBS(AR|AE|AT|AO, str_D6BC93C137A0DDC1, "tego ")
+SUBS(AR|RGT|AE|AT|AO, str_0F66D9A64D728704, "-to ")
+SUBS(AR|AS|AT|AI, str_A5BC7DE4E3DC110E, "ci ")
+SUBS(AR|RGT|AS|AT|AI, str_32F2AE7B4D81A039, "isc ")
+SUBS(AR|AE|AT|AI, str_58BE655F23750BE2, "tie ")
+SUBS(AR|RGT|AE|AT|AI, str_D1DCEFF648227DE8, "ir ")
+SUBS(AR|AA|AN|AI, str_FEA2CC9886A11B4C, "ani ")
+SUBS(AR|RGT|AA|AN|AI, str_2F61D71797033A3B, "niz ")
+SUBS(AR|AE|AN|AP, str_73C7878926E85D22, "eme ")
+SUBS(AR|RGT|AE|AN|AP, str_A0AA5B74C096E40B, "my ")
+SUBS(AR|AA|AT|AI, str_C4ED1C3C34714250, "tai ")
+SUBS(AR|RGT|AA|AT|AI, str_D7978D4AE69E4592, "if ")
+SUBS(AR|AA|AS|AT|AI|AO, str_CD283EBD75315D80, "glowa ")
+SUBS(AR|AA|AN|AI|AO|AP, str_D1BBA15D26D271D6, "mial ")
+SUBS(AR|AA|AS|AT|AN|AI, str_953D4FFBBB45C0D6, "znich ")
+SUBS(AR|AA|AS|AE|AO|AP, str_0615F92751016E17, "powod ")
+SUBS(AR|AA|AS|AE|AI|AO, str_63F5DCD514DD9FD7, "dla ")
+SUBS(AR|AE|AT|AI|AO|AP, str_CA68B30D2A3E4CA7, "piotr ")
+SUBS(AR|AA|AE|AT|AO|AP, str_78B3E4A5BEFCCF86, "pora ")
+SUBS(AR|AS|AT|AI|AO|AP, str_24DAD2E9363385BD, "pociski ")
+SUBS(AR|AE|AN|AI|AO|AP, str_67481541F34CE2FC, "mieli ")
+SUBS(AR|AA|AT|AN|AI|AP, str_69834F7A15E3E249, "itam ")
+SUBS(AR|AA|AT|AI|AO|AP, str_2C31D8D65013108B, "filip ")
+SUBS(AR|AA|AE|AN|AO|AP, str_07A41DCCEB013EB0, "-pan ")
+SUBS(AR|AS|AT|AN|AI|AP, str_EB589FD49B0AF7DA, "mscic ")
+SUBS(AR|AA|AS|AE|AT|AI, str_43849ADF8911F81B, "wiec ")
+SUBS(AR|AE|AT|AI|AO, str_25898EFE2F007763, "teorii ")
+SUBS(AR|RGT|AE|AT|AI|AO, str_5C97D4C96250D0DD, "ligie ")
+SUBS(AR|AE|AT|AN|AO, str_EF307FC773D273F8, "gory ")
+SUBS(AR|RGT|AE|AT|AN|AO, str_FBF5946940EEEFAE, "nero ")
+SUBS(AR|AA|AE|AT|AP, str_2903C29B27FA6DB7, "tarp ")
+SUBS(AR|RGT|AA|AE|AT|AP, str_EBDCC5E102538DD2, "pare ")
+SUBS(AR|AT|AN|AI|AO, str_7749EC7C4DCE5D35, "buvo ")
+SUBS(AR|RGT|AT|AN|AI|AO, str_2A573CE3FF091D1A, "lub ")
+SUBS(AR|AS|AN|AI|AO, str_2598029A6FC1FB75, "skoku ")
+SUBS(AR|RGT|AS|AN|AI|AO, str_4474A5BFA5EB3EF5, "ku ")
+SUBS(AR|AA|AI|AO|AP, str_D42B08D32AFC806C, "zlapal ")
+SUBS(AR|RGT|AA|AI|AO|AP, str_6891D94BA9696461, "poza ")
+SUBS(AR|AA|AT|AI|AP, str_E45E0E1FFA358289, "taip ")
+SUBS(AR|RGT|AA|AT|AI|AP, str_0F023B2A672E572C, "pati ")
+SUBS(AR|AS|AE|AO|AP, str_3137CACB06726B3D, "spod ")
+SUBS(AR|RGT|AS|AE|AO|AP, str_7F10168D0097DB0A, "pod ")
+SUBS(AR|AA|AE|AI|AP, str_9D5B2246A9A44C04, "apie ")
+SUBS(AR|RGT|AA|AE|AI|AP, str_46C7F3F152D77D2F, "papieza ")
+SUBS(AR|AA|AS|AE|AP, str_8012C8AD363ECD15, "wpada ")
+SUBS(AR|RGT|AA|AS|AE|AP, str_D8E7C7FFB71BBC84, "pada ")
+SUBS(AR|AA|AE|AI|AO, str_DB017B313F911B03, "ale ")
+SUBS(AR|RGT|AA|AE|AI|AO, str_EC58D2F8A88F5A23, "lezal ")
+SUBS(AR|AS|AN|AI|AP, str_216D0257CB4F1198, "spij ")
+SUBS(AR|RGT|AS|AN|AI|AP, str_ADA4AB22469B2792, "kim ")
+SUBS(AR|AA|AS|AN|AP, str_020E794D3DE91D12, "sam ")
+SUBS(AR|RGT|AA|AS|AN|AP, str_697ABB49F35D04C1, "maja ")
+SUBS(AR|AS|AE|AI|AO, str_FFA102081D29DBE9, "sile ")
+SUBS(AR|RGT|AS|AE|AI|AO, str_312A2E7E56737AFE, "like ")
+SUBS(AR|AA|AE|AT|AI, str_8E16FDEB3B7BD15E, "teraz ")
+SUBS(AR|RGT|AA|AE|AT|AI, str_24EDFFEA3C1B8914, "iteraz ")
+SUBS(AR|AA|AE|AN|AI, str_67E6E3E49740D9E4, "zenie ")
+SUBS(AR|RGT|AA|AE|AN|AI, str_5E352CCDA18A8397, "nanie ")
+SUBS(AR|AA|AE|AT|AO, str_DAE84F2729ACCE2B, "for ")
+SUBS(AR|RGT|AA|AE|AT|AO, str_EB5EB1EA9EC091DC, "-ato ")
+SUBS(AR|AA|AT|AN|AI, str_DA20B440A7186A4B, "that ")
+SUBS(AR|RGT|AA|AT|AN|AI, str_F0766381B3230F6C, "izba ")
+SUBS(AR|AA|AS|AI|AP, str_CF010BA70501908F, "zapas ")
+SUBS(AR|RGT|AA|AS|AI|AP, str_1693E1BD8853EA38, "kaip ")
+SUBS(AR|AS|AT|AN|AO, str_3973DE5EE1634B28, "boju ")
+SUBS(AR|RGT|AS|AT|AN|AO, str_7EDA07DE5F6587D0, "noc ")
+SUBS(AR|AA|AS|AN|AI, str_5A191BD0D3B5E0B0, "wina ")
+SUBS(AR|RGT|AA|AS|AN|AI, str_0DD9825597AB1FD6, "jak ")
+SUBS(AR|AA|AE|AT|AN, str_5266192C1C4A0C53, "aby ")
+SUBS(AR|RGT|AA|AE|AT|AN, str_6C501A5B37F57C14, "nate ")
+SUBS(AR|AA|AT|AI|AO, str_54FF88B465DDE41C, "zato ")
+SUBS(AR|RGT|AA|AT|AI|AO, str_39A15AB60A930844, "lat ")
+SUBS(AR|AA|AT|AN|AO, str_BA8EB1FCD8D7F309, "boga ")
+SUBS(AR|RGT|AA|AT|AN|AO, str_6F75AB0560AB6029, "nato ")
+SUBS(AR|AS|AE|AT|AN, str_A099E61174562F44, "byc ")
+SUBS(AR|RGT|AS|AE|AT|AN, str_1536985B9146BCC8, "jest ")
+SUBS(AR|AS|AN|AO|AP, str_49C2B811AEA32933, "spoj ")
+SUBS(AR|RGT|AS|AN|AO|AP, str_7B49EFB61062D284, "moj ")
+SUBS(AR|AA|AS|AT|AP, str_75C0F40E20635976, "spac ")
+SUBS(AR|RGT|AA|AS|AT|AP, str_71BC2B4C61432D58, "pats ")
+SUBS(AR|AS|AE|AN|AO, str_FEE71AEABD01BE00, "synu ")
+SUBS(AR|RGT|AS|AE|AN|AO, str_E011627E21CDE5CA, "jedno ")
+SUBS(AR|AT|AN|AO|AP, str_C7B05810B9878F2F, "tom ")
+SUBS(AR|RGT|AT|AN|AO|AP, str_16573C5F75ACCF57, "potu ")
+SUBS(AR|AS|AE|AT|AO, str_E35488D14F1A1AE5, "dosc ")
+SUBS(AR|RGT|AS|AE|AT|AO, str_BB03C320B8AC9817, "odtego ")
+SUBS(AR|AA|AS|AE|AN, str_C1FDC4AB8597A676, "and ")
+SUBS(AR|RGT|AA|AS|AE|AN, str_3A2D391B7974B59B, "nad ")
+SUBS(AR|AS|AE|AT|AI, str_308289549DD8EB29, "cie ")
+SUBS(AR|RGT|AS|AE|AT|AI, str_32CED4C220D5C898, "itd ")
+SUBS(AR|AS|AE|AN|AP, str_5A54D374BBFA01F0, "dym ")
+SUBS(AR|RGT|AS|AE|AN|AP, str_5987DD037108FF0E, "jednym ")
+SUBS(AR|AA|AT|AN|AP, str_BF3DDFB8CBFE1C63, "tam ")
+SUBS(AR|RGT|AA|AT|AN|AP, str_06AABBFC9BF9658F, "mat ")
+SUBS(AR|AA|AS|AT|AN, str_B6B0791766FC5360, "stan ")
+SUBS(AR|RGT|AA|AS|AT|AN, str_FA78055C68B5A3B0, "jac ")
+SUBS(AR|AS|AT|AN|AI, str_3A08E259A2172D4A, "bci ")
+SUBS(AR|RGT|AS|AT|AN|AI, str_A2BD28473653B4A5, "ich ")
+SUBS(AR|AS|AE|AN|AI, str_B164BA3889B2FB9E, "she ")
+SUBS(AR|RGT|AS|AE|AN|AI, str_50C615FCB27CF013, "kiedy ")
+SUBS(AR|AA|AS|AI|AO, str_8341D8ECCB498083, "slowa ")
+SUBS(AR|RGT|AA|AS|AI|AO, str_A31489C287CF556B, "kilka ")
+SUBS(AR|AS|AT|AI|AO, str_08FB9B842F110E0D, "glos ")
+SUBS(AR|RGT|AS|AT|AI|AO, str_FCD2EBB756F8505C, "kto ")
+SUBS(AR|AA|AS|AN|AO, str_A3C468F489BEB8D7, "swoja ")
+SUBS(AR|RGT|AA|AS|AN|AO, str_08B751B76E493B91, "jau ")
+SUBS(AR|AE|AT|AN|AI, str_0C571CCD7FA5FAEF, "the ")
+SUBS(AR|RGT|AE|AT|AN|AI, str_8BA7632DC4B89BB1, "her ")
+SUBS(AR|AA|AN|AI|AO, str_4065901F0DBDE9E5, "znalazl ")
+SUBS(AR|RGT|AA|AN|AI|AO, str_D76667AF53CFE716, "uz ")
+SUBS(AR|AA|AS|AE|AI, str_1150B261034F59C2, "dzis ")
+SUBS(AR|RGT|AA|AS|AE|AI, str_F9095D7BADB76F7C, "kad ")
+SUBS(AR|AA|AE|AN|AP, str_7E02E71632E36E12, "amy ")
+SUBS(AR|RGT|AA|AE|AN|AP, str_8ADBFF719B6887DA, "max ")
+SUBS(AR|AA|AS|AT|AO, str_D7267ED8F25FFCD6, "gotow ")
+SUBS(AR|RGT|AA|AS|AT|AO, str_6480A413B01E419E, "owoc ")
+SUBS(AR|AA|AS|AT|AI, str_30692A6B9C31E20B, "tak ")
+SUBS(AR|RGT|AA|AS|AT|AI, str_E6D7BAA9422C1C21, "itak ")
+SUBS(AR|AA|AS|AE|AO, str_61D192A51AFCC5F7, "woda ")
+SUBS(AR|RGT|AA|AS|AE|AO, str_FEE35575A17EE85A, "owe ")
+SUBS(AR|AA|AN|AI|AP, str_E7FD4D95E0ECE2F2, "zanim ")
+SUBS(AR|RGT|AA|AN|AI|AP, str_96B68E3CE631491F, "pani ")
+SUBS(AR|AA|AS|AT|AN|AI|AO, str_E0E60930BCE3C73F, "chwili ")
+SUBS(AR|AA|AE|AT|AI|AO|AP, str_FFA2CDACD468A7C0, "przeto ")
+SUBS(AR|AS|AE|AI|AO|AP, str_BF4D547DC946D1FF, "dopoki ")
+SUBS(AR|RGT|AS|AE|AI|AO|AP, str_76706733607D84E8, "polskie ")
+SUBS(AR|AA|AS|AE|AT|AO, str_17D5070CA583C13A, "wsrod ")
+SUBS(AR|RGT|AA|AS|AE|AT|AO, str_121CE7FEF45F2B65, "otwarte ")
+SUBS(AR|AA|AS|AE|AT|AP, str_0830B0BEC335F9D0, "sprawe ")
+SUBS(AR|RGT|AA|AS|AE|AT|AP, str_897C8A1BC32867ED, "prawda ")
+SUBS(AR|AA|AS|AT|AN|AO, str_7EC4019BF7A27A2C, "soba ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO, str_39EF976E58C0F7CA, "usta ")
+SUBS(AR|AA|AS|AT|AO|AP, str_1C4343006ED44480, "stopa ")
+SUBS(AR|RGT|AA|AS|AT|AO|AP, str_9ADB6A5A7359C688, "postac ")
+SUBS(AR|AA|AT|AN|AI|AO, str_30C04EEB2550CE82, "albo ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO, str_35AFA5EDA12A3932, "ognia ")
+SUBS(AR|AA|AS|AN|AI|AP, str_571D3A7C1C0FCA32, "wnim ")
+SUBS(AR|RGT|AA|AS|AN|AI|AP, str_C065D83192F92CFE, "masz ")
+SUBS(AR|AE|AT|AN|AI|AP, str_A3BFC273E7154C1F, "tymi ")
+SUBS(AR|RGT|AE|AT|AN|AI|AP, str_59E509482D5D1E60, "itym ")
+SUBS(AR|AA|AT|AN|AO|AP, str_0329483B37CC7D79, "toma ")
+SUBS(AR|RGT|AA|AT|AN|AO|AP, str_04735497277598FD, "moga ")
+SUBS(AR|AS|AE|AT|AO|AP, str_BADEEB86F71663E4, "sporo ")
+SUBS(AR|RGT|AS|AE|AT|AO|AP, str_8EF16902DCF50F29, "prosto ")
+SUBS(AR|AA|AE|AT|AN|AI, str_689683CE3D2F8C9C, "bez ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI, str_D6EDA1112FE57CE1, "nieraz ")
+SUBS(AR|AT|AN|AI|AO|AP, str_FE22695BBC5DD558, "tlum ")
+SUBS(AR|RGT|AT|AN|AI|AO|AP, str_3B2C5CA4244325C7, "mogl ")
+SUBS(AR|AA|AE|AT|AI|AO, str_A8D00D9E20745330, "zeto ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO, str_E63D2D54BB2E8D75, "oraz ")
+SUBS(AR|AS|AT|AN|AO|AP, str_66243C94F3B2B5DB, "sposob ")
+SUBS(AR|RGT|AS|AT|AN|AO|AP, str_3FC62401ECDB318D, "moc ")
+SUBS(AR|AA|AS|AE|AI|AP, str_AEDE320028514B19, "spiew ")
+SUBS(AR|RGT|AA|AS|AE|AI|AP, str_B0A3465B74523EEE, "pisze ")
+SUBS(AR|AA|AS|AE|AN|AP, str_8C8A288B208E0240, "samym ")
+SUBS(AR|RGT|AA|AS|AE|AN|AP, str_4EAB49C2A4C5D31E, "pewna ")
+SUBS(AR|AS|AE|AT|AN|AO, str_B8F1E4D51EDB5842, "gdy ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO, str_399FF63D67EA14AC, "jego ")
+SUBS(AR|AS|AE|AT|AN|AI, str_681C096596CB803C, "tych ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI, str_1C753E658A0EBF30, "niech ")
+SUBS(AR|AA|AE|AT|AN|AO, str_223F6F53F5A7F4CF, "rano ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO, str_F6D7468D7894459B, "natury ")
+SUBS(AR|AS|AN|AI|AO|AP, str_2E0D541C604B98DA, "spokoj ")
+SUBS(AR|RGT|AS|AN|AI|AO|AP, str_D374CC34653EE315, "musi ")
+SUBS(AR|AS|AT|AN|AI|AO, str_FEF596EEB3395818, "choc ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO, str_850A0D84D379C6A5, "obok ")
+SUBS(AR|AA|AS|AT|AI|AP, str_BF8B0E117F8D8B9C, "czapka ")
+SUBS(AR|RGT|AA|AS|AT|AI|AP, str_587D68CFFCA1B058, "ptak ")
+SUBS(AR|AA|AE|AN|AI|AP, str_99BF132245A8AE10, "ziemi ")
+SUBS(AR|RGT|AA|AE|AN|AI|AP, str_FE046E2117493F57, "panie ")
+SUBS(AR|AE|AT|AN|AI|AO, str_7855793FAD2584F7, "bylo ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO, str_E172CE6A022BC486, "niego ")
+SUBS(AR|AS|AE|AT|AN|AP, str_77ED269248036BC2, "system ")
+SUBS(AR|RGT|AS|AE|AT|AN|AP, str_74BA4214B8CBF536, "jestem ")
+SUBS(AR|AS|AE|AT|AI|AO, str_11993E34A1021FA7, "drogi ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO, str_3447AD2799AF9B28, "ktore ")
+SUBS(AR|AA|AS|AN|AO|AP, str_C2EA6FBB32FA4604, "samo ")
+SUBS(AR|RGT|AA|AS|AN|AO|AP, str_81C55989B07D18A6, "moja ")
+SUBS(AR|AS|AE|AN|AI|AP, str_0EB1CF9B9FF00F0B, "siedem ")
+SUBS(AR|RGT|AS|AE|AN|AI|AP, str_A308BC1B9CDDE5C7, "mniej ")
+SUBS(AR|AA|AS|AE|AN|AO, str_D814AB707631E6E4, "swoje ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO, str_79D4722D91A47364, "nowe ")
+SUBS(AR|AA|AE|AT|AI|AP, str_F7ED3CBF861705BD, "rzepa ")
+SUBS(AR|RGT|AA|AE|AT|AI|AP, str_DA38DE0EC076829E, "przez ")
+SUBS(AR|AA|AS|AI|AO|AP, str_B12C64BA71DE502B, "wpol ")
+SUBS(AR|RGT|AA|AS|AI|AO|AP, str_9566333CE4E4FAA4, "powoli ")
+SUBS(AR|AE|AT|AN|AO|AP, str_11F24D6D9FF9EE48, "temu ")
+SUBS(AR|RGT|AE|AT|AN|AO|AP, str_BA76DF85B03272BE, "potem ")
+SUBS(AR|AS|AE|AN|AO|AP, str_4952204E14B44646, "domu ")
+SUBS(AR|RGT|AS|AE|AN|AO|AP, str_FA159A0D4FF24695, "moje ")
+SUBS(AR|AA|AS|AT|AN|AP, str_AFE8BE2B21D61832, "wacpan ")
+SUBS(AR|RGT|AA|AS|AT|AN|AP, str_D91BF87AF03501D6, "majac ")
+SUBS(AR|AS|AE|AN|AI|AO, str_0E4BE7BD4C8B5FF5, "sily ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO, str_AEAB8882710E1973, "jesli ")
+SUBS(AR|AS|AE|AT|AI|AP, str_B1450A5A96F9EB99, "skiper ")
+SUBS(AR|RGT|AS|AE|AT|AI|AP, str_120D2D4567D69D0F, "piec ")
+SUBS(AR|AA|AE|AN|AI|AO, str_D73B8B89A11E7E69, "zony ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO, str_CBA39E01D46A5A40, "lzy ")
+SUBS(AR|AA|AS|AN|AI|AO, str_B4F893F17D5BFA60, "znowu ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO, str_22555D6D3659AB8F, "juz ")
+SUBS(AR|AA|AS|AE|AN|AI, str_E97D61333AD33EE0, "dzien ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI, str_E6B56EE21E79FD4F, "jednak ")
+SUBS(AR|AA|AS|AE|AT|AN, str_D71474D53A7860D2, "stary ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN, str_C15CBB0CC54B374B, "nawet ")
+SUBS(AR|AA|AE|AT|AN|AP, str_F458C645095A0346, "temat ")
+SUBS(AR|RGT|AA|AE|AT|AN|AP, str_484FFD0C3F8C22CE, "natym ")
+SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_F5595FF4F9D28058, "prosze ")
+SUBS(AR|AA|AS|AE|AN|AO|AP, str_11A72F1C959137D7, "wdomu ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_AE0D097AA673151C, "mowy ")
+SUBS(AR|AA|AS|AE|AT|AO|AP, str_FB8C0CCC698B87BD, "wprost ")
+SUBS(AR|RGT|AA|AS|AE|AT|AO|AP, str_185FB4AA24BE7765, "prawo ")
+SUBS(AR|AA|AS|AE|AT|AN|AI, str_1C179D8B06202BEC, "czy ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_7C777BA8CD2CD28A, "jeszcze ")
+SUBS(AR|AS|AE|AT|AN|AO|AP, str_06CAAA8DCEDDD6C9, "gdybym ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_F04F7964DA98755D, "prostu ")
+SUBS(AR|AS|AE|AT|AN|AI|AP, str_2FEEED214995A8CB, "smierc ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_DB1DD65B51E9B606, "miec ")
+SUBS(AR|AS|AE|AT|AN|AI|AO, str_6BCDC45D27DD88BE, "tylko ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_C5AD4892C80D1F34, "ktory ")
+SUBS(AR|AA|AS|AE|AI|AO|AP, str_BF4DC09E3508702F, "wpadl ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_4DED92BC9AC3F72A, "powiedzial ")
+SUBS(AR|AA|AS|AT|AN|AO|AP, str_148B0ED2C8E528AC, "smutna ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_1FBEF6A287826893, "mnostwo ")
+SUBS(AR|AA|AE|AT|AN|AO|AP, str_522EE9C819BBCA09, "forma ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_385D182E8B2F91A6, "megan ")
+SUBS(AR|AA|AS|AE|AN|AI|AP, str_3B71E80521C0BA15, "wiem ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_A9A065DCE03C49A1, "miedzy ")
+SUBS(AR|AA|AS|AE|AN|AI|AO, str_D4FE000DEB4B55F5, "dalej ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_987B33B10F364AD9, "ludzi ")
+SUBS(AR|AA|AE|AT|AN|AI|AP, str_4980BCB04914E44D, "razem ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_9E07749BBF60F5CE, "przy ")
+SUBS(AR|AA|AS|AT|AN|AI|AP, str_CF7E18B97298DBE3, "zamiast ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_A9DFA8D9FDDB15AD, "matka ")
+SUBS(AR|AA|AE|AN|AI|AO|AP, str_AC996A78C2294199, "zupelnie ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_DA51E1D160D9115B, "moze ")
+SUBS(AR|AA|AS|AT|AI|AO|AP, str_F7370E9D6547553C, "spotkac ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_F58FBC3716CBC4CB, "poczal ")
+SUBS(AR|AS|AT|AN|AI|AO|AP, str_E730ED054409365F, "chlop ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_4AD46FC909BE0083, "milosc ")
+SUBS(AR|AE|AT|AN|AI|AO|AP, str_11F77D3324142616, "bylem ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_A8A6AF2E2890A870, "moglem ")
+SUBS(AR|AA|AS|AE|AT|AN|AO, str_335BC810370B5E80, "dobra ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_D73D21EACF66876B, "justyna ")
+SUBS(AR|AS|AE|AN|AI|AO|AP, str_BE0A1A51FAE9438B, "spokojnie ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_C59DBE92B191B3C4, "lepiej ")
+SUBS(AR|AA|AE|AT|AN|AI|AO, str_00A00BE505F4C6F9, "byla ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_9E2D58089420B53D, "nagle ")
+SUBS(AR|AA|AS|AN|AI|AO|AP, str_D28EA6CF6C5E4995, "swoim ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_DD5D1F24297C36F8, "mowil ")
+SUBS(AR|AA|AS|AE|AT|AI|AO, str_176E7D225AF0F28C, "gdzie ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_01E0AC99DA576DC0, "lecz ")
+SUBS(AR|AA|AS|AE|AT|AI|AP, str_92A119435FC9CE89, "wprawdzie ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_DF560DEC3994A6D9, "przed ")
+SUBS(AR|AA|AT|AN|AI|AO|AP, str_D83DF63ADE49E529, "galima ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_A2996D19E26D41C4, "mogla ")
+SUBS(AR|AA|AS|AE|AT|AN|AP, str_B6C66CB47D17D70D, "wtym ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_740872627B08089B, "naprawde ")
+SUBS(AR|AS|AE|AT|AI|AO|AP, str_C260090ACD1E2712, "dopiero ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_3E4446A236E69735, "predko ")
+SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_7C2323AA068D2942, "chlopak ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_16862140820A2B99, "mowic ")
+SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_D28F496BB90D5022, "zapytal ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_4F9D44B5EB4C2748, "potrzeba ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_B8E510C11F4DDD2B, "tymczasem ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_574683A673D00801, "przypis ")
+SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_D59AF32E612D0F1E, "samego ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_D898512EFFF7F322, "pewnego ")
+SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_4D1F6795712F4F0F, "widzialem ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_2DC01CC1CDC885FF, "pozniej ")
+SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_4B807319DDE29AD2, "glosem ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_42CA4D7EB0E630A7, "ktorym ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_02C8BBCB56F06802, "wszystko ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_86CE308D14D6110E, "oczy ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_B863B09C4E695B3F, "bowiem ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_53C973AE10A38D1D, "petroniusz ")
diff --git a/keyboards/gboards/dicts/aset/pt-keymap.def b/keyboards/gboards/dicts/aset/pt-keymap.def
new file mode 100644
index 0000000000..8bc5e31a04
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/pt-keymap.def
@@ -0,0 +1,398 @@
+// This file is automatically generated. Do not edit it!
+
+PRES(AS, KC_S)
+PRES(AA, KC_A)
+PRES(AI, KC_I)
+PRES(AN, KC_N)
+PRES(AE, KC_E)
+PRES(AO, KC_O)
+PRES(AP, KC_P)
+PRES(AT, KC_T)
+PRES(AS|AO, KC_DOT)
+PRES(AT|AO, KC_G)
+PRES(AE|AP, KC_QUOT)
+PRES(AA|AN, KC_Q)
+PRES(AO|AP, KC_SCLN)
+PRES(AN|AI, KC_H)
+KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END})
+PRES(AE|AI, KC_COMM)
+PRES(AA|AS, KC_W)
+PRES(AN|AO, KC_U)
+PRES(AT|AI, KC_V)
+PRES(AE|AT, KC_R)
+PRES(AN|AP, KC_M)
+PRES(AS|AT, KC_C)
+PRES(AS|AI, KC_K)
+PRES(AI|AO, KC_L)
+PRES(AE|AN, KC_Y)
+KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END})
+PRES(AA|AI, KC_Z)
+KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END})
+PRES(AA|AE, KC_X)
+PRES(AT|AP, KC_BSPC)
+PRES(AS|AN, KC_J)
+PRES(AA|AP, KC_QUOT)
+PRES(AA|AT, KC_F)
+PRES(AS|AE, KC_D)
+PRES(AE|AO, KC_MINS)
+PRES(AT|AN, KC_B)
+SUBS(AR|AS|AE|AI, str_BA01E476816FB907, "disse ")
+SUBS(AR|AA|AT|AN, str_C24BA9CC30FB290C, "tanta ")
+SUBS(AR|AT|AN|AI, str_C13C85985E26BFC4, "bit ")
+SUBS(AR|AA|AE|AT, str_0437C1EBD8E5369E, "era ")
+SUBS(AR|AA|AS|AE, str_6E5B393925FE64CE, "da ")
+SUBS(AR|AN|AO|AP, str_96877FFA56942058, "um ")
+SUBS(AR|AE|AO|AP, str_CC3E5A3303308465, "poe ")
+SUBS(AR|AA|AO|AP, str_B7966CC526170B14, "pao ")
+SUBS(AR|AS|AE|AP, str_8701C012ABF855B9, "pes ")
+SUBS(AR|AA|AT|AI, str_BAFADEA916A599C6, "vai ")
+SUBS(AR|AA|AE|AN, str_83396DA0D7927D05, "any ")
+SUBS(AR|AA|AS|AO, str_F68A4F1A95A9BD49, "sao ")
+SUBS(AR|AN|AI|AO, str_1034F6BB7A17B9DD, "olhou ")
+SUBS(AR|AE|AN|AI, str_C4D48E3111A94BAB, "he ")
+SUBS(AR|AA|AI|AP, str_38C2991671D8F57C, "pai ")
+SUBS(AR|AT|AO|AP, str_DE2E4C23273EE8E2, "topo ")
+SUBS(AR|AS|AT|AO, str_2D72329877AAC8B6, "gosto ")
+SUBS(AR|AA|AT|AP, str_4E64DC39CCCFB68B, "tapa ")
+SUBS(AR|AI|AO|AP, str_588F6A0B4B7F490A, "polo ")
+SUBS(AR|AS|AE|AT, str_7533AF731BE1BC8B, "ser ")
+SUBS(AR|AA|AS|AP, str_60CC9352D1FD34D7, "passa ")
+SUBS(AR|AS|AT|AI, str_14448AE0E61D1AED, "civis ")
+SUBS(AR|AE|AT|AP, str_D89F06941F4B44CE, "peter ")
+SUBS(AR|AA|AE|AO, str_AB819235D216611C, "-a ")
+SUBS(AR|AA|AS|AT, str_AEE6EBDC4ABDC3CD, "casa ")
+PRES(AN|AI|AO|AP, KC_ENT)
+SUBS(AR|AN|AI|AP, str_2F9CEC9D21E64B28, "mim ")
+SUBS(AR|AA|AS|AI, str_7B6254034666DEBB, "saia ")
+SUBS(AR|AS|AO|AP, str_BB2A8EBDA4A2BCF1, "posso ")
+SUBS(AR|AE|AN|AO|AP, str_74F9BE204413E051, "meu ")
+SUBS(AR|AA|AT|AI|AO, str_177813FF2C66EB30, "foi ")
+SUBS(AR|AS|AI|AO|AP, str_3CF1BF4E9A40E6AA, "pois ")
+SUBS(AR|AA|AS|AT|AN, str_36AE1C3C1BB7F46B, "tantas ")
+SUBS(AR|AA|AE|AN|AI, str_B0D068D005493603, "annie ")
+SUBS(AR|AE|AN|AI|AP, str_2A2F016FAA9B3070, "i'm ")
+SUBS(AR|AE|AN|AI|AO, str_B3DFF34C13426B88, "lhe ")
+SUBS(AR|AA|AE|AI|AP, str_4020E3E21A171F95, "peixe ")
+SUBS(AR|AA|AS|AI|AP, str_D44E5D8ED960FACD, "pais ")
+SUBS(AR|AA|AS|AE|AT, str_75DF9DA7D504F48F, "esta ")
+SUBS(AR|AS|AT|AN|AP, str_DE6CBE601C534F3D, "cm ")
+SUBS(AR|AS|AE|AI|AP, str_D369C5DC0DACB7CE, "pedi ")
+SUBS(AR|AS|AE|AT|AI, str_4E395F624AF132AD, "tivesse ")
+SUBS(AR|AE|AI|AO|AP, str_4C1F0DE14DF6E241, "pelo ")
+SUBS(AR|AA|AS|AT|AI, str_E9C99E1CFE322CD0, "vista ")
+SUBS(AR|AS|AE|AT|AO, str_318AFAF8CF406143, "todos ")
+SUBS(AR|AA|AS|AT|AO, str_D6139906E26C81C3, "caso ")
+SUBS(AR|AA|AS|AE|AO, str_9B9896941ABC7ABF, "dado ")
+SUBS(AR|AA|AT|AO|AP, str_4037EBCCD909B772, "pag ")
+SUBS(AR|AA|AN|AI, str_BF40C27E59DAAC7B, "ah ")
+SUBS(AR|RGT|AA|AN|AI, str_BF044DB5EE261598, "ha ")
+SUBS(AR|AA|AT|AO, str_4BB9E9EF63BEBC38, "tao ")
+SUBS(AR|RGT|AA|AT|AO, str_BF38370C83727D39, "of ")
+SUBS(AR|AE|AI|AO, str_272EFE1B7A38AC2F, "ele ")
+SUBS(AR|RGT|AE|AI|AO, str_BA18BADF84DB0986, "lei ")
+SUBS(AR|AA|AN|AO, str_71F6394BD16EE524, "ano ")
+SUBS(AR|RGT|AA|AN|AO, str_8A26C4FB2D8DF6C9, "nao ")
+SUBS(AR|AA|AI|AO, str_57703FBC3F00F956, "ali ")
+SUBS(AR|RGT|AA|AI|AO, str_7E7904D7326BCF29, "la ")
+SUBS(AR|AT|AI|AO, str_5B9BD401742B17DF, "tio ")
+SUBS(AR|RGT|AT|AI|AO, str_6168AC13AD887B2F, "logo ")
+SUBS(AR|AA|AS|AN, str_45A403A4960EE226, "san ")
+SUBS(AR|RGT|AA|AS|AN, str_16D6BE915787F782, "ja ")
+SUBS(AR|AA|AE|AI, str_B5C6868EBD0E9220, "xia ")
+SUBS(AR|RGT|AA|AE|AI, str_D2F95EA81F7C61D5, "ix ")
+SUBS(AR|AS|AE|AN, str_9CFD6F6C59053F15, "eyes ")
+SUBS(AR|RGT|AS|AE|AN, str_CC973B4210035154, "nesse ")
+SUBS(AR|AE|AN|AO, str_3CF92217D792ADB9, "eu ")
+SUBS(AR|RGT|AE|AN|AO, str_E429BF3EE734FF3A, "you ")
+SUBS(AR|AE|AT|AN, str_5E7FFBEBF6AB0C31, "entre ")
+SUBS(AR|RGT|AE|AT|AN, str_86CBD141F40A0963, "net ")
+SUBS(AR|AT|AN|AO, str_48542059A4690B7A, "tu ")
+SUBS(AR|RGT|AT|AN|AO, str_298D759206E85DAC, "notou ")
+SUBS(AR|AS|AI|AO, str_C9ADB25B4C37D131, "sol ")
+SUBS(AR|RGT|AS|AI|AO, str_A9A25720DD3EF6B7, "isso ")
+SUBS(AR|AS|AE|AO, str_16AE4BE38D2F26C0, "do ")
+SUBS(AR|RGT|AS|AE|AO, str_3005AB2C2310529F, "-se ")
+SUBS(AR|AA|AN|AP, str_F438C1279CCEB43D, "ama ")
+SUBS(AR|RGT|AA|AN|AP, str_2A907D456EBB3E24, "ma ")
+SUBS(AR|AE|AN|AP, str_B6C3042679BF7796, "em ")
+SUBS(AR|RGT|AE|AN|AP, str_5140BEC191346017, "me ")
+SUBS(AR|AE|AT|AI, str_B617CB13CF22666C, "ver ")
+SUBS(AR|RGT|AE|AT|AI, str_D1DCEFF648227DE8, "ir ")
+SUBS(AR|AS|AN|AO, str_F0B9D8D4E1BD5471, "sou ")
+SUBS(AR|RGT|AS|AN|AO, str_0341A6E60E56E199, "nos ")
+SUBS(AR|AE|AT|AO, str_20D7DB6356C0A844, "george ")
+SUBS(AR|RGT|AE|AT|AO, str_B97355B02DCE4543, "or ")
+SUBS(AR|AS|AN|AI, str_55863E4A819B49C1, "sin ")
+SUBS(AR|RGT|AS|AN|AI, str_E9D65B1F0CC7B588, "his ")
+SUBS(AR|AA|AS|AI|AO|AP, str_29103ED8CB64A6D7, "lapis ")
+SUBS(AR|AS|AE|AN|AO|AP, str_730CEFC84E43E909, "mesmo ")
+SUBS(AR|AS|AT|AN|AI|AP, str_A523540C97D0BDFB, "smith ")
+SUBS(AR|AA|AE|AN|AI|AP, str_1628448935D4E6CD, "menina ")
+SUBS(AR|AA|AS|AE|AT|AO, str_4E3C37722A0C3D73, "fosse ")
+SUBS(AR|AA|AS|AE|AT|AI, str_0BF4177DE6B0BAA1, "estava ")
+SUBS(AR|AT|AN|AO|AP, str_908755519640022F, "bom ")
+SUBS(AR|RGT|AT|AN|AO|AP, str_FBC0C68825BA3ED7, "ponto ")
+SUBS(AR|AS|AE|AN|AP, str_C373302FE1A4C7A3, "sem ")
+SUBS(AR|RGT|AS|AE|AN|AP, str_92C437930874C6F2, "meses ")
+SUBS(AR|AS|AN|AO|AP, str_7A83FEE54F908E5E, "som ")
+SUBS(AR|RGT|AS|AN|AO|AP, str_E1CD22283D20085C, "pousou ")
+SUBS(AR|AS|AE|AN|AI, str_B164BA3889B2FB9E, "she ")
+SUBS(AR|RGT|AS|AE|AN|AI, str_05662FF02834B11E, "keynes ")
+SUBS(AR|AS|AE|AI|AO, str_8AD641F2C57C0448, "eles ")
+SUBS(AR|RGT|AS|AE|AI|AO, str_A28152FE5B07DC04, "ido ")
+SUBS(AR|AA|AE|AI|AO, str_5CFE3D9F85B7F21C, "ela ")
+SUBS(AR|RGT|AA|AE|AI|AO, str_EF706E4ACB77221A, "lixo ")
+SUBS(AR|AA|AN|AO|AP, str_8CCDB3FD341FF633, "amo ")
+SUBS(AR|RGT|AA|AN|AO|AP, str_DD180EF391DDE2AB, "uma ")
+SUBS(AR|AE|AT|AN|AP, str_29779B9B38744BD2, "bem ")
+SUBS(AR|RGT|AE|AT|AN|AP, str_680AEAD7C557B390, "mente ")
+SUBS(AR|AA|AS|AO|AP, str_073BCCEBCAB4EC8E, "apos ")
+SUBS(AR|RGT|AA|AS|AO|AP, str_1839E188792C76D9, "passo ")
+SUBS(AR|AA|AE|AT|AO, str_CBCC5E35852A45F9, "agora ")
+SUBS(AR|RGT|AA|AE|AT|AO, str_10A7A601DE6C9DD5, "ora ")
+SUBS(AR|AE|AT|AI|AO, str_D9A393BE13567B65, "rio ")
+SUBS(AR|RGT|AE|AT|AI|AO, str_78EB02A73111AFAF, "livro ")
+SUBS(AR|AE|AT|AN|AO, str_86524E6ACDECD253, "gente ")
+SUBS(AR|RGT|AE|AT|AN|AO, str_367528D2539A9E0E, "outro ")
+SUBS(AR|AA|AS|AE|AN, str_7A765B9FE6BE7A80, "seja ")
+SUBS(AR|RGT|AA|AS|AE|AN, str_37C4A203E75175E9, "nada ")
+SUBS(AR|AA|AT|AN|AP, str_9C7BB48EBD7121E3, "fama ")
+SUBS(AR|RGT|AA|AT|AN|AP, str_84D6693F0314A756, "matt ")
+SUBS(AR|AA|AS|AN|AP, str_020E794D3DE91D12, "sam ")
+SUBS(AR|RGT|AA|AS|AN|AP, str_3AD00291CF91C488, "mas ")
+SUBS(AR|AA|AT|AN|AI, str_DC24F46DC56D0174, "tinha ")
+SUBS(AR|RGT|AA|AT|AN|AI, str_C05A9CA335749382, "havia ")
+SUBS(AR|AT|AI|AO|AP, str_5C160B9C40438458, "tipo ")
+SUBS(AR|RGT|AT|AI|AO|AP, str_C13BDF1DCA605739, "povo ")
+SUBS(AR|AS|AN|AI|AP, str_122C44A32A7CB6F5, "sim ")
+SUBS(AR|RGT|AS|AN|AI|AP, str_92AF4A68D7F14A59, "jim ")
+SUBS(AR|AS|AT|AO|AP, str_C397F170443D8EB3, "copo ")
+SUBS(AR|RGT|AS|AT|AO|AP, str_876C4D699D9E7557, "posto ")
+SUBS(AR|AA|AS|AE|AP, str_F5D8B6FDF8888805, "espada ")
+SUBS(AR|RGT|AA|AS|AE|AP, str_03B8E6DECF4617F1, "pesada ")
+SUBS(AR|AA|AS|AT|AP, str_53DD616AAFCCD0DA, "capa ")
+SUBS(AR|RGT|AA|AS|AT|AP, str_5C8A5086E8C1FD71, "pasta ")
+SUBS(AR|AA|AE|AT|AI, str_41B64C1A303CDA0A, "vez ")
+SUBS(AR|RGT|AA|AE|AT|AI, str_77E871A6659AC741, "iria ")
+SUBS(AR|AA|AE|AT|AN, str_A13CAC4178CE5DA9, "frente ")
+SUBS(AR|RGT|AA|AE|AT|AN, str_6C501A5B37F57C14, "nate ")
+SUBS(AR|AE|AT|AI|AP, str_8256E9932CEBED2F, "repetir ")
+SUBS(AR|RGT|AE|AT|AI|AP, str_BC7EF837C3357A72, "piper ")
+SUBS(AR|AA|AS|AN|AI, str_D0E3C0860E196C79, "sinais ")
+SUBS(AR|RGT|AA|AS|AN|AI, str_032E186F59C3226D, "haja ")
+SUBS(AR|AS|AE|AT|AN, str_FF9BFD2E4AF84687, "entender ")
+SUBS(AR|RGT|AS|AE|AT|AN, str_F0D1F896293F98F2, "neste ")
+SUBS(AR|AA|AE|AT|AP, str_7496CDB33B675524, "tapete ")
+SUBS(AR|RGT|AA|AE|AT|AP, str_900C0665FDDCD3E1, "para ")
+SUBS(AR|AS|AN|AI|AO, str_B7F7A29ED9549685, "sonhos ")
+SUBS(AR|RGT|AS|AN|AI|AO, str_9F6003682DD847B5, "olhos ")
+SUBS(AR|AE|AT|AN|AI, str_0C571CCD7FA5FAEF, "the ")
+SUBS(AR|RGT|AE|AT|AN|AI, str_39AD6C55CBFD2922, "neve ")
+SUBS(AR|AA|AI|AO|AP, str_63DD5D3893378E98, "apoio ")
+SUBS(AR|RGT|AA|AI|AO|AP, str_2F4B7C1FF9312713, "paola ")
+SUBS(AR|AS|AT|AN|AO, str_B158C081E4E6933F, "sob ")
+SUBS(AR|RGT|AS|AT|AN|AO, str_2105BA4B2B9F53F7, "junto ")
+SUBS(AR|AA|AS|AE|AI, str_F661EC259440B46B, "dia ")
+SUBS(AR|RGT|AA|AS|AE|AI, str_623021C4572AC297, "ideia ")
+SUBS(AR|AA|AN|AI|AO, str_DF3A88D1DCACE502, "aqui ")
+SUBS(AR|RGT|AA|AN|AI|AO, str_A06D1AD25124C735, "luz ")
+SUBS(AR|AA|AE|AN|AO, str_6A810E6F1345F79D, "que ")
+SUBS(AR|RGT|AA|AE|AN|AO, str_893AF94CE33C9C02, "-nao ")
+SUBS(AR|AA|AN|AI|AP, str_1617F9D69F76173B, "amanha ")
+SUBS(AR|RGT|AA|AN|AI|AP, str_7A0F5D8A47FC42AB, "minha ")
+SUBS(AR|AS|AE|AO|AP, str_15ECECAA27F132B0, "espesso ")
+SUBS(AR|RGT|AS|AE|AO|AP, str_4B88E6BB0BB4FED0, "pode ")
+SUBS(AR|AT|AN|AI|AP, str_D10820C3FEBF6C12, "vim ")
+SUBS(AR|RGT|AT|AN|AI|AP, str_83792703CA7CE494, "http ")
+SUBS(AR|AE|AT|AO|AP, str_FBCCDFCB24EEF885, "reporter ")
+SUBS(AR|RGT|AE|AT|AO|AP, str_8DDF4266066B432B, "por ")
+SUBS(AR|AA|AE|AN|AP, str_2CE00A39BAF00476, "emma ")
+SUBS(AR|RGT|AA|AE|AN|AP, str_C81F567AC96D5CA9, "mae ")
+SUBS(AR|AS|AE|AN|AO, str_4949161E4F891D8C, "seu ")
+SUBS(AR|RGT|AS|AE|AN|AO, str_864EE853E8B8FBAA, "onde ")
+SUBS(AR|AS|AE|AT|AP, str_3ACC31C908690E7F, "espere ")
+SUBS(AR|RGT|AS|AE|AT|AP, str_B3AAAAA39FAD04BA, "perder ")
+SUBS(AR|AS|AT|AN|AI, str_F67830C3E4E560AB, "this ")
+SUBS(AR|RGT|AS|AT|AN|AI, str_622075F6AD6ED0AF, "nick ")
+SUBS(AR|AA|AS|AI|AO, str_EEF664F3C6FBF507, "sala ")
+SUBS(AR|RGT|AA|AS|AI|AO, str_05DBE3DB5EFBA943, "las ")
+SUBS(AR|AA|AS|AN|AO, str_6F460F7ECE1E7238, "sua ")
+SUBS(AR|RGT|AA|AS|AN|AO, str_63EEBE8BBAB0423F, "nossa ")
+SUBS(AR|AS|AT|AI|AO, str_913CECC656E36EDE, "visto ")
+SUBS(AR|RGT|AS|AT|AI|AO, str_95E494F4E4023F11, "isto ")
+SUBS(AR|AT|AN|AI|AO, str_339DBCB4357E8E96, "vou ")
+SUBS(AR|RGT|AT|AN|AI|AO, str_2E18BAE19A2A9E54, "novo ")
+SUBS(AR|AA|AT|AN|AO, str_36D0B382FF1F1658, "quanto ")
+SUBS(AR|RGT|AA|AT|AN|AO, str_FF3F3B1F8B5A3E40, "nota ")
+SUBS(AR|AA|AE|AT|AI|AO|AP, str_40909FC2168247E4, "propria ")
+SUBS(AR|AA|AS|AE|AT|AI|AO, str_2A9BECFC7E43B7A8, "claro ")
+SUBS(AR|AA|AT|AI|AO|AP, str_F114FEA740CD2ADD, "galpao ")
+SUBS(AR|RGT|AA|AT|AI|AO|AP, str_3CBEF26B0E24699B, "patio ")
+SUBS(AR|AA|AE|AT|AN|AI, str_44EA8FE45CBA88E4, "tenha ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI, str_2B3433FE04787BA9, "haver ")
+SUBS(AR|AS|AE|AN|AI|AP, str_A74D253E9B1887BA, "seph ")
+SUBS(AR|RGT|AS|AE|AN|AI|AP, str_C2F86B3030D94BBF, "pensei ")
+SUBS(AR|AA|AS|AT|AN|AO, str_7BF3F89E049A29B8, "boca ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO, str_A79F0232F547106C, "nunca ")
+SUBS(AR|AS|AT|AN|AO|AP, str_AF8CB41B072A6FE4, "com ")
+SUBS(AR|RGT|AS|AT|AN|AO|AP, str_1956B2DEECF48785, "pouco ")
+SUBS(AR|AS|AE|AT|AN|AO, str_E295746522B0BD52, "sobre ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO, str_C2DE14EAAD943587, "outros ")
+SUBS(AR|AS|AE|AT|AN|AI, str_C1899A709EEAB6C9, "sentir ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI, str_BEDF6EAC3D1D251F, "interesse ")
+SUBS(AR|AA|AT|AN|AO|AP, str_3B10E67384BC24CD, "apontou ")
+SUBS(AR|RGT|AA|AT|AN|AO|AP, str_8335B4528D6B7CD9, "ponta ")
+SUBS(AR|AA|AS|AE|AN|AO, str_1694C85ED0344196, "quando ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO, str_5868AE63B0E51F4A, "usando ")
+SUBS(AR|AA|AE|AT|AI|AP, str_DD8C8A6D968B52F9, "rapaz ")
+SUBS(AR|RGT|AA|AE|AT|AI|AP, str_5597E67A7CD10BAB, "partir ")
+SUBS(AR|AA|AN|AI|AO|AP, str_6451C20BA328EECD, "alma ")
+SUBS(AR|RGT|AA|AN|AI|AO|AP, str_8C909DCD35D4BFA0, "mal ")
+SUBS(AR|AS|AE|AT|AN|AP, str_9729556965A2CBF1, "sempre ")
+SUBS(AR|RGT|AS|AE|AT|AN|AP, str_7E1CBDFF36145A35, "presente ")
+SUBS(AR|AA|AS|AN|AI|AO, str_BCD86D91F54D72B1, "quais ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO, str_9C2BD3D79251B97A, "loja ")
+SUBS(AR|AA|AS|AE|AT|AP, str_27BD1FAEFCFEC47E, "apesar ")
+SUBS(AR|RGT|AA|AS|AE|AT|AP, str_47829B510E6E0969, "parece ")
+SUBS(AR|AA|AS|AE|AN|AI, str_1F3F11D083098D7F, "ainda ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI, str_B8157EA41E09D921, "had ")
+SUBS(AR|AA|AS|AT|AN|AI, str_F70B1450DD7EC677, "sabia ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI, str_7F1DF9F101812702, "jack ")
+SUBS(AR|AA|AS|AT|AI|AP, str_2DA569F77B293059, "capaz ")
+SUBS(AR|RGT|AA|AS|AT|AI|AP, str_1759D773501295AA, "passava ")
+SUBS(AR|AS|AE|AI|AO|AP, str_867913827E312852, "depois ")
+SUBS(AR|RGT|AS|AE|AI|AO|AP, str_6DC96B61DE3FC33B, "pelos ")
+SUBS(AR|AA|AS|AN|AO|AP, str_52A0FFA1D90B186D, "soma ")
+SUBS(AR|RGT|AA|AS|AN|AO|AP, str_75F11CD68AB3E96F, "maos ")
+SUBS(AR|AS|AN|AI|AO|AP, str_F08DB65390D6A260, "suponho ")
+SUBS(AR|RGT|AS|AN|AI|AO|AP, str_C5F44F4F217656BB, "possui ")
+SUBS(AR|AS|AE|AT|AI|AO, str_3BA918ABFE63F3BE, "voce ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO, str_43E5D39BAEB02209, "livros ")
+SUBS(AR|AA|AS|AE|AO|AP, str_0165EC35ADBF0A0A, "esposa ")
+SUBS(AR|RGT|AA|AS|AE|AO|AP, str_7E30E0829B11502A, "pessoas ")
+SUBS(AR|AA|AE|AN|AI|AO, str_A4C07A0DFF6A2D70, "aquele ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO, str_2F743914CC1EE830, "naquele ")
+SUBS(AR|AT|AN|AI|AO|AP, str_15A36D6E947AA280, "tumulo ")
+SUBS(AR|RGT|AT|AN|AI|AO|AP, str_9A2CF7B5E9DAAD99, "muito ")
+SUBS(AR|AE|AT|AN|AI|AP, str_0057544F35671D44, "vem ")
+SUBS(AR|RGT|AE|AT|AN|AI|AP, str_F312AD97B64E4927, "permitir ")
+SUBS(AR|AA|AE|AT|AN|AO, str_8025BBDF6BAF54D5, "entao ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO, str_4E805A08FB4BDC00, "outra ")
+SUBS(AR|AS|AT|AI|AO|AP, str_54CD08E80EB8F31D, "tipos ")
+SUBS(AR|RGT|AS|AT|AI|AO|AP, str_32F35A4F15BF9FBF, "politico ")
+SUBS(AR|AA|AS|AE|AI|AP, str_67D1B2EBB6A8350B, "despedida ")
+SUBS(AR|RGT|AA|AS|AE|AI|AP, str_0FA2BE67B86DCB22, "paises ")
+SUBS(AR|AA|AS|AT|AO|AP, str_1849C11C91ACE8EA, "sapatos ")
+SUBS(AR|RGT|AA|AS|AT|AO|AP, str_E96296958DF31CB0, "opcao ")
+SUBS(AR|AA|AE|AI|AO|AP, str_F7D795E2DE04290F, "apple ")
+SUBS(AR|RGT|AA|AE|AI|AO|AP, str_34EA7F3BE527A04F, "pela ")
+SUBS(AR|AA|AS|AN|AI|AP, str_F2CD9F26744CEAEC, "assim ")
+SUBS(AR|RGT|AA|AS|AN|AI|AP, str_1D5EA690EF5FD1C4, "mais ")
+SUBS(AR|AA|AE|AN|AO|AP, str_34B1BF6AC4655896, "quem ")
+SUBS(AR|RGT|AA|AE|AN|AO|AP, str_43134FE349F09948, "pequeno ")
+SUBS(AR|AA|AT|AN|AI|AO, str_CE983E18F6869AAE, "filho ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO, str_56EDC83B32FBDC5A, "nova ")
+SUBS(AR|AA|AS|AT|AI|AO, str_4A33DC29C86A9612, "coisa ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO, str_B8729A7E003EEBD7, "local ")
+SUBS(AR|AA|AS|AE|AT|AN, str_52DF65A3865E9585, "antes ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN, str_28FA1D9FC8E2E05B, "jantar ")
+SUBS(AR|AA|AE|AT|AI|AO, str_F69648C05DCE55FD, "talvez ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO, str_7F9E214F3099B995, "levar ")
+SUBS(AR|AA|AS|AE|AN|AP, str_E83FD8F1477DD091, "apenas ")
+SUBS(AR|RGT|AA|AS|AE|AN|AP, str_0BF99D12E692AB07, "mesma ")
+SUBS(AR|AA|AS|AE|AI|AO, str_0F605C8AE051247A, "dela ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO, str_74ECC4650BD9745F, "lado ")
+SUBS(AR|AS|AE|AN|AI|AO, str_2DA85BF8AB5E1470, "disse-lhe ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO, str_9041392BE56C6039, "hoje ")
+SUBS(AR|AE|AT|AN|AI|AO, str_3C1FFD3EF46BCAEA, "tenho ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO, str_E5E793CF32309F5B, "noite ")
+SUBS(AR|AE|AT|AN|AO|AP, str_4D6598D37F6B809E, "tempo ")
+SUBS(AR|RGT|AE|AT|AN|AO|AP, str_FA935D927875D182, "momento ")
+SUBS(AR|AS|AE|AT|AI|AP, str_5A72A21CB90AD104, "especie ")
+SUBS(AR|RGT|AS|AE|AT|AI|AP, str_DCCF38E69C29D422, "pedir ")
+SUBS(AR|AE|AN|AI|AO|AP, str_6B1E99A9834B2BB3, "elmo ")
+SUBS(AR|RGT|AE|AN|AI|AO|AP, str_C0F30FC9FCEAED93, "homem ")
+SUBS(AR|AA|AS|AT|AN|AP, str_F62F17A817EF074F, "cama ")
+SUBS(AR|RGT|AA|AS|AT|AN|AP, str_2DB1FF35B8185E2B, "maca ")
+SUBS(AR|AA|AT|AN|AI|AP, str_2665EF08A428D718, "tinham ")
+SUBS(AR|RGT|AA|AT|AN|AI|AP, str_825BFBA4F20612DA, "haviam ")
+SUBS(AR|AS|AT|AN|AI|AO, str_E3D64E1E756C466B, "cinco ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO, str_F95F57E0B44CBFB1, "unico ")
+SUBS(AR|AS|AE|AT|AO|AP, str_3169E81B5A93E031, "corpo ")
+SUBS(AR|RGT|AS|AE|AT|AO|AP, str_D9390A2702CDE82C, "poder ")
+SUBS(AR|AE|AT|AI|AO|AP, str_ED9183D066499E2C, "golpe ")
+SUBS(AR|RGT|AE|AT|AI|AO|AP, str_3865ED18BE5305EA, "proprio ")
+SUBS(AR|AA|AE|AT|AO|AP, str_93E0D08379A443DE, "aeroporto ")
+SUBS(AR|RGT|AA|AE|AT|AO|AP, str_C092DEF9A4255A92, "porta ")
+SUBS(AR|AA|AE|AT|AN|AP, str_83B9151F77AA65F9, "tambem ")
+SUBS(AR|RGT|AA|AE|AT|AN|AP, str_89FE4E2FCC369BE7, "mar ")
+SUBS(AR|AA|AS|AT|AI|AO|AP, str_E7C3D51F1D969C15, "capitao ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_FFBE4D4C6357E41B, "policia ")
+SUBS(AR|AS|AE|AT|AN|AI|AP, str_5EA1BD0C79A23973, "devem ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_73DED435CD93F261, "presidente ")
+SUBS(AR|AS|AE|AN|AI|AO|AP, str_223E4F20D0974DF1, "simples ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_B4BBE6E5D6C882D2, "homens ")
+SUBS(AR|AA|AS|AN|AI|AO|AP, str_28FC36B6E3C7F020, "almas ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_A17CD2AD2C03004E, "humanos ")
+SUBS(AR|AA|AS|AE|AT|AN|AP, str_A7B872CD750CAEB3, "certamente ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_CE157E8AE95EB415, "pensar ")
+SUBS(AR|AA|AS|AE|AI|AO|AP, str_40EFB7606712B1C9, "explosao ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_3257A57A33C10007, "podia ")
+SUBS(AR|AA|AS|AE|AN|AO|AP, str_29D5EC092B9A2FF0, "damon ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_D4C9D328AE006E0D, "pensando ")
+SUBS(AR|AA|AS|AE|AT|AI|AP, str_AEAEE1D38CBCE97A, "esperava ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_3914D06D01AF9C60, "parecia ")
+SUBS(AR|AA|AE|AN|AI|AO|AP, str_F802BB68B42CA77F, "alem ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_F485FD38F38490BE, "nenhuma ")
+SUBS(AR|AA|AS|AE|AT|AO|AP, str_9FE211D27ED8D997, "resposta ")
+SUBS(AR|RGT|AA|AS|AE|AT|AO|AP, str_6CD2A548A39A7E32, "professor ")
+SUBS(AR|AS|AE|AT|AN|AI|AO, str_EA814A9DD248A829, "senhor ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_D0061677504C51C3, "jeito ")
+SUBS(AR|AE|AT|AN|AI|AO|AP, str_AA97659A2DAA9BA1, "vermelho ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_7C26133C46E3A0CE, "melhor ")
+SUBS(AR|AA|AS|AT|AN|AO|AP, str_90C1CE5A1DEDBA0F, "campo ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_C50E1DF5FB38424C, "moca ")
+SUBS(AR|AS|AE|AT|AI|AO|AP, str_F2210851CD069C30, "respeito ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_58FF808F0346EC9B, "possivel ")
+SUBS(AR|AA|AT|AN|AI|AO|AP, str_6D5D4FDC3F9DFF2B, "alguma ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_031DA253073BBFA8, "ultima ")
+SUBS(AR|AA|AE|AT|AN|AI|AO, str_50AA30F131B2E470, "qualquer ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_D9AA8032648D36A1, "lugar ")
+SUBS(AR|AA|AS|AE|AT|AN|AI, str_0BFE68A0F1411636, "diante ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_F7081AA119A36CDC, "instante ")
+SUBS(AR|AA|AE|AT|AN|AI|AP, str_07E95AE1F76C394E, "fazem ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_4D3D2EDE456B03BB, "primeira ")
+SUBS(AR|AS|AE|AT|AN|AO|AP, str_AB11AA5BE19B8D7F, "comecou ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_388FFD605DEE918B, "ombros ")
+SUBS(AR|AA|AS|AT|AN|AI|AP, str_9CA8B2D733B27792, "cima ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_56218FD730A2BA00, "incapaz ")
+SUBS(AR|AA|AS|AE|AN|AI|AP, str_A7D60A5C0B2E1F3C, "demais ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_7B71CC0ECEDCE268, "medida ")
+SUBS(AR|AA|AE|AT|AN|AO|AP, str_522EE9C819BBCA09, "forma ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_2A7C4309211FCEA4, "porque ")
+SUBS(AR|AA|AS|AT|AN|AI|AO, str_19795205239F2A2E, "alguns ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_81AA253A1C9DFDBF, "unica ")
+SUBS(AR|AA|AS|AE|AT|AN|AO, str_97462BBAAD45EAD1, "grande ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_BA539342DFEDA6CB, "outras ")
+SUBS(AR|AS|AT|AN|AI|AO|AP, str_1C28EC34F56230A5, "comigo ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_4AFF02F518F2BDB8, "muitos ")
+SUBS(AR|AA|AS|AE|AN|AI|AO, str_58A31BE0C27FAA40, "aqueles ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_F47E6FAE73F2DF0D, "olhando ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_3E0D6DB62554E555, "estavam ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_C3D8E64EAF6168D5, "imediatamente ")
+SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_F10E36BF2899B699, "alguem ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_2E3FB18B63661DE1, "maior ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_6C0D2FF2A548E257, "fazendo ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_FFAD1D59E3A668DD, "historia ")
+SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_5D1328D2587D0264, "zaphod ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_833B2E3200AFA957, "podiam ")
+SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_BD7AF5A271967564, "estamos ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_312757866E7463DC, "pensamentos ")
+SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_3DFBBDB0219BC4DC, "simplesmente ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_A5A1C5B715B89A74, "mulheres ")
+SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_F14CF1C7FDB6FF28, "algumas ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_3272855D6A8B2EF4, "muitas ")
+SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_169D778CA1859737, "rapido ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_DB76D70C4C63C085, "poderia ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_EE3C001BE8F3E31B, "completamente ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_E1BEFB72473CF816, "marido ")
diff --git a/keyboards/gboards/dicts/aset/ro-keymap.def b/keyboards/gboards/dicts/aset/ro-keymap.def
new file mode 100644
index 0000000000..1b721ff1d5
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/ro-keymap.def
@@ -0,0 +1,409 @@
+// This file is automatically generated. Do not edit it!
+
+PRES(AI, KC_I)
+PRES(AA, KC_A)
+PRES(AE, KC_E)
+PRES(AP, KC_P)
+PRES(AT, KC_T)
+PRES(AS, KC_S)
+PRES(AO, KC_O)
+PRES(AN, KC_N)
+PRES(AS|AE, KC_D)
+PRES(AS|AI, KC_K)
+PRES(AO|AP, KC_SCLN)
+KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END})
+PRES(AI|AO, KC_L)
+PRES(AN|AO, KC_U)
+PRES(AE|AP, KC_QUOT)
+PRES(AT|AP, KC_BSPC)
+PRES(AA|AI, KC_Z)
+PRES(AS|AN, KC_J)
+PRES(AE|AT, KC_R)
+PRES(AE|AN, KC_Y)
+PRES(AT|AN, KC_B)
+PRES(AA|AN, KC_Q)
+PRES(AA|AS, KC_W)
+KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END})
+PRES(AE|AO, KC_MINS)
+PRES(AT|AI, KC_V)
+PRES(AS|AO, KC_DOT)
+PRES(AS|AT, KC_C)
+PRES(AA|AE, KC_X)
+PRES(AT|AO, KC_G)
+PRES(AN|AP, KC_M)
+PRES(AA|AT, KC_F)
+PRES(AN|AI, KC_H)
+KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END})
+PRES(AA|AP, KC_QUOT)
+PRES(AE|AI, KC_COMM)
+SUBS(AR|AS|AT|AO, str_E4C5BBBFF82DFB94, "scos ")
+SUBS(AR|AT|AI|AP, str_EDDB4B5D8E6E6CF7, "tip ")
+SUBS(AR|AN|AO|AP, str_0F33CAECD78B3E6B, "om ")
+SUBS(AR|AS|AE|AO, str_A6C4D4E6E2DC9327, "s-o ")
+SUBS(AR|AN|AI|AP, str_691EE351478D7886, "imi ")
+SUBS(AR|AA|AE|AP, str_2A1A7461DB623D9B, "ape ")
+PRES(AN|AI|AO|AP, KC_ENT)
+SUBS(AR|AI|AO|AP, str_7006A6778B2D7795, "lipi ")
+SUBS(AR|AS|AE|AT, str_29CD3969E34DF35B, "ce ")
+SUBS(AR|AA|AE|AT, str_0437C1EBD8E5369E, "era ")
+SUBS(AR|AA|AI|AP, str_38C2991671D8F57C, "pai ")
+SUBS(AR|AN|AI|AO, str_9A5CC103ABF05E48, "lui ")
+SUBS(AR|AA|AS|AE, str_6E5B393925FE64CE, "da ")
+SUBS(AR|AA|AS|AT, str_521DFAED1CC2AD68, "ca ")
+SUBS(AR|AE|AO|AP, str_99E79B03AD8B4C74, "pe-o ")
+SUBS(AR|AT|AO|AP, str_028BB7B551A4BD43, "pot ")
+SUBS(AR|AA|AT|AI|AO, str_2428DC73F971B48B, "afla ")
+SUBS(AR|AE|AI|AO|AP, str_AF7F8A801152DC8B, "piele ")
+SUBS(AR|AA|AE|AN|AO, str_A29D2DDDF2299AA9, "n-a ")
+SUBS(AR|AS|AE|AT|AO, str_A2E2A7890B6E1A26, "rost ")
+SUBS(AR|AS|AI|AO|AP, str_216EC9595D73CC70, "lipsi ")
+SUBS(AR|AA|AT|AO|AP, str_5481B7D85F210D75, "poata ")
+SUBS(AR|AS|AE|AO|AP, str_7F10168D0097DB0A, "pod ")
+SUBS(AR|AA|AN|AO|AP, str_4837C6E1143CA3EF, "puna ")
+SUBS(AR|AA|AS|AE|AT, str_81DF51CAE9E26CF3, "care ")
+SUBS(AR|AE|AN|AO|AP, str_74F9BE204413E051, "meu ")
+SUBS(AR|AE|AN|AI|AO, str_2C9F41D2E2B49ACB, "nu-i ")
+SUBS(AR|AE|AT|AI|AP, str_A9659D940BFC08DD, "privi ")
+SUBS(AR|AA|AS|AT|AI, str_2859A6CAFA8C1B00, "aici ")
+SUBS(AR|AE|AN|AI|AP, str_B95094D0F4C2F09E, "mine ")
+SUBS(AR|AA|AE|AT|AN, str_0DF060E16A761ADC, "barbat ")
+SUBS(AR|AS|AE|AI|AP, str_A35F0F6610D0E904, "piese ")
+SUBS(AR|AE|AT|AO|AP, str_6AE99DAFEC4D4FCD, "pro ")
+SUBS(AR|AA|AS|AI|AP, str_3344F8FE5E129E8A, "pasi ")
+SUBS(AR|AA|AE|AN|AI, str_8577D58769379401, "haine ")
+SUBS(AR|AS|AT|AI, str_A5BC7DE4E3DC110E, "ci ")
+SUBS(AR|RGT|AS|AT|AI, str_119364F935F4EBCA, "ici ")
+SUBS(AR|AA|AT|AI, str_30284D1463413AB2, "fi ")
+SUBS(AR|RGT|AA|AT|AI, str_46096E4526BD4733, "iata ")
+SUBS(AR|AE|AT|AP, str_0CAA47980A6E698C, "trepte ")
+SUBS(AR|RGT|AE|AT|AP, str_B9ED51F2786708FC, "perete ")
+SUBS(AR|AS|AE|AP, str_8102FC0AB10C07B7, "spe ")
+SUBS(AR|RGT|AS|AE|AP, str_431A39591B2ACBF3, "pese ")
+SUBS(AR|AE|AI|AO, str_05ED48987A1828F9, "el ")
+SUBS(AR|RGT|AE|AI|AO, str_05A9C753CDE4911A, "le ")
+SUBS(AR|AE|AN|AI, str_7E3D8B1C859776CA, "eh ")
+SUBS(AR|RGT|AE|AN|AI, str_46373FF5C172BEAA, "hei ")
+SUBS(AR|AA|AN|AI, str_FEA2CC9886A11B4C, "ani ")
+SUBS(AR|RGT|AA|AN|AI, str_874A76971D3F641B, "hai ")
+SUBS(AR|AA|AS|AP, str_6A237834F9D9CEC2, "apasa ")
+SUBS(AR|RGT|AA|AS|AP, str_467C897077B58F08, "pas ")
+SUBS(AR|AA|AN|AO, str_FD846B750BDF7708, "au ")
+SUBS(AR|RGT|AA|AN|AO, str_2023844574ACF1BC, "una ")
+SUBS(AR|AA|AN|AP, str_77BE4D44A5F2AD27, "am ")
+SUBS(AR|RGT|AA|AN|AP, str_2A907D456EBB3E24, "ma ")
+SUBS(AR|AA|AS|AN, str_F81781133D951FB5, "sansa ")
+SUBS(AR|RGT|AA|AS|AN, str_7BCC214E7C2F72D5, "nas ")
+SUBS(AR|AA|AS|AI, str_42CED37466A98FA4, "zis ")
+SUBS(AR|RGT|AA|AS|AI, str_7A4FAD911F818E95, "iasa ")
+SUBS(AR|AS|AI|AO, str_C9ADB25B4C37D131, "sol ")
+SUBS(AR|RGT|AS|AI|AO, str_80673F3F8044C003, "ok ")
+SUBS(AR|AS|AN|AI, str_55863E4A819B49C1, "sin ")
+SUBS(AR|RGT|AS|AN|AI, str_52597526AB3E148B, "jh ")
+SUBS(AR|AE|AT|AI, str_9806793D67632178, "trei ")
+SUBS(AR|RGT|AE|AT|AI, str_2528D620F9E674D2, "ieri ")
+SUBS(AR|AE|AN|AP, str_A6DA2C0814DDDE59, "emmy ")
+SUBS(AR|RGT|AE|AN|AP, str_C5C56919F9FD8ECA, "pen ")
+SUBS(AR|AA|AE|AN, str_9CAD49AC9B02787F, "anne ")
+SUBS(AR|RGT|AA|AE|AN, str_33AEFF4359116E76, "nea ")
+SUBS(AR|AS|AE|AN, str_32148592C3806623, "sens ")
+SUBS(AR|RGT|AS|AE|AN, str_6D067D15A808A9B1, "je ")
+SUBS(AR|AT|AN|AI, str_96A25A2A55589326, "vin ")
+SUBS(AR|RGT|AT|AN|AI, str_AB3C4B3424D8BFD8, "intii ")
+SUBS(AR|AE|AN|AO, str_3CF92217D792ADB9, "eu ")
+SUBS(AR|RGT|AE|AN|AO, str_DA685F075AF8D8A7, "n-o ")
+SUBS(AR|AT|AI|AO, str_C277590164DC0A8A, "voi ")
+SUBS(AR|RGT|AT|AI|AO, str_9A915B8E89BC2384, "lovi ")
+SUBS(AR|AA|AT|AN, str_06F4837F40125C65, "ba ")
+SUBS(AR|RGT|AA|AT|AN, str_47B698232847D3D2, "nat ")
+SUBS(AR|AE|AT|AN, str_C0859DD43842F407, "brett ")
+SUBS(AR|RGT|AE|AT|AN, str_ED9A2C22711EB44E, "nr ")
+SUBS(AR|AS|AE|AI, str_F4E15E651ECDAD93, "desi ")
+SUBS(AR|RGT|AS|AE|AI, str_71C1AFB2A53685DF, "iesi ")
+SUBS(AR|AA|AE|AI, str_82768E8FCF987ACD, "zeii ")
+SUBS(AR|RGT|AA|AE|AI, str_CC30A0558A1FC6CA, "izea ")
+SUBS(AR|AA|AE|AO, str_1308668E4E312A86, "a- ")
+SUBS(AR|RGT|AA|AE|AO, str_AB819235D216611C, "-a ")
+SUBS(AR|AE|AT|AO, str_46ADAEF189A4FFA8, "rog ")
+SUBS(AR|RGT|AE|AT|AO, str_6B77658521E3C3E6, "ore ")
+SUBS(AR|AA|AT|AO, str_B6ECC5733F3F9288, "toata ")
+SUBS(AR|RGT|AA|AT|AO, str_B75DF5741C41828A, "ofta ")
+SUBS(AR|AT|AN|AO, str_48542059A4690B7A, "tu ")
+SUBS(AR|RGT|AT|AN|AO, str_9546AA47D9B796A9, "unt ")
+SUBS(AR|AS|AN|AO, str_E6599811376DB42A, "sus ")
+SUBS(AR|RGT|AS|AN|AO, str_FF6E23CC4BFF56B5, "jos ")
+SUBS(AR|AA|AI|AO, str_C49001FAA655F248, "al ")
+SUBS(AR|RGT|AA|AI|AO, str_7E7904D7326BCF29, "la ")
+SUBS(AR|AA|AT|AP, str_8CECEC4EA8499163, "fapt ")
+SUBS(AR|RGT|AA|AT|AP, str_7A06301D23DD2E0F, "pat ")
+SUBS(AR|AE|AN|AI|AO|AP, str_862A47A12C97D575, "mele ")
+SUBS(AR|AA|AS|AE|AO|AP, str_E308D1F6F8197151, "podea ")
+SUBS(AR|AA|AS|AT|AN|AO, str_9E3A45798840176C, "facut ")
+SUBS(AR|AA|AN|AI|AO|AP, str_B8F055C00046F84D, "numai ")
+SUBS(AR|AA|AS|AE|AT|AI, str_C75D5E068F895F5D, "ceva ")
+SUBS(AR|AE|AT|AI|AO|AP, str_7F64C57AA9748B47, "opri ")
+SUBS(AR|AA|AN|AI|AP, str_A7412055CAD3DDA3, "amiaza ")
+SUBS(AR|RGT|AA|AN|AI|AP, str_446E12F7C9FCBEFC, "mai ")
+SUBS(AR|AE|AT|AN|AP, str_7E4096DA17B3C6D2, "tem ")
+SUBS(AR|RGT|AE|AT|AN|AP, str_B2E8DF8FD857296C, "merry ")
+SUBS(AR|AA|AI|AO|AP, str_7985DC8DCCD996FA, "apoi ")
+SUBS(AR|RGT|AA|AI|AO|AP, str_58DFA79D10AA1C5E, "ploaia ")
+SUBS(AR|AA|AS|AT|AO, str_996884380E189E13, "fost ")
+SUBS(AR|RGT|AA|AS|AT|AO, str_568701C904899A03, "ostas ")
+SUBS(AR|AA|AS|AE|AO, str_DE31A63C4A0DD129, "s-a ")
+SUBS(AR|RGT|AA|AS|AE|AO, str_4DF853D12CE5146E, "oase ")
+SUBS(AR|AA|AT|AN|AO, str_3FDAD894DDA1E312, "buna ")
+SUBS(AR|RGT|AA|AT|AN|AO, str_FF3F3B1F8B5A3E40, "nota ")
+SUBS(AR|AS|AE|AN|AI, str_3DBAD2413F36A90A, "din ")
+SUBS(AR|RGT|AS|AE|AN|AI, str_030DCAFB98844D05, "iesind ")
+SUBS(AR|AA|AN|AI|AO, str_12642683B58127C2, "ziua ")
+SUBS(AR|RGT|AA|AN|AI|AO, str_6DFD460A54EEE22E, "lua ")
+SUBS(AR|AA|AS|AN|AO, str_88345F7C93C4C73D, "sau ")
+SUBS(AR|RGT|AA|AS|AN|AO, str_85D1F287CC8F2629, "usa ")
+SUBS(AR|AS|AE|AT|AI, str_6DACB9555691782A, "cei ")
+SUBS(AR|RGT|AS|AE|AT|AI, str_9D8C88D9F7DA895E, "iesit ")
+SUBS(AR|AA|AS|AE|AI, str_011B5F412FE2415A, "zise ")
+SUBS(AR|RGT|AA|AS|AE|AI, str_B36F55489CF2B3C1, "ideea ")
+SUBS(AR|AS|AN|AO|AP, str_E96267888236B240, "spus ")
+SUBS(AR|RGT|AS|AN|AO|AP, str_A745BBCE84D30277, "pus ")
+SUBS(AR|AA|AT|AN|AP, str_BF3DDFB8CBFE1C63, "tam ")
+SUBS(AR|RGT|AA|AT|AN|AP, str_02631141FC3D6F89, "pamant ")
+SUBS(AR|AT|AN|AO|AP, str_C7B05810B9878F2F, "tom ")
+SUBS(AR|RGT|AT|AN|AO|AP, str_3BBF8252EA6BEE2D, "putut ")
+SUBS(AR|AS|AT|AI|AO, str_FF1CA2F8A5048D30, "colt ")
+SUBS(AR|RGT|AS|AT|AI|AO, str_00CDC54B7DB15C46, "loc ")
+SUBS(AR|AA|AS|AT|AP, str_95C59AB8275627DB, "cap ")
+SUBS(AR|RGT|AA|AS|AT|AP, str_89307F56A2D607AC, "pacat ")
+SUBS(AR|AA|AT|AN|AI, str_4D9369A93C45281B, "abia ")
+SUBS(AR|RGT|AA|AT|AN|AI, str_BE522AFB71DBC03D, "nava ")
+SUBS(AR|AS|AN|AI|AO, str_72E39EC6A4158B9A, "solul ")
+SUBS(AR|RGT|AS|AN|AI|AO, str_68720D7C31A0407C, "insusi ")
+SUBS(AR|AA|AS|AN|AP, str_020E794D3DE91D12, "sam ")
+SUBS(AR|RGT|AA|AS|AN|AP, str_0DF584E9973309E5, "masa ")
+SUBS(AR|AA|AE|AI|AP, str_C075124762EDDF07, "apei ")
+SUBS(AR|RGT|AA|AE|AI|AP, str_26810965DF9C62EC, "paie ")
+SUBS(AR|AA|AE|AI|AO, str_DB017B313F911B03, "ale ")
+SUBS(AR|RGT|AA|AE|AI|AO, str_1FAE8B28043E9BD8, "i-a ")
+SUBS(AR|AA|AT|AI|AP, str_24E37946E892C656, "tipa ")
+SUBS(AR|RGT|AA|AT|AI|AP, str_18E68A1C93CAC9BD, "piata ")
+SUBS(AR|AS|AE|AN|AO, str_8E65741A89C054E1, "dus ")
+SUBS(AR|RGT|AS|AE|AN|AO, str_1ED7A4D73040B5B7, "unde ")
+SUBS(AR|AA|AE|AT|AP, str_3AE92C742795DAFB, "repeta ")
+SUBS(AR|RGT|AA|AE|AT|AP, str_181DD74C10CF1A6E, "prea ")
+SUBS(AR|AS|AE|AT|AN, str_7C3B234BE02042FC, "recent ")
+SUBS(AR|RGT|AS|AE|AT|AN, str_B4F23484EC05D673, "jerry ")
+SUBS(AR|AS|AE|AI|AO, str_696FD16A0EB230A6, "doi ")
+SUBS(AR|RGT|AS|AE|AI|AO, str_458B350C506917A3, "ideile ")
+SUBS(AR|AE|AT|AN|AO, str_03EF08A3DD704445, "greu ")
+SUBS(AR|RGT|AE|AT|AN|AO, str_B22F0BDAC7FFCA09, "unor ")
+SUBS(AR|AA|AE|AT|AI, str_B5ECD2F1FA8E0FDB, "avea ")
+SUBS(AR|RGT|AA|AE|AT|AI, str_75D1CB05899F2CCB, "iar ")
+SUBS(AR|AA|AS|AI|AO, str_EEF664F3C6FBF507, "sala ")
+SUBS(AR|RGT|AA|AS|AI|AO, str_101B0EB7B51FA839, "lasa ")
+SUBS(AR|AS|AT|AN|AO, str_54569851B27E9512, "cu ")
+SUBS(AR|RGT|AS|AT|AN|AO, str_82F582F41ACC30FC, "joc ")
+SUBS(AR|AS|AT|AI|AP, str_41F913963A67ADFF, "tipic ")
+SUBS(AR|RGT|AS|AT|AI|AP, str_2BC515A6311342A6, "pic ")
+SUBS(AR|AS|AT|AN|AI, str_6C82BBCD22A3B803, "cinci ")
+SUBS(AR|RGT|AS|AT|AN|AI, str_96A443A1052E70F4, "nici ")
+SUBS(AR|AA|AS|AT|AN, str_287A1955FF1C2ADB, "banca ")
+SUBS(AR|RGT|AA|AS|AT|AN, str_E0B9AA624815DFD9, "nasca ")
+SUBS(AR|AS|AE|AT|AP, str_27EBF0B7BDF6E3C7, "spre ")
+SUBS(AR|RGT|AS|AE|AT|AP, str_50E0BA7A9FFC2432, "peste ")
+SUBS(AR|AS|AE|AN|AP, str_8DEBA62F74F4AE47, "semn ")
+SUBS(AR|RGT|AS|AE|AN|AP, str_8A0AC2472D15E0FA, "mese ")
+SUBS(AR|AE|AT|AN|AI, str_07AD71BB0B609B6A, "bine ")
+SUBS(AR|RGT|AE|AT|AN|AI, str_EA10C33DF986B2B3, "intre ")
+SUBS(AR|AT|AN|AI|AP, str_4FA4E202022528E5, "timp ")
+SUBS(AR|RGT|AT|AN|AI|AP, str_150CB36344FF660F, "mintii ")
+SUBS(AR|AA|AS|AN|AI, str_E87EF6E43D2593B6, "ash ")
+SUBS(AR|RGT|AA|AS|AN|AI, str_ADFBAE1BCDCBFF39, "insa ")
+SUBS(AR|AT|AI|AO|AP, str_517AB9F070F1168A, "topi ")
+SUBS(AR|RGT|AT|AI|AO|AP, str_E7BDD9EA240E4B4B, "poti ")
+SUBS(AR|AA|AS|AE|AP, str_0DA10FD23FD96645, "da' ")
+SUBS(AR|RGT|AA|AS|AE|AP, str_9123E747E8071EBF, "pedeapsa ")
+SUBS(AR|AS|AN|AI|AP, str_122C44A32A7CB6F5, "sim ")
+SUBS(AR|RGT|AS|AN|AI|AP, str_7888DBDFA5D0A1E2, "nisip ")
+SUBS(AR|AT|AN|AI|AO, str_CB719A4CFCA0E5E2, "totul ")
+SUBS(AR|RGT|AT|AN|AI|AO, str_C115235B04798D96, "lungul ")
+SUBS(AR|AA|AS|AE|AN, str_67CFE6CC85BD1CD1, "deja ")
+SUBS(AR|RGT|AA|AS|AE|AN, str_C161ABA85FEDF657, "new ")
+SUBS(AR|AE|AT|AI|AO, str_0FE705D961162F91, "vor ")
+SUBS(AR|RGT|AE|AT|AI|AO, str_CE7828CD2F256560, "lor ")
+SUBS(AR|AA|AE|AN|AP, str_7E02E71632E36E12, "amy ")
+SUBS(AR|RGT|AA|AE|AN|AP, str_72B2DC9CEAAFD82B, "mea ")
+SUBS(AR|AS|AT|AO|AP, str_A36FC15653CA04A0, "scop ")
+SUBS(AR|RGT|AS|AT|AO|AP, str_993FB3354F37599E, "post ")
+SUBS(AR|AA|AE|AT|AO, str_CD3C06F7C0B0CCBB, "toate ")
+SUBS(AR|RGT|AA|AE|AT|AO, str_19112A437035E563, "oare ")
+SUBS(AR|AA|AS|AE|AT|AI|AO, str_402CB287BE8CC3AE, "astfel ")
+SUBS(AR|AA|AS|AT|AN|AI|AO, str_910E43D1156BD447, "atunci ")
+SUBS(AR|AS|AE|AN|AI|AP, str_48ABA17C6DCF5E7C, "depinde ")
+SUBS(AR|RGT|AS|AE|AN|AI|AP, str_EC7A27F50E19BC86, "mesei ")
+SUBS(AR|AS|AT|AN|AI|AP, str_9D98B4E0596CD2C8, "simti ")
+SUBS(AR|RGT|AS|AT|AN|AI|AP, str_7F09A830549EC542, "nimic ")
+SUBS(AR|AS|AE|AN|AO|AP, str_2C8D0E5EB2ABC425, "spuse ")
+SUBS(AR|RGT|AS|AE|AN|AO|AP, str_03BC9D6CB8B3908A, "mod ")
+SUBS(AR|AS|AE|AT|AI|AP, str_8F280EB7CD23BC52, "spirit ")
+SUBS(AR|RGT|AS|AE|AT|AI|AP, str_81AC3D2F74222CB1, "priveste ")
+SUBS(AR|AS|AT|AN|AO|AP, str_3638010D863571D7, "cum ")
+SUBS(AR|RGT|AS|AT|AN|AO|AP, str_B2CB6EDCEE9FCBB9, "punct ")
+SUBS(AR|AA|AE|AI|AO|AP, str_E1FCBB7C427D1252, "apele ")
+SUBS(AR|RGT|AA|AE|AI|AO|AP, str_4ACA51882D0A35C9, "pielea ")
+SUBS(AR|AA|AS|AT|AI|AO, str_9C4AF9E3F81B4405, "acolo ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO, str_445499843B271A6A, "lasat ")
+SUBS(AR|AS|AT|AI|AO|AP, str_A4A5E0FD4BE6C8EB, "copii ")
+SUBS(AR|RGT|AS|AT|AI|AO|AP, str_645C0C3EC2B512A6, "lipsit ")
+SUBS(AR|AA|AS|AT|AN|AP, str_D70133B37553FCA8, "cam ")
+SUBS(AR|RGT|AA|AS|AT|AN|AP, str_7862B823A47DF4BB, "manca ")
+SUBS(AR|AA|AE|AT|AO|AP, str_0528BD2188D731A8, "aproape ")
+SUBS(AR|RGT|AA|AE|AT|AO|AP, str_2F51745CA0AE5346, "poate ")
+SUBS(AR|AA|AE|AT|AI|AO, str_6676520F7E7AA391, "fel ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO, str_2ECCAB436EDCDE2F, "i-ar ")
+SUBS(AR|AA|AE|AN|AI|AO, str_B608D6D6C6D9A031, "auzea ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO, str_B2D5400185D19E20, "n-ai ")
+SUBS(AR|AA|AT|AI|AO|AP, str_2C31D8D65013108B, "filip ")
+SUBS(AR|RGT|AA|AT|AI|AO|AP, str_61B1A9D6040A996F, "pozitia ")
+SUBS(AR|AS|AN|AI|AO|AP, str_061430F366EED7B8, "simplu ")
+SUBS(AR|RGT|AS|AN|AI|AO|AP, str_8CF693C1CD0D766F, "plus ")
+SUBS(AR|AA|AS|AN|AO|AP, str_F2AFBB18F5074D83, "spuna ")
+SUBS(AR|RGT|AA|AS|AN|AO|AP, str_EDC5B023AC1F747A, "pusa ")
+SUBS(AR|AE|AT|AN|AO|AP, str_EB55FC450E7312D7, "grup ")
+SUBS(AR|RGT|AE|AT|AN|AO|AP, str_92239078817B50BA, "pentru ")
+SUBS(AR|AA|AS|AE|AI|AO, str_CCAF7518D998E754, "sa-i ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO, str_6BCBCD334A90F60A, "lase ")
+SUBS(AR|AT|AN|AI|AO|AP, str_EDC9E06B5E7B760B, "timpul ")
+SUBS(AR|RGT|AT|AN|AI|AO|AP, str_9D90E0D936B90DE9, "mult ")
+SUBS(AR|AA|AS|AE|AT|AO, str_A477EDAF8B049617, "doar ")
+SUBS(AR|RGT|AA|AS|AE|AT|AO, str_A2B2E6E347976E7C, "oras ")
+SUBS(AR|AS|AE|AN|AI|AO, str_B61E9BC1A647A87C, "seldon ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO, str_40EAA896EA3BF67B, "nu-si ")
+SUBS(AR|AE|AT|AN|AI|AP, str_24D6A9A3B0C01D06, "vreme ")
+SUBS(AR|RGT|AE|AT|AN|AI|AP, str_02999DA470617659, "prin ")
+SUBS(AR|AA|AS|AE|AI|AP, str_2D785485E386A6DE, "zapada ")
+SUBS(AR|RGT|AA|AS|AE|AI|AP, str_D88FCCE2EF5FB737, "piesa ")
+SUBS(AR|AA|AS|AE|AN|AI, str_5F88127866377E30, "sinea ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI, str_17CAB6C5BEC5CEEB, "jake ")
+SUBS(AR|AA|AT|AN|AI|AO, str_B2BDDF48ABABA93E, "vazut ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO, str_E53286214BF40E54, "langa ")
+SUBS(AR|AS|AE|AT|AO|AP, str_DC059D0807D91781, "corp ")
+SUBS(AR|RGT|AS|AE|AT|AO|AP, str_FC0D43D0BE1994A8, "prost ")
+SUBS(AR|AA|AS|AT|AN|AI, str_F2AB8AA5E09C2627, "stiinta ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI, str_8DBFD5C7E2E0A8F7, "inca ")
+SUBS(AR|AA|AT|AN|AI|AP, str_30281A965E39B26C, "zambi ")
+SUBS(AR|RGT|AA|AT|AN|AI|AP, str_68E4B43ED8601F54, "pamint ")
+SUBS(AR|AS|AE|AT|AN|AO, str_02E5BAADFF2EF640, "trecut ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO, str_CE83803B7FDB8189, "usor ")
+SUBS(AR|AE|AT|AN|AI|AO, str_947A751F0DD9AA28, "trebuie ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO, str_D244FAC49F4041CB, "intr-o ")
+SUBS(AR|AS|AT|AN|AI|AO, str_6B02182174A3DD9C, "stiu ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO, str_378C4C23B1FB6E9E, "ochii ")
+SUBS(AR|AA|AS|AT|AO|AP, str_F2C0F39F6EAD453A, "soapta ")
+SUBS(AR|RGT|AA|AS|AT|AO|AP, str_112D7B20AF6E6537, "ostap ")
+SUBS(AR|AA|AS|AI|AO|AP, str_725D87E841B5F90F, "spala ")
+SUBS(AR|RGT|AA|AS|AI|AO|AP, str_D6CF4E50A26D7016, "lipsa ")
+SUBS(AR|AA|AE|AT|AN|AO, str_F94F557D4564DD4C, "erau ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO, str_7F451CD9801BBB3B, "n-ar ")
+SUBS(AR|AA|AE|AT|AN|AI, str_5992F9735265812F, "tinea ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI, str_3F2F4FA818260EDB, "inainte ")
+SUBS(AR|AA|AS|AE|AT|AP, str_C43CE2FA7ACF2119, "departe ")
+SUBS(AR|RGT|AA|AS|AE|AT|AP, str_7F8309C46FBC0ED2, "parca ")
+SUBS(AR|AA|AE|AN|AO|AP, str_8F39EDEC065DCB88, "anume ")
+SUBS(AR|RGT|AA|AE|AN|AO|AP, str_EF361D671C2B2277, "m-am ")
+SUBS(AR|AA|AS|AE|AT|AN, str_C3EA12240EB61504, "cand ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN, str_29F94418C78306A8, "jeff ")
+SUBS(AR|AA|AS|AT|AI|AP, str_8DDC1666EC6B1F70, "twisp ")
+SUBS(AR|RGT|AA|AS|AT|AI|AP, str_E116B8A3DD0A1008, "pisica ")
+SUBS(AR|AA|AS|AE|AN|AP, str_00D057953A3F2DEB, "seama ")
+SUBS(AR|RGT|AA|AS|AE|AN|AP, str_119FAC7ADD192AF2, "newman ")
+SUBS(AR|AA|AS|AN|AI|AO, str_BCC072B250C4FFDA, "salon ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO, str_970D63CB01E40D86, "nasul ")
+SUBS(AR|AA|AS|AE|AN|AO, str_7F7F04C082B68215, "doua ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO, str_CC6B506783BCE454, "n-as ")
+SUBS(AR|AA|AT|AN|AO|AP, str_F51C656D52F6AB30, "fum ")
+SUBS(AR|RGT|AA|AT|AN|AO|AP, str_189388E9A31C96D5, "muta ")
+SUBS(AR|AS|AE|AT|AI|AO, str_A552366FAAB97976, "cel ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO, str_6CD8A7B921DC0A64, "orice ")
+SUBS(AR|AS|AE|AT|AN|AP, str_C4B57F0400D28945, "cemp ")
+SUBS(AR|RGT|AS|AE|AT|AN|AP, str_2C2CEF3E773989D6, "mers ")
+SUBS(AR|AA|AS|AN|AI|AP, str_EAD0F7787249282C, "spaima ")
+SUBS(AR|RGT|AA|AS|AN|AI|AP, str_3D55CD3C63F55239, "masina ")
+SUBS(AR|AS|AE|AI|AO|AP, str_F5A2C146FB931010, "spele ")
+SUBS(AR|RGT|AS|AE|AI|AO|AP, str_13BA136EDBD8CE3D, "leopold ")
+SUBS(AR|AA|AE|AT|AN|AP, str_7375734CEB490763, "eram ")
+SUBS(AR|RGT|AA|AE|AT|AN|AP, str_22CC3EFF346CA6DB, "mare ")
+SUBS(AR|AA|AE|AN|AI|AP, str_9D33FF80DD4E2AEA, "examina ")
+SUBS(AR|RGT|AA|AE|AN|AI|AP, str_3B37D04C3AED2BA2, "maine ")
+SUBS(AR|AS|AE|AT|AN|AI, str_1C331A99253C0F98, "dintre ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI, str_681F831FB0E81162, "niste ")
+SUBS(AR|AA|AE|AT|AI|AP, str_811DD085F3A13904, "aparitia ")
+SUBS(AR|RGT|AA|AE|AT|AI|AP, str_29146626F0EB301A, "privirea ")
+SUBS(AR|AA|AS|AE|AT|AN|AP, str_4B902381FB543716, "camera ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_422251C9179625E6, "macar ")
+SUBS(AR|AA|AS|AE|AT|AN|AI, str_A81D389A4AF3DFAF, "chiar ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_3BCECBC626AF21E7, "incerca ")
+SUBS(AR|AA|AS|AE|AN|AI|AO, str_F8B888EF7971DFF7, "daneel ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_7F66E5A594CB9D4A, "indoiala ")
+SUBS(AR|AA|AS|AN|AI|AO|AP, str_005F524FC852EFC2, "simpla ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_43FD8F65DF0DD9FF, "psihanaliza ")
+SUBS(AR|AS|AE|AN|AI|AO|AP, str_594C620883E0A721, "domnule ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_2120E5EE072353E5, "limpede ")
+SUBS(AR|AA|AS|AE|AT|AI|AP, str_27703F71C426F78B, "expresie ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_4F6C506138FB813D, "paris ")
+SUBS(AR|AA|AE|AT|AI|AO|AP, str_8BA329353569B0FD, "apropie ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_40909FC2168247E4, "propria ")
+SUBS(AR|AA|AS|AT|AN|AO|AP, str_0FF2C33E494D811D, "acum ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_43E89B92A10B708E, "munca ")
+SUBS(AR|AS|AE|AT|AN|AO|AP, str_8FA2CBAC3A032BC0, "drum ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_2F3A2A7435E3F29D, "precum ")
+SUBS(AR|AA|AE|AT|AN|AI|AP, str_6A3F7123AC5FFFBD, "femeie ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_9399D619292D5B85, "prima ")
+SUBS(AR|AA|AT|AN|AI|AO|AP, str_1ED297C53BE402A9, "faptul ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_21FDE10F95C83570, "multa ")
+SUBS(AR|AA|AE|AN|AI|AO|AP, str_5044127857C093DB, "exemplu ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_7076A52249712F4F, "oameni ")
+SUBS(AR|AA|AS|AE|AT|AN|AO, str_B0AC3533A36C6A1D, "fusese ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_F85FA02AE87235ED, "noastra ")
+SUBS(AR|AE|AT|AN|AI|AO|AP, str_50FCFF7427C378CD, "trupul ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_5A2D228B6A476B43, "multe ")
+SUBS(AR|AS|AE|AT|AI|AO|AP, str_EAEB0BF9B4E13952, "clipe ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_E94FD79C95659866, "plece ")
+SUBS(AR|AA|AE|AT|AN|AI|AO, str_D24E8308E974EAB6, "vorba ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_1E43CBA2DE6EF9B8, "legatura ")
+SUBS(AR|AA|AE|AT|AN|AO|AP, str_522EE9C819BBCA09, "forma ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_AE9ED78C685BDEF6, "putea ")
+SUBS(AR|AA|AS|AE|AT|AO|AP, str_5F0F15C990A3CF35, "castorp ")
+SUBS(AR|RGT|AA|AS|AE|AT|AO|AP, str_76D62DECF1B3082E, "profesor ")
+SUBS(AR|AA|AS|AE|AI|AO|AP, str_92997A5CFC83C927, "deplasa ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_910130DF4C7F3449, "pilda ")
+SUBS(AR|AS|AT|AN|AI|AO|AP, str_2337D29D8962FE86, "chipul ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_AF223AE4CAE3614D, "mijlocul ")
+SUBS(AR|AA|AS|AT|AN|AI|AP, str_66A7427C7AC36CAC, "stiam ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_47365A4A9C452EF6, "mica ")
+SUBS(AR|AS|AE|AT|AN|AI|AP, str_BFF595D99542E428, "trimis ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_80078370113E53C1, "incepe ")
+SUBS(AR|AA|AS|AE|AN|AO|AP, str_2B7419244C18E358, "dupa ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_EA58CE85E5C90630, "m-as ")
+SUBS(AR|AA|AS|AT|AI|AO|AP, str_913BC87D4B6E6761, "clipa ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_4A062895BD6EDDB1, "politica ")
+SUBS(AR|AA|AS|AE|AN|AI|AP, str_1EF1945EA8E6F640, "asemeni ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_A459AC76392FF821, "inseamna ")
+SUBS(AR|AS|AE|AT|AN|AI|AO, str_1071F64006FFAD95, "sigur ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_C4804D1FBF166453, "lucru ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_CE6E4A7FF531EF94, "singura ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_5E3EE39B1C558704, "niciodata ")
+SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_3E530FA28EB32507, "capul ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_C1A52B6FA6184C6D, "placut ")
+SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_29A885A3A646CC20, "asupra ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_3FF58BD5BD308840, "jumatate ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_9A332A82495B5E0D, "dimineata ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_3CB9B36A5EC05505, "imediat ")
+SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_290DB145E4218429, "sigmund ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_B857E6CBE3A7F201, "inceput ")
+SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_240EA2ED41F0B474, "ti-am ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_64C4B42F5CC1803E, "probabil ")
+SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_67EFAC1F50906AEE, "sa-mi ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_28EAEE45DE319F91, "mesajul ")
+SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_195FC2868E05C956, "spatele ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_FB38D4376A7ACAD8, "picioare ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_ABCF2DD04EE4BA4D, "dumneavoastra ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_F2F306BBDDB4A2D2, "pardaillan ")
diff --git a/keyboards/gboards/dicts/aset/sv-keymap.def b/keyboards/gboards/dicts/aset/sv-keymap.def
new file mode 100644
index 0000000000..c2cd57c9ce
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/sv-keymap.def
@@ -0,0 +1,403 @@
+// This file is automatically generated. Do not edit it!
+
+PRES(AP, KC_P)
+PRES(AO, KC_O)
+PRES(AE, KC_E)
+PRES(AN, KC_N)
+PRES(AA, KC_A)
+PRES(AT, KC_T)
+PRES(AS, KC_S)
+PRES(AI, KC_I)
+PRES(AT|AO, KC_G)
+PRES(AT|AI, KC_V)
+PRES(AS|AO, KC_DOT)
+PRES(AO|AP, KC_SCLN)
+KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END})
+PRES(AN|AO, KC_U)
+KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END})
+PRES(AI|AO, KC_L)
+PRES(AA|AT, KC_F)
+PRES(AS|AI, KC_K)
+PRES(AA|AI, KC_Z)
+PRES(AT|AN, KC_B)
+PRES(AN|AI, KC_H)
+PRES(AS|AN, KC_J)
+PRES(AS|AE, KC_D)
+PRES(AN|AP, KC_M)
+PRES(AE|AP, KC_QUOT)
+KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END})
+PRES(AA|AN, KC_Q)
+PRES(AA|AS, KC_W)
+PRES(AE|AT, KC_R)
+PRES(AE|AO, KC_MINS)
+PRES(AE|AI, KC_COMM)
+PRES(AS|AT, KC_C)
+PRES(AA|AE, KC_X)
+PRES(AE|AN, KC_Y)
+PRES(AT|AP, KC_BSPC)
+PRES(AA|AP, KC_QUOT)
+PRES(AN|AI|AO|AP, KC_ENT)
+SUBS(AR|AI|AO|AP, str_CB2A8B4741DA9E6F, "lopp ")
+SUBS(AR|AS|AT|AN, str_6DC42A95A999C07A, "bbc ")
+SUBS(AR|AS|AE|AT, str_925BB6ABF283A228, "det ")
+SUBS(AR|AA|AS|AE, str_6E5B393925FE64CE, "da ")
+SUBS(AR|AN|AO|AP, str_0F33CAECD78B3E6B, "om ")
+SUBS(AR|AN|AI|AP, str_683696748A01B41C, "min ")
+SUBS(AR|AA|AS|AT, str_6BF50CC3535E6E3B, "satt ")
+SUBS(AR|AS|AI|AP, str_A147DE6F127B4CD6, "skip ")
+SUBS(AR|AA|AS|AO, str_F8126BA90C544306, "wow ")
+SUBS(AR|AN|AI|AO, str_C3BD48523B2E5650, "hon ")
+SUBS(AR|AA|AI|AP, str_DF4123F19953E2FD, "pia ")
+SUBS(AR|AS|AO|AP, str_384757EE1D95552D, "sop ")
+SUBS(AR|AE|AO|AP, str_68A050786B16A5F7, "o' ")
+SUBS(AR|AA|AE|AT, str_C1FED2185FB7D60F, "ar ")
+SUBS(AR|AT|AO|AP, str_686ED37FDD7B93CA, "topp ")
+SUBS(AR|AA|AN|AO, str_E136E894CA311E36, "annu ")
+SUBS(AR|AA|AE|AN|AO, str_7D50A0C65C92712F, "anyone ")
+SUBS(AR|AE|AT|AI|AP, str_10A8823ACF08084F, "pierre ")
+SUBS(AR|AA|AI|AO|AP, str_2395698702FA8208, "lapp ")
+SUBS(AR|AA|AE|AT|AI, str_776A8271136FBCDD, "var ")
+SUBS(AR|AE|AI|AO|AP, str_56B0C240EA9FE481, "people ")
+SUBS(AR|AA|AS|AE|AT, str_DC720A1A790186F1, "dar ")
+SUBS(AR|AA|AS|AO|AP, str_671819798AD99191, "sapo ")
+SUBS(AR|AA|AS|AE|AO, str_0BD2068EF14D24D6, "doda ")
+SUBS(AR|AE|AN|AI|AP, str_3DE7FC713EFDE099, "hem ")
+SUBS(AR|AS|AE|AT|AN, str_B9B2970CE84253EE, "tyst ")
+SUBS(AR|AS|AE|AT|AI, str_9587EB7402068F1B, "vid ")
+SUBS(AR|AT|AI|AO|AP, str_C00F1DE521F82126, "pigg ")
+SUBS(AR|AE|AN|AO|AP, str_C25E3E57C8BCC515, "uppe ")
+SUBS(AR|AA|AS|AT|AP, str_5C8A5086E8C1FD71, "pasta ")
+SUBS(AR|AA|AE|AT|AO, str_DAE84F2729ACCE2B, "for ")
+SUBS(AR|AA|AN|AI|AP, str_C28057540B4DAEAD, "mina ")
+SUBS(AR|AS|AT|AI|AP, str_ADFCEE2911E10044, "tips ")
+SUBS(AR|AA|AN|AO|AP, str_29E07354F08F6B18, "oppna ")
+SUBS(AR|AA|AE|AN|AI, str_B0D068D005493603, "annie ")
+SUBS(AR|AA|AS|AE|AP, str_E51F9C0F39177E4D, "passade ")
+SUBS(AR|AA|AS|AT|AI, str_8D542707BC0BDE4F, "fick ")
+SUBS(AR|AA|AT|AO|AP, str_4F7EE21A281E3CE2, "pagatt ")
+SUBS(AR|AA|AE|AO|AP, str_E7CC20BF367BAAB0, "expo ")
+SUBS(AR|AE|AN|AO, str_3CF92217D792ADB9, "eu ")
+SUBS(AR|RGT|AE|AN|AO, str_E429BF3EE734FF3A, "you ")
+SUBS(AR|AS|AE|AN, str_ECE5A6CDF4EED85C, "den ")
+SUBS(AR|RGT|AS|AE|AN, str_83A502A30DE82D24, "nej ")
+SUBS(AR|AS|AI|AO, str_C9ADB25B4C37D131, "sol ")
+SUBS(AR|RGT|AS|AI|AO, str_71BB7B180F4C724C, "loss ")
+SUBS(AR|AT|AN|AO, str_30278AC8BAD5995C, "but ")
+SUBS(AR|RGT|AT|AN|AO, str_AF931575FB1EA518, "ut ")
+SUBS(AR|AA|AT|AO, str_9360B38FC08F77D9, "ga ")
+SUBS(AR|RGT|AA|AT|AO, str_BF38370C83727D39, "of ")
+SUBS(AR|AT|AN|AI, str_C13C85985E26BFC4, "bit ")
+SUBS(AR|RGT|AT|AN|AI, str_D5ACE27258AF148F, "hit ")
+SUBS(AR|AE|AT|AO, str_E5E3AE6DB8C6A3E0, "gor ")
+SUBS(AR|RGT|AE|AT|AO, str_B97355B02DCE4543, "or ")
+SUBS(AR|AE|AI|AO, str_05ED48987A1828F9, "el ")
+SUBS(AR|RGT|AE|AI|AO, str_05A9C753CDE4911A, "le ")
+SUBS(AR|AS|AT|AO, str_4397946AE21A0B1E, "sot ")
+SUBS(AR|RGT|AS|AT|AO, str_F12BF1912FA70BCD, "ost ")
+SUBS(AR|AA|AT|AI, str_BA2E119CA038883C, "av ")
+SUBS(AR|RGT|AA|AT|AI, str_D7978D4AE69E4592, "if ")
+SUBS(AR|AS|AE|AI, str_15A3DFC05BB602DC, "skedde ")
+SUBS(AR|RGT|AS|AE|AI, str_A1A4E3A00C59C039, "ide ")
+SUBS(AR|AE|AT|AP, str_BEBC786E22CB711B, "rep ")
+SUBS(AR|RGT|AE|AT|AP, str_342F8CACA85F0AD6, "per ")
+SUBS(AR|AE|AN|AI, str_7E3D8B1C859776CA, "eh ")
+SUBS(AR|RGT|AE|AN|AI, str_4FFE5A0A17921200, "henne ")
+SUBS(AR|AA|AS|AI, str_378FF30A934CB6BA, "ska ")
+SUBS(AR|RGT|AA|AS|AI, str_71F4FF1F63663104, "kaka ")
+SUBS(AR|AE|AT|AI, str_39433EC098ED9804, "vet ")
+SUBS(AR|RGT|AE|AT|AI, str_60A95BD1113F9846, "iver ")
+SUBS(AR|AA|AT|AP, str_3E864890E72C0E60, "tappa ")
+SUBS(AR|RGT|AA|AT|AP, str_7A06301D23DD2E0F, "pat ")
+SUBS(AR|AS|AE|AP, str_9E6B55FFD6A1FEB5, "esp ")
+SUBS(AR|RGT|AS|AE|AP, str_389774CE338E67BC, "'de ")
+SUBS(AR|AS|AN|AP, str_D63FDE230FD34803, "sms ")
+SUBS(AR|RGT|AS|AN|AP, str_D86353170513CEA4, "jp ")
+SUBS(AR|AA|AS|AN, str_45A403A4960EE226, "san ")
+SUBS(AR|RGT|AA|AS|AN, str_16D6BE915787F782, "ja ")
+SUBS(AR|AS|AE|AO, str_5630D9590D848D9C, "dod ")
+SUBS(AR|RGT|AS|AE|AO, str_239CA41F6B24AC83, "ode ")
+SUBS(AR|AA|AE|AN, str_F52CCEBB3C161006, "ena ")
+SUBS(AR|RGT|AA|AE|AN, str_C2B5F013BDE248EE, "nya ")
+SUBS(AR|AA|AI|AO, str_30B8BB99FFF81FC0, "alla ")
+SUBS(AR|RGT|AA|AI|AO, str_9948A11D8AA163D2, "lilla ")
+SUBS(AR|AS|AN|AI, str_55863E4A819B49C1, "sin ")
+SUBS(AR|RGT|AS|AN|AI, str_E9D65B1F0CC7B588, "his ")
+SUBS(AR|AE|AT|AN, str_7D2440FBBF9D0256, "be ")
+SUBS(AR|RGT|AE|AT|AN, str_099F2492A3C5F70B, "ner ")
+SUBS(AR|AA|AN|AI, str_BF40C27E59DAAC7B, "ah ")
+SUBS(AR|RGT|AA|AN|AI, str_BB30CFFA4957C51C, "han ")
+SUBS(AR|AS|AN|AO, str_3D29840CE477716A, "son ")
+SUBS(AR|RGT|AS|AN|AO, str_109DDC2DF93BCFF8, "ju ")
+SUBS(AR|AA|AS|AP, str_6244D0D593084999, "asp ")
+SUBS(AR|RGT|AA|AS|AP, str_4DFAE898587FE4FE, "pass ")
+SUBS(AR|AA|AN|AP, str_77BE4D44A5F2AD27, "am ")
+SUBS(AR|RGT|AA|AN|AP, str_7814AB9A9D941FFB, "man ")
+SUBS(AR|AA|AE|AI, str_4267018742102E46, "xii ")
+SUBS(AR|RGT|AA|AE|AI, str_3430D3508CC4EB85, "iae ")
+SUBS(AR|AS|AT|AI, str_0172A9BC77031EE6, "sitt ")
+SUBS(AR|RGT|AS|AT|AI, str_732FCC97258E0FD6, "its ")
+SUBS(AR|AE|AN|AP, str_92051BF77C6DA259, "e'en ")
+SUBS(AR|RGT|AE|AN|AP, str_B969E2F841D9C54A, "men ")
+SUBS(AR|AT|AI|AO, str_EAA77E250F575DF4, "till ")
+SUBS(AR|RGT|AT|AI|AO, str_DD07510FB54603F8, "liv ")
+SUBS(AR|AA|AT|AN, str_6E47B8B84048A4C2, "annat ")
+SUBS(AR|RGT|AA|AT|AN, str_47B698232847D3D2, "nat ")
+SUBS(AR|AA|AS|AE|AT|AN, str_12CD003A21802C45, "andra ")
+SUBS(AR|AS|AE|AI|AO|AP, str_7F66830857589EA6, "spel ")
+SUBS(AR|AA|AS|AE|AT|AO, str_DF41DF6D38B1F4BB, "sager ")
+SUBS(AR|AA|AE|AN|AI|AP, str_880930E7BED2E979, "hemma ")
+SUBS(AR|AS|AT|AI|AO|AP, str_FF6FF5733057230C, "plotsligt ")
+SUBS(AR|AA|AS|AT|AO|AP, str_8EDF92EF8A7756C0, "stoppa ")
+SUBS(AR|AS|AE|AT|AN|AI, str_86D9A0FDFF9A3705, "tiden ")
+SUBS(AR|AE|AN|AI|AO|AP, str_BEB515F946EA1DBF, "mille ")
+SUBS(AR|AS|AE|AI|AP, str_34AB26CE48AFBE5C, "skepp ")
+SUBS(AR|RGT|AS|AE|AI|AP, str_3BE3101B06222C42, "keep ")
+SUBS(AR|AS|AT|AN|AI, str_F67830C3E4E560AB, "this ")
+SUBS(AR|RGT|AS|AT|AN|AI, str_622075F6AD6ED0AF, "nick ")
+SUBS(AR|AS|AE|AN|AO, str_68105B858B425CB4, "du ")
+SUBS(AR|RGT|AS|AE|AN|AO, str_6F0848512A20FB9E, "nojd ")
+SUBS(AR|AE|AT|AN|AO, str_BA3BD4D2DA7AE86E, "bort ")
+SUBS(AR|RGT|AE|AT|AN|AO, str_20C7E0A6ACD15B70, "ur ")
+SUBS(AR|AA|AS|AN|AI, str_2DA332A85B0767C0, "sina ")
+SUBS(AR|RGT|AA|AS|AN|AI, str_4B4CC6627CFD3ECE, "hans ")
+SUBS(AR|AA|AE|AT|AN, str_12EC974726DB1A33, "fran ")
+SUBS(AR|RGT|AA|AE|AT|AN, str_C8E26DF07F882DBA, "nar ")
+SUBS(AR|AS|AN|AI|AP, str_7B3D9BF3BD285CFC, "smink ")
+SUBS(AR|RGT|AS|AN|AI|AP, str_9BBF70A3DB63BC12, "minns ")
+SUBS(AR|AS|AT|AN|AO, str_50122A31FA39E465, "tjugo ")
+SUBS(AR|RGT|AS|AT|AN|AO, str_C039D2A5D9FC5D72, "just ")
+SUBS(AR|AE|AT|AI|AO, str_87C9A08BCD5987C8, "eller ")
+SUBS(AR|RGT|AE|AT|AI|AO, str_2CCE6615DDD45C8E, "over ")
+SUBS(AR|AA|AE|AN|AP, str_7E02E71632E36E12, "amy ")
+SUBS(AR|RGT|AA|AE|AN|AP, str_6FB419EBFA4FDDD0, "mannen ")
+SUBS(AR|AA|AE|AI|AO, str_4D67956A1937C06A, "alex ")
+SUBS(AR|RGT|AA|AE|AI|AO, str_AE4F52A365891A9E, "ozzie ")
+SUBS(AR|AT|AN|AO|AP, str_C7B05810B9878F2F, "tom ")
+SUBS(AR|RGT|AT|AN|AO|AP, str_7E273C54E980F6C3, "mot ")
+SUBS(AR|AA|AN|AI|AO, str_A8DDA231BA2910B9, "quinn ")
+SUBS(AR|RGT|AA|AN|AI|AO, str_94518147FBDAF2CF, "halla ")
+SUBS(AR|AA|AE|AT|AP, str_C1BDE406A11E6A7E, "trappa ")
+SUBS(AR|RGT|AA|AE|AT|AP, str_F552C5CE7412D067, "par ")
+SUBS(AR|AA|AS|AI|AP, str_06314E625F923056, "skapa ")
+SUBS(AR|RGT|AA|AS|AI|AP, str_721CDE1DEC3DE71C, "kapp ")
+SUBS(AR|AS|AN|AO|AP, str_7A83FEE54F908E5E, "som ")
+SUBS(AR|RGT|AS|AN|AO|AP, str_64DA274C556CB268, "puss ")
+SUBS(AR|AE|AT|AN|AP, str_CD9F3081A1453B39, "typ ")
+SUBS(AR|RGT|AE|AT|AN|AP, str_4883074D107B4156, "mer ")
+SUBS(AR|AA|AT|AN|AP, str_57A08AEA16073C82, "famn ")
+SUBS(AR|RGT|AA|AT|AN|AP, str_06AABBFC9BF9658F, "mat ")
+SUBS(AR|AE|AT|AN|AI, str_0C571CCD7FA5FAEF, "the ")
+SUBS(AR|RGT|AE|AT|AN|AI, str_EA6DAE4B0B7868AC, "inte ")
+SUBS(AR|AE|AT|AO|AP, str_C46812F9485ACF26, "grepp ")
+SUBS(AR|RGT|AE|AT|AO|AP, str_719CEA0EAF70B4FD, "oppet ")
+SUBS(AR|AS|AT|AO|AP, str_D2F6AE863C407DA6, "stopp ")
+SUBS(AR|RGT|AS|AT|AO|AP, str_993FB3354F37599E, "post ")
+SUBS(AR|AA|AS|AE|AN, str_D970791D8E529B3B, "sedan ")
+SUBS(AR|RGT|AA|AS|AE|AN, str_C161ABA85FEDF657, "new ")
+SUBS(AR|AA|AS|AT|AN, str_C6BEF18FF179F36F, "fanns ")
+SUBS(AR|RGT|AA|AS|AT|AN, str_04CBF962C838CED3, "nastan ")
+SUBS(AR|AA|AS|AN|AP, str_E1C25EB8D3796D6A, "samma ")
+SUBS(AR|RGT|AA|AS|AN|AP, str_248A481E3372E8F5, "massa ")
+SUBS(AR|AE|AN|AI|AO, str_194D9C755CA1AE6D, "elin ")
+SUBS(AR|RGT|AE|AN|AI|AO, str_8EC9B0CF3D5ABFF6, "hel ")
+SUBS(AR|AA|AS|AI|AO, str_B9A72CF6068BD9D2, "alls ")
+SUBS(AR|RGT|AA|AS|AI|AO, str_4AFAEDFAA9FC24CD, "lika ")
+SUBS(AR|AA|AS|AN|AO, str_3F8BD1868475D8B9, "sonja ")
+SUBS(AR|RGT|AA|AS|AN|AO, str_85D1F287CC8F2629, "usa ")
+SUBS(AR|AS|AT|AI|AO, str_1109F5FD7D22AAC8, "sig ")
+SUBS(AR|RGT|AS|AT|AI|AO, str_FF9FC3F804E743D8, "likt ")
+SUBS(AR|AA|AS|AT|AO, str_012BC8136AB7012F, "sag ")
+SUBS(AR|RGT|AA|AS|AT|AO, str_D3DFC6AC6C21C7E3, "oftast ")
+SUBS(AR|AS|AE|AT|AP, str_6A7B258F0DDCF55E, "spred ")
+SUBS(AR|RGT|AS|AE|AT|AP, str_D4E79D57ECF89EE4, "press ")
+SUBS(AR|AS|AE|AN|AP, str_AB4FDC245F092768, "dem ")
+SUBS(AR|RGT|AS|AE|AN|AP, str_BA4C53A61687D977, "med ")
+SUBS(AR|AT|AN|AI|AP, str_428565F1D06EBE06, "bmi ")
+SUBS(AR|RGT|AT|AN|AI|AP, str_EE51CC402749D78B, "mitt ")
+SUBS(AR|AS|AI|AO|AP, str_B420CBE86C7BE38D, "slips ")
+SUBS(AR|RGT|AS|AI|AO|AP, str_D1CF976AEEEFB6C8, "polis ")
+SUBS(AR|AA|AT|AI|AO, str_85DD959B52E378D5, "allt ")
+SUBS(AR|RGT|AA|AT|AI|AO, str_03908167F0479139, "lag ")
+SUBS(AR|AA|AS|AE|AI, str_9453FC62F5332E3D, "sida ")
+SUBS(AR|RGT|AA|AS|AE|AI, str_B77627A066E257E1, "kikade ")
+SUBS(AR|AS|AE|AN|AI, str_3DBAD2413F36A90A, "din ")
+SUBS(AR|RGT|AS|AE|AN|AI, str_BA52ED42DD017F05, "hennes ")
+SUBS(AR|AA|AT|AN|AI, str_DA20B440A7186A4B, "that ")
+SUBS(AR|RGT|AA|AT|AN|AI, str_671442E13F00342E, "haft ")
+SUBS(AR|AA|AT|AN|AO, str_F3FA41B52DE36D40, "gang ")
+SUBS(AR|RGT|AA|AT|AN|AO, str_ADA33F3823C59F0C, "nagot ")
+SUBS(AR|AT|AN|AI|AO, str_166C1C638CBE4F0B, "bli ")
+SUBS(AR|RGT|AT|AN|AI|AO, str_DB42D9B320F0D944, "hogt ")
+SUBS(AR|AS|AN|AI|AO, str_E15586D5B544FD62, "skull ")
+SUBS(AR|RGT|AS|AN|AI|AO, str_8179E159692B8D23, "hos ")
+SUBS(AR|AS|AE|AT|AO, str_CD184FE143DBDC11, "stod ")
+SUBS(AR|RGT|AS|AE|AT|AO, str_D859293B22449C89, "ord ")
+SUBS(AR|AS|AE|AI|AO, str_1861909A5CAE7807, "del ")
+SUBS(AR|RGT|AS|AE|AI|AO, str_00F38181DF316F4B, "ledde ")
+SUBS(AR|AE|AT|AN|AI|AO|AP, str_165507E6E85DD941, "igenom ")
+SUBS(AR|AA|AS|AE|AN|AI, str_41BE0294178512AB, "sidan ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI, str_00735C43D435EF12, "hade ")
+SUBS(AR|AS|AT|AN|AI|AO, str_96BFB44EFF10350C, "slut ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO, str_20856FF8512ED81F, "och ")
+SUBS(AR|AA|AE|AT|AI|AO, str_41E284BFF030473D, "varfor ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO, str_B74E83C046B23FC2, "later ")
+SUBS(AR|AS|AT|AN|AI|AP, str_A523540C97D0BDFB, "smith ")
+SUBS(AR|RGT|AS|AT|AN|AI|AP, str_0237BF0C3728CA80, "minst ")
+SUBS(AR|AA|AS|AT|AN|AP, str_0F7A33633730631F, "samt ")
+SUBS(AR|RGT|AA|AS|AT|AN|AP, str_B8ACD052577C0651, "mats ")
+SUBS(AR|AA|AE|AT|AN|AP, str_5546EDAE8D3CE507, "fram ")
+SUBS(AR|RGT|AA|AE|AT|AN|AP, str_9C3BB9AE6FBA08AC, "menar ")
+SUBS(AR|AA|AS|AT|AN|AI, str_29CAA37EE01CFD8F, "finns ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI, str_65230854244DEEA5, "kvinna ")
+SUBS(AR|AA|AS|AN|AO|AP, str_BFEABB3BEB86B455, "somna ")
+SUBS(AR|RGT|AA|AS|AN|AO|AP, str_255552DE3D93DC55, "paus ")
+SUBS(AR|AA|AS|AE|AN|AO, str_1D76C98090617D6E, "down ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO, str_4A002965FED4A8FE, "undan ")
+SUBS(AR|AA|AT|AN|AI|AO, str_C4FF45788051CA5A, "vanligt ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO, str_4CC29CA53EAD7246, "inga ")
+SUBS(AR|AA|AT|AN|AO|AP, str_44CBDA863AA5585D, "tomma ")
+SUBS(AR|RGT|AA|AT|AN|AO|AP, str_B91FF14178302E0A, "manga ")
+SUBS(AR|AA|AS|AE|AT|AP, str_BB75198872F76050, "spar ")
+SUBS(AR|RGT|AA|AS|AE|AT|AP, str_516AC7176516B725, "pratade ")
+SUBS(AR|AA|AS|AE|AI|AO, str_C375A03353B42973, "alldeles ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO, str_77C9753B5C876862, "lade ")
+SUBS(AR|AA|AE|AT|AN|AO, str_D0A603CC65D30C70, "gangen ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO, str_BD3467F836FD2F8C, "nagra ")
+SUBS(AR|AE|AT|AN|AO|AP, str_BCAE05E7EF3D810B, "genom ")
+SUBS(AR|RGT|AE|AT|AN|AO|AP, str_F173C987BE4F08AB, "mor ")
+SUBS(AR|AA|AN|AI|AO|AP, str_6BC4CA7BDF8782FF, "allihop ")
+SUBS(AR|RGT|AA|AN|AI|AO|AP, str_E0E5E182B30FE2E3, "lamna ")
+SUBS(AR|AA|AS|AT|AI|AP, str_1018E41A0C1EC1A0, "skapat ")
+SUBS(AR|RGT|AA|AS|AT|AI|AP, str_85A59F9EA1F92944, "packa ")
+SUBS(AR|AA|AS|AT|AI|AO, str_C3D89EF184B5BAE6, "alltsa ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO, str_18855DE37C447A96, "ocksa ")
+SUBS(AR|AA|AS|AN|AI|AP, str_FECDF8E66759AE90, "smak ")
+SUBS(AR|RGT|AA|AS|AN|AI|AP, str_78ED68ED18DCC543, "manniska ")
+SUBS(AR|AA|AS|AE|AT|AI, str_85A5D69A159324FC, "vad ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI, str_9A09060F892B014F, "kvar ")
+SUBS(AR|AT|AN|AI|AO|AP, str_E1F9A5A9593524A6, "glomt ")
+SUBS(AR|RGT|AT|AN|AI|AO|AP, str_2CB95DC376B85715, "mig ")
+SUBS(AR|AA|AE|AN|AO|AP, str_A9AF498065DEF967, "anonym ")
+SUBS(AR|RGT|AA|AE|AN|AO|AP, str_70F23D1E20A1ACD4, "umea ")
+SUBS(AR|AA|AS|AT|AN|AO, str_C87062042895E975, "sang ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO, str_81A8C6D8973AFD83, "jag ")
+SUBS(AR|AS|AE|AT|AI|AO, str_793519F6C38F4A03, "dig ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO, str_48A10C7DE9334752, "kort ")
+SUBS(AR|AA|AS|AN|AI|AO, str_8E12F1E2FEB357B7, "skolan ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO, str_9C690AE731952F94, "kunna ")
+SUBS(AR|AA|AS|AI|AO|AP, str_0A66BD1C9CC79B64, "sallskap ")
+SUBS(AR|RGT|AA|AS|AI|AO|AP, str_5416D15BFD89C25D, "kopa ")
+SUBS(AR|AS|AE|AN|AI|AO, str_23364D98E5BADAA3, "skulle ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO, str_5E4907A9602E385A, "kunde ")
+SUBS(AR|AA|AS|AE|AN|AP, str_C9922B7D35F8F5FF, "ensam ")
+SUBS(AR|RGT|AA|AS|AE|AN|AP, str_79413BF1389127FB, "medan ")
+SUBS(AR|AA|AE|AT|AN|AI, str_7E37EC9551F812BA, "aven ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI, str_4ADA2A4F18F54100, "har ")
+SUBS(AR|AA|AE|AN|AI|AO, str_93C5A86211AA7CA2, "elina ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO, str_97AE27037986ADEA, "hela ")
+SUBS(AR|AA|AE|AT|AI|AP, str_F8CB64C5A270954A, "varpa ")
+SUBS(AR|RGT|AA|AE|AT|AI|AP, str_18606D9ECE0D83F1, "partiet ")
+SUBS(AR|AS|AE|AN|AO|AP, str_12BF12EEF13D6E95, "dom ")
+SUBS(AR|RGT|AS|AE|AN|AO|AP, str_03BC9D6CB8B3908A, "mod ")
+SUBS(AR|AS|AT|AN|AO|AP, str_AF8CB41B072A6FE4, "com ")
+SUBS(AR|RGT|AS|AT|AN|AO|AP, str_502F482B79087297, "most ")
+SUBS(AR|AS|AE|AT|AO|AP, str_83C26810E3BD3012, "greps ")
+SUBS(AR|RGT|AS|AE|AT|AO|AP, str_5204C59B3BF29E2F, "process ")
+SUBS(AR|AA|AS|AE|AI|AP, str_5ADD312E912CFFE9, "skapade ")
+SUBS(AR|RGT|AA|AS|AE|AI|AP, str_DB2C7D62AC684467, "pekade ")
+SUBS(AR|AS|AN|AI|AO|AP, str_15DFAD6856F1ED67, "slump ")
+SUBS(AR|RGT|AS|AN|AI|AO|AP, str_C50B116423771F39, "kom ")
+SUBS(AR|AE|AT|AN|AI|AP, str_0057544F35671D44, "vem ")
+SUBS(AR|RGT|AE|AT|AN|AI|AP, str_60B0320603B7F843, "mitten ")
+SUBS(AR|AS|AE|AT|AN|AP, str_01860FF7012071E5, "september ")
+SUBS(AR|RGT|AS|AE|AT|AN|AP, str_44BF2FC17F81D9DC, "mest ")
+SUBS(AR|AS|AE|AN|AI|AP, str_1FC28B1791FCDABB, "spisen ")
+SUBS(AR|RGT|AS|AE|AN|AI|AP, str_6FE29D77C1F08C97, "mindes ")
+SUBS(AR|AA|AE|AT|AO|AP, str_0C644F2339AF7F37, "rapport ")
+SUBS(AR|RGT|AA|AE|AT|AO|AP, str_5E0C8ECDADE5F1A0, "page ")
+SUBS(AR|AS|AE|AT|AN|AO, str_8DF4F0A3E8D06533, "gjorde ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO, str_7A9785B2733BF653, "under ")
+SUBS(AR|AE|AT|AN|AI|AO, str_13A17952D7936000, "blev ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO, str_ABE318F1EB93CC7F, "hur ")
+SUBS(AR|AA|AE|AI|AO|AP, str_F7D795E2DE04290F, "apple ")
+SUBS(AR|RGT|AA|AE|AI|AO|AP, str_34EA7F3BE527A04F, "pela ")
+SUBS(AR|AS|AE|AT|AI|AP, str_8CC7749F68433827, "respekt ")
+SUBS(AR|RGT|AS|AE|AT|AI|AP, str_DB4FF6C628F2F042, "precis ")
+SUBS(AR|AA|AT|AN|AI|AP, str_1AFD7B5D30FA8F4A, "fatima ")
+SUBS(AR|RGT|AA|AT|AN|AI|AP, str_9B3C263F520E632D, "hamta ")
+SUBS(AR|AE|AT|AI|AO|AP, str_1A4EF315EA80344F, "grip ")
+SUBS(AR|RGT|AE|AT|AI|AO|AP, str_E00C01D3BBA094DD, "prov ")
+SUBS(AR|AA|AT|AI|AO|AP, str_8F1B401C7BCDC7EE, "filippa ")
+SUBS(AR|RGT|AA|AT|AI|AO|AP, str_45FE9A2B260894A6, "pavliga ")
+SUBS(AR|AA|AS|AE|AI|AO|AP, str_B47B50D1208647C5, "spelade ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_41164DEA1BFCD7FF, "klappade ")
+SUBS(AR|AA|AS|AE|AT|AO|AP, str_730AB5BBBA2305E9, "ropade ")
+SUBS(AR|RGT|AA|AS|AE|AT|AO|AP, str_D21982893DED0AFD, "pastod ")
+SUBS(AR|AA|AE|AT|AI|AO|AP, str_58DBAC3080F43A2C, "april ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_EC34ADA15E62D00B, "lappar ")
+SUBS(AR|AA|AS|AT|AN|AI|AO, str_AB25D3399C16705C, "sjalv ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_A79BBD5387E55E2E, "klockan ")
+SUBS(AR|AA|AS|AE|AT|AI|AO, str_B874CB7A247D38E7, "aldrig ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_B109FA5914BAB3CC, "klart ")
+SUBS(AR|AA|AS|AE|AT|AN|AP, str_174C90A0B77D66CF, "bestamde ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_631C484EF5C17F60, "maste ")
+SUBS(AR|AS|AE|AT|AN|AI|AO, str_A0FB77BE600C518D, "verkligen ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_159DA67630B9C4A9, "huvudet ")
+SUBS(AR|AS|AE|AT|AN|AO|AP, str_D809EA1C162F05D0, "dessutom ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_938C6DD7DE962990, "person ")
+SUBS(AR|AA|AE|AT|AN|AI|AP, str_75328AD6ECDB94B3, "timmar ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_20D808CCE48F9C34, "paven ")
+SUBS(AR|AA|AE|AT|AN|AO|AP, str_A9F017B0DEA052B4, "framfor ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_E735B15EE44DE283, "pengar ")
+SUBS(AR|AA|AS|AE|AT|AI|AP, str_60DD52897AE7328E, "sprak ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_A2DCF68E7ACD2699, "patrik ")
+SUBS(AR|AA|AS|AE|AN|AI|AP, str_E3AE17CB28B55902, "spanien ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_4643015F5002ABFF, "make ")
+SUBS(AR|AA|AS|AE|AT|AN|AI, str_730A4A8F280D802E, "tankte ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_499CACB6288E17DD, "kanner ")
+SUBS(AR|AA|AT|AN|AI|AO|AP, str_FB42C17B31D14164, "gamla ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_97C00B523408F8B7, "lamnat ")
+SUBS(AR|AA|AE|AN|AI|AO|AP, str_2D9B3C8BB10F4C71, "exempel ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_096EF40B209100B2, "mellan ")
+SUBS(AR|AA|AS|AT|AN|AI|AP, str_16A616A24AAA80D6, "skamt ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_A04DFE6A7FAEDD8E, "knappt ")
+SUBS(AR|AA|AS|AT|AN|AO|AP, str_1C8B3965080EEF19, "tomas ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_FFAE1393B428FE51, "magnus ")
+SUBS(AR|AA|AS|AT|AI|AO|AP, str_62AF0D5F4BB7987C, "slappt ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_FBADBE55C0272903, "plats ")
+SUBS(AR|AA|AS|AE|AN|AO|AP, str_98E174199A997AFD, "djupa ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_0A6701358CC73E3A, "oppnade ")
+SUBS(AR|AA|AS|AN|AI|AO|AP, str_BB4D7CF6778AD206, "smala ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_B8D7EF0ABFA2C4C3, "komma ")
+SUBS(AR|AA|AS|AE|AN|AI|AO, str_88F5A43BE0BC072E, "skillnad ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_95B847E486379B38, "handlade ")
+SUBS(AR|AS|AT|AN|AI|AO|AP, str_5C58D6B1BEC926EF, "stockholm ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_7C8D46C209F732E4, "kommit ")
+SUBS(AR|AA|AS|AE|AT|AN|AO, str_258AA3102EC41BD6, "borjade ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_646D208629EDBFC1, "undrade ")
+SUBS(AR|AS|AE|AT|AI|AO|AP, str_961F574E5DB8CD35, "speciellt ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_64974DC541FEDAEF, "kropp ")
+SUBS(AR|AS|AE|AN|AI|AO|AP, str_CE356BCCA5A45B45, "ekonomi ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_30354D5A4B436996, "polisen ")
+SUBS(AR|AA|AE|AT|AN|AI|AO, str_90EB3F133AC9CF04, "vagen ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_F7B5CD697F847A3A, "langre ")
+SUBS(AR|AS|AE|AT|AN|AI|AP, str_04D524DCEC185846, "centimeter ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AP, str_AD0842BD224F368E, "mycket ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_37A6692CFD8DF23C, "bland ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_9D5D6B2DFAEDAA76, "ibland ")
+SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_26DB64F196A60D81, "slappte ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_E4B4237662F98075, "kapitel ")
+SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_D0D226AAA0B90708, "samlade ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_1BBBF194DC4F2E9E, "lamnade ")
+SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_C949F411BCF227A9, "eftersom ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_5A4FC81688AEE4AB, "omradet ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_BFE60D3420EC2D27, "amerikanska ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_786E0CCB3A9F8DE2, "marken ")
+SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_8EE92B2E8CDC5E0B, "tvartom ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_F1D9096F612CF387, "information ")
+SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_B6704D34E096633F, "bakom ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_463790F4F9CDB0AD, "langsamt ")
+SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_1A5961CCABB64774, "emellertid ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_2286C79D95E0BDDA, "kommer ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_B04FBE0155955955, "samtidigt ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_52DA64450BF48564, "manniskor ")
diff --git a/keyboards/gboards/dicts/aset/tr-keymap.def b/keyboards/gboards/dicts/aset/tr-keymap.def
new file mode 100644
index 0000000000..93e1053b1f
--- /dev/null
+++ b/keyboards/gboards/dicts/aset/tr-keymap.def
@@ -0,0 +1,387 @@
+// This file is automatically generated. Do not edit it!
+
+PRES(AE, KC_E)
+PRES(AA, KC_A)
+PRES(AT, KC_T)
+PRES(AI, KC_I)
+PRES(AN, KC_N)
+PRES(AS, KC_S)
+PRES(AP, KC_P)
+PRES(AO, KC_O)
+PRES(AS|AT, KC_C)
+PRES(AN|AO, KC_U)
+PRES(AE|AT, KC_R)
+PRES(AE|AP, KC_QUOT)
+PRES(AT|AP, KC_BSPC)
+KEYS(AA|AO, cmb_9df323cdb026f7ce, {KC_LSFT, KC_9, COMBO_END})
+PRES(AT|AI, KC_V)
+PRES(AE|AO, KC_MINS)
+KEYS(AI|AP, cmb_68737f3c98f133fe, {KC_LSFT, KC_1, COMBO_END})
+PRES(AA|AP, KC_QUOT)
+PRES(AS|AO, KC_DOT)
+PRES(AN|AI, KC_H)
+PRES(AO|AP, KC_SCLN)
+KEYS(AS|AP, cmb_e57ca193d8778bdc, {KC_LSFT, KC_0, COMBO_END})
+PRES(AT|AO, KC_G)
+PRES(AS|AN, KC_J)
+PRES(AI|AO, KC_L)
+PRES(AA|AI, KC_Z)
+PRES(AN|AP, KC_M)
+PRES(AA|AT, KC_F)
+PRES(AE|AI, KC_COMM)
+PRES(AE|AN, KC_Y)
+PRES(AS|AI, KC_K)
+PRES(AT|AN, KC_B)
+PRES(AA|AS, KC_W)
+PRES(AA|AN, KC_Q)
+PRES(AA|AE, KC_X)
+PRES(AS|AE, KC_D)
+SUBS(AR|AS|AE|AT, str_537FA833E2862BFA, "eder ")
+SUBS(AR|AA|AO|AP, str_293FC53F8C3C21A6, "apo ")
+SUBS(AR|AA|AE|AT, str_F81844C19D4C81B2, "ara ")
+SUBS(AR|AN|AI|AP, str_DD31FA4C91A58242, "mi ")
+SUBS(AR|AN|AI|AO, str_736E380176E67819, "unlu ")
+SUBS(AR|AT|AO|AP, str_8574F11BEB82545C, "top ")
+SUBS(AR|AA|AS|AE, str_6E5B393925FE64CE, "da ")
+SUBS(AR|AA|AT|AP, str_7A06301D23DD2E0F, "pat ")
+SUBS(AR|AS|AE|AO, str_16AE4BE38D2F26C0, "do ")
+SUBS(AR|AA|AI|AP, str_65D664ADF1031245, "papaz ")
+SUBS(AR|AN|AO|AP, str_2CDB1FF9C007065E, "mu ")
+SUBS(AR|AE|AI|AP, str_E5D0DBF6833C9487, "'i ")
+SUBS(AR|AA|AN|AO, str_E1BCA9513A9FBB4D, "ona ")
+SUBS(AR|AE|AN|AO, str_7E37B14C8B8926A1, "onune ")
+SUBS(AR|AA|AS|AT, str_DE2547EFFCE81249, "saat ")
+PRES(AN|AI|AO|AP, KC_ENT)
+SUBS(AR|AS|AE|AP, str_389774CE338E67BC, "'de ")
+SUBS(AR|AA|AS|AP, str_C4E57FF7A10C22EC, "pasa ")
+SUBS(AR|AA|AT|AN, str_16FA1740D0B2B584, "bana ")
+SUBS(AR|AI|AO|AP, str_88B19184FF89676C, "pol ")
+SUBS(AR|AA|AT|AI|AP, str_D411896E41169C3D, "atip ")
+SUBS(AR|AE|AN|AO|AP, str_8BAE8E7ED30FF787, "memnun ")
+SUBS(AR|AA|AS|AE|AO, str_419E359B821D2AA1, "odada ")
+SUBS(AR|AE|AT|AO|AP, str_C49A79241347400B, "potter ")
+SUBS(AR|AA|AS|AT|AN, str_ED64011B1DDBB524, "bas ")
+SUBS(AR|AT|AI|AO|AP, str_3239C8BD5E65A974, "popov ")
+SUBS(AR|AA|AS|AO|AP, str_F75289636128CFF8, "sopa ")
+SUBS(AR|AA|AS|AN|AO, str_AF9B75173C7A0B7A, "sona ")
+SUBS(AR|AA|AI|AO|AP, str_6B9966EF2DF10D5A, "alip ")
+SUBS(AR|AA|AS|AE|AP, str_4347B74ACC01398F, "'da ")
+SUBS(AR|AE|AI|AO|AP, str_F788D0AEDB30B308, "poole ")
+SUBS(AR|AA|AT|AN|AO, str_3FDAD894DDA1E312, "buna ")
+SUBS(AR|AS|AN|AO|AP, str_BC74EF8DF89E490A, "musun ")
+SUBS(AR|AA|AS|AT|AO, str_012BC8136AB7012F, "sag ")
+SUBS(AR|AA|AT|AN|AP, str_BF3DDFB8CBFE1C63, "tam ")
+SUBS(AR|AA|AS|AE|AT, str_E558D3BDD97766AE, "sadece ")
+SUBS(AR|AA|AE|AN|AO, str_6F88B0830DA452F6, "yunan ")
+SUBS(AR|AS|AE|AI, str_E8E3E66D08DA33FB, "dedi ")
+SUBS(AR|RGT|AS|AE|AI, str_BDA65BA81A4E5E51, "ise ")
+SUBS(AR|AS|AI|AO, str_C9ADB25B4C37D131, "sol ")
+SUBS(AR|RGT|AS|AI|AO, str_C973AC94B31D29D0, "ilk ")
+SUBS(AR|AT|AI|AO, str_53725C7A1A99F367, "gitti ")
+SUBS(AR|RGT|AT|AI|AO, str_A4252F407B929731, "ilgili ")
+SUBS(AR|AA|AT|AI, str_48F7952354BFCEE8, "atti ")
+SUBS(AR|RGT|AA|AT|AI, str_7768BDCB25C9BA0C, "itaat ")
+SUBS(AR|AS|AE|AN, str_C53852934F18FFD9, "sey ")
+SUBS(AR|RGT|AS|AE|AN, str_5C4BEB33B0909DA8, "neden ")
+SUBS(AR|AA|AI|AO, str_C49001FAA655F248, "al ")
+SUBS(AR|RGT|AA|AI|AO, str_7E7904D7326BCF29, "la ")
+SUBS(AR|AA|AT|AO, str_4DC80FED32FAFDC0, "aga ")
+SUBS(AR|RGT|AA|AT|AO, str_BF38370C83727D39, "of ")
+SUBS(AR|AE|AT|AO, str_1EDA9A722270F7E4, "gore ")
+SUBS(AR|RGT|AE|AT|AO, str_03D8DFC3440FFB4D, "ote ")
+SUBS(AR|AE|AT|AN, str_6EDDE1729393B4E6, "ben ")
+SUBS(AR|RGT|AE|AT|AN, str_E569986474B395C2, "yere ")
+SUBS(AR|AE|AN|AI, str_7E3D8B1C859776CA, "eh ")
+SUBS(AR|RGT|AE|AN|AI, str_8827D1EFB4EBF5F9, "iyi ")
+SUBS(AR|AT|AN|AO, str_00BFE1C3EEAE641F, "bu ")
+SUBS(AR|RGT|AT|AN|AO, str_3F3B1F8B5A3E409E, "not ")
+SUBS(AR|AE|AN|AP, str_CA549A07BB6C3E3E, "epey ")
+SUBS(AR|RGT|AE|AN|AP, str_868592BD219484EA, "yemeye ")
+SUBS(AR|AT|AI|AP, str_EDDB4B5D8E6E6CF7, "tip ")
+SUBS(AR|RGT|AT|AI|AP, str_3B65DB9F507392DD, "itip ")
+SUBS(AR|AS|AN|AO, str_7412E38D9D55C2DC, "su ")
+SUBS(AR|RGT|AS|AN|AO, str_93E9AC18AF76041F, "us ")
+SUBS(AR|AE|AT|AP, str_C99B9A9776E95F94, "tepe ")
+SUBS(AR|RGT|AE|AT|AP, str_18D30F121CA53072, "'te ")
+SUBS(AR|AS|AN|AI, str_E0C254EBD3EEAD33, "sinsi ")
+SUBS(AR|RGT|AS|AN|AI, str_8338AE885F86B7EB, "isin ")
+SUBS(AR|AS|AT|AO, str_2B5643EBEA529AC6, "goc ")
+SUBS(AR|RGT|AS|AT|AO, str_77C6B8367F5A7C65, "oc ")
+SUBS(AR|AA|AS|AN, str_472497D77F5A171D, "sana ")
+SUBS(AR|RGT|AA|AS|AN, str_C5270D6F6B831E8A, "jan ")
+SUBS(AR|AT|AN|AI, str_BF8295FE584BC5B0, "bin ")
+SUBS(AR|RGT|AT|AN|AI, str_1DB1DA700CC8EF14, "hint ")
+SUBS(AR|AE|AT|AI, str_9C1D72454CFB8F29, "ve ")
+SUBS(AR|RGT|AE|AT|AI, str_653E66B7460F4D09, "iri ")
+SUBS(AR|AA|AS|AI, str_53CD5CF62F2771BB, "siz ")
+SUBS(AR|RGT|AA|AS|AI, str_EC45B37743C0E0DC, "kiz ")
+SUBS(AR|AA|AN|AI, str_BF40C27E59DAAC7B, "ah ")
+SUBS(AR|RGT|AA|AN|AI, str_D6B4EABDEAB1AAFD, "izin ")
+SUBS(AR|AA|AN|AP, str_F438C1279CCEB43D, "ama ")
+SUBS(AR|RGT|AA|AN|AP, str_A807F22B2F10DE70, "mana ")
+SUBS(AR|AA|AE|AN, str_71F52FF80B4E955D, "ay ")
+SUBS(AR|RGT|AA|AE|AN, str_CBA94FFB9DDDB35B, "ya ")
+SUBS(AR|AS|AT|AI, str_B3A467A5E077FC8C, "cikti ")
+SUBS(AR|RGT|AS|AT|AI, str_1F6902701AB644CE, "ic ")
+SUBS(AR|AS|AI|AP, str_52ED463C934320BD, "sikisip ")
+SUBS(AR|RGT|AS|AI|AP, str_565EB49E602024EF, "pis ")
+SUBS(AR|AE|AI|AO, str_05ED48987A1828F9, "el ")
+SUBS(AR|RGT|AE|AI|AO, str_B186DE4E1BCC6BDE, "ile ")
+SUBS(AR|AA|AE|AI|AO|AP, str_0BE310FD055B244D, "la'e ")
+SUBS(AR|AA|AE|AT|AI|AP, str_942036C586B52CDC, "parti ")
+SUBS(AR|AA|AS|AE|AI|AP, str_7554CDFC28D7B7B1, "kapida ")
+SUBS(AR|AA|AE|AN|AO|AP, str_1355FCBB05D95A12, "maymun ")
+SUBS(AR|AA|AS|AN|AO|AP, str_94C0A609AB01BDDC, "osman ")
+SUBS(AR|AS|AE|AT|AI|AO, str_D6D42E8A680D9B3B, "degil ")
+SUBS(AR|AA|AE|AT|AI|AO, str_B486D61812526B81, "agir ")
+SUBS(AR|AA|AS|AT|AN|AI, str_44F4AF5A50ADCABC, "baska ")
+SUBS(AR|AS|AT|AI|AO|AP, str_94A710198AA418ED, "politik ")
+SUBS(AR|AA|AE|AN|AI|AO, str_C4990868212B50AD, "yalniz ")
+SUBS(AR|AA|AS|AT|AO|AP, str_FF993FB3354F3759, "posta ")
+SUBS(AR|AA|AS|AT|AN|AP, str_D70133B37553FCA8, "cam ")
+SUBS(AR|AA|AS|AI|AO|AP, str_F850D264E401D0ED, "kapali ")
+SUBS(AR|AS|AE|AI|AO|AP, str_D77CE85B474D3899, "kopek ")
+SUBS(AR|AS|AT|AN|AI, str_808974B4C921A87B, "cin ")
+SUBS(AR|RGT|AS|AT|AN|AI, str_5637E476173C5651, "icin ")
+SUBS(AR|AA|AT|AI|AO, str_CF535A10BCB881F1, "fazla ")
+SUBS(AR|RGT|AA|AT|AI|AO, str_B0BECDD9F3E0CE56, "laf ")
+SUBS(AR|AE|AN|AI|AO, str_64642F6BEEB4C0C4, "elini ")
+SUBS(AR|RGT|AE|AN|AI|AO, str_FE5039B64180B086, "oyle ")
+SUBS(AR|AS|AE|AN|AO, str_EB534B63B284CE6E, "dondu ")
+SUBS(AR|RGT|AS|AE|AN|AO, str_9D30508BB7F791A2, "onunde ")
+SUBS(AR|AS|AT|AI|AO, str_20D841C850E5918C, "cok ")
+SUBS(AR|RGT|AS|AT|AI|AO, str_660DBC63D8BA4C1D, "isigi ")
+SUBS(AR|AS|AE|AI|AP, str_76A4EAE8811EFAF7, "edip ")
+SUBS(AR|RGT|AS|AE|AI|AP, str_0D3BE62305D58F96, "pek ")
+SUBS(AR|AA|AS|AN|AP, str_020E794D3DE91D12, "sam ")
+SUBS(AR|RGT|AA|AS|AN|AP, str_0DF584E9973309E5, "masa ")
+SUBS(AR|AE|AT|AI|AP, str_254B9F9B1C382638, "verip ")
+SUBS(AR|RGT|AE|AT|AI|AP, str_E570F82063877B80, "pir ")
+SUBS(AR|AS|AT|AI|AP, str_EB0E51ECD49853D8, "tipki ")
+SUBS(AR|RGT|AS|AT|AI|AP, str_53593794EEDE7216, "icip ")
+SUBS(AR|AA|AN|AI|AO, str_DA678B247767B8F0, "allah ")
+SUBS(AR|RGT|AA|AN|AI|AO, str_DDC6E7D61E0848D2, "olan ")
+SUBS(AR|AA|AN|AI|AP, str_F169294DEF20007C, "zaman ")
+SUBS(AR|RGT|AA|AN|AI|AP, str_F3A337AF5902E0B0, "hanim ")
+SUBS(AR|AS|AN|AI|AP, str_C11A226C16359C4A, "simsiki ")
+SUBS(AR|RGT|AS|AN|AI|AP, str_ADA4AB22469B2792, "kim ")
+SUBS(AR|AA|AS|AI|AO, str_3B62E6B04ACB4910, "soz ")
+SUBS(AR|RGT|AA|AS|AI|AO, str_9F8B514A23F4E067, "olsa ")
+SUBS(AR|AA|AS|AT|AI, str_1584D2B85F7BEACE, "fakat ")
+SUBS(AR|RGT|AA|AS|AT|AI, str_C573E416F9DFCE7B, "kac ")
+SUBS(AR|AS|AE|AT|AI, str_F1146309407C38BA, "tek ")
+SUBS(AR|RGT|AS|AE|AT|AI, str_96C125AAB35C232C, "iste ")
+SUBS(AR|AA|AS|AE|AN, str_5E8D44E2CAB96FB1, "anda ")
+SUBS(AR|RGT|AA|AS|AE|AN, str_FDBD246CDAD22BC3, "yandan ")
+SUBS(AR|AS|AE|AT|AP, str_54B8D3DAFB1BFD6A, "cep ")
+SUBS(AR|RGT|AS|AE|AT|AP, str_4FAF20EC21BD1E37, "perde ")
+SUBS(AR|AS|AI|AO|AP, str_3E7549E7DDAFEDD6, "silip ")
+SUBS(AR|RGT|AS|AI|AO|AP, str_D1CF976AEEEFB6C8, "polis ")
+SUBS(AR|AA|AE|AT|AN, str_EE41B0454A85A919, "bay ")
+SUBS(AR|RGT|AA|AE|AT|AN, str_FD393C9D3221B8B8, "nefret ")
+SUBS(AR|AA|AE|AI|AO, str_884C1C7DD4B49B14, "aile ")
+SUBS(AR|RGT|AA|AE|AI|AO, str_BF0895A245C2BF38, "ozel ")
+SUBS(AR|AS|AT|AN|AO, str_95E986B36FA22668, "bos ")
+SUBS(AR|RGT|AS|AT|AN|AO, str_EE720D20FE456256, "uc ")
+SUBS(AR|AS|AE|AN|AI, str_57C8F477D19CC1CA, "diye ")
+SUBS(AR|RGT|AS|AE|AN|AI, str_9E0849EDED7BD94A, "kendi ")
+SUBS(AR|AA|AE|AN|AP, str_962E9B55318FFB33, "annem ")
+SUBS(AR|RGT|AA|AE|AN|AP, str_69B23B0C03482B1E, "yapan ")
+SUBS(AR|AE|AT|AI|AO, str_863BB9152468BEFA, "geri ")
+SUBS(AR|RGT|AE|AT|AI|AO, str_B7B838B8649E9F2F, "ileri ")
+SUBS(AR|AA|AE|AT|AO, str_ACACBB21FF427C1A, "fotograf ")
+SUBS(AR|RGT|AA|AE|AT|AO, str_9E7D3AA01152D41C, "orta ")
+SUBS(AR|AT|AN|AO|AP, str_5E04ED063898911C, "tum ")
+SUBS(AR|RGT|AT|AN|AO|AP, str_E5D368C0A2919C0F, "umut ")
+SUBS(AR|AT|AN|AI|AP, str_AF1FE256DC6BB784, "tim ")
+SUBS(AR|RGT|AT|AN|AI|AP, str_168886128C6CCE68, "mit ")
+SUBS(AR|AA|AS|AN|AI, str_3FD04028FA355FFA, "sanki ")
+SUBS(AR|RGT|AA|AS|AN|AI, str_3A5769429132B449, "insan ")
+SUBS(AR|AA|AS|AI|AP, str_F5C16F1F0EB11E41, "sapka ")
+SUBS(AR|RGT|AA|AS|AI|AP, str_4B08B49241B7625C, "kapi ")
+SUBS(AR|AT|AN|AI|AO, str_30D7E29C6AB72EC5, "gibi ")
+SUBS(AR|RGT|AT|AN|AI|AO, str_BE7B30B01B292B12, "oglu ")
+SUBS(AR|AA|AE|AN|AI, str_78E0E12A253E7AE1, "ayni ")
+SUBS(AR|RGT|AA|AE|AN|AI, str_642C5693D578E623, "yani ")
+SUBS(AR|AA|AE|AT|AI, str_776A8271136FBCDD, "var ")
+SUBS(AR|RGT|AA|AE|AT|AI, str_4DC961D6F46E8498, "itiraf ")
+SUBS(AR|AE|AT|AN|AI, str_4E68704B09E941AC, "bir ")
+SUBS(AR|RGT|AE|AT|AN|AI, str_8BA7632DC4B89BB1, "her ")
+SUBS(AR|AA|AE|AT|AP, str_460BF33F31FE5B60, "arap ")
+SUBS(AR|RGT|AA|AE|AT|AP, str_900C0665FDDCD3E1, "para ")
+SUBS(AR|AS|AE|AT|AO, str_7EE7FFD65702FA6C, "gece ")
+SUBS(AR|RGT|AS|AE|AT|AO, str_8A5179FCB5FFC0FB, "otede ")
+SUBS(AR|AS|AE|AI|AO, str_5DD922AE9A68D542, "sekilde ")
+SUBS(AR|RGT|AS|AE|AI|AO, str_9467E88F0E2DE2DC, "kisisel ")
+SUBS(AR|AA|AS|AE|AI, str_B74AC39257EEB48C, "size ")
+SUBS(AR|RGT|AA|AS|AE|AI, str_3D1AC7FB8818918A, "kez ")
+SUBS(AR|AE|AT|AN|AO, str_FB51F2C8C00A7A37, "gene ")
+SUBS(AR|RGT|AE|AT|AN|AO, str_F79C8557DD0FF58D, "uygun ")
+SUBS(AR|AA|AT|AN|AI, str_B9C9F742F6F7FDCA, "biz ")
+SUBS(AR|RGT|AA|AT|AN|AI, str_1BBF28F4AF839F81, "hatta ")
+SUBS(AR|AS|AN|AI|AO, str_4E9927ABF07D2A9D, "soluk ")
+SUBS(AR|RGT|AS|AN|AI|AO, str_BA84D32B219BA5CF, "olsun ")
+SUBS(AR|AE|AN|AI|AP, str_26467D3FCDCBC3A6, "emin ")
+SUBS(AR|RGT|AE|AN|AI|AP, str_53F0336D02315FFF, "hemen ")
+SUBS(AR|AS|AE|AT|AN, str_2C194879C1966F95, "bes ")
+SUBS(AR|RGT|AS|AE|AT|AN, str_45801DF17D4A1F16, "yerde ")
+SUBS(AR|AS|AT|AO|AP, str_ED481D10552FB497, "cop ")
+SUBS(AR|RGT|AS|AT|AO|AP, str_65F782359B3EEC88, "otostop ")
+SUBS(AR|AS|AE|AN|AP, str_8972A041675067FF, "demeye ")
+SUBS(AR|RGT|AS|AE|AN|AP, str_3B50DD376F63FFCF, "'den ")
+SUBS(AR|AE|AT|AN|AP, str_18DF9684F8E06299, "etmeye ")
+SUBS(AR|RGT|AE|AT|AN|AP, str_10A1A694946FA759, "mr ")
+SUBS(AR|AA|AS|AE|AT|AO|AP, str_76D62DECF1B3082E, "profesor ")
+SUBS(AR|AS|AE|AT|AN|AI|AP, str_229273766D1862E6, "etmek ")
+SUBS(AR|AA|AS|AE|AT|AI, str_EE53D172AE08A453, "vardi ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI, str_A5266B57E617FBD6, "kadar ")
+SUBS(AR|AE|AT|AI|AO|AP, str_E8D2D43FFA00B945, "gelip ")
+SUBS(AR|RGT|AE|AT|AI|AO|AP, str_16589DCCD3DBF4F5, "piril ")
+SUBS(AR|AA|AE|AT|AN|AI, str_E0EB8EF37B5CC571, "biraz ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI, str_2DDF44F81DEA7B53, "hayir ")
+SUBS(AR|AA|AS|AE|AT|AN, str_D14A510FDBEFC4D2, "cay ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN, str_609880ADC0419D4D, "nefes ")
+SUBS(AR|AS|AE|AT|AN|AI, str_66093427B818F7DC, "birden ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI, str_764E3E951C6ECBBA, "icinde ")
+SUBS(AR|AS|AT|AN|AO|AP, str_2D584A05A9BA0E67, "gumus ")
+SUBS(AR|RGT|AS|AT|AN|AO|AP, str_C8E988281C57E0BA, "unutmus ")
+SUBS(AR|AA|AT|AN|AI|AP, str_DBAF0E374DCFD905, "bizim ")
+SUBS(AR|RGT|AA|AT|AN|AI|AP, str_6FC03310E8B09E3F, "mavi ")
+SUBS(AR|AS|AE|AN|AO|AP, str_5700C6173D5769F1, "donup ")
+SUBS(AR|RGT|AS|AE|AN|AO|AP, str_11D9D6F188266199, "muydu ")
+SUBS(AR|AS|AE|AN|AI|AO, str_44C8444FA0BB5EEA, "soyle ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO, str_E1476CDC1ED6DB7D, "yok ")
+SUBS(AR|AA|AT|AI|AO|AP, str_CAC1D661F01CFD71, "aptal ")
+SUBS(AR|RGT|AA|AT|AI|AO|AP, str_9CC39C1C9F2FDC0E, "iptal ")
+SUBS(AR|AA|AS|AE|AN|AP, str_53F857754C3C0D13, "adam ")
+SUBS(AR|RGT|AA|AS|AE|AN|AP, str_757FABC9350E4C7A, "meydana ")
+SUBS(AR|AA|AS|AT|AN|AO, str_FC192BACADE82774, "fonts ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO, str_39EF976E58C0F7CA, "usta ")
+SUBS(AR|AA|AS|AT|AI|AO, str_5A88536193D41DBF, "asagi ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO, str_5A221ECF0DDB96A3, "olacak ")
+SUBS(AR|AA|AE|AT|AN|AP, str_CB3551D5FC71646E, "tamamen ")
+SUBS(AR|RGT|AA|AE|AT|AN|AP, str_9858DEB952EAAF02, "yapar ")
+SUBS(AR|AS|AT|AN|AI|AO, str_59B412D670871D2D, "cunku ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO, str_FBB2B6224B9A76AD, "kucuk ")
+SUBS(AR|AA|AN|AI|AO|AP, str_70BDA9ECA7ADF5ED, "anlamina ")
+SUBS(AR|RGT|AA|AN|AI|AO|AP, str_60462B1777DBED17, "olmaz ")
+SUBS(AR|AA|AE|AT|AN|AO, str_8786CD5FF215EABE, "buraya ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO, str_9123C035D1763408, "ortaya ")
+SUBS(AR|AA|AE|AT|AO|AP, str_EF8457E3CB802CCC, "topraga ")
+SUBS(AR|RGT|AA|AE|AT|AO|AP, str_5E0C8ECDADE5F1A0, "page ")
+SUBS(AR|AA|AS|AE|AT|AO, str_69172418D41AE1E4, "dag ")
+SUBS(AR|RGT|AA|AS|AE|AT|AO, str_41C90296C332ED2C, "orada ")
+SUBS(AR|AA|AE|AN|AI|AP, str_26BCF8488D314254, "annemin ")
+SUBS(AR|RGT|AA|AE|AN|AI|AP, str_345DE067681CB907, "hepimiz ")
+SUBS(AR|AE|AT|AN|AO|AP, str_EB55FC450E7312D7, "grup ")
+SUBS(AR|RGT|AE|AT|AN|AO|AP, str_5D03262B96845502, "oturup ")
+SUBS(AR|AA|AS|AE|AT|AP, str_FC938EC6D0C5B50C, "sarap ")
+SUBS(AR|RGT|AA|AS|AE|AT|AP, str_7F8309C46FBC0ED2, "parca ")
+SUBS(AR|AE|AT|AN|AI|AO, str_AE7F829FB2C17970, "bile ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO, str_CD1530DDBCCC41B1, "olur ")
+SUBS(AR|AS|AE|AT|AN|AO, str_F634CECC4D74BC1D, "dogru ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO, str_BA082B87D184320C, "once ")
+SUBS(AR|AA|AT|AN|AI|AO, str_3CEC778F5BFA1C27, "bulunan ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO, str_F0FE7383D4F42DCF, "hangi ")
+SUBS(AR|AA|AS|AE|AI|AO, str_D73B017E17730841, "aldi ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO, str_97A5A200471D85AC, "kaldi ")
+SUBS(AR|AA|AS|AT|AI|AP, str_6A2856E80E8F1D58, "takip ")
+SUBS(AR|RGT|AA|AS|AT|AI|AP, str_6BD9450F1788B4D7, "kitap ")
+SUBS(AR|AE|AT|AN|AI|AP, str_6A41BA6AD90B0603, "benim ")
+SUBS(AR|RGT|AE|AT|AN|AI|AP, str_15F46689AF492E39, "yirmi ")
+SUBS(AR|AA|AS|AN|AI|AO, str_2B6C868F6F195655, "sozunu ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO, str_66166C9BE5172B1E, "nasil ")
+SUBS(AR|AA|AS|AE|AN|AI, str_323290C279B549E7, "daha ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI, str_44EEB30CA020D42D, "kadin ")
+SUBS(AR|AS|AT|AN|AI|AP, str_7F30AAAC586D8B50, "cikmis ")
+SUBS(AR|RGT|AS|AT|AN|AI|AP, str_28987E2ADA80ED5D, "mistik ")
+SUBS(AR|AA|AS|AN|AI|AP, str_41ABFAF0FF784CAE, "aksam ")
+SUBS(AR|RGT|AA|AS|AN|AI|AP, str_05396CDFC13A1A43, "misiniz ")
+SUBS(AR|AS|AE|AT|AO|AP, str_C3F89E20008EF31C, "spor ")
+SUBS(AR|RGT|AS|AE|AT|AO|AP, str_ED113259C7973E21, "protesto ")
+SUBS(AR|AA|AS|AE|AN|AO, str_D83E09262A51A927, "sonunda ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO, str_085C192228098BC3, "ondan ")
+SUBS(AR|AS|AN|AI|AO|AP, str_3E3ADD8603A00EF7, "sokup ")
+SUBS(AR|RGT|AS|AN|AI|AO|AP, str_C5F0D21E78048361, "olmus ")
+SUBS(AR|AS|AE|AN|AI|AP, str_BDDCCF3C76478506, "simdi ")
+SUBS(AR|RGT|AS|AE|AN|AI|AP, str_D7A9ED3ED1949ABA, "kimse ")
+SUBS(AR|AA|AT|AN|AO|AP, str_9E9C2C2DCDFCA7A3, "bomba ")
+SUBS(AR|RGT|AA|AT|AN|AO|AP, str_B1045DE69BE5CD80, "mutfaga ")
+SUBS(AR|AS|AE|AT|AI|AP, str_B78C00616C0927C9, "cekip ")
+SUBS(AR|RGT|AS|AE|AT|AI|AP, str_F9C33F5E6760738A, "kirip ")
+SUBS(AR|AS|AE|AT|AN|AP, str_9F5BA422CC800977, "sebep ")
+SUBS(AR|RGT|AS|AE|AT|AN|AP, str_30E7C213CA4BD836, "pencereden ")
+SUBS(AR|AT|AN|AI|AO|AP, str_31E431E24A10B655, "bolum ")
+SUBS(AR|RGT|AT|AN|AI|AO|AP, str_A8582A006F2D6044, "mutlu ")
+SUBS(AR|AE|AN|AI|AO|AP, str_995FA5DD0BC5D3D3, "elimi ")
+SUBS(AR|RGT|AE|AN|AI|AO|AP, str_0C4F00FE9E896D08, "onemli ")
+SUBS(AR|AA|AS|AE|AT|AN|AP, str_E500E88807C6A03A, "stepan ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AP, str_9C35DC9E5202404F, "jandarma ")
+SUBS(AR|AA|AT|AN|AI|AO|AP, str_2E642CEEC56D4266, "film ")
+SUBS(AR|RGT|AA|AT|AN|AI|AO|AP, str_944E1395168C6D51, "hamilton ")
+SUBS(AR|AA|AE|AN|AI|AO|AP, str_71EDF4FB94D4699A, "almaya ")
+SUBS(AR|RGT|AA|AE|AN|AI|AO|AP, str_04B8FA201DBFF4B6, "olmayan ")
+SUBS(AR|AA|AS|AT|AN|AI|AO, str_B798C26D42E29874, "sultan ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO, str_C349CDB48BEE3E54, "kabul ")
+SUBS(AR|AE|AT|AN|AI|AO|AP, str_41539AB152F99266, "biliyorum ")
+SUBS(AR|RGT|AE|AT|AN|AI|AO|AP, str_40721692EDCA1E6F, "muhtemelen ")
+SUBS(AR|AA|AS|AE|AT|AI|AP, str_DB02B66EC3B8C7AE, "cevap ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AP, str_65711D239191216B, "parcasi ")
+SUBS(AR|AA|AS|AE|AI|AO|AP, str_1955A94E057DCC98, "dolasip ")
+SUBS(AR|RGT|AA|AS|AE|AI|AO|AP, str_B0DE83084472B1B3, "pekala ")
+SUBS(AR|AA|AE|AT|AI|AO|AP, str_A2D855797928C3E8, "garip ")
+SUBS(AR|RGT|AA|AE|AT|AI|AO|AP, str_D45C3E9B4CCF3C6F, "pavel ")
+SUBS(AR|AA|AS|AE|AT|AN|AO, str_0FED97B4BCCB2490, "sonra ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO, str_8FDE75ECB1272A4E, "oradan ")
+SUBS(AR|AA|AS|AE|AN|AI|AP, str_C216A0E287994C2B, "adamin ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AP, str_27073C376FEADC42, "kapiyi ")
+SUBS(AR|AA|AS|AE|AN|AO|AP, str_20BF4FEAA16623CA, "dusman ")
+SUBS(AR|RGT|AA|AS|AE|AN|AO|AP, str_607C48455B8E1AAF, "musaade ")
+SUBS(AR|AS|AE|AT|AI|AO|AP, str_1A9B0AC9478A4008, "gidip ")
+SUBS(AR|RGT|AS|AE|AT|AI|AO|AP, str_8A359AF81852C394, "polisler ")
+SUBS(AR|AA|AS|AT|AN|AO|AP, str_DF0FD87C1AFC51D9, "cuma ")
+SUBS(AR|RGT|AA|AS|AT|AN|AO|AP, str_941AD10A3AFA836F, "mustafa ")
+SUBS(AR|AA|AE|AT|AN|AI|AP, str_A1DAB58F92BD1771, "tanrim ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AP, str_E018C94DF896F66B, "yapti ")
+SUBS(AR|AS|AT|AN|AI|AO|AP, str_9936BF584D4C627C, "gitmis ")
+SUBS(AR|RGT|AS|AT|AN|AI|AO|AP, str_53E2A98FB43C82A1, "olmustu ")
+SUBS(AR|AA|AE|AT|AN|AI|AO, str_D360428EC279C24A, "guzel ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO, str_ACD32F5C6A192156, "uzerine ")
+SUBS(AR|AA|AS|AT|AI|AO|AP, str_5F5496E38A6B7892, "ciplak ")
+SUBS(AR|RGT|AA|AS|AT|AI|AO|AP, str_5A24157BAAFB7656, "politika ")
+SUBS(AR|AA|AE|AT|AN|AO|AP, str_10CC7AD9D858E828, "ragmen ")
+SUBS(AR|RGT|AA|AE|AT|AN|AO|AP, str_4A786FFDFE68908A, "yagmur ")
+SUBS(AR|AS|AE|AT|AN|AO|AP, str_CEFA49339EE4DAD4, "durum ")
+SUBS(AR|RGT|AS|AE|AT|AN|AO|AP, str_64D8F918B8BA73C2, "oturmus ")
+SUBS(AR|AS|AE|AN|AI|AO|AP, str_E946F470598B4C5B, "soylemek ")
+SUBS(AR|RGT|AS|AE|AN|AI|AO|AP, str_951245C934D1BA30, "oldum ")
+SUBS(AR|AA|AS|AT|AN|AI|AP, str_41D6E472627DA12D, "canim ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AP, str_57B74889BB18CAEC, "kaptan ")
+SUBS(AR|AA|AS|AE|AT|AN|AI, str_DCC79D5D70AC1A28, "arasinda ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI, str_A94ED5B836309CD7, "yavas ")
+SUBS(AR|AA|AS|AE|AT|AI|AO, str_8BC57A977D0BDD7F, "farkli ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO, str_B026B57BD40B1AD2, "olarak ")
+SUBS(AR|AA|AS|AE|AN|AI|AO, str_06AE4F58BA6A430A, "aslinda ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO, str_FFA37F2D13C0071B, "halde ")
+SUBS(AR|AA|AS|AN|AI|AO|AP, str_A2C610874DEA2A0F, "almak ")
+SUBS(AR|RGT|AA|AS|AN|AI|AO|AP, str_AEF3C691254FD431, "olmak ")
+SUBS(AR|AS|AE|AT|AN|AI|AO, str_3002A62B595E3D7D, "buyuk ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO, str_35A072B58C65D17E, "oldugunu ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO, str_47E4097D9C96503E, "basladi ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO, str_8AEE926F3C6F829A, "uzerinde ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AP, str_9FDCF46EA5EFE3C2, "devam ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AP, str_7ECB122B72B3F5C5, "yardim ")
+SUBS(AR|AA|AE|AT|AN|AI|AO|AP, str_472FC836FDD13709, "zamanlar ")
+SUBS(AR|RGT|AA|AE|AT|AN|AI|AO|AP, str_EC6311CA7E1DA72D, "yaptigi ")
+SUBS(AR|AA|AS|AE|AT|AI|AO|AP, str_DDBACE58EA0875AD, "toprak ")
+SUBS(AR|RGT|AA|AS|AE|AT|AI|AO|AP, str_C3295E9AAA29B46B, "parlak ")
+SUBS(AR|AA|AS|AT|AN|AI|AO|AP, str_59A1C984A232FC57, "baslamisti ")
+SUBS(AR|RGT|AA|AS|AT|AN|AI|AO|AP, str_089CA9673DDA67E4, "kocaman ")
+SUBS(AR|AA|AS|AE|AT|AN|AO|AP, str_4DEC37FECF7B7A0F, "durumda ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AO|AP, str_4C12AA56F24F9211, "propaganda ")
+SUBS(AR|AA|AS|AE|AN|AI|AO|AP, str_683C9C8FB8876296, "aldim ")
+SUBS(AR|RGT|AA|AS|AE|AN|AI|AO|AP, str_DDEBA1749E054F42, "olmadi ")
+SUBS(AR|AS|AE|AT|AN|AI|AO|AP, str_D4034C4AE3C4D28C, "gormek ")
+SUBS(AR|RGT|AS|AE|AT|AN|AI|AO|AP, str_E1CD29DE5981C388, "istiyorum ")
+SUBS(AR|AA|AS|AE|AT|AN|AI|AO|AP, str_416DB56108ECB7D5, "basladim ")
+SUBS(AR|RGT|AA|AS|AE|AT|AN|AI|AO|AP, str_87E3C402A0866439, "olmadigini ")
diff --git a/keyboards/gboards/engine/config.h b/keyboards/gboards/engine/config.h
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/keyboards/gboards/engine/config.h
diff --git a/keyboards/gboards/engine/engine.c b/keyboards/gboards/engine/engine.c
new file mode 100644
index 0000000000..9094b7905a
--- /dev/null
+++ b/keyboards/gboards/engine/engine.c
@@ -0,0 +1,458 @@
+/* This is a stripped down version of the Georgi engine meant for use with
+ * Ginni. As such serial-Steno features are disabled, chords are 16bits and
+ * crap is removed where possible
+ *
+ * Do not use this on anything other then Ginny if you want to be sane
+ */
+#include "engine.h"
+
+// Chord state
+C_SIZE cChord = 0; // Current Chord
+int chordIndex = 0; // Keys in previousachord
+C_SIZE pressed = 0; // number of held keys
+C_SIZE chordState[32]; // Full Chord history
+#define QWERBUF 24 // Size of chords to buffer for output
+
+bool repeatFlag = false; // Should we repeat?
+C_SIZE pChord = 0; // Previous Chord
+C_SIZE stickyBits = 0; // Or'd with every incoming press
+int pChordIndex = 0; // Keys in previousachord
+C_SIZE pChordState[32]; // Previous chord sate
+
+// Key Dicts
+extern const struct keyEntry keyDict[];
+extern const struct comboEntry cmbDict[];
+extern const struct funcEntry funDict[];
+extern const struct stringEntry strDict[];
+extern const struct specialEntry spcDict[];
+extern size_t specialLen;
+extern size_t stringLen;
+extern size_t funcsLen;
+extern size_t keyLen;
+extern size_t comboLen;
+
+// Mode state
+enum MODE { STENO = 0, QWERTY, COMMAND };
+enum MODE pMode;
+enum MODE cMode = QWERTY;
+
+// Command State
+#define MAX_CMD_BUF 20
+uint8_t CMDLEN = 0;
+uint8_t CMDBUF[MAX_CMD_BUF];
+
+// Key Repeat state
+bool inChord = false;
+bool repEngaged = false;
+uint16_t repTimer = 0;
+#define REP_INIT_DELAY 750
+#define REP_DELAY 25
+
+// Mousekeys state
+bool inMouse = false;
+int8_t mousePress;
+
+// All processing done at chordUp goes through here
+void processKeysUp() {
+ // Check for mousekeys, this is release
+#ifdef MOUSEKEY_ENABLE
+ if (inMouse) {
+ inMouse = false;
+ mousekey_off(mousePress);
+ mousekey_send();
+ }
+#endif
+
+ // handle command mode
+ if (cChord == COMMAND_MODE) {
+#ifndef NO_DEBUG
+ uprintf("COMMAND Toggle\n");
+#endif
+ if (cMode != COMMAND) { // Entering Command Mode
+ CMDLEN = 0;
+ pMode = cMode;
+ cMode = COMMAND;
+ } else { // Exiting Command Mode
+ cMode = pMode;
+
+ // Press all and release all
+ for (int i = 0; i < CMDLEN; i++) {
+ register_code(CMDBUF[i]);
+ }
+ clear_keyboard();
+ }
+ }
+
+ // Process and reset state
+ processChord();
+ cChord = pressed;
+ inChord = false;
+ chordIndex = 0;
+ clear_keyboard();
+ repEngaged = false;
+ for (int i = 0; i < 32; i++) chordState[i] = 0xFFFF;
+}
+
+// Update Chord State
+bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ // Everything happens in here when steno keys come in.
+ // Bail on keyup
+
+ // Update key repeat timers
+ repTimer = timer_read();
+ bool pr = record->event.pressed;
+ // Switch on the press adding to chord
+ switch (keycode) {
+ ENGINE_CONFIG
+ default:
+ return true;
+ }
+
+ // Handle any postprocessing
+
+ // All keys up, send it!
+ if (inChord && !pr && (pressed & IN_CHORD_MASK) == 0) {
+ processKeysUp();
+ return false;
+ }
+ if (pressed == 0 && !pr) {
+ processKeysUp();
+ return false;
+ }
+
+ cChord |= pressed;
+ cChord = process_engine_post(cChord, keycode, record);
+ inChord = (cChord & IN_CHORD_MASK) != 0;
+
+ // Store previous state for fastQWER
+ if (pr) {
+ chordState[chordIndex] = cChord;
+ chordIndex++;
+ }
+
+#ifndef NO_DEBUG
+ uprintf("Chord: %u\n", cChord);
+#endif
+ return false;
+}
+void matrix_scan_user(void) {
+ // We abuse this for early sending of key
+ // Key repeat only on QWER/SYMB layers
+ if (cMode != QWERTY || !inChord) return;
+
+ // Check timers
+#ifndef NO_HOLD
+ if (!repEngaged && timer_elapsed(repTimer) > REP_INIT_DELAY) {
+ // Process Key for report
+ processChord();
+
+ // Send report to host
+ send_keyboard_report();
+ repEngaged = true;
+ }
+#endif
+};
+
+// Try and match cChord
+C_SIZE mapKeys(C_SIZE chord, bool lookup) {
+ lookup = lookup || repEngaged;
+#ifndef NO_DEBUG
+ if (!lookup) uprint("SENT!\n");
+#endif
+ // Single key chords
+ for (int i = 0; i < keyLen; i++) {
+ if (keyDict[i].chord == chord) {
+ if (!lookup) SEND(keyDict[i].key);
+ return chord;
+ }
+ }
+
+ // strings
+ for (int i = 0; i < stringLen; i++) {
+ struct stringEntry fromPgm;
+ memcpy_P(&fromPgm, &strDict[i], sizeof(stringEntry_t));
+ if (fromPgm.chord == chord) {
+ if (!lookup) {
+ if (get_mods() & (MOD_LSFT | MOD_RSFT)) {
+ set_mods(get_mods() & ~(MOD_LSFT | MOD_RSFT));
+ set_oneshot_mods(MOD_LSFT);
+ }
+ send_string_P((PGM_P)(fromPgm.str));
+ }
+ return chord;
+ }
+ }
+
+ // combos
+ for (int i = 0; i < comboLen; i++) {
+ struct comboEntry fromPgm;
+ memcpy_P(&fromPgm, &cmbDict[i], sizeof(comboEntry_t));
+ if (fromPgm.chord == chord) {
+#ifndef NO_DEBUG
+ uprintf("%d found combo\n", i);
+#endif
+
+ if (!lookup) {
+ uint8_t comboKeys[COMBO_MAX];
+ memcpy_P(&comboKeys, fromPgm.keys, sizeof(uint8_t) * COMBO_MAX);
+ for (int j = 0; j < COMBO_MAX; j++)
+#ifndef NO_DEBUG
+ uprintf("Combo [%u]: %u\n", j, comboKeys[j]);
+#endif
+
+ for (int j = 0; (j < COMBO_MAX) && (comboKeys[j] != COMBO_END); j++) {
+#ifndef NO_DEBUG
+ uprintf("Combo [%u]: %u\n", j, comboKeys[j]);
+#endif
+ SEND(comboKeys[j]);
+ }
+ }
+ return chord;
+ }
+ }
+
+ // functions
+ for (int i = 0; i < funcsLen; i++) {
+ if (funDict[i].chord == chord) {
+ if (!lookup) funDict[i].act();
+ return chord;
+ }
+ }
+
+ // Special handling
+ for (int i = 0; i < specialLen; i++) {
+ if (spcDict[i].chord == chord) {
+ if (!lookup) {
+ uint16_t arg = spcDict[i].arg;
+ switch (spcDict[i].action) {
+ case SPEC_STICKY:
+ SET_STICKY(arg);
+ break;
+ case SPEC_REPEAT:
+ REPEAT();
+ break;
+ case SPEC_CLICK:
+ CLICK_MOUSE((uint8_t)arg);
+ break;
+ case SPEC_SWITCH:
+ SWITCH_LAYER(arg);
+ break;
+ default:
+ SEND_STRING("Invalid Special in Keymap");
+ }
+ }
+ return chord;
+ }
+ }
+
+ if ((chord & IN_CHORD_MASK) && (chord & IN_CHORD_MASK) != chord && mapKeys((chord & IN_CHORD_MASK), true) == (chord & IN_CHORD_MASK)) {
+#ifndef NO_DEBUG
+ uprintf("Try with ignore mask:%u\n", (chord & IN_CHORD_MASK));
+#endif
+ mapKeys((chord & ~IN_CHORD_MASK), lookup);
+ mapKeys((chord & IN_CHORD_MASK), lookup);
+ return chord;
+ }
+#ifndef NO_DEBUG
+ uprintf("Reached end\n");
+#endif
+ return 0;
+}
+// Traverse the chord history to a given point
+// Returns the mask to use
+void processChord(void) {
+ // Save the clean chord state
+ C_SIZE savedChord = cChord;
+
+ // Apply Stick Bits if needed
+ if (stickyBits != 0) {
+ cChord |= stickyBits;
+ for (int i = 0; i <= chordIndex; i++) chordState[i] |= stickyBits;
+ }
+
+ // First we test if a whole chord was passsed
+ // If so we just run it handling repeat logic
+ if (mapKeys(cChord, true) == cChord) {
+ mapKeys(cChord, false);
+ // Repeat logic
+ if (repeatFlag) {
+#ifndef NO_DEBUG
+ uprintf("repeating?\n");
+#endif
+ restoreState();
+ repeatFlag = false;
+ processChord();
+ } else {
+ saveState(cChord);
+ }
+ return;
+ }
+
+ C_SIZE next = process_chord_getnext(cChord);
+ if (next && next != cChord) {
+#ifndef NO_DEBUG
+ uprintf("Trying next candidate: %u\n", next);
+#endif
+ if (mapKeys(next, true) == next) {
+ mapKeys(next, false);
+ // Repeat logic
+ if (repeatFlag) {
+#ifndef NO_DEBUG
+ uprintf("repeating?\n");
+#endif
+ restoreState();
+ repeatFlag = false;
+ processChord();
+ } else {
+ saveState(cChord);
+ }
+ return;
+ }
+ }
+
+#ifndef NO_DEBUG
+ uprintf("made it past the maw\n");
+#endif
+
+ // Iterate through chord picking out the individual
+ // and longest chords
+ C_SIZE bufChords[QWERBUF];
+ int bufLen = 0;
+ C_SIZE mask = 0;
+
+ // We iterate over it multiple times to catch the longest
+ // chord. Then that gets addded to the mask and re run.
+ while (savedChord != mask) {
+ C_SIZE test = 0;
+ C_SIZE longestChord = 0;
+
+ for (int i = 0; i <= chordIndex; i++) {
+ cChord = chordState[i] & ~mask;
+ if (cChord == 0) continue;
+
+ test = mapKeys(cChord, true);
+ if (test != 0) {
+ longestChord = test;
+ }
+ }
+
+ mask |= longestChord;
+ bufChords[bufLen] = longestChord;
+ bufLen++;
+
+ // That's a loop of sorts, halt processing
+ if (bufLen >= QWERBUF) {
+#ifndef NO_DEBUG
+ uprintf("looped. exiting");
+#endif
+ return;
+ }
+ }
+
+ // Now that the buffer is populated, we run it
+ for (int i = 0; i < bufLen; i++) {
+ cChord = bufChords[i];
+#ifndef NO_DEBUG
+ uprintf("sending: %u\n", cChord);
+#endif
+ mapKeys(cChord, false);
+ }
+
+ // Save state in case of repeat
+ if (!repeatFlag) {
+ saveState(savedChord);
+ }
+
+ // Restore cChord for held repeat
+ cChord = savedChord;
+ return;
+}
+void saveState(C_SIZE cleanChord) {
+ pChord = cleanChord;
+ pChordIndex = chordIndex;
+ for (int i = 0; i < 32; i++) pChordState[i] = chordState[i];
+}
+void restoreState() {
+ cChord = pChord;
+ chordIndex = pChordIndex;
+ for (int i = 0; i < 32; i++) chordState[i] = pChordState[i];
+}
+
+// Macros for calling from keymap.c
+void SEND(uint8_t kc) {
+ // Send Keycode, Does not work for Quantum Codes
+ if (cMode == COMMAND && CMDLEN < MAX_CMD_BUF) {
+#ifndef NO_DEBUG
+ uprintf("CMD LEN: %d BUF: %d\n", CMDLEN, MAX_CMD_BUF);
+#endif
+ CMDBUF[CMDLEN] = kc;
+ CMDLEN++;
+ }
+
+ if (cMode != COMMAND) register_code(kc);
+ return;
+}
+void REPEAT(void) {
+ if (cMode != QWERTY) return;
+
+ repeatFlag = true;
+ return;
+}
+void SET_STICKY(C_SIZE stick) {
+ stickyBits ^= stick;
+ return;
+}
+void CLICK_MOUSE(uint8_t kc) {
+#ifdef MOUSEKEY_ENABLE
+ mousekey_on(kc);
+ mousekey_send();
+
+ // Store state for later use
+ inMouse = true;
+ mousePress = kc;
+#endif
+}
+void SWITCH_LAYER(int layer) {
+#ifndef NO_ACTION_LAYER
+ if (keymapsCount >= layer) layer_on(layer);
+#endif
+}
+uint8_t bitpop_v(C_SIZE val) {
+#if C_SIZE == uint8_t
+ return bitpop(val);
+#elif C_SIZE == uint16_t
+ return bitpop16(val);
+#elif C_SIZE == uint32_t
+ return bitpop32(val);
+#elif C_SIZE == uint64_t
+ uint8_t n = 0;
+ if (bits >> 32) {
+ bits >>= 32;
+ n += 32;
+ }
+ if (bits >> 16) {
+ bits >>= 16;
+ n += 16;
+ }
+ if (bits >> 8) {
+ bits >>= 8;
+ n += 8;
+ }
+ if (bits >> 4) {
+ bits >>= 4;
+ n += 4;
+ }
+ if (bits >> 2) {
+ bits >>= 2;
+ n += 2;
+ }
+ if (bits >> 1) {
+ bits >>= 1;
+ n += 1;
+ }
+ return n;
+#else
+# error unsupported C_SIZE
+#endif
+}
+__attribute__((weak)) C_SIZE process_engine_post(C_SIZE cur_chord, uint16_t keycode, keyrecord_t *record) { return cur_chord; }
diff --git a/keyboards/gboards/engine/engine.h b/keyboards/gboards/engine/engine.h
new file mode 100644
index 0000000000..5b9d5b0ecb
--- /dev/null
+++ b/keyboards/gboards/engine/engine.h
@@ -0,0 +1,104 @@
+/* 2019, g Heavy Industries
+ Blessed mother of Christ, please keep this readable
+ and protect us from segfaults. For thine is the clock,
+ the slave and the master. Until we return from main.
+
+ Amen.
+
+ This is a stripped down version of the Georgi engine meant for use with
+ . As such serial-Steno features are disabled, chords are 16bits and
+ crap is removed where possible
+*/
+
+#include QMK_KEYBOARD_H
+#pragma once
+#include "keymap.h"
+#include <string.h>
+#include <stdint.h>
+#include <stdio.h>
+#include "config_engine.h"
+#include <avr/pgmspace.h>
+#include "wait.h"
+
+// Maximum values for combos
+#define COMBO_END 0x00
+
+// In memory chord datatypes
+enum specialActions {
+ SPEC_STICKY,
+ SPEC_REPEAT,
+ SPEC_CLICK,
+ SPEC_SWITCH,
+};
+struct funcEntry {
+ C_SIZE chord;
+ void (*act)(void);
+} funcEntry_t;
+struct stringEntry {
+ C_SIZE chord;
+ PGM_P str;
+} stringEntry_t;
+struct comboEntry {
+ C_SIZE chord;
+ PGM_P keys;
+} comboEntry_t;
+struct keyEntry {
+ C_SIZE chord;
+ uint8_t key;
+} keyEntry_t;
+struct specialEntry {
+ C_SIZE chord;
+ enum specialActions action;
+ uint16_t arg;
+} specialEntry_t;
+
+// Chord Temps
+extern C_SIZE cChord;
+extern C_SIZE test;
+
+// Function defs
+void processKeysUp(void);
+void processChord(void);
+C_SIZE processQwerty(bool lookup);
+C_SIZE processFakeSteno(bool lookup);
+void saveState(C_SIZE cChord);
+void restoreState(void);
+uint8_t bitpop_v(C_SIZE val);
+
+// Macros for use in keymap.c
+void SEND(uint8_t kc);
+void REPEAT(void);
+void SET_STICKY(C_SIZE);
+void SWITCH_LAYER(int);
+void CLICK_MOUSE(uint8_t);
+C_SIZE process_engine_post(C_SIZE cur_chord, uint16_t keycode, keyrecord_t *record);
+C_SIZE process_chord_getnext(C_SIZE cur_chord);
+
+// Keymap helpers
+// New Approach, multiple structures
+#define P_KEYMAP(chord, keycode) {chord, keycode},
+
+#define K_KEYMAP(chord, name, ...) {chord, (PGM_P)&name},
+#define K_ACTION(chord, name, ...) const uint8_t name[] PROGMEM = __VA_ARGS__;
+
+#define S_KEYMAP(chord, name, string) {chord, (PGM_P)&name},
+#define S_ACTION(chord, name, string) const char name[] PROGMEM = string;
+
+#define X_KEYMAP(chord, name, func) {chord, name},
+#define X_ACTION(chord, name, func) \
+ void name(void) { func }
+
+#define Z_KEYMAP(chord, act, arg) {chord, act, arg},
+
+#define TEST_COLLISION(chord, ...) \
+ case chord: \
+ break;
+#define BLANK(...)
+
+// Shift to internal representation
+// i.e) S(teno)R(ight)F
+#define STN(n) ((C_SIZE)1 << n)
+#define ENGINE_HOOK(keycode, chord) \
+ case keycode: \
+ pr ? (pressed |= (chord)) : (pressed &= ~(chord)); \
+ break;
diff --git a/keyboards/gboards/engine/keymap_engine.h b/keyboards/gboards/engine/keymap_engine.h
new file mode 100644
index 0000000000..c8a42a052b
--- /dev/null
+++ b/keyboards/gboards/engine/keymap_engine.h
@@ -0,0 +1,121 @@
+/* If for some reason you're still here, maybe due to horror, shock or
+ * some other godforsaken reason. Meet X Macros.
+ *
+ * The we abuse the include system to generate data structures that are
+ * used by the internal chording engine. The alternative to this is
+ * using a external generator (Like is done for the ASETNIOP base keymaps)
+ * With this disgusting bodge, you can just edit your .defs and compile!
+ */
+
+// Clear all X Macros
+#define PRES BLANK
+#define KEYS BLANK
+#define SUBS BLANK
+#define EXEC BLANK
+#define SPEC BLANK
+
+// Process single key pushes
+#undef PRES
+#define PRES P_KEYMAP
+const struct keyEntry keyDict[] = {
+#include "dicts.def"
+};
+#undef PRES
+#define PRES BLANK
+
+// Process Combos
+#undef KEYS
+#define KEYS K_ACTION
+#include "dicts.def"
+#undef KEYS
+#define KEYS BLANK
+
+#undef KEYS
+#define KEYS K_KEYMAP
+const struct comboEntry PROGMEM cmbDict[] = {
+#include "dicts.def"
+};
+#undef KEYS
+#define KEYS BLANK
+
+// Process String stubs
+#undef SUBS
+#define SUBS S_ACTION
+#include "dicts.def"
+#undef SUBS
+#define SUBS BLANK
+
+// Generate dict for strings
+#undef SUBS
+#define SUBS S_KEYMAP
+const struct stringEntry PROGMEM strDict[] = {
+#include "dicts.def"
+};
+#undef SUBS
+#define SUBS BLANK
+
+// Generate function stubs
+#undef EXEC
+#define EXEC X_ACTION
+#include "dicts.def"
+#undef EXEC
+#define EXEC BLANK
+
+// Process the function structure
+#undef EXEC
+#define EXEC X_KEYMAP
+const struct funcEntry funDict[] = {
+#include "dicts.def"
+};
+#undef EXEC
+#define EXEC BLANK
+
+// Handle Special calls
+#undef SPEC
+#define SPEC Z_KEYMAP
+const struct specialEntry spcDict[] = {
+#include "dicts.def"
+};
+#undef SPEC
+#define SPEC BLANK
+
+// Test for collisions!
+// Switch statement will explode on duplicate
+// chords. This will be optimized out
+#undef PRES
+#undef KEYS
+#undef SUBS
+#undef EXEC
+#undef SPEC
+#define PRES TEST_COLLISION
+#define KEYS TEST_COLLISION
+#define SUBS TEST_COLLISION
+#define EXEC TEST_COLLISION
+#define SPEC TEST_COLLISION
+void testCollisions(void) {
+ C_SIZE bomb = 0;
+ switch (bomb) {
+#include "dicts.def"
+ }
+}
+
+// Test for unexpected input
+// Should return blank lines for all valid input
+#undef PRES
+#undef KEYS
+#undef SUBS
+#undef EXEC
+#undef SPEC
+#define PRES BLANK
+#define KEYS BLANK
+#define SUBS BLANK
+#define EXEC BLANK
+#define SPEC BLANK
+#include "dicts.def"
+
+// Get size data back into the engine
+size_t funcsLen = sizeof(funDict) / sizeof(funDict[0]);
+size_t stringLen = sizeof(strDict) / sizeof(strDict[0]);
+size_t keyLen = sizeof(keyDict) / sizeof(keyDict[0]);
+size_t comboLen = sizeof(cmbDict) / sizeof(cmbDict[0]);
+size_t specialLen = sizeof(spcDict) / sizeof(spcDict[0]);
diff --git a/keyboards/gboards/engine/rules.mk b/keyboards/gboards/engine/rules.mk
new file mode 100644
index 0000000000..186f59386d
--- /dev/null
+++ b/keyboards/gboards/engine/rules.mk
@@ -0,0 +1 @@
+SRC += engine.c
diff --git a/keyboards/gboards/g/config_default.h b/keyboards/gboards/g/config_default.h
new file mode 100644
index 0000000000..821c2c4ad5
--- /dev/null
+++ b/keyboards/gboards/g/config_default.h
@@ -0,0 +1,90 @@
+#include "engine.h"
+
+// Configuration options for the engine
+
+#define C_SIZE uint64_t // type for chord
+#define COMBO_MAX 4 // Longest Combo
+
+// Key Aliases, must fit within C_SIZE!
+// These are for Ginni + Asetniop
+#define GQ STN(0)
+#define GW STN(1)
+#define GE STN(2)
+#define GR STN(3)
+#define GT STN(4)
+#define GY STN(5)
+#define GU STN(6)
+#define GI STN(7)
+#define GO STN(8)
+#define GP STN(9)
+
+#define GA STN(10)
+#define GS STN(11)
+#define GD STN(12)
+#define GF STN(13)
+#define GG STN(14)
+#define GH STN(15)
+#define GJ STN(16)
+#define GK STN(17)
+#define GL STN(18)
+#define GCL STN(19)
+
+#define GZ STN(20)
+#define GX STN(21)
+#define GC STN(22)
+#define GV STN(23)
+#define GB STN(24)
+#define GN STN(25)
+#define GM STN(26)
+#define GLT STN(27)
+#define GGT STN(28)
+#define GQU STN(29)
+
+#define GL1 STN(30)
+#define GL2 STN(31)
+#define GL3 STN(32)
+#define GR3 STN(33)
+#define GR2 STN(34)
+#define GR1 STN(35)
+
+// Chord to start buffering strokes
+#define COMMAND_MODE (GL1 | GR1)
+
+// Mapping of QMK Keycodes to chord positions
+#define ENGINE_CONFIG \
+ ENGINE_HOOK(KC_Q, GQ) \
+ ENGINE_HOOK(KC_W, GW) \
+ ENGINE_HOOK(KC_E, GE) \
+ ENGINE_HOOK(KC_R, GR) \
+ ENGINE_HOOK(KC_T, GT) \
+ ENGINE_HOOK(KC_Y, GY) \
+ ENGINE_HOOK(KC_U, GU) \
+ ENGINE_HOOK(KC_I, GI) \
+ ENGINE_HOOK(KC_O, GO) \
+ ENGINE_HOOK(KC_P, GP) \
+ ENGINE_HOOK(KC_A, GA) \
+ ENGINE_HOOK(KC_S, GS) \
+ ENGINE_HOOK(KC_D, GD) \
+ ENGINE_HOOK(KC_F, GF) \
+ ENGINE_HOOK(KC_G, GG) \
+ ENGINE_HOOK(KC_H, GH) \
+ ENGINE_HOOK(KC_J, GJ) \
+ ENGINE_HOOK(KC_K, GK) \
+ ENGINE_HOOK(KC_L, GL) \
+ ENGINE_HOOK(KC_SCLN, GCL) \
+ ENGINE_HOOK(KC_Z, GZ) \
+ ENGINE_HOOK(KC_X, GX) \
+ ENGINE_HOOK(KC_C, GC) \
+ ENGINE_HOOK(KC_V, GV) \
+ ENGINE_HOOK(KC_B, GB) \
+ ENGINE_HOOK(KC_N, GN) \
+ ENGINE_HOOK(KC_M, GM) \
+ ENGINE_HOOK(KC_COMM, GLT) \
+ ENGINE_HOOK(KC_DOT, GGT) \
+ ENGINE_HOOK(KC_SLSH, GQU) \
+ ENGINE_HOOK(KC_F1, GL1) \
+ ENGINE_HOOK(KC_F2, GL2) \
+ ENGINE_HOOK(KC_F3, GL3) \
+ ENGINE_HOOK(KC_F4, GR3) \
+ ENGINE_HOOK(KC_F5, GR2) \
+ ENGINE_HOOK(KC_F6, GR1)
diff --git a/keyboards/gboards/g/engine.c b/keyboards/gboards/g/engine.c
new file mode 100644
index 0000000000..015b48d38f
--- /dev/null
+++ b/keyboards/gboards/g/engine.c
@@ -0,0 +1,470 @@
+/* This is a stripped down version of the Georgi engine meant for use with
+ * Ginni. As such serial-Steno features are disabled, chords are 16bits and
+ * crap is removed where possible
+ *
+ * Do not use this on anything other then Ginny if you want to be sane
+ */
+#include "engine.h"
+
+// Chord state
+C_SIZE cChord = 0; // Current Chord
+int chordIndex = 0; // Keys in previousachord
+C_SIZE pressed = 0; // number of held keys
+C_SIZE chordState[32]; // Full Chord history
+#define QWERBUF 24 // Size of chords to buffer for output
+
+bool repeatFlag = false; // Should we repeat?
+C_SIZE pChord = 0; // Previous Chord
+C_SIZE stickyBits = 0; // Or'd with every incoming press
+int pChordIndex = 0; // Keys in previousachord
+C_SIZE pChordState[32]; // Previous chord sate
+
+// Key Dicts
+extern const struct keyEntry keyDict[];
+extern const struct comboEntry cmbDict[];
+extern const struct funcEntry funDict[];
+extern const struct stringEntry strDict[];
+extern const struct specialEntry spcDict[];
+extern size_t specialLen;
+extern size_t stringLen;
+extern size_t funcsLen;
+extern size_t keyLen;
+extern size_t comboLen;
+
+// Mode state
+enum MODE { STENO = 0, QWERTY, COMMAND };
+enum MODE pMode;
+enum MODE cMode = QWERTY;
+
+// Command State
+#define MAX_CMD_BUF 20
+uint8_t CMDLEN = 0;
+uint8_t CMDBUF[MAX_CMD_BUF];
+
+// Key Repeat state
+bool inChord = false;
+bool repEngaged = false;
+uint16_t repTimer = 0;
+#define REP_INIT_DELAY 750
+#define REP_DELAY 25
+
+// Mousekeys state
+bool inMouse = false;
+int8_t mousePress;
+
+// All processing done at chordUp goes through here
+void processKeysUp() {
+ // Check for mousekeys, this is release
+#ifdef MOUSEKEY_ENABLE
+ if (inMouse) {
+ inMouse = false;
+ mousekey_off(mousePress);
+ mousekey_send();
+ }
+#endif
+
+ // handle command mode
+#ifdef COMMAND_MODE
+ if (cChord == COMMAND_MODE) {
+# ifndef NO_DEBUG
+ uprintf("COMMAND Toggle\n");
+# endif
+ if (cMode != COMMAND) { // Entering Command Mode
+ CMDLEN = 0;
+ pMode = cMode;
+ cMode = COMMAND;
+ } else { // Exiting Command Mode
+ cMode = pMode;
+
+ // Press all and release all
+ for (int i = 0; i < CMDLEN; i++) {
+ register_code(CMDBUF[i]);
+ }
+ clear_keyboard();
+ }
+ }
+#endif
+
+ // Process and reset state
+ processChord();
+ cChord = pressed;
+ inChord = false;
+ chordIndex = 0;
+ clear_keyboard();
+ repEngaged = false;
+ for (int i = 0; i < 32; i++) chordState[i] = 0xFFFF;
+}
+
+// Update Chord State
+bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ // Check if we should run at all
+ if (process_engine_pre(cChord, keycode, record) == false) return true;
+
+ // Everything happens in here when steno keys come in.
+ // Bail on keyup
+
+ // Update key repeat timers
+ repTimer = timer_read();
+ bool pr = record->event.pressed;
+ // Switch on the press adding to chord
+ switch (keycode) {
+ ENGINE_CONFIG
+ default:
+ return true;
+ }
+
+ // Handle any postprocessing
+
+ // All keys up, send it!
+ if (inChord && !pr && (pressed & IN_CHORD_MASK) == 0) {
+ processKeysUp();
+ return false;
+ }
+ if (pressed == 0 && !pr) {
+ processKeysUp();
+ return false;
+ }
+
+ cChord |= pressed;
+ cChord = process_engine_post(cChord, keycode, record);
+ inChord = (cChord & IN_CHORD_MASK) != 0;
+
+ // Store previous state for fastQWER
+ if (pr) {
+ chordState[chordIndex] = cChord;
+ chordIndex++;
+ }
+
+#ifndef NO_DEBUG
+ uprintf("Chord: %u\n", cChord);
+#endif
+ return false;
+}
+void matrix_scan_user(void) {
+ // We abuse this for early sending of key
+ // Key repeat only on QWER/SYMB layers
+ if (cMode != QWERTY || !inChord) return;
+
+ // Check timers
+#ifndef NO_HOLD
+ if (!repEngaged && timer_elapsed(repTimer) > REP_INIT_DELAY) {
+ // Process Key for report
+ processChord();
+
+ // Send report to host
+ send_keyboard_report();
+ repEngaged = true;
+ }
+#endif
+};
+
+// Try and match cChord
+C_SIZE mapKeys(C_SIZE chord, bool lookup) {
+ lookup = lookup || repEngaged;
+#ifndef NO_DEBUG
+ if (!lookup) uprint("SENT!\n");
+#endif
+ // Single key chords
+ for (int i = 0; i < keyLen; i++) {
+ if (keyDict[i].chord == chord) {
+ if (!lookup) SEND(keyDict[i].key);
+ return chord;
+ }
+ }
+
+ // strings
+ for (int i = 0; i < stringLen; i++) {
+ struct stringEntry fromPgm;
+ memcpy_P(&fromPgm, &strDict[i], sizeof(stringEntry_t));
+ if (fromPgm.chord == chord) {
+ if (!lookup) {
+ if (get_mods() & (MOD_LSFT | MOD_RSFT)) {
+ set_mods(get_mods() & ~(MOD_LSFT | MOD_RSFT));
+ set_oneshot_mods(MOD_LSFT);
+ }
+ send_string_P((PGM_P)(fromPgm.str));
+ }
+ return chord;
+ }
+ }
+
+ // combos
+ for (int i = 0; i < comboLen; i++) {
+ struct comboEntry fromPgm;
+ memcpy_P(&fromPgm, &cmbDict[i], sizeof(comboEntry_t));
+ if (fromPgm.chord == chord) {
+#ifndef NO_DEBUG
+ uprintf("%d found combo\n", i);
+#endif
+
+ if (!lookup) {
+ uint8_t comboKeys[COMBO_MAX];
+ memcpy_P(&comboKeys, fromPgm.keys, sizeof(uint8_t) * COMBO_MAX);
+ for (int j = 0; j < COMBO_MAX; j++)
+#ifndef NO_DEBUG
+ uprintf("Combo [%u]: %u\n", j, comboKeys[j]);
+#endif
+
+ for (int j = 0; (j < COMBO_MAX) && (comboKeys[j] != COMBO_END); j++) {
+#ifndef NO_DEBUG
+ uprintf("Combo [%u]: %u\n", j, comboKeys[j]);
+#endif
+ SEND(comboKeys[j]);
+ }
+ }
+ return chord;
+ }
+ }
+
+ // functions
+ for (int i = 0; i < funcsLen; i++) {
+ if (funDict[i].chord == chord) {
+ if (!lookup) funDict[i].act();
+ return chord;
+ }
+ }
+
+ // Special handling
+ for (int i = 0; i < specialLen; i++) {
+ if (spcDict[i].chord == chord) {
+ if (!lookup) {
+ uint16_t arg = spcDict[i].arg;
+ switch (spcDict[i].action) {
+ case SPEC_STICKY:
+ SET_STICKY(arg);
+ break;
+ case SPEC_REPEAT:
+ REPEAT();
+ break;
+ case SPEC_CLICK:
+ CLICK_MOUSE((uint8_t)arg);
+ break;
+ case SPEC_SWITCH:
+ SWITCH_LAYER(arg);
+ break;
+ default:
+ SEND_STRING("Invalid Special in Keymap");
+ }
+ }
+ return chord;
+ }
+ }
+
+ if ((chord & IN_CHORD_MASK) && (chord & IN_CHORD_MASK) != chord && mapKeys((chord & IN_CHORD_MASK), true) == (chord & IN_CHORD_MASK)) {
+#ifndef NO_DEBUG
+ uprintf("Try with ignore mask:%u\n", (chord & IN_CHORD_MASK));
+#endif
+ mapKeys((chord & ~IN_CHORD_MASK), lookup);
+ mapKeys((chord & IN_CHORD_MASK), lookup);
+ return chord;
+ }
+#ifndef NO_DEBUG
+ uprintf("Reached end\n");
+#endif
+ return 0;
+}
+// Traverse the chord history to a given point
+// Returns the mask to use
+void processChord(void) {
+ // Save the clean chord state
+ C_SIZE savedChord = cChord;
+
+ // Apply Stick Bits if needed
+ if (stickyBits != 0) {
+ cChord |= stickyBits;
+ for (int i = 0; i <= chordIndex; i++) chordState[i] |= stickyBits;
+ }
+
+ // First we test if a whole chord was passsed
+ // If so we just run it handling repeat logic
+ if (mapKeys(cChord, true) == cChord) {
+ mapKeys(cChord, false);
+ // Repeat logic
+ if (repeatFlag) {
+#ifndef NO_DEBUG
+ uprintf("repeating?\n");
+#endif
+ restoreState();
+ repeatFlag = false;
+ processChord();
+ } else {
+ saveState(cChord);
+ }
+ return;
+ }
+
+ C_SIZE next = process_chord_getnext(cChord);
+ if (next && next != cChord) {
+#ifndef NO_DEBUG
+ uprintf("Trying next candidate: %u\n", next);
+#endif
+ if (mapKeys(next, true) == next) {
+ mapKeys(next, false);
+ // Repeat logic
+ if (repeatFlag) {
+#ifndef NO_DEBUG
+ uprintf("repeating?\n");
+#endif
+ restoreState();
+ repeatFlag = false;
+ processChord();
+ } else {
+ saveState(cChord);
+ }
+ return;
+ }
+ }
+
+#ifndef NO_DEBUG
+ uprintf("made it past the maw\n");
+#endif
+
+ // Iterate through chord picking out the individual
+ // and longest chords
+ C_SIZE bufChords[QWERBUF];
+ int bufLen = 0;
+ C_SIZE mask = 0;
+
+ // We iterate over it multiple times to catch the longest
+ // chord. Then that gets addded to the mask and re run.
+ while (savedChord != mask) {
+ C_SIZE test = 0;
+ C_SIZE longestChord = 0;
+
+ for (int i = 0; i <= chordIndex; i++) {
+ cChord = chordState[i] & ~mask;
+ if (cChord == 0) continue;
+
+ test = mapKeys(cChord, true);
+ if (test != 0) {
+ longestChord = test;
+ }
+ }
+
+ mask |= longestChord;
+ bufChords[bufLen] = longestChord;
+ bufLen++;
+
+ // That's a loop of sorts, halt processing
+ if (bufLen >= QWERBUF) {
+#ifndef NO_DEBUG
+ uprintf("looped. exiting");
+#endif
+ return;
+ }
+ }
+
+ // Now that the buffer is populated, we run it
+ for (int i = 0; i < bufLen; i++) {
+ cChord = bufChords[i];
+#ifndef NO_DEBUG
+ uprintf("sending: %u\n", cChord);
+#endif
+ mapKeys(cChord, false);
+ }
+
+ // Save state in case of repeat
+ if (!repeatFlag) {
+ saveState(savedChord);
+ }
+
+ // Restore cChord for held repeat
+ cChord = savedChord;
+ return;
+}
+void saveState(C_SIZE cleanChord) {
+ pChord = cleanChord;
+ pChordIndex = chordIndex;
+ for (int i = 0; i < 32; i++) pChordState[i] = chordState[i];
+}
+void restoreState() {
+ cChord = pChord;
+ chordIndex = pChordIndex;
+ for (int i = 0; i < 32; i++) chordState[i] = pChordState[i];
+}
+
+// Macros for calling from keymap.c
+void SEND(uint8_t kc) {
+ // Send Keycode, Does not work for Quantum Codes
+ if (cMode == COMMAND && CMDLEN < MAX_CMD_BUF) {
+#ifndef NO_DEBUG
+ uprintf("CMD LEN: %d BUF: %d\n", CMDLEN, MAX_CMD_BUF);
+#endif
+ CMDBUF[CMDLEN] = kc;
+ CMDLEN++;
+ }
+
+ if (cMode != COMMAND) register_code(kc);
+ return;
+}
+void REPEAT(void) {
+ if (cMode != QWERTY) return;
+
+ repeatFlag = true;
+ return;
+}
+void SET_STICKY(C_SIZE stick) {
+ stickyBits ^= stick;
+ return;
+}
+void CLICK_MOUSE(uint8_t kc) {
+#ifdef MOUSEKEY_ENABLE
+ mousekey_on(kc);
+ mousekey_send();
+
+ // Store state for later use
+ inMouse = true;
+ mousePress = kc;
+#endif
+}
+void SWITCH_LAYER(int layer) {
+#ifndef NO_ACTION_LAYER
+ if (keymapsCount >= layer) {
+ layer_clear();
+ layer_on(layer);
+ }
+#endif
+}
+uint8_t bitpop_v(C_SIZE val) {
+#if C_SIZE == uint8_t
+ return bitpop(val);
+#elif C_SIZE == uint16_t
+ return bitpop16(val);
+#elif C_SIZE == uint32_t
+ return bitpop32(val);
+#elif C_SIZE == uint64_t
+ uint8_t n = 0;
+ if (bits >> 32) {
+ bits >>= 32;
+ n += 32;
+ }
+ if (bits >> 16) {
+ bits >>= 16;
+ n += 16;
+ }
+ if (bits >> 8) {
+ bits >>= 8;
+ n += 8;
+ }
+ if (bits >> 4) {
+ bits >>= 4;
+ n += 4;
+ }
+ if (bits >> 2) {
+ bits >>= 2;
+ n += 2;
+ }
+ if (bits >> 1) {
+ bits >>= 1;
+ n += 1;
+ }
+ return n;
+#else
+# error unsupported C_SIZE
+#endif
+}
+
+// See engine.h for what these hooks do
+__attribute__((weak)) C_SIZE process_engine_post(C_SIZE cur_chord, uint16_t keycode, keyrecord_t *record) { return cur_chord; }
+__attribute__((weak)) C_SIZE process_engine_pre(C_SIZE cur_chord, uint16_t keycode, keyrecord_t *record) { return true; }
+__attribute__((weak)) C_SIZE process_chord_getnext(C_SIZE cur_chord) { return 0; }
diff --git a/keyboards/gboards/g/engine.h b/keyboards/gboards/g/engine.h
new file mode 100644
index 0000000000..547ea09fdd
--- /dev/null
+++ b/keyboards/gboards/g/engine.h
@@ -0,0 +1,117 @@
+/* 2019, g Heavy Industries
+ Blessed mother of Christ, please keep this readable
+ and protect us from segfaults. For thine is the clock,
+ the slave and the master. Until we return from main.
+
+ Amen.
+
+ This is a stripped down version of the Georgi engine meant for use with
+ . As such serial-Steno features are disabled, chords are 16bits and
+ crap is removed where possible
+*/
+
+#include QMK_KEYBOARD_H
+#pragma once
+#include "keymap.h"
+#include <string.h>
+#include <stdint.h>
+#include <stdio.h>
+#include "config_engine.h"
+#include <avr/pgmspace.h>
+#include "wait.h"
+#ifdef MOUSEKEY_ENABLE
+# include "mousekey.h"
+#endif
+
+// Set defaults
+#ifndef IN_CHORD_MASK
+# define IN_CHORD_MASK 0xFFFFFFFFFFFFFFFF
+#endif
+
+#ifndef COMBO_END
+# define COMBO_END 0x00
+#endif
+
+// In memory chord datatypes
+enum specialActions {
+ SPEC_STICKY,
+ SPEC_REPEAT,
+ SPEC_CLICK,
+ SPEC_SWITCH,
+};
+struct funcEntry {
+ C_SIZE chord;
+ void (*act)(void);
+} funcEntry_t;
+struct stringEntry {
+ C_SIZE chord;
+ PGM_P str;
+} stringEntry_t;
+struct comboEntry {
+ C_SIZE chord;
+ PGM_P keys;
+} comboEntry_t;
+struct keyEntry {
+ C_SIZE chord;
+ uint8_t key;
+} keyEntry_t;
+struct specialEntry {
+ C_SIZE chord;
+ enum specialActions action;
+ uint16_t arg;
+} specialEntry_t;
+
+// Chord Temps
+extern C_SIZE cChord;
+extern C_SIZE test;
+extern size_t keymapsCount; // Total keymaps (exported from keymap.c)
+
+// Function defs
+void processKeysUp(void);
+void processChord(void);
+C_SIZE processQwerty(bool lookup);
+C_SIZE processFakeSteno(bool lookup);
+void saveState(C_SIZE cChord);
+void restoreState(void);
+uint8_t bitpop_v(C_SIZE val);
+
+// Macros for use in keymap.c
+void SEND(uint8_t kc);
+void REPEAT(void);
+void SET_STICKY(C_SIZE);
+void SWITCH_LAYER(int);
+void CLICK_MOUSE(uint8_t);
+C_SIZE process_chord_getnext(C_SIZE cur_chord);
+// Run before hitting the engine. Return false to skip engine processing
+C_SIZE process_engine_pre(C_SIZE cur_chord, uint16_t keycode, keyrecord_t *record);
+// Run after reading a chord.
+C_SIZE process_engine_post(C_SIZE cur_chord, uint16_t keycode, keyrecord_t *record);
+
+// Keymap helpers
+// New Approach, multiple structures
+#define P_KEYMAP(chord, keycode) {chord, keycode},
+
+#define K_KEYMAP(chord, name, ...) {chord, (PGM_P)&name},
+#define K_ACTION(chord, name, ...) const uint8_t name[] PROGMEM = __VA_ARGS__;
+
+#define S_KEYMAP(chord, name, string) {chord, (PGM_P)&name},
+#define S_ACTION(chord, name, string) const char name[] PROGMEM = string;
+
+#define X_KEYMAP(chord, name, func) {chord, name},
+#define X_ACTION(chord, name, func) \
+ void name(void) { func }
+
+#define Z_KEYMAP(chord, act, arg) {chord, act, arg},
+
+#define TEST_COLLISION(chord, ...) \
+ case chord: \
+ break;
+#define BLANK(...)
+
+// Shift to internal representation
+// i.e) S(teno)R(ight)F
+#define STN(n) ((C_SIZE)1 << n)
+#define ENGINE_HOOK(keycode, chord) \
+ case keycode: \
+ pr ? (pressed |= (chord)) : (pressed &= ~(chord)); \
+ break;
diff --git a/keyboards/gboards/g/keymap_combo.h b/keyboards/gboards/g/keymap_combo.h
new file mode 100644
index 0000000000..674d3356cc
--- /dev/null
+++ b/keyboards/gboards/g/keymap_combo.h
@@ -0,0 +1,56 @@
+// Keymap helpers
+
+#define K_ENUM(name, key, ...) name,
+#define K_DATA(name, key, ...) const uint16_t PROGMEM cmb_##name[] = {__VA_ARGS__, COMBO_END};
+#define K_COMB(name, key, ...) [name] = COMBO(cmb_##name, key),
+
+#define A_ENUM(name, string, ...) name,
+#define A_DATA(name, string, ...) const uint16_t PROGMEM cmb_##name[] = {__VA_ARGS__, COMBO_END};
+#define A_COMB(name, string, ...) [name] = COMBO_ACTION(cmb_##name),
+#define A_ACTI(name, string, ...) \
+ case name: \
+ if (pressed) SEND_STRING(string); \
+ break;
+#define BLANK(...)
+
+// Generate data needed for combos/actions
+// Create Enum
+#undef COMB
+#undef SUBS
+#define COMB K_ENUM
+#define SUBS A_ENUM
+enum combos {
+#include "combos.def"
+};
+
+// Bake combos into mem
+#undef COMB
+#undef SUBS
+#define COMB K_DATA
+#define SUBS A_DATA
+#include "combos.def"
+#undef COMB
+#undef SUBS
+
+// Fill combo array
+#define COMB K_COMB
+#define SUBS A_COMB
+combo_t key_combos[] = {
+#include "combos.def"
+};
+#undef COMB
+#undef SUBS
+
+// Export length to combo module
+int COMBO_LEN = sizeof(key_combos) / sizeof(key_combos[0]);
+
+// Fill QMK hook
+#define COMB BLANK
+#define SUBS A_ACTI
+void process_combo_event(uint8_t combo_index, bool pressed) {
+ switch (combo_index) {
+#include "combos.def"
+ }
+}
+#undef COMB
+#undef SUBS
diff --git a/keyboards/gboards/g/keymap_engine.h b/keyboards/gboards/g/keymap_engine.h
new file mode 100644
index 0000000000..93a4423340
--- /dev/null
+++ b/keyboards/gboards/g/keymap_engine.h
@@ -0,0 +1,122 @@
+/* If for some reason you're still here, maybe due to horror, shock or
+ * some other godforsaken reason. Meet X Macros.
+ *
+ * The we abuse the include system to generate data structures that are
+ * used by the internal chording engine. The alternative to this is
+ * using a external generator (Like is done for the ASETNIOP base keymaps)
+ * With this disgusting bodge, you can just edit your .defs and compile!
+ */
+#include "g/engine.h"
+
+// Clear all X Macros
+#define PRES BLANK
+#define KEYS BLANK
+#define SUBS BLANK
+#define EXEC BLANK
+#define SPEC BLANK
+
+// Process single key pushes
+#undef PRES
+#define PRES P_KEYMAP
+const struct keyEntry keyDict[] = {
+#include "dicts.def"
+};
+#undef PRES
+#define PRES BLANK
+
+// Process Combos
+#undef KEYS
+#define KEYS K_ACTION
+#include "dicts.def"
+#undef KEYS
+#define KEYS BLANK
+
+#undef KEYS
+#define KEYS K_KEYMAP
+const struct comboEntry PROGMEM cmbDict[] = {
+#include "dicts.def"
+};
+#undef KEYS
+#define KEYS BLANK
+
+// Process String stubs
+#undef SUBS
+#define SUBS S_ACTION
+#include "dicts.def"
+#undef SUBS
+#define SUBS BLANK
+
+// Generate dict for strings
+#undef SUBS
+#define SUBS S_KEYMAP
+const struct stringEntry PROGMEM strDict[] = {
+#include "dicts.def"
+};
+#undef SUBS
+#define SUBS BLANK
+
+// Generate function stubs
+#undef EXEC
+#define EXEC X_ACTION
+#include "dicts.def"
+#undef EXEC
+#define EXEC BLANK
+
+// Process the function structure
+#undef EXEC
+#define EXEC X_KEYMAP
+const struct funcEntry funDict[] = {
+#include "dicts.def"
+};
+#undef EXEC
+#define EXEC BLANK
+
+// Handle Special calls
+#undef SPEC
+#define SPEC Z_KEYMAP
+const struct specialEntry spcDict[] = {
+#include "dicts.def"
+};
+#undef SPEC
+#define SPEC BLANK
+
+// Test for collisions!
+// Switch statement will explode on duplicate
+// chords. This will be optimized out
+#undef PRES
+#undef KEYS
+#undef SUBS
+#undef EXEC
+#undef SPEC
+#define PRES TEST_COLLISION
+#define KEYS TEST_COLLISION
+#define SUBS TEST_COLLISION
+#define EXEC TEST_COLLISION
+#define SPEC TEST_COLLISION
+void testCollisions(void) {
+ C_SIZE bomb = 0;
+ switch (bomb) {
+#include "dicts.def"
+ }
+}
+
+// Test for unexpected input
+// Should return blank lines for all valid input
+#undef PRES
+#undef KEYS
+#undef SUBS
+#undef EXEC
+#undef SPEC
+#define PRES BLANK
+#define KEYS BLANK
+#define SUBS BLANK
+#define EXEC BLANK
+#define SPEC BLANK
+#include "dicts.def"
+
+// Get size data back into the engine
+size_t funcsLen = sizeof(funDict) / sizeof(funDict[0]);
+size_t stringLen = sizeof(strDict) / sizeof(strDict[0]);
+size_t keyLen = sizeof(keyDict) / sizeof(keyDict[0]);
+size_t comboLen = sizeof(cmbDict) / sizeof(cmbDict[0]);
+size_t specialLen = sizeof(spcDict) / sizeof(spcDict[0]);
diff --git a/keyboards/gboards/g/rules.mk b/keyboards/gboards/g/rules.mk
new file mode 100644
index 0000000000..186f59386d
--- /dev/null
+++ b/keyboards/gboards/g/rules.mk
@@ -0,0 +1 @@
+SRC += engine.c
diff --git a/keyboards/gboards/readme.md b/keyboards/gboards/readme.md
new file mode 100644
index 0000000000..743bacbcc1
--- /dev/null
+++ b/keyboards/gboards/readme.md
@@ -0,0 +1,39 @@
+# gBoards Monorepo
+
+Ever wanted to do some crazy stuff with combos or onboard steno? Here's a big repo for you to include into your
+keymaps. You may need to do some configuration on your part, for the documentation hit up [docs.gboards.ca](http://docs.gboards.ca/)
+
+## Building
+
+You can find all of my keyboards under the k/ folder. Make with
+
+`make gboards/k/gergoplex:default:flash` or similar
+
+## Configuration
+Dictionaries are layered ontop of each other at compile time, you specify these in dicts.def and combos.def respectively.
+This system allows the easy integration of other users combos and a simple way to break out combos by functionality.
+
+If you have a cool dictionary, please submit a PR against the respective directory!
+
+## Combos
+This is a set of dicts that templates macros ontop of QMK. Use this for augmenting your current setup with
+multi-chords! You can browse the available combo lists in combos/
+
+
+## Engine
+This is the onboard chording engine for all sorts of fun shenanigans. Be aware that this currently is a bit of a QMK
+replacement focused on pure chording. Take a look at the configuration in keyboards/ginny for ideas, all these dicts
+are stored over in dicts/
+
+## Installation
+You will need to add the following bits to your rules.mk, refer to keyboards/ginny for a working example
+`VPATH += keyboards/gboards/`
+
+And if you're using the chording engine, this as well.
+`SRC += g/engine.c `
+
+For combos, add `#include "g/keymap_combos.h"` to keymap.c to compile your combos.def into your keymap
+
+For the chording engine, add `#include "g/keymap_engine.h"` to keymap.c compile your dicts.def into your keymap. If you
+don't have a config_engine.h file for your keyboard, you will need to create it. (Once again, look at keyboards/ginny/
+for a example of how to do this.
diff --git a/keyboards/gergo/keymaps/abstractkb/config.h b/keyboards/gergo/keymaps/abstractkb/config.h
new file mode 100644
index 0000000000..bc7b9f7845
--- /dev/null
+++ b/keyboards/gergo/keymaps/abstractkb/config.h
@@ -0,0 +1,6 @@
+#pragma once
+
+#define IGNORE_MOD_TAP_INTERRUPT
+
+#undef DEBOUNCE
+#define DEBOUNCE 10
diff --git a/keyboards/gergo/keymaps/abstractkb/keymap.c b/keyboards/gergo/keymaps/abstractkb/keymap.c
new file mode 100644
index 0000000000..6ee37f8175
--- /dev/null
+++ b/keyboards/gergo/keymaps/abstractkb/keymap.c
@@ -0,0 +1,128 @@
+/* Good on you for modifying your layout! if you don't have
+ * time to read the QMK docs, a list of keycodes can be found at
+ *
+ * https://github.com/qmk/qmk_firmware/blob/master/docs/keycodes.md
+ *
+ * There's also a template for adding new layers at the bottom of this file!
+ */
+
+#include QMK_KEYBOARD_H
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define NUMB 2 // numbers/motion
+
+// Blank template at the bottom
+
+enum customKeycodes {
+ URL = 1
+};
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,-------------------------------------------. ,-------------------------------------------.
+ * | L1/ESC | Q | W | E | R | T | | Y | U | I | O | P | | \ |
+ * |--------+------+------+------+------+------|------. .------|------+------+------+------+------+--------|
+ * |Ctrl/BS | A | S | D | F | G | RMB | | | H | J | K | L | ; : | ' " |
+ * |--------+------+------+------+------+------|------| |------|------+------+------+------+------+--------|
+ * | LShift | Z | X | C | V | B | LMB | | | N | M | , < | . > | / ? |RShft/-_|
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * .----------. .-------. .------. .-----.
+ * | GUI/Del | |Ent/ALT| | Tab | |GUI |
+ * '----------' '-------' `------. '-----'
+ * ,-------. ,-------.
+ * | MMB | | PgDn |
+ * ,------|-------| |-------|------.
+ * | SYMB | NUMB | | SYMB | NUMB |
+ * | Space| Escape| | Mod |Space |
+ * | | | | | |
+ * `--------------' `--------------'
+ */
+[BASE] = LAYOUT_gergo(
+ LT(NUMB, KC_ESC), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_PIPE,
+ MT(MOD_LCTL, KC_BSPC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_BTN2, KC_TRNS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ KC_RSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_BTN1, KC_BTN3, KC_PGDN, KC_BSPC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_RSFT, KC_MINS),
+ MT(MOD_LGUI, KC_DEL), MT(MOD_LALT, KC_ENT), LT(SYMB, KC_SPC), LT(NUMB, KC_ESC), LT(SYMB, KC_ENT), LT(NUMB, KC_SPC), KC_TAB, KC_LGUI
+ ),
+/* Keymap 1: Symbols layer
+ *
+ * ,-------------------------------------------. ,-------------------------------------------.
+ * | | ! | @ | { | } | | | | | | | | | \ | |
+ * |--------+------+------+------+------+------|------. .------|------+------+------+------+------+--------|
+ * | | # | $ | ( | ) | ` | | | | + | - | / | * | % | ' " |
+ * |--------+------+------+------+------+------|------| |------|------+------+------+------+------+--------|
+ * | | % | ^ | [ | ] | ~ | | | | & | = | , | . | / ? | - _ |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * .------. .------. .------. .-----.
+ * | | | | | | | DEL |
+ * '------' '------' `------. '-----'
+ * ,-------. ,-------.
+ * | | | PgUp |
+ * ,------|-------| |-------|------.
+ * | | | | | |
+ * | ; | = | | = | ; |
+ * | | | | | |
+ * `--------------' `--------------'
+ */
+[SYMB] = LAYOUT_gergo(
+ KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS,
+ KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_TRNS, KC_TRNS, KC_PLUS, KC_MINS, KC_SLSH, KC_ASTR, KC_PERC, KC_QUOT,
+ KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AMPR, KC_EQL, KC_COMM, KC_DOT, KC_SLSH, KC_MINS,
+ KC_TRNS, KC_TRNS, KC_SCLN, KC_EQL, KC_EQL, KC_SCLN, KC_PGUP, KC_DEL
+ ),
+/* Keymap 2: Pad/Function layer
+ *
+ * ,-------------------------------------------. ,-------------------------------------------.
+ * | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
+ * |--------+------+------+------+------+------|------. .------|------+------+------+------+------+--------|
+ * | F1 | F2 | F3 | F4 | F5 | F6 | BTN1 | | | LEFT | DOWN | UP | RIGHT|VolDn | VolUp |
+ * |--------+------+------+------+------+------|------| |------|------+------+------+------+------+--------|
+ * | F7 | F8 | F9 | F10 | F11 | F12 | BTN2 | | | MLFT | MDWN | MUP | MRGHT|Ply/Pa| Skip |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * .------. .------. .------. .-----.
+ * | | | | | | | |
+ * '------' '------' `------. '-----'
+ * ,-------. ,-------.
+ * | | | PgUp |
+ * ,------|-------| |-------|------.
+ * | | | | | |
+ * | | | | | |
+ * | | | | | |
+ * `--------------' `--------------'
+ */
+[NUMB] = LAYOUT_gergo(
+ KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_VOLD, KC_VOLU,
+ KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_MPLY, KC_MNXT,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+};
+
+/* Keymap template
+ *
+ * ,-------------------------------------------. ,-------------------------------------------.
+ * | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+------|------. .------|------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+------|------| |------|------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * .------. .------. .------. .-----.
+ * | | | | | | | |
+ * '------' '------' `------. '-----'
+ * ,-------. ,-------.
+ * | | | |
+ * ,------|-------| |-------|------.
+ * | | | | | |
+ * | | | | | |
+ * | | | | | |
+ * `--------------' `--------------'
+[SYMB] = LAYOUT_gergo(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+ */
diff --git a/keyboards/gergo/keymaps/abstractkb/readme.md b/keyboards/gergo/keymaps/abstractkb/readme.md
new file mode 100644
index 0000000000..0b07136e89
--- /dev/null
+++ b/keyboards/gergo/keymaps/abstractkb/readme.md
@@ -0,0 +1,10 @@
+# [Gergo! By g Heavy Industries](http://gboards.ca)
+
+![Gergo image](https://4.bp.blogspot.com/-889nMXxgSM0/XCNxwnO5kUI/AAAAAAAA6mI/tZbWgZVCBW0dyZOCGJDkjN06DVax7j8XwCLcBGAs/s1600/48422820_967732713413298_485744639215665152_n.jpg)
+
+This is my personal modification to the stock gergo keymap.
+
+## Settings
+To edit various settings, enable the 1u trackball and whatnot please modify /keyboards/gergo/keymaps/default/rules.mk
+
+Ideally you should copy this directory and make your changes there. If you come up with a good layout submit a PR!
diff --git a/keyboards/gergo/keymaps/abstractkb/rules.mk b/keyboards/gergo/keymaps/abstractkb/rules.mk
new file mode 100644
index 0000000000..b87e599734
--- /dev/null
+++ b/keyboards/gergo/keymaps/abstractkb/rules.mk
@@ -0,0 +1,37 @@
+#----------------------------------------------------------------------------
+# make gergo:germ:dfu
+# Make sure you have dfu-programmer installed!
+#----------------------------------------------------------------------------
+# Firmware options
+BALLER = no # Enable to ball out
+BALLSTEP = 20 # Multiple in px to move, multiplied by layer number
+SCROLLSTEP = 1 # Lines to scroll with ball
+MOUSEKEY_ENABLE = yes # Mouse keys, needed for baller
+
+#Debug options
+VERBOSE = yes
+DEBUG_MATRIX_SCAN_RATE = no
+DEBUG_BALLER = no
+DEBUG_MATRIX = yes
+
+# A bunch of stuff that you shouldn't touch unless you
+# know what you're doing.
+#
+# No touchy, capiche?
+
+ifneq ($(strip $(BALLSTEP)),)
+ OPT_DEFS += -DTRKSTEP=$(strip $(BALLSTEP))
+endif
+ifneq ($(strip $(SCROLLSTEP)),)
+ OPT_DEFS += -DSCROLLSTEP=$(strip $(SCROLLSTEP))
+endif
+ifeq ($(strip $(BALLER)), yes)
+ POINTING_DEVICE_ENABLE = yes
+ OPT_DEFS += -DBALLER
+endif
+ifeq ($(strip $(DEBUG_BALLER)), yes)
+ OPT_DEFS += -DDEBUG_BALLER
+endif
+ifeq ($(strip $(DEBUG_MATRIX)), yes)
+ OPT_DEFS += -DDEBUG_MATRIX
+endif
diff --git a/keyboards/gingham/rules.mk b/keyboards/gingham/rules.mk
index 8448cf6468..e1046c017b 100644
--- a/keyboards/gingham/rules.mk
+++ b/keyboards/gingham/rules.mk
@@ -14,9 +14,6 @@ MCU = atmega328p
# ATmega328P USBasp
BOOTLOADER = USBasp
-# disable debug code
-OPT_DEFS = -DDEBUG_LEVEL=0
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/gray_studio/cod67/config.h b/keyboards/gray_studio/cod67/config.h
index 2231827ba6..238869c2c3 100644
--- a/keyboards/gray_studio/cod67/config.h
+++ b/keyboards/gray_studio/cod67/config.h
@@ -52,6 +52,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
* https://docs.qmk.fm/#/feature_backlight?id=timer-assisted-pwm-implementation
*/
#define BACKLIGHT_PIN D4
+#define BACKLIGHT_ON_STATE 0
#define RGB_DI_PIN B2
#ifdef RGB_DI_PIN
diff --git a/keyboards/gray_studio/cod67/readme.md b/keyboards/gray_studio/cod67/readme.md
index 6e79ffec4a..b7a9a8028a 100644
--- a/keyboards/gray_studio/cod67/readme.md
+++ b/keyboards/gray_studio/cod67/readme.md
@@ -39,7 +39,3 @@ After putting your COD67 in bootloader mode, it will show up as a drive.
* Drag and drop your new `COD67.BIN` to the drive.
* Wait a few seconds for it to write. The caps lock LED flashes rapidly while writing.
* Press the `Esc` key or eject the drive in Finder to reset the board. You are now ready to type!
-
-## Notes
-
-The backlight pin is attached to a non PWM pin `D4` so the backlight is only on/off.
diff --git a/keyboards/gray_studio/hb85/rules.mk b/keyboards/gray_studio/hb85/rules.mk
index a9746c0d3d..981f6b514f 100644
--- a/keyboards/gray_studio/hb85/rules.mk
+++ b/keyboards/gray_studio/hb85/rules.mk
@@ -20,5 +20,3 @@ COMMAND_ENABLE = yes
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
-
-OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/handwired/aek64/config.h b/keyboards/handwired/aek64/config.h
index a072d562a7..f10cd69dd5 100644
--- a/keyboards/handwired/aek64/config.h
+++ b/keyboards/handwired/aek64/config.h
@@ -27,9 +27,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define PRODUCT AEK64
#define DESCRIPTION QMK keyboard firmware for AEK64 handwired
-/* Define the backlight */
-/*#define BACKLIGHT_ON_STATE 1*/
-
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 14
diff --git a/keyboards/handwired/bdn9_ble/config.h b/keyboards/handwired/bdn9_ble/config.h
index 8db9253dd4..e6762406a0 100644
--- a/keyboards/handwired/bdn9_ble/config.h
+++ b/keyboards/handwired/bdn9_ble/config.h
@@ -41,7 +41,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define BACKLIGHT_PIN F6
// #define BACKLIGHT_BREATHING
#define BACKLIGHT_LEVELS 5
-#define BACKLIGHT_ON_STATE 1
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
diff --git a/keyboards/handwired/d48/README.md b/keyboards/handwired/d48/README.md
new file mode 100644
index 0000000000..a20b8a4251
--- /dev/null
+++ b/keyboards/handwired/d48/README.md
@@ -0,0 +1,87 @@
+# D48
+
+![Proton C based handwired 40% keyboard](https://i.imgur.com/2wCYuno.jpg)
+
+A Proton C based handwired 48 key keyboard with 2 rotary encoders, I2C OLED, WS2812 strip, buzzer & clock!
+
+- Keyboard Maintainer: Andrew Dunai
+- Hardware Supported: Proton C handwired
+
+Make example for this keyboard (after setting up your build environment):
+
+ make handwired/d48:default
+
+## Details
+
+- Proton C based handwired keyboard
+- 2x custom 1.25mm stainless steel plates
+- Kailh Choc White (clicky)
+- 2x rotary encoders
+- 0.91" 128x32 I<sup>2</sup>C OLED
+- Small buzzer mounted inside (still waiting for the AST1109MLTRQ boys)
+- WS2812 strip (14 LEDs)
+- DS1307 I<sup>2</sup>C module real-time clock
+
+Build process: [album](https://imgur.com/gallery/zZZGdDw)
+
+## Pinout
+
+![D48 pinout](https://imgur.com/QoStCvD.jpg)
+
+## Challenges
+
+I'm very happy with the result, but at some point Proton C was driving me nuts.
+
+I did a lot of trial and error during assembly & programming.
+There were a lot of *yet* undocumented caveats,
+so I'll outline them here so that you guys can avoid the same issues I had.
+
+## Matrix & encoders
+
+Although this is a 48-key board with a 12-col & 4-row matrix, I've decided to add an extra row above the first one
+to make my matrix 12x5 and wire encoders' push buttons as 2 extra keys, thus making it a total of 50 (12x4 + 2 encoders).
+I used 2 columns (9 & 12) for those buttons.
+
+So, a first row actually has 2 buttons on columns 9 & 12 (because encoders are located near those columns).
+Encoders' push buttons are also configured via QMK's keymap.
+
+Check out the `d48.h` & `config.h` for pins used & keymap macro definition.
+
+## I<sup>2</sup>C/OLED
+
+Most of the stuff worked out of the box, except me choosing the right pins for my OLED.
+
+On the Proton C pinout, there are 3 labels for I<sup>2</sup>C and for some reason
+there are 2 pairs of SDA/SCL for I<sup>2</sup>C<sup>1</sup> channel: `B8`/`B9` (rear left side) and `B6`/`B7` (rear right side).
+I'm not sure if this is a mistake or if I was doing something wrong. So initially I picked `B8`/`B9`
+which were not working. When I switched to B6/B7, things worked like a charm.
+Later I used B9 for matrix row. No issues so far.
+
+Oh, and by the way, while using `B8`/`B9`, keyboard was sometimes *swallowing* quick keypresses.
+I believe this was due to I(2)C timeouts (because incorrect pins were used for OLED).
+
+## Buzzer
+
+It turns out once you switch on `AUDIO_ENABLE`, you cannot use A4 & A5 because they interfere with the buzzer.
+My guess is that buzzer uses DAC channels (not sure why both).
+
+I couldn't find this in documentation. Honestly, Proton C has almost zero documentation and this was
+the biggest challenge. Anyway, apart from almost going crazy from those challenges, I really liked it!
+
+## RGB
+
+I used pin `A15` for my WS28128 RGB strip.
+
+## D1307 real-time clock
+
+Connecting DS1307 RTC was a piece of cake: same I<sup>2</sup> pins as OLED (SDA/SCL), GND to GND and power to Proton C VUSB pin (5v).
+
+## Other issues
+
+- `B5` could not be used for matrix.
+- `TAP_CODE_DELAY` had to be increased to 10 to fix `tap_code(KC_VOLU/KC_VOLD)` calls being swallowed in encoder callback.
+- Be extremely attentive about the pinout: keep in mind that **the official Proton C pinout displays the rear of the board, not the front.** Being used to front pinouts, I ended up soldering entire matrix to the wrong side, so I had to desolder every wire and connect it to the opposite side.
+
+## Conclusion
+
+I had a lot of fun. The layout was inspired by the Planck THK. Feel free to ask any questions!
diff --git a/keyboards/handwired/d48/config.h b/keyboards/handwired/d48/config.h
new file mode 100644
index 0000000000..9c23442997
--- /dev/null
+++ b/keyboards/handwired/d48/config.h
@@ -0,0 +1,77 @@
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x6060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Andrew Dunai
+#define PRODUCT D48
+
+/* Key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 12
+
+/* Key matrix pins */
+#define MATRIX_ROW_PINS { B8, B9, B1, B2, B4 }
+
+#define MATRIX_COL_PINS { A2, B0, A7, A8, A13, A14, B12, B11, B10, B15, B14, B13 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Set 0 if debouncing isn't needed */
+// #define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+// #define LOCKING_SUPPORT_ENABLE
+
+/* Locking resynchronize hack */
+// #define LOCKING_RESYNC_ENABLE
+
+/* prevent stuck modifiers */
+// #define PREVENT_STUCK_MODIFIERS
+
+/* RGB Underglow */
+#ifdef RGBLIGHT_ENABLE
+#define RGB_DI_PIN A15
+#define RGBLED_NUM 14
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
+#define RGBLIGHT_ANIMATIONS
+#endif
+
+/* Audio */
+#ifdef AUDIO_ENABLE
+#define STARTUP_SONG_DOOM SONG(E1M1_DOOM)
+#define STARTUP_SONG SONG( \
+ Q__NOTE(_E6), \
+ Q__NOTE(_A6), \
+ H__NOTE(_E7), \
+ Q__NOTE(_E6), \
+ Q__NOTE(_E7) \
+)
+#endif
+
+/* Encoders */
+#define ENCODERS_PAD_A { B3, A0 }
+#define ENCODERS_PAD_B { A6, A1 }
+/* #define ENCODER_RESOLUTION 4 */
+
+/* OLED */
+#define OLED_FONT_H "glcdfont_d48.c"
+#define OLED_TIMEOUT 0
+// #define OLED_SCROLL_TIMEOUT 1000
+
+/* Taps (encoder tap_code) */
+#define TAP_CODE_DELAY 10
+
+/* I2C */
+//#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2
+//#define PAL_MODE_STM32_ALTERNATE_OPENDRAIN (PAL_MODE_ALTERNATE(4) | PAL_STM32_OTYPE_OPENDRAIN)
+
+/* DS1307 */
+#define DS1307_ADDR (0x68 << 1)
diff --git a/keyboards/handwired/d48/d48.c b/keyboards/handwired/d48/d48.c
new file mode 100644
index 0000000000..3cc2097bf8
--- /dev/null
+++ b/keyboards/handwired/d48/d48.c
@@ -0,0 +1 @@
+#include "d48.h"
diff --git a/keyboards/handwired/d48/d48.h b/keyboards/handwired/d48/d48.h
new file mode 100644
index 0000000000..b698ca187f
--- /dev/null
+++ b/keyboards/handwired/d48/d48.h
@@ -0,0 +1,19 @@
+#pragma once
+
+#include "quantum.h"
+
+#define ___ KC_NO
+
+#define LAYOUT( \
+ K08, K0B, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, \
+ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B \
+) { \
+ { ___, ___, ___, ___, ___, ___, ___, ___, K08, ___, ___, K0B }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B }, \
+ { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B } \
+}
diff --git a/keyboards/handwired/d48/ds1307.c b/keyboards/handwired/d48/ds1307.c
new file mode 100644
index 0000000000..f6b57d50d2
--- /dev/null
+++ b/keyboards/handwired/d48/ds1307.c
@@ -0,0 +1,21 @@
+#include "ds1307.h"
+#include "i2c_master.h"
+
+void ds1307_set_time(uint8_t h, uint8_t m, uint8_t s) {
+ uint8_t data[] = {
+ ((s % 10) | ((s / 10) << 4)) & 0x7F,
+ ((m % 10) | ((m / 10) << 4)) & 0x7F,
+ ((h % 10) | ((h / 10) << 4)) & 0x3F,
+ 0, 0, 0, 0, 0
+ }; // 24-hour mode
+ i2c_writeReg(DS1307_ADDR, 0, data, 8, 100);
+}
+
+void ds1307_get_time(uint8_t *h, uint8_t *m, uint8_t *s) {
+ uint8_t data[3];
+ i2c_readReg(DS1307_ADDR, 0, data, 3, 100);
+ i2c_stop();
+ *s = (data[0] & 0b1111) + ((data[0] & 0b1110000) >> 4) * 10;
+ *m = (data[1] & 0b1111) + ((data[1] & 0b1110000) >> 4) * 10;
+ *h = (data[2] & 0b1111) + ((data[2] & 0b0110000) >> 4) * 10;
+}
diff --git a/keyboards/handwired/d48/ds1307.h b/keyboards/handwired/d48/ds1307.h
new file mode 100644
index 0000000000..6f76db2508
--- /dev/null
+++ b/keyboards/handwired/d48/ds1307.h
@@ -0,0 +1,6 @@
+#pragma once
+
+#include <stdint.h>
+
+void ds1307_set_time(uint8_t h, uint8_t m, uint8_t s);
+void ds1307_get_time(uint8_t *h, uint8_t *m, uint8_t *s);
diff --git a/keyboards/handwired/d48/glcdfont_d48.c b/keyboards/handwired/d48/glcdfont_d48.c
new file mode 100644
index 0000000000..19063b00ce
--- /dev/null
+++ b/keyboards/handwired/d48/glcdfont_d48.c
@@ -0,0 +1,231 @@
+#include "progmem.h"
+
+// Helidox 8x6 font with QMK Firmware Logo
+// Online editor: http://teripom.x0.com/
+
+static const unsigned char font[] PROGMEM = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
+ 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
+ 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
+ 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
+ 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
+ 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
+ 0x00, 0x00, 0x08, 0x08, 0x00, 0x00,
+ 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
+ 0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
+ 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
+ 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
+ 0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
+ 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
+ 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
+ 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
+ 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
+ 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
+ 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
+ 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
+ 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
+ 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
+ 0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
+ 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
+ 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
+ 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
+ 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
+ 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
+ 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
+ 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
+ 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
+ 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
+ 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
+ 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
+ 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
+ 0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
+ 0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
+ 0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
+ 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
+ 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
+ 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
+ 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
+ 0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
+ 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
+ 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
+ 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
+ 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
+ 0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
+ 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
+ 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
+ 0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
+ 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
+ 0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
+ 0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
+ 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
+ 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
+ 0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
+ 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
+ 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
+ 0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
+ 0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
+ 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
+ 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
+ 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
+ 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
+ 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
+ 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
+ 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
+ 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
+ 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
+ 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
+ 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
+ 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
+ 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
+ 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
+ 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
+ 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
+ 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
+ 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
+ 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
+ 0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
+ 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
+ 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
+ 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
+ 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
+ 0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
+ 0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
+ 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
+ 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
+ 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
+ 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
+ 0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
+ 0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
+ 0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
+ 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
+ 0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
+ 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
+ 0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
+ 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
+ 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x00,
+ 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
+ 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
+ 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
+ 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
+ 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
+ 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
+ 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
+ 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
+ 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00,
+ 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00,
+ 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
+ 0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
+ 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
+ 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
+ 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
+ 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
+ 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
+ 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
+ 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
+ 0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
+ 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
+ 0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
+ 0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
+ 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x60, 0x70, 0x78, 0x3C,
+ 0x1E, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0,
+ 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,
+ 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x07,
+ 0x07, 0x07, 0x07, 0x07, 0x07, 0x0F,
+ 0x1F, 0xFE, 0xFE, 0xF8, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xF0, 0xFC, 0xFE, 0xFE, 0x3F,
+ 0x1F, 0x0F, 0x0F, 0x0F, 0x0F, 0x9F,
+ 0xFF, 0xFE, 0xFE, 0xFC, 0xF0, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x3E, 0x22, 0x22, 0x00, 0x02, 0x3E,
+ 0x02, 0x00, 0x3E, 0x20, 0x20, 0x00,
+ 0x00, 0x3C, 0x0A, 0x3C, 0x00, 0x3E,
+ 0x20, 0x20, 0x02, 0x3E, 0x02, 0x00,
+ 0x00, 0x1C, 0x22, 0x32, 0x00, 0x1E,
+ 0x20, 0x20, 0x1E, 0x00, 0x3E, 0x00,
+ 0x00, 0x2C, 0x2A, 0x1A, 0x00, 0x3E,
+ 0x0A, 0x02, 0x00, 0x02, 0x3E, 0x02,
+ 0x00, 0x00, 0x08, 0x08, 0x08, 0x08,
+ 0x08, 0x08, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xC0, 0xF8, 0xFF, 0xFF,
+ 0xFF, 0xE7, 0xE0, 0xE0, 0xE7, 0xFF,
+ 0xFF, 0xFF, 0xF8, 0xC0, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x3C,
+ 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x7E,
+ 0xFF, 0xE7, 0xE7, 0x81, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0,
+ 0xF0, 0xF8, 0x7C, 0x3E, 0x1F, 0x0F,
+ 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x22, 0x22, 0x00, 0x00,
+ 0x0F, 0x0F, 0x2F, 0x2F, 0x0F, 0x0F,
+ 0xF0, 0xF0, 0xF2, 0xF2, 0xF0, 0xF0,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0x00, 0x00, 0x22, 0x22, 0x00, 0xFF,
+ 0x0F, 0x0F, 0x2F, 0x2F, 0x0F, 0xFF,
+ 0xF0, 0xF0, 0xF2, 0xF2, 0xF0, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xF0, 0xFE, 0xFF, 0xFF, 0x0F, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x0F, 0xFF, 0xFF, 0xFE, 0xF0,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xF0,
+ 0xF8, 0x7F, 0x7F, 0x1F, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x0F, 0x3F, 0x7F, 0x7F, 0xFF,
+ 0xF9, 0xF0, 0xF0, 0xF0, 0xF0, 0xF8,
+ 0xFC, 0x7F, 0x7F, 0x3F, 0x0F, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0x11, 0x11, 0x11, 0x11, 0x11,
+ 0xFF, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F,
+ 0xFF, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0x11, 0x11, 0x11, 0x11, 0x11,
+ 0xFF, 0x11, 0x11, 0x11, 0x11, 0x11,
+ 0xFF, 0x11, 0x11, 0x11, 0x11, 0x11,
+ 0xFF, 0x11, 0x11, 0x11, 0x11, 0x11,
+ 0xFF, 0x11, 0x11, 0x11, 0x11, 0x11,
+ 0xFF, 0x11, 0x11, 0x11, 0x11, 0x11,
+ 0xFF, 0x11, 0x11, 0x11, 0x11, 0x11,
+ 0xFF, 0x11, 0x11, 0x11, 0x11, 0x11,
+};
diff --git a/keyboards/handwired/d48/keymaps/anderson/keymap.c b/keyboards/handwired/d48/keymaps/anderson/keymap.c
new file mode 100644
index 0000000000..25837a3591
--- /dev/null
+++ b/keyboards/handwired/d48/keymaps/anderson/keymap.c
@@ -0,0 +1,340 @@
+#include QMK_KEYBOARD_H
+#include "taphold.h"
+#include "seq.h"
+#include "ds1307.h"
+#include "lightmode.h"
+#include <stdio.h>
+
+/* Note: don't forget there's some more code in qmk_firmware/users/anderson dir */
+
+#define _MAIN 0
+#define _ALPHA 1
+#define _BETA 2
+
+enum custom_keycodes {
+ KC_MAIN = SAFE_RANGE,
+ KC_ALPHA,
+ KC_BETA,
+#ifdef LIGHTMODE_ENABLE
+ KC_LIGHT_MODE,
+#endif
+ KC_SEQ,
+ KC_SET_TIME,
+};
+#ifdef LIGHTMODE_ENABLE
+#endif
+
+/* TapHold is my own implementation of the `LT` macro. It's processed in `process_record_user()`. */
+#define TAPHOLD_CONFIG_SIZE 3
+taphold_t taphold_config[TAPHOLD_CONFIG_SIZE] = {
+ {.key=KC_ALPHA, .mode=TAPHOLD_LAYER, .shortAction=KC_ESC, .longAction=_ALPHA},
+ {.key=KC_BETA, .mode=TAPHOLD_LAYER, .shortAction=KC_EQL, .longAction=_BETA},
+ {.key=KC_RCTRL, .mode=TAPHOLD_MOD, .shortAction=KC_MINS, .longAction=KC_LCTRL},
+};
+uint16_t taphold_config_size = TAPHOLD_CONFIG_SIZE;
+uint32_t taphold_timeout = 90;
+
+/* Seq is implementation of unicode macros similar to UCIS, but with unicode strings. */
+#define SEQ_CONFIG_SIZE 3
+seq_t seq_config[SEQ_CONFIG_SIZE] = {
+ {.sequence="temp", .result="42°C"},
+ {.sequence="table", .result="┳━━┳"},
+ {.sequence="shrug", .result="¯\\_(ツ)_/¯"}
+};
+uint16_t seq_config_size = SEQ_CONFIG_SIZE;
+
+/* Colors */
+uint32_t layer_colors[3] = {
+ [_MAIN] = 0xFF0010,
+ [_ALPHA] = 0x4020FF,
+ [_BETA] = 0x20FF00,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Main layer
+ │MUTE │ │L_MOD│
+ ┏━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┓
+ ┃ TAB ┃ Q │ W │ E │ R │ T ┃ Y │ U │ I │ O │ P ┃ BSP ┃
+ ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
+ ┃𝛼/ESC┃ A │ S │ D │ F │ G ┃ H │ J │ K │ L │ ; ┃ RET ┃
+ ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
+ ┃SHIFT┃ Z │ X │ C │ V │ B ┃ N │ M │ , │ . │ / ┃CTL/-┃
+ ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
+ ┃LCTRL┃ │ │ ALT │ GUI │SPACE┃SPACE│ 𝛽/= │ ' │ │ ┃ \ ┃
+ ┗━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┛
+ */
+ [_MAIN] = LAYOUT( \
+ KC_MUTE, LCTL(KC_D),
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
+ KC_ALPHA,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTRL,\
+ KC_LCTRL,_______, _______, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_BETA, KC_QUOT, _______, _______, KC_BSLS \
+ ),
+
+ /* Alpha layer (𝛼)
+ │ │ │ │
+ ┏━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┓
+ ┃ ┃PREV │PLAY │NEXT │ │NUMLK┃ - │ ^^^ │ ^ │ vvv │ ~ ┃ DEL ┃
+ ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
+ ┃ ┃ │VOL -│VOL +│ │CPSLK┃HOME │ <-- │ v │ --> │ ` ┃ \ ┃
+ ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
+ ┃ ┃ │ │ │ │SCRLK┃ END │ = │ [ │ ] │ ( ┃ ) ┃
+ ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
+ ┃ ┃ │ │ │ │ ┃ │ │ │ │ ┃ ┃
+ ┗━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┛
+ */
+ [_ALPHA] = LAYOUT( \
+ _______, _______, \
+ _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_NLCK, KC_MINS, KC_PGUP, KC_UP, KC_PGDN, KC_TILD, KC_DEL, \
+ _______, _______, KC_VOLD, KC_VOLU, _______, KC_CAPS, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT,KC_GRV, KC_BSLS, \
+ _______, _______, _______, _______, _______, KC_SLCK, KC_END, KC_EQL, KC_LBRC, KC_RBRC, KC_LPRN ,KC_RPRN, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ ),
+
+ /* Beta layer (𝛽)
+ │ │ │ │
+ ┏━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┓
+ ┃ RGB ┃ 1 │ 2 │ 3 │ 4 │ 5 ┃ 6 │ 7 │ 8 │ 9 │ 0 ┃ F12 ┃
+ ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
+ ┃L_MOD┃ F1 │ F2 │ F3 │ F4 │ F5 ┃ F6 │ F7 │ F8 │ F9 │ F10 ┃ F11 ┃
+ ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
+ ┃ ┃RESET│DEBUG│ │ │TIME ┃SLEEP│ SEQ │ { │ } │PTSCR┃ ┃
+ ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
+ ┃ ┃ │ │ │ │ ┃ │ │ │ │ ┃ ┃
+ ┗━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┛
+ */
+ [_BETA] = LAYOUT( \
+ _______, _______, \
+ RGB_TOG, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12,
+#ifdef LIGHTMODE_ENABLE
+ KC_LIGHT_MODE,
+#else
+ _______,
+#endif
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, \
+ _______, RESET, DEBUG, _______, _______, KC_SET_TIME,KC_SLEP,KC_SEQ,KC_LCBR, KC_RCBR, KC_PSCR, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ )
+};
+
+static bool alpha_pressed = false;
+static bool beta_pressed = false;
+
+static bool ctrl_pressed = false;
+static bool alt_pressed = false;
+static bool shift_pressed = false;
+static bool gui_pressed = false;
+
+static bool is_in_seq = false;
+
+void keyboard_post_init_user(void) {
+ /* debug_enable = true; */
+ /* debug_matrix = true; */
+}
+
+void eeconfig_init_user(void) {
+ set_unicode_input_mode(UC_LNX);
+}
+
+void matrix_init_user(void) {
+#ifdef LIGHTMODE_ENABLE
+ set_light_mode(SMOOTHLED, layer_colors[_MAIN]);
+#endif
+}
+
+static uint32_t last_update = 0;
+static uint8_t hours, minutes, seconds;
+
+void matrix_scan_user(void) {
+ uint32_t now = timer_read32();
+ if (now - last_update > 500) {
+ ds1307_get_time(&hours, &minutes, &seconds);
+ last_update = now;
+ }
+}
+
+static bool is_in_set_time = false;
+static char new_time[6];
+static uint8_t new_time_index = 0;
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if (keycode == KC_SEQ && record->event.pressed) {
+ seq_start();
+ layer_off(_BETA);
+ is_in_seq = true;
+ return false;
+ } else if (is_in_seq) {
+ if (record->event.pressed) {
+ if (!seq_feed(keycode)) {
+ is_in_seq = false;
+ }
+ }
+ return false;
+ }
+ if (keycode == KC_SET_TIME && record->event.pressed) {
+ is_in_set_time = true;
+ new_time_index = 0;
+ } else if (is_in_set_time) {
+ if (!record->event.pressed && keycode >= KC_1 && keycode <= KC_0) {
+ new_time[new_time_index++] = (keycode == KC_0) ? 0 : keycode - KC_1 + 1;
+ if (new_time_index == 6) {
+ is_in_set_time = false;
+ ds1307_set_time(
+ (new_time[0]) * 10 + (new_time[1]),
+ (new_time[2]) * 10 + (new_time[3]),
+ (new_time[4]) * 10 + (new_time[5])
+ );
+ for (int i = 0; i < 6; i++) {
+ tap_code(KC_BSPACE);
+ }
+ }
+ }
+ }
+
+ if (keycode == KC_LCTRL || keycode == KC_RCTRL) {
+ ctrl_pressed = record->event.pressed;
+ } else if (keycode == KC_LALT) {
+ alt_pressed = record->event.pressed;
+ } else if (keycode == KC_LSFT) {
+ shift_pressed = record->event.pressed;
+ } else if (keycode == KC_LGUI) {
+ gui_pressed = record->event.pressed;
+ } else if (keycode == KC_ALPHA) {
+ alpha_pressed = record->event.pressed;
+ } else if (keycode == KC_BETA) {
+ beta_pressed = record->event.pressed;
+ }
+
+ if (keycode == RESET) {
+ rgblight_setrgb(255, 255, 0);
+ }
+#ifdef LIGHTMODE_ENABLE
+ if (record->event.pressed && keycode == KC_LIGHT_MODE) {
+ next_light_mode(layer_colors[_MAIN]);
+ }
+#endif
+ if (keycode == KC_LCTRL) {
+ /* Some Overlay1_Enable fuckery! */
+ (record->event.pressed ? register_code : unregister_code)(KC_LCTRL);
+ return false;
+ }
+ return taphold_process(keycode, record);
+}
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+#ifdef LIGHTMODE_ENABLE
+ uint8_t layer = get_highest_layer(state);
+ update_light_mode(layer_colors[layer]);
+#endif
+ return state;
+}
+
+void encoder_update_user(uint8_t index, bool clockwise) {
+ if (index == 0) {
+ if (!alpha_pressed) {
+ tap_code(clockwise ? KC_VOLD : KC_VOLU);
+ } else {
+ tap_code(clockwise ? KC_MPRV : KC_MNXT);
+ }
+ } else if (index == 1) {
+ if (!alpha_pressed) {
+ tap_code(clockwise ? KC_UP : KC_DOWN);
+ } else {
+ tap_code(clockwise ? KC_PGUP : KC_PGDN);
+ }
+ }
+}
+
+#ifdef OLED_DRIVER_ENABLE
+oled_rotation_t oled_init_user(oled_rotation_t rotation) {
+ return OLED_ROTATION_0;
+}
+
+void oled_task_user(void) {
+ /* Host Keyboard Layer Status */
+ uint8_t current_layer = get_highest_layer(layer_state);
+
+ /* Layer */
+ static const char PROGMEM icons[4][3][6] = {
+ {
+ { 0x80, 0x81, 0x82, 0x83, 0x84, 0 },
+ { 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0 },
+ { 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0 }
+ },
+ {
+ { 0x85, 0x86, 0x87, 0x88, 0x89, 0 },
+ { 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0 },
+ { 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0 }
+ },
+ {
+ { 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0 },
+ { 0xaa, 0xab, 0xac, 0xad, 0xae, 0 },
+ { 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0 }
+ },
+ {
+ { 0x8f, 0x90, 0x91, 0x92, 0x93, 0 },
+ { 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0 },
+ { 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0 }
+ }
+ };
+
+ uint8_t icon_index = current_layer == _MAIN ? 3 : current_layer == _ALPHA ? 1 : 2;
+ for (int i = 0; i < 3; i++) {
+ oled_set_cursor(0, i + 1);
+ oled_write_P(icons[icon_index][i], false);
+ }
+
+ /* Time */
+ oled_set_cursor(6, 0);
+ // oled_write_P(PSTR("-D48 Custom-\n"), false);
+ char buf[16];
+ sprintf(
+ buf,
+ "%02d:%02d:%02d", hours, minutes, seconds
+ );
+ oled_write(buf, false);
+
+ /* Modifiers */
+ static const char PROGMEM mods[][2] = {
+ {0x94, 0x95}, // CTL
+ {0x96, 0x97}, // ALT
+ {0x98, 0x99}, // GUI
+ {0x9a, 0x9b}, // SFT
+ /* {0x9c, 0x9d}, // EMPTY */
+ };
+
+ char mod_data[13] = "\x9c\x9d\x9c\x9d\x9c\x9d\x9c\x9d \x07\x07\x07\0";
+ if (ctrl_pressed) strncpy(mod_data, mods[0], 2);
+ if (alt_pressed) strncpy(mod_data + 2, mods[1], 2);
+ if (gui_pressed) strncpy(mod_data + 4, mods[2], 2);
+ if (shift_pressed) strncpy(mod_data + 6, mods[3], 2);
+ led_t led_usb_state = host_keyboard_led_state();
+ if (led_usb_state.num_lock) mod_data[9] = 'N';
+ if (led_usb_state.caps_lock) mod_data[10] = 'C';
+ if (led_usb_state.scroll_lock) mod_data[11] = 'S';
+
+ oled_set_cursor(6, 1);
+ oled_write(mod_data, false);
+
+ /* Matrix */
+ static const char PROGMEM matrix_chars[] = {
+ 0xb4, // None
+ 0xb5, // Upper
+ 0xb6, // Lower
+ 0xb7 // Both
+ };
+
+ for (uint8_t row = 1; row < MATRIX_ROWS; row += 2) {
+ // Skip first row because it's used by the encoders.
+ uint16_t bits1 = matrix_get_row(row);
+ uint16_t bits2 = matrix_get_row(row + 1);
+
+ for (uint8_t col = 0; col < MATRIX_COLS; col++) {
+ uint8_t matrix_char = matrix_chars[((bits1 & (1 << col)) ? 1 : 0) | ((bits2 & (1 << col)) ? 2 : 0)];
+ oled_set_cursor(6 + col, 2 + (row - 1) / 2);
+ oled_write_char(matrix_char, false);
+ }
+ }
+
+}
+#endif
diff --git a/keyboards/handwired/d48/keymaps/anderson/lightmode.c b/keyboards/handwired/d48/keymaps/anderson/lightmode.c
new file mode 100644
index 0000000000..bc05956214
--- /dev/null
+++ b/keyboards/handwired/d48/keymaps/anderson/lightmode.c
@@ -0,0 +1,44 @@
+#include "lightmode.h"
+
+#ifdef LIGHTMODE_ENABLE
+
+/* Light modes switcher */
+
+uint8_t light_mode = SMOOTHLED;
+
+void set_light_mode(light_mode_t value, uint32_t color) {
+ light_mode = value;
+ if (light_mode == SMOOTHLED) {
+ smoothled_set(color);
+ } else {
+ dmc12_start(color, true);
+ }
+}
+
+void process_light_mode(void) {
+ if (light_mode == SMOOTHLED) {
+ smoothled_process();
+ } else {
+ dmc12_process();
+ }
+}
+
+void update_light_mode(uint32_t color) {
+ if (light_mode == SMOOTHLED) {
+ smoothled_set(color);
+ } else {
+ dmc12_start(color, false);
+ }
+}
+
+void next_light_mode(uint32_t color) {
+ light_mode = (light_mode + 1) % LIGHT_MODE_SIZE;
+ set_light_mode(light_mode, color);
+}
+
+void matrix_scan_kb(void) {
+ process_light_mode();
+ matrix_scan_user();
+}
+
+#endif
diff --git a/keyboards/handwired/d48/keymaps/anderson/lightmode.h b/keyboards/handwired/d48/keymaps/anderson/lightmode.h
new file mode 100644
index 0000000000..0c81e476bb
--- /dev/null
+++ b/keyboards/handwired/d48/keymaps/anderson/lightmode.h
@@ -0,0 +1,12 @@
+#include "smoothled.h"
+#include "dmc12.h"
+#include "quantum.h"
+
+/* Light modes */
+enum light_mode_enum { SMOOTHLED, DMC12, LIGHT_MODE_SIZE };
+typedef enum light_mode_enum light_mode_t;
+
+void set_light_mode(light_mode_t value, uint32_t color);
+void process_light_mode(void);
+void update_light_mode(uint32_t color);
+void next_light_mode(uint32_t color);
diff --git a/keyboards/handwired/d48/keymaps/anderson/rules.mk b/keyboards/handwired/d48/keymaps/anderson/rules.mk
new file mode 100644
index 0000000000..e925b9a89f
--- /dev/null
+++ b/keyboards/handwired/d48/keymaps/anderson/rules.mk
@@ -0,0 +1,2 @@
+OPT_DEFS += -DLIGHTMODE_ENABLE
+SRC += smoothled.c dmc12.c seq.c lightmode.c
diff --git a/keyboards/handwired/d48/keymaps/default/keymap.c b/keyboards/handwired/d48/keymaps/default/keymap.c
new file mode 100644
index 0000000000..b7914f3bcd
--- /dev/null
+++ b/keyboards/handwired/d48/keymaps/default/keymap.c
@@ -0,0 +1,285 @@
+#include QMK_KEYBOARD_H
+#include <string.h>
+#include <stdio.h>
+#include "taphold.h"
+#include "ds1307.h"
+
+/* Note: don't forget there's some more code in qmk_firmware/users/anderson dir */
+
+#define _MAIN 0
+#define _ALPHA 1
+#define _BETA 2
+
+enum custom_keycodes {
+ KC_MAIN = SAFE_RANGE,
+ KC_ALPHA,
+ KC_BETA,
+ KC_SET_TIME,
+};
+
+/* TapHold is my own implementation of the `LT` macro. It's processed in `process_record_user()`. */
+#define TAPHOLD_CONFIG_SIZE 3
+taphold_t taphold_config[TAPHOLD_CONFIG_SIZE] = {
+ {.key=KC_ALPHA, .mode=TAPHOLD_LAYER, .shortAction=KC_ESC, .longAction=_ALPHA},
+ {.key=KC_BETA, .mode=TAPHOLD_LAYER, .shortAction=KC_EQL, .longAction=_BETA},
+ {.key=KC_RCTRL, .mode=TAPHOLD_MOD, .shortAction=KC_MINS, .longAction=KC_LCTRL},
+};
+uint16_t taphold_config_size = TAPHOLD_CONFIG_SIZE;
+uint32_t taphold_timeout = 90;
+
+/* Colors */
+uint32_t layer_colors[3] = {
+ [_MAIN] = 0xFF0010,
+ [_ALPHA] = 0x4020FF,
+ [_BETA] = 0x20FF00,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Main layer
+ │MUTE │ │L_MOD│
+ ┏━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┓
+ ┃ TAB ┃ Q │ W │ E │ R │ T ┃ Y │ U │ I │ O │ P ┃ BSP ┃
+ ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
+ ┃𝛼/ESC┃ A │ S │ D │ F │ G ┃ H │ J │ K │ L │ ; ┃ RET ┃
+ ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
+ ┃SHIFT┃ Z │ X │ C │ V │ B ┃ N │ M │ , │ . │ / ┃CTL/-┃
+ ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
+ ┃LCTRL┃ │ │ ALT │ GUI │SPACE┃SPACE│ 𝛽/= │ ' │ │ ┃ \ ┃
+ ┗━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┛
+ */
+ [_MAIN] = LAYOUT( \
+ KC_MUTE, _______, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
+ KC_ALPHA,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTRL,\
+ KC_LCTRL,_______, _______, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_BETA, KC_QUOT, _______, _______, KC_BSLS \
+ ),
+
+ /* Alpha layer (𝛼)
+ │ │ │ │
+ ┏━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┓
+ ┃ ┃PREV │PLAY │NEXT │ │NUMLK┃ - │ ^^^ │ ^ │ vvv │ ~ ┃ DEL ┃
+ ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
+ ┃ ┃ │VOL -│VOL +│ │CPSLK┃HOME │ <-- │ v │ --> │ ` ┃ \ ┃
+ ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
+ ┃ ┃ │ │ │ │SCRLK┃ END │ = │ [ │ ] │ ( ┃ ) ┃
+ ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
+ ┃ ┃ │ │ │ │ ┃ │ │ │ │ ┃ ┃
+ ┗━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┛
+ */
+ [_ALPHA] = LAYOUT( \
+ _______, _______, \
+ _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_NLCK, KC_MINS, KC_PGUP, KC_UP, KC_PGDN, KC_TILD, KC_DEL, \
+ _______, _______, KC_VOLD, KC_VOLU, _______, KC_CAPS, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT,KC_GRV, KC_BSLS, \
+ _______, _______, _______, _______, _______, KC_SLCK, KC_END, KC_EQL, KC_LBRC, KC_RBRC, KC_LPRN ,KC_RPRN, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ ),
+
+ /* Beta layer (𝛽)
+ │ │ │ │
+ ┏━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┓
+ ┃ RGB ┃ 1 │ 2 │ 3 │ 4 │ 5 ┃ 6 │ 7 │ 8 │ 9 │ 0 ┃ F12 ┃
+ ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
+ ┃L_MOD┃ F1 │ F2 │ F3 │ F4 │ F5 ┃ F6 │ F7 │ F8 │ F9 │ F10 ┃ F11 ┃
+ ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
+ ┃ ┃RESET│DEBUG│ │ │TIME ┃SLEEP│ │ { │ } │PTSCR┃ ┃
+ ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
+ ┃ ┃ │ │ │ │ ┃ │ │ │ │ ┃ ┃
+ ┗━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┛
+ */
+ [_BETA] = LAYOUT( \
+ _______, _______, \
+ RGB_TOG, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, \
+ _______, RESET, DEBUG, _______, _______, KC_SET_TIME,KC_SLEP,_______,KC_LCBR,KC_RCBR, KC_PSCR, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ )
+};
+
+static bool alpha_pressed = false;
+static bool beta_pressed = false;
+
+static bool ctrl_pressed = false;
+static bool alt_pressed = false;
+static bool shift_pressed = false;
+static bool gui_pressed = false;
+
+void keyboard_post_init_user(void) {
+ /* debug_enable = true; */
+ /* debug_matrix = true; */
+}
+
+void eeconfig_init_user(void) {
+ set_unicode_input_mode(UC_LNX);
+}
+
+static uint32_t last_update = 0;
+static uint8_t hours, minutes, seconds;
+
+void matrix_scan_user(void) {
+ uint32_t now = timer_read32();
+ if (now - last_update > 500) {
+ ds1307_get_time(&hours, &minutes, &seconds);
+ last_update = now;
+ }
+}
+
+static bool is_in_set_time = false;
+static char new_time[6];
+static uint8_t new_time_index = 0;
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if (keycode == KC_SET_TIME && record->event.pressed) {
+ is_in_set_time = true;
+ new_time_index = 0;
+ } else if (is_in_set_time) {
+ if (!record->event.pressed && keycode >= KC_1 && keycode <= KC_0) {
+ new_time[new_time_index++] = (keycode == KC_0) ? 0 : keycode - KC_1 + 1;
+ if (new_time_index == 6) {
+ is_in_set_time = false;
+ ds1307_set_time(
+ (new_time[0]) * 10 + (new_time[1]),
+ (new_time[2]) * 10 + (new_time[3]),
+ (new_time[4]) * 10 + (new_time[5])
+ );
+ for (int i = 0; i < 6; i++) {
+ tap_code(KC_BSPACE);
+ }
+ }
+ }
+ }
+
+ if (keycode == KC_LCTRL || keycode == KC_RCTRL) {
+ ctrl_pressed = record->event.pressed;
+ } else if (keycode == KC_LALT) {
+ alt_pressed = record->event.pressed;
+ } else if (keycode == KC_LSFT) {
+ shift_pressed = record->event.pressed;
+ } else if (keycode == KC_LGUI) {
+ gui_pressed = record->event.pressed;
+ } else if (keycode == KC_ALPHA) {
+ alpha_pressed = record->event.pressed;
+ } else if (keycode == KC_BETA) {
+ beta_pressed = record->event.pressed;
+ }
+
+ if (keycode == RESET) {
+ rgblight_setrgb(255, 255, 0);
+ }
+ if (keycode == KC_LCTRL) {
+ /* Some Overlay1_Enable fuckery! */
+ (record->event.pressed ? register_code : unregister_code)(KC_LCTRL);
+ return false;
+ }
+ return taphold_process(keycode, record);
+}
+
+void encoder_update_user(uint8_t index, bool clockwise) {
+ if (index == 0) {
+ if (!alpha_pressed) {
+ tap_code(clockwise ? KC_VOLD : KC_VOLU);
+ } else {
+ tap_code(clockwise ? KC_MPRV : KC_MNXT);
+ }
+ } else if (index == 1) {
+ if (!alpha_pressed) {
+ tap_code(clockwise ? KC_UP : KC_DOWN);
+ } else {
+ tap_code(clockwise ? KC_PGUP : KC_PGDN);
+ }
+ }
+}
+
+#ifdef OLED_DRIVER_ENABLE
+oled_rotation_t oled_init_user(oled_rotation_t rotation) {
+ return OLED_ROTATION_0;
+}
+
+void oled_task_user(void) {
+ /* Host Keyboard Layer Status */
+ uint8_t current_layer = get_highest_layer(layer_state);
+
+ /* Layer */
+ static const char PROGMEM icons[4][3][6] = {
+ {
+ { 0x80, 0x81, 0x82, 0x83, 0x84, 0 },
+ { 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0 },
+ { 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0 }
+ },
+ {
+ { 0x85, 0x86, 0x87, 0x88, 0x89, 0 },
+ { 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0 },
+ { 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0 }
+ },
+ {
+ { 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0 },
+ { 0xaa, 0xab, 0xac, 0xad, 0xae, 0 },
+ { 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0 }
+ },
+ {
+ { 0x8f, 0x90, 0x91, 0x92, 0x93, 0 },
+ { 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0 },
+ { 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0 }
+ }
+ };
+
+ uint8_t icon_index = current_layer == _MAIN ? 3 : current_layer == _ALPHA ? 1 : 2;
+ for (int i = 0; i < 3; i++) {
+ oled_set_cursor(0, i + 1);
+ oled_write_P(icons[icon_index][i], false);
+ }
+
+ /* Time */
+ oled_set_cursor(6, 0);
+ // oled_write_P(PSTR("-D48 Custom-\n"), false);
+ char buf[16];
+ sprintf(
+ buf,
+ "%02d:%02d:%02d", hours, minutes, seconds
+ );
+ oled_write(buf, false);
+
+ /* Modifiers */
+ static const char PROGMEM mods[][2] = {
+ {0x94, 0x95}, // CTL
+ {0x96, 0x97}, // ALT
+ {0x98, 0x99}, // GUI
+ {0x9a, 0x9b}, // SFT
+ /* {0x9c, 0x9d}, // EMPTY */
+ };
+
+ char mod_data[13] = "\x9c\x9d\x9c\x9d\x9c\x9d\x9c\x9d \x07\x07\x07\0";
+ if (ctrl_pressed) strncpy(mod_data, mods[0], 2);
+ if (alt_pressed) strncpy(mod_data + 2, mods[1], 2);
+ if (gui_pressed) strncpy(mod_data + 4, mods[2], 2);
+ if (shift_pressed) strncpy(mod_data + 6, mods[3], 2);
+ led_t led_usb_state = host_keyboard_led_state();
+ if (led_usb_state.num_lock) mod_data[9] = 'N';
+ if (led_usb_state.caps_lock) mod_data[10] = 'C';
+ if (led_usb_state.scroll_lock) mod_data[11] = 'S';
+
+ oled_set_cursor(6, 1);
+ oled_write(mod_data, false);
+
+ /* Matrix */
+ static const char PROGMEM matrix_chars[] = {
+ 0xb4, // None
+ 0xb5, // Upper
+ 0xb6, // Lower
+ 0xb7 // Both
+ };
+
+ for (uint8_t row = 1; row < MATRIX_ROWS; row += 2) {
+ // Skip first row because it's used by the encoders.
+ uint16_t bits1 = matrix_get_row(row);
+ uint16_t bits2 = matrix_get_row(row + 1);
+
+ for (uint8_t col = 0; col < MATRIX_COLS; col++) {
+ uint8_t matrix_char = matrix_chars[((bits1 & (1 << col)) ? 1 : 0) | ((bits2 & (1 << col)) ? 2 : 0)];
+ oled_set_cursor(6 + col, 2 + (row - 1) / 2);
+ oled_write_char(matrix_char, false);
+ }
+ }
+
+}
+#endif
diff --git a/keyboards/handwired/d48/rules.mk b/keyboards/handwired/d48/rules.mk
new file mode 100644
index 0000000000..57c83694e1
--- /dev/null
+++ b/keyboards/handwired/d48/rules.mk
@@ -0,0 +1,22 @@
+# MCU name
+MCU = STM32F303
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+AUDIO_ENABLE = yes
+USE_I2C = no
+RGBLIGHT_ENABLE = yes
+ENCODER_ENABLE = yes
+OLED_DRIVER_ENABLE = yes
+UNICODE_ENABLE = yes
+
+SRC += ds1307.c taphold.c
diff --git a/keyboards/handwired/d48/taphold.c b/keyboards/handwired/d48/taphold.c
new file mode 100644
index 0000000000..0b56a5a6a1
--- /dev/null
+++ b/keyboards/handwired/d48/taphold.c
@@ -0,0 +1,29 @@
+#include "taphold.h"
+
+bool taphold_process(uint16_t keycode, keyrecord_t *record) {
+ for (int i = 0; i < taphold_config_size; i++) {
+ taphold_t *config = &taphold_config[i];
+ if (config->key == keycode && record->event.pressed) {
+ if (config->mode == TAPHOLD_LAYER) {
+ layer_on(config->longAction);
+ } else {
+ register_code(config->longAction);
+ }
+ config->time = timer_read32();
+ config->keypos = record->event.key;
+ return false;
+ } else if (KEYEQ(record->event.key, config->keypos) && !record->event.pressed) {
+ if (config->mode == TAPHOLD_LAYER) {
+ layer_off(config->longAction);
+ } else {
+ unregister_code(config->longAction);
+ }
+ if (timer_elapsed32(config->time) < taphold_timeout) {
+ tap_code(config->shortAction);
+ }
+ config->keypos.row = 255;
+ return false;
+ }
+ }
+ return true;
+}
diff --git a/keyboards/handwired/d48/taphold.h b/keyboards/handwired/d48/taphold.h
new file mode 100644
index 0000000000..3bc5ca0275
--- /dev/null
+++ b/keyboards/handwired/d48/taphold.h
@@ -0,0 +1,25 @@
+#include "quantum.h"
+
+typedef enum taphold_mode_t {
+ TAPHOLD_LAYER,
+ TAPHOLD_MOD
+} taphold_mode_t;
+
+typedef struct taphold_t {
+ uint16_t key;
+ uint32_t time;
+ taphold_mode_t mode;
+ uint16_t shortAction;
+ uint16_t longAction;
+ keypos_t keypos;
+ // We store key pos to properly release the key
+ // even when a different layer is active and the key has a different action now
+} taphold_t;
+
+extern taphold_t taphold_config[];
+extern uint16_t taphold_config_size;
+// Dual keys tap/hold timeout.
+// If key is tapped for less than this value, send key in addition to primary action after completing the action.
+extern uint32_t taphold_timeout;
+
+bool taphold_process(uint16_t keycode, keyrecord_t *record);
diff --git a/keyboards/handwired/hnah40/rules.mk b/keyboards/handwired/hnah40/rules.mk
index a705bff6ab..0df52f7de6 100644
--- a/keyboards/handwired/hnah40/rules.mk
+++ b/keyboards/handwired/hnah40/rules.mk
@@ -11,9 +11,6 @@ MCU = atmega328p
# ATmega328P USBasp
BOOTLOADER = USBasp
-# disable debug code
-OPT_DEFS = -DDEBUG_LEVEL=0
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/handwired/prime_exl/info.json b/keyboards/handwired/prime_exl/info.json
index 65b08d6151..6d0da451a0 100644
--- a/keyboards/handwired/prime_exl/info.json
+++ b/keyboards/handwired/prime_exl/info.json
@@ -6,7 +6,7 @@
"height": 6,
"layouts": {
"LAYOUT": {
- "layout": [{"x":0,"y":0,"w":1,"h":1}, {"x":1,"y":0,"w":1,"h":1}, {"x":2,"y":0,"w":1,"h":1}, {"x":3,"y":0,"w":1,"h":1}, {"x":4,"y":0,"w":1,"h":1}, {"x":5,"y":0,"w":1,"h":1}, {"x":6.5,"y":0,"w":1,"h":1}, {"x":7.5,"y":0,"w":1,"h":1}, {"x":8.5,"y":0,"w":1,"h":1}, {"x":9.5,"y":0,"w":1,"h":1}, {"x":10.5,"y":0,"w":1,"h":1}, {"x":11.5,"y":0,"w":1,"h":1}, {"x":13.75,"y":0,"w":1,"h":1}, {"x":14.75,"y":0,"w":1,"h":1}, {"x":15.75,"y":0,"w":1,"h":1}, {"x":16.75,"y":0,"w":1,"h":1}, {"x":17.75,"y":0,"w":1,"h":1}, {"x":18.75,"y":0,"w":2,"h":1}, {"x":0,"y":1,"w":1,"h":1}, {"x":1,"y":1,"w":1,"h":1}, {"x":2,"y":1,"w":1,"h":1}, {"x":3,"y":1,"w":1,"h":1}, {"x":4,"y":1,"w":1,"h":1}, {"x":5,"y":1,"w":1,"h":1}, {"x":6.5,"y":1,"w":1.26,"h":1}, {"x":7.75,"y":1,"w":1,"h":1}, {"x":8.75,"y":1,"w":1,"h":1}, {"x":9.75,"y":1,"w":1,"h":1}, {"x":10.75,"y":1,"w":1,"h":1}, {"x":11.75,"y":1,"w":1,"h":1}, {"x":14,"y":1,"w":1,"h":1}, {"x":15,"y":1,"w":1,"h":1}, {"x":16,"y":1,"w":1,"h":1}, {"x":17,"y":1,"w":1,"h":1}, {"x":18,"y":1,"w":1,"h":1}, {"x":19,"y":1,"w":1.75,"h":1}, {"x":0,"y":2,"w":1,"h":1}, {"x":1,"y":2,"w":1,"h":1}, {"x":2,"y":2,"w":1,"h":1}, {"x":3,"y":2,"w":1,"h":1}, {"x":4,"y":2,"w":1,"h":1}, {"x":5,"y":2,"w":1,"h":1}, {"x":6.5,"y":2,"w":1.75,"h":1}, {"x":8.25,"y":2,"w":1,"h":1}, {"x":9.25,"y":2,"w":1,"h":1}, {"x":10.25,"y":2,"w":1,"h":1}, {"x":11.25,"y":2,"w":1,"h":1}, {"x":12.25,"y":2,"w":1,"h":1}, {"x":13.5,"y":2,"w":1,"h":1}, {"x":14.5,"y":2,"w":1,"h":1}, {"x":15.5,"y":2,"w":1,"h":1}, {"x":16.5,"y":2,"w":1,"h":1}, {"x":17.5,"y":2,"w":1,"h":1}, {"x":18.5,"y":2,"w":1,"h":1}, {"x":19.5,"y":2,"w":1.25,"h":1}, {"x":0,"y":3,"w":1,"h":1}, {"x":1,"y":3,"w":1,"h":1}, {"x":2,"y":3,"w":1,"h":1}, {"x":3,"y":3,"w":1,"h":1}, {"x":4,"y":3,"w":1,"h":1}, {"x":5,"y":3,"w":1,"h":1}, {"x":6.5,"y":3,"w":1.25,"h":1}, {"x":7.75,"y":3,"w":1.25,"h":1}, {"x":9,"y":3,"w":1,"h":1}, {"x":10,"y":3,"w":1,"h":1}, {"x":11,"y":3,"w":2,"h":1}, {"x":13.5,"y":3,"w":2,"h":1}, {"x":15.5,"y":3,"w":1,"h":1}, {"x":16.5,"y":3,"w":1,"h":1}, {"x":17.5,"y":3,"w":1.5,"h":1}, {"x":19,"y":3,"w":1.5,"h":1}, {"x":0,"y":4,"w":1,"h":1}, {"x":1,"y":4,"w":1,"h":1}, {"x":2,"y":4,"w":1,"h":1}, {"x":3,"y":4,"w":1,"h":1}, {"x":4,"y":4,"w":1,"h":1}, {"x":5,"y":4,"w":1,"h":1}]
+ "layout": [{"x":0,"y":0,"w":1,"h":1}, {"x":1,"y":0,"w":1,"h":1}, {"x":2,"y":0,"w":1,"h":1}, {"x":3,"y":0,"w":1,"h":1}, {"x":4,"y":0,"w":1,"h":1}, {"x":5,"y":0,"w":1,"h":1}, {"x":6.5,"y":0,"w":1,"h":1}, {"x":7.5,"y":0,"w":1,"h":1}, {"x":8.5,"y":0,"w":1,"h":1}, {"x":9.5,"y":0,"w":1,"h":1}, {"x":10.5,"y":0,"w":1,"h":1}, {"x":11.5,"y":0,"w":1,"h":1}, {"x":13.75,"y":0,"w":1,"h":1}, {"x":14.75,"y":0,"w":1,"h":1}, {"x":15.75,"y":0,"w":1,"h":1}, {"x":16.75,"y":0,"w":1,"h":1}, {"x":17.75,"y":0,"w":1,"h":1}, {"x":18.75,"y":0,"w":2,"h":1}, {"x":0,"y":1,"w":1,"h":1}, {"x":1,"y":1,"w":1,"h":1}, {"x":2,"y":1,"w":1,"h":1}, {"x":3,"y":1,"w":1,"h":1}, {"x":4,"y":1,"w":1,"h":1}, {"x":5,"y":1,"w":1,"h":1}, {"x":6.5,"y":1,"w":1.25,"h":1}, {"x":7.75,"y":1,"w":1,"h":1}, {"x":8.75,"y":1,"w":1,"h":1}, {"x":9.75,"y":1,"w":1,"h":1}, {"x":10.75,"y":1,"w":1,"h":1}, {"x":11.75,"y":1,"w":1,"h":1}, {"x":14,"y":1,"w":1,"h":1}, {"x":15,"y":1,"w":1,"h":1}, {"x":16,"y":1,"w":1,"h":1}, {"x":17,"y":1,"w":1,"h":1}, {"x":18,"y":1,"w":1,"h":1}, {"x":19,"y":1,"w":1.75,"h":1}, {"x":0,"y":2,"w":1,"h":1}, {"x":1,"y":2,"w":1,"h":1}, {"x":2,"y":2,"w":1,"h":1}, {"x":3,"y":2,"w":1,"h":1}, {"x":4,"y":2,"w":1,"h":1}, {"x":5,"y":2,"w":1,"h":1}, {"x":6.5,"y":2,"w":1.75,"h":1}, {"x":8.25,"y":2,"w":1,"h":1}, {"x":9.25,"y":2,"w":1,"h":1}, {"x":10.25,"y":2,"w":1,"h":1}, {"x":11.25,"y":2,"w":1,"h":1}, {"x":12.25,"y":2,"w":1,"h":1}, {"x":13.5,"y":2,"w":1,"h":1}, {"x":14.5,"y":2,"w":1,"h":1}, {"x":15.5,"y":2,"w":1,"h":1}, {"x":16.5,"y":2,"w":1,"h":1}, {"x":17.5,"y":2,"w":1,"h":1}, {"x":18.5,"y":2,"w":1,"h":1}, {"x":19.5,"y":2,"w":1.25,"h":1}, {"x":0,"y":3,"w":1,"h":1}, {"x":1,"y":3,"w":1,"h":1}, {"x":2,"y":3,"w":1,"h":1}, {"x":3,"y":3,"w":1,"h":1}, {"x":4,"y":3,"w":1,"h":1}, {"x":5,"y":3,"w":1,"h":1}, {"x":6.5,"y":3,"w":1.25,"h":1}, {"x":7.75,"y":3,"w":1.25,"h":1}, {"x":9,"y":3,"w":1,"h":1}, {"x":10,"y":3,"w":1,"h":1}, {"x":11,"y":3,"w":2,"h":1}, {"x":13.5,"y":3,"w":2,"h":1}, {"x":15.5,"y":3,"w":1,"h":1}, {"x":16.5,"y":3,"w":1,"h":1}, {"x":17.5,"y":3,"w":1.5,"h":1}, {"x":19,"y":3,"w":1.5,"h":1}, {"x":0,"y":4,"w":1,"h":1}, {"x":1,"y":4,"w":1,"h":1}, {"x":2,"y":4,"w":1,"h":1}, {"x":3,"y":4,"w":1,"h":1}, {"x":4,"y":4,"w":1,"h":1}, {"x":5,"y":4,"w":1,"h":1}]
}
}
}
diff --git a/keyboards/handwired/sick68/sick68.h b/keyboards/handwired/sick68/sick68.h
index bbd8be55f7..f97d3ef944 100644
--- a/keyboards/handwired/sick68/sick68.h
+++ b/keyboards/handwired/sick68/sick68.h
@@ -30,7 +30,7 @@
// readability
#define XXX KC_NO
-/* TADA68 ANSI layout
+/* SICK68 ANSI layout
* ,----------------------------------------------------------------.
* | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d | 0e |
* |----------------------------------------------------------------|
@@ -40,7 +40,7 @@
* |----------------------------------------------------------------|
* | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3c| 3d| 3e |
* |----------------------------------------------------------------|
- * | 40 | 41 | 42 | 45 | 49| 4a| 4b| 4c| 4d| 4e |
+ * | 40 | 41 | 42 | 46 | 49| 4a| 4b| 4c| 4d| 4e |
* `----------------------------------------------------------------'
*/
// The first section contains all of the arguments
@@ -51,12 +51,12 @@
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, k2e, \
k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \
- k40, k41, k42, k45, k49, k4a, k4b, k4c, k4d, k4e \
+ k40, k41, k42, k46, k49, k4a, k4b, k4c, k4d, k4e \
) \
{ \
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e}, \
{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e}, \
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, k2e}, \
{k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e}, \
- {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d, k4e} \
+ {k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, k49, k4a, k4b, k4c, k4d, k4e} \
}
diff --git a/keyboards/handwired/twadlee/tp69/chconf.h b/keyboards/handwired/twadlee/tp69/chconf.h
new file mode 100644
index 0000000000..f1640bb199
--- /dev/null
+++ b/keyboards/handwired/twadlee/tp69/chconf.h
@@ -0,0 +1,700 @@
+/*
+ ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/**
+ * @file rt/templates/chconf.h
+ * @brief Configuration file template.
+ * @details A copy of this file must be placed in each project directory, it
+ * contains the application specific kernel settings.
+ *
+ * @addtogroup config
+ * @details Kernel related settings and hooks.
+ * @{
+ */
+
+#ifndef CHCONF_H
+# define CHCONF_H
+
+# define _CHIBIOS_RT_CONF_
+# define _CHIBIOS_RT_CONF_VER_6_0_
+
+/*===========================================================================*/
+/**
+ * @name System timers settings
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief System time counter resolution.
+ * @note Allowed values are 16 or 32 bits.
+ */
+# if !defined(CH_CFG_ST_RESOLUTION)
+# define CH_CFG_ST_RESOLUTION 32
+# endif
+
+/**
+ * @brief System tick frequency.
+ * @details Frequency of the system timer that drives the system ticks. This
+ * setting also defines the system tick time unit.
+ */
+# if !defined(CH_CFG_ST_FREQUENCY)
+# define CH_CFG_ST_FREQUENCY 1000
+# endif
+
+/**
+ * @brief Time intervals data size.
+ * @note Allowed values are 16, 32 or 64 bits.
+ */
+# if !defined(CH_CFG_INTERVALS_SIZE)
+# define CH_CFG_INTERVALS_SIZE 32
+# endif
+
+/**
+ * @brief Time types data size.
+ * @note Allowed values are 16 or 32 bits.
+ */
+# if !defined(CH_CFG_TIME_TYPES_SIZE)
+# define CH_CFG_TIME_TYPES_SIZE 32
+# endif
+
+/**
+ * @brief Time delta constant for the tick-less mode.
+ * @note If this value is zero then the system uses the classic
+ * periodic tick. This value represents the minimum number
+ * of ticks that is safe to specify in a timeout directive.
+ * The value one is not valid, timeouts are rounded up to
+ * this value.
+ */
+# if !defined(CH_CFG_ST_TIMEDELTA)
+# define CH_CFG_ST_TIMEDELTA 0
+# endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Kernel parameters and options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Round robin interval.
+ * @details This constant is the number of system ticks allowed for the
+ * threads before preemption occurs. Setting this value to zero
+ * disables the preemption for threads with equal priority and the
+ * round robin becomes cooperative. Note that higher priority
+ * threads can still preempt, the kernel is always preemptive.
+ * @note Disabling the round robin preemption makes the kernel more compact
+ * and generally faster.
+ * @note The round robin preemption is not supported in tickless mode and
+ * must be set to zero in that case.
+ */
+# if !defined(CH_CFG_TIME_QUANTUM)
+# define CH_CFG_TIME_QUANTUM 20
+# endif
+
+/**
+ * @brief Managed RAM size.
+ * @details Size of the RAM area to be managed by the OS. If set to zero
+ * then the whole available RAM is used. The core memory is made
+ * available to the heap allocator and/or can be used directly through
+ * the simplified core memory allocator.
+ *
+ * @note In order to let the OS manage the whole RAM the linker script must
+ * provide the @p __heap_base__ and @p __heap_end__ symbols.
+ * @note Requires @p CH_CFG_USE_MEMCORE.
+ */
+# if !defined(CH_CFG_MEMCORE_SIZE)
+# define CH_CFG_MEMCORE_SIZE 0
+# endif
+
+/**
+ * @brief Idle thread automatic spawn suppression.
+ * @details When this option is activated the function @p chSysInit()
+ * does not spawn the idle thread. The application @p main()
+ * function becomes the idle thread and must implement an
+ * infinite loop.
+ */
+# if !defined(CH_CFG_NO_IDLE_THREAD)
+# define CH_CFG_NO_IDLE_THREAD FALSE
+# endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Performance options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief OS optimization.
+ * @details If enabled then time efficient rather than space efficient code
+ * is used when two possible implementations exist.
+ *
+ * @note This is not related to the compiler optimization options.
+ * @note The default is @p TRUE.
+ */
+# if !defined(CH_CFG_OPTIMIZE_SPEED)
+# define CH_CFG_OPTIMIZE_SPEED TRUE
+# endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Subsystem options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Time Measurement APIs.
+ * @details If enabled then the time measurement APIs are included in
+ * the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+# if !defined(CH_CFG_USE_TM)
+# define CH_CFG_USE_TM FALSE
+# endif
+
+/**
+ * @brief Threads registry APIs.
+ * @details If enabled then the registry APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+# if !defined(CH_CFG_USE_REGISTRY)
+# define CH_CFG_USE_REGISTRY TRUE
+# endif
+
+/**
+ * @brief Threads synchronization APIs.
+ * @details If enabled then the @p chThdWait() function is included in
+ * the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+# if !defined(CH_CFG_USE_WAITEXIT)
+# define CH_CFG_USE_WAITEXIT TRUE
+# endif
+
+/**
+ * @brief Semaphores APIs.
+ * @details If enabled then the Semaphores APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+# if !defined(CH_CFG_USE_SEMAPHORES)
+# define CH_CFG_USE_SEMAPHORES TRUE
+# endif
+
+/**
+ * @brief Semaphores queuing mode.
+ * @details If enabled then the threads are enqueued on semaphores by
+ * priority rather than in FIFO order.
+ *
+ * @note The default is @p FALSE. Enable this if you have special
+ * requirements.
+ * @note Requires @p CH_CFG_USE_SEMAPHORES.
+ */
+# if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
+# define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+# endif
+
+/**
+ * @brief Mutexes APIs.
+ * @details If enabled then the mutexes APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+# if !defined(CH_CFG_USE_MUTEXES)
+# define CH_CFG_USE_MUTEXES TRUE
+# endif
+
+/**
+ * @brief Enables recursive behavior on mutexes.
+ * @note Recursive mutexes are heavier and have an increased
+ * memory footprint.
+ *
+ * @note The default is @p FALSE.
+ * @note Requires @p CH_CFG_USE_MUTEXES.
+ */
+# if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
+# define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+# endif
+
+/**
+ * @brief Conditional Variables APIs.
+ * @details If enabled then the conditional variables APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_MUTEXES.
+ */
+# if !defined(CH_CFG_USE_CONDVARS)
+# define CH_CFG_USE_CONDVARS TRUE
+# endif
+
+/**
+ * @brief Conditional Variables APIs with timeout.
+ * @details If enabled then the conditional variables APIs with timeout
+ * specification are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_CONDVARS.
+ */
+# if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
+# define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
+# endif
+
+/**
+ * @brief Events Flags APIs.
+ * @details If enabled then the event flags APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+# if !defined(CH_CFG_USE_EVENTS)
+# define CH_CFG_USE_EVENTS TRUE
+# endif
+
+/**
+ * @brief Events Flags APIs with timeout.
+ * @details If enabled then the events APIs with timeout specification
+ * are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_EVENTS.
+ */
+# if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
+# define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+# endif
+
+/**
+ * @brief Synchronous Messages APIs.
+ * @details If enabled then the synchronous messages APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+# if !defined(CH_CFG_USE_MESSAGES)
+# define CH_CFG_USE_MESSAGES TRUE
+# endif
+
+/**
+ * @brief Synchronous Messages queuing mode.
+ * @details If enabled then messages are served by priority rather than in
+ * FIFO order.
+ *
+ * @note The default is @p FALSE. Enable this if you have special
+ * requirements.
+ * @note Requires @p CH_CFG_USE_MESSAGES.
+ */
+# if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
+# define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+# endif
+
+/**
+ * @brief Mailboxes APIs.
+ * @details If enabled then the asynchronous messages (mailboxes) APIs are
+ * included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_SEMAPHORES.
+ */
+# if !defined(CH_CFG_USE_MAILBOXES)
+# define CH_CFG_USE_MAILBOXES TRUE
+# endif
+
+/**
+ * @brief Core Memory Manager APIs.
+ * @details If enabled then the core memory manager APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+# if !defined(CH_CFG_USE_MEMCORE)
+# define CH_CFG_USE_MEMCORE TRUE
+# endif
+
+/**
+ * @brief Heap Allocator APIs.
+ * @details If enabled then the memory heap allocator APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or
+ * @p CH_CFG_USE_SEMAPHORES.
+ * @note Mutexes are recommended.
+ */
+# if !defined(CH_CFG_USE_HEAP)
+# define CH_CFG_USE_HEAP TRUE
+# endif
+
+/**
+ * @brief Memory Pools Allocator APIs.
+ * @details If enabled then the memory pools allocator APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+# if !defined(CH_CFG_USE_MEMPOOLS)
+# define CH_CFG_USE_MEMPOOLS TRUE
+# endif
+
+/**
+ * @brief Objects FIFOs APIs.
+ * @details If enabled then the objects FIFOs APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+# if !defined(CH_CFG_USE_OBJ_FIFOS)
+# define CH_CFG_USE_OBJ_FIFOS TRUE
+# endif
+
+/**
+ * @brief Pipes APIs.
+ * @details If enabled then the pipes APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+# if !defined(CH_CFG_USE_PIPES)
+# define CH_CFG_USE_PIPES TRUE
+# endif
+
+/**
+ * @brief Dynamic Threads APIs.
+ * @details If enabled then the dynamic threads creation APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_WAITEXIT.
+ * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
+ */
+# if !defined(CH_CFG_USE_DYNAMIC)
+# define CH_CFG_USE_DYNAMIC TRUE
+# endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Objects factory options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Objects Factory APIs.
+ * @details If enabled then the objects factory APIs are included in the
+ * kernel.
+ *
+ * @note The default is @p FALSE.
+ */
+# if !defined(CH_CFG_USE_FACTORY)
+# define CH_CFG_USE_FACTORY TRUE
+# endif
+
+/**
+ * @brief Maximum length for object names.
+ * @details If the specified length is zero then the name is stored by
+ * pointer but this could have unintended side effects.
+ */
+# if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH)
+# define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8
+# endif
+
+/**
+ * @brief Enables the registry of generic objects.
+ */
+# if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY)
+# define CH_CFG_FACTORY_OBJECTS_REGISTRY TRUE
+# endif
+
+/**
+ * @brief Enables factory for generic buffers.
+ */
+# if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS)
+# define CH_CFG_FACTORY_GENERIC_BUFFERS TRUE
+# endif
+
+/**
+ * @brief Enables factory for semaphores.
+ */
+# if !defined(CH_CFG_FACTORY_SEMAPHORES)
+# define CH_CFG_FACTORY_SEMAPHORES TRUE
+# endif
+
+/**
+ * @brief Enables factory for mailboxes.
+ */
+# if !defined(CH_CFG_FACTORY_MAILBOXES)
+# define CH_CFG_FACTORY_MAILBOXES TRUE
+# endif
+
+/**
+ * @brief Enables factory for objects FIFOs.
+ */
+# if !defined(CH_CFG_FACTORY_OBJ_FIFOS)
+# define CH_CFG_FACTORY_OBJ_FIFOS TRUE
+# endif
+
+/**
+ * @brief Enables factory for Pipes.
+ */
+# if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__)
+# define CH_CFG_FACTORY_PIPES TRUE
+# endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Debug options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Debug option, kernel statistics.
+ *
+ * @note The default is @p FALSE.
+ */
+# if !defined(CH_DBG_STATISTICS)
+# define CH_DBG_STATISTICS FALSE
+# endif
+
+/**
+ * @brief Debug option, system state check.
+ * @details If enabled the correct call protocol for system APIs is checked
+ * at runtime.
+ *
+ * @note The default is @p FALSE.
+ */
+# if !defined(CH_DBG_SYSTEM_STATE_CHECK)
+# define CH_DBG_SYSTEM_STATE_CHECK TRUE
+# endif
+
+/**
+ * @brief Debug option, parameters checks.
+ * @details If enabled then the checks on the API functions input
+ * parameters are activated.
+ *
+ * @note The default is @p FALSE.
+ */
+# if !defined(CH_DBG_ENABLE_CHECKS)
+# define CH_DBG_ENABLE_CHECKS TRUE
+# endif
+
+/**
+ * @brief Debug option, consistency checks.
+ * @details If enabled then all the assertions in the kernel code are
+ * activated. This includes consistency checks inside the kernel,
+ * runtime anomalies and port-defined checks.
+ *
+ * @note The default is @p FALSE.
+ */
+# if !defined(CH_DBG_ENABLE_ASSERTS)
+# define CH_DBG_ENABLE_ASSERTS TRUE
+# endif
+
+/**
+ * @brief Debug option, trace buffer.
+ * @details If enabled then the trace buffer is activated.
+ *
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+# if !defined(CH_DBG_TRACE_MASK)
+# define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED
+# endif
+
+/**
+ * @brief Trace buffer entries.
+ * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
+ * different from @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+# if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+# define CH_DBG_TRACE_BUFFER_SIZE 128
+# endif
+
+/**
+ * @brief Debug option, stack checks.
+ * @details If enabled then a runtime stack check is performed.
+ *
+ * @note The default is @p FALSE.
+ * @note The stack check is performed in a architecture/port dependent way.
+ * It may not be implemented or some ports.
+ * @note The default failure mode is to halt the system with the global
+ * @p panic_msg variable set to @p NULL.
+ */
+# if !defined(CH_DBG_ENABLE_STACK_CHECK)
+# define CH_DBG_ENABLE_STACK_CHECK TRUE
+# endif
+
+/**
+ * @brief Debug option, stacks initialization.
+ * @details If enabled then the threads working area is filled with a byte
+ * value when a thread is created. This can be useful for the
+ * runtime measurement of the used stack.
+ *
+ * @note The default is @p FALSE.
+ */
+# if !defined(CH_DBG_FILL_THREADS)
+# define CH_DBG_FILL_THREADS TRUE
+# endif
+
+/**
+ * @brief Debug option, threads profiling.
+ * @details If enabled then a field is added to the @p thread_t structure that
+ * counts the system ticks occurred while executing the thread.
+ *
+ * @note The default is @p FALSE.
+ * @note This debug option is not currently compatible with the
+ * tickless mode.
+ */
+# if !defined(CH_DBG_THREADS_PROFILING)
+# define CH_DBG_THREADS_PROFILING FALSE
+# endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Kernel hooks
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief System structure extension.
+ * @details User fields added to the end of the @p ch_system_t structure.
+ */
+# define CH_CFG_SYSTEM_EXTRA_FIELDS /* Add threads custom fields here.*/
+
+/**
+ * @brief System initialization hook.
+ * @details User initialization code added to the @p chSysInit() function
+ * just before interrupts are enabled globally.
+ */
+# define CH_CFG_SYSTEM_INIT_HOOK() \
+ { /* Add threads initialization code here.*/ }
+
+/**
+ * @brief Threads descriptor structure extension.
+ * @details User fields added to the end of the @p thread_t structure.
+ */
+# define CH_CFG_THREAD_EXTRA_FIELDS /* Add threads custom fields here.*/
+
+/**
+ * @brief Threads initialization hook.
+ * @details User initialization code added to the @p _thread_init() function.
+ *
+ * @note It is invoked from within @p _thread_init() and implicitly from all
+ * the threads creation APIs.
+ */
+# define CH_CFG_THREAD_INIT_HOOK(tp) \
+ { /* Add threads initialization code here.*/ }
+
+/**
+ * @brief Threads finalization hook.
+ * @details User finalization code added to the @p chThdExit() API.
+ */
+# define CH_CFG_THREAD_EXIT_HOOK(tp) \
+ { /* Add threads finalization code here.*/ }
+
+/**
+ * @brief Context switch hook.
+ * @details This hook is invoked just before switching between threads.
+ */
+# define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) \
+ { /* Context switch code here.*/ }
+
+/**
+ * @brief ISR enter hook.
+ */
+# define CH_CFG_IRQ_PROLOGUE_HOOK() \
+ { /* IRQ prologue code here.*/ }
+
+/**
+ * @brief ISR exit hook.
+ */
+# define CH_CFG_IRQ_EPILOGUE_HOOK() \
+ { /* IRQ epilogue code here.*/ }
+
+/**
+ * @brief Idle thread enter hook.
+ * @note This hook is invoked within a critical zone, no OS functions
+ * should be invoked from here.
+ * @note This macro can be used to activate a power saving mode.
+ */
+# define CH_CFG_IDLE_ENTER_HOOK() \
+ { /* Idle-enter code here.*/ }
+
+/**
+ * @brief Idle thread leave hook.
+ * @note This hook is invoked within a critical zone, no OS functions
+ * should be invoked from here.
+ * @note This macro can be used to deactivate a power saving mode.
+ */
+# define CH_CFG_IDLE_LEAVE_HOOK() \
+ { /* Idle-leave code here.*/ }
+
+/**
+ * @brief Idle Loop hook.
+ * @details This hook is continuously invoked by the idle thread loop.
+ */
+# define CH_CFG_IDLE_LOOP_HOOK() \
+ { /* Idle loop code here.*/ }
+
+/**
+ * @brief System tick event hook.
+ * @details This hook is invoked in the system tick handler immediately
+ * after processing the virtual timers queue.
+ */
+# define CH_CFG_SYSTEM_TICK_HOOK() \
+ { /* System tick event code here.*/ }
+
+/**
+ * @brief System halt hook.
+ * @details This hook is invoked in case to a system halting error before
+ * the system is halted.
+ */
+# define CH_CFG_SYSTEM_HALT_HOOK(reason) \
+ { /* System halt code here.*/ }
+
+/**
+ * @brief Trace hook.
+ * @details This hook is invoked each time a new record is written in the
+ * trace buffer.
+ */
+# define CH_CFG_TRACE_HOOK(tep) \
+ { /* Trace code here.*/ }
+
+/** @} */
+
+/*===========================================================================*/
+/* Port-specific settings (override port settings defaulted in chcore.h). */
+/*===========================================================================*/
+
+#endif /* CHCONF_H */
+
+/** @} */
diff --git a/keyboards/handwired/twadlee/tp69/config.h b/keyboards/handwired/twadlee/tp69/config.h
new file mode 100644
index 0000000000..4da7d25603
--- /dev/null
+++ b/keyboards/handwired/twadlee/tp69/config.h
@@ -0,0 +1,253 @@
+/*
+Copyright 2020 Tracy Wadleigh
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+//#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xBEEF
+#define PRODUCT_ID 0xCACA
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Tracy Wadleigh
+#define PRODUCT tp69
+#define DESCRIPTION A custom 69-key 65% keyboard with a trackpoint under keycap
+
+/* key matrix size */
+#define MATRIX_ROWS 10
+#define MATRIX_COLS 8
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ */
+/* 19 17 16 15 14 2 8 6 7 9 */
+#define MATRIX_ROW_PINS { B2, B1, B0, C0, D1, D0, D3, D4, D2, C3 }
+/* 20 21 18 0 1 3 4 5 */
+#define MATRIX_COL_PINS { D5, D6, A4, B16, B17, A1, A2, D7 }
+#define UNUSED_PINS
+
+/* for trackpoint: C1 (22) C2 (23) */
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
+
+// #define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+// #define BACKLIGHT_LEVELS 3
+
+// #define RGB_DI_PIN E2
+// #ifdef RGB_DI_PIN
+// #define RGBLED_NUM 16
+// #define RGBLIGHT_HUE_STEP 8
+// #define RGBLIGHT_SAT_STEP 8
+// #define RGBLIGHT_VAL_STEP 8
+// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+// /*== all animations enable ==*/
+// #define RGBLIGHT_ANIMATIONS
+// /*== or choose animations ==*/
+// #define RGBLIGHT_EFFECT_BREATHING
+// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
+// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+// #define RGBLIGHT_EFFECT_SNAKE
+// #define RGBLIGHT_EFFECT_KNIGHT
+// #define RGBLIGHT_EFFECT_CHRISTMAS
+// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
+// #define RGBLIGHT_EFFECT_RGB_TEST
+// #define RGBLIGHT_EFFECT_ALTERNATING
+// /*== customize breathing effect ==*/
+// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
+// /*==== use exp() and sin() ====*/
+// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
+// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
+// #endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+// #define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+/* defined by default; to change, uncomment and set to the combination you want */
+// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP H
+//#define MAGIC_KEY_HELP_ALT SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER0_ALT GRAVE
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER B
+//#define MAGIC_KEY_BOOTLOADER_ALT ESC
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+
+/* disable these deprecated features by default */
+#define NO_ACTION_MACRO
+#define NO_ACTION_FUNCTION
+/*
+ * MIDI options
+ */
+
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+//#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 1
+
+/*
+ * HD44780 LCD Display Configuration
+ */
+/*
+#define LCD_LINES 2 //< number of visible lines of the display
+#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
+
+#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
+
+#if LCD_IO_MODE
+#define LCD_PORT PORTB //< port for the LCD lines
+#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
+#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
+#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
+#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
+#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
+#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
+#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
+#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
+#define LCD_RS_PORT LCD_PORT //< port for RS line
+#define LCD_RS_PIN 3 //< pin for RS line
+#define LCD_RW_PORT LCD_PORT //< port for RW line
+#define LCD_RW_PIN 2 //< pin for RW line
+#define LCD_E_PORT LCD_PORT //< port for Enable line
+#define LCD_E_PIN 1 //< pin for Enable line
+#endif
+*/
+
+/* Bootmagic Lite key configuration */
+// #define BOOTMAGIC_LITE_ROW 0
+// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/twadlee/tp69/halconf.h b/keyboards/handwired/twadlee/tp69/halconf.h
new file mode 100644
index 0000000000..908c75542c
--- /dev/null
+++ b/keyboards/handwired/twadlee/tp69/halconf.h
@@ -0,0 +1,524 @@
+/*
+ ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/**
+ * @file templates/halconf.h
+ * @brief HAL configuration header.
+ * @details HAL configuration file, this file allows to enable or disable the
+ * various device drivers from your application. You may also use
+ * this file in order to override the device drivers default settings.
+ *
+ * @addtogroup HAL_CONF
+ * @{
+ */
+
+#ifndef HALCONF_H
+# define HALCONF_H
+
+# define _CHIBIOS_HAL_CONF_
+# define _CHIBIOS_HAL_CONF_VER_7_0_
+
+# include "mcuconf.h"
+
+/**
+ * @brief Enables the PAL subsystem.
+ */
+# if !defined(HAL_USE_PAL) || defined(__DOXYGEN__)
+# define HAL_USE_PAL TRUE
+# endif
+
+/**
+ * @brief Enables the ADC subsystem.
+ */
+# if !defined(HAL_USE_ADC) || defined(__DOXYGEN__)
+# define HAL_USE_ADC FALSE
+# endif
+
+/**
+ * @brief Enables the CAN subsystem.
+ */
+# if !defined(HAL_USE_CAN) || defined(__DOXYGEN__)
+# define HAL_USE_CAN FALSE
+# endif
+
+/**
+ * @brief Enables the cryptographic subsystem.
+ */
+# if !defined(HAL_USE_CRY) || defined(__DOXYGEN__)
+# define HAL_USE_CRY FALSE
+# endif
+
+/**
+ * @brief Enables the DAC subsystem.
+ */
+# if !defined(HAL_USE_DAC) || defined(__DOXYGEN__)
+# define HAL_USE_DAC FALSE
+# endif
+
+/**
+ * @brief Enables the GPT subsystem.
+ */
+# if !defined(HAL_USE_GPT) || defined(__DOXYGEN__)
+# define HAL_USE_GPT FALSE
+# endif
+
+/**
+ * @brief Enables the I2C subsystem.
+ */
+# if !defined(HAL_USE_I2C) || defined(__DOXYGEN__)
+# define HAL_USE_I2C FALSE
+# endif
+
+/**
+ * @brief Enables the I2S subsystem.
+ */
+# if !defined(HAL_USE_I2S) || defined(__DOXYGEN__)
+# define HAL_USE_I2S FALSE
+# endif
+
+/**
+ * @brief Enables the ICU subsystem.
+ */
+# if !defined(HAL_USE_ICU) || defined(__DOXYGEN__)
+# define HAL_USE_ICU FALSE
+# endif
+
+/**
+ * @brief Enables the MAC subsystem.
+ */
+# if !defined(HAL_USE_MAC) || defined(__DOXYGEN__)
+# define HAL_USE_MAC FALSE
+# endif
+
+/**
+ * @brief Enables the MMC_SPI subsystem.
+ */
+# if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__)
+# define HAL_USE_MMC_SPI FALSE
+# endif
+
+/**
+ * @brief Enables the PWM subsystem.
+ */
+# if !defined(HAL_USE_PWM) || defined(__DOXYGEN__)
+# define HAL_USE_PWM FALSE
+# endif
+
+/**
+ * @brief Enables the RTC subsystem.
+ */
+# if !defined(HAL_USE_RTC) || defined(__DOXYGEN__)
+# define HAL_USE_RTC FALSE
+# endif
+
+/**
+ * @brief Enables the SDC subsystem.
+ */
+# if !defined(HAL_USE_SDC) || defined(__DOXYGEN__)
+# define HAL_USE_SDC FALSE
+# endif
+
+/**
+ * @brief Enables the SERIAL subsystem.
+ */
+# if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__)
+# define HAL_USE_SERIAL FALSE
+# endif
+
+/**
+ * @brief Enables the SERIAL over USB subsystem.
+ */
+# if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
+# define HAL_USE_SERIAL_USB FALSE
+# endif
+
+/**
+ * @brief Enables the SIO subsystem.
+ */
+# if !defined(HAL_USE_SIO) || defined(__DOXYGEN__)
+# define HAL_USE_SIO FALSE
+# endif
+
+/**
+ * @brief Enables the SPI subsystem.
+ */
+# if !defined(HAL_USE_SPI) || defined(__DOXYGEN__)
+# define HAL_USE_SPI FALSE
+# endif
+
+/**
+ * @brief Enables the TRNG subsystem.
+ */
+# if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__)
+# define HAL_USE_TRNG FALSE
+# endif
+
+/**
+ * @brief Enables the UART subsystem.
+ */
+# if !defined(HAL_USE_UART) || defined(__DOXYGEN__)
+# define HAL_USE_UART FALSE
+# endif
+
+/**
+ * @brief Enables the USB subsystem.
+ */
+# if !defined(HAL_USE_USB) || defined(__DOXYGEN__)
+# define HAL_USE_USB TRUE
+# endif
+
+/**
+ * @brief Enables the WDG subsystem.
+ */
+# if !defined(HAL_USE_WDG) || defined(__DOXYGEN__)
+# define HAL_USE_WDG FALSE
+# endif
+
+/**
+ * @brief Enables the WSPI subsystem.
+ */
+# if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__)
+# define HAL_USE_WSPI FALSE
+# endif
+
+/*===========================================================================*/
+/* PAL driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+# if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__)
+# define PAL_USE_CALLBACKS FALSE
+# endif
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+# if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__)
+# define PAL_USE_WAIT FALSE
+# endif
+
+/*===========================================================================*/
+/* ADC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+# if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__)
+# define ADC_USE_WAIT TRUE
+# endif
+
+/**
+ * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+# if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+# define ADC_USE_MUTUAL_EXCLUSION TRUE
+# endif
+
+/*===========================================================================*/
+/* CAN driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Sleep mode related APIs inclusion switch.
+ */
+# if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__)
+# define CAN_USE_SLEEP_MODE TRUE
+# endif
+
+/**
+ * @brief Enforces the driver to use direct callbacks rather than OSAL events.
+ */
+# if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__)
+# define CAN_ENFORCE_USE_CALLBACKS FALSE
+# endif
+
+/*===========================================================================*/
+/* CRY driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables the SW fall-back of the cryptographic driver.
+ * @details When enabled, this option, activates a fall-back software
+ * implementation for algorithms not supported by the underlying
+ * hardware.
+ * @note Fall-back implementations may not be present for all algorithms.
+ */
+# if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__)
+# define HAL_CRY_USE_FALLBACK FALSE
+# endif
+
+/**
+ * @brief Makes the driver forcibly use the fall-back implementations.
+ */
+# if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__)
+# define HAL_CRY_ENFORCE_FALLBACK FALSE
+# endif
+
+/*===========================================================================*/
+/* DAC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+# if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__)
+# define DAC_USE_WAIT TRUE
+# endif
+
+/**
+ * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+# if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+# define DAC_USE_MUTUAL_EXCLUSION TRUE
+# endif
+
+/*===========================================================================*/
+/* I2C driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables the mutual exclusion APIs on the I2C bus.
+ */
+# if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+# define I2C_USE_MUTUAL_EXCLUSION TRUE
+# endif
+
+/*===========================================================================*/
+/* MAC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables the zero-copy API.
+ */
+# if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__)
+# define MAC_USE_ZERO_COPY FALSE
+# endif
+
+/**
+ * @brief Enables an event sources for incoming packets.
+ */
+# if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__)
+# define MAC_USE_EVENTS TRUE
+# endif
+
+/*===========================================================================*/
+/* MMC_SPI driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Delays insertions.
+ * @details If enabled this options inserts delays into the MMC waiting
+ * routines releasing some extra CPU time for the threads with
+ * lower priority, this may slow down the driver a bit however.
+ * This option is recommended also if the SPI driver does not
+ * use a DMA channel and heavily loads the CPU.
+ */
+# if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__)
+# define MMC_NICE_WAITING TRUE
+# endif
+
+/*===========================================================================*/
+/* SDC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Number of initialization attempts before rejecting the card.
+ * @note Attempts are performed at 10mS intervals.
+ */
+# if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__)
+# define SDC_INIT_RETRY 100
+# endif
+
+/**
+ * @brief Include support for MMC cards.
+ * @note MMC support is not yet implemented so this option must be kept
+ * at @p FALSE.
+ */
+# if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__)
+# define SDC_MMC_SUPPORT FALSE
+# endif
+
+/**
+ * @brief Delays insertions.
+ * @details If enabled this options inserts delays into the MMC waiting
+ * routines releasing some extra CPU time for the threads with
+ * lower priority, this may slow down the driver a bit however.
+ */
+# if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__)
+# define SDC_NICE_WAITING TRUE
+# endif
+
+/**
+ * @brief OCR initialization constant for V20 cards.
+ */
+# if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__)
+# define SDC_INIT_OCR_V20 0x50FF8000U
+# endif
+
+/**
+ * @brief OCR initialization constant for non-V20 cards.
+ */
+# if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__)
+# define SDC_INIT_OCR 0x80100000U
+# endif
+
+/*===========================================================================*/
+/* SERIAL driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Default bit rate.
+ * @details Configuration parameter, this is the baud rate selected for the
+ * default configuration.
+ */
+# if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__)
+# define SERIAL_DEFAULT_BITRATE 38400
+# endif
+
+/**
+ * @brief Serial buffers size.
+ * @details Configuration parameter, you can change the depth of the queue
+ * buffers depending on the requirements of your application.
+ * @note The default is 16 bytes for both the transmission and receive
+ * buffers.
+ */
+# if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
+# define SERIAL_BUFFERS_SIZE 16
+# endif
+
+/*===========================================================================*/
+/* SERIAL_USB driver related setting. */
+/*===========================================================================*/
+
+/**
+ * @brief Serial over USB buffers size.
+ * @details Configuration parameter, the buffer size must be a multiple of
+ * the USB data endpoint maximum packet size.
+ * @note The default is 256 bytes for both the transmission and receive
+ * buffers.
+ */
+# if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__)
+# define SERIAL_USB_BUFFERS_SIZE 1
+# endif
+
+/**
+ * @brief Serial over USB number of buffers.
+ * @note The default is 2 buffers.
+ */
+# if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__)
+# define SERIAL_USB_BUFFERS_NUMBER 2
+# endif
+
+/*===========================================================================*/
+/* SPI driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+# if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__)
+# define SPI_USE_WAIT TRUE
+# endif
+
+/**
+ * @brief Enables circular transfers APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+# if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__)
+# define SPI_USE_CIRCULAR FALSE
+# endif
+
+/**
+ * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+# if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+# define SPI_USE_MUTUAL_EXCLUSION TRUE
+# endif
+
+/**
+ * @brief Handling method for SPI CS line.
+ * @note Disabling this option saves both code and data space.
+ */
+# if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__)
+# define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
+# endif
+
+/*===========================================================================*/
+/* UART driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+# if !defined(UART_USE_WAIT) || defined(__DOXYGEN__)
+# define UART_USE_WAIT FALSE
+# endif
+
+/**
+ * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+# if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+# define UART_USE_MUTUAL_EXCLUSION FALSE
+# endif
+
+/*===========================================================================*/
+/* USB driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+# if !defined(USB_USE_WAIT) || defined(__DOXYGEN__)
+# define USB_USE_WAIT TRUE
+# endif
+
+/*===========================================================================*/
+/* WSPI driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+# if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__)
+# define WSPI_USE_WAIT TRUE
+# endif
+
+/**
+ * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+# if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+# define WSPI_USE_MUTUAL_EXCLUSION TRUE
+# endif
+
+#endif /* HALCONF_H */
+
+/** @} */
diff --git a/keyboards/handwired/twadlee/tp69/info.json b/keyboards/handwired/twadlee/tp69/info.json
new file mode 100644
index 0000000000..89eecb7d16
--- /dev/null
+++ b/keyboards/handwired/twadlee/tp69/info.json
@@ -0,0 +1,12 @@
+{
+ "keyboard_name": "Twadlee TP69",
+ "url": "https://github.com/twadleigh/qmk_firmware",
+ "maintainer": "qmk",
+ "width": 16,
+ "height": 5,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":14.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2}, {"x":13.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3}, {"x":13.25, "y":3, "w":2.75}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2}, {"x":5.75, "y":4}, {"x":6.75, "y":4}, {"x":7.75, "y":4}, {"x":8.75, "y":4, "w":2.25}, {"x":11, "y":4, "w":1.25}, {"x":12.25, "y":4, "w":1.25}, {"x":13.5, "y":4, "w":1.25}, {"x":14.75, "y":4, "w":1.25}]
+ }
+ }
+}
diff --git a/keyboards/handwired/twadlee/tp69/keymaps/default/keymap.c b/keyboards/handwired/twadlee/tp69/keymaps/default/keymap.c
new file mode 100644
index 0000000000..f250c3fc62
--- /dev/null
+++ b/keyboards/handwired/twadlee/tp69/keymaps/default/keymap.c
@@ -0,0 +1,28 @@
+/* Copyright 2020 Tracy Wadleigh
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names { _BASE };
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BASE] = LAYOUT(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_LGUI, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_PGUP, KC_PGDN,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LALT, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCTL, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_BSPC, KC_MS_BTN1, KC_MS_BTN3, KC_MS_BTN2, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
+ )
+};
diff --git a/keyboards/handwired/twadlee/tp69/keymaps/default/readme.md b/keyboards/handwired/twadlee/tp69/keymaps/default/readme.md
new file mode 100644
index 0000000000..453673a6e9
--- /dev/null
+++ b/keyboards/handwired/twadlee/tp69/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for tp69
diff --git a/keyboards/handwired/twadlee/tp69/mcuconf.h b/keyboards/handwired/twadlee/tp69/mcuconf.h
new file mode 100644
index 0000000000..dc4d00bf18
--- /dev/null
+++ b/keyboards/handwired/twadlee/tp69/mcuconf.h
@@ -0,0 +1,45 @@
+/*
+ ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#ifndef _MCUCONF_H_
+#define _MCUCONF_H_
+
+#define KL2x_MCUCONF
+
+/*
+ * HAL driver system settings.
+ */
+/* PEE mode - 48MHz system clock driven by (16 MHz) external crystal. */
+#define KINETIS_MCG_MODE KINETIS_MCG_MODE_PEE
+#define KINETIS_PLLCLK_FREQUENCY 96000000UL
+#define KINETIS_SYSCLK_FREQUENCY 48000000UL
+
+/*
+ * SERIAL driver system settings.
+ */
+#define KINETIS_SERIAL_USE_UART0 TRUE
+
+/*
+ * USB driver settings
+ */
+#define KINETIS_USB_USE_USB0 TRUE
+
+/* Need to redefine this, since the default (configured for K20x) might not apply
+ * 2 for Teensy LC
+ * 5 for Teensy 3.x */
+#define KINETIS_USB_USB0_IRQ_PRIORITY 2
+
+#endif /* _MCUCONF_H_ */
diff --git a/keyboards/handwired/twadlee/tp69/readme.md b/keyboards/handwired/twadlee/tp69/readme.md
new file mode 100644
index 0000000000..201991cfe7
--- /dev/null
+++ b/keyboards/handwired/twadlee/tp69/readme.md
@@ -0,0 +1,18 @@
+# Twadlee TP69
+
+![tp69](https://i.imgur.com/sC1qmJS.png)
+
+A 69-key keyboard having a Trackpoint unit under an additional 70th keycap.
+
+The layout is similar to a conventional 60% keyboard, but with additional 1u keys down a central split. The spacebar is also split, with the intervening space occupied by three mouse buttons and the left half replaced by a relocated `BACKSPACE` key. The right half of the spacebar is 2.25u. The space vacated by the `BACKSPACE` key is split into two additional 1u keys. The additional keycap on the home row does not cover a switch but a Trackpoint pointing device. All told, the 61 keycaps of the conventional 60% layout are augmented by an additional 9 1u keycaps, and a 2.25u keycap to replace the conventional 6.25u spacebar.
+
+Given the unconventional layout, only non-sculpted keycap profiles are practical. I use DSAs.
+
+* Keyboard Maintainer: [Tracy Wadleigh](https://github.com/twadleigh)
+* Hardware Supported: Teensy LC controller
+
+Make example for this keyboard (after setting up your build environment):
+
+ make handwired/twadlee/tp69:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/handwired/twadlee/tp69/rules.mk b/keyboards/handwired/twadlee/tp69/rules.mk
new file mode 100644
index 0000000000..967060802b
--- /dev/null
+++ b/keyboards/handwired/twadlee/tp69/rules.mk
@@ -0,0 +1,28 @@
+# MCU name
+MCU = MKL26Z64
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
+PS2_MOUSE_ENABLE = no
+
+USE_CHIBIOS_CONTRIB = yes
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/handwired/twadlee/tp69/tp69.c b/keyboards/handwired/twadlee/tp69/tp69.c
new file mode 100644
index 0000000000..f4454c3bda
--- /dev/null
+++ b/keyboards/handwired/twadlee/tp69/tp69.c
@@ -0,0 +1,18 @@
+/* Copyright 2020 Tracy Wadleigh
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include "tp69.h"
diff --git a/keyboards/handwired/twadlee/tp69/tp69.h b/keyboards/handwired/twadlee/tp69/tp69.h
new file mode 100644
index 0000000000..31c03eb70b
--- /dev/null
+++ b/keyboards/handwired/twadlee/tp69/tp69.h
@@ -0,0 +1,48 @@
+/* Copyright 2020 Tracy Wadleigh
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+/* This is a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+
+#define LAYOUT( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k50, k51, k52, k53, k54, k55, k56, k57, \
+ k10, k11, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64, k65, k66, k67, \
+ k20, k21, k23, k24, k25, k27, /**/ k70, k71, k72, k73, k74, k75, k77, \
+ k30, k32, k33, k34, k35, k36, k37, k81, k82, k83, k84, k85, k86, \
+ k40, k41, k43, k44, k46, k47, k91, k92, k94, k95, k96, k97 \
+) \
+{ \
+ { k00, k01, k02, k03, k04, k05, k06, k07}, \
+ { k10, k11, KC_NO, k13, k14, k15, k16, k17}, \
+ { k20, k21, KC_NO, k23, k24, k25, KC_NO, k27}, \
+ { k30, KC_NO, k32, k33, k34, k35, k36, k37}, \
+ { k40, k41, KC_NO, k43, k44, KC_NO, k46, k47}, \
+ { k50, k51, k52, k53, k54, k55, k56, k57}, \
+ { k60, k61, k62, k63, k64, k65, k66, k67}, \
+ { k70, k71, k72, k73, k74, k75, KC_NO, k77}, \
+ {KC_NO, k81, k82, k83, k84, k85, k86, KC_NO}, \
+ {KC_NO, k91, k92, KC_NO, k94, k95, k96, k97} \
+}
diff --git a/keyboards/handwired/twadlee/tp69/twadlee-tp69-kle.json b/keyboards/handwired/twadlee/tp69/twadlee-tp69-kle.json
new file mode 100644
index 0000000000..b54508bf4f
--- /dev/null
+++ b/keyboards/handwired/twadlee/tp69/twadlee-tp69-kle.json
@@ -0,0 +1,139 @@
+[
+ {
+ "backcolor": "",
+ "name": "65% keyboard with pointing device under keycap",
+ "author": "Tracy Wadleigh",
+ "plate": false
+ },
+ [
+ {
+ "a": 7,
+ "f": 5
+ },
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ],
+ [
+ {
+ "w": 1.5
+ },
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ {
+ "w": 1.5
+ },
+ ""
+ ],
+ [
+ {
+ "w": 1.75
+ },
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ {
+ "x": 1
+ },
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ {
+ "w": 2.25
+ },
+ ""
+ ],
+ [
+ {
+ "w": 2.25
+ },
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ {
+ "w": 2.75
+ },
+ ""
+ ],
+ [
+ {
+ "w": 1.25
+ },
+ "",
+ {
+ "w": 1.25
+ },
+ "",
+ {
+ "w": 1.25
+ },
+ "",
+ {
+ "w": 2
+ },
+ "",
+ "",
+ "",
+ "",
+ {
+ "w": 2.25
+ },
+ "",
+ {
+ "w": 1.25
+ },
+ "",
+ {
+ "w": 1.25
+ },
+ "",
+ {
+ "w": 1.25
+ },
+ "",
+ {
+ "w": 1.25
+ },
+ ""
+ ]
+] \ No newline at end of file
diff --git a/keyboards/helix/local_drivers/ssd1306.h b/keyboards/helix/local_drivers/ssd1306.h
index 9cf6983b7e..f9f91c6fed 100644
--- a/keyboards/helix/local_drivers/ssd1306.h
+++ b/keyboards/helix/local_drivers/ssd1306.h
@@ -3,7 +3,6 @@
#include <stdbool.h>
#include <stdio.h>
-#include "pincontrol.h"
#include "action.h"
enum ssd1306_cmds {
diff --git a/keyboards/helix/pico/config.h b/keyboards/helix/pico/config.h
index 05713d7602..a4cc77143b 100644
--- a/keyboards/helix/pico/config.h
+++ b/keyboards/helix/pico/config.h
@@ -19,8 +19,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
/* USB Device descriptor parameter */
-#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0x3060
+#define VENDOR_ID 0x3265
+#define PRODUCT_ID 0x0001
#define DEVICE_VER 0x0002
#define MANUFACTURER Yushakobo
#define PRODUCT HelixPico
diff --git a/keyboards/helix/rev1/config.h b/keyboards/helix/rev1/config.h
index 1a5a266641..6c6ebea68a 100644
--- a/keyboards/helix/rev1/config.h
+++ b/keyboards/helix/rev1/config.h
@@ -19,8 +19,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
/* USB Device descriptor parameter */
-#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0x3060
+#define VENDOR_ID 0x3265
+#define PRODUCT_ID 0x8000
#define DEVICE_VER 0x0001
#define MANUFACTURER Yushakobo
#define PRODUCT Helix Alpha
diff --git a/keyboards/helix/rev2/config.h b/keyboards/helix/rev2/config.h
index 467d2d66f6..f85896fbea 100644
--- a/keyboards/helix/rev2/config.h
+++ b/keyboards/helix/rev2/config.h
@@ -19,8 +19,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
/* USB Device descriptor parameter */
-#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0x3060
+#define VENDOR_ID 0x3265
+#define PRODUCT_ID 0x0000
#define DEVICE_VER 0x0001
#define MANUFACTURER Yushakobo
#define PRODUCT Helix Beta
diff --git a/keyboards/helix/rev2/keymaps/xulkal/config.h b/keyboards/helix/rev2/keymaps/xulkal/config.h
new file mode 100644
index 0000000000..e2b325450a
--- /dev/null
+++ b/keyboards/helix/rev2/keymaps/xulkal/config.h
@@ -0,0 +1,38 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+// place overrides here
+
+// If you need more program area, try select and reduce rgblight modes to use.
+
+// Selection of RGBLIGHT MODE to use.
+#if defined(LED_ANIMATIONS)
+# define RGBLIGHT_EFFECT_BREATHING
+# define RGBLIGHT_EFFECT_RAINBOW_MOOD
+# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+# define RGBLIGHT_EFFECT_SNAKE
+# define RGBLIGHT_EFFECT_KNIGHT
+# define RGBLIGHT_EFFECT_CHRISTMAS
+# define RGBLIGHT_EFFECT_STATIC_GRADIENT
+//#define RGBLIGHT_EFFECT_RGB_TEST
+//#define RGBLIGHT_EFFECT_ALTERNATING
+#endif
diff --git a/keyboards/helix/rev2/keymaps/xulkal/keymap.c b/keyboards/helix/rev2/keymaps/xulkal/keymap.c
index 3fad64deac..fecdf4cbd2 100644
--- a/keyboards/helix/rev2/keymaps/xulkal/keymap.c
+++ b/keyboards/helix/rev2/keymaps/xulkal/keymap.c
@@ -27,8 +27,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_________________QWERTY_L1_________________, _________________QWERTY_R1_________________, \
_________________QWERTY_L2_________________, _________________QWERTY_R2_________________, \
_________________QWERTY_L3_________________, _________________QWERTY_R3_________________, \
- _________________QWERTY_L4_________________, RGB_TOG, RGBRST, _________________QWERTY_R4_________________, \
- _________________QWERTY_L5_________________, RGB_RMOD, RGB_MOD, _________________QWERTY_R5_________________ \
+ _________________QWERTY_L4_________________, KC_MINS, KC_EQL, _________________QWERTY_R4_________________, \
+ _________________QWERTY_L5_________________, KC_LBRC, KC_RBRC, _________________QWERTY_R5_________________ \
),
#ifndef GAMELAYER_DISABLE
@@ -36,8 +36,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
___________________GAME_L1_________________, ___________________GAME_R1_________________, \
___________________GAME_L2_________________, ___________________GAME_R2_________________, \
___________________GAME_L3_________________, ___________________GAME_R3_________________, \
- ___________________GAME_L4_________________, RGB_TOG, RGBRST, ___________________GAME_R4_________________, \
- ___________________GAME_L5_________________, RGB_RMOD, RGB_MOD, ___________________GAME_R5_________________ \
+ ___________________GAME_L4_________________, KC_MINS, KC_EQL, ___________________GAME_R4_________________, \
+ ___________________GAME_L5_________________, KC_LBRC, KC_RBRC, ___________________GAME_R5_________________ \
),
#endif
diff --git a/keyboards/id80/config.h b/keyboards/id80/config.h
index 12ee5400cd..936fd5b2e8 100644
--- a/keyboards/id80/config.h
+++ b/keyboards/id80/config.h
@@ -28,8 +28,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DESCRIPTION A 75% hotswap keyboard
/* key matrix size */
-#define MATRIX_ROWS 11
-#define MATRIX_COLS 9
+#define MATRIX_ROWS 9
+#define MATRIX_COLS 11
/*
* Keyboard Matrix Assignments
@@ -41,16 +41,25 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
*
* The matrix description in the vendor-supplied JSON file for kbfirmware.com
- * had 12 rows:
+ * had 9 columns:
+ * { D0, D1, D2, D3, D5, D4, D6, D7, B4 }
+ * and 12 rows:
* { B7, B3, B2, B1, B0, E6, F0, F1, F4, F5, F6, F7 }
* However, the row 6 was completely empty, and the pin F0 was not actually
* routed anywhere on the PCB, therefore this row was removed to save some
* resources (the EEPROM space for dynamic keymaps is especially scarce).
+ *
+ * After doing the above change, the matrix was transposed (rows and columns
+ * were swapped), because a matrix with the COL2ROW layout can be scanned much
+ * more efficiently than a matrix with the ROW2COL layout (depending on various
+ * optimizations, the difference in scan rate can be over 2 times). Because of
+ * this, the "columns" in the matrix layout now mostly correspond to physical
+ * rows, and the "rows" have mostly vertical physical orientation.
*/
-#define MATRIX_ROW_PINS { B7, B3, B2, B1, B0, E6, F1, F4, F5, F6, F7 }
-#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4 }
+#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4 }
+#define MATRIX_COL_PINS { B7, B3, B2, B1, B0, E6, F1, F4, F5, F6, F7 }
-#define DIODE_DIRECTION ROW2COL
+#define DIODE_DIRECTION COL2ROW
#define BACKLIGHT_PIN B6
// #define BACKLIGHT_BREATHING
@@ -81,8 +90,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#endif
/* Bootmagic Lite key configuration: use the Esc key */
-#define BOOTMAGIC_LITE_ROW 5
-#define BOOTMAGIC_LITE_COLUMN 0
-
-// partially generated by KBFirmware JSON to QMK Parser
-// https://noroadsleft.github.io/kbf_qmk_converter/
+#define BOOTMAGIC_LITE_ROW 0
+#define BOOTMAGIC_LITE_COLUMN 5
diff --git a/keyboards/id80/id80.h b/keyboards/id80/id80.h
index 2f2cab71ba..94626fe4f6 100644
--- a/keyboards/id80/id80.h
+++ b/keyboards/id80/id80.h
@@ -25,18 +25,13 @@
K10, K12, K13, K14, K15, K16, K17, K18, K68, K67, K65, K64, K63, \
K00, K01, K02, K06, K08, K07, K05, K04, K03 \
) { \
- { K00, K01, K02, K03, K04, K05, K06, K07, K08 }, \
- { K10, KC_NO, K12, K13, K14, K15, K16, K17, K18 }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28 }, \
- { K30, K31, K32, K33, K34, K35, K36, K37, K38 }, \
- { K40, K41, K42, K43, K44, K45, K46, K47, K48 }, \
- { K50, K51, K52, K53, K54, K55, K56, K57, K58 }, \
- { KC_NO, KC_NO, KC_NO, K63, K64, K65, KC_NO, K67, K68 }, \
- { KC_NO, KC_NO, KC_NO, KC_NO, K74, K75, KC_NO, K77, K78 }, \
- { KC_NO, KC_NO, K82, K83, K84, K85, KC_NO, K87, K88 }, \
- { KC_NO, KC_NO, K92, KC_NO, K94, K95, K96, K97, K98 }, \
- { KC_NO, KC_NO, KA2, KA3, KA4, KA5, KA6, KA7, KC_NO }, \
+ { K00, K10, K20, K30, K40, K50, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
+ { K01, KC_NO, K21, K31, K41, K51, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
+ { K02, K12, K22, K32, K42, K52, KC_NO, KC_NO, K82, K92, KA2 }, \
+ { K03, K13, K23, K33, K43, K53, K63, KC_NO, K83, KC_NO, KA3 }, \
+ { K04, K14, K24, K34, K44, K54, K64, K74, K84, K94, KA4 }, \
+ { K05, K15, K25, K35, K45, K55, K65, K75, K85, K95, KA5 }, \
+ { K06, K16, K26, K36, K46, K56, KC_NO, KC_NO, KC_NO, K96, KA6 }, \
+ { K07, K17, K27, K37, K47, K57, K67, K77, K87, K97, KA7 }, \
+ { K08, K18, K28, K38, K48, K58, K68, K78, K88, K98, KC_NO }, \
}
-
-// generated by KBFirmware JSON to QMK Parser
-// https://noroadsleft.github.io/kbf_qmk_converter/
diff --git a/keyboards/j80/rules.mk b/keyboards/j80/rules.mk
index b2ca3a0c2b..4b21de4e8e 100644
--- a/keyboards/j80/rules.mk
+++ b/keyboards/j80/rules.mk
@@ -21,5 +21,3 @@ CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-
-OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/jc65/v32a/rules.mk b/keyboards/jc65/v32a/rules.mk
index fd340f04eb..20f0222c11 100644
--- a/keyboards/jc65/v32a/rules.mk
+++ b/keyboards/jc65/v32a/rules.mk
@@ -20,5 +20,3 @@ COMMAND_ENABLE = yes
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
-
-OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/jj40/keymaps/stevexyz/config.h b/keyboards/jj40/keymaps/stevexyz/config.h
index 4d4825f9b6..84c02dddd6 100644
--- a/keyboards/jj40/keymaps/stevexyz/config.h
+++ b/keyboards/jj40/keymaps/stevexyz/config.h
@@ -1,6 +1,8 @@
+#pragma once
// Behaviors That Can Be Configured
+
#define TAPPING_TERM 250
// how long before a tap becomes a hold, if set above 500, a key tapped during the tapping term will turn it into a hold too
@@ -9,18 +11,18 @@
#define IGNORE_MOD_TAP_INTERRUPT
// makes it possible to do rolling combos (zx) with keys that convert to other keys on hold, by enforcing the TAPPING_TERM for both keys.
+#define TAPPING_FORCE_HOLD
+ // makes it possible to use a dual role key as modifier shortly after having been tapped (see Hold after tap)
+ // Breaks any Tap Toggle functionality (TT or the One Shot Tap Toggle)
+
+
/*
#define TAPPING_TERM_PER_KEY
// enables handling for per key TAPPING_TERM settings
#define RETRO_TAPPING
// tap anyway, even after TAPPING_TERM, if there was no other key interruption between press and release
- // See Retro Tapping for details
#define TAPPING_TOGGLE 2
// how many taps before triggering the toggle
- #define TAPPING_FORCE_HOLD
- // makes it possible to use a dual role key as modifier shortly after having been tapped
- // See Hold after tap
- // Breaks any Tap Toggle functionality (TT or the One Shot Tap Toggle)
#define LEADER_TIMEOUT 300
// how long before the leader key times out
// If you're having issues finishing the sequence before it times out, you may need to increase the timeout setting. Or you may want to enable the LEADER_PER_KEY_TIMING option, which resets the timeout after each key is tapped.
diff --git a/keyboards/jj40/keymaps/stevexyz/keyboard-layout-editor-raw-data.txt b/keyboards/jj40/keymaps/stevexyz/keyboard-layout-editor-raw-data.txt
deleted file mode 100644
index 0117b5e2ee..0000000000
--- a/keyboards/jj40/keymaps/stevexyz/keyboard-layout-editor-raw-data.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-[{c:"#eeddcc",g:true,a:7},"","","","","","","","","","","",""],
-["",{c:"#cccccc",g:false,a:4,fa:[2,1,5,5,8]},"F11\nF1\n!\n1\nQ","F12\nF2\n@\n2\nW","Layer Num\nF3\n#\n3\nE","Layer Light\nF4\n$\n4\nR","\nF5\n%\n5\nT","\nF6\n^\n6\nY","\nF7\n&\n7\nU","\nF8\n*\n8\nI","Layer Mouse\nF9\n(\n9\nO","\nF10\n)\n0\nP",{c:"#eeddcc",g:true,a:7},""],
-["",{c:"#cccccc",t:"#000000\n\n\n\n\n\n\n\n\n\n#804020",g:false,a:4,fa:[2,1,5,5,8,0,2,2,0,0,1]},"Caps\n\n\n\nA\n\nEsc\nTab\n\n\nshift",{fa:[2,2,5,5,8,0,2,2,0,0,1]},"<i class='fa fa-volume-off'></i>\n<i class='fa fa-angle-double-left'></i>\n~\n`\nS\n\n\n\n\n\nfn","<i class='fa fa-volume-down'></i>\n<i class='fa fa-angle-double-down'></i>\n_\n-\nD\n\n\n\n\n\nnum",{t:"#000000"},"<i class='fa fa-volume-up'></i>\n<i class='fa fa-angle-double-up'></i>\n+\n=\nF",{t:"#000000\n\n\n\n\n\n\n\n\n\n#804020"},"<i class='fa fa-play'></i>\n<i class='fa fa-angle-double-right'></i>\n{\n[\nG\n\n\n\n\n\n<i class='fa fa-apple'></i>","<i class='fa fa-step-forward'></i>\n<i class='fa fa-arrow-left'></i>\n}\n]\nH\n\n\n\n\n\n<i class='fa fa-apple'></i>",{t:"#000000"},"\n<i class='fa fa-arrow-down'></i>\n|\n\\\nJ",{t:"#000000\n\n\n\n\n\n\n\n\n\n#804020"},"\n<i class='fa fa-arrow-up'></i>\n:\n;\nK\n\n\n\n\n\nfn","\n<i class='fa fa-arrow-right'></i>\n\"\n'\nL\n\n\n\n\n\nnum",{c:"#eeddcc",f:1,fa:[2,2,5,5,8,0,2,2,0,0,0]},"Ins\n\n\n\n\n\nBS\nDel\n\n\nshift",{t:"#000000",g:true,a:7,f:3},""],
-["","",{c:"#cccccc",t:"#000000\n#804020",g:false,a:5,fa:[0,1,0,0,8]},"\nctrl\n\n\nZ","\nalt\n\n\nX",{t:"#000000\n\n\n\n\n\n\n\n\n\n#804020",a:4,fa:[2,1,0,0,8,0,0,0,0,0,1]},"^\n\n\n\nC\n\n\n\n\n\nfn","^\n\n\n\nV\n\n\n\n\n\nnum",{fa:[2,1,5,5,8,0,0,0,0,0,1]},"Prnt Scrn\n\n<\n,\nB\n\n\n\n\n\nshift","Scr Lock\n\n>\n.\nN\n\n\n\n\n\nalt","Paus\n\n?\n/\nM\n\n\n\n\n\nctrl",{t:"#000000\n#804020",a:5},"\nshift",{c:"#eeddcc",t:"#000000",g:true,a:7},"",""]
diff --git a/keyboards/jj40/keymaps/stevexyz/keymap.c b/keyboards/jj40/keymaps/stevexyz/keymap.c
index 4045d07109..02601a30d9 100644
--- a/keyboards/jj40/keymaps/stevexyz/keymap.c
+++ b/keyboards/jj40/keymaps/stevexyz/keymap.c
@@ -22,6 +22,12 @@
*/
+/*
+ * Nice to have:
+ * - tap dancing (p=backspace, q=escape, a=tab, vowel=accentedletter and same for consonant as the french c)
+ */
+
+
#include QMK_KEYBOARD_H
enum layers {
@@ -38,20 +44,24 @@ enum custom_keycodes {
CK_TRIPLEZERO = SAFE_RANGE,
};
+#define CK_CONFIGINIT EEPROM_RESET
+
enum {
- TD_ENT_BSPC = 0,
- TD_KPENT_BSPC,
- TD_E_GRAVE,
+ TD_P_BSPC = 0,
+ TD_Q_ESC,
+ TD_A_TAB,
TD_A_GRAVE,
+ TD_E_GRAVE,
+ TD_E_ACUTE,
+ TD_I_GRAVE,
TD_O_GRAVE,
TD_U_GRAVE,
- TD_I_GRAVE,
- TD_E_ACUTE,
};
qk_tap_dance_action_t tap_dance_actions[] = {
- [TD_ENT_BSPC] = ACTION_TAP_DANCE_DOUBLE(KC_ENT, KC_BSPC),
- [TD_KPENT_BSPC] = ACTION_TAP_DANCE_DOUBLE(KC_KP_ENTER, KC_BSPC),
- [TD_E_GRAVE] = ACTION_TAP_DANCE_DOUBLE(KC_E, KC_E),
+ [TD_P_BSPC] = ACTION_TAP_DANCE_DOUBLE(KC_P, KC_BSPC),
+ [TD_Q_ESC] = ACTION_TAP_DANCE_DOUBLE(KC_Q, KC_ESC),
+ [TD_A_TAB] = ACTION_TAP_DANCE_DOUBLE(KC_A, KC_TAB),
+ //[TD_E_GRAVE] = ACTION_TAP_DANCE_DOUBLE(KC_E, KC_EGRAVE),
};
@@ -83,18 +93,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | | | | | | | | | |
* | | A | S | D | F | G | H | J | K | L | Enter| |
- * | | Shift| FnNav|NumSym| ____ | OSkey| OSkey| ____ | FnNav|NumSym| Shift| |
+ * | | Shift| FnNav|NumSym| AltGr| OSkey| OSkey| AltGr| FnNav|NumSym| Shift| |
* |------+------+------+------+------+------+------|------+------+------+------+------+
* | | | | | | | | | | | | |
* | | | Z | X | C | V | B | N | M | Space| | |
- * | | | Ctrl | Alt | FnNav|NumSym| Shift| Alt | Ctrl | Shift| | |
+ * | | | Ctrl | Alt | FnNav|NumSym| Shift| Alt | Ctrl | Shift| | |
* `-----------------------------------------------------------------------------------'
*/
[LAYER_HOME] = LAYOUT_ortho_4x12(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, XXXXXXX,
- XXXXXXX, MT(MOD_LSFT, KC_A), LT(LAYER_FUNC, KC_S), LT(LAYER_NUMSYM, KC_D), KC_F, MT(MOD_LGUI, KC_G), MT(MOD_RGUI, KC_H), KC_J, LT(LAYER_FUNC, KC_K), LT(LAYER_NUMSYM, KC_L), MT(MOD_RSFT, KC_ENT), XXXXXXX,
- XXXXXXX, XXXXXXX, MT(MOD_LCTL, KC_Z), MT(MOD_LALT, KC_X), LT(LAYER_FUNC, KC_C), LT(LAYER_NUMSYM, KC_V), MT(MOD_LSFT, KC_B), MT(MOD_RALT, KC_N), MT(MOD_RCTL, KC_M), MT(MOD_RSFT, KC_SPC), XXXXXXX, XXXXXXX ),
+ XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, XXXXXXX,
+ XXXXXXX, MT(MOD_LSFT, KC_A), LT(LAYER_FUNC, KC_S), LT(LAYER_NUMSYM, KC_D), MT(MOD_RALT, KC_F), MT(MOD_LGUI, KC_G), MT(MOD_RGUI, KC_H), MT(MOD_RALT, KC_J), LT(LAYER_FUNC, KC_K), LT(LAYER_NUMSYM, KC_L), MT(MOD_RSFT, KC_ENT), XXXXXXX,
+ XXXXXXX, XXXXXXX, MT(MOD_LCTL, KC_Z), MT(MOD_LALT, KC_X), LT(LAYER_FUNC, KC_C), LT(LAYER_NUMSYM, KC_V), MT(MOD_LSFT, KC_B), MT(MOD_LALT, KC_N), MT(MOD_RCTL, KC_M), MT(MOD_RSFT, KC_SPC), XXXXXXX, XXXXXXX ),
/* Function and Navigation Layer
* ,-----------------------------------------------------------------------------------.
@@ -108,18 +118,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | | | | | | | | | |
* | | ESC | Home | PgDn | PgUp | End | Left | Down | Up | Right| Baksp| |
- * | | Shift|xxxxxx|SysLay| ____ | ____ | ____ | ____ |xxxxxx|SysLay| Shift| |
+ * | | Shift| ____ |SysLay| AltGr| OSkey| OSkey| AltGr| ____ |SysLay| Shift| |
* |------+------+------+------+------+------+------|------+------+------+------+------+
* | | | | | | | | | | | | |
* | | | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | | |
- * | | | Ctrl | Alt |xxxxxx|SysLay| Shift| Alt | Ctrl | Shift| | |
+ * | | | Ctrl | Alt | ____ |SysLay| Shift| Alt | Ctrl | Shift| | |
* `-----------------------------------------------------------------------------------'
*/
[LAYER_FUNC] = LAYOUT_ortho_4x12(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX,
- XXXXXXX, MT(MOD_LSFT, KC_ESC), KC_HOME, LT(LAYER_SYST, KC_PGDN), KC_PGUP, KC_END, KC_LEFT, KC_DOWN, KC_UP, LT(LAYER_SYST, KC_RGHT), MT(MOD_RSFT, KC_BSPC), XXXXXXX,
- XXXXXXX, XXXXXXX, KC_LCTL, KC_LALT, KC_TRNS, MO(LAYER_SYST), KC_LSFT, KC_RALT, KC_RCTL, MT(MOD_RSFT, KC_SPC), XXXXXXX, XXXXXXX ),
+ XXXXXXX, MT(MOD_LSFT, KC_ESC), KC_HOME, LT(LAYER_SYST, KC_PGDN), MT(MOD_RALT, KC_PGUP), MT(MOD_LGUI, KC_END), MT(MOD_RGUI, KC_LEFT), MT(MOD_RALT, KC_DOWN), KC_UP, LT(LAYER_SYST, KC_RGHT), MT(MOD_RSFT, KC_BSPC), XXXXXXX,
+ XXXXXXX, XXXXXXX, KC_LCTL, KC_LALT, KC_NO, MO(LAYER_SYST), KC_LSFT, KC_LALT, KC_RCTL, MT(MOD_RSFT, KC_SPC), XXXXXXX, XXXXXXX ),
/* Number and Symbols Layer
* ,-----------------------------------------------------------------------------------.
@@ -133,18 +143,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | ~ | _ | + | { | } | | | : | " | | |
* | | TAB | ` | - | = | [ | ] | \ | ; | ' | | |
- * | | Shift|SysLay|xxxxxx| ____ | ____ | ____ | ____ |SysLay|xxxxxx| Shift| |
+ * | | Shift|SysLay| ____ | AltGr| OSkey| OSkey| AltGr|SysLay| ____ | Shift| |
* |------+------+------+------+------+------+------|------+------+------+------+------+
* | | | | | | | < | > | ? | | | |
* | | | ____ | ____ | ____ | ____ | , | . | / | ____ | | |
- * | | | Ctrl | Alt |SysLay|xxxxxx| Shift| ____ | ____ | Shift| | |
+ * | | | Ctrl | Alt |SysLay| ____ | Shift| Alt | Ctrl | Shift| | |
* `-----------------------------------------------------------------------------------'
*/
[LAYER_NUMSYM] = LAYOUT_ortho_4x12(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX,
- XXXXXXX, MT(MOD_LSFT, KC_TAB), LT(LAYER_SYST, KC_GRV), KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, LT(LAYER_SYST, KC_SCLN), KC_QUOT, MT(MOD_RSFT, KC_DEL), XXXXXXX,
- XXXXXXX, XXXXXXX, KC_LCTL, KC_LALT, MO(LAYER_SYST), KC_TRNS, MT(MOD_LSFT, KC_COMM), KC_DOT, KC_SLSH, MT(MOD_RSFT, KC_SPC), XXXXXXX, XXXXXXX ),
+ XXXXXXX, MT(MOD_LSFT, KC_TAB), LT(LAYER_SYST, KC_GRV), KC_MINS, MT(MOD_RALT, KC_EQL), MT(MOD_LGUI, KC_LBRC), MT(MOD_RGUI, KC_RBRC), MT(MOD_RALT, KC_BSLS), LT(LAYER_SYST, KC_SCLN), KC_QUOT, MT(MOD_RSFT, KC_DEL), XXXXXXX,
+ XXXXXXX, XXXXXXX, KC_LCTL, KC_LALT, MO(LAYER_SYST), KC_NO, MT(MOD_LSFT, KC_COMM), MT(MOD_LALT, KC_DOT), MT(MOD_RCTL, KC_SLSH), MT(MOD_RSFT, KC_SPC), XXXXXXX, XXXXXXX ),
/* System Layer
* ,-----------------------------------------------------------------------------------.
@@ -153,11 +163,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | | |
- * | | F11 | F12 |NumLay|LghLay| ____ | ____ | ____ | ____ |MouLay|Backsp| |
+ * | | F11 | F12 |NumLay|LghLay| ____ |KbInit| Power|SysReq|MouLay|Backsp| |
* | | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | | | | | | | | | |
- * | | Caps | Mute | Vol- | Vol+ | Play | Next | ____ | ____ | ____ | Ins | |
+ * | | Caps | Mute | Vol- | Vol+ | Play | Next | ____ | ____ |OSMenu| Ins | |
* | | Shift| ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | Shift| |
* |------+------+------+------+------+------+------|------+------+------+------+------+
* | | | | | | | | | | | | |
@@ -167,9 +177,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
[LAYER_SYST] = LAYOUT_ortho_4x12(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, KC_F11, KC_F12, TG(LAYER_NUMONLY), TG(LAYER_LIGHTS), KC_NO, KC_NO, KC_NO, KC_NO, TG(LAYER_MOUSE), KC_BSPC, XXXXXXX,
- XXXXXXX, MT(MOD_LSFT, KC_CAPS), KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_MNXT, KC_NO, KC_NO, KC_NO, MT(MOD_RSFT, KC_INS), XXXXXXX,
- XXXXXXX, XXXXXXX, KC_LCTL, KC_LALT, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, MT(MOD_RSFT, KC_SPC), XXXXXXX, XXXXXXX ),
+ XXXXXXX, KC_F11, KC_F12, TG(LAYER_NUMONLY), TG(LAYER_LIGHTS), KC_NO, CK_CONFIGINIT, KC_POWER, KC_SYSREQ, TG(LAYER_MOUSE), KC_BSPC, XXXXXXX,
+ XXXXXXX, MT(MOD_LSFT, KC_CAPS), KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_MNXT, KC_NO, KC_NO, KC_APP, MT(MOD_RSFT, KC_INS), XXXXXXX,
+ XXXXXXX, XXXXXXX, KC_LCTL, KC_LALT, KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, MT(MOD_RSFT, KC_SPC), XXXXXXX, XXXXXXX ),
/* Numeric Keypad
* ,-----------------------------------------------------------------------------------.
@@ -233,7 +243,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | | | | | | | | | |
* | | Left | Down | Right| Whl- | ____ | ____ | ____ | ____ | ____ | Enter| |
- * | | ____ | ____ | ____ | ____ | OSkey| OSkey| ____ | ____ | ____ | ____ | |
+ * | | ____ | ____ | ____ | ____ | OSkey| OSkey| AltGr| ____ | ____ | ____ | |
* |------+------+------+------+------+------+------|------+------+------+------+------+
* | | | | | | | | | | | | |
* | | | ____ | ____ | ____ | ____ | ____ | ____ | ____ | Space| | |
@@ -243,14 +253,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[LAYER_MOUSE] = LAYOUT_ortho_4x12(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_MS_WH_UP, KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, KC_NO, TG(LAYER_MOUSE), KC_NO, XXXXXXX,
- XXXXXXX, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_DOWN, KC_LGUI, KC_RGUI, KC_NO, KC_NO, KC_NO, KC_ENT, XXXXXXX,
- XXXXXXX, XXXXXXX, KC_LCTL, KC_LALT, KC_NO, KC_NO, KC_LSFT, KC_RALT, KC_RCTL, MT(MOD_RSFT, KC_SPC), XXXXXXX, XXXXXXX ),
+ XXXXXXX, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_DOWN, KC_LGUI, KC_RGUI, KC_RALT, KC_NO, KC_NO, KC_ENT, XXXXXXX,
+ XXXXXXX, XXXXXXX, KC_LCTL, KC_LALT, KC_NO, KC_NO, KC_LSFT, KC_LALT, KC_RCTL, MT(MOD_RSFT, KC_SPC), XXXXXXX, XXXXXXX ),
};
void matrix_init_user(void) {
- // set num lock on at start independently of state (for numonly layer to work)
+ // eeconfig_init(); // reset keyboard to a standard default state; useful when new releases messup with eeprom values
+ // set num lock on at start (for numonly layer to work)
if (!(host_keyboard_leds() & (1<<USB_LED_NUM_LOCK))) {
SEND_STRING(SS_TAP(X_NUMLOCK)); //register_code(KC_NUMLOCK); unregister_code(KC_NUMLOCK);
}
diff --git a/keyboards/jj40/keymaps/stevexyz/readme.md b/keyboards/jj40/keymaps/stevexyz/readme.md
index d404bcc0bd..4b09f0f1bf 100644
--- a/keyboards/jj40/keymaps/stevexyz/readme.md
+++ b/keyboards/jj40/keymaps/stevexyz/readme.md
@@ -1,6 +1,7 @@
# jj28 (aka jj40 super micro edition :))
-With this configuration a 4x12 jj40 (with 48 keys) is transformed into an ortholinear PyroL-vderm 28 keys inspired layout one. This keyboard can be actually called jj28!
+With this configuration a 4x12 jj40 (with 48 keys) is being removed 20 keys and transformed into an ortholinear Alpha28 PyroL-vderm 28 keys inspired layout one.
+This keyboard can be actually called jj28!
![Bare layout](https://i.ibb.co/7GK1LY7/layout-0.jpg)
@@ -15,6 +16,6 @@ Surely you have an additional option, and personally, after using it as a daily
Notes on layout:
After few tests I found out that the space at the end is the best for people that are very used to “standard” keyboards (basically almost everybody), retaining years of muscle memory.
-Moreover, also shift, fn and numsym layer keys are good to be replicated on central line (and also keeping in the order will allow a single finger shift+fn on the left and also shift+num on the right).
+And moreover, also shift, fn and numsym layer keys are good to be replicated on central line.
[Keyboard layout editor](http://www.keyboard-layout-editor.com/#/) raw data in keyboard-layout-editor-raw-data.txt file.
diff --git a/keyboards/jj40/keymaps/stevexyz/rules.mk b/keyboards/jj40/keymaps/stevexyz/rules.mk
index 612e5d7750..1e4d0dedf7 100644
--- a/keyboards/jj40/keymaps/stevexyz/rules.mk
+++ b/keyboards/jj40/keymaps/stevexyz/rules.mk
@@ -8,7 +8,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # USB Nkey Rollover (see: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work)
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-RGBLIGHT_CUSTOM_DRIVER = yes
MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/jj50/keymaps/archetype/rules.mk b/keyboards/jj50/keymaps/archetype/rules.mk
index 1a63376bed..9a3c196029 100644
--- a/keyboards/jj50/keymaps/archetype/rules.mk
+++ b/keyboards/jj50/keymaps/archetype/rules.mk
@@ -48,9 +48,6 @@ KEY_LOCK_ENABLE = yes
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-
-#OPT_DEFS = -DDEBUG_LEVEL=0
-
# custom matrix setup
CUSTOM_MATRIX = yes
SRC = matrix.c i2c.c backlight.c
diff --git a/keyboards/jj50/rules.mk b/keyboards/jj50/rules.mk
index 38faf37162..73be71d35e 100644
--- a/keyboards/jj50/rules.mk
+++ b/keyboards/jj50/rules.mk
@@ -27,6 +27,4 @@ KEY_LOCK_ENABLE = yes
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-#OPT_DEFS = -DDEBUG_LEVEL=0
-
LAYOUTS = ortho_5x12
diff --git a/keyboards/kbdclack/kaishi65/config.h b/keyboards/kbdclack/kaishi65/config.h
new file mode 100644
index 0000000000..3ea67aae0a
--- /dev/null
+++ b/keyboards/kbdclack/kaishi65/config.h
@@ -0,0 +1,251 @@
+/*
+Copyright 2020 KBDClack
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x1A81
+#define DEVICE_VER 0x0001
+#define MANUFACTURER KBDClack
+#define PRODUCT kaishi65
+#define DESCRIPTION KBDClack made 65% PCB based on the MULLET from coseyfannitutti
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 15
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { D0, D1, B0, F0, F1 }
+#define MATRIX_COL_PINS { B2, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4, D2, D3 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
+
+// #define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+// #define BACKLIGHT_LEVELS 3
+
+// #define RGB_DI_PIN E2
+// #ifdef RGB_DI_PIN
+// #define RGBLED_NUM 16
+// #define RGBLIGHT_HUE_STEP 8
+// #define RGBLIGHT_SAT_STEP 8
+// #define RGBLIGHT_VAL_STEP 8
+// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+// /*== all animations enable ==*/
+// #define RGBLIGHT_ANIMATIONS
+// /*== or choose animations ==*/
+// #define RGBLIGHT_EFFECT_BREATHING
+// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
+// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+// #define RGBLIGHT_EFFECT_SNAKE
+// #define RGBLIGHT_EFFECT_KNIGHT
+// #define RGBLIGHT_EFFECT_CHRISTMAS
+// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
+// #define RGBLIGHT_EFFECT_RGB_TEST
+// #define RGBLIGHT_EFFECT_ALTERNATING
+// /*== customize breathing effect ==*/
+// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
+// /*==== use exp() and sin() ====*/
+// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
+// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
+// #endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+// #define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+/* defined by default; to change, uncomment and set to the combination you want */
+// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP H
+//#define MAGIC_KEY_HELP_ALT SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER0_ALT GRAVE
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER B
+//#define MAGIC_KEY_BOOTLOADER_ALT ESC
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+
+/* disable these deprecated features by default */
+#define NO_ACTION_MACRO
+#define NO_ACTION_FUNCTION
+
+/*
+ * MIDI options
+ */
+
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+//#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 1
+
+/*
+ * HD44780 LCD Display Configuration
+ */
+/*
+#define LCD_LINES 2 //< number of visible lines of the display
+#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
+
+#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
+
+#if LCD_IO_MODE
+#define LCD_PORT PORTB //< port for the LCD lines
+#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
+#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
+#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
+#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
+#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
+#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
+#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
+#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
+#define LCD_RS_PORT LCD_PORT //< port for RS line
+#define LCD_RS_PIN 3 //< pin for RS line
+#define LCD_RW_PORT LCD_PORT //< port for RW line
+#define LCD_RW_PIN 2 //< pin for RW line
+#define LCD_E_PORT LCD_PORT //< port for Enable line
+#define LCD_E_PIN 1 //< pin for Enable line
+#endif
+*/
+
+/* Bootmagic Lite key configuration */
+// #define BOOTMAGIC_LITE_ROW 0
+// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kbdclack/kaishi65/info.json b/keyboards/kbdclack/kaishi65/info.json
new file mode 100644
index 0000000000..64ce89dd5a
--- /dev/null
+++ b/keyboards/kbdclack/kaishi65/info.json
@@ -0,0 +1,12 @@
+{
+ "keyboard_name": "kaishi65",
+ "url": "https://github.com/powerlemming/KBDClack",
+ "maintainer": "KBDClack",
+ "width": 16,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_65_ansi": {
+ "layout": [{"label":"esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Home", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Del", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Pg up", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"up", "x":14, "y":3}, {"label":"Pg dn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Ctrl", "x":12, "y":4}, {"label":"left", "x":13, "y":4}, {"label":"down", "x":14, "y":4}, {"label":"right", "x":15, "y":4}]
+ }
+ }
+}
diff --git a/keyboards/kbdclack/kaishi65/kaishi65.c b/keyboards/kbdclack/kaishi65/kaishi65.c
new file mode 100644
index 0000000000..97f608f468
--- /dev/null
+++ b/keyboards/kbdclack/kaishi65/kaishi65.c
@@ -0,0 +1,17 @@
+/* Copyright 2020 KBDClack
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "kaishi65.h"
diff --git a/keyboards/kbdclack/kaishi65/kaishi65.h b/keyboards/kbdclack/kaishi65/kaishi65.h
new file mode 100644
index 0000000000..6343608324
--- /dev/null
+++ b/keyboards/kbdclack/kaishi65/kaishi65.h
@@ -0,0 +1,44 @@
+/* Copyright 2020 KBDClack
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define _x_ KC_NO
+
+/* This is a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+#define LAYOUT_65_ansi( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
+ K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
+ K40, K41, K42, K46, K49, K4A, K4B, K4C, K4D, K4E \
+) \
+{ \
+{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
+{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
+{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, _x_, K2D, K2E }, \
+{ K30, _x_, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
+{ K40, K41, K42, _x_, _x_, _x_, K46, _x_, _x_, K49, K4A, K4B, K4C, K4D, K4E} \
+}
diff --git a/keyboards/kbdclack/kaishi65/keymaps/default/keymap.c b/keyboards/kbdclack/kaishi65/keymaps/default/keymap.c
new file mode 100644
index 0000000000..46d68182f4
--- /dev/null
+++ b/keyboards/kbdclack/kaishi65/keymaps/default/keymap.c
@@ -0,0 +1,39 @@
+/* Copyright 2020 KBDClack
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _BASE,
+ _FN
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Base */
+ [_BASE] = LAYOUT_65_ansi(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
+
+ [_FN] = LAYOUT_65_ansi(
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
+ _______, KC_BTN1, KC_MS_U, KC_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS,
+ _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME,
+ _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, KC_VOLU, KC_END,
+ _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT)
+};
diff --git a/keyboards/kbdclack/kaishi65/keymaps/default/readme.md b/keyboards/kbdclack/kaishi65/keymaps/default/readme.md
new file mode 100644
index 0000000000..c3c1392a96
--- /dev/null
+++ b/keyboards/kbdclack/kaishi65/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for kaishi65
diff --git a/keyboards/kbdclack/kaishi65/readme.md b/keyboards/kbdclack/kaishi65/readme.md
new file mode 100644
index 0000000000..11fbd43bab
--- /dev/null
+++ b/keyboards/kbdclack/kaishi65/readme.md
@@ -0,0 +1,14 @@
+# kaishi65
+A sleek 65% keyboard made from CNC machined aluminium
+
+*(PCB based on coseyfannitutti's MULLET design)*
+
+* Keyboard Maintainer: [KBDClack](https://github.com/powerlemming)
+* Hardware Supported: The kaishi65 line of products (case + PCB)
+* Hardware Availability: www.kbdclack.com
+
+Make example for this keyboard (after setting up your build environment):
+
+ make kbdclack/kaishi65:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/kbdclack/kaishi65/rules.mk b/keyboards/kbdclack/kaishi65/rules.mk
new file mode 100644
index 0000000000..9fbf5373a5
--- /dev/null
+++ b/keyboards/kbdclack/kaishi65/rules.mk
@@ -0,0 +1,33 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+
+LAYOUTS = 65_ansi
diff --git a/keyboards/kbdfans/kbd67/hotswap/hotswap.h b/keyboards/kbdfans/kbd67/hotswap/hotswap.h
index 45cf537cbe..ba6c1686fa 100644
--- a/keyboards/kbdfans/kbd67/hotswap/hotswap.h
+++ b/keyboards/kbdfans/kbd67/hotswap/hotswap.h
@@ -40,3 +40,5 @@
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_NO, K3C, K3D, K3E}, \
{ K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K49, K4A, K4B, KC_NO, K4D, K4E}, \
}
+
+#define LAYOUT_65_ansi_blocker_split_bs LAYOUT
diff --git a/keyboards/kbdfans/kbd67/hotswap/keymaps/bcat/keymap.c b/keyboards/kbdfans/kbd67/hotswap/keymaps/bcat/keymap.c
deleted file mode 100644
index 22943357b3..0000000000
--- a/keyboards/kbdfans/kbd67/hotswap/keymaps/bcat/keymap.c
+++ /dev/null
@@ -1,28 +0,0 @@
-#include QMK_KEYBOARD_H
-
-enum layer {
- LAYER_DEFAULT,
- LAYER_FUNCTION,
-};
-
-#define LY_FN MO(LAYER_FUNCTION)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Default layer: http://www.keyboard-layout-editor.com/#/gists/dd675b40cc4df2c7bb78847ac29f5988 */
- [LAYER_DEFAULT] = LAYOUT(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_HOME,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGUP,
- KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, LY_FN, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- /* Function layer: http://www.keyboard-layout-editor.com/#/gists/f29128427f674c43777f045e363d1b44 */
- [LAYER_FUNCTION] = LAYOUT(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, _______,
- KC_CAPS, _______, KC_MPLY, KC_VOLU, KC_MSTP, _______, EEP_RST, RESET, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, _______,
- _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_APP, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-};
diff --git a/keyboards/kbdfans/kbd67/hotswap/keymaps/bcat/readme.md b/keyboards/kbdfans/kbd67/hotswap/keymaps/bcat/readme.md
deleted file mode 100644
index 16effc3815..0000000000
--- a/keyboards/kbdfans/kbd67/hotswap/keymaps/bcat/readme.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# bcat's KBD67 hotswap layout
-
-This is a standard 65% keyboard layout, with an HHKB-style (split) backspace
-and media controls in the function layer (centered around the ESDF cluster).
-
-## Default layer
-
-![Default layer layout](https://i.imgur.com/Vdnw2mp.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/dd675b40cc4df2c7bb78847ac29f5988))
-
-## Function layer
-
-![Function layer layout](https://i.imgur.com/Q304GlI.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/f29128427f674c43777f045e363d1b44))
diff --git a/keyboards/kbdfans/kbd67/hotswap/rules.mk b/keyboards/kbdfans/kbd67/hotswap/rules.mk
index 08dd1f6359..7739b69c0e 100644
--- a/keyboards/kbdfans/kbd67/hotswap/rules.mk
+++ b/keyboards/kbdfans/kbd67/hotswap/rules.mk
@@ -31,3 +31,5 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
HD44780_ENABLE = no # Enable support for HD44780 based LCDs
+
+LAYOUTS = 65_ansi_blocker_split_bs
diff --git a/keyboards/kbdfans/kbd67/rev1/rules.mk b/keyboards/kbdfans/kbd67/rev1/rules.mk
index 7e305070ba..8e96199b3d 100644
--- a/keyboards/kbdfans/kbd67/rev1/rules.mk
+++ b/keyboards/kbdfans/kbd67/rev1/rules.mk
@@ -31,3 +31,5 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
HD44780_ENABLE = no # Enable support for HD44780 based LCDs
+
+LAYOUTS = 65_ansi
diff --git a/keyboards/kbdfans/kbd67/rev2/rev2.h b/keyboards/kbdfans/kbd67/rev2/rev2.h
index d4944109ea..dba4349266 100644
--- a/keyboards/kbdfans/kbd67/rev2/rev2.h
+++ b/keyboards/kbdfans/kbd67/rev2/rev2.h
@@ -85,6 +85,8 @@
{ K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \
}
+#define LAYOUT_65_ansi_blocker_split_bs LAYOUT_65_ansi_blocker_splitbs
+
#define LAYOUT_65_iso( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, \
K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \
diff --git a/keyboards/kbdfans/kbd67/rev2/rules.mk b/keyboards/kbdfans/kbd67/rev2/rules.mk
index 8ff62ba428..de55438dd8 100644
--- a/keyboards/kbdfans/kbd67/rev2/rules.mk
+++ b/keyboards/kbdfans/kbd67/rev2/rules.mk
@@ -32,4 +32,4 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
HD44780_ENABLE = no # Enable support for HD44780 based LCDs
-LAYOUTS = 65_ansi 65_iso 65_ansi_blocker
+LAYOUTS = 65_ansi 65_iso 65_ansi_blocker 65_ansi_blocker_split_bs
diff --git a/keyboards/kbdfans/kbd6x/keymaps/konstantin/config.h b/keyboards/kbdfans/kbd6x/keymaps/konstantin/config.h
index 4b511eb848..37f4e42c71 100644
--- a/keyboards/kbdfans/kbd6x/keymaps/konstantin/config.h
+++ b/keyboards/kbdfans/kbd6x/keymaps/konstantin/config.h
@@ -1,3 +1,5 @@
#pragma once
+#define DYNAMIC_KEYMAP_LAYER_COUNT 3
+
#define LAYER_FN
diff --git a/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c b/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c
index 46cc0a1137..304234a3f4 100644
--- a/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c
+++ b/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c
@@ -6,7 +6,7 @@ enum keycodes_keymap {
};
enum layers_keymap {
- L_RCTRL = L_RANGE_KEYMAP,
+ L_RCTRL = LAYERS_KEYMAP,
};
void eeconfig_init_keymap(void) {
diff --git a/keyboards/kbdfans/kbd6x/keymaps/konstantin/rules.mk b/keyboards/kbdfans/kbd6x/keymaps/konstantin/rules.mk
index c75488af62..e2f34468a6 100644
--- a/keyboards/kbdfans/kbd6x/keymaps/konstantin/rules.mk
+++ b/keyboards/kbdfans/kbd6x/keymaps/konstantin/rules.mk
@@ -1,12 +1,19 @@
-BACKLIGHT_ENABLE = no
-BOOTMAGIC_ENABLE = no
+# Generic features
+BOOTMAGIC_ENABLE = lite
COMMAND_ENABLE = yes
CONSOLE_ENABLE = no
EXTRAKEY_ENABLE = yes
-GRAVE_ESC_ENABLE = no
MOUSEKEY_ENABLE = yes
NKRO_ENABLE = yes
-RGBLIGHT_ENABLE = yes
-SPACE_CADET_ENABLE = no
TAP_DANCE_ENABLE = yes
UNICODEMAP_ENABLE = no
+
+# Keyboard-specific features
+BACKLIGHT_ENABLE = no
+RGBLIGHT_ENABLE = yes
+VIA_ENABLE = yes
+
+# Firmware size reduction
+GRAVE_ESC_ENABLE = no
+MAGIC_ENABLE = no
+SPACE_CADET_ENABLE = no
diff --git a/keyboards/kbdfans/kbdpad/mk1/rules.mk b/keyboards/kbdfans/kbdpad/mk1/rules.mk
index dcd7e55405..6b4c1f6bae 100644
--- a/keyboards/kbdfans/kbdpad/mk1/rules.mk
+++ b/keyboards/kbdfans/kbdpad/mk1/rules.mk
@@ -20,5 +20,3 @@ COMMAND_ENABLE = no
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = no # PCB has underglow LEDs, but case doesn't let them show.
WS2812_DRIVER = i2c
-
-OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/keebio/bfo9000/keymaps/abstractkb/keymap.c b/keyboards/keebio/bfo9000/keymaps/abstractkb/keymap.c
index a8348ecfb5..f97f0abf1a 100644
--- a/keyboards/keebio/bfo9000/keymaps/abstractkb/keymap.c
+++ b/keyboards/keebio/bfo9000/keymaps/abstractkb/keymap.c
@@ -15,9 +15,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_MPLY, KC_PSLS, KC_PAST, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MYRGB_TG, KC_PGUP, \
KC_MUTE, KC_PPLS, KC_PMNS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, KC_PGDN, \
KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, \
- KC_P4, KC_P5, KC_P6, KC_BSPACE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_CAPS, KC_PSCR, \
- KC_P1, KC_P2, KC_P3, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, XXXXXXX, KC_INS, \
- KC_P0, KC_PDOT, KC_PENT, TO(_LIST), KC_LCTL, KC_LGUI, KC_LALT, XXXXXXX, KC_SPC, KC_SPC, XXXXXXX, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX \
+ KC_P4, KC_P5, KC_P6, KC_BSPACE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, XXXXXXX, KC_PSCR, \
+ KC_P1, KC_P2, KC_P3, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_CAPS, KC_INS, \
+ KC_P0, KC_PDOT, KC_PENT, KC_LCTL, TO(_LIST), KC_LGUI, KC_LALT, XXXXXXX, KC_SPC, KC_SPC, XXXXXXX, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_NLCK \
),
[_LIST] = LAYOUT( \
@@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, TO(_BASE), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ _______, _______, _______, _______, TO(_BASE), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
diff --git a/keyboards/keebio/viterbi/keymaps/vosechu/config.h b/keyboards/keebio/viterbi/keymaps/vosechu/config.h
new file mode 100644
index 0000000000..0faddd17c2
--- /dev/null
+++ b/keyboards/keebio/viterbi/keymaps/vosechu/config.h
@@ -0,0 +1,41 @@
+/*
+Copyright 2017 Chuck Lauer Vose <vosechu@gmail.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#undef RGBLED_NUM
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 3
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+
+#define RGBLIGHT_SLEEP // Put the keyboard to sleep when USB goes dark
+
+#define LAYOUT_ortho_half_5x7( \
+ L00, L01, L02, L03, L04, L05, L06, \
+ L10, L11, L12, L13, L14, L15, L16, \
+ L20, L21, L22, L23, L24, L25, L26, \
+ L30, L31, L32, L33, L34, L35, L36, \
+ L40, L41, L42, L43, L44, L45, L46 \
+ ) \
+ LAYOUT_ortho_5x14( \
+ L00, L01, L02, L03, L04, L05, L06, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO, \
+ L10, L11, L12, L13, L14, L15, L16, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO, \
+ L20, L21, L22, L23, L24, L25, L26, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO, \
+ L30, L31, L32, L33, L34, L35, L36, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO, \
+ L40, L41, L42, L43, L44, L45, L46, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO \
+ )
diff --git a/keyboards/keebio/viterbi/keymaps/vosechu/keymap.c b/keyboards/keebio/viterbi/keymaps/vosechu/keymap.c
new file mode 100644
index 0000000000..bbaa448574
--- /dev/null
+++ b/keyboards/keebio/viterbi/keymaps/vosechu/keymap.c
@@ -0,0 +1,91 @@
+#include QMK_KEYBOARD_H
+#include "vosechu.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[BASE] = LAYOUT_ortho_half_5x7( // Base layer
+ KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_9 ,
+ ALT_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , TT(TT1) ,
+ CTL_ESC , KC_A , KC_S , KC_D , KC_F , KC_G , TT(TT2) ,
+ KC_F13 , KC_Z , KC_X , KC_C , KC_V , KC_B , TT(TT3) ,
+ KC_MEH , CTL_GRV , ALT_TAB , KC_LALT , MO(LWR) , LFT_BK , SFT_SPC
+),
+[LWR] = LAYOUT_ortho_half_5x7( // EVE layer
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
+ A(KC_LEFT), KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F9 ,
+ SFT_SPC , A(KC_F1), A(KC_F2), A(KC_F3), A(KC_F4), _______ , _______ ,
+ A(KC_RGHT), C(KC_F1), C(KC_F2), C(KC_F3), C(KC_F4), _______ , _______ ,
+ _______ , RESET , _______ , _______ , _LAYER_ , KC_DEL , KC_ENT
+),
+[LFT] = LAYOUT_ortho_half_5x7( // Media
+ _______ , KC_F10 , KC_F11 , KC_F12 , KC_PSCR , KC_SLCK , KC_PAUS ,
+ _______ , KC_F7 , KC_F8 , KC_F9 , KC_INS , KC_HOME , KC_PGUP ,
+ RGB_TOG , KC_F4 , KC_F5 , KC_F6 , KC_DEL , KC_END , KC_PGDN ,
+ _______ , KC_F1 , KC_F2 , KC_F3 , KC_VOLU , KC_VOLD , KC_MUTE ,
+ _______ , _______ , _______ , _______ , PSWD , _LAYER_ , PSWD_ALT
+),
+[TT1] = LAYOUT_ortho_half_5x7( // Override WASD with arrows
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
+ _______ , _______ , KC_UP , _______ , _______ , _______ , _______ ,
+ _______ , KC_LEFT , KC_DOWN , KC_RGHT , _______ , _______ , _______ ,
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
+ _______ , _______ , _______ , _______ , _______ , _______ , _______
+),
+[TT2] = LAYOUT_ortho_half_5x7( // Browser layer
+ C(KC_W) , C(KC_1) , C(KC_T) , C(KC_9) , _______ , _______ , _______ ,
+ WBWSRBK , WTABLFT , KC_UP , WTABRGT , WBWSRFW , _______ , _______ ,
+ KC_ESC , KC_LEFT , KC_DOWN , KC_RGHT , C(KC_R) , _______ , _______ ,
+ _______ , _______ , _______ , _______ , _______ , _______ , TT(T23X),
+ _______ , _______ , _______ , _______ , _______ , _______ , _______
+),
+[TT3] = LAYOUT_ortho_half_5x7( // OS X override layer
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
+ _______ , _______ , _______ , _______ , _______ , _______ , TT(T23X),
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
+ _______ , _______ , _______ , KC_LGUI , _______ , _______ , _______
+),
+[T23X] = LAYOUT_ortho_half_5x7( // Browser layer
+ G(KC_W) , G(KC_1) , G(KC_T) , G(KC_9) , _______ , SLACKTB , _______ ,
+ BWSR_BK , TAB_LFT , KC_UP , TAB_RGT , BWSR_FW , SLACKUP , _______ ,
+ KC_ESC , KC_LEFT , KC_DOWN , KC_RGHT , G(KC_R) , SLACKDN , _______ ,
+ _______ , _______ , KC_Q , KC_J , KC_K , _______ , _______ ,
+ _______ , _______ , _______ , KC_LGUI , _______ , _______ , _______
+),
+// [_EMPTY] = LAYOUT(
+// _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
+// _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
+// _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
+// _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
+// _______ , _______ , _______ , _______ , _______ , _______ , _______
+// ),
+};
+
+void keyboard_post_init_user(void) {
+ // Call the post init code.
+ rgblight_enable_noeeprom(); // enables Rgb, without saving settings
+ rgblight_mode_noeeprom(0);
+ rgblight_sethsv_noeeprom(0, 0, 0);
+}
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ switch (get_highest_layer(state)) {
+ case TT1:
+ rgblight_sethsv_noeeprom(HSV_BLUE);
+ break;
+ case TT2:
+ rgblight_sethsv_noeeprom(HSV_PURPLE);
+ break;
+ case T23X:
+ rgblight_sethsv_noeeprom(HSV_GOLD);
+ break;
+ case TT3:
+ rgblight_sethsv_noeeprom(HSV_GREEN);
+ break;
+ default: // for any other layers, or the default layer
+ rgblight_sethsv_noeeprom(0, 0, 0);
+ break;
+ }
+
+ return state;
+}
diff --git a/keyboards/keebio/viterbi/keymaps/vosechu/rules.mk b/keyboards/keebio/viterbi/keymaps/vosechu/rules.mk
new file mode 100644
index 0000000000..1e3cebb145
--- /dev/null
+++ b/keyboards/keebio/viterbi/keymaps/vosechu/rules.mk
@@ -0,0 +1 @@
+RGBLIGHT_ENABLE = yes
diff --git a/keyboards/keycapsss/plaid_pad/rules.mk b/keyboards/keycapsss/plaid_pad/rules.mk
index f62833ca6b..08ad3555d6 100644
--- a/keyboards/keycapsss/plaid_pad/rules.mk
+++ b/keyboards/keycapsss/plaid_pad/rules.mk
@@ -11,10 +11,6 @@ MCU = atmega328p
# ATmega328P USBasp
BOOTLOADER = USBasp
-# disable debug code
-OPT_DEFS = -DDEBUG_LEVEL=0
-
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/kinesis/keymaps/xyverz/keymap.c b/keyboards/kinesis/keymaps/xyverz/keymap.c
index 18fdb2e08f..ffc4459547 100644
--- a/keyboards/kinesis/keymaps/xyverz/keymap.c
+++ b/keyboards/kinesis/keymaps/xyverz/keymap.c
@@ -28,15 +28,15 @@ enum custom_keycodes { DVORAK = SAFE_RANGE, QWERTY, COLEMAK, KEYPAD };
Dvorak layer:
,-------------------------------------------.,-------------------------------------------.
- | ] | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | [ |
+ | = | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | \ |
|--------+------+------+------+------+------||------+------+------+------+------+--------|
- | Tab | ' | , | . | P | Y || F | G | C | R | L | \ |
+ | Tab | ' | , | . | P | Y || F | G | C | R | L | / |
|--------+------+------+------+------+------||------+------+------+------+------+--------|
| CapsLk | A | O | E | U | I || D | H | T | N | S | - |
|--------+------+------+------+------+------||------+------+------+------+------+--------|
| LShift | Z | X | C | V | X || B | M | W | V | Z | RShift |
`--------+------+------+------+------+------'`------+------+------+------+------+--------'
- | ` | INS | Left | Rght | | Up | Dn | / | = |
+ | ` | INS | Left | Rght | | Up | Dn | [ | ] |
`---------------------------' `---------------------------'
,--------------.,--------------.
| LCtl | LAlt || RGUI | RCtl |
@@ -112,7 +112,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_DVORAK] = LAYOUT (
// Left Hand
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8,
- KC_RBRC, KC_1, KC_2, KC_3, KC_4, KC_5,
+ KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5,
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y,
KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I,
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X,
@@ -124,11 +124,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Right Hand
KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, TG(_KEYPAD), RESET,
- KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC,
- KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS,
+ KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
+ KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
- KC_UP, KC_DOWN, KC_SLSH, KC_EQL,
+ KC_UP, KC_DOWN, KC_LBRC, KC_RBRC,
// Right Thumb
KC_RGUI, KC_RCTL,
KC_PGUP,
diff --git a/keyboards/kinesis/keymaps/xyverz/readme.md b/keyboards/kinesis/keymaps/xyverz/readme.md
index 702af4474a..f0f55a478b 100644
--- a/keyboards/kinesis/keymaps/xyverz/readme.md
+++ b/keyboards/kinesis/keymaps/xyverz/readme.md
@@ -2,9 +2,7 @@
## About this keymap:
-The Dvorak layout shown here stems from my early Kinesis years, using the Contour PS/2 with a Dvorak software layout. Because of this, the RBRC and LBRC were on opposite sides of the board in the corner keys. I've decided to continue using this layout with my QMK Kinesis.
-
-The QWERTY layout shown here is based entirely on the Kinesis Advantage layout. The Colemak layout is merely an adaptation of that.
+This is is pretty much a stock Advantage layout for Dvorak, with a bit of rearranging of certain keys. The QWERTY layout shown here is based entirely on the Kinesis Advantage layout. The Colemak layout is merely an adaptation of that.
I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar to the default Planck layouts.
@@ -12,6 +10,8 @@ Depending on the OS, most of the LEDs are now working in this keymap, but I stil
Removed the Media layer 2018-12-07
+Updated Dvorak layer to move slash to a position relative to my other 5x12 ortholinear keyboards 2020-05-04
+
## Still to do:
* Figure out how to make the Numpad LED work properly.
@@ -27,15 +27,15 @@ Removed the Media layer 2018-12-07
### Layer 0: Dvorak layer
,-------------------------------------------.,-------------------------------------------.
- | ] | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | [ |
+ | = | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | \ |
|--------+------+------+------+------+------||------+------+------+------+------+--------|
- | Tab | ' | , | . | P | Y || F | G | C | R | L | \ |
+ | Tab | ' | , | . | P | Y || F | G | C | R | L | / |
|--------+------+------+------+------+------||------+------+------+------+------+--------|
| CapsLk | A | O | E | U | I || D | H | T | N | S | - |
|--------+------+------+------+------+------||------+------+------+------+------+--------|
| LShift | Z | X | C | V | X || B | M | W | V | Z | RShift |
`--------+------+------+------+------+------'`------+------+------+------+------+--------'
- | ` | INS | Left | Rght | | Up | Dn | / | = |
+ | ` | INS | Left | Rght | | Up | Dn | [ | ] |
`---------------------------' `---------------------------'
,--------------.,--------------.
| LCtl | LAlt || RGUI | RCtl |
diff --git a/keyboards/kingly_keys/romac_plus/keymaps/via/keymap.c b/keyboards/kingly_keys/romac_plus/keymaps/via/keymap.c
new file mode 100644
index 0000000000..dccaf2e81a
--- /dev/null
+++ b/keyboards/kingly_keys/romac_plus/keymaps/via/keymap.c
@@ -0,0 +1,17 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ KC_7, KC_8, KC_9,
+ KC_4, KC_5, KC_6,
+ KC_1, KC_2, KC_3,
+ MO(1), KC_0, KC_DOT
+ ),
+
+ [1] = LAYOUT(
+ RGB_MOD, KC_HOME, KC_PGUP,
+ KC_TRNS, KC_END, KC_PGDN,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_ENT
+ )
+};
diff --git a/keyboards/kingly_keys/romac_plus/keymaps/via/rules.mk b/keyboards/kingly_keys/romac_plus/keymaps/via/rules.mk
new file mode 100644
index 0000000000..1e5b99807c
--- /dev/null
+++ b/keyboards/kingly_keys/romac_plus/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/lattice60/rules.mk b/keyboards/lattice60/rules.mk
index 2a1a529660..66cede7959 100644
--- a/keyboards/lattice60/rules.mk
+++ b/keyboards/lattice60/rules.mk
@@ -14,9 +14,6 @@ BOOTLOADER = USBasp
# Processor frequency
F_CPU = 12000000
-# disable the debugging code
-OPT_DEFS = -DDEBUG_LEVEL=0
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/le_chiffre/config.h b/keyboards/le_chiffre/config.h
new file mode 100644
index 0000000000..1ab07a6450
--- /dev/null
+++ b/keyboards/le_chiffre/config.h
@@ -0,0 +1,46 @@
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0xD645
+#define DEVICE_VER 0x0001
+#define MANUFACTURER tominabox1
+#define PRODUCT Le Chiffre
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 10
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { B3, D4, F1, C6 }
+#define MATRIX_COL_PINS { F4, F5, B0, B2, B1, B4, D7, C7, D2, F7 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION ROW2COL
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* Define encoder pads */
+#define ENCODERS_PAD_A { D5 }
+#define ENCODERS_PAD_B { D3 }
+
+/* #define RGB_DI_PIN F0
+ #define RGBLED_NUM 1 */
diff --git a/keyboards/le_chiffre/info.json b/keyboards/le_chiffre/info.json
new file mode 100644
index 0000000000..eda303ffc1
--- /dev/null
+++ b/keyboards/le_chiffre/info.json
@@ -0,0 +1,15 @@
+{
+ "keyboard_name": "le_chiffre",
+ "url": "",
+ "maintainer": "tominabox1",
+ "width": 11,
+ "height": 4,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Rotary", "x":5, "y":0, "w":1}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0},
+ {"label":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1},
+ {"label":";", "x":10, "y":1}, {"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"B", "x":4, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":"<", "x":8, "y":2}, {"label":">", "x":9, "y":2}, {"label":"?", "x":10, "y":2},
+ {"label":"", "x":1.75, "y":3, "w":1.25}, {"label":"", "x":3, "y":3, "w":2}, {"label":"", "x":6, "y":3, "w":2}, {"label":"", "x":8, "y":3, "w":1.25}]
+ }
+ }
+}
diff --git a/keyboards/le_chiffre/keymaps/default/keymap.c b/keyboards/le_chiffre/keymaps/default/keymap.c
new file mode 100644
index 0000000000..d5ca6969d5
--- /dev/null
+++ b/keyboards/le_chiffre/keymaps/default/keymap.c
@@ -0,0 +1,142 @@
+#include QMK_KEYBOARD_H
+
+enum layers{
+ _BASE,
+ _NUM_SYM,
+ _NAV
+};
+
+#define KC_NUM_SPC LT(_NUM_SYM, KC_SPC)
+#define KC_GA LGUI_T(KC_A)
+#define KC_AS LALT_T(KC_S)
+#define KC_CD LCTL_T(KC_D)
+#define KC_SF LSFT_T(KC_F)
+#define KC_SJ RSFT_T(KC_J)
+#define KC_CK RCTL_T(KC_K)
+#define KC_AL RALT_T(KC_L)
+#define KC_GSCLN RGUI_T(KC_SCLN)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BASE] = LAYOUT(
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MPLY, KC_Y, KC_U, KC_I, KC_O, KC_P,
+ KC_GA, KC_AS, KC_CD, KC_SF, KC_G, KC_H, KC_SJ, KC_CK, KC_AL, KC_GSCLN,
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
+ KC_LCTL, KC_ENT, KC_NUM_SPC, MO(_NAV)
+ ),
+
+ [_NUM_SYM] = LAYOUT(
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0,
+ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS,
+ KC_BSLS,KC_LCBR, KC_LBRC, KC_LPRN, KC_UNDS, KC_RPRN, KC_RBRC, KC_RCBR, KC_DOT, KC_GRV,
+ KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+ [_NAV] = LAYOUT(
+ RESET, _______, AG_NORM, AG_SWAP, DEBUG, KC_TRNS, KC_GRV, KC_PGDN, KC_UP, KC_PGUP, KC_SCLN,
+ RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END,
+ RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_NO, KC_MINS, KC_RO, KC_COMM, KC_DOT, KC_BSLS,
+ KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+};
+
+void encoder_update_user(uint8_t index, bool clockwise) {
+ if (index == 0) {
+ if (clockwise) {
+ tap_code(KC_MNXT);
+ } else {
+ tap_code(KC_MPRV);
+ }
+ }
+}
+
+#ifdef OLED_DRIVER_ENABLE
+oled_rotation_t oled_init_user(oled_rotation_t rotation) {
+ return OLED_ROTATION_90; // flips the display 180 degrees if offhand
+}
+
+void oled_task_user(void) {
+ static const char PROGMEM base_logo[] = {
+ // 'base', 32x128px
+ 0x00, 0x00, 0x80, 0x7c, 0x02, 0x01, 0x01, 0x80, 0x00, 0xe0, 0x50, 0x28, 0x98, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x80, 0x40, 0x41, 0x41, 0x41, 0xc0, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x3e, 0x41, 0x40, 0x40, 0x40, 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x10, 0x08, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x07, 0x02, 0x39, 0x27, 0x10, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x10, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x13, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xfc,
+ 0x22, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x60, 0x1f, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x90, 0x7e, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40,
+ 0x30, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x08, 0xe4, 0x1c, 0x08, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x54, 0x4a, 0x26, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ };
+
+static const char PROGMEM base_caps_logo[] = {
+ // 'caps', 32x128px
+ 0x00, 0x00, 0x80, 0x7c, 0x02, 0x01, 0x01, 0x80, 0x00, 0xe0, 0x50, 0x28, 0x98, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x80, 0x40, 0x41, 0x41, 0x41, 0xc0, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x3e, 0x41, 0x40, 0x40, 0x40, 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x10, 0x08, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x07, 0x02, 0x39, 0x27, 0x10, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x10, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x13, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xfc,
+ 0x22, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x60, 0x1f, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x90, 0x7e, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40,
+ 0x30, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x08, 0xe4, 0x1c, 0x08, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x54, 0x4a, 0x26, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x10, 0x10, 0x30, 0x00, 0x00, 0x80,
+ 0x80, 0x80, 0x00, 0x00, 0x80, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x1e, 0x11, 0x09, 0x08,
+ 0x1e, 0x11, 0x81, 0x7d, 0x13, 0x11, 0x08, 0x17, 0x11, 0x12, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+ switch (get_highest_layer(layer_state)) {
+ case _BASE:
+ if (host_keyboard_led_state().caps_lock) {
+ oled_write_raw_P(base_caps_logo, sizeof(base_caps_logo));
+ } else {
+ oled_write_raw_P(base_logo, sizeof(base_logo));
+ }
+ break;
+ default:
+ oled_write_raw_P(base_logo, sizeof(base_logo));
+ }
+}
+#endif
diff --git a/keyboards/le_chiffre/keymaps/default/readme.md b/keyboards/le_chiffre/keymaps/default/readme.md
new file mode 100644
index 0000000000..29f2d31f6f
--- /dev/null
+++ b/keyboards/le_chiffre/keymaps/default/readme.md
@@ -0,0 +1 @@
+# Default Le Chiffre Keymap
diff --git a/keyboards/le_chiffre/le_chiffre.c b/keyboards/le_chiffre/le_chiffre.c
new file mode 100644
index 0000000000..2f28911b45
--- /dev/null
+++ b/keyboards/le_chiffre/le_chiffre.c
@@ -0,0 +1 @@
+#include "le_chiffre.h"
diff --git a/keyboards/le_chiffre/le_chiffre.h b/keyboards/le_chiffre/le_chiffre.h
new file mode 100644
index 0000000000..a95c0f262f
--- /dev/null
+++ b/keyboards/le_chiffre/le_chiffre.h
@@ -0,0 +1,18 @@
+#pragma once
+
+#include "quantum.h"
+
+#define XXX KC_NO
+
+#define LAYOUT( \
+ K00, K01, K02, K03, K04, K38, K05, K06, K07, K08, K09, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
+ K32, K34, K35, K37 \
+) \
+{ \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09 }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19 }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29 }, \
+ { XXX, XXX, K32, XXX, K34, K35, XXX, K37, K38, XXX } \
+}
diff --git a/keyboards/le_chiffre/readme.md b/keyboards/le_chiffre/readme.md
new file mode 100644
index 0000000000..ead6d88b3e
--- /dev/null
+++ b/keyboards/le_chiffre/readme.md
@@ -0,0 +1,15 @@
+# Le Chiffre
+
+![Le Chiffre](https://i.imgur.com/X1WsUmdl.png)
+
+Le Chiffre (ironically, "the number" in French is a 30% keyboard designed by tominabox1. The purpose of the board is to provide a platform for MX and Choc ergo in one package for when ones wrists need a break. The board supports an RGB LED strip with DI on port F0. The board is also fitted with support for run-of-the-mill .91" OLED and EC11 rotary encoder.
+
+* Keyboard Maintainer: [TJ Campie](https://github.com/tominabox1)
+* Hardware Supported: Le Chiffre (source not available at this time)
+* Hardware Availability: Bring your own case.
+
+Make example for this keyboard (after setting up your build environment):
+
+ make le_chiffre:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/le_chiffre/rules.mk b/keyboards/le_chiffre/rules.mk
new file mode 100644
index 0000000000..d9d44e06e6
--- /dev/null
+++ b/keyboards/le_chiffre/rules.mk
@@ -0,0 +1,22 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = atmel-dfu
+
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+NKRO_ENABLE = yes # USB Nkey Rollover
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+TAP_DANCE_ENABLE = no
+ENCODER_ENABLE = yes
+OLED_DRIVER_ENABLE = no
diff --git a/keyboards/lily58/ssd1306.h b/keyboards/lily58/ssd1306.h
index ea8c923280..0ca093093a 100755
--- a/keyboards/lily58/ssd1306.h
+++ b/keyboards/lily58/ssd1306.h
@@ -2,7 +2,6 @@
#include <stdbool.h>
#include <stdio.h>
-#include "pincontrol.h"
#include "action.h"
enum ssd1306_cmds {
@@ -88,4 +87,4 @@ void matrix_write_ln(struct CharacterMatrix *matrix, const char *data);
void matrix_write_P(struct CharacterMatrix *matrix, const char *data);
void matrix_render(struct CharacterMatrix *matrix);
-bool process_record_gfx(uint16_t keycode, keyrecord_t *record); \ No newline at end of file
+bool process_record_gfx(uint16_t keycode, keyrecord_t *record);
diff --git a/keyboards/maartenwut/wasdat/keymaps/konstantin/config.h b/keyboards/maartenwut/wasdat/keymaps/konstantin/config.h
index 3c2583e2d4..1d12c7db37 100644
--- a/keyboards/maartenwut/wasdat/keymaps/konstantin/config.h
+++ b/keyboards/maartenwut/wasdat/keymaps/konstantin/config.h
@@ -1,4 +1,6 @@
#pragma once
+#define DYNAMIC_KEYMAP_LAYER_COUNT 3
+
#define LAYER_FN
#define LAYER_NUMPAD
diff --git a/keyboards/maartenwut/wasdat/keymaps/konstantin/rules.mk b/keyboards/maartenwut/wasdat/keymaps/konstantin/rules.mk
index c3a73fd845..f70005d3f6 100644
--- a/keyboards/maartenwut/wasdat/keymaps/konstantin/rules.mk
+++ b/keyboards/maartenwut/wasdat/keymaps/konstantin/rules.mk
@@ -1,11 +1,17 @@
-BACKLIGHT_ENABLE = no
-BOOTMAGIC_ENABLE = no
+# Generic features
+BOOTMAGIC_ENABLE = lite
COMMAND_ENABLE = yes
CONSOLE_ENABLE = yes
EXTRAKEY_ENABLE = yes
-GRAVE_ESC_ENABLE = no
MOUSEKEY_ENABLE = yes
NKRO_ENABLE = yes
-SPACE_CADET_ENABLE = no
TAP_DANCE_ENABLE = yes
UNICODEMAP_ENABLE = yes
+
+# Keyboard-specific features
+VIA_ENABLE = yes
+
+# Firmware size reduction
+GRAVE_ESC_ENABLE = no
+MAGIC_ENABLE = no
+SPACE_CADET_ENABLE = no
diff --git a/keyboards/massdrop/ctrl/info.json b/keyboards/massdrop/ctrl/info.json
index 2212540e52..5e7f92f5bb 100644
--- a/keyboards/massdrop/ctrl/info.json
+++ b/keyboards/massdrop/ctrl/info.json
@@ -83,9 +83,9 @@
{"label":"FORWARD SLASH", "x":11.25, "y":4.5},
{"label":"RIGHT SHIFT", "x":12.25, "y":4.5, "w":2.75},
{"label":"UP ARROW", "x":16.5, "y":4.5},
- {"label":"LEFT CTRL", "x":0.005, "y":5.5, "w":1.24},
- {"label":"LEFT WIN", "x":1.255, "y":5.5, "w":1.24},
- {"label":"LEFT ALT", "x":2.505, "y":5.5, "w":1.24},
+ {"label":"LEFT CTRL", "x":0.005, "y":5.5, "w":1.25},
+ {"label":"LEFT WIN", "x":1.255, "y":5.5, "w":1.25},
+ {"label":"LEFT ALT", "x":2.505, "y":5.5, "w":1.25},
{"label":"SPACEBAR", "x":3.75, "y":5.5, "w":6.25},
{"label":"RIGHT ALT", "x":10, "y":5.5, "w":1.25},
{"label":"FN", "x":11.25, "y":5.5, "w":1.25},
diff --git a/keyboards/maxr1998/phoebe/config.h b/keyboards/maxr1998/phoebe/config.h
index 2be26c6fdb..e530bc46ef 100644
--- a/keyboards/maxr1998/phoebe/config.h
+++ b/keyboards/maxr1998/phoebe/config.h
@@ -57,6 +57,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_EFFECT_CHRISTMAS
#define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1
+/* Leader key setup */
+#define LEADER_PER_KEY_TIMING
+#define LEADER_TIMEOUT 250
+
/*
* Feature disable options
* These options are also useful to firmware size reduction.
diff --git a/keyboards/maxr1998/phoebe/keymaps/default/keymap.c b/keyboards/maxr1998/phoebe/keymaps/default/keymap.c
index b1a37a2f19..11df63bb17 100644
--- a/keyboards/maxr1998/phoebe/keymaps/default/keymap.c
+++ b/keyboards/maxr1998/phoebe/keymaps/default/keymap.c
@@ -1,6 +1,7 @@
#include QMK_KEYBOARD_H
#include "keymap_german.h"
+#include "sendstring_german.h"
enum layers {
_QWERTZ,
@@ -16,40 +17,40 @@ enum layers {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Qwertz
- * ,-----------------------------------------------------------------------------------.
- * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ? |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ^ ° | Q | W | E | R | T | Z | U | I | O | P | Bspc |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | A | S | D | F | G | H | J | K | L | +* ~ | Enter|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Y | X | C | V | B | N | M | , | . | Up | Shift|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | Sup | Alt | Alt | SpCh | Space | AltGr| Fun | Left | Down | Right|
- * `-----------------------------------------------------------------------------------'
+/* QWERTZ
+ * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
+ * │ Esc │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ? │
+ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ ^ ° │ Q │ W │ E │ R │ T │ Z │ U │ I │ O │ P │Bkspc│
+ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ Tab │ A │ S │ D │ F │ G │ H │ J │ K │ L │ +*~ │Enter│
+ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ * │Shift│ Y │ X │ C │ V │ B │ N │ M │ , │ . │ ↑ │Shift│
+ * ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ Ctl │ Sup │ Alt │LeadK│SpcCh│ Space │AltGr│ Fun │ ← │ ↓ │ → │
+ * └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┘
*/
[_QWERTZ] = LAYOUT(
KC_ESC, DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, DE_7, DE_8, DE_9, DE_0, DE_QST,
KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, DE_PLUS, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSPC,
- KC_LCTL, KC_LGUI, KC_LALT, KC_LALT, KC_SC, KC_SPC, KC_ALGR, KC_FN, KC_LEFT, KC_DOWN, KC_RGHT
+ KC_LCTL, KC_LGUI, KC_LALT, KC_LEAD, KC_SC, KC_SPC, KC_ALGR, KC_FN, KC_LEFT, KC_DOWN, KC_RGHT
),
/* Special characters
- * ,-----------------------------------------------------------------------------------.
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ´ ` | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | #' | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | <> | | | | | | | | | | -_ | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | ---- | ---- | | | ---- | | | |
- * `-----------------------------------------------------------------------------------'
- */
+ * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
+ * │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ ´ ` │ │ │ │ │ │ │ │ │ │ │ │
+ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ │ │ │ │ │ │ │ │ │ │ # ' │ │
+ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ │ <>| │ │ │ │ │ │ │ │ │ - _ │ │
+ * ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ │ │ │ X │ │ │ │ X │ │ │ │
+ * └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┘
+*/
[_SC] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
DE_ACUT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -59,17 +60,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
/* Function layer
- * ,-----------------------------------------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F10 | F11 | F12 |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Ü | F9 | Ö | | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Lock | Ä | ß | | | GAME | | RGBS | RGBB | RGBS | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | RGBH-| RGBT | RGBH+| PgUp | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | ---- | ---- | | ---- | ---- | Home | PgDn | End |
- * `-----------------------------------------------------------------------------------'
+ * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
+ * │ │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F10 │ F11 │ F12 │
+ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ │ │ │ │ │ │ │ Ü │ F9 │ Ö │ │ Del │
+ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ Lck │ Ä │ ß │ │ │ GAME│ │RGB S│RGB B│RGB S│ │ │
+ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ │ │ │ │ │ │ │RGBH-│RGB T│RGBH+│ Pg↑ │ │
+ * ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ X │ │ X │ X │ X │ │ X │ X │ Home│ Pg↓ │ End │
+ * └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┘
*/
[_FN] = LAYOUT(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F10, KC_F11, KC_F12,
@@ -80,24 +81,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
/* Gaming
- * ,-----------------------------------------------------------------------------------.
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Space| | | | | | | Leave| | | |
- * `-----------------------------------------------------------------------------------'
- */
+ * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
+ * │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┤
+ * │Space│ │ │ │ │ Ctl │ │Leave│ │ │ │
+ * └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┘
+*/
[_GAMING] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_SPC, XXXXXXX, _______, _______, _______, _______, _______, G_0, _______, _______, _______
+ KC_SPC, XXXXXXX, _______, _______, _______, KC_LCTL, _______, G_0, _______, _______, _______
)
};
@@ -128,3 +129,19 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
};
+
+LEADER_EXTERNS();
+
+void matrix_scan_user(void) {
+ LEADER_DICTIONARY() {
+ leading = false;
+ leader_end();
+
+ SEQ_TWO_KEYS(KC_G, KC_P) {
+ SEND_STRING("git push");
+ }
+ SEQ_THREE_KEYS(KC_G, KC_F, KC_P) {
+ SEND_STRING("git push --force-with-lease");
+ }
+ }
+}
diff --git a/keyboards/maxr1998/phoebe/rules.mk b/keyboards/maxr1998/phoebe/rules.mk
index 335e575364..f60274e515 100644
--- a/keyboards/maxr1998/phoebe/rules.mk
+++ b/keyboards/maxr1998/phoebe/rules.mk
@@ -29,5 +29,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
KEY_LOCK_ENABLE = yes
+LEADER_ENABLE = yes # Enable leader key
API_SYSEX_ENABLE = no
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/maxr1998/pulse4k/config.h b/keyboards/maxr1998/pulse4k/config.h
index d1bfaf3006..078b91499f 100644
--- a/keyboards/maxr1998/pulse4k/config.h
+++ b/keyboards/maxr1998/pulse4k/config.h
@@ -1,19 +1,19 @@
/*
-Copyright (C) 2012-2019 Jun Wako <wakojun@gmail.com>, Maxr1998 <max.rumpf1998@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
+ * Copyright (C) 2019-2020 Maxr1998 <max.rumpf1998@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
#pragma once
diff --git a/keyboards/maxr1998/pulse4k/keymaps/default/keymap.c b/keyboards/maxr1998/pulse4k/keymaps/default/keymap.c
index 67331235ba..46de247aae 100644
--- a/keyboards/maxr1998/pulse4k/keymaps/default/keymap.c
+++ b/keyboards/maxr1998/pulse4k/keymaps/default/keymap.c
@@ -1,26 +1,28 @@
/*
-Copyright (C) 2019 Maxr1998 <max.rumpf1998@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
+ * Copyright (C) 2019-2020 Maxr1998 <max.rumpf1998@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
#include QMK_KEYBOARD_H
enum layers {
- DEFAULT
+ DEFAULT
};
+const uint16_t PROGMEM led_adjust_combo[] = {KC_LEFT, KC_RGHT, COMBO_END};
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[DEFAULT] = {
{ KC_END, KC_UP, KC_MUTE },
diff --git a/keyboards/clueboard/2x1800/keymaps/mouseboard_left/config.h b/keyboards/maxr1998/pulse4k/keymaps/maxr1998/keymap.c
index 152e2f1487..4ef9779010 100644
--- a/keyboards/clueboard/2x1800/keymaps/mouseboard_left/config.h
+++ b/keyboards/maxr1998/pulse4k/keymaps/maxr1998/keymap.c
@@ -1,4 +1,5 @@
-/* Copyright 2017 Zach White <skullydazed@gmail.com>
+/*
+ * Copyright (C) 2020 Maxr1998 <max.rumpf1998@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,8 +15,21 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#pragma once
+#include QMK_KEYBOARD_H
-#include "config_common.h"
+enum layers {
+ DEFAULT
+};
-// place overrides here
+const uint16_t PROGMEM led_adjust_combo[] = {KC_F22, KC_F24, COMBO_END};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [DEFAULT] = {
+ { KC_F20, KC_F21, KC_MUTE },
+ { KC_F22, KC_F23, KC_F24 }
+ }
+};
+
+void encoder_one_update(bool clockwise) {
+ tap_code(!clockwise ? KC_F18 : KC_F19);
+}
diff --git a/keyboards/maxr1998/pulse4k/pulse4k.c b/keyboards/maxr1998/pulse4k/pulse4k.c
index 2ec9dca739..61a18af743 100644
--- a/keyboards/maxr1998/pulse4k/pulse4k.c
+++ b/keyboards/maxr1998/pulse4k/pulse4k.c
@@ -1,19 +1,19 @@
/*
-Copyright (C) 2019 Maxr1998 <max.rumpf1998@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
+ * Copyright (C) 2019-2020 Maxr1998 <max.rumpf1998@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
#include "pulse4k.h"
#include "rgblight.h"
@@ -22,7 +22,7 @@ enum combo_events {
LED_ADJUST
};
-const uint16_t PROGMEM led_adjust_combo[] = {KC_LEFT, KC_RGHT, COMBO_END};
+extern const uint16_t PROGMEM led_adjust_combo[3];
combo_t key_combos[COMBO_COUNT] = {
[LED_ADJUST] = COMBO_ACTION(led_adjust_combo)
@@ -30,10 +30,6 @@ combo_t key_combos[COMBO_COUNT] = {
bool led_adjust_active = false;
-void matrix_init_kb(void) {
- matrix_init_user();
-}
-
void process_combo_event(uint8_t combo_index, bool pressed) {
if (combo_index == LED_ADJUST) {
led_adjust_active = pressed;
@@ -61,17 +57,9 @@ void encoder_update_kb(uint8_t index, bool clockwise) {
}
__attribute__((weak)) void encoder_one_update(bool clockwise) {
- if (clockwise) {
- tap_code(KC_PGDN);
- } else {
- tap_code(KC_PGUP);
- }
+ tap_code(!clockwise ? KC_PGUP : KC_PGDN);
}
__attribute__((weak)) void encoder_two_update(bool clockwise) {
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
+ tap_code(!clockwise ? KC_VOLD : KC_VOLU);
}
diff --git a/keyboards/maxr1998/pulse4k/pulse4k.h b/keyboards/maxr1998/pulse4k/pulse4k.h
index 7c34870d69..cc0a373b66 100644
--- a/keyboards/maxr1998/pulse4k/pulse4k.h
+++ b/keyboards/maxr1998/pulse4k/pulse4k.h
@@ -1,19 +1,19 @@
/*
-Copyright (C) 2019 Maxr1998 <max.rumpf1998@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
+ * Copyright (C) 2019-2020 Maxr1998 <max.rumpf1998@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
#pragma once
diff --git a/keyboards/mechlovin/adelais/adelais.c b/keyboards/mechlovin/adelais/adelais.c
new file mode 100644
index 0000000000..c4676007ef
--- /dev/null
+++ b/keyboards/mechlovin/adelais/adelais.c
@@ -0,0 +1,69 @@
+/* Copyright 2020 Team Mechlovin'
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "adelais.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ //Key Matrix to LED Index
+ {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16},
+ {18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0},
+ {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, NO_LED, 45, 17},
+ {46, NO_LED, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58, 60, 32},
+ {61, NO_LED, 62, NO_LED, 63, NO_LED, 64, NO_LED, 65, NO_LED, 66, NO_LED, NO_LED, 57, 67}
+}, {
+ //LED Index to Physical Positon
+ {0,0}, { 17, 0}, { 34, 0 }, { 51, 0 }, { 69, 0}, { 86, 0}, {100, 0}, {103, 0}, { 120, 0}, { 138, 0}, { 155, 0}, { 172, 0}, { 189, 0}, {207, 0}, {215, 0}, {223, 0}, {224, 0},
+ {0,16}, { 17, 16}, { 34,16 }, { 51,16 }, { 69,16}, { 86,16}, {103,16}, { 120,16}, { 138,16}, { 155,16}, { 172,16}, { 189,16}, {207, 16}, {215, 16}, {224,16},
+ {0,32}, { 17, 32}, { 34,32 }, { 51,32 }, { 69,32}, { 86,32}, {103,32}, { 120,32}, { 138,32}, { 155,32}, { 172,32}, { 189,32}, {207, 32}, {224,32},
+ { 17, 48}, { 34,48 }, { 51,48 }, { 69,48}, { 86,48}, {103,48}, { 120,48}, { 138,48}, { 155,48}, { 172,48}, { 189,48}, {207, 48}, {215, 48}, {224,48}, {224,48},
+ { 17, 64}, { 51,64 }, { 86,64}, { 103,64}, { 138,64}, { 172,64}, {224, 64},
+ {100,0}, { 69,0}, { 24, 0}, { 0,3}, { 0,16}, { 0,32}, { 0,51}, { 15,64 }, { 34,64}, { 69,64}, { 103,64}, {110,64}, { 120,64}, { 155,64}, { 189,64}, { 192,64}, { 224,58}, { 224,32}, { 224,16}, { 224,0}, { 207,0}, { 172,0}, { 138,0},
+}, {
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+} };
+#endif
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+
+ matrix_init_user();
+ led_init_ports();
+}
+
+void led_init_ports(void) {
+ setPinOutput(B2);
+ writePinLow(B2);
+ setPinOutput(C15);
+ writePinLow(C15);
+ setPinOutput(B9);
+ writePinLow(B9);
+}
+
+bool led_update_kb(led_t led_state) {
+ if(led_update_user(led_state)) {
+ writePin(B2, led_state.caps_lock);
+ writePin(B9, led_state.scroll_lock);
+ writePin(C12, led_state.num_lock);
+ }
+
+ return true;
+}
diff --git a/keyboards/mechlovin/adelais/adelais.h b/keyboards/mechlovin/adelais/adelais.h
new file mode 100644
index 0000000000..d28502da26
--- /dev/null
+++ b/keyboards/mechlovin/adelais/adelais.h
@@ -0,0 +1,33 @@
+/* Copyright 2020 Team Mechlovin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT_all( \
+ K1E, K00, K01, K02, K03, K04, K05, K06, K07,K08,K09, K0A, K0B, K0C, K0D, K0E,\
+ K2E, K10, K11, K12, K13, K14, K15, K16,K17,K18, K19, K1A, K1B, K1C, K1D,\
+ K3E, K20, K21, K22, K23, K24, K25, K26,K27,K28, K29, K2A, K2B, K2D,\
+ K30, K32, K33, K34, K35, K36, K37,K38,K39, K3A, K3B, K3D, K3C, K4D,\
+ K40, K42, K44, K46, K48, K4A, K4E \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, K2E }, \
+ { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
+ { K40, KC_NO, K42, KC_NO, K44, KC_NO, K46, KC_NO, K48, KC_NO, K4A, KC_NO, KC_NO, K4D, K4E }, \
+}
diff --git a/keyboards/mechlovin/adelais/config.h b/keyboards/mechlovin/adelais/config.h
new file mode 100644
index 0000000000..9ec688aef8
--- /dev/null
+++ b/keyboards/mechlovin/adelais/config.h
@@ -0,0 +1,46 @@
+/*
+Copyright 2020 Team Mechlovin
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x4D4C // "ML"
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Team.Mechlovin
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 15
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { B1, A0, C13, A1, A2}
+#define MATRIX_COL_PINS { A10, A9, A8, B15, B14, B13, B12, B11, B10, B8, B4, B5, B3, C14, A15 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
diff --git a/keyboards/mechlovin/adelais/info.json b/keyboards/mechlovin/adelais/info.json
new file mode 100644
index 0000000000..4babd9078a
--- /dev/null
+++ b/keyboards/mechlovin/adelais/info.json
@@ -0,0 +1,81 @@
+{
+ "keyboard_name": "Adelais",
+ "url": "",
+ "maintainer": "Team Mechlovin'",
+ "width": 18.5,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_all": {
+ "key_count": 66,
+ "layout": [
+ {"label":"K1E", "x":0, "y":0},
+ {"label":"K00", "x":1.5, "y":0},
+ {"label":"K01", "x":2.5, "y":0},
+ {"label":"K02", "x":3.5, "y":0},
+ {"label":"K03", "x":4.5, "y":0},
+ {"label":"K04", "x":5.5, "y":0},
+ {"label":"K05", "x":6.5, "y":0},
+ {"label":"K06", "x":7.5, "y":0},
+ {"label":"K07", "x":10.5, "y":0},
+ {"label":"K08", "x":11.5, "y":0},
+ {"label":"K09", "x":12.5, "y":0},
+ {"label":"K0A", "x":13.5, "y":0},
+ {"label":"K0B", "x":14.5, "y":0},
+ {"label":"K0C", "x":15.5, "y":0},
+ {"label":"K0D", "x":16.5, "y":0},
+ {"label":"K0E", "x":17.5, "y":0},
+ {"label":"K2E", "x":0, "y":1},
+ {"label":"K10", "x":1.5, "y":1, "w":1.5},
+ {"label":"K11", "x":3, "y":1},
+ {"label":"K12", "x":4, "y":1},
+ {"label":"K13", "x":5, "y":1},
+ {"label":"K14", "x":6, "y":1},
+ {"label":"K15", "x":7, "y":1},
+ {"label":"K16", "x":10, "y":1},
+ {"label":"K17", "x":11, "y":1},
+ {"label":"K18", "x":12, "y":1},
+ {"label":"K19", "x":13, "y":1},
+ {"label":"K1A", "x":14, "y":1},
+ {"label":"K1B", "x":15, "y":1},
+ {"label":"K1C", "x":16, "y":1},
+ {"label":"K1D", "x":17, "y":1, "w":1.5},
+ {"label":"K3E", "x":0, "y":2},
+ {"label":"K20", "x":1.5, "y":2, "w":1.75},
+ {"label":"K21", "x":3.25, "y":2},
+ {"label":"K22", "x":4.25, "y":2},
+ {"label":"K23", "x":5.25, "y":2},
+ {"label":"K24", "x":6.25, "y":2},
+ {"label":"K25", "x":7.25, "y":2},
+ {"label":"K26", "x":10.25, "y":2},
+ {"label":"K27", "x":11.25, "y":2},
+ {"label":"K28", "x":12.25, "y":2},
+ {"label":"K29", "x":13.25, "y":2},
+ {"label":"K2A", "x":14.25, "y":2},
+ {"label":"K2B", "x":15.25, "y":2},
+ {"label":"K2D", "x":16.25, "y":2, "w":2.25},
+ {"label":"K30", "x":1.5, "y":3, "w":2.25},
+ {"label":"K32", "x":3.75, "y":3},
+ {"label":"K33", "x":4.75, "y":3},
+ {"label":"K34", "x":5.75, "y":3},
+ {"label":"K35", "x":6.75, "y":3},
+ {"label":"K36", "x":7.75, "y":3},
+ {"label":"K37", "x":9.75, "y":3},
+ {"label":"K38", "x":10.75, "y":3},
+ {"label":"K39", "x":11.75, "y":3},
+ {"label":"K3A", "x":12.75, "y":3},
+ {"label":"K3B", "x":13.75, "y":3},
+ {"label":"K4D", "x":14.75, "y":3},
+ {"label":"K3C", "x":15.75, "y":3, "w":1.75},
+ {"label":"K3D", "x":17.5, "y":3},
+ {"label":"K40", "x":1.5, "y":4, "w":1.5},
+ {"label":"K42", "x":4.5, "y":4, "w":1.25},
+ {"label":"K44", "x":5.75, "y":4, "w":2.25},
+ {"label":"K46", "x":8, "y":4, "w":1.25},
+ {"label":"K48", "x":9.75, "y":4, "w":2.75},
+ {"label":"K4A", "x":12.5, "y":4, "w":1.25},
+ {"label":"K4E", "x":17, "y":4, "w":1.5}
+ ]
+ }
+ }
+ ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/"
+}
diff --git a/keyboards/mechlovin/adelais/keymaps/default/keymap.c b/keyboards/mechlovin/adelais/keymaps/default/keymap.c
new file mode 100644
index 0000000000..7848a5709b
--- /dev/null
+++ b/keyboards/mechlovin/adelais/keymaps/default/keymap.c
@@ -0,0 +1,32 @@
+/* Copyright 2020 Team Mechlovin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all(
+ KC_SPC, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
+ KC_SPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_SLSH,
+ KC_SPC, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_BSLS, MO(1), KC_RSFT, KC_UP,
+ KC_LCTL, KC_LALT, KC_SPC, MO(2), KC_SPC, KC_RALT, KC_RCTL ),
+ [0] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
+
+}; \ No newline at end of file
diff --git a/keyboards/mechlovin/adelais/keymaps/default/readme.md b/keyboards/mechlovin/adelais/keymaps/default/readme.md
new file mode 100644
index 0000000000..54d78d873b
--- /dev/null
+++ b/keyboards/mechlovin/adelais/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for adelais
diff --git a/keyboards/mechlovin/adelais/keymaps/via/keymap.c b/keyboards/mechlovin/adelais/keymaps/via/keymap.c
new file mode 100644
index 0000000000..03636d02b3
--- /dev/null
+++ b/keyboards/mechlovin/adelais/keymaps/via/keymap.c
@@ -0,0 +1,44 @@
+/* Copyright 2020 Team Mechlovin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all(
+ KC_SPC, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
+ KC_SPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_SLSH,
+ KC_SPC, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_BSLS, MO(1), KC_RSFT, KC_UP,
+ KC_LCTL, KC_LALT, KC_SPC, MO(2), KC_SPC, KC_RALT, KC_RCTL ),
+ [1] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
+ [2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
+ [3] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
+
+}; \ No newline at end of file
diff --git a/keyboards/mechlovin/adelais/keymaps/via/readme.md b/keyboards/mechlovin/adelais/keymaps/via/readme.md
new file mode 100644
index 0000000000..a85ba709d7
--- /dev/null
+++ b/keyboards/mechlovin/adelais/keymaps/via/readme.md
@@ -0,0 +1 @@
+# The VIA keymap for adelais
diff --git a/keyboards/mechlovin/adelais/keymaps/via/rules.mk b/keyboards/mechlovin/adelais/keymaps/via/rules.mk
new file mode 100644
index 0000000000..036bd6d1c3
--- /dev/null
+++ b/keyboards/mechlovin/adelais/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/mechlovin/adelais/readme.md b/keyboards/mechlovin/adelais/readme.md
new file mode 100644
index 0000000000..947d5a31d9
--- /dev/null
+++ b/keyboards/mechlovin/adelais/readme.md
@@ -0,0 +1,18 @@
+# Adelais / Adelais En Ciel
+
+![adelais](https://i.imgur.com/6U1IfZe.png)
+
+Compatible with TGR Alice and all clone variants.
+`standard_led` (Adelais) comes with backlight and RGB underglow LEDs pre-soldered.
+`rgb_led` (Adelais En Ciel) comes with per-key RGB LEDs pre-soldered.
+
+* Keyboard Maintainer: [Team Mechlovin'](https://github.com/mechlovin)
+* Hardware Supported: Adelais, Adelais En Ciel
+* Hardware Availability: [Reddit GB](https://www.reddit.com/r/mechmarket/comments/fr7smq/gb_team_mechlovin_adelais_tgr_alice_clones/)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make mechlovin/adelais/standard_led:default
+ make mechlovin/adelais/rgb_led:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/mechlovin/adelais/rgb_led/config.h b/keyboards/mechlovin/adelais/rgb_led/config.h
new file mode 100644
index 0000000000..860bcee7c4
--- /dev/null
+++ b/keyboards/mechlovin/adelais/rgb_led/config.h
@@ -0,0 +1,16 @@
+#pragma once
+
+#define PRODUCT_ID 0xAEC1
+#define PRODUCT Adelais En Ciel
+#define DESCRIPTION Team.Mechlovin Adelais En Ciel
+
+#define RGB_DI_PIN A7
+#define DRIVER_LED_TOTAL 91
+#define RGB_MATRIX_KEYPRESSES // reacts to keypresses
+#define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
+#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
+#define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended
+#define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
+#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 220 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
+#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_PINWHEEL // Sets the default mode, if none has been set \ No newline at end of file
diff --git a/keyboards/mechlovin/adelais/rgb_led/rules.mk b/keyboards/mechlovin/adelais/rgb_led/rules.mk
new file mode 100644
index 0000000000..20256e2086
--- /dev/null
+++ b/keyboards/mechlovin/adelais/rgb_led/rules.mk
@@ -0,0 +1 @@
+RGB_MATRIX_ENABLE = WS2812
diff --git a/keyboards/mechlovin/adelais/rules.mk b/keyboards/mechlovin/adelais/rules.mk
new file mode 100644
index 0000000000..4681ac3163
--- /dev/null
+++ b/keyboards/mechlovin/adelais/rules.mk
@@ -0,0 +1,23 @@
+# MCU name
+MCU = STM32F303
+
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
+
+DEFAULT_FOLDER = mechlovin/adelais/standard_led \ No newline at end of file
diff --git a/keyboards/mechlovin/adelais/standard_led/config.h b/keyboards/mechlovin/adelais/standard_led/config.h
new file mode 100644
index 0000000000..0de6cc6b40
--- /dev/null
+++ b/keyboards/mechlovin/adelais/standard_led/config.h
@@ -0,0 +1,15 @@
+#pragma once
+
+#define PRODUCT_ID 0xAD01
+#define PRODUCT Adelais
+#define DESCRIPTION Team.Mechlovin Adelais
+
+#define BACKLIGHT_PIN B0
+#define BACKLIGHT_BREATHING
+#define BACKLIGHT_PWM_DRIVER PWMD3
+#define BACKLIGHT_PWM_CHANNEL 3
+
+#define RGB_DI_PIN A7
+#define RGBLED_NUM 23
+#define RGBLIGHT_LIMIT_VAL 255
+#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/mechlovin/adelais/standard_led/rules.mk b/keyboards/mechlovin/adelais/standard_led/rules.mk
new file mode 100644
index 0000000000..4ddc352404
--- /dev/null
+++ b/keyboards/mechlovin/adelais/standard_led/rules.mk
@@ -0,0 +1,3 @@
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+BACKLIGHT_DRIVER = pwm
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow \ No newline at end of file
diff --git a/keyboards/mechlovin/hannah60rgb/config.h b/keyboards/mechlovin/hannah60rgb/config.h
new file mode 100644
index 0000000000..5ad16084f1
--- /dev/null
+++ b/keyboards/mechlovin/hannah60rgb/config.h
@@ -0,0 +1,58 @@
+/*
+Copyright 2020 Mechlovin'
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x4D4C // ML-Mechlovin
+#define PRODUCT_ID 0x6001
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Team.Mechlovin
+#define PRODUCT Hannah60 RGB
+#define DESCRIPTION Team.Mechlovin Hannah60 RGB
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 14
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { A4, A5, A3, A2, A1 }
+#define MATRIX_COL_PINS { B11, B10, B2, B1, B0, A7, A6, A0, C15, B4, B5, B3, C13, C14 }
+
+#define DIODE_DIRECTION COL2ROW
+
+#define RGB_DI_PIN A15
+#define DRIVER_LED_TOTAL 72
+#define RGB_MATRIX_KEYPRESSES // reacts to keypresses
+#define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
+#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
+#define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended
+#define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
+#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
+#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_PINWHEEL // Sets the default mode, if none has been set \ No newline at end of file
diff --git a/keyboards/mechlovin/hannah60rgb/hannah60rgb.c b/keyboards/mechlovin/hannah60rgb/hannah60rgb.c
new file mode 100644
index 0000000000..5acea8c665
--- /dev/null
+++ b/keyboards/mechlovin/hannah60rgb/hannah60rgb.c
@@ -0,0 +1,54 @@
+/* Copyright 2020 Mechlovin'
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "hannah60rgb.h"
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+ matrix_init_user();
+ led_init_ports();
+};
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ //Key Matrix to LED Index
+ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13},
+ {29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 15},
+ {30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 16, 43},
+ {59, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 44},
+ {60, 61, 62, NO_LED, 63, NO_LED, 64, NO_LED, 67, NO_LED, 68, 69, 70, 71}
+}, {
+ //LED Index to Physical Positon
+ { 0, 0}, { 16, 0}, { 32, 0 }, { 48, 0 }, { 64, 0}, { 80, 0}, { 96, 0}, { 112, 0}, { 128, 0}, { 144, 0}, { 160, 0}, { 176, 0}, {192, 0}, {208, 0}, {216, 0},
+ {220, 0}, {211, 16}, {200,16 }, {176,16 }, {160,16}, {144,16}, {128,16}, { 112,16}, { 96,16}, { 80,16}, { 64,16}, { 48,16}, {32, 16}, {16, 16}, {0,16},
+ { 0, 32}, { 16, 32}, { 32,32 }, { 48,32 }, { 64,32}, { 80,32}, { 96,32}, { 112,32}, { 128,32}, { 144,32}, { 160,32}, { 176,32}, {192, 32}, {208, 32}, {224,48},
+ {208, 48}, {192, 48}, {160,48 }, {144,48 }, {128,48}, {112,48}, {96,48}, { 80,48}, { 64,48}, { 48,48}, { 32,48}, { 16,48}, {8, 48}, {0, 48}, {0,48},
+ { 0, 64}, { 16, 64}, { 32,64 }, { 48,64 }, { 64,64}, { 80,64}, { 96,64}, { 112,64}, { 144,64}, { 160,64}, { 192,64}, { 224,64},
+}, {
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+} };
+
+void rgb_matrix_indicators_user(void) {
+ if (host_keyboard_led_state().caps_lock) {
+ rgb_matrix_set_color(30, 255, 255, 255);
+ }
+}
+#endif \ No newline at end of file
diff --git a/keyboards/mechlovin/hannah60rgb/hannah60rgb.h b/keyboards/mechlovin/hannah60rgb/hannah60rgb.h
new file mode 100644
index 0000000000..8fd1c67979
--- /dev/null
+++ b/keyboards/mechlovin/hannah60rgb/hannah60rgb.h
@@ -0,0 +1,63 @@
+/*
+Copyright 2020 Mechlovin'
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT_all( \
+K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, \
+K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, \
+K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
+K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
+K40, K41, K42, K44, K46, K48, K4A, K4B, K4C, K4D \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
+ { K40, K41, K42, KC_NO, K44, KC_NO, K46, KC_NO, K48, KC_NO, K4A, K4B, K4C, K4D }, \
+}
+#define LAYOUT_60_ansi( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
+ K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
+ K40, K41, K42, K46, K4A, K4B, K4C, K4D \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
+ { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO }, \
+ { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D }, \
+}
+#define LAYOUT_60_iso( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
+ K40, K41, K42, K46, K4A, K4B, K4C, K4D \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO }, \
+ { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D }, \
+}
+
+
+// generated by KBFirmware JSON to QMK Parser
+// https://noroadsleft.github.io/kbf_qmk_converter/
diff --git a/keyboards/mechlovin/hannah60rgb/info.json b/keyboards/mechlovin/hannah60rgb/info.json
new file mode 100644
index 0000000000..97d7b84922
--- /dev/null
+++ b/keyboards/mechlovin/hannah60rgb/info.json
@@ -0,0 +1,81 @@
+{
+ "keyboard_name": "hannah60rgb",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 15,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_all": {
+ "key_count": 66,
+ "layout": [
+ {"label":"K00 (B0,B5)", "x":2.75, "y":0},
+ {"label":"K01 (B0,B6)", "x":3.75, "y":0},
+ {"label":"K02 (B0,B7)", "x":4.75, "y":0},
+ {"label":"K03 (B0,C0)", "x":5.75, "y":0},
+ {"label":"K04 (B0,C1)", "x":6.75, "y":0},
+ {"label":"K05 (B0,C2)", "x":7.75, "y":0},
+ {"label":"K06 (B0,C3)", "x":8.75, "y":0},
+ {"label":"K07 (B0,C4)", "x":9.75, "y":0},
+ {"label":"K08 (B0,C5)", "x":10.75, "y":0},
+ {"label":"K09 (B0,C6)", "x":11.75, "y":0},
+ {"label":"K0A (B0,C7)", "x":12.75, "y":0},
+ {"label":"K0B (B0,D0)", "x":13.75, "y":0},
+ {"label":"K0C (B0,D1)", "x":14.75, "y":0},
+ {"label":"K0D (B0,F5)", "x":15.75, "y":0},
+ {"label":"K1D (B1,F5)", "x":16.75, "y":0},
+ {"label":"K10 (B1,B5)", "x":2.75, "y":1, "w":1.5},
+ {"label":"K11 (B1,B6)", "x":4.25, "y":1},
+ {"label":"K12 (B1,B7)", "x":5.25, "y":1},
+ {"label":"K13 (B1,C0)", "x":6.25, "y":1},
+ {"label":"K14 (B1,C1)", "x":7.25, "y":1},
+ {"label":"K15 (B1,C2)", "x":8.25, "y":1},
+ {"label":"K16 (B1,C3)", "x":9.25, "y":1},
+ {"label":"K17 (B1,C4)", "x":10.25, "y":1},
+ {"label":"K18 (B1,C5)", "x":11.25, "y":1},
+ {"label":"K19 (B1,C6)", "x":12.25, "y":1},
+ {"label":"K1A (B1,C7)", "x":13.25, "y":1},
+ {"label":"K1B (B1,D0)", "x":14.25, "y":1},
+ {"label":"K1C (B1,D1)", "x":15.25, "y":1},
+ {"label":"K2C (B2,D1)", "x":16.25, "y":1, "w":1.5},
+ {"label":"K20 (B2,B5)", "x":2.75, "y":2, "w":1.75},
+ {"label":"K21 (B2,B6)", "x":4.5, "y":2},
+ {"label":"K22 (B2,B7)", "x":5.5, "y":2},
+ {"label":"K23 (B2,C0)", "x":6.5, "y":2},
+ {"label":"K24 (B2,C1)", "x":7.5, "y":2},
+ {"label":"K25 (B2,C2)", "x":8.5, "y":2},
+ {"label":"K26 (B2,C3)", "x":9.5, "y":2},
+ {"label":"K27 (B2,C4)", "x":10.5, "y":2},
+ {"label":"K28 (B2,C5)", "x":11.5, "y":2},
+ {"label":"K29 (B2,C6)", "x":12.5, "y":2},
+ {"label":"K2A (B2,C7)", "x":13.5, "y":2},
+ {"label":"K2B (B2,D0)", "x":14.5, "y":2},
+ {"label":"K2D (B2,F5)", "x":15.5, "y":2, "w":2.25},
+ {"label":"K30 (B3,B5)", "x":2.75, "y":3, "w":1.25},
+ {"label":"K31 (B3,B6)", "x":4, "y":3},
+ {"label":"K32 (B3,B7)", "x":5, "y":3},
+ {"label":"K33 (B3,C0)", "x":6, "y":3},
+ {"label":"K34 (B3,C1)", "x":7, "y":3},
+ {"label":"K35 (B3,C2)", "x":8, "y":3},
+ {"label":"K36 (B3,C3)", "x":9, "y":3},
+ {"label":"K37 (B3,C4)", "x":10, "y":3},
+ {"label":"K38 (B3,C5)", "x":11, "y":3},
+ {"label":"K39 (B3,C6)", "x":12, "y":3},
+ {"label":"K3A (B3,C7)", "x":13, "y":3},
+ {"label":"K3B (B3,D0)", "x":14, "y":3},
+ {"label":"K3C (B3,D1)", "x":15, "y":3, "w":1.75},
+ {"label":"K3D (B3,F5)", "x":16.75, "y":3},
+ {"label":"K40 (B4,B5)", "x":2.75, "y":4, "w":1.25},
+ {"label":"K41 (B4,B6)", "x":4, "y":4, "w":1.25},
+ {"label":"K42 (B4,B7)", "x":5.25, "y":4, "w":1.25},
+ {"label":"K44 (B4,C1)", "x":6.5, "y":4, "w":2.75},
+ {"label":"K46 (B4,C3)", "x":9.25, "y":4, "w":1.25},
+ {"label":"K48 (B4,C5)", "x":10.5, "y":4, "w":2.25},
+ {"label":"K4A (B4,C7)", "x":12.75, "y":4, "w":1.25},
+ {"label":"K4B (B4,D0)", "x":14, "y":4, "w":1.25},
+ {"label":"K4C (B4,D1)", "x":15.25, "y":4, "w":1.25},
+ {"label":"K4D (B4,F5)", "x":16.5, "y":4, "w":1.25}
+ ]
+ }
+ }
+ ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/"
+}
diff --git a/keyboards/mechlovin/hannah60rgb/keymaps/default/keymap.c b/keyboards/mechlovin/hannah60rgb/keymaps/default/keymap.c
new file mode 100644
index 0000000000..5edcdd0997
--- /dev/null
+++ b/keyboards/mechlovin/hannah60rgb/keymaps/default/keymap.c
@@ -0,0 +1,26 @@
+/* Copyright 2020 Mechlovin'
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, MO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL ),
+
+};
diff --git a/keyboards/mechlovin/hannah60rgb/keymaps/default/readme.md b/keyboards/mechlovin/hannah60rgb/keymaps/default/readme.md
new file mode 100644
index 0000000000..9a101f5ace
--- /dev/null
+++ b/keyboards/mechlovin/hannah60rgb/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for hannah60rgb
diff --git a/keyboards/mechlovin/hannah60rgb/keymaps/via/keymap.c b/keyboards/mechlovin/hannah60rgb/keymaps/via/keymap.c
new file mode 100644
index 0000000000..0e22b84f06
--- /dev/null
+++ b/keyboards/mechlovin/hannah60rgb/keymaps/via/keymap.c
@@ -0,0 +1,44 @@
+/* Copyright 2020 Mechlovin'
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ LT(2,KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, MO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL ),
+ [1] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
+ [2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
+ [3] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
+
+};
diff --git a/keyboards/mechlovin/hannah60rgb/keymaps/via/readme.md b/keyboards/mechlovin/hannah60rgb/keymaps/via/readme.md
new file mode 100644
index 0000000000..794a57963c
--- /dev/null
+++ b/keyboards/mechlovin/hannah60rgb/keymaps/via/readme.md
@@ -0,0 +1 @@
+# The VIA keymap for hannah60rgb
diff --git a/keyboards/mechlovin/hannah60rgb/keymaps/via/rules.mk b/keyboards/mechlovin/hannah60rgb/keymaps/via/rules.mk
new file mode 100644
index 0000000000..036bd6d1c3
--- /dev/null
+++ b/keyboards/mechlovin/hannah60rgb/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/mechlovin/hannah60rgb/readme.md b/keyboards/mechlovin/hannah60rgb/readme.md
new file mode 100644
index 0000000000..777be816a0
--- /dev/null
+++ b/keyboards/mechlovin/hannah60rgb/readme.md
@@ -0,0 +1,15 @@
+# hannah60rgb
+
+![hannah60rgb](https://i.imgur.com/ImXgsyXl.png)
+
+A 60% PCB with per-key RGB, compatible with Poker and Unikorn cases.
+
+* Keyboard Maintainer: [Mechlovin'](https://github.com/mechlovin)
+* Hardware Supported: hannah60rgb PCB, STM32F303
+
+
+Make example for this keyboard (after setting up your build environment):
+
+ make mechlovin/hannah60rgb:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/mechlovin/hannah60rgb/rules.mk b/keyboards/mechlovin/hannah60rgb/rules.mk
new file mode 100644
index 0000000000..1a5441fc70
--- /dev/null
+++ b/keyboards/mechlovin/hannah60rgb/rules.mk
@@ -0,0 +1,27 @@
+# MCU name
+MCU = STM32F303
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = yes # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
+RGB_MATRIX_ENABLE = WS2812
+
+# generated by KBFirmware JSON to QMK Parser
+# https://noroadsleft.github.io/kbf_qmk_converter/
diff --git a/keyboards/mechlovin/pisces/config.h b/keyboards/mechlovin/pisces/config.h
new file mode 100644
index 0000000000..37acff2c11
--- /dev/null
+++ b/keyboards/mechlovin/pisces/config.h
@@ -0,0 +1,76 @@
+/*
+Copyright 2020 Team Mechlovin'
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x4D4C // ML-Mechlovin
+#define PRODUCT_ID 0x6501
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Team.Mechlovin
+#define PRODUCT Pisces65
+#define DESCRIPTION Team.Mechlovin Pisces65
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 15
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { B0, F0, F5, F6, F7 }
+#define MATRIX_COL_PINS { E6, B1, B3, D0, D1, D2, D3, D5, F4, F1, D4, D6, D7, B4, B5 }
+
+#define DIODE_DIRECTION COL2ROW
+
+#define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+#define BACKLIGHT_LEVELS 3
+
+#define RGB_DI_PIN E2
+#ifdef RGB_DI_PIN
+ #define RGBLED_NUM 12
+ #define RGBLIGHT_HUE_STEP 8
+ #define RGBLIGHT_SAT_STEP 8
+ #define RGBLIGHT_VAL_STEP 8
+ #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+ #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+/*== all animations enable ==*/
+ #define RGBLIGHT_ANIMATIONS
+// /*== or choose animations ==*/
+// #define RGBLIGHT_EFFECT_BREATHING
+// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
+// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+// #define RGBLIGHT_EFFECT_SNAKE
+// #define RGBLIGHT_EFFECT_KNIGHT
+// #define RGBLIGHT_EFFECT_CHRISTMAS
+// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
+// #define RGBLIGHT_EFFECT_RGB_TEST
+// #define RGBLIGHT_EFFECT_ALTERNATING
+#endif
+
+// generated by KBFirmware JSON to QMK Parser
+// https://noroadsleft.github.io/kbf_qmk_converter/
diff --git a/keyboards/mechlovin/pisces/info.json b/keyboards/mechlovin/pisces/info.json
new file mode 100644
index 0000000000..5b32d1186e
--- /dev/null
+++ b/keyboards/mechlovin/pisces/info.json
@@ -0,0 +1,80 @@
+{
+ "keyboard_name": "pisces",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 16,
+ "height": 5,
+ "layouts": {
+ "LAYOUT": {
+ "key_count": 65,
+ "layout": [
+ {"label":"K00 (B0,E6)", "x":0, "y":0},
+ {"label":"K01 (B0,B1)", "x":1, "y":0},
+ {"label":"K02 (B0,B3)", "x":2, "y":0},
+ {"label":"K03 (B0,D0)", "x":3, "y":0},
+ {"label":"K04 (B0,D1)", "x":4, "y":0},
+ {"label":"K05 (B0,D2)", "x":5, "y":0},
+ {"label":"K06 (B0,D3)", "x":6, "y":0},
+ {"label":"K07 (B0,D5)", "x":7, "y":0},
+ {"label":"K08 (B0,F4)", "x":8, "y":0},
+ {"label":"K09 (B0,F1)", "x":9, "y":0},
+ {"label":"K0A (B0,D4)", "x":10, "y":0},
+ {"label":"K0B (B0,D6)", "x":11, "y":0},
+ {"label":"K0C (B0,D7)", "x":12, "y":0},
+ {"label":"K0D (B0,B4)", "x":13, "y":0, "w":2},
+ {"label":"K10 (F0,E6)", "x":0, "y":1, "w":1.5},
+ {"label":"K11 (F0,B1)", "x":1.5, "y":1},
+ {"label":"K12 (F0,B3)", "x":2.5, "y":1},
+ {"label":"K13 (F0,D0)", "x":3.5, "y":1},
+ {"label":"K14 (F0,D1)", "x":4.5, "y":1},
+ {"label":"K15 (F0,D2)", "x":5.5, "y":1},
+ {"label":"K16 (F0,D3)", "x":6.5, "y":1},
+ {"label":"K17 (F0,D5)", "x":7.5, "y":1},
+ {"label":"K18 (F0,F4)", "x":8.5, "y":1},
+ {"label":"K19 (F0,F1)", "x":9.5, "y":1},
+ {"label":"K1A (F0,D4)", "x":10.5, "y":1},
+ {"label":"K1B (F0,D6)", "x":11.5, "y":1},
+ {"label":"K1C (F0,D7)", "x":12.5, "y":1},
+ {"label":"K1D (F0,B4)", "x":13.5, "y":1, "w":1.5},
+ {"label":"K1E (F0,B5)", "x":15, "y":1},
+ {"label":"K20 (F5,E6)", "x":0, "y":2, "w":1.75},
+ {"label":"K21 (F5,B1)", "x":1.75, "y":2},
+ {"label":"K22 (F5,B3)", "x":2.75, "y":2},
+ {"label":"K23 (F5,D0)", "x":3.75, "y":2},
+ {"label":"K24 (F5,D1)", "x":4.75, "y":2},
+ {"label":"K25 (F5,D2)", "x":5.75, "y":2},
+ {"label":"K26 (F5,D3)", "x":6.75, "y":2},
+ {"label":"K27 (F5,D5)", "x":7.75, "y":2},
+ {"label":"K28 (F5,F4)", "x":8.75, "y":2},
+ {"label":"K29 (F5,F1)", "x":9.75, "y":2},
+ {"label":"K2A (F5,D4)", "x":10.75, "y":2},
+ {"label":"K2B (F5,D6)", "x":11.75, "y":2},
+ {"label":"K2D (F5,B4)", "x":12.75, "y":2, "w":2.25},
+ {"label":"K2E (F5,B5)", "x":15, "y":2},
+ {"label":"K30 (F6,E6)", "x":0, "y":3, "w":2.25},
+ {"label":"K32 (F6,B3)", "x":2.25, "y":3},
+ {"label":"K33 (F6,D0)", "x":3.25, "y":3},
+ {"label":"K34 (F6,D1)", "x":4.25, "y":3},
+ {"label":"K35 (F6,D2)", "x":5.25, "y":3},
+ {"label":"K36 (F6,D3)", "x":6.25, "y":3},
+ {"label":"K37 (F6,D5)", "x":7.25, "y":3},
+ {"label":"K38 (F6,F4)", "x":8.25, "y":3},
+ {"label":"K39 (F6,F1)", "x":9.25, "y":3},
+ {"label":"K3A (F6,D4)", "x":10.25, "y":3},
+ {"label":"K3B (F6,D6)", "x":11.25, "y":3},
+ {"label":"K3C (F6,D7)", "x":12.25, "y":3, "w":1.75},
+ {"label":"K3D (F6,B4)", "x":14, "y":3},
+ {"label":"K3E (F6,B5)", "x":15, "y":3},
+ {"label":"K40 (F7,E6)", "x":0, "y":4, "w":1.5},
+ {"label":"K42 (F7,B3)", "x":2.25, "y":4, "w":1.5},
+ {"label":"K46 (F7,D3)", "x":3.75, "y":4, "w":6.25},
+ {"label":"K4A (F7,D4)", "x":10, "y":4, "w":1.25},
+ {"label":"K4B (F7,D6)", "x":11.25, "y":4, "w":1.25},
+ {"label":"K4C (F7,D7)", "x":13, "y":4},
+ {"label":"K4D (F7,B4)", "x":14, "y":4},
+ {"label":"K4E (F7,B5)", "x":15, "y":4}
+ ]
+ }
+ }
+ ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/"
+}
diff --git a/keyboards/mechlovin/pisces/keymaps/default/keymap.c b/keyboards/mechlovin/pisces/keymaps/default/keymap.c
new file mode 100644
index 0000000000..d4890a11ad
--- /dev/null
+++ b/keyboards/mechlovin/pisces/keymaps/default/keymap.c
@@ -0,0 +1,34 @@
+/* Copyright 2020 Team Mechlovin'
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
+ LCTL_T(KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT(
+ KC_TRNS, BL_STEP, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+}; \ No newline at end of file
diff --git a/keyboards/mechlovin/pisces/keymaps/default/readme.md b/keyboards/mechlovin/pisces/keymaps/default/readme.md
new file mode 100644
index 0000000000..966b8fd802
--- /dev/null
+++ b/keyboards/mechlovin/pisces/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for pisces
diff --git a/keyboards/mechlovin/pisces/keymaps/via/keymap.c b/keyboards/mechlovin/pisces/keymaps/via/keymap.c
new file mode 100644
index 0000000000..4ea597a9f1
--- /dev/null
+++ b/keyboards/mechlovin/pisces/keymaps/via/keymap.c
@@ -0,0 +1,48 @@
+/* Copyright 2020 Team Mechlovin'
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
+ LCTL_T(KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT(
+ KC_TRNS, BL_STEP, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [2] = LAYOUT(
+ KC_TRNS, BL_STEP, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [3] = LAYOUT(
+ KC_TRNS, BL_STEP, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+}; \ No newline at end of file
diff --git a/keyboards/mechlovin/pisces/keymaps/via/readme.md b/keyboards/mechlovin/pisces/keymaps/via/readme.md
new file mode 100644
index 0000000000..33523d5592
--- /dev/null
+++ b/keyboards/mechlovin/pisces/keymaps/via/readme.md
@@ -0,0 +1 @@
+# The VIA keymap for pisces
diff --git a/keyboards/mechlovin/pisces/keymaps/via/rules.mk b/keyboards/mechlovin/pisces/keymaps/via/rules.mk
new file mode 100644
index 0000000000..036bd6d1c3
--- /dev/null
+++ b/keyboards/mechlovin/pisces/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/mechlovin/pisces/pisces.c b/keyboards/mechlovin/pisces/pisces.c
new file mode 100644
index 0000000000..2a0a97f6d4
--- /dev/null
+++ b/keyboards/mechlovin/pisces/pisces.c
@@ -0,0 +1,42 @@
+/* Copyright 2020 Team Mechlovin'
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "pisces.h"
+
+// Optional override functions below.
+// You can leave any or all of these undefined.
+// These are only required if you want to perform custom actions.
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+
+ matrix_init_user();
+ led_init_ports();
+}
+
+void led_init_ports(void) {
+ setPinOutput(B2);
+ writePinLow(B2);
+}
+
+bool led_update_kb(led_t led_state) {
+ if(led_update_user(led_state)) {
+ writePin(B2, led_state.caps_lock);
+ }
+
+ return true;
+}
diff --git a/keyboards/mechlovin/pisces/pisces.h b/keyboards/mechlovin/pisces/pisces.h
new file mode 100644
index 0000000000..743b787b7c
--- /dev/null
+++ b/keyboards/mechlovin/pisces/pisces.h
@@ -0,0 +1,36 @@
+/* Copyright 2020 Team Mechlovin'
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
+ K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
+ K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, K2E }, \
+ { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
+ { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E }, \
+}
+
+// generated by KBFirmware JSON to QMK Parser
+// https://noroadsleft.github.io/kbf_qmk_converter/ \ No newline at end of file
diff --git a/keyboards/mechlovin/pisces/readme.md b/keyboards/mechlovin/pisces/readme.md
new file mode 100644
index 0000000000..3229f1a52f
--- /dev/null
+++ b/keyboards/mechlovin/pisces/readme.md
@@ -0,0 +1,13 @@
+# pisces
+
+![pisces](https://i.imgur.com/Oq7TAt8l.jpg)
+
+
+* Keyboard Maintainer: [Team Mechlovin'](https://github.com/mechlovin)
+* Hardware Availability: Private GB, [GH IC](https://geekhack.org/index.php?topic=103579.0)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make mechlovin/pisces:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/mechlovin/pisces/rules.mk b/keyboards/mechlovin/pisces/rules.mk
new file mode 100644
index 0000000000..9afc1864f1
--- /dev/null
+++ b/keyboards/mechlovin/pisces/rules.mk
@@ -0,0 +1,32 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/mechmini/v1/rules.mk b/keyboards/mechmini/v1/rules.mk
index d0275c946f..93646c8e13 100644
--- a/keyboards/mechmini/v1/rules.mk
+++ b/keyboards/mechmini/v1/rules.mk
@@ -20,5 +20,3 @@ COMMAND_ENABLE = yes
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
-
-OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/mehkee96/rules.mk b/keyboards/mehkee96/rules.mk
index b91a69f83b..488c63fce7 100644
--- a/keyboards/mehkee96/rules.mk
+++ b/keyboards/mehkee96/rules.mk
@@ -22,5 +22,3 @@ COMMAND_ENABLE = yes # Commands for debug and configuration
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
-
-OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/melody96/config.h b/keyboards/melody96/config.h
index 8ab88653f3..2533bfa353 100644
--- a/keyboards/melody96/config.h
+++ b/keyboards/melody96/config.h
@@ -3,8 +3,8 @@
#include "config_common.h"
/* USB Device descriptor parameter */
-#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0x6060
+#define VENDOR_ID 0x594d // "YM"
+#define PRODUCT_ID 0x4D96 // "M" + 96
#define DEVICE_VER 0x0001
#define MANUFACTURER YMDK
#define PRODUCT Melody96
@@ -28,6 +28,10 @@
#define BACKLIGHT_LEVELS 5
#endif
+/* Set location for BootMagic key*/
+#define BOOTMAGIC_LITE_ROW 5
+#define BOOTMAGIC_LITE_COLUMN 0
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/melody96/keymaps/konstantin/rules.mk b/keyboards/melody96/keymaps/konstantin/rules.mk
index 5b36eef2cb..3ef19428aa 100644
--- a/keyboards/melody96/keymaps/konstantin/rules.mk
+++ b/keyboards/melody96/keymaps/konstantin/rules.mk
@@ -1,12 +1,18 @@
-BACKLIGHT_ENABLE = no
+# Generic features
BOOTMAGIC_ENABLE = no
COMMAND_ENABLE = yes
-CONSOLE_ENABLE = no
+CONSOLE_ENABLE = yes
EXTRAKEY_ENABLE = yes
-GRAVE_ESC_ENABLE = no
MOUSEKEY_ENABLE = yes
NKRO_ENABLE = yes
-RGBLIGHT_ENABLE = yes
-SPACE_CADET_ENABLE = no
TAP_DANCE_ENABLE = yes
UNICODEMAP_ENABLE = yes
+
+# Keyboard-specific features
+BACKLIGHT_ENABLE = no
+RGBLIGHT_ENABLE = yes
+
+# Firmware size reduction
+GRAVE_ESC_ENABLE = no
+MAGIC_ENABLE = no
+SPACE_CADET_ENABLE = no
diff --git a/keyboards/melody96/keymaps/via/keymap.c b/keyboards/melody96/keymaps/via/keymap.c
new file mode 100644
index 0000000000..24d7d2d8ad
--- /dev/null
+++ b/keyboards/melody96/keymaps/via/keymap.c
@@ -0,0 +1,36 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_DEL,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PMNS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT),
+
+ [1] = LAYOUT(
+ RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, RGB_TOG, KC_TRNS, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+ [2] = LAYOUT(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+ [3] = LAYOUT(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+};
diff --git a/keyboards/melody96/keymaps/via/readme.md b/keyboards/melody96/keymaps/via/readme.md
new file mode 100644
index 0000000000..9db51187a4
--- /dev/null
+++ b/keyboards/melody96/keymaps/via/readme.md
@@ -0,0 +1,5 @@
+# The via keymap for YMDK Melody 96
+
+This folder contains the [VIA](https://caniusevia.com/) configuration for the YMDK Melody 96
+
+Maintained by: [vlee489](https://github.com/vlee489)
diff --git a/keyboards/melody96/keymaps/via/rules.mk b/keyboards/melody96/keymaps/via/rules.mk
new file mode 100644
index 0000000000..6d6d45bac8
--- /dev/null
+++ b/keyboards/melody96/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes # reduce firmware size
diff --git a/keyboards/melody96/rules.mk b/keyboards/melody96/rules.mk
index c1f1f22ba3..46b60ab9e4 100644
--- a/keyboards/melody96/rules.mk
+++ b/keyboards/melody96/rules.mk
@@ -14,7 +14,7 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
diff --git a/keyboards/montsinger/rebound/readme.md b/keyboards/montsinger/rebound/readme.md
index 024b4a96b7..1beafaf1b1 100755
--- a/keyboards/montsinger/rebound/readme.md
+++ b/keyboards/montsinger/rebound/readme.md
@@ -1,16 +1,17 @@
# Rebound
-![Rebound](https://imgur.com/zMPhNmm.jpg)
+![Rebound](https://i.imgur.com/IoV64hC.jpg)
-A conjoined-split 40% 4x12 ortholinear keyboard made and sold by Montsinger. [More info on Montsinger.net](https://montsinger.net).
+A conjoined-split 40% ortholinear keyboard made and sold by Montsinger. [More info on Montsinger.net](https://montsinger.net).
* Keyboard Maintainer: [Rossman360](https://github.com/rossman360)
-* Hardware Supported: Rebound rev1 or rev2; Pro Micro or Elite-C
+* Hardware Supported: Rebound rev1 rev2 or rev3; Pro Micro or Elite-C
* Hardware Availability: [Montsinger.net](https://montsinger.net)
Make example for this keyboard (after setting up your build environment):
make montsinger/rebound/rev1:default # for rev1
make montsinger/rebound/rev2:default # for rev2
+ make montsinger/rebound/rev3:default # for rev3
-See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs) \ No newline at end of file
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs)
diff --git a/keyboards/montsinger/rebound/rebound.h b/keyboards/montsinger/rebound/rebound.h
index c9fc262778..848316a366 100644
--- a/keyboards/montsinger/rebound/rebound.h
+++ b/keyboards/montsinger/rebound/rebound.h
@@ -22,4 +22,6 @@
#include "rev1.h"
#elif defined(KEYBOARD_montsinger_rebound_rev2)
#include "rev2.h"
+#elif defined(KEYBOARD_montsinger_rebound_rev3)
+ #include "rev3.h"
#endif
diff --git a/keyboards/montsinger/rebound/rev2/keymaps/rossman360/keymap.c b/keyboards/montsinger/rebound/rev2/keymaps/rossman360/keymap.c
index 23bd7e4ec9..10681eba6b 100644
--- a/keyboards/montsinger/rebound/rev2/keymaps/rossman360/keymap.c
+++ b/keyboards/montsinger/rebound/rev2/keymaps/rossman360/keymap.c
@@ -49,9 +49,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_NUM] = LAYOUT_all(
- _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_MINS, KC_EQL,
+ _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_MINS, KC_EQL,
KC_CAPS, _______, _______, _______, _______, _______, KC_MINS, KC_4 , KC_5 , KC_6 , KC_COLN, _______,
- _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_1 , KC_2 , KC_3 , KC_BSLS, _______,
+ _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_1 , KC_2 , KC_3 , KC_BSLS, _______,
_______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_Y , _______, _______, KC_0 , _______, _______, _______
)
};
diff --git a/keyboards/montsinger/rebound/rev3/config.h b/keyboards/montsinger/rebound/rev3/config.h
new file mode 100644
index 0000000000..6c85fab88b
--- /dev/null
+++ b/keyboards/montsinger/rebound/rev3/config.h
@@ -0,0 +1,65 @@
+/*
+Copyright 2020 Ross Montsinger
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x552F
+#define DEVICE_VER 0x0002
+#define MANUFACTURER Montsinger
+#define PRODUCT Rebound
+#define DESCRIPTION "A conjoined Let's Split"
+
+/* key matrix size */
+
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 12
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on
+diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+
+#define MATRIX_ROW_PINS { F4, F5, D1, D0, B0 }
+#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5, B6, B2, B3, B1, F7, F6 }
+#define UNUSED_PINS { }
+
+#define ENCODERS_PAD_A { D3 }
+#define ENCODERS_PAD_B { D2 }
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION ROW2COL
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* Bootmagic Lite key configuration */
+// #define BOOTMAGIC_LITE_ROW 0
+// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/montsinger/rebound/rev3/info.json b/keyboards/montsinger/rebound/rev3/info.json
new file mode 100644
index 0000000000..bf4a540b71
--- /dev/null
+++ b/keyboards/montsinger/rebound/rev3/info.json
@@ -0,0 +1,128 @@
+{
+ "keyboard":"montsinger/rebound/rev3",
+ "url": "https://montsinger.net",
+ "maintainer": "rossman360",
+ "width": 13,
+ "height": 4,
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+ {"x":3, "y":1},
+ {"x":4, "y":1},
+ {"x":5, "y":1},
+ {"x":6, "y":1},
+ {"x":7, "y":1},
+ {"x":8, "y":1},
+ {"x":9, "y":1},
+ {"x":10, "y":1},
+ {"x":11, "y":1},
+ {"x":12, "y":1},
+
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+ {"x":2, "y":2},
+ {"x":3, "y":2},
+ {"x":4, "y":2},
+ {"x":5, "y":2},
+ {"x":6, "y":2},
+ {"x":7, "y":2},
+ {"x":8, "y":2},
+ {"x":9, "y":2},
+ {"x":10, "y":2},
+ {"x":11, "y":2},
+ {"x":12, "y":2},
+
+ {"x":0, "y":3},
+ {"x":1, "y":3},
+ {"x":2, "y":3},
+ {"x":3, "y":3},
+ {"x":4, "y":3},
+ {"x":5, "y":3},
+ {"x":6, "y":3},
+ {"x":7, "y":3},
+ {"x":8, "y":3},
+ {"x":9, "y":3},
+ {"x":10, "y":3},
+ {"x":11, "y":3},
+ {"x":12, "y":3}
+ ]
+ },
+ "LAYOUT_ortho_4x12": {
+ "layout": [
+
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+ {"x":3, "y":1},
+ {"x":4, "y":1},
+ {"x":5, "y":1},
+
+ {"x":7, "y":1},
+ {"x":8, "y":1},
+ {"x":9, "y":1},
+ {"x":10, "y":1},
+ {"x":11, "y":1},
+ {"x":12, "y":1},
+
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+ {"x":2, "y":2},
+ {"x":3, "y":2},
+ {"x":4, "y":2},
+ {"x":5, "y":2},
+
+ {"x":7, "y":2},
+ {"x":8, "y":2},
+ {"x":9, "y":2},
+ {"x":10, "y":2},
+ {"x":11, "y":2},
+ {"x":12, "y":2},
+
+ {"x":0, "y":3},
+ {"x":1, "y":3},
+ {"x":2, "y":3},
+ {"x":3, "y":3},
+ {"x":4, "y":3},
+ {"x":5, "y":3},
+
+ {"x":7, "y":3},
+ {"x":8, "y":3},
+ {"x":9, "y":3},
+ {"x":10, "y":3},
+ {"x":11, "y":3},
+ {"x":12, "y":3}
+ ]
+ }
+ }
+}
diff --git a/keyboards/montsinger/rebound/rev3/keymaps/default/keymap.c b/keyboards/montsinger/rebound/rev3/keymaps/default/keymap.c
new file mode 100644
index 0000000000..be038b1f53
--- /dev/null
+++ b/keyboards/montsinger/rebound/rev3/keymaps/default/keymap.c
@@ -0,0 +1,102 @@
+#include QMK_KEYBOARD_H
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+
+enum layer_names {
+ _QWERTY,
+ _COLEMAK,
+ _DVORAK,
+ _LOWER,
+ _RAISE,
+ _ADJUST
+};
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ COLEMAK,
+ DVORAK
+};
+
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+#define ADJUST MO(_ADJUST)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[_QWERTY] = LAYOUT_all(
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
+ ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_ENT, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+[_COLEMAK] = LAYOUT_all(
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
+ KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, _______, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
+ ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, _______, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+[_DVORAK] = LAYOUT_all(
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
+ KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, _______, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
+ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, _______, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT ,
+ ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, _______, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+[_LOWER] = LAYOUT_all(
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+[_RAISE] = LAYOUT_all(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+[_ADJUST] = LAYOUT_all(
+ _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
+ _______, _______, _______, AU_ON, AU_OFF, AG_NORM, _______, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+)
+};
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
+}
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWERTY);
+ }
+ break;
+ case COLEMAK:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_COLEMAK);
+ }
+ break;
+ case DVORAK:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_DVORAK);
+ }
+ break;
+ }
+ return true;
+}
+
+void encoder_update_user(uint8_t index, bool clockwise) {
+ if (clockwise) {
+ tap_code16(S(KC_VOLD));
+ } else {
+ tap_code16(KC_VOLU);
+ }
+}
diff --git a/keyboards/montsinger/rebound/rev3/keymaps/rossman360/keymap.c b/keyboards/montsinger/rebound/rev3/keymaps/rossman360/keymap.c
new file mode 100644
index 0000000000..ee15a60623
--- /dev/null
+++ b/keyboards/montsinger/rebound/rev3/keymaps/rossman360/keymap.c
@@ -0,0 +1,112 @@
+#include QMK_KEYBOARD_H
+#include "rossman360.h"
+
+#define PGMOD LT(_NUM, KC_PGDN)
+#define TABMOD LT(_FN1, KC_TAB)
+#define SPCMOD LT(_FN1, KC_SPACE)
+#define ENTMOD LT(_FN2, KC_ENTER)
+#define ESCMOD LT(_NUM, KC_ESC)
+#define RSMOD LT(_FN1, KC_RSHIFT)
+
+enum layer_names {
+ _BASE,
+ _DEL,
+ _FN1,
+ _FN2,
+ _NUM,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[_BASE] = LAYOUT_all(
+ KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , NTAB ,
+ JUMPBACK, KC_A , KC_S , KC_D , KC_F , KC_G ,MO(_DEL), KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT,
+ KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , LM(_FN1, MOD_LALT), KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_MINS,
+ CMDBSP , ALTDEL , KC_NO , CTRLSP , KC_TAB , PGMOD , QUIT , ENTMOD , SPCMOD , MO(_DEL),KC_NO , KC_BSPC, KC_DEL
+ ),
+
+[_FN1] = LAYOUT_all(
+ _______, TAB1 , TAB2 , TAB3 , TAB4 , _______, _______, UNDO , _______, _______, _______, CTAB ,
+ KC_CAPS, _______, _______, _______, _______, _______, _______, KC_HOME, KC_LEFT, KC_UP , KC_RIGHT,KC_END , KC_NO ,
+ _______, _______, XPANDR , _______, _______, _______, _______, _______, PMERGE , KC_DOWN, _______, _______, EMDASH ,
+ WREFRESH,_______, _______, _______, LWORD , RWORD , _______, KC_NO , _______, KC_NO , _______, _______, _______
+ ),
+
+[_FN2] = LAYOUT_all(
+ _______, SPEAK1 , SPEAK2 , SPEAK3 , SPEAK4 , _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, PARADOWN, CSPEAK, _______, _______, KC_NO , KC_NO , _______, _______, _______
+ ),
+
+[_DEL] = LAYOUT_all(
+ RESET, _______, _______, _______, _______, _______, _______, UNDO , _______, _______, _______, CTAB ,
+ REMCAPS, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_UP ,KC_RIGHT, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, _______,
+ _______, _______, _______, KC_DEL , KC_BSPC, BWORD , _______, KC_NO , KC_NO , _______, _______, _______, _______
+ ),
+
+[_NUM] = LAYOUT_all(
+ KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_MINS, KC_EQL,
+ KC_CAPS, _______, _______, _______, _______, _______, _______, KC_MINS, KC_4 , KC_5 , KC_6 , KC_COLN, _______,
+ _______, _______, _______, _______, _______, KC_LBRC, _______, KC_RBRC, KC_1 , KC_2 , KC_3 , KC_BSLS, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_NO , KC_NO , KC_0 , _______, _______, _______
+ )
+};
+
+void encoder_update_user(uint8_t index, bool clockwise) {
+ switch(get_highest_layer(layer_state)){
+case _BASE:
+ if (clockwise) {
+ tap_code16(KC_VOLD);
+ } else {
+ tap_code16(KC_VOLU);
+ }
+ break;
+ case _FN1:
+ if (clockwise) {
+ tap_code16(S(KC_TAB));
+ } else {
+ tap_code16(KC_TAB);
+ }
+ break;
+}
+}
+
+#ifdef OLED_DRIVER_ENABLE
+void oled_task_user(void) {
+ // Host Keyboard Layer Status
+ oled_write_P(PSTR(""), false);
+
+ switch (get_highest_layer(layer_state)) {
+ case _BASE:
+ oled_write_P(PSTR("Rebound\n"), false);
+ oled_write_P(PSTR("Rev3.1\n"), false);
+ break;
+ case _FN1:
+ oled_write_P(PSTR("Fn\n"), false);
+ break;
+ case _FN2:
+ oled_write_P(PSTR("Para\n"), false);
+ break;
+ case _NUM:
+ oled_write_P(PSTR("Num\n"), false);
+ break;
+ case _DEL:
+ oled_write_P(PSTR("Del\n"), false);
+ break;
+ default:
+ // Or use the write_ln shortcut over adding '\n' to the end of your string
+ oled_write_ln_P(PSTR("Undefined"), false);
+}
+
+ // Host Keyboard LED Status
+ led_t led_state = host_keyboard_led_state();
+ oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
+ oled_write_P(led_state.caps_lock ? PSTR("CAPS") : PSTR(" "), false);
+ oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
+
+}
+
+#endif
+
diff --git a/keyboards/montsinger/rebound/rev3/keymaps/rossman360/rules.mk b/keyboards/montsinger/rebound/rev3/keymaps/rossman360/rules.mk
new file mode 100644
index 0000000000..ca475d2e17
--- /dev/null
+++ b/keyboards/montsinger/rebound/rev3/keymaps/rossman360/rules.mk
@@ -0,0 +1,4 @@
+MOUSEKEY_ENABLE = no # Mouse keys
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+OLED_DRIVER_ENABLE = no
diff --git a/keyboards/montsinger/rebound/rev3/rev3.h b/keyboards/montsinger/rebound/rev3/rev3.h
new file mode 100644
index 0000000000..b709a4cea0
--- /dev/null
+++ b/keyboards/montsinger/rebound/rev3/rev3.h
@@ -0,0 +1,53 @@
+/* Copyright 2020 Ross Montsinger
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+/* This is a shortcut to help you visually see your layout.
+ * The first section contains all of the arguments representing the
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+
+#define LAYOUT_ortho_4x12( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,\
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B\
+ ) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B }, \
+ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } \
+}
+
+#define LAYOUT_all( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
+ K10, K11, K12, K13, K14, K15, K42, K16, K17, K18, K19, K1A, K1B, \
+ K20, K21, K22, K23, K24, K25, K43, K26, K27, K28, K29, K2A, K2B,\
+ K30, K31, K32, K33, K34, K35, K44, K36, K37, K38, K39, K3A, K3B\
+ ) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B }, \
+ { KC_NO, KC_NO, K42, K43, K44, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } \
+}
diff --git a/keyboards/montsinger/rebound/rev3/rules.mk b/keyboards/montsinger/rebound/rev3/rules.mk
new file mode 100644
index 0000000000..61e36fc449
--- /dev/null
+++ b/keyboards/montsinger/rebound/rev3/rules.mk
@@ -0,0 +1,34 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = atmel-dfu
+
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
+ENCODER_ENABLE = yes
+
+LAYOUTS = ortho_4x12
+LAYOUTS_HAS_RGB = no
+
diff --git a/keyboards/mt40/rules.mk b/keyboards/mt40/rules.mk
index fa22bf61bd..c81f35f656 100644
--- a/keyboards/mt40/rules.mk
+++ b/keyboards/mt40/rules.mk
@@ -27,7 +27,5 @@ RGBLIGHT_ENABLE ?= yes # Enable WS2812 RGB underlight.
WS2812_DRIVER = i2c
TAP_DANCE_ENABLE = no
-OPT_DEFS = -DDEBUG_LEVEL=0
-
LAYOUTS = planck_mit
LAYOUTS_HAS_RGB = no
diff --git a/keyboards/murcielago/info.json b/keyboards/murcielago/info.json
new file mode 100644
index 0000000000..00eb326296
--- /dev/null
+++ b/keyboards/murcielago/info.json
@@ -0,0 +1,73 @@
+{
+ "keyboard_name": "Murciélago",
+ "url": "",
+ "maintainer": "elagil",
+ "width": 15,
+ "height": 5.75,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"label":"0,0", "x":0, "y":0.425},
+ {"label":"0,1", "x":1, "y":0.25},
+ {"label":"0,2", "x":2, "y":0.125},
+ {"label":"0,3", "x":3, "y":0.0},
+ {"label":"0,4", "x":4, "y":0.125},
+ {"label":"0,5", "x":5, "y":0.25},
+ {"label":"6,0", "x":9, "y":0.25},
+ {"label":"6,1", "x":10, "y":0.125},
+ {"label":"6,2", "x":11, "y":0.0},
+ {"label":"6,3", "x":12, "y":0.125},
+ {"label":"6,4", "x":13, "y":0.25},
+ {"label":"6,5", "x":14, "y":0.425},
+ {"label":"1,0", "x":0, "y":1.425},
+ {"label":"1,1", "x":1, "y":1.25},
+ {"label":"1,2", "x":2, "y":1.125},
+ {"label":"1,3", "x":3, "y":1.0},
+ {"label":"1,4", "x":4, "y":1.125},
+ {"label":"1,5", "x":5, "y":1.25},
+ {"label":"7,0", "x":9, "y":1.25},
+ {"label":"7,1", "x":10, "y":1.125},
+ {"label":"7,2", "x":11, "y":1.0},
+ {"label":"7,3", "x":12, "y":1.125},
+ {"label":"7,4", "x":13, "y":1.25},
+ {"label":"7,5", "x":14, "y":1.425},
+ {"label":"2,0", "x":0, "y":2.425},
+ {"label":"2,1", "x":1, "y":2.25},
+ {"label":"2,2", "x":2, "y":2.125},
+ {"label":"2,3", "x":3, "y":2.0},
+ {"label":"2,4", "x":4, "y":2.125},
+ {"label":"2,5", "x":5, "y":2.25},
+ {"label":"8,0", "x":9, "y":2.25},
+ {"label":"8,1", "x":10, "y":2.125},
+ {"label":"8,2", "x":11, "y":2.0},
+ {"label":"8,3", "x":12, "y":2.125},
+ {"label":"8,4", "x":13, "y":2.25},
+ {"label":"8,5", "x":14, "y":2.425},
+ {"label":"3,0", "x":0, "y":3.425},
+ {"label":"3,1", "x":1, "y":3.25},
+ {"label":"3,2", "x":2, "y":3.125},
+ {"label":"3,3", "x":3, "y":3.0},
+ {"label":"3,4", "x":4, "y":3.125},
+ {"label":"3,5", "x":5, "y":3.25},
+ {"label":"5,5", "x":6, "y":3.25},
+ {"label":"11,0", "x":8, "y":3.25},
+ {"label":"9,0", "x":9, "y":3.25},
+ {"label":"9,1", "x":10, "y":3.125},
+ {"label":"9,2", "x":11, "y":3.0},
+ {"label":"9,3", "x":12, "y":3.125},
+ {"label":"9,4", "x":13, "y":3.25},
+ {"label":"9,5", "x":14, "y":3.425},
+ {"label":"4,1", "x":1.7, "y":4.25},
+ {"label":"4,2", "x":2.7, "y":4.05},
+ {"label":"4,3", "x":3.7, "y":4.15},
+ {"label":"4,4", "x":4.7, "y":4.35},
+ {"label":"4,5", "x":5.8, "y":4.25, "h":1.5},
+ {"label":"10,0", "x":8.2, "y":4.25, "h":1.5},
+ {"label":"10,1", "x":9.3, "y":4.35},
+ {"label":"10,2", "x":10.3, "y":4.15},
+ {"label":"10,3", "x":11.3, "y":4.05},
+ {"label":"10,4", "x":12.3, "y":4.25}
+ ]
+ }
+ }
+}
diff --git a/keyboards/murcielago/murcielago.c b/keyboards/murcielago/murcielago.c
new file mode 100644
index 0000000000..30215c69cd
--- /dev/null
+++ b/keyboards/murcielago/murcielago.c
@@ -0,0 +1,17 @@
+/* Copyright 2020 elagil
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "murcielago.h" \ No newline at end of file
diff --git a/keyboards/murcielago/murcielago.h b/keyboards/murcielago/murcielago.h
new file mode 100644
index 0000000000..458df972f7
--- /dev/null
+++ b/keyboards/murcielago/murcielago.h
@@ -0,0 +1,49 @@
+/* Copyright 2020 elagil
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+/* This is a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.k
+ */
+
+#define LAYOUT( \
+ L00, L01, L02, L03, L04, L05, R01, R02, R03, R04, R05, R06, \
+ L10, L11, L12, L13, L14, L15, R11, R12, R13, R14, R15, R16, \
+ L20, L21, L22, L23, L24, L25, R21, R22, R23, R24, R25, R26, \
+ L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \
+ L41, L42, L43, L44, L45, R41, R42, R43, R44, R45 \
+) { \
+ { L00, L01, L02, L03, L04, L05 },\
+ { L10, L11, L12, L13, L14, L15 },\
+ { L20, L21, L22, L23, L24, L25 },\
+ { L30, L31, L32, L33, L34, L35 },\
+ { KC_NO, L41, L42, L43, L44, L45 },\
+ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, L36 },\
+ { R01, R02, R03, R04, R05, R06 },\
+ { R11, R12, R13, R14, R15, R16 },\
+ { R21, R22, R23, R24, R25, R26 },\
+ { R31, R32, R33, R34, R35, R36 },\
+ { R41, R42, R43, R44, R45, KC_NO },\
+ { R30, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } \
+}
diff --git a/keyboards/murcielago/readme.md b/keyboards/murcielago/readme.md
new file mode 100644
index 0000000000..d7e99ee94d
--- /dev/null
+++ b/keyboards/murcielago/readme.md
@@ -0,0 +1,16 @@
+# Murciélago (the bat)
+
+The Murciélago is a split ortholinear keyboard with 60 keys in a 6x4 layout + 6 thumb keys (per side). At the upper thumb positions, rotary encoders can be used instead of switches.
+
+* Keyboard Maintainer: [elagil](https://github.com/elagil)
+* Hardware Supported: [murcielago](https://github.com/elagil/murcielago)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make murcielago/rev1:default
+
+For compiling a via-compatible keymap, use:
+
+ make murcielago/rev1:via
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/murcielago/rev1/config.h b/keyboards/murcielago/rev1/config.h
new file mode 100644
index 0000000000..425c79e6c9
--- /dev/null
+++ b/keyboards/murcielago/rev1/config.h
@@ -0,0 +1,97 @@
+/*
+Copyright 2020 elagil
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x6166 // af
+#define PRODUCT_ID 0x0001
+#define DEVICE_VER 0x0002
+#define MANUFACTURER elagil
+#define PRODUCT Murciélago
+#define DESCRIPTION A custom keyboard with 60 keys
+
+/* key matrix size */
+#define MATRIX_ROWS 12
+#define MATRIX_COLS 6
+
+/* split options, use EEPROM for side detection */
+#define EE_HANDS
+#define SPLIT_USB_DETECT
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { B4, D5, B3, B2, B1, B0 }
+#define MATRIX_COL_PINS { C6, B6, B5, D7, D6, D4 }
+#define MATRIX_ROW_PINS_RIGHT { B3, B7, D4, B6, C6, C7 }
+#define MATRIX_COL_PINS_RIGHT { D6, D7, D3, B2, B1, B0 }
+
+#define ENCODERS_PAD_A { F0 }
+#define ENCODERS_PAD_B { F1 }
+#define ENCODERS_PAD_A_RIGHT { F6 }
+#define ENCODERS_PAD_B_RIGHT { F7 }
+
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+#define SOFT_SERIAL_PIN E6
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+
+/* disable these deprecated features by default */
+#define NO_ACTION_MACRO
+#define NO_ACTION_FUNCTION
+
+/* Bootmagic Lite key configuration */
+// #define BOOTMAGIC_LITE_ROW 0
+// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/murcielago/rev1/keymaps/default/keymap.c b/keyboards/murcielago/rev1/keymaps/default/keymap.c
new file mode 100644
index 0000000000..b3abed7631
--- /dev/null
+++ b/keyboards/murcielago/rev1/keymaps/default/keymap.c
@@ -0,0 +1,130 @@
+#include QMK_KEYBOARD_H
+
+enum layers {
+ BASE,
+ _RAISE,
+ _LOWER,
+ _POWER
+};
+
+#define PRE_WRD LCTL(KC_LEFT) // jump to next word
+#define NXT_WRD LCTL(KC_RGHT) // jump to previous word
+
+#define NXT_WDL LCTL(KC_DEL) // delete next word
+#define PRE_WDL LCTL(KC_BSPC) // delete previous word
+
+#define KC_EURO ALGR(KC_5)
+#define LA_CAP MT(MOD_LALT, KC_CAPS) // Left alt on hold, caps lock on tap
+#define RA_ENT MT(MOD_RALT, KC_ENT) // Right alt on hold, enter on tap
+
+#define RAISE MO(_RAISE) // Raise layer access
+#define LOWER MO(_LOWER) // Lower layer access
+#define POWER MO(_POWER) // Power layer access (raise and lower)
+
+/*
+ * This default keymap is aimed at users of the US international layout
+ */
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* BASE
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | =+ | 1! | 2@ | 3# | 4$ | 5% | | 6^ | 7& | 8* | 9( | 0) | -_ |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | [{ | Q | W | E | R | T | | Y | U | I | O | P | }] |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | Del | A | S | D | F | G | | H | J | K | L | ;: | '" |
+ * |------+------+------+------+------+------+------. ,------+------+------+------+------+------+------|
+ * | Sft | Z | X | C | V | B | GEsc | | Tab | N | M | ,< | .> | /? | Sft |
+ * `------------------------------------------------' `------------------------------------------------'
+ * | LA/CL| LGUI |LOWER | Back | Ctrl | |RA/Ent|Space |RAISE | RGUI | Play |
+ * `----------------------------------' `----------------------------------'
+ */
+ [BASE] = LAYOUT( /* qwerty */
+ KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ KC_LBRC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRC,
+ KC_DEL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GESC, KC_TAB, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ LA_CAP, KC_LGUI, LOWER, KC_BSPC, KC_LCTL, RA_ENT, KC_SPC, RAISE, KC_RGUI, KC_MPLY
+ ),
+
+ /* RAISE
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | RST | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | ! | @ | # | $ | % | | |PRE W | UP |NXT W | | F12 |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | ( | [ | { | < | | | LEFT | DOWN |RIGHT | | |
+ * |------+------+------+------+------+------+------. ,------+------+------+------+------+------+------|
+ * | | ~ | = | + | \ | | | | | |DEL PW| Ins |DEL NW| | |
+ * `------------------------------------------------' `------------------------------------------------'
+ * | | |POWER | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ */
+ [_RAISE] = LAYOUT( /* raise layer */
+ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, XXXXXXX, PRE_WRD, KC_UP, NXT_WRD, XXXXXXX, KC_F12,
+ _______, KC_PIPE, KC_LPRN, KC_LBRC, KC_LCBR, KC_LABK, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX,
+ _______, KC_TILD, KC_EQL, KC_PLUS, KC_BSLS, XXXXXXX, _______, _______, XXXXXXX, PRE_WDL, KC_INS, NXT_WDL, XXXXXXX, _______,
+ _______, _______, POWER, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ /* LOWER
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | RST | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | |PRE W | UP |NXT W | | | ^ | & | * | € | ? | F12 |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | LEFT | DOWN |RIGHT | | | > | } | ] | ) | | | |
+ * |------+------+------+------+------+------+------. ,------+------+------+------+------+------+------|
+ * | | |DEL PW| Ins |DEL NW| | | | | | / | - | _ | ` | |
+ * `------------------------------------------------' `------------------------------------------------'
+ * | | | | | | | | |POWER | | |
+ * `----------------------------------' `----------------------------------'
+ */
+ [_LOWER] = LAYOUT( /* lower layer */
+ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ _______, XXXXXXX, PRE_WRD, KC_UP, NXT_WRD, XXXXXXX, KC_CIRC, KC_AMPR, KC_ASTR, KC_EURO, KC_QUES, KC_F12,
+ _______, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, KC_RABK, KC_RCBR, KC_RBRC, KC_RPRN, KC_PIPE, XXXXXXX,
+ _______, XXXXXXX, PRE_WDL, KC_INS, NXT_WDL, XXXXXXX, _______, _______, XXXXXXX, KC_SLSH, KC_MINS, KC_UNDS, KC_GRV, _______,
+ _______, _______, _______, _______, _______, _______, _______, POWER, _______, _______
+ ),
+
+ /* POWER
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | RST | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | ! | @ | # | $ | % | | ^ | & | * | € | ? | F12 |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | ( | [ | { | < | | > | } | ] | ) | | | |
+ * |------+------+------+------+------+------+------. ,------+------+------+------+------+------+------|
+ * | | ~ | = | + | \ | | | | | | / | - | _ | ` | |
+ * `------------------------------------------------' `------------------------------------------------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ */
+ [_POWER] = LAYOUT( /* lower and raise combined */
+ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_EURO, KC_QUES, KC_F12,
+ _______, KC_PIPE, KC_LPRN, KC_LBRC, KC_LCBR, KC_LABK, KC_RABK, KC_RCBR, KC_RBRC, KC_RPRN, KC_PIPE, XXXXXXX,
+ _______, KC_TILD, KC_EQL, KC_PLUS, KC_BSLS, XXXXXXX, _______, _______, XXXXXXX, KC_SLSH, KC_MINS, KC_UNDS, KC_GRV, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+
+};
+
+void encoder_update_user(uint8_t index, bool clockwise) {
+ switch (get_highest_layer(layer_state)) {
+ case _RAISE:
+ if (index == 0 || index == 1) { /* Left or right encoder */
+ // Next/previous track
+ clockwise ? tap_code(KC_MNXT) : tap_code(KC_MPRV);
+ }
+ break;
+
+ default:
+ if (index == 0 || index == 1) { /* Left or right encoder */
+ // Volume up or down
+ clockwise ? tap_code(KC_VOLU) : tap_code(KC_VOLD);
+ }
+ break;
+ }
+} \ No newline at end of file
diff --git a/keyboards/murcielago/rev1/keymaps/via/keymap.c b/keyboards/murcielago/rev1/keymaps/via/keymap.c
new file mode 100644
index 0000000000..b3abed7631
--- /dev/null
+++ b/keyboards/murcielago/rev1/keymaps/via/keymap.c
@@ -0,0 +1,130 @@
+#include QMK_KEYBOARD_H
+
+enum layers {
+ BASE,
+ _RAISE,
+ _LOWER,
+ _POWER
+};
+
+#define PRE_WRD LCTL(KC_LEFT) // jump to next word
+#define NXT_WRD LCTL(KC_RGHT) // jump to previous word
+
+#define NXT_WDL LCTL(KC_DEL) // delete next word
+#define PRE_WDL LCTL(KC_BSPC) // delete previous word
+
+#define KC_EURO ALGR(KC_5)
+#define LA_CAP MT(MOD_LALT, KC_CAPS) // Left alt on hold, caps lock on tap
+#define RA_ENT MT(MOD_RALT, KC_ENT) // Right alt on hold, enter on tap
+
+#define RAISE MO(_RAISE) // Raise layer access
+#define LOWER MO(_LOWER) // Lower layer access
+#define POWER MO(_POWER) // Power layer access (raise and lower)
+
+/*
+ * This default keymap is aimed at users of the US international layout
+ */
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* BASE
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | =+ | 1! | 2@ | 3# | 4$ | 5% | | 6^ | 7& | 8* | 9( | 0) | -_ |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | [{ | Q | W | E | R | T | | Y | U | I | O | P | }] |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | Del | A | S | D | F | G | | H | J | K | L | ;: | '" |
+ * |------+------+------+------+------+------+------. ,------+------+------+------+------+------+------|
+ * | Sft | Z | X | C | V | B | GEsc | | Tab | N | M | ,< | .> | /? | Sft |
+ * `------------------------------------------------' `------------------------------------------------'
+ * | LA/CL| LGUI |LOWER | Back | Ctrl | |RA/Ent|Space |RAISE | RGUI | Play |
+ * `----------------------------------' `----------------------------------'
+ */
+ [BASE] = LAYOUT( /* qwerty */
+ KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ KC_LBRC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRC,
+ KC_DEL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GESC, KC_TAB, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ LA_CAP, KC_LGUI, LOWER, KC_BSPC, KC_LCTL, RA_ENT, KC_SPC, RAISE, KC_RGUI, KC_MPLY
+ ),
+
+ /* RAISE
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | RST | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | ! | @ | # | $ | % | | |PRE W | UP |NXT W | | F12 |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | ( | [ | { | < | | | LEFT | DOWN |RIGHT | | |
+ * |------+------+------+------+------+------+------. ,------+------+------+------+------+------+------|
+ * | | ~ | = | + | \ | | | | | |DEL PW| Ins |DEL NW| | |
+ * `------------------------------------------------' `------------------------------------------------'
+ * | | |POWER | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ */
+ [_RAISE] = LAYOUT( /* raise layer */
+ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, XXXXXXX, PRE_WRD, KC_UP, NXT_WRD, XXXXXXX, KC_F12,
+ _______, KC_PIPE, KC_LPRN, KC_LBRC, KC_LCBR, KC_LABK, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX,
+ _______, KC_TILD, KC_EQL, KC_PLUS, KC_BSLS, XXXXXXX, _______, _______, XXXXXXX, PRE_WDL, KC_INS, NXT_WDL, XXXXXXX, _______,
+ _______, _______, POWER, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ /* LOWER
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | RST | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | |PRE W | UP |NXT W | | | ^ | & | * | € | ? | F12 |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | LEFT | DOWN |RIGHT | | | > | } | ] | ) | | | |
+ * |------+------+------+------+------+------+------. ,------+------+------+------+------+------+------|
+ * | | |DEL PW| Ins |DEL NW| | | | | | / | - | _ | ` | |
+ * `------------------------------------------------' `------------------------------------------------'
+ * | | | | | | | | |POWER | | |
+ * `----------------------------------' `----------------------------------'
+ */
+ [_LOWER] = LAYOUT( /* lower layer */
+ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ _______, XXXXXXX, PRE_WRD, KC_UP, NXT_WRD, XXXXXXX, KC_CIRC, KC_AMPR, KC_ASTR, KC_EURO, KC_QUES, KC_F12,
+ _______, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, KC_RABK, KC_RCBR, KC_RBRC, KC_RPRN, KC_PIPE, XXXXXXX,
+ _______, XXXXXXX, PRE_WDL, KC_INS, NXT_WDL, XXXXXXX, _______, _______, XXXXXXX, KC_SLSH, KC_MINS, KC_UNDS, KC_GRV, _______,
+ _______, _______, _______, _______, _______, _______, _______, POWER, _______, _______
+ ),
+
+ /* POWER
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | RST | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | ! | @ | # | $ | % | | ^ | & | * | € | ? | F12 |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | ( | [ | { | < | | > | } | ] | ) | | | |
+ * |------+------+------+------+------+------+------. ,------+------+------+------+------+------+------|
+ * | | ~ | = | + | \ | | | | | | / | - | _ | ` | |
+ * `------------------------------------------------' `------------------------------------------------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ */
+ [_POWER] = LAYOUT( /* lower and raise combined */
+ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_EURO, KC_QUES, KC_F12,
+ _______, KC_PIPE, KC_LPRN, KC_LBRC, KC_LCBR, KC_LABK, KC_RABK, KC_RCBR, KC_RBRC, KC_RPRN, KC_PIPE, XXXXXXX,
+ _______, KC_TILD, KC_EQL, KC_PLUS, KC_BSLS, XXXXXXX, _______, _______, XXXXXXX, KC_SLSH, KC_MINS, KC_UNDS, KC_GRV, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+
+};
+
+void encoder_update_user(uint8_t index, bool clockwise) {
+ switch (get_highest_layer(layer_state)) {
+ case _RAISE:
+ if (index == 0 || index == 1) { /* Left or right encoder */
+ // Next/previous track
+ clockwise ? tap_code(KC_MNXT) : tap_code(KC_MPRV);
+ }
+ break;
+
+ default:
+ if (index == 0 || index == 1) { /* Left or right encoder */
+ // Volume up or down
+ clockwise ? tap_code(KC_VOLU) : tap_code(KC_VOLD);
+ }
+ break;
+ }
+} \ No newline at end of file
diff --git a/keyboards/murcielago/rev1/keymaps/via/rules.mk b/keyboards/murcielago/rev1/keymaps/via/rules.mk
new file mode 100644
index 0000000000..036bd6d1c3
--- /dev/null
+++ b/keyboards/murcielago/rev1/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/murcielago/rev1/rules.mk b/keyboards/murcielago/rev1/rules.mk
new file mode 100644
index 0000000000..f8faea6c3b
--- /dev/null
+++ b/keyboards/murcielago/rev1/rules.mk
@@ -0,0 +1,34 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
+SPLIT_KEYBOARD = yes # Enable split keyboard mode
+ENCODER_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/murcielago/rules.mk b/keyboards/murcielago/rules.mk
new file mode 100644
index 0000000000..661563697a
--- /dev/null
+++ b/keyboards/murcielago/rules.mk
@@ -0,0 +1 @@
+DEFAULT_FOLDER = murcielago/rev1 \ No newline at end of file
diff --git a/keyboards/pabile/p18/config.h b/keyboards/pabile/p18/config.h
new file mode 100644
index 0000000000..f7c258a565
--- /dev/null
+++ b/keyboards/pabile/p18/config.h
@@ -0,0 +1,27 @@
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x6666
+#define PRODUCT_ID 0x6668
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Pabile
+#define PRODUCT P18 Macro Pad
+#define DESCRIPTION An 18-key DIY macropad kit
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 5
+
+/* pin-out for PROMICRO */
+#define MATRIX_ROW_PINS { D1, D0, D4, C6 }
+#define MATRIX_COL_PINS { D2, D7, E6, B4, B5 }
+#define UNUSED_PINS
+
+/* Encoder position for PROMICRO */
+#define ENCODERS_PAD_A { B6, F6 }
+#define ENCODERS_PAD_B { F4, F5 }
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
diff --git a/keyboards/pabile/p18/info.json b/keyboards/pabile/p18/info.json
new file mode 100644
index 0000000000..3f215a4519
--- /dev/null
+++ b/keyboards/pabile/p18/info.json
@@ -0,0 +1,31 @@
+{
+ "keyboard_name": "Pabile 18",
+ "url": "https://pabileonline.blogspot.com/",
+ "maintainer": "Pabile",
+ "width": 5.25,
+ "height": 4,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"x":1.25, "y":0},
+ {"x":2.25, "y":0},
+ {"x":3.25, "y":0},
+ {"x":4.25, "y":0},
+ {"x":1.25, "y":1},
+ {"x":2.25, "y":1},
+ {"x":3.25, "y":1},
+ {"x":4.25, "y":1},
+ {"x":0, "y":2},
+ {"x":1.25, "y":2},
+ {"x":2.25, "y":2},
+ {"x":3.25, "y":2},
+ {"x":4.25, "y":2},
+ {"x":0, "y":3},
+ {"x":1.25, "y":3},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3}
+ ]
+ }
+ }
+}
diff --git a/keyboards/pabile/p18/keymaps/default/keymap.c b/keyboards/pabile/p18/keymaps/default/keymap.c
new file mode 100644
index 0000000000..d47982e562
--- /dev/null
+++ b/keyboards/pabile/p18/keymaps/default/keymap.c
@@ -0,0 +1,27 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ KC_P7, KC_P8, KC_P9, KC_PMNS,
+ KC_P4, KC_P5, KC_P6, KC_PPLS,
+ KC_MUTE, KC_P1, KC_P2, KC_P3, KC_TAB,
+ KC_ESC, KC_DEL, KC_P0, KC_PDOT, KC_PENT
+ )
+
+};
+
+void encoder_update_user(uint8_t index, bool clockwise) {
+ if (index == 0) { /* First encoder below the controller */
+ if (clockwise) {
+ tap_code(KC_VOLD); /*volume down*/
+ } else {
+ tap_code(KC_VOLU); /*volume up*/
+ }
+ } else if (index == 1) { /* Second encoder */
+ if (clockwise) {
+ tap_code(KC_WH_U); /*mouse wheel up*/
+ } else {
+ tap_code(KC_WH_D); /*mouse wheel down*/
+ }
+ }
+}
diff --git a/keyboards/pabile/p18/p18.c b/keyboards/pabile/p18/p18.c
new file mode 100644
index 0000000000..94e74a8315
--- /dev/null
+++ b/keyboards/pabile/p18/p18.c
@@ -0,0 +1 @@
+#include "p18.h"
diff --git a/keyboards/pabile/p18/p18.h b/keyboards/pabile/p18/p18.h
new file mode 100644
index 0000000000..3be26191ce
--- /dev/null
+++ b/keyboards/pabile/p18/p18.h
@@ -0,0 +1,16 @@
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT( \
+ k01, k02, k03, k04, \
+ k11, k12, k13, k14, \
+ k20, k21, k22, k23, k24, \
+ k30, k31, k32, k33, k34 \
+) \
+{ \
+ {KC_NO, k04, k03, k02, k01}, \
+ {KC_NO, k14, k13, k12, k11}, \
+ {k20, k24, k23, k22, k21}, \
+ {k30, k34, k33, k32, k31} \
+}
diff --git a/keyboards/pabile/p18/readme.md b/keyboards/pabile/p18/readme.md
new file mode 100644
index 0000000000..57478c2359
--- /dev/null
+++ b/keyboards/pabile/p18/readme.md
@@ -0,0 +1,15 @@
+# P18
+
+![render](https://i.imgur.com/CPtGiSL.png)
+
+A 18-key DIY Hotswap Macropad that accepts both Pro Micro and Adafruit Feather 32u4 Bluefruit LE.
+
+* Keyboard Maintainer: [pabile](https://github.com/pabile)
+* Hardware Supported: Pabile P18 PCB with Pro Micro or Adafruit Feather 32u4 Bluefruit LE
+* Hardware Availability: [Info at pabileonline.blogspot.com](https://pabileonline.blogspot.com/search/label/pabile18)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make pabile/p18:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/pabile/p18/rules.mk b/keyboards/pabile/p18/rules.mk
new file mode 100644
index 0000000000..4a84739de0
--- /dev/null
+++ b/keyboards/pabile/p18/rules.mk
@@ -0,0 +1,35 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = caterina
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
+UNICODE_ENABLE = yes # Unicode
+IOS_DEVICE_ENABLE = no # connect to IOS Device
+ENCODER_ENABLE = yes
diff --git a/keyboards/pabile/p20/config.h b/keyboards/pabile/p20/config.h
new file mode 100644
index 0000000000..8a52c1bf1c
--- /dev/null
+++ b/keyboards/pabile/p20/config.h
@@ -0,0 +1,26 @@
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x6666
+#define PRODUCT_ID 0x6667
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Pabile
+#define PRODUCT P20
+#define DESCRIPTION 5x4 Macropad
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 4
+
+/* pin-out */
+#define MATRIX_ROW_PINS { B3, B4, B5, D7, E6 }
+#define MATRIX_COL_PINS { D0, B2, D4, B6 }
+#define UNUSED_PINS
+
+#define ENCODERS_PAD_A { F5, F7 }
+#define ENCODERS_PAD_B { F6, B1 }
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
diff --git a/keyboards/pabile/p20/keymaps/default/keymap.c b/keyboards/pabile/p20/keymaps/default/keymap.c
new file mode 100644
index 0000000000..6b815e72e8
--- /dev/null
+++ b/keyboards/pabile/p20/keymaps/default/keymap.c
@@ -0,0 +1,38 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_ortho_5x4(
+ KC_PSLS, KC_PMNS, KC_PAST, KC_MPLY,
+ KC_P7, KC_P8, KC_P9, KC_PMNS,
+ KC_P4, KC_P5, KC_P6, KC_PPLS,
+ KC_P1, KC_P2, KC_P3, KC_TAB,
+ LT(2,KC_P0), KC_PCMM, KC_PDOT, LT(1,KC_PENT)),
+ [1] = LAYOUT_ortho_5x4(
+ KC_NLCK, KC_UNDS, KC_NO, KC_NO,
+ KC_AMPR, KC_ASTR, KC_LPRN, KC_EQL,
+ KC_DLR, KC_PERC, KC_CIRC, KC_NO,
+ KC_EXLM, KC_AT, KC_HASH, KC_NO,
+ KC_RPRN, KC_NO, KC_PSLS, KC_NO),
+ [2] = LAYOUT_ortho_5x4(
+ KC_NLCK, KC_NO, KC_NO, KC_NO,
+ KC_BTN1, KC_MS_U, KC_BTN2, KC_NO,
+ KC_MS_L, KC_MS_D, KC_MS_R, KC_TAB,
+ KC_WH_U, KC_NO, KC_WH_D, KC_NO,
+ KC_NO, KC_NO, KC_DEL, KC_ESC)
+};
+
+void encoder_update_user(uint8_t index, bool clockwise) {
+ if (index == 0) { /* First encoder */
+ if (clockwise) {
+ tap_code(KC_WH_U); /*mouse wheel up*/
+ } else {
+ tap_code(KC_WH_D); /*mouse wheel down */
+ }
+ } else if (index == 1) { /* Second encoder */
+ if (clockwise) {
+ tap_code(KC_VOLD); /*volume down*/
+ } else {
+ tap_code(KC_VOLU); /*volume up*/
+ }
+ }
+}
diff --git a/keyboards/pabile/p20/p20.c b/keyboards/pabile/p20/p20.c
new file mode 100644
index 0000000000..c17efac9b1
--- /dev/null
+++ b/keyboards/pabile/p20/p20.c
@@ -0,0 +1 @@
+#include "p20.h"
diff --git a/keyboards/pabile/p20/p20.h b/keyboards/pabile/p20/p20.h
new file mode 100644
index 0000000000..b7467dc150
--- /dev/null
+++ b/keyboards/pabile/p20/p20.h
@@ -0,0 +1,18 @@
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT_ortho_5x4( \
+ k00, k01, k02, k03, \
+ k10, k11, k12, k13, \
+ k20, k21, k22, k23, \
+ k30, k31, k32, k33, \
+ k40, k41, k42, k43 \
+) \
+{ \
+ {k00, k01, k02, k03}, \
+ {k10, k11, k12, k13}, \
+ {k20, k21, k22, k23}, \
+ {k30, k31, k32, k33}, \
+ {k40, k41, k42, k43} \
+}
diff --git a/keyboards/pabile/p20/readme.md b/keyboards/pabile/p20/readme.md
new file mode 100644
index 0000000000..256a4772ec
--- /dev/null
+++ b/keyboards/pabile/p20/readme.md
@@ -0,0 +1,16 @@
+# P20
+
+![Linear grid](https://github.com/pabile/Pabile20/blob/master/_bak/layout-grid.jpg)
+![Numeric pad](https://github.com/pabile/Pabile20/blob/master/_bak/layout-numpad.jpg)
+
+A 5x4 grid keyboard with 2 rotary encoders.
+
+* Keyboard Maintainer: [pabile](https://github.com/pabile)
+* Hardware Supported: Pabile P20 PCB, Pro Micro
+* Hardware Availability: [Info at pabileonline.blogspot.com](https://pabileonline.blogspot.com/search/label/pabile20)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make pabile/p20:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/pabile/p20/rules.mk b/keyboards/pabile/p20/rules.mk
new file mode 100644
index 0000000000..d4fa25323a
--- /dev/null
+++ b/keyboards/pabile/p20/rules.mk
@@ -0,0 +1,37 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = caterina
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
+UNICODE_ENABLE = yes # Unicode
+IOS_DEVICE_ENABLE = no # connect to IOS Device
+ENCODER_ENABLE = yes
+
+LAYOUTS = ortho_5x4
diff --git a/keyboards/pabile/p40/config.h b/keyboards/pabile/p40/config.h
new file mode 100644
index 0000000000..f4252f7ab0
--- /dev/null
+++ b/keyboards/pabile/p40/config.h
@@ -0,0 +1,29 @@
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x6666
+#define PRODUCT_ID 0x6666
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Pabile
+#define PRODUCT P40 Keyboard
+#define DESCRIPTION 4x10 staggered keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 10
+
+/* pin-out
+for PCB ver0.01 452019 */
+#define MATRIX_ROW_PINS { F6, B3, B2, B6 }
+#define MATRIX_COL_PINS { F4, F5, B5, B4, E6, D7, C6, D4, D0, D1 }
+/*
+for pro micro facing back of pcb
+#define MATRIX_ROW_PINS { D4, E6, B4, B5 }
+#define MATRIX_COL_PINS { D1, D0, B6, B2, B3, B1, F7, F6, F5, F4 }
+*/
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
diff --git a/keyboards/pabile/p40/info.json b/keyboards/pabile/p40/info.json
new file mode 100644
index 0000000000..42f9b4823e
--- /dev/null
+++ b/keyboards/pabile/p40/info.json
@@ -0,0 +1,52 @@
+{
+ "keyboard_name": "Pabile 40",
+ "url": "https://pabileonline.blogspot.com/",
+ "maintainer": "Pabile",
+ "width": 10.75,
+ "height": 4,
+ "layouts": {
+ "LAYOUT_ortho_4x10": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":0.25, "y":1},
+ {"x":1.25, "y":1},
+ {"x":2.25, "y":1},
+ {"x":3.25, "y":1},
+ {"x":4.25, "y":1},
+ {"x":5.25, "y":1},
+ {"x":6.25, "y":1},
+ {"x":7.25, "y":1},
+ {"x":8.25, "y":1},
+ {"x":9.25, "y":1},
+ {"x":0.5, "y":2},
+ {"x":1.5, "y":2},
+ {"x":2.5, "y":2},
+ {"x":3.5, "y":2},
+ {"x":4.5, "y":2},
+ {"x":5.5, "y":2},
+ {"x":6.5, "y":2},
+ {"x":7.5, "y":2},
+ {"x":8.5, "y":2},
+ {"x":9.5, "y":2},
+ {"x":0.75, "y":3},
+ {"x":1.75, "y":3},
+ {"x":2.75, "y":3},
+ {"x":3.75, "y":3},
+ {"x":4.75, "y":3},
+ {"x":5.75, "y":3},
+ {"x":6.75, "y":3},
+ {"x":7.75, "y":3},
+ {"x":8.75, "y":3},
+ {"x":9.75, "y":3}]
+ }
+ }
+}
diff --git a/keyboards/pabile/p40/keymaps/default/keymap.c b/keyboards/pabile/p40/keymaps/default/keymap.c
new file mode 100644
index 0000000000..80035fa07d
--- /dev/null
+++ b/keyboards/pabile/p40/keymaps/default/keymap.c
@@ -0,0 +1,29 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_ortho_4x10(
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
+ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(3,KC_MINS),
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, LT(4,KC_SLSH),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, LT(2,KC_BSPC), LT(1,KC_SPC), KC_ENT, KC_APP, KC_DEL, KC_ESC),
+ [1] = LAYOUT_ortho_4x10(
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
+ KC_TAB, KC_NO, KC_NO, KC_GRV, KC_LBRC, KC_RBRC, KC_BSLS, KC_SCLN, KC_QUOT, KC_MINS,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_EQL, KC_MINS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+ [2] = LAYOUT_ortho_4x10(
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
+ KC_TAB, KC_F11, KC_F12, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_CAPS, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NLCK, KC_NO, KC_VOLD, KC_VOLU, KC_MUTE,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO),
+ [3] = LAYOUT_ortho_4x10(
+ KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_INS, KC_PGUP, KC_UP, KC_PGDN, KC_DEL,
+ KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_END, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO),
+ [4] = LAYOUT_ortho_4x10(
+ KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN1, KC_MS_U, KC_BTN2, KC_DEL,
+ KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_U, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_D, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO)
+};
diff --git a/keyboards/pabile/p40/p40.c b/keyboards/pabile/p40/p40.c
new file mode 100644
index 0000000000..b1bfb7de2b
--- /dev/null
+++ b/keyboards/pabile/p40/p40.c
@@ -0,0 +1 @@
+#include "p40.h"
diff --git a/keyboards/pabile/p40/p40.h b/keyboards/pabile/p40/p40.h
new file mode 100644
index 0000000000..4e1e08a6fc
--- /dev/null
+++ b/keyboards/pabile/p40/p40.h
@@ -0,0 +1,16 @@
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT_ortho_4x10( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39 \
+) \
+{ \
+ {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09}, \
+ {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19}, \
+ {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29}, \
+ {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39} \
+}
diff --git a/keyboards/pabile/p40/readme.md b/keyboards/pabile/p40/readme.md
new file mode 100644
index 0000000000..33a657f384
--- /dev/null
+++ b/keyboards/pabile/p40/readme.md
@@ -0,0 +1,15 @@
+# P40
+
+![prototype photo1](https://github.com/pabile/Pabile40/blob/master/_bak/web-DSCN9033.jpg)
+
+A compact 4x10 (40%) staggered DIY keyboard kit.
+
+* Keyboard Maintainer: [pabile](https://github.com/pabile)
+* Hardware Supported: Pabile P40 PCB, Pro Micro
+* Hardware Availability: [Info at pabileonline.blogspot.com](https://pabileonline.blogspot.com/search/label/pabile40)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make pabile/p40:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/pabile/p40/rules.mk b/keyboards/pabile/p40/rules.mk
new file mode 100644
index 0000000000..2b5d9470a8
--- /dev/null
+++ b/keyboards/pabile/p40/rules.mk
@@ -0,0 +1,36 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = caterina
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = yes # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI controls
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
+UNICODE_ENABLE = yes # Unicode
+IOS_DEVICE_ENABLE = no # connect to IOS Device
+
+LAYOUTS = ortho_4x10
diff --git a/keyboards/panc60/rules.mk b/keyboards/panc60/rules.mk
index 26b9f0ce4d..1c4d832054 100644
--- a/keyboards/panc60/rules.mk
+++ b/keyboards/panc60/rules.mk
@@ -21,6 +21,4 @@ BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
-OPT_DEFS = -DDEBUG_LEVEL=0
-
LAYOUTS = 60_ansi 60_hhkb
diff --git a/keyboards/pearl/rules.mk b/keyboards/pearl/rules.mk
index a9746c0d3d..981f6b514f 100644
--- a/keyboards/pearl/rules.mk
+++ b/keyboards/pearl/rules.mk
@@ -20,5 +20,3 @@ COMMAND_ENABLE = yes
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
-
-OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/percent/canoe/rules.mk b/keyboards/percent/canoe/rules.mk
index 8b30163be4..628a5b88ee 100644
--- a/keyboards/percent/canoe/rules.mk
+++ b/keyboards/percent/canoe/rules.mk
@@ -21,6 +21,4 @@ BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
-OPT_DEFS = -DDEBUG_LEVEL=0
-
LAYOUTS = 65_ansi_blocker 65_iso_blocker
diff --git a/keyboards/percent/skog/rules.mk b/keyboards/percent/skog/rules.mk
index 0274845644..fbfa30d0fb 100644
--- a/keyboards/percent/skog/rules.mk
+++ b/keyboards/percent/skog/rules.mk
@@ -21,7 +21,5 @@ BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
-OPT_DEFS = -DDEBUG_LEVEL=0
-
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/percent/skog_lite/rules.mk b/keyboards/percent/skog_lite/rules.mk
index dbcb6c1888..119fb72637 100644
--- a/keyboards/percent/skog_lite/rules.mk
+++ b/keyboards/percent/skog_lite/rules.mk
@@ -23,6 +23,4 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
WS2812_DRIVER = i2c
-OPT_DEFS = -DDEBUG_LEVEL=0
-
LAYOUTS = tkl_ansi
diff --git a/keyboards/plaid/rules.mk b/keyboards/plaid/rules.mk
index 068ebe4ba9..7c4112c9aa 100644
--- a/keyboards/plaid/rules.mk
+++ b/keyboards/plaid/rules.mk
@@ -11,9 +11,6 @@ MCU = atmega328p
# ATmega328P USBasp
BOOTLOADER = USBasp
-# disable debug code
-OPT_DEFS = -DDEBUG_LEVEL=0
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_brett.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_brett.c
deleted file mode 100644
index cdebcd1433..0000000000
--- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_brett.c
+++ /dev/null
@@ -1,42 +0,0 @@
-#include "keymap.h"
-
-#define KC_MO1 MO(1)
-#define KC_MO2 MO(2)
-
-const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = KEYMAP(
- ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC,
- LCTL, A, S, D, F, G, H, J, K, L, SCLN, ENT,
- LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT,
- TAB, LGUI, RSFT, LALT, MO2, SPC, MO1, LEFT, DOWN, UP, RGHT),
-[1] = KEYMAP( /* RAISE */
- GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, DEL,
- TRNS, F1, F2, F3, F4, F5, F6, 4, 5, 6, QUOT, TRNS,
- TRNS, F7, F8, F9, F10, F11, F12, 1, 2, 3, TRNS, PGUP,
- MPRV, MNXT, TRNS, MUTE, TRNS, TRNS, MO1, 0, 0, TRNS, PGDN),
-[2] = KEYMAP( /* LOWER */
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MINS,
- TRNS, TRNS, TRNS, PAUSE, TRNS, TRNS, TRNS, TRNS, LBRC, RBRC, BSLS, EQL,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- MPLY, MSTP, VOLU, VOLD, MO2, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
-};
-const uint16_t PROGMEM fn_actions[] = {
- [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1),
- [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2),
- [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3),
- [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4),
- [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5),
- [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6),
- [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7),
- [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8),
- [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9),
- [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0),
- [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS),
- [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL),
- [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV),
- [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC),
- [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC),
- [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS),
-
- [29] = ACTION_MODS_KEY(MOD_LSFT | MOD_RSFT, KC_PAUSE),
-};
diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_dotcom.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_dotcom.c
deleted file mode 100644
index 5a85a6086c..0000000000
--- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_dotcom.c
+++ /dev/null
@@ -1,34 +0,0 @@
-#include "keymap.h"
-
-#define KC_MO1 MO(1)
-
-const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = KEYMAP(
- ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC,
- MO1, A, S, D, F, G, H, J, K, L, SCLN, ENT,
- LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, LBRC,
- LCTL, BSLS, QUOT, LALT, FN22, SPC, LEFT, UP, DOWN, RGHT, RBRC),
-[1] = KEYMAP(
- GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, DEL,
- TRNS, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, TRNS, TRNS, TRNS,
- TRNS, FN18, FN19, FN22, EQL, MINS, FN20, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MO1, TRNS, VOLD, VOLU, TRNS),
-};
-const uint16_t PROGMEM fn_actions[] = {
- [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1),
- [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2),
- [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3),
- [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4),
- [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5),
- [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6),
- [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7),
- [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8),
- [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9),
- [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0),
- [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS),
- [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL),
- [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV),
- [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC),
- [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC),
- [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS),
-};
diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_jack.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_jack.c
deleted file mode 100644
index 14db7feaa0..0000000000
--- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_jack.c
+++ /dev/null
@@ -1,50 +0,0 @@
-#include "keymap.h"
-
-#define KC_MO2 MO(2)
-#define KC_MO3 MO(3)
-
-const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = KEYMAP( /* Jack */
- TAB, Q, W, E, R, T, Y, U, I, O, P, BSPC,
- ESC, A, S, D, F, G, H, J, K, L, SCLN, QUOT,
- LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, ENT,
- RSFT, LCTL, LALT, LGUI, MO3, SPC, MO2, LEFT, DOWN, UP, RGHT),
-[1] = KEYMAP( /* Jack colemak */
- TAB, Q, W, F, P, G, J, L, U, Y, SCLN, BSPC,
- ESC, A, R, S, T, D, H, N, E, I, O, QUOT,
- LSFT, Z, X, C, V, B, K, M, COMM, DOT, SLSH, ENT,
- FN3, LCTL, LALT, LGUI, MO3, SPC, MO2, LEFT, DOWN, UP, RGHT),
-[2] = KEYMAP( /* Jack RAISE */
- GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSPC,
- TRNS, FN3, FN4, PAUSE, TRNS, TRNS, TRNS, MINS, EQL, LBRC, RBRC, BSLS,
- TRNS, F11, F12, F13, F14, F15, F16, F17, F18, F19, F20, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MO2, MNXT, VOLD, VOLU, MPLY),
-[3] = KEYMAP( /* Jack LOWER */
- FN22, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, FN18, FN19, BSPC,
- TRNS, FN3, FN4, PAUSE, TRNS, TRNS, TRNS, FN20, FN21, FN23, FN24, FN28,
- TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, TRNS,
- TRNS, TRNS, TRNS, TRNS, MO3, TRNS, TRNS, MNXT, VOLD, VOLU, MPLY),
-};
-const uint16_t PROGMEM fn_actions[] = {
- [3] = ACTION_DEFAULT_LAYER_SET(0),
- [4] = ACTION_DEFAULT_LAYER_SET(1),
-
- [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1),
- [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2),
- [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3),
- [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4),
- [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5),
- [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6),
- [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7),
- [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8),
- [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9),
- [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0),
- [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS),
- [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL),
- [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV),
- [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC),
- [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC),
- [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS),
-
- [29] = ACTION_MODS_KEY(MOD_LSFT | MOD_RSFT, KC_PAUSE),
-};
diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_joe.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_joe.c
deleted file mode 100644
index efd188a8ee..0000000000
--- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_joe.c
+++ /dev/null
@@ -1,83 +0,0 @@
-#include "keymap.h"
-
-#define KC_MO2 MO(2)
-#define KC_MO3 MO(3)
-#define KC_MO4 MO(4)
-
-const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = KEYMAP( /* Joe qwerty */
- ESC, Q, W, E, R, T, Y, U, I, O, P, MINS,
- BSPC, A, S, D, F, G, H, J, K, L, SCLN, ENTER,
- FN7, Z, X, C, V, B, N, M, COMM, DOT, SLSH, QUOT,
- LCTL, LGUI, LALT, LSFT, MO3, SPC, MO2, LEFT, UP, DOWN, RGHT),
-[1] = KEYMAP( /* Joe colemak */
- ESC, Q, W, F, P, G, J, L, U, Y, SCLN, MINS,
- BSPC, A, R, S, T, D, H, N, E, I, O, ENTER,
- FN7, Z, X, C, V, B, K, M, COMM, DOT, SLSH, QUOT,
- LCTL, LGUI, LALT, LSFT, MO3, SPC, MO2, LEFT, UP, DOWN, RGHT),
-[2] = KEYMAP( /* Joe UPPER */
- F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12,
- DEL, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, MENU, CAPS, INS, PSCR, TRNS, FN5, FN6,
- TRNS, TRNS, TRNS, TRNS, MO4, TRNS, MO2, FN26, FN27, FN28, FN29),
-[3] = KEYMAP( /* Joe LOWER */
- GRV, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN8, FN9, FN30,
- BSPC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, TRNS,
- BSLS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC, RBRC, TRNS, EQL,
- TRNS, TRNS, TRNS, TRNS, MO3, TRNS, MO4, HOME, PGUP, PGDN, END),
-[4] = KEYMAP( /* Joe LOWER + UPPER */
- FN3, FN4, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, SLEP,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MUTE, VOLD, VOLU, MPLY),
-};
-
-enum macro_id {
- M_Q0,
- M_Q1,
- M_Q2
-};
-
-const uint16_t PROGMEM fn_actions[] = {
- [3] = ACTION_DEFAULT_LAYER_SET(0),
- [4] = ACTION_DEFAULT_LAYER_SET(1),
-
- [5] = ACTION_MODS_KEY(MOD_LCTL, KC_PGUP),
- [6] = ACTION_MODS_KEY(MOD_LCTL, KC_PGDN),
-
- /* tab on tap, shift on hold */
- [7] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_TAB),
-
- [8] = ACTION_MACRO(M_Q0),
- [9] = ACTION_MACRO(M_Q1),
-
- [26] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT, KC_LEFT),
- [27] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT, KC_UP),
- [28] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT, KC_DOWN),
- [29] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT, KC_RGHT),
-
- [30] = ACTION_MACRO(M_Q2),
-};
-
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
-{
- keyevent_t event = record->event;
- switch (id) {
- case M_Q0:
- /* :( | ): */
- return event.pressed ?
- MACRO( D(LSFT), T(P), T(9), T(SPC), T(SPC), T(0), T(P), U(LSFT), T(LEFT), T(LEFT), T(LEFT), END ) :
- MACRO_NONE;
- case M_Q1:
- /* (: | :) */
- return event.pressed ?
- MACRO( D(LSFT), T(9), T(P), T(SPC), T(SPC), T(P), T(0), U(LSFT), T(LEFT), T(LEFT), T(LEFT), END ) :
- MACRO_NONE;
- case M_Q2:
- /* :) */
- return event.pressed ?
- MACRO( D(LSFT), T(P), T(0), U(LSFT), END ) :
- MACRO_NONE;
- }
- return MACRO_NONE;
-}
diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_matthew.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_matthew.c
deleted file mode 100644
index fe0dfa619c..0000000000
--- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_matthew.c
+++ /dev/null
@@ -1,70 +0,0 @@
-// by Matthew Pepers - https://github.com/pepers
-
-/* grid planck layout - modified programmer dvorak
-,-----------------------------------------------------------------------------------------------.
-| pause | @ | | | ^ | | | | | * | # | $ | del |
-| esc | ; : | , < | . > | P | Y | F | G | G | C | R | bkspc |
-| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
-|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|
-| & | / | { | ( | [ | = | ! | ] | ) | } | \ | + |
-| ` ~ | A | O | E | U | I | D | H | T | N | S | - _ |
-| % | 7 | 5 | 3 | 1 | 9 | 0 | 2 | 4 | 6 | 8 | ? |
-|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|
-| | | | | | | | | | | | prtsc |
-| tab | ' " | Q | J | K | X | B | M | W | V | Z | retrn |
-| | | | | | | | | | | | insrt |
-|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|
-| | | | | | | | | | | | |
-| lctrl | lgui | lalt | ralt | lower | shift | space | raise | left | down | up | right |
-| | | | | | | | | home | pgdn | pgup | end |
-`-----------------------------------------------------------------------------------------------'
-*/
-
-#include "keymap.h"
-
-#define KC_MO1 MO(1)
-#define KC_MO2 MO(2)
-
-const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* 0: dvorak */
- [0] = KEYMAP_GRID( ESC, SCLN, COMM, DOT, P, Y, F, G, C, R, L, BSPC, \
- GRV, A, O, E, U, I, D, H, T, N, S, MINS, \
- TAB, QUOT, Q, J, K, X, B, M, W, V, Z, ENT, \
- LCTL, LGUI, LALT, RALT, MO1, LSFT, SPC, MO2, LEFT, DOWN, UP, RGHT),
-
- /* 1: lower (FN1) */
- [1] = KEYMAP_GRID( F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, \
- FN17, 7, 5, 3, 1, 9, 0, 2, 4, 6, 8, FN18, \
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, INS, \
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGDN, PGUP, END),
-
- /* 2: raise (FN2) */
- [2] = KEYMAP_GRID(PAUS, FN19, FN20, FN21, TRNS, TRNS, TRNS, TRNS, FN22, FN23, FN24, DEL, \
- FN10, SLSH, FN11, FN12, LBRC, EQL, FN13, RBRC, FN14, FN15, BSLS, FN16, \
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PSCR, \
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
-
-};
-
-const uint16_t PROGMEM fn_actions[] = {
- // lower row1
- [17] = ACTION_MODS_KEY(MOD_LSFT, KC_5), // %
- [18] = ACTION_MODS_KEY(MOD_LSFT, KC_SLASH), // ?
-
- // raise row0
- [19] = ACTION_MODS_KEY(MOD_LSFT, KC_2), // @
- [20] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLASH), // |
- [21] = ACTION_MODS_KEY(MOD_LSFT, KC_6), // ^
- [22] = ACTION_MODS_KEY(MOD_LSFT, KC_8), // *
- [23] = ACTION_MODS_KEY(MOD_LSFT, KC_3), // #
- [24] = ACTION_MODS_KEY(MOD_LSFT, KC_4), // $
-
- // raise row1
- [10] = ACTION_MODS_KEY(MOD_LSFT, KC_7), // &
- [11] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRACKET), // {
- [12] = ACTION_MODS_KEY(MOD_LSFT, KC_9), // (
- [13] = ACTION_MODS_KEY(MOD_LSFT, KC_1), // !
- [14] = ACTION_MODS_KEY(MOD_LSFT, KC_0), // )
- [15] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRACKET), // }
- [16] = ACTION_MODS_KEY(MOD_LSFT, KC_EQUAL), // +
-};
diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_nathan.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_nathan.c
deleted file mode 100644
index 7cc5e7f0ac..0000000000
--- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_nathan.c
+++ /dev/null
@@ -1,154 +0,0 @@
-// Author: Nathan Ross Powell <nathanrospowell@gmail.com>
-// https://github.com/nathanrosspowell/tmk_keyboard/blob/planck-jack/keyboard/planck/keymap_nathan.c
-
-#include "keymap.h"
-
-#define KC_MO1 MO(1)
-#define KC_MO2 MO(2)
-
-const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* 0: main layer
- * ,-----------------------------------------------------------------------.
- * |Tab | q | w | e | r | t | y | u | i | o | p | BS |
- * |-----------------------------------------------------------------------|
- * |Ctrl | a | s | d | f | g | h | j | k | l | ; | Ret |
- * |-----------------------------------------------------------------------|
- * |Shift| z | x | c | v | b | n | m | [ | ( | { | < |
- * |-----------------------------------------------------------------------|
- * |Meta | \ | / | Alt |Lower|Space|Space|Upper|Left |Down | Up |Right|
- * `-----------------------------------------------------------------------'
- */
- [0] = KEYMAP_GRID(
- TAB, Q, W, E, R, T, Y, U, I, O, P, BSPC,
- LCTL, A, S, D, F, G, H, J, K, L, SCLN, ENT,
- RSFT, Z, X, C, V, B, N, M, LBRC, FN10, FN11, FN12,
- LGUI, BSLS, SLSH, LALT, MO1, SPC, SPC, MO2, LEFT, DOWN, UP, RGHT),
-
- /* 1: fn left/lower layer
- * The top row are Visual Studio combos:
- * 'Run', 'Breakpoint', 'Step over', 'Step into', 'Set cursor to line'
- * 2nd row are key combos:
- * 'ctrl-alt-delete', 'ctrl-shift-escape'
- * 3rd row are macros keys:
- * 'P0' - 'P5' execute a script on Windows machines
- * ,-----------------------------------------------------------------------.
- * | ESC | F5 | F9 | F10 | F11 |S+F11|CSF10|NLock|Num7 |Num8 |Num9 | Del |
- * |-----------------------------------------------------------------------|
- * | |C/A/D|C/S/E| Ins |Print|Pause|SLock|Num0 |Num4 |Num5 |Num6 |Num= |
- * |-----------------------------------------------------------------------|
- * | | P0 | P1 | P2 | P3 | P4 | P5 |Num. |Num1 |Num2 |Num3 |Num/ |
- * |-----------------------------------------------------------------------|
- * | |User | | | | | | |Home |PgDn |PgUp | End |
- * `-----------------------------------------------------------------------'
- */
- [1] = KEYMAP_GRID(
- ESC, F5, F9, F10, F11, FN30, FN31, NLCK, P7, P8, P9, DEL,
- TRNS, FN16, FN17, INS, PSCR, PAUS, SLCK, P0, P4, P5, P6, PEQL,
- TRNS, FN2, FN3, FN4, FN5, FN6, FN7, PDOT, P1, P2, P3, PSLS,
- TRNS, FN8, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGDN, PGUP, END ),
-
- /* 2: fn right/raise layer
- * ,-----------------------------------------------------------------------.
- * | F1 | F2 | F3 | F4 |F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
- * |-----------------------------------------------------------------------|
- * | | ! | @ | # | $ | % | ^ | & | * | - | + | = |
- * |-----------------------------------------------------------------------|
- * | | _ | ' | " | ` | ~ | , | . | ] | ) | } | > |
- * |-----------------------------------------------------------------------|
- * | |NextT|PrevT| | | | Esc | |Mute |Vol- |Vol+ | P/P |
- * `-----------------------------------------------------------------------'
- */
- [2] = KEYMAP_GRID(
- F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12,
- TRNS, FN18, FN19, FN20, FN21, FN22, FN23, FN24, FN25, MINS, FN26, PAST,
- TRNS, FN27, QUOT, FN28, GRV, FN29, COMM, DOT, RBRC, FN13, FN14, FN15,
- TRNS, MNXT, MPRV, TRNS, TRNS, TRNS, ESC, TRNS, MUTE, VOLD, VOLU, MPLY ),
-};
-
-enum macro_id {
- M_P0,
- M_P1,
- M_P2,
- M_P3,
- M_P4,
- M_P5,
- M_USERNAME
-};
-
-const uint16_t PROGMEM fn_actions[] = {
- // Program macros
- [2] = ACTION_MACRO(M_P0),
- [3] = ACTION_MACRO(M_P1),
- [4] = ACTION_MACRO(M_P2),
- [5] = ACTION_MACRO(M_P3),
- [6] = ACTION_MACRO(M_P4),
- [7] = ACTION_MACRO(M_P5),
- [8] = ACTION_MACRO(M_USERNAME),
- // Braces
- [10] = ACTION_MODS_KEY(MOD_LSFT, KC_9), // (
- [11] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), // {
- [12] = ACTION_MODS_KEY(MOD_LSFT, KC_COMMA), // <
- [13] = ACTION_MODS_KEY(MOD_LSFT, KC_0), // )
- [14] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), // }
- [15] = ACTION_MODS_KEY(MOD_LSFT, KC_DOT), // >
- // Combo
- [16] = ACTION_MODS_KEY(MOD_LALT | MOD_LCTL, KC_DEL), // Ctrl+Alt+Delete
- [17] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_ESC), // Ctrl+Shft+Escape
- // Symbols
- [18] = ACTION_MODS_KEY(MOD_LSFT, KC_1), // !
- [19] = ACTION_MODS_KEY(MOD_LSFT, KC_2), // @
- [20] = ACTION_MODS_KEY(MOD_LSFT, KC_3), // #
- [21] = ACTION_MODS_KEY(MOD_LSFT, KC_4), // $
- [22] = ACTION_MODS_KEY(MOD_LSFT, KC_5), // %
- [23] = ACTION_MODS_KEY(MOD_LSFT, KC_6), // ^
- [24] = ACTION_MODS_KEY(MOD_LSFT, KC_7), // &
- [25] = ACTION_MODS_KEY(MOD_LSFT, KC_8), // *
- [26] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // +
- [27] = ACTION_MODS_KEY(MOD_LSFT, KC_MINUS), // _
- [28] = ACTION_MODS_KEY(MOD_LSFT, KC_QUOTE), // "
- [29] = ACTION_MODS_KEY(MOD_LSFT, KC_GRAVE), // ~
- // Debugging
- [30] = ACTION_MODS_KEY(MOD_LSFT, KC_F11), // Step into
- [31] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_F10), // Set cursor to line
- };
-
-// Run a script and pass a key number to it. This is Windows specific and the script needs to be on your path.
-// *open run dialog* keypress.py [PRG_NUM]
-#define ADD_PYTHON_PROGRAM_ON_WIN( PRG_NUM ) MACRO( D(LGUI), T(R), U(LGUI), W(100), T(K), T(E), T(Y), T(P), T(R), T(E), T(S), T(S), T(DOT), T(P), T(Y), T(SPC), T(PRG_NUM), END )
-// *return*
-#define RUN_PYTHON_PROGRAM_ON_WIN MACRO( T(ENT), END )
-
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
- keyevent_t event = record->event;
- switch (id) {
- case M_P0:
- return event.pressed ?
- ADD_PYTHON_PROGRAM_ON_WIN( 0 ) :
- RUN_PYTHON_PROGRAM_ON_WIN;
- case M_P1:
- return event.pressed ?
- ADD_PYTHON_PROGRAM_ON_WIN( 1 ) :
- RUN_PYTHON_PROGRAM_ON_WIN;
- case M_P2:
- return event.pressed ?
- ADD_PYTHON_PROGRAM_ON_WIN( 2 ) :
- RUN_PYTHON_PROGRAM_ON_WIN;
- case M_P3:
- return event.pressed ?
- ADD_PYTHON_PROGRAM_ON_WIN( 3 ) :
- RUN_PYTHON_PROGRAM_ON_WIN;
- case M_P4:
- return event.pressed ?
- ADD_PYTHON_PROGRAM_ON_WIN( 4 ) :
- RUN_PYTHON_PROGRAM_ON_WIN;
- case M_P5:
- return event.pressed ?
- ADD_PYTHON_PROGRAM_ON_WIN( 5 ) :
- RUN_PYTHON_PROGRAM_ON_WIN;
- case M_USERNAME:
- return event.pressed ?
- MACRO( T(N), T(A), T(T), T(H), T(A), T(N), T(R), T(O), T(S), T(S), T(P), T(O), T(W), T(E), T(L), T(L), END ) :
- MACRO_NONE;
- }
- return MACRO_NONE;
-}
diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_paul.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_paul.c
deleted file mode 100644
index 829c047be6..0000000000
--- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_paul.c
+++ /dev/null
@@ -1,49 +0,0 @@
-#include "keymap.h"
-
-#define KC_MO1 MO(1)
-#define KC_MO2 MO(2)
-#define KC_MO3 MO(3)
-
-const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = KEYMAP( /* Paul */
- TAB, Q, W, E, R, T, Y, U, I, O, P, BSPC,
- MO1, A, S, D, F, G, H, J, K, L, SCLN, QUOT,
- LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, ENT,
- ESC, LCTL, LALT, LGUI, MO2, SPC, MO3, LEFT, DOWN, UP, RGHT),
-[1] = KEYMAP( /* Paul FN */
- TRNS, TRNS, TRNS, FN8, FN9, TRNS, TRNS, TRNS, TRNS, MUTE, VOLD, VOLU,
- MO1, TRNS, TRNS, HOME, END, TRNS, TRNS, TRNS, TRNS, MPRV, MPLY, MNXT,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, UP, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LEFT, DOWN, RGHT),
-[2] = KEYMAP( /* Paul LOWER */
- FN22, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, FN18, FN19, BSPC,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN20, FN21, FN23, FN24, FN28,
- TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, TRNS,
- TRNS, TRNS, TRNS, TRNS, MO2, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
-[3] = KEYMAP( /* Paul RAISE */
- GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSPC,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MINS, EQL, LBRC, RBRC, BSLS,
- TRNS, F11, F12, F13, F14, F15, F16, F17, F18, F19, F20, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MO3, TRNS, TRNS, TRNS, TRNS),
-};
-const uint16_t PROGMEM fn_actions[] = {
- [8] = ACTION_MODS_KEY(MOD_LSFT, KC_HOME),
- [9] = ACTION_MODS_KEY(MOD_LSFT, KC_END),
- [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1),
- [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2),
- [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3),
- [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4),
- [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5),
- [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6),
- [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7),
- [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8),
- [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9),
- [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0),
- [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS),
- [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL),
- [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV),
- [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC),
- [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC),
- [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS),
-
-};
diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_peasant.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_peasant.c
deleted file mode 100644
index f6493e33a9..0000000000
--- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_peasant.c
+++ /dev/null
@@ -1,51 +0,0 @@
-#include "keymap.h"
-
-const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = KEYMAP( /* Native */
- ESC, Q, W, E, R, T, Y, U, I, O, P, FN2,
- BSPC, A, S, D, F, G, H, J, K, L, SCLN, QUOT,
- TAB, Z, X, C, V, B, N, M, COMM, DOT, SLSH, ENT,
- DEL, LCTL, NO, LSFT, LALT, SPC, NO, LEFT, DOWN, UP, RGHT),
- [1] = KEYMAP( /* QWERTY->PHOTOSHOP */
- DELETE, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, FN1,
- O, G, S, U, T, FN27, F21, F10, F11, F7, F8, F9,
- TAB, FN4, FN5, FN6, F1, FN7, F18, F19, F23, F20, F22, FN9,
- COMM, DOT, FN10, FN11, FN3, SPC, FN12, F2, FN8, F3, F14),
- [2] = KEYMAP( /* 2: FN3 PHOTOSHOP */
- ESC, FN25, FN26, NO, NO, NO, NO, NO, NO, NO, NO, NO,
- NO, NO, NO, NO, NO, NO, NO, NO, NO, FN19, FN20, FN21,
- C, NO, FN22, FN5, NO, FN23, NO, NO, NO, NO, FN13, NO,
- FN14, FN15, FN16, FN17, FN3, SPC, FN18, NO, NO, F24, NO),
-};
-
-const uint16_t PROGMEM fn_actions[] = {
- [1] = ACTION_DEFAULT_LAYER_SET(0), // set Qwerty layout
- [2] = ACTION_DEFAULT_LAYER_SET(1), // set Photoshop presets
- [3] = ACTION_LAYER_ON_OFF(2), // Photoshop function layer
-
- [4] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F9), // photo folder AHK
- [5] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_I), // select inverse
- [6] = ACTION_MODS_KEY(MOD_LSFT, KC_M), // marquee select
- [7] = ACTION_MODS_KEY(MOD_LALT, KC_BSPC), // fill
- [8] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_X), // warp
- [9] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT | MOD_LSFT, KC_F12), // merge all new layer
- [10] = ACTION_MODS_KEY(MOD_LCTL, KC_MINS), // zoom out
- [11] = ACTION_MODS_KEY(MOD_LCTL, KC_H), // RBG sliders
- [12] = ACTION_MODS_KEY(MOD_LCTL, KC_S), // save
- [13] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_F5), // layer mask from transparancy
- [14] = ACTION_MODS_KEY(MOD_LALT, KC_LBRC), // prev layer
- [15] = ACTION_MODS_KEY(MOD_LALT, KC_RBRC), // next layer
- [16] = ACTION_MODS_KEY(MOD_LCTL, KC_EQL), // zoom in
- [17] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_H), // HSV sliders
- [18] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F11), // save as PNG
- [19] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F7), // gaussian blur
- [20] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F8), // motion blur
- [21] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_X), // liquify filter
- [22] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), // prev layer blending
- [23] = ACTION_MODS_KEY(MOD_LSFT | MOD_LALT, KC_N), // normal layer blending
- [24] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // next layer blending
- [25] = ACTION_MODS_KEY(MOD_LCTL, KC_Z), // step back
- [26] = ACTION_MODS_KEY(MOD_LCTL, KC_Y), // step forward
- [27] = ACTION_MODS_KEY(MOD_LCTL, KC_R), // rasterize
-
-};
diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_reed.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_reed.c
deleted file mode 100644
index 9e6e953e31..0000000000
--- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_reed.c
+++ /dev/null
@@ -1,74 +0,0 @@
-#include "keymap.h"
-
-#define KC_MO2 MO(2)
-#define KC_MO3 MO(3)
-
-/*
- * BUILD:
- * Simply run the command below in the keyboards/planck directory
- * to build against this keymap
- *
- * make KEYMAP=reed COMMON_KEYMAP=true
- *
- *
- * DETAILS:
- *
- * This layout works off of Jack's layout, making some changes that I
- * feel significantly improve the function of the keyboard. Major changes
- * include adding a "gaming mode" that will allow users to still access
- * the number keys 1 through 4 easily for games that require it. Also
- * included is the ability to use the tap/hold function for easy use of
- * right shift and thumb shift with their tapped companions.
- *
- */
-const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = KEYMAP_GRID( /* Reed */
- ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC,
- TAB, A, S, D, F, G, H, J, K, L, SCLN, QUOT,
- LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, FN5,
- LCTL, CAPS, LALT, LGUI, MO3, FN7, SPC, MO2, LEFT, DOWN, UP, RGHT),
-
-[1] = KEYMAP_GRID( /* Reed EXTREME GAMING */
- ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC,
- TAB, A, S, D, F, G, H, J, K, L, SCLN, QUOT,
- LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, FN5,
- LCTL, 1, 2, 3, 4, SPC, MO3, MO2, LEFT, DOWN, UP, RGHT),
-
-[2] = KEYMAP_GRID( /* Reed RAISE */
- GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSPC,
- TRNS, FN3, FN4, PAUSE, TRNS, TRNS, TRNS, MINS, EQL, LBRC, RBRC, BSLS,
- TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MO2, MNXT, VOLD, VOLU, MPLY),
-
-[3] = KEYMAP_GRID( /* Reed LOWER */
- TRNS, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, FN18, FN19, DEL,
- TRNS, TRNS, INS, HOME, PGUP, TRNS, TRNS, FN20, FN21, FN23, FN24, FN28,
- TRNS, TRNS, DEL, END, PGDN, F11, F12, F13, TRNS, VOLD, VOLU, TRNS,
- TRNS, TRNS, TRNS, TRNS, MO3, TRNS, TRNS, TRNS, MPRV, MUTE, MPLY, MNXT),
-};
-const uint16_t PROGMEM fn_actions[] = {
- [3] = ACTION_DEFAULT_LAYER_SET(0),
- [4] = ACTION_DEFAULT_LAYER_SET(1),
- // Actions for the tap/hold modifiers listed above
- [5] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT),
- [7] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_BSPC),
-
- [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1),
- [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2),
- [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3),
- [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4),
- [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5),
- [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6),
- [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7),
- [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8),
- [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9),
- [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0),
- [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS),
- [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL),
- [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV),
- [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC),
- [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC),
- [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS),
-
- [29] = ACTION_MODS_KEY(MOD_LSFT | MOD_RSFT, KC_PAUSE),
-};
diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_sean.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_sean.c
deleted file mode 100644
index 10a112986e..0000000000
--- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_sean.c
+++ /dev/null
@@ -1,105 +0,0 @@
-#define KC_RESET 0x5000
-#include "keymap_common.h"
-
-enum planck_layers {
- _DVRK,
- _LOWER,
- _RAISE,
- _ADJUST
-};
-
-#define KC_LOWR MO(_LOWER)
-#define KC_RAIS MO(_RAISE)
-#define KC_ADJS MO(_ADJUST)
-
-const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Dvorak
- * ,-----------------------------------------------------------------------------------.
- * | " | , | . | P | Y | / | = | F | G | C | R | L |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | A | O | E | U | I | ESC | BSPC | D | H | T | N | S |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ; | Q | J | K | X | TAB | ENT | B | M | W | V | Z |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Sft | Ctl | Alt | Gui |Lower | Space |Raise | < | v | ^ | > |
- * `-----------------------------------------------------------------------------------'
- */
- [_DVRK] = KEYMAP(
- QUOT, COMM, DOT, P, Y, SLSH, EQL, F, G, C, R, L,
- A, O, E, U, I, ESC, BSPC, D, H, T, N, S,
- SCLN, Q, J, K, X, TAB, ENT, B, M, W, V, Z,
- LSFT, LCTL, LALT, LGUI, LOWR, SPC, RAIS,LEFT, DOWN, UP, RGHT),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | F1 | F2 | F3 | F4 | F5 | { | } | F6 | F7 | F8 | F9 | F10 |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | 1 | 2 | 3 | 4 | 5 | [ | ] | 6 | 7 | 8 | 9 | 0 |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | ~ | | | ` | - | _ | INS | DEL | ( | ) | + | = | \ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Sft | Ctl | Alt | Gui |Lower | Space |Raise | | PgDn | PgUp | End |
- * `-----------------------------------------------------------------------------------'
- */
- [_LOWER] = KEYMAP( /* fn1 lower */
- F1, F2, F3, F4, F5, FN26, FN27, F6, F7, F8, F9, F10,
- 1, 2, 3, 4, 5, LBRC, RBRC, 6, 7, 8, 9, 0,
- FN23, FN25, GRV,MINS, FN24, INS, DEL, FN19, FN20, FN22, EQL, BSLS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, ADJS,HOME, PGDN, PGUP, END),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | F11 | F12 | F13 | F14 | F15 | - | _ | F16 | F17 | F18 | F19 | F20 |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | ! | @ | # | $ | % | | | ^ | & | * | ( | ) |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | CAPS | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_RAISE] = KEYMAP( /* fn2 raise */
- F11, F12, F13, F14, F15,MINS, FN24, F16, F17, F18, F19, F20,
- FN11, FN12, FN13, FN14, FN15, NO, NO, FN16, FN17, FN18, FN19, FN20,
- PWR, EJCT, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO,
- CAPS, TRNS, TRNS, TRNS, ADJS,TRNS, RAIS, NO, NO, NO, NO),
-/* Adjust (Lower + Raise or SLower + SRaise)
- * ,-----------------------------------------------------------------------------------.
- * | | Reset| | | | | | | | | | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | PWR | EJCT | | | | | | CAPS | | | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * |DVORAK| | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = KEYMAP(
- NO, RESET, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO,
- PWR, EJCT, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO,
- CAPS, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO,
- NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO),
-};
-
-const uint16_t PROGMEM fn_actions[] = {
- [3] = ACTION_DEFAULT_LAYER_SET(_DVRK),
- [11] = ACTION_MODS_KEY(MOD_LSFT, KC_1), //!
- [12] = ACTION_MODS_KEY(MOD_LSFT, KC_2), //@
- [13] = ACTION_MODS_KEY(MOD_LSFT, KC_3), //#
- [14] = ACTION_MODS_KEY(MOD_LSFT, KC_4), //$
- [15] = ACTION_MODS_KEY(MOD_LSFT, KC_5), //%
- [16] = ACTION_MODS_KEY(MOD_LSFT, KC_6), //^
- [17] = ACTION_MODS_KEY(MOD_LSFT, KC_7), //&
- [18] = ACTION_MODS_KEY(MOD_LSFT, KC_8), //*
- [19] = ACTION_MODS_KEY(MOD_LSFT, KC_9), //(
- [20] = ACTION_MODS_KEY(MOD_LSFT, KC_0), //)
- [21] = ACTION_MODS_KEY(MOD_LSFT, KC_SLSH), //?
- [22] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), //+
- [23] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), //~
- [24] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), //_
- [25] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), //|
- [26] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), //{
- [27] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), //}
- [28] = ACTION_MODS_KEY(MOD_LSFT | MOD_RSFT, KC_PAUSE),
-};
diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_shane.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_shane.c
deleted file mode 100644
index 69ce9b8e09..0000000000
--- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_shane.c
+++ /dev/null
@@ -1,99 +0,0 @@
-#include "keymap.h"
-#include "action_layer.h"
-#include "action.h"
-#include "action_util.h"
-
-#define KC_MO6 MO(6)
-#define KC_MO8 MO(8)
-
-/*
- Shane's Planck Layout
- http://www.keyboard-layout-editor.com/#/layouts/015d9011102619d7695c86ffe57cf441
-*/
-const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = KEYMAP_AND_SWAP( /* Base */
- TAB, Q, W, E, R, T, Y, U, I, O, P, MINS,
- LCTL, A, S, D, F, G, H, J, K, L, SCLN, BSPC,
- LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, FN5,
- /*ALPHA*/FN3, /*HYPER*/ /*SUPER*/LGUI, /*META*/LALT, LCTL, MO8, FN6, MO6, LEFT, DOWN, UP, RGHT),
- [2] = KEYMAP_AND_SWAP( /* More modifiers */
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RCTL, RALT, RGUI, TRNS),
- [4] = KEYMAP_AND_SWAP( /* WASD */
- TRNS, TRNS, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, LEFT, DOWN, RIGHT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
- [6] = KEYMAP_AND_SWAP( /* Raise/FN1 */
- FN23, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, EQL,
- TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, ENT,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, BSLS, TRNS,
- PAUS, TRNS, TRNS, TRNS, TRNS, BSPC, TRNS, MUTE, PGUP, PGDN, MNXT),
- [8] = KEYMAP_AND_SWAP( /* Lower/FN2 */
- ESC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN19, FN20, TRNS,
- TRNS, TRNS, TRNS, TRNS, CAPS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, QUOT,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN24, FN25, LBRC, RBRC, TRNS, TRNS,
- FN4, TRNS, TRNS, TRNS, TRNS, ENT, TRNS, MPLY, VOLD, VOLU, MPRV),
-};
-
-enum function_id {
- SPACE_FN,
-};
-
-void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
-{
- switch (id) {
- case SPACE_FN:
- if (record->event.pressed) {
- // Change the keyboard maps.
- // Whatever even layer's are on, turn on the odd one's too.
- for (uint8_t i = 0; i < 9; i += 2) {
- if (layer_state & (1UL << i))
- layer_on(i + 1);
- }
- layer_on(1);
- } else {
- // turn off all the even layers.
- for (uint8_t i = 0; i < 9; i += 2)
- layer_off(i + 1);
-
- if (record->tap.count != 0) {
- // Space was tapped rather than used like a modifier.
- // So send a space up and down event.
- add_key(KC_SPC);
- send_keyboard_report();
- del_key(KC_SPC);
- send_keyboard_report();
- }
- }
- break;
- }
-}
-
-
-
-const uint16_t PROGMEM fn_actions[] = {
- [3] = ACTION_LAYER_TOGGLE(2), // toggle more modifiers
- [4] = ACTION_LAYER_TOGGLE(4), // toggle wasd
- [5] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT),
- [6] = ACTION_FUNCTION_TAP(SPACE_FN),
-
- [11] = ACTION_MODS_KEY(MOD_LSFT, KC_1),
- [12] = ACTION_MODS_KEY(MOD_LSFT, KC_2),
- [13] = ACTION_MODS_KEY(MOD_LSFT, KC_3),
- [14] = ACTION_MODS_KEY(MOD_LSFT, KC_4),
- [15] = ACTION_MODS_KEY(MOD_LSFT, KC_5),
- [16] = ACTION_MODS_KEY(MOD_LSFT, KC_6),
- [17] = ACTION_MODS_KEY(MOD_LSFT, KC_7),
- [18] = ACTION_MODS_KEY(MOD_LSFT, KC_8),
- [19] = ACTION_MODS_KEY(MOD_LSFT, KC_9),
- [20] = ACTION_MODS_KEY(MOD_LSFT, KC_0),
- [21] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS),
- [22] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL),
- [23] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV),
- [24] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC),
- [25] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC),
- [26] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS),
-};
diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_simon.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_simon.c
deleted file mode 100644
index fa948077ce..0000000000
--- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_simon.c
+++ /dev/null
@@ -1,44 +0,0 @@
-#include "keymap.h"
-
-#define KC_MO1 MO(1)
-#define KC_MO2 MO(2)
-
-const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = KEYMAP( /* Jack */
- ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC,
- TAB, A, S, D, F, G, H, J, K, L, DOT, ENT,
- LSFT, Z, X, C, V, B, N, M, COMM, DOT, SCLN, DEL,
- LCTL, ENT, LALT, CAPS, MO2, SPC, MO1, LEFT, DOWN, UP, RGHT),
-[1] = KEYMAP( /* Jack RAISE */
- TRNS, F1, F2, F3, F4, NO, FN11, FN9, FN12, NO, FN14, TRNS,
- TRNS, F5, F6, F7, F8, FN16, SLSH, MINS, EQL, LBRC, FN8, TRNS,
- TRNS, F9, F10, F11, F12, F15, F16, FN22, SCLN, MINS, QUOT, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
-[2] = KEYMAP( /* Jack LOWER */
- FN22, 1, 2, 3, FN13, FN14, FN15, FN16, FN17, FN18, FN19, BSPC,
- TRNS, 4, 5, 6, TRNS, TRNS, TRNS, FN20, FN21, FN23, FN24, FN28,
- TRNS, 7, 8, 9, 0, FN28, FN15, F7, F8, F9, F10, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
-};
-const uint16_t PROGMEM fn_actions[] = {
- [8] = ACTION_MODS_KEY(MOD_LSFT, KC_SLSH),
- [9] = ACTION_MODS_KEY(MOD_LSFT, KC_QUOT),
- [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1),
- [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2),
- [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3),
- [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4),
- [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5),
- [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6),
- [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7),
- [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8),
- [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9),
- [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0),
- [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS),
- [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL),
- [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV),
- [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC),
- [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC),
- [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS),
-
- [29] = ACTION_MODS_KEY(MOD_LSFT | MOD_RSFT, KC_PAUSE),
-};
diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_tim.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_tim.c
deleted file mode 100644
index 5be56e7256..0000000000
--- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_tim.c
+++ /dev/null
@@ -1,44 +0,0 @@
-#include "keymap.h"
-
-#define KC_MO2 MO(2)
-#define KC_MO3 MO(3)
-
-const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = KEYMAP(
- ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC,
- TAB, A, S, D, F, G, H, J, K, L, SCLN, ENT,
- LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT,
- LCTL, LALT, DEL, LGUI, MO3, SPC, MO2, F2, F5, F9, F12),
-[2] = KEYMAP( /* RAISE */
- TRNS, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSPC,
- GRV, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MINS, EQL, LBRC, RBRC, BSLS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, QUOT, FN29, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MO2, TRNS, TRNS, TRNS, TRNS),
-[3] = KEYMAP( /* LOWER */
- TRNS, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, FN18, FN19, BSPC,
- FN22, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN20, FN21, FN23, FN24, FN28,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, QUOT, FN29, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, MO3, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
-};
-const uint16_t PROGMEM fn_actions[] = {
- [3] = ACTION_DEFAULT_LAYER_SET(0),
- [4] = ACTION_DEFAULT_LAYER_SET(1),
-
- [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1),
- [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2),
- [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3),
- [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4),
- [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5),
- [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6),
- [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7),
- [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8),
- [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9),
- [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0),
- [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS),
- [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL),
- [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV),
- [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC),
- [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC),
- [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS),
- [29] = ACTION_MODS_KEY(MOD_LSFT, KC_QUOT),
-};
diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_wilba.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_wilba.c
deleted file mode 100644
index 054297b636..0000000000
--- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_wilba.c
+++ /dev/null
@@ -1,54 +0,0 @@
-#include "keymap.h"
-
-#define KC_MO2 MO(2)
-#define KC_MO3 MO(3)
-#define KC_BLTG BL_TOGG
-#define KC_BLIN BL_INC
-#define KC_BLDE BL_DEC
-
-const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = KEYMAP( /* Wilba */
- BLTG, BLIN, BLDE, E, R, T, Y, U, I, O, P, BSPC,
- TAB, A, S, D, F, G, H, J, K, L, SCLN, QUOT,
- LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, ENT,
- LCTL, LGUI, LALT, RSFT, MO2, SPC, MO3, LEFT, DOWN, UP, RGHT),
-[1] = KEYMAP( /* Wilba Alternate */
- ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC,
- TAB, A, S, D, F, G, H, J, K, L, SCLN, QUOT,
- LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, ENT,
- LCTL, LGUI, LALT, RSFT, MO2, SPC, MO3, LEFT, DOWN, UP, RGHT),
-[2] = KEYMAP( /* Wilba LOWER */
- TRNS, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, TRNS,
- TRNS, F11, F12, LBRC, RBRC, FN20, EQL, FN23, FN24, MINS, FN21, TRNS,
- TRNS, BSLS, GRV, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, MO2, TRNS, TRNS, MNXT, VOLD, VOLU, MPLY),
-[3] = KEYMAP( /* Wilba RAISE */
- TRNS, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, FN18, FN19, TRNS,
- TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, TRNS,
- TRNS, FN25, FN22, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MO3, TRNS, TRNS, TRNS, TRNS),
-};
-const uint16_t PROGMEM fn_actions[] = {
- [3] = ACTION_DEFAULT_LAYER_SET(0),
- [4] = ACTION_DEFAULT_LAYER_SET(1),
-
- [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1), // !
- [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2), // @
- [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3), // #
- [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4), // $
- [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5), // %
- [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6), // ^
- [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7), // &
- [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8), // *
- [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9), // (
- [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0), // )
-
- [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), // _
- [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // +
- [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // ~
- [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), // {
- [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), // }
- [25] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), // |
-
- [26] = ACTION_MODS_KEY(MOD_LSFT | MOD_RSFT, KC_PAUSE)
-};
diff --git a/keyboards/planck/old_keymap_files/keymap_common.h b/keyboards/planck/old_keymap_files/keymap_common.h
deleted file mode 100644
index d46df92876..0000000000
--- a/keyboards/planck/old_keymap_files/keymap_common.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
-Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-#ifndef KEYMAP_COMMON_H
-#define KEYMAP_COMMON_H
-
-#include <stdint.h>
-#include <stdbool.h>
-#include <avr/pgmspace.h>
-#include "keycode.h"
-#include "action.h"
-#include "action_macro.h"
-#include "report.h"
-#include "host.h"
-// #include "print.h"
-#include "debug.h"
-#include "keymap.h"
-
-
-extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
-extern const uint16_t fn_actions[];
-
-
-// MIT Layout
-/*
- * ,-----------------------------------------------------------------------.
- * | | | | | | | | | | | | |
- * |-----------------------------------------------------------------------|
- * | | | | | | | | | | | | |
- * |-----------------------------------------------------------------------|
- * | | | | | | | | | | | | |
- * |-----------------------------------------------------------------------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------'
- */
-#define KEYMAP( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
- K30, K31, K32, K33, K34, K35, K37, K38, K39, K3A, K3B \
-) { \
- { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B }, \
- { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B }, \
- { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B }, \
- { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K35, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B } \
-}
-
-// Grid Layout
-/*
- * ,-----------------------------------------------------------------------.
- * | | | | | | | | | | | | |
- * |-----------------------------------------------------------------------|
- * | | | | | | | | | | | | |
- * |-----------------------------------------------------------------------|
- * | | | | | | | | | | | | |
- * |-----------------------------------------------------------------------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------'
- */
-#define KEYMAP_GRID( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B \
-) { \
- { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B }, \
- { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B }, \
- { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B }, \
- { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B } \
-}
-
-#define KEYMAP_REVERSE( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
- K30, K31, K32, K33, K34, K35, K37, K38, K39, K3A, K3B \
- ) { \
- { KC_##K0B, KC_##K0A, KC_##K09, KC_##K08, KC_##K07, KC_##K06, KC_##K05, KC_##K04, KC_##K03, KC_##K02, KC_##K01, KC_##K00 }, \
- { KC_##K1B, KC_##K1A, KC_##K19, KC_##K18, KC_##K17, KC_##K16, KC_##K15, KC_##K14, KC_##K13, KC_##K12, KC_##K11, KC_##K10 }, \
- { KC_##K2B, KC_##K2A, KC_##K29, KC_##K28, KC_##K27, KC_##K26, KC_##K25, KC_##K24, KC_##K23, KC_##K22, KC_##K21, KC_##K20 }, \
- { KC_##K3B, KC_##K3A, KC_##K39, KC_##K38, KC_##K37, KC_##K35, KC_##K35, KC_##K34, KC_##K33, KC_##K32, KC_##K31, KC_##K30 }, \
- }
-
-#define KEYMAP_AND_REVERSE(args...) KEYMAP(args), KEYMAP_REVERSE(args)
-
-#define KEYMAP_SWAP( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
- K30, K31, K32, K33, K34, K35, K37, K38, K39, K3A, K3B \
- ) { \
- { KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05 }, \
- { KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15 }, \
- { KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25 }, \
- { KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K35, KC_##K35, KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34 }, \
-}
-
-#define KEYMAP_AND_SWAP(args...) KEYMAP(args), KEYMAP_SWAP(args)
-
-/*
- Keymap for the Planck 48 key variant.
- */
-#define KEYMAP_48( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B \
-) { \
- { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B }, \
- { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B }, \
- { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B }, \
- { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B }, \
-}
-
-
-#endif
diff --git a/keyboards/preonic/keymaps/AlexDaigre/config.h b/keyboards/preonic/keymaps/AlexDaigre/config.h
new file mode 100644
index 0000000000..40a9524b46
--- /dev/null
+++ b/keyboards/preonic/keymaps/AlexDaigre/config.h
@@ -0,0 +1,37 @@
+#pragma once
+
+#ifdef AUDIO_ENABLE
+ #define STARTUP_SONG SONG(PREONIC_SOUND)
+ // #define STARTUP_SONG SONG(NO_SOUND)
+
+ #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
+ SONG(COLEMAK_SOUND), \
+ SONG(DVORAK_SOUND) \
+ }
+#endif
+
+#define MUSIC_MASK (keycode != KC_NO)
+
+/*
+ * MIDI options
+ */
+
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+
+#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 2
diff --git a/keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/adjust.json b/keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/adjust.json
new file mode 100644
index 0000000000..6dac52cb94
--- /dev/null
+++ b/keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/adjust.json
@@ -0,0 +1,80 @@
+[
+ {
+ "name": "Plank Don Gato Programming Raise Layer"
+ },
+ [
+ {
+ "a": 7
+ },
+ "F1",
+ "F2",
+ "F3",
+ "F4",
+ "F5",
+ "F6",
+ "F7",
+ "F8",
+ "F9",
+ "F10",
+ "F11",
+ "F12"
+ ],
+ [
+ "",
+ "Reset",
+ "Debug",
+ "",
+ "",
+ "",
+ "",
+ "Term On",
+ "Term Off",
+ "",
+ "",
+ ""
+ ],
+ [
+ "",
+ "",
+ "Mu Mod",
+ "Audio On",
+ "Audio Off",
+ "AG Norm",
+ "AG Swap",
+ "Qwerty",
+ "Colemak",
+ "Dvorak",
+ "",
+ ""
+ ],
+ [
+ "",
+ "Voice -",
+ "Voice +",
+ "Music On",
+ "Music Off",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ],
+ [
+ "",
+ "",
+ "",
+ "",
+ "",
+ {
+ "w": 2
+ },
+ "",
+ "",
+ "Next",
+ "Vol -",
+ "Vol +",
+ "Play"
+ ]
+] \ No newline at end of file
diff --git a/keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/lower.json b/keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/lower.json
new file mode 100644
index 0000000000..ccf860653f
--- /dev/null
+++ b/keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/lower.json
@@ -0,0 +1,80 @@
+[
+ {
+ "name": "Plank Don Gato Programming Lower Layer"
+ },
+ [
+ {
+ "a": 7
+ },
+ "Print Screen",
+ "Page Up",
+ "Page Down",
+ "Home",
+ "End",
+ "Insert",
+ "Scroll Lock",
+ "Num Lock",
+ "Pause",
+ "]",
+ "[",
+ "-"
+ ],
+ [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "Delete"
+ ],
+ [
+ "Caps Lock",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ],
+ [
+ "Right Shift",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\\",
+ "Menu"
+ ],
+ [
+ "Right Ctrl",
+ "Right Alt",
+ "Right Os",
+ "",
+ "",
+ {
+ "w": 2
+ },
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+] \ No newline at end of file
diff --git a/keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/main.json b/keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/main.json
new file mode 100644
index 0000000000..77589c205c
--- /dev/null
+++ b/keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/main.json
@@ -0,0 +1,95 @@
+[
+ {
+ "name": "Plank Don Gato Programming Main Layer"
+ },
+ [
+ {
+ "a": 5
+ },
+ "~\n`",
+ "!\n1",
+ "@\n2",
+ "#\n3",
+ "$\n4",
+ "%\n5",
+ "^\n6",
+ "&\n7",
+ "*\n8",
+ "(\n9",
+ ")\n0",
+ "+\n="
+ ],
+ [
+ {
+ "a": 7
+ },
+ "Tab",
+ "Q",
+ "W",
+ "E",
+ "R",
+ "T",
+ "Y",
+ "U",
+ "I",
+ "O",
+ "P",
+ "Back Space"
+ ],
+ [
+ "Esc",
+ "A",
+ "S",
+ "D",
+ "F",
+ "G",
+ "H",
+ "J",
+ "K",
+ "L",
+ {
+ "a": 5
+ },
+ ":\n;",
+ "\"\n'"
+ ],
+ [
+ {
+ "a": 7
+ },
+ "Shift",
+ "Z",
+ "X",
+ "C",
+ "V",
+ "B",
+ "N",
+ "M",
+ {
+ "a": 5
+ },
+ "<\n,",
+ ">\n.",
+ {
+ "a": 7
+ },
+ "/",
+ "Return"
+ ],
+ [
+ "Ctrl",
+ "Alt",
+ "OS",
+ "Super",
+ "&dArr;",
+ {
+ "w": 2
+ },
+ "",
+ "&uArr;",
+ "&larr;",
+ "&darr;",
+ "&uarr;",
+ "&rarr;"
+ ]
+] \ No newline at end of file
diff --git a/keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/raise.json b/keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/raise.json
new file mode 100644
index 0000000000..aae97d489f
--- /dev/null
+++ b/keyboards/preonic/keymaps/AlexDaigre/keyboard-layout-editor/raise.json
@@ -0,0 +1,80 @@
+[
+ {
+ "name": "Plank Don Gato Programming Raise Layer"
+ },
+ [
+ {
+ "a": 7
+ },
+ "Print Screen",
+ "Page Up",
+ "Page Down",
+ "Home",
+ "End",
+ "Insert",
+ "Scroll Lock",
+ "Num Lock",
+ "Pause",
+ "{",
+ "}",
+ "_"
+ ],
+ [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "Delete"
+ ],
+ [
+ "Caps Lock",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ],
+ [
+ "Right Shift",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "|",
+ "Menu"
+ ],
+ [
+ "Right Ctrl",
+ "Right Alt",
+ "Right Os",
+ "",
+ "",
+ {
+ "w": 2
+ },
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+ ] \ No newline at end of file
diff --git a/keyboards/preonic/keymaps/AlexDaigre/keymap.c b/keyboards/preonic/keymaps/AlexDaigre/keymap.c
new file mode 100644
index 0000000000..67d13005cf
--- /dev/null
+++ b/keyboards/preonic/keymaps/AlexDaigre/keymap.c
@@ -0,0 +1,326 @@
+/* Copyright 2020 Alex Daigre
+ * Modified from layout provided by Jack Humbert
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include QMK_KEYBOARD_H
+#include "muse.h"
+
+enum preonic_layers {
+ _QWERTY,
+ _COLEMAK,
+ _DVORAK,
+ _LOWER,
+ _RAISE,
+ _ADJUST
+};
+
+enum preonic_keycodes {
+ QWERTY = SAFE_RANGE,
+ COLEMAK,
+ DVORAK,
+ LOWER,
+ RAISE,
+ BACKLIT,
+ ADJUST
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | Alt | GUI |Adjust| Lower| Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT_preonic_grid( \
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQUAL, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
+ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \
+ KC_LCTL, KC_LALT, KC_LGUI, ADJUST, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
+),
+
+/* Colemak
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | R | S | T | D | H | N | E | I | O | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | Alt | GUI |Adjust| Lower| Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_COLEMAK] = LAYOUT_preonic_grid( \
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQUAL, \
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \
+ KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \
+ KC_LCTL, KC_LALT, KC_LGUI, ADJUST, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
+),
+
+/* Dvorak
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | O | E | U | I | D | H | T | N | S | / |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | Alt | GUI |Adjust| Lower| Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_DVORAK] = LAYOUT_preonic_grid( \
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQUAL, \
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \
+ KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \
+ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT, \
+ KC_LCTL, KC_LALT, KC_LGUI, ADJUST, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
+),
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * |PrtScr| PgUp | PgDw | Home | End |Insert|ScrlLk|NumLck|Pause | [ | ] | - |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | | | | | | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Caps | | | | | | | | | | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | | | | | \ | Menu |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |RCtrl | RAlt | RGui | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT_preonic_grid( \
+ KC_PSCREEN, KC_PGUP, KC_PGDOWN, KC_HOME, KC_END, KC_INSERT, KC_SCROLLLOCK, KC_NUMLOCK, KC_PAUSE, KC_LBRACKET, KC_RBRACKET, KC_MINUS, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DELETE, \
+ KC_CAPSLOCK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ KC_RSHIFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSLASH, KC_MENU, \
+ KC_RCTRL, KC_RALT, KC_RGUI, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+),
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * |PrtScr| PgUp | PgDw | Home | End |Insert|ScrlLk|NumLck|Pause | { | } | _ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Caps | | | | | | | | | | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | | | | | | | Menu |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |RCtrl | RAlt | RGui | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT_preonic_grid( \
+ KC_PSCREEN, KC_PGUP, KC_PGDOWN, KC_HOME, KC_END, KC_INSERT, KC_SCROLLLOCK, KC_NUMLOCK, KC_PAUSE, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, KC_UNDERSCORE, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DELETE, \
+ KC_CAPSLOCK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ KC_RSHIFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PIPE, KC_MENU, \
+ KC_RCTRL, KC_RALT, KC_RGUI, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+),
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | Reset| | | | | | | | | | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | |Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Light| | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = LAYOUT_preonic_grid( \
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \
+ _______, RESET, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, _______, \
+ _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \
+ _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, \
+ BACKLIT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
+)
+
+
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWERTY);
+ }
+ return false;
+ break;
+ case COLEMAK:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_COLEMAK);
+ }
+ return false;
+ break;
+ case DVORAK:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_DVORAK);
+ }
+ return false;
+ break;
+ case ADJUST:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ layer_on(_LOWER);
+ layer_on(_ADJUST);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ layer_off(_LOWER);
+ layer_off(_ADJUST);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case BACKLIT:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ #ifdef BACKLIGHT_ENABLE
+ backlight_step();
+ #endif
+ #ifdef __AVR__
+ writePinLow(E6);
+ #endif
+ } else {
+ unregister_code(KC_RSFT);
+ #ifdef __AVR__
+ writePinHigh(E6);
+ #endif
+ }
+ return false;
+ break;
+ }
+ return true;
+};
+
+bool muse_mode = false;
+uint8_t last_muse_note = 0;
+uint16_t muse_counter = 0;
+uint8_t muse_offset = 70;
+uint16_t muse_tempo = 50;
+
+void encoder_update_user(uint8_t index, bool clockwise) {
+ if (muse_mode) {
+ if (IS_LAYER_ON(_RAISE)) {
+ if (clockwise) {
+ muse_offset++;
+ } else {
+ muse_offset--;
+ }
+ } else {
+ if (clockwise) {
+ muse_tempo+=1;
+ } else {
+ muse_tempo-=1;
+ }
+ }
+ } else {
+ if (clockwise) {
+ register_code(KC_PGDN);
+ unregister_code(KC_PGDN);
+ } else {
+ register_code(KC_PGUP);
+ unregister_code(KC_PGUP);
+ }
+ }
+}
+
+void dip_switch_update_user(uint8_t index, bool active) {
+ switch (index) {
+ case 0:
+ if (active) {
+ layer_on(_ADJUST);
+ } else {
+ layer_off(_ADJUST);
+ }
+ break;
+ case 1:
+ if (active) {
+ muse_mode = true;
+ } else {
+ muse_mode = false;
+ }
+ }
+}
+
+
+void matrix_scan_user(void) {
+#ifdef AUDIO_ENABLE
+ if (muse_mode) {
+ if (muse_counter == 0) {
+ uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
+ if (muse_note != last_muse_note) {
+ stop_note(compute_freq_for_midi_note(last_muse_note));
+ play_note(compute_freq_for_midi_note(muse_note), 0xF);
+ last_muse_note = muse_note;
+ }
+ }
+ muse_counter = (muse_counter + 1) % muse_tempo;
+ } else {
+ if (muse_counter) {
+ stop_all_notes();
+ muse_counter = 0;
+ }
+ }
+#endif
+}
+
+bool music_mask_user(uint16_t keycode) {
+ switch (keycode) {
+ case RAISE:
+ case LOWER:
+ return false;
+ default:
+ return true;
+ }
+}
diff --git a/keyboards/preonic/keymaps/AlexDaigre/readme.md b/keyboards/preonic/keymaps/AlexDaigre/readme.md
new file mode 100644
index 0000000000..0aed8ebe09
--- /dev/null
+++ b/keyboards/preonic/keymaps/AlexDaigre/readme.md
@@ -0,0 +1,19 @@
+[Layout Images](https://imgur.com/a/k95XQlP)
+
+# Alex Daigre's programming Layout
+
+The default Preonic layout is suited to general english typing but not very convent to program on. This is my custom layout to re-optimise the keyboard for programming tasks.
+I have been programming with this keyboard layout at work and I found it much faster and easier to adjust to than the default layout.
+
+- Removed keys on the RAISE, LOWER, and ADJUST layers that duplicated keys on the main QWERTY layout.
+- Moved the control, alt, and gui keys to a more natural position.
+- Added the Caps-lock key on RAISE and LOWER in its position on a standard keyboard.
+- Moved {}[], -_, and \| (on RAISE and LOWER) to be close to to similar keys on the QWERTY layout to make them easier to remember. They are kept as close as possible to their locations on a standard layout so users won't have to ADJUST their muscle memory much.
+ - (), {}, and [] are all on the 9 and 0 keys. This is where () are placed naturally, so it is easy to find all of your braces.
+ - -_ are moved to the += key. Now you can remember that -, +, and = are all together. The keys are also right next to each-other on a standard layout, so it is a very small move.
+ - \ and | have beeb moved to the /? key. Easy to remember as / and \ are together.
+- Moved backspace to make room for +=.
+- Added delete to the backspace key on RAISE / LOWER
+- Removed backlight, from the main layer, and added an ADJUST key. As the Massdrop kits don't come with backlighting default, I think this is more useful for most users.
+- I have left the Colemak and Dvorak alternate layouts, but they won't map up as conveniently to the other layers.
+- I have included the keyboard layouts so that those wishing to make modifications or new versions of this layout can quickly update their images.
diff --git a/keyboards/preonic/keymaps/AlexDaigre/rules.mk b/keyboards/preonic/keymaps/AlexDaigre/rules.mk
new file mode 100644
index 0000000000..dcf16bef39
--- /dev/null
+++ b/keyboards/preonic/keymaps/AlexDaigre/rules.mk
@@ -0,0 +1 @@
+SRC += muse.c
diff --git a/keyboards/preonic/keymaps/pvillano/config.h b/keyboards/preonic/keymaps/pvillano/config.h
new file mode 100644
index 0000000000..a338a1da44
--- /dev/null
+++ b/keyboards/preonic/keymaps/pvillano/config.h
@@ -0,0 +1,32 @@
+#pragma once
+
+#ifdef AUDIO_ENABLE
+ #define STARTUP_SONG SONG(PREONIC_SOUND)
+#endif
+
+#define MUSIC_MASK (keycode != KC_NO)
+
+// #define MUSIC_MAP
+/*
+ * MIDI options
+ */
+
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+
+#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 2
diff --git a/keyboards/preonic/keymaps/pvillano/keymap.c b/keyboards/preonic/keymaps/pvillano/keymap.c
new file mode 100644
index 0000000000..093948e093
--- /dev/null
+++ b/keyboards/preonic/keymaps/pvillano/keymap.c
@@ -0,0 +1,113 @@
+/* Do as you please
+ * - pvillano
+ */
+
+#include QMK_KEYBOARD_H
+#include "muse.h"
+
+ enum preonic_layers {
+ _QWERTY,
+ _GAME,
+ _ALT,
+ _FUN,
+ };
+
+ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ /* Qwerty
+ * ,-----------------------------------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | ` | Q | W | E | R | T | Y | U | I | O | P | \ |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | Tab | A | S | D | F | G | H | J | K | L | ; | " |
+ * |--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------|
+ * | Shift | Z | X | C | V | B | N | M | , | . | / | Enter |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | Ctrl | GUI | Alt | Func |AltLayer| Space | _ |AltLayer| Left | Down | Up | Right |
+ * `-----------------------------------------------------------------------------------------------------------'
+ */
+ [_QWERTY] = LAYOUT_preonic_grid(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
+ KC_LCTL, KC_LGUI, KC_LALT, MO(_FUN),MO(_ALT),KC_SPC, KC_UNDS, MO(_ALT),KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+ ),
+
+ /* Game
+ * ,-----------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | NOOP | | | | | ALT | | | | | |
+ * `-----------------------------------------------------------------------------------------------------------'
+ */
+ [_GAME] = LAYOUT_preonic_grid(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, XXXXXXX, _______, _______, _______, _______, KC_LALT, _______, _______, _______, _______, _______
+ ),
+
+ /* Alt
+ * ,-----------------------------------------------------------------------------------------------------------.
+ * | | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | |Keypad 7|Keypad 8|Keypad 9| | | | - | + | { | } | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | |Keypad 4|Keypad 5|Keypad 6| | | | - | = | [ | ] | |
+ * |--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------|
+ * | |Keypad 1|Keypad 2|Keypad 3| | | | | | < | > | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | |Keypad 0|Keypad 0| | | | | | | | | |
+ * `-----------------------------------------------------------------------------------------------------------'
+ */
+ [_ALT] = LAYOUT_preonic_grid(
+ _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
+ _______, KC_P7, KC_P8, KC_P9, _______, _______, _______, KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______,
+ _______, KC_P4, KC_P5, KC_P6, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______,
+ _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, KC_LT, KC_GT, _______,
+ _______, KC_P0, KC_P0, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ /* Function
+ * ,-----------------------------------------------------------------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | | | | | | | Del |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | F5 | F6 | F7 | F8 | | | | | |program | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
+ * | | F9 | F10 | F11 | F12 | Game | | | | | | |
+ * |--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------|
+ * | | | | | | |Num Lock| Music | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------------------------------'
+ */
+ [_FUN] = LAYOUT_preonic_grid(
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, _______, _______, _______, _______, KC_DEL,
+ _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, _______, _______, RESET, _______,
+ _______, KC_F9, KC_F10, KC_F11, KC_F12, TG(_GAME),_______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, KC_NLCK, MU_TOG, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+ };
+
+
+ bool music_mask_user(uint16_t keycode) {
+ switch (keycode) {
+ case MO(_FUN):
+ case MO(_ALT):
+ case KC_SPC:
+ case KC_UNDS:
+ return false;
+ default:
+ return true;
+ }
+ }
diff --git a/keyboards/preonic/keymaps/pvillano/readme.md b/keyboards/preonic/keymaps/pvillano/readme.md
new file mode 100644
index 0000000000..a1d11f8acb
--- /dev/null
+++ b/keyboards/preonic/keymaps/pvillano/readme.md
@@ -0,0 +1,25 @@
+# A preonic layout similar to the default,
+
+but with some extra conviences for programming and gaming
+
+## For programming
+
+* Underscore is next to space.
+* Backslash replaces Del on the default layer.
+* Brackets are easy to reach, and are arranged symmetrically.
+
+## For Gaming
+
+* Gaming mode disables OS key.
+* Gaming mode moves ALT to "right space", to be more easily reached.
+* Numpad is available with only the left hand (for emotes).
+
+## Personal taste
+
+* Esc is in the top left, where it belongs
+* Only one Alt layer and one Func layer
+* Function codes are mnemonic
+ * Func + G for Game mode
+ * Func + M for Music mode
+ * Func + N for Num lock
+* No multi-key combos with more than two keys
diff --git a/keyboards/preonic/keymaps/pvillano/rules.mk b/keyboards/preonic/keymaps/pvillano/rules.mk
new file mode 100644
index 0000000000..dcf16bef39
--- /dev/null
+++ b/keyboards/preonic/keymaps/pvillano/rules.mk
@@ -0,0 +1 @@
+SRC += muse.c
diff --git a/keyboards/projectkb/alice/keymaps/stanrc85/keymap.c b/keyboards/projectkb/alice/keymaps/stanrc85/keymap.c
index a194ee68ce..667ffe4f69 100644
--- a/keyboards/projectkb/alice/keymaps/stanrc85/keymap.c
+++ b/keyboards/projectkb/alice/keymaps/stanrc85/keymap.c
@@ -25,15 +25,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_default(
- KC_ESC, TD_TESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, KC_BSPC,
+ KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, KC_BSPC,
KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_PGDN, KC_CTLE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN2_60),
- KC_LCTL, KC_LALT, LT_SPCF, KC_LGUI, LT_SPCF, TD_TWIN, TD_TCTL
+ KC_LCTL, KC_LALT, LT_BPCF, KC_LGUI, LT_SPCF, TD_TWIN, TD_TCTL
),
[_DEFAULT] = LAYOUT_default(
- KC_ESC, KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, KC_BSPC,
+ KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, KC_BSPC,
KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN2_60),
diff --git a/keyboards/quad_h/lb75/config.h b/keyboards/quad_h/lb75/config.h
new file mode 100644
index 0000000000..1c23ed5b36
--- /dev/null
+++ b/keyboards/quad_h/lb75/config.h
@@ -0,0 +1,196 @@
+/*
+Copyright 2019 Ryota Goto
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xA103
+#define PRODUCT_ID 0x0007
+#define DEVICE_VER 0x0001
+#define MANUFACTURER QUADH
+#define PRODUCT LB75
+#define DESCRIPTION Custom 75% keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 12
+#define MATRIX_COLS 8
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+
+#define MATRIX_ROW_PINS { D4, D6, D7, B4, B5, B6, C6, C7, D3, D5, F0, E6 }
+#define MATRIX_COL_PINS { D2, D1, D0, F1, F4, F5, F6, F7 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+#define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+#define BACKLIGHT_LEVELS 5
+
+#define RGB_DI_PIN B0
+#ifdef RGB_DI_PIN
+ #define RGBLED_NUM 16
+ #define RGBLIGHT_HUE_STEP 8
+ #define RGBLIGHT_SAT_STEP 8
+ #define RGBLIGHT_VAL_STEP 8
+ #define RGBLIGHT_LIMIT_VAL 220 /* The maximum brightness level */
+ #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+/*== all animations enable ==*/
+ #define RGBLIGHT_ANIMATIONS
+// /*== or choose animations ==*/
+// #define RGBLIGHT_EFFECT_BREATHING
+// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
+// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+// #define RGBLIGHT_EFFECT_SNAKE
+// #define RGBLIGHT_EFFECT_KNIGHT
+// #define RGBLIGHT_EFFECT_CHRISTMAS
+// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
+// #define RGBLIGHT_EFFECT_RGB_TEST
+// #define RGBLIGHT_EFFECT_ALTERNATING
+// /*== customize breathing effect ==*/
+// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
+// /*==== use exp() and sin() ====*/
+// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
+// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
+#endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+// #define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+/* defined by default; to change, uncomment and set to the combination you want */
+// #define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP H
+//#define MAGIC_KEY_HELP_ALT SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER0_ALT GRAVE
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER B
+//#define MAGIC_KEY_BOOTLOADER_ALT ESC
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+/* Bootmagic Lite key configuration */
+// #define BOOTMAGIC_LITE_ROW 0
+// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/quad_h/lb75/info.json b/keyboards/quad_h/lb75/info.json
new file mode 100644
index 0000000000..b1eebad380
--- /dev/null
+++ b/keyboards/quad_h/lb75/info.json
@@ -0,0 +1,187 @@
+{
+ "keyboard_name": "LB75",
+ "url": "",
+ "maintainer": "ai03",
+ "width": 16,
+ "height": 6,
+ "layouts": {
+ "LAYOUT_continuous_fnrow": {
+ "layout": [
+ {"label":"Esc", "x":0, "y":0},
+ {"label":"F1", "x":1, "y":0},
+ {"label":"F2", "x":2, "y":0},
+ {"label":"F3", "x":3, "y":0},
+ {"label":"F4", "x":4, "y":0},
+ {"label":"F5", "x":5, "y":0},
+ {"label":"F6", "x":6, "y":0},
+ {"label":"F7", "x":7, "y":0},
+ {"label":"F8", "x":8, "y":0},
+ {"label":"F9", "x":9, "y":0},
+ {"label":"F10", "x":10, "y":0},
+ {"label":"F11", "x":11, "y":0},
+ {"label":"F12", "x":12, "y":0},
+ {"label":"Print Screen", "x":13, "y":0},
+ {"label":"Scroll Lock", "x":14, "y":0},
+ {"label":"Pause", "x":15, "y":0},
+ {"label":"~", "x":0, "y":1},
+ {"label":"!", "x":1, "y":1},
+ {"label":"@", "x":2, "y":1},
+ {"label":"#", "x":3, "y":1},
+ {"label":"$", "x":4, "y":1},
+ {"label":"%", "x":5, "y":1},
+ {"label":"^", "x":6, "y":1},
+ {"label":"&", "x":7, "y":1},
+ {"label":"*", "x":8, "y":1},
+ {"label":"(", "x":9, "y":1},
+ {"label":")", "x":10, "y":1},
+ {"label":"_", "x":11, "y":1},
+ {"label":"+", "x":12, "y":1},
+ {"label":"Back Space", "x":13, "y":1},
+ {"label":"Delete", "x":14, "y":1},
+ {"label":"Home", "x":15, "y":1},
+ {"label":"Tab", "x":0, "y":2, "w":1.5},
+ {"label":"Q", "x":1.5, "y":2},
+ {"label":"W", "x":2.5, "y":2},
+ {"label":"E", "x":3.5, "y":2},
+ {"label":"R", "x":4.5, "y":2},
+ {"label":"T", "x":5.5, "y":2},
+ {"label":"Y", "x":6.5, "y":2},
+ {"label":"U", "x":7.5, "y":2},
+ {"label":"I", "x":8.5, "y":2},
+ {"label":"O", "x":9.5, "y":2},
+ {"label":"P", "x":10.5, "y":2},
+ {"label":"{", "x":11.5, "y":2},
+ {"label":"}", "x":12.5, "y":2},
+ {"label":"|", "x":13.5, "y":2, "w":1.5},
+ {"label":"End", "x":15, "y":2},
+ {"label":"Caps Lock", "x":0, "y":3, "w":1.75},
+ {"label":"A", "x":1.75, "y":3},
+ {"label":"S", "x":2.75, "y":3},
+ {"label":"D", "x":3.75, "y":3},
+ {"label":"F", "x":4.75, "y":3},
+ {"label":"G", "x":5.75, "y":3},
+ {"label":"H", "x":6.75, "y":3},
+ {"label":"J", "x":7.75, "y":3},
+ {"label":"K", "x":8.75, "y":3},
+ {"label":"L", "x":9.75, "y":3},
+ {"label":":", "x":10.75, "y":3},
+ {"label":"\"", "x":11.75, "y":3},
+ {"label":"Enter", "x":12.75, "y":3, "w":2.25},
+ {"label":"PgUp", "x":15, "y":3},
+ {"label":"Shift", "x":0, "y":4, "w":1.25},
+ {"label":"|", "x":1.25, "y":4},
+ {"label":"Z", "x":2.25, "y":4},
+ {"label":"X", "x":3.25, "y":4},
+ {"label":"C", "x":4.25, "y":4},
+ {"label":"V", "x":5.25, "y":4},
+ {"label":"B", "x":6.25, "y":4},
+ {"label":"N", "x":7.25, "y":4},
+ {"label":"M", "x":8.25, "y":4},
+ {"label":"<", "x":9.25, "y":4},
+ {"label":">", "x":10.25, "y":4},
+ {"label":"?", "x":11.25, "y":4},
+ {"label":"Shift", "x":12.25, "y":4, "w":1.75},
+ {"label":"&uarr;", "x":14, "y":4},
+ {"label":"PgDn", "x":15, "y":4},
+ {"label":"Ctrl", "x":0, "y":5, "w":1.25},
+ {"label":"Win", "x":1.25, "y":5, "w":1.25},
+ {"label":"Alt", "x":2.5, "y":5, "w":1.25},
+ {"x":3.75, "y":5, "w":6.25},
+ {"label":"Alt", "x":10, "y":5},
+ {"label":"Win", "x":11, "y":5},
+ {"label":"Ctrl", "x":12, "y":5},
+ {"label":"&larr;", "x":13, "y":5},
+ {"label":"&darr;", "x":14, "y":5},
+ {"label":"&rarr;", "x":15, "y":5}
+ ]
+ },
+ "LAYOUT_divided_fnrow": {
+ "layout": [
+ {"label":"Esc", "x":0, "y":0},
+ {"label":"F1", "x":1.5, "y":0},
+ {"label":"F2", "x":2.5, "y":0},
+ {"label":"F3", "x":3.5, "y":0},
+ {"label":"F4", "x":4.5, "y":0},
+ {"label":"F5", "x":6, "y":0},
+ {"label":"F6", "x":7, "y":0},
+ {"label":"F7", "x":8, "y":0},
+ {"label":"F8", "x":9, "y":0},
+ {"label":"F9", "x":10.5, "y":0},
+ {"label":"F10", "x":11.5, "y":0},
+ {"label":"F11", "x":12.5, "y":0},
+ {"label":"F12", "x":13.5, "y":0},
+ {"label":"Print Screen", "x":15, "y":0},
+ {"label":"~", "x":0, "y":1},
+ {"label":"!", "x":1, "y":1},
+ {"label":"@", "x":2, "y":1},
+ {"label":"#", "x":3, "y":1},
+ {"label":"$", "x":4, "y":1},
+ {"label":"%", "x":5, "y":1},
+ {"label":"^", "x":6, "y":1},
+ {"label":"&", "x":7, "y":1},
+ {"label":"*", "x":8, "y":1},
+ {"label":"(", "x":9, "y":1},
+ {"label":")", "x":10, "y":1},
+ {"label":"_", "x":11, "y":1},
+ {"label":"+", "x":12, "y":1},
+ {"label":"Back Space", "x":13, "y":1},
+ {"label":"Delete", "x":14, "y":1},
+ {"label":"Home", "x":15, "y":1},
+ {"label":"Tab", "x":0, "y":2, "w":1.5},
+ {"label":"Q", "x":1.5, "y":2},
+ {"label":"W", "x":2.5, "y":2},
+ {"label":"E", "x":3.5, "y":2},
+ {"label":"R", "x":4.5, "y":2},
+ {"label":"T", "x":5.5, "y":2},
+ {"label":"Y", "x":6.5, "y":2},
+ {"label":"U", "x":7.5, "y":2},
+ {"label":"I", "x":8.5, "y":2},
+ {"label":"O", "x":9.5, "y":2},
+ {"label":"P", "x":10.5, "y":2},
+ {"label":"{", "x":11.5, "y":2},
+ {"label":"}", "x":12.5, "y":2},
+ {"label":"|", "x":13.5, "y":2, "w":1.5},
+ {"label":"End", "x":15, "y":2},
+ {"label":"Caps Lock", "x":0, "y":3, "w":1.75},
+ {"label":"A", "x":1.75, "y":3},
+ {"label":"S", "x":2.75, "y":3},
+ {"label":"D", "x":3.75, "y":3},
+ {"label":"F", "x":4.75, "y":3},
+ {"label":"G", "x":5.75, "y":3},
+ {"label":"H", "x":6.75, "y":3},
+ {"label":"J", "x":7.75, "y":3},
+ {"label":"K", "x":8.75, "y":3},
+ {"label":"L", "x":9.75, "y":3},
+ {"label":":", "x":10.75, "y":3},
+ {"label":"\"", "x":11.75, "y":3},
+ {"label":"Enter", "x":12.75, "y":3, "w":2.25},
+ {"label":"PgUp", "x":15, "y":3},
+ {"label":"Shift", "x":0, "y":4, "w":1.25},
+ {"label":"|", "x":1.25, "y":4},
+ {"label":"Z", "x":2.25, "y":4},
+ {"label":"X", "x":3.25, "y":4},
+ {"label":"C", "x":4.25, "y":4},
+ {"label":"V", "x":5.25, "y":4},
+ {"label":"B", "x":6.25, "y":4},
+ {"label":"N", "x":7.25, "y":4},
+ {"label":"M", "x":8.25, "y":4},
+ {"label":"<", "x":9.25, "y":4},
+ {"label":">", "x":10.25, "y":4},
+ {"label":"?", "x":11.25, "y":4},
+ {"label":"Shift", "x":12.25, "y":4, "w":1.75},
+ {"label":"&uarr;", "x":14, "y":4},
+ {"label":"PgDn", "x":15, "y":4},
+ {"label":"Ctrl", "x":0, "y":5, "w":1.25},
+ {"label":"Win", "x":1.25, "y":5, "w":1.25},
+ {"label":"Alt", "x":2.5, "y":5, "w":1.25},
+ {"x":3.75, "y":5, "w":6.25},
+ {"label":"Alt", "x":10, "y":5},
+ {"label":"Win", "x":11, "y":5},
+ {"label":"Ctrl", "x":12, "y":5},
+ {"label":"&larr;", "x":13, "y":5},
+ {"label":"&darr;", "x":14, "y":5},
+ {"label":"&rarr;", "x":15, "y":5}
+ ]
+ }
+ }
+}
diff --git a/keyboards/quad_h/lb75/keymaps/continuous_fnrow/keymap.c b/keyboards/quad_h/lb75/keymaps/continuous_fnrow/keymap.c
new file mode 100644
index 0000000000..817b3cbddb
--- /dev/null
+++ b/keyboards/quad_h/lb75/keymaps/continuous_fnrow/keymap.c
@@ -0,0 +1,35 @@
+/* Copyright 2019 Ryota Goto
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_continuous_fnrow( /* Base */
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
+ MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
+ KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_continuous_fnrow( /* Fn */
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ KC_CAPS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_STEP, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+};
diff --git a/keyboards/quad_h/lb75/keymaps/continuous_fnrow/readme.md b/keyboards/quad_h/lb75/keymaps/continuous_fnrow/readme.md
new file mode 100644
index 0000000000..be0223d1a7
--- /dev/null
+++ b/keyboards/quad_h/lb75/keymaps/continuous_fnrow/readme.md
@@ -0,0 +1,3 @@
+# The continuous fnrow keymap for LB75
+
+Non-blockered upper row \ No newline at end of file
diff --git a/keyboards/quad_h/lb75/keymaps/default/keymap.c b/keyboards/quad_h/lb75/keymaps/default/keymap.c
new file mode 100644
index 0000000000..817b3cbddb
--- /dev/null
+++ b/keyboards/quad_h/lb75/keymaps/default/keymap.c
@@ -0,0 +1,35 @@
+/* Copyright 2019 Ryota Goto
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_continuous_fnrow( /* Base */
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
+ MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
+ KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_continuous_fnrow( /* Fn */
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ KC_CAPS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_STEP, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+};
diff --git a/keyboards/quad_h/lb75/keymaps/default/readme.md b/keyboards/quad_h/lb75/keymaps/default/readme.md
new file mode 100644
index 0000000000..6d3bb42bcf
--- /dev/null
+++ b/keyboards/quad_h/lb75/keymaps/default/readme.md
@@ -0,0 +1,3 @@
+# The default keymap for LB75
+
+Nothing special \ No newline at end of file
diff --git a/keyboards/quad_h/lb75/keymaps/divided_fnrow/keymap.c b/keyboards/quad_h/lb75/keymaps/divided_fnrow/keymap.c
new file mode 100644
index 0000000000..5a3a58482d
--- /dev/null
+++ b/keyboards/quad_h/lb75/keymaps/divided_fnrow/keymap.c
@@ -0,0 +1,35 @@
+/* Copyright 2019 Ryota Goto
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_divided_fnrow( /* Base */
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
+ MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
+ KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_divided_fnrow( /* Fn */
+ RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ KC_CAPS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_STEP, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+};
diff --git a/keyboards/quad_h/lb75/keymaps/divided_fnrow/readme.md b/keyboards/quad_h/lb75/keymaps/divided_fnrow/readme.md
new file mode 100644
index 0000000000..0a2f0b5de8
--- /dev/null
+++ b/keyboards/quad_h/lb75/keymaps/divided_fnrow/readme.md
@@ -0,0 +1,3 @@
+# The divided fnrow keymap for LB75
+
+Blockered upper row \ No newline at end of file
diff --git a/keyboards/quad_h/lb75/keymaps/via/keymap.c b/keyboards/quad_h/lb75/keymaps/via/keymap.c
new file mode 100644
index 0000000000..9df605dbb6
--- /dev/null
+++ b/keyboards/quad_h/lb75/keymaps/via/keymap.c
@@ -0,0 +1,51 @@
+/* Copyright 2019 Ryota Goto
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_continuous_fnrow( /* Base */
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
+ MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
+ KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_continuous_fnrow( /* Fn */
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ KC_CAPS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_STEP, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [2] = LAYOUT_continuous_fnrow(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [3] = LAYOUT_continuous_fnrow(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+};
diff --git a/keyboards/quad_h/lb75/keymaps/via/readme.md b/keyboards/quad_h/lb75/keymaps/via/readme.md
new file mode 100644
index 0000000000..943c015c18
--- /dev/null
+++ b/keyboards/quad_h/lb75/keymaps/via/readme.md
@@ -0,0 +1,3 @@
+# The via keymap for LB75
+
+For use with VIA configurator \ No newline at end of file
diff --git a/keyboards/quad_h/lb75/keymaps/via/rules.mk b/keyboards/quad_h/lb75/keymaps/via/rules.mk
new file mode 100644
index 0000000000..036bd6d1c3
--- /dev/null
+++ b/keyboards/quad_h/lb75/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/quad_h/lb75/lb75.c b/keyboards/quad_h/lb75/lb75.c
new file mode 100644
index 0000000000..a18f45adb8
--- /dev/null
+++ b/keyboards/quad_h/lb75/lb75.c
@@ -0,0 +1,39 @@
+/* Copyright 2019 Ryota Goto
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include "lb75.h"
+
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+
+ setPinOutput(B1);
+ setPinOutput(B2);
+
+ matrix_init_user();
+}
+
+bool led_update_kb(led_t led_state) {
+ bool res = led_update_user(led_state);
+
+ if(res) {
+ writePin(B1, !led_state.caps_lock);
+ writePin(B2, !led_state.scroll_lock);
+ }
+
+ return res;
+}
+
diff --git a/keyboards/quad_h/lb75/lb75.h b/keyboards/quad_h/lb75/lb75.h
new file mode 100644
index 0000000000..697a5fbb21
--- /dev/null
+++ b/keyboards/quad_h/lb75/lb75.h
@@ -0,0 +1,73 @@
+/* Copyright 2019 Ryota Goto
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#include "quantum.h"
+
+/* This a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+#define LAYOUT_continuous_fnrow( \
+ K000, K010, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, K007, K017, \
+ K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K027, K037, \
+ K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K047, K057, \
+ K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K076, K077, \
+ K080, K090, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K086, K087, K097, \
+ K100, K110, K101, K103, K105, K115, K106, K116, K107, K117 \
+) \
+{ \
+ { K000, K001, K002, K003, K004, K005, K006, K007 }, \
+ { K010, K011, K012, K013, K014, K015, K016, K017 }, \
+ { K020, K021, K022, K023, K024, K025, K026, K027 }, \
+ { K030, K031, K032, K033, K034, K035, K036, K037 }, \
+ { K040, K041, K042, K043, K044, K045, K046, K047 }, \
+ { K050, K051, K052, K053, K054, K055, KC_NO, K057 }, \
+ { K060, K061, K062, K063, K064, K065, KC_NO, KC_NO }, \
+ { K070, K071, K072, K073, K074, K075, K076, K077 }, \
+ { K080, K081, K082, K083, K084, K085, K086, K087 }, \
+ { K090, K091, K092, K093, K094, K095, KC_NO, K097 }, \
+ { K100, K101, KC_NO, K103, KC_NO, K105, K106, K107 }, \
+ { K110, KC_NO, KC_NO, KC_NO, KC_NO, K115, K116, K117 } \
+}
+
+#define LAYOUT_divided_fnrow( \
+ K000, K010, K001, K011, K002, K003, K013, K004, K014, K005, K015, K006, K016, K017, \
+ K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K027, K037, \
+ K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K047, K057, \
+ K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K076, K077, \
+ K080, K090, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K086, K087, K097, \
+ K100, K110, K101, K103, K105, K115, K106, K116, K107, K117 \
+) \
+{ \
+ { K000, K001, K002, K003, K004, K005, K006, KC_NO }, \
+ { K010, K011, KC_NO, K013, K014, K015, K016, K017 }, \
+ { K020, K021, K022, K023, K024, K025, K026, K027 }, \
+ { K030, K031, K032, K033, K034, K035, K036, K037 }, \
+ { K040, K041, K042, K043, K044, K045, K046, K047 }, \
+ { K050, K051, K052, K053, K054, K055, KC_NO, K057 }, \
+ { K060, K061, K062, K063, K064, K065, KC_NO, KC_NO }, \
+ { K070, K071, K072, K073, K074, K075, K076, K077 }, \
+ { K080, K081, K082, K083, K084, K085, K086, K087 }, \
+ { K090, K091, K092, K093, K094, K095, KC_NO, K097 }, \
+ { K100, K101, KC_NO, K103, KC_NO, K105, K106, K107 }, \
+ { K110, KC_NO, KC_NO, KC_NO, KC_NO, K115, K116, K117 } \
+}
+
diff --git a/keyboards/quad_h/lb75/readme.md b/keyboards/quad_h/lb75/readme.md
new file mode 100644
index 0000000000..7f44499f64
--- /dev/null
+++ b/keyboards/quad_h/lb75/readme.md
@@ -0,0 +1,15 @@
+# LB75
+
+![LB75](https://i.imgur.com/UNhskvMl.jpg)
+
+LB75 PCB for QUAD-H
+
+* Keyboard Maintainer: [ai03](https://github.com/ai03-2725)
+* Hardware Supported: The LB75 PCB
+* Hardware Availability: Private
+
+Make example for this keyboard (after setting up your build environment):
+
+ make quad_h/lb75:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/quad_h/lb75/rules.mk b/keyboards/quad_h/lb75/rules.mk
new file mode 100644
index 0000000000..37a5d441a5
--- /dev/null
+++ b/keyboards/quad_h/lb75/rules.mk
@@ -0,0 +1,33 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = yes # USB Nkey Rollover
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
+
diff --git a/keyboards/rgbkb/sol/keymaps/xulkal/config.h b/keyboards/rgbkb/sol/keymaps/xulkal/config.h
index a5c35cfae8..ab75c5419c 100644
--- a/keyboards/rgbkb/sol/keymaps/xulkal/config.h
+++ b/keyboards/rgbkb/sol/keymaps/xulkal/config.h
@@ -29,3 +29,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGB_MATRIX_VAL_STEP 8
#define RGB_MATRIX_SPD_STEP 8
#endif
+
+#define ENCODER_RESOLUTION 2
diff --git a/keyboards/rgbkb/sol/keymaps/xulkal/rules.mk b/keyboards/rgbkb/sol/keymaps/xulkal/rules.mk
index 6a14a99af5..da524e3dc9 100644
--- a/keyboards/rgbkb/sol/keymaps/xulkal/rules.mk
+++ b/keyboards/rgbkb/sol/keymaps/xulkal/rules.mk
@@ -5,7 +5,8 @@ RGBLIGHT_ENABLE = no # Enable global lighting effects. Do not ena
RGBLIGHT_ANIMATIONS = no # LED animations
LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master)
RGB_MATRIX_ENABLE = WS2812 # Enable per-key coordinate based RGB effects. Do not enable with RGBlight
-FULLHAND_ENABLE = yes # Enables the additional 24 Full Hand LEDs
+FULLHAND_ENABLE = no # Enables the additional 24 Full Hand LEDs
+SF_ENABLE = no # Enables the additional 38 Starfighter LEDs
# Misc
OLED_DRIVER_ENABLE = yes # Enable the OLED Driver
diff --git a/keyboards/shambles/config.h b/keyboards/shambles/config.h
new file mode 100644
index 0000000000..7714e4e6bd
--- /dev/null
+++ b/keyboards/shambles/config.h
@@ -0,0 +1,43 @@
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x4F42
+#define DEVICE_VER 0x0001
+#define MANUFACTURER OsciX
+#define PRODUCT Shambles TKL
+#define DESCRIPTION A minimalist keyboard with extra tenkeyless keys.
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 13
+
+/* key matrix pins */
+#define MATRIX_ROW_PINS { F5, B3, B1, F7 }
+#define MATRIX_COL_PINS { D3, D1, D0, D4, C6, D7, E6, B4, B5, B6, B2, F4, F6 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* key combination for command */
+
+
+#ifdef RGB_DI_PIN
+# define RGBLIGHT_ANIMATIONS
+# define RGBLED_NUM 0
+# define RGBLIGHT_HUE_STEP 8
+# define RGBLIGHT_SAT_STEP 8
+# define RGBLIGHT_VAL_STEP 8
+#endif
diff --git a/keyboards/shambles/info.json b/keyboards/shambles/info.json
new file mode 100644
index 0000000000..1f031cf7d2
--- /dev/null
+++ b/keyboards/shambles/info.json
@@ -0,0 +1,13 @@
+{
+ "keyboard_name": "Shambles TKL",
+ "url": "",
+ "maintainer": "OsciX",
+ "width": 13.25,
+ "height": 4.5,
+ "layouts": {
+ "LAYOUT": {
+ "key_count": 47,
+ "layout": [{"label":"K00", "x":0, "y":0}, {"label":"K01", "x":1.5, "y":0}, {"label":"K02", "x":2.5, "y":0}, {"label":"K03", "x":3.5, "y":0}, {"label":"K04", "x":4.75, "y":0}, {"label":"K05", "x":5.75, "y":0}, {"label":"K06", "x":6.75, "y":0}, {"label":"K07", "x":8, "y":0}, {"label":"K08", "x":9, "y":0}, {"label":"K09", "x":10.25, "y":0}, {"label":"K10", "x":11.25, "y":0}, {"label":"K11", "x":12.25, "y":0}, {"label":"K12", "x":0, "y":1.5}, {"label":"K13", "x":1, "y":1.5}, {"label":"K14", "x":2, "y":1.5}, {"label":"K15", "x":3, "y":1.5}, {"label":"K16", "x":4, "y":1.5}, {"label":"K17", "x":5, "y":1.5}, {"label":"K18", "x":6, "y":1.5}, {"label":"K19", "x":7, "y":1.5}, {"label":"K20", "x":8, "y":1.5}, {"label":"K21", "x":9, "y":1.5}, {"label":"K22", "x":10.25, "y":1.25}, {"label":"K23", "x":11.25, "y":1.25}, {"label":"K24", "x":12.25, "y":1.25}, {"label":"K25", "x":0, "y":2.5}, {"label":"K26", "x":1, "y":2.5}, {"label":"K27", "x":2, "y":2.5}, {"label":"K28", "x":3, "y":2.5}, {"label":"K29", "x":4, "y":2.5}, {"label":"K30", "x":5, "y":2.5}, {"label":"K31", "x":6, "y":2.5}, {"label":"K32", "x":7, "y":2.5}, {"label":"K33", "x":8, "y":2.5}, {"label":"K34", "x":9, "y":2.5}, {"label":"K35", "x":11.25, "y":2.5}, {"label":"K36", "x":0.5, "y":3.5}, {"label":"K37", "x":1.5, "y":3.5}, {"label":"K38", "x":2.5, "y":3.5}, {"label":"K39", "x":3.5, "y":3.5}, {"label":"K40", "x":4.5, "y":3.5, "w":2}, {"label":"K41", "x":6.5, "y":3.5}, {"label":"K42", "x":7.5, "y":3.5}, {"label":"K43", "x":8.5, "y":3.5}, {"label":"K44", "x":10.25, "y":3.5}, {"label":"K45", "x":11.25, "y":3.5}, {"label":"K43", "x":12.25, "y":3.5}]
+ }
+ }
+}
diff --git a/keyboards/shambles/keymaps/default/keymap.c b/keyboards/shambles/keymaps/default/keymap.c
new file mode 100644
index 0000000000..6a076f7090
--- /dev/null
+++ b/keyboards/shambles/keymaps/default/keymap.c
@@ -0,0 +1,10 @@
+#include "shambles.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ LAYOUT(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENT, KC_RCTL, KC_RALT,
+ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_RSFT, KC_UP,
+ KC_Z, KC_X, KC_C, KC_V, KC_SPC, KC_B, KC_N, KC_M, KC_LEFT, KC_DOWN, KC_RGHT)
+};
diff --git a/keyboards/shambles/readme.md b/keyboards/shambles/readme.md
new file mode 100644
index 0000000000..1b80263c66
--- /dev/null
+++ b/keyboards/shambles/readme.md
@@ -0,0 +1,15 @@
+# Shambles
+
+![Shambles](https://i.imgur.com/aTEHQpzl.jpg)
+
+An Alpha28, with a numpad and nav cluster
+
+* Keyboard Maintainer: [OsciX](https://github.com/OsciX)
+* Hardware Supported: Shambles
+* Hardware Availability: [OsciX/shambles_qmk](https://github.com/OsciX/shambles_qmk)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make shambles:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/shambles/rules.mk b/keyboards/shambles/rules.mk
new file mode 100644
index 0000000000..d029ee528f
--- /dev/null
+++ b/keyboards/shambles/rules.mk
@@ -0,0 +1,32 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = yes # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/shambles/shambles.c b/keyboards/shambles/shambles.c
new file mode 100644
index 0000000000..b0ef6b8f99
--- /dev/null
+++ b/keyboards/shambles/shambles.c
@@ -0,0 +1 @@
+#include "shambles.h"
diff --git a/keyboards/shambles/shambles.h b/keyboards/shambles/shambles.h
new file mode 100644
index 0000000000..5fb13b6358
--- /dev/null
+++ b/keyboards/shambles/shambles.h
@@ -0,0 +1,15 @@
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT( \
+ K000, K001, K002, K003, K005, K006, K007, K008, K009, K010, K011, K012, \
+ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, \
+ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K211, \
+ K300, K301, K302, K303, K305, K306, K307, K308, K310, K311, K312 \
+) { \
+ { K000, K001, K002, K003, KC_NO, K005, K006, K007, K008, K009, K010, K011, K012 }, \
+ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112 }, \
+ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, KC_NO, K211, KC_NO }, \
+ { K300, K301, K302, K303, KC_NO, K305, K306, K307, K308, KC_NO, K310, K311, K312 } \
+}
diff --git a/keyboards/singa/rules.mk b/keyboards/singa/rules.mk
index 84eace5ed6..3d51be1133 100644
--- a/keyboards/singa/rules.mk
+++ b/keyboards/singa/rules.mk
@@ -20,5 +20,3 @@ COMMAND_ENABLE = yes
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
-
-OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/staryu/config.h b/keyboards/staryu/config.h
index dc7353fcce..dbf2b867ea 100755
--- a/keyboards/staryu/config.h
+++ b/keyboards/staryu/config.h
@@ -65,7 +65,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define BACKLIGHT_PINS { C2, C7, D5, D6, B0 }
#define BACKLIGHT_LED_COUNT 5
#define BACKLIGHT_LEVELS 10
-#define BACKLIGHT_ON_STATE 1
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/tada68/keymaps/dlg/keymap.c b/keyboards/tada68/keymaps/dlg/keymap.c
index 9cd6cb2f12..32532e0f3f 100755
--- a/keyboards/tada68/keymaps/dlg/keymap.c
+++ b/keyboards/tada68/keymaps/dlg/keymap.c
@@ -3,11 +3,8 @@
#define _BL 0
#define _FL 1
#define _MAC 2
+#define _LA 3
-// investigate later - use lctl / lsft as up/down.
-// https://github.com/qmk/qmk_firmware/tree/master/keyboards/tada68/keymaps/fakb
-#define LCTL_MA LCTL_T(KC_UP)
-#define LSFT_MA LSFT_T(KC_DOWN)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap _BL: (Base Layer) Default Layer
@@ -27,19 +24,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* Win + Esc = `
*/
[_BL] = LAYOUT_ansi(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV, \
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_ESC, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , \
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \
- KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN, \
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT),
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, \
+ KC_LCTL, KC_LGUI, LM(_LA, MOD_LALT), KC_SPC, KC_RALT, MO(_FL), KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT),
/* Keymap _FL: Function Layer
* ,----------------------------------------------------------------.
* |`swp|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| Del |`swp|
* |----------------------------------------------------------------|
- * | |BL |BL-|BL+|Brt| | | |mac| |PSc| | | |Ins |
+ * | |BL |BL-|BL+| | | | |mac| |PSc| | | |Ins |
* |----------------------------------------------------------------|
- * | | | | | | |<- |Dn |Up | ->| | | |Hme |
+ * | | | | | | |Lef|Dn |Up |Rig| | | |Hme |
* |----------------------------------------------------------------|
* | | | | | | | |MUT|V- |V+ | | |PUp|End |
* |----------------------------------------------------------------|
@@ -48,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
[_FL] = LAYOUT_ansi(
MAGIC_UNSWAP_GRAVE_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, MAGIC_SWAP_GRAVE_ESC, \
- _______, BL_TOGG, BL_DEC, BL_INC , BL_BRTG, _______, _______, _______, TG(_MAC),_______, KC_PSCR, _______, _______, _______, KC_INS, \
+ _______, BL_TOGG, BL_DEC, BL_INC , _______, _______, _______, _______, TG(_MAC),_______, KC_PSCR, _______, _______, _______, KC_INS, \
_______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, KC_HOME, \
_______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_PGUP, KC_END , \
_______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END ),
@@ -73,4 +70,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
KC_LCTL, KC_LALT, KC_LGUI, _______, KC_RGUI, _______, KC_RALT, _______, _______, _______),
+ /* Keymap _LA: Left Alt Layer - LALT-4 maps to LALT-F4 so I can quit apps
+ * ,----------------------------------------------------------------.
+ * | | | | |F4 | | | | | | | | | | |
+ * |----------------------------------------------------------------|
+ * | | | | | | | | | | | | | | | |
+ * |----------------------------------------------------------------|
+ * | | | | | | | | | | | | | | |
+ * |----------------------------------------------------------------|
+ * | | | | | | | | | | | | | | |
+ * |----------------------------------------------------------------|
+ * | | | | | | | | | | |
+ * `----------------------------------------------------------------'
+ */
+[_LA] = LAYOUT_ansi(
+ _______, _______, _______, _______, KC_F4, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
};
diff --git a/keyboards/tada68/keymaps/dlg/readme.md b/keyboards/tada68/keymaps/dlg/readme.md
index 1f1ae18671..9bb9d2496e 100755
--- a/keyboards/tada68/keymaps/dlg/readme.md
+++ b/keyboards/tada68/keymaps/dlg/readme.md
@@ -4,13 +4,14 @@
+ Mac layer
+ Press Fn-I to align the bottom row to mac standards
+ volume controls moved to Fn+ M<>
- + [Space Cadet Shift](https://docs.qmk.fm/#/feature_space_cadet_shift) enabled
- + Fn+R for LED breathing
+ Fn+Del for Insert
+ `GRAVE_ESC_ALT_OVERRIDE` so cmd-opt-esc still works (thx [mattdicarlo](https://github.com/qmk/qmk_firmware/tree/master/keyboards/tada68/keymaps/mattdicarlo))
+ + `LALT` layer - LALT-4 maps to LALT-F4 so you can close windows in Windows
+
+
+### Base Layer
```
- Base Layer
,----------------------------------------------------------------.
|Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |~ ` |
|----------------------------------------------------------------|
@@ -22,15 +23,19 @@
|----------------------------------------------------------------|
|Ctrl|Win |Alt | Space |Alt|Fn |Ctrl|<- |Dn | -> |
`----------------------------------------------------------------'
-Note: Shift + Esc = ~ (tilde)
- Win + Esc = ` (grave)
+```
+Note:
+* Shift + Esc = ~ (tilde)
+* Win + Esc = ` (grave)
- Fn Layer
+### Fn Layer
+
+```
,----------------------------------------------------------------.
| |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| Del | |
|----------------------------------------------------------------|
-| |BL |BL-|BL+|Brt| | | |mac| |PSc| | | |Ins |
+| |BL |BL-|BL+| | | | |mac| |PSc| | | |Ins |
|----------------------------------------------------------------|
| | | | | | |<- |Dn |Up | ->| | | |Hme |
|----------------------------------------------------------------|
@@ -38,8 +43,11 @@ Note: Shift + Esc = ~ (tilde)
|----------------------------------------------------------------|
| | | | | | | |Hme|PDn|End |
`----------------------------------------------------------------'
+```
-Mac Layer
+### Mac Layer
+
+```
,----------------------------------------------------------------.
| | | | | | | | | | | | | | | |
|----------------------------------------------------------------|
@@ -52,3 +60,19 @@ Mac Layer
|Ctrl|Alt |Win | |Win | |Alt| | | |
`----------------------------------------------------------------'
```
+
+### `LALT` Layer
+
+```
+,----------------------------------------------------------------.
+| | | | |F4 | | | | | | | | | | |
+|----------------------------------------------------------------|
+| | | | | | | | | | | | | | | |
+|----------------------------------------------------------------|
+| | | | | | | | | | | | | | |
+|----------------------------------------------------------------|
+| | | | | | | | | | | | | | |
+|----------------------------------------------------------------|
+| |Alt | | | | | | | | |
+`----------------------------------------------------------------'
+```
diff --git a/keyboards/tartan/rules.mk b/keyboards/tartan/rules.mk
index 92658e2d05..8113001918 100644
--- a/keyboards/tartan/rules.mk
+++ b/keyboards/tartan/rules.mk
@@ -11,11 +11,6 @@ MCU = atmega328p
# ATmega328P USBasp
BOOTLOADER = USBasp
-
-# disable debug code
-OPT_DEFS = -DDEBUG_LEVEL=0
-
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/tenki/config.h b/keyboards/tenki/config.h
new file mode 100644
index 0000000000..b3c7201d89
--- /dev/null
+++ b/keyboards/tenki/config.h
@@ -0,0 +1,41 @@
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x5058 // "PX"
+#define PRODUCT_ID 0x5445 // "TE"
+#define DEVICE_VER 0x1001
+#define MANUFACTURER Pixlup
+#define PRODUCT TENKI
+#define DESCRIPTION Customizable Mechanical Numpad
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 4
+
+/* key matrix pins */
+#define MATRIX_ROW_PINS { B1, B4, F6, B6, B2 }
+#define MATRIX_COL_PINS { F4, F5, D4, D0 }
+#define UNUSED_PINS
+
+#define DIODE_DIRECTION COL2ROW
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+
+/* ws2812 RGB LED */
+#define RGB_DI_PIN D1
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 3 // Number of LEDs
+#define RGBLIGHT_HUE_STEP 10
+#define RGBLIGHT_SAT_STEP 10
+#define RGBLIGHT_VAL_STEP 10
+#define RGBLIGHT_SLEEP
diff --git a/keyboards/tenki/info.json b/keyboards/tenki/info.json
new file mode 100644
index 0000000000..6c37a45605
--- /dev/null
+++ b/keyboards/tenki/info.json
@@ -0,0 +1,12 @@
+{
+ "keyboard_name": "TENKI",
+ "url": "https://tokopedia.com/pixlup",
+ "maintainer": "eriqadams",
+ "width": 4,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_ortho_5x4": {
+ "layout": [{"label":"Num Lock", "x":0, "y":0}, {"label":"/", "x":1, "y":0}, {"label":"*", "x":2, "y":0}, {"label":"-", "x":3, "y":0}, {"label":"7", "x":0, "y":1}, {"label":"8", "x":1, "y":1}, {"label":"9", "x":2, "y":1}, {"label":"+", "x":3, "y":1}, {"label":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"label":"Bspc", "x":3, "y":2}, {"label":"1", "x":0, "y":3}, {"label":"2", "x":1, "y":3}, {"label":"3", "x":2, "y":3}, {"label":"=", "x":3, "y":3}, {"label":"0", "x":0, "y":4}, {"label":"PrtScr", "x":1, "y":4}, {"label":".", "x":2, "y":4}, {"label":"Enter", "x":3, "y":4}]
+ }
+ }
+}
diff --git a/keyboards/tenki/keymaps/default/keymap.c b/keyboards/tenki/keymaps/default/keymap.c
new file mode 100644
index 0000000000..85a8f32302
--- /dev/null
+++ b/keyboards/tenki/keymaps/default/keymap.c
@@ -0,0 +1,19 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_ortho_5x4(
+ KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,\
+ KC_P7, KC_P8, KC_P9, KC_PPLS,\
+ KC_P4, KC_P5, KC_P6, KC_BSPC,\
+ KC_P1, KC_P2, KC_P3, KC_PEQL,\
+ KC_P0, KC_PSCR , LT(1,KC_PDOT), KC_PENT
+ ),
+
+ [1] = LAYOUT_ortho_5x4(
+ KC_TRNS, RGB_HUI, RGB_HUD, RGB_VAD,\
+ KC_TRNS, KC_VOLU, RGB_TOG, RGB_VAI,\
+ KC_MPRV, KC_MUTE, KC_MNXT, KC_TRNS,\
+ KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS,\
+ RESET, KC_TRNS, KC_TRNS, RGB_MOD
+ )
+};
diff --git a/keyboards/tenki/keymaps/via/keymap.c b/keyboards/tenki/keymaps/via/keymap.c
new file mode 100644
index 0000000000..9180d8d97f
--- /dev/null
+++ b/keyboards/tenki/keymaps/via/keymap.c
@@ -0,0 +1,38 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_ortho_5x4(
+ KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,\
+ KC_P7, KC_P8, KC_P9, KC_PPLS,\
+ KC_P4, KC_P5, KC_P6, KC_BSPC,\
+ KC_P1, KC_P2, KC_P3, KC_PEQL,\
+ KC_P0, KC_PSCR, LT(1,KC_PDOT), KC_PENT
+ ),
+
+ [1] = LAYOUT_ortho_5x4(
+ KC_TRNS, RGB_HUI, RGB_HUD, RGB_VAD,\
+ KC_TRNS, KC_VOLU, RGB_TOG, RGB_VAI,\
+ KC_MPRV, KC_MUTE, KC_MNXT, KC_TRNS,\
+ KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS,\
+ RESET, KC_TRNS, KC_TRNS, RGB_MOD
+ ),
+
+ [2] = LAYOUT_ortho_5x4(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+ [3] = LAYOUT_ortho_5x4(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+
+};
+
+
diff --git a/keyboards/tenki/keymaps/via/rules.mk b/keyboards/tenki/keymaps/via/rules.mk
new file mode 100644
index 0000000000..36b7ba9cbc
--- /dev/null
+++ b/keyboards/tenki/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
diff --git a/keyboards/tenki/readme.md b/keyboards/tenki/readme.md
new file mode 100644
index 0000000000..bb9d424065
--- /dev/null
+++ b/keyboards/tenki/readme.md
@@ -0,0 +1,16 @@
+# TENKI
+![TENKI](https://i.imgur.com/nOaxFwR.png)
+
+TENKI is a customizable hotswap mechanical numpad.
+Supported layout:
+![TENKI LAYOUT](https://i.imgur.com/sD9kxID.png)
+
+Keyboard Maintainer: [eriqadams](https://github.com/eriqadams)
+Hardware Supported: TENKI PCB, Pro Micro
+Hardware Availability: [If you're in Indonesia you can purchase here](https://tokopedia.com/pixlup)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make tenki:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/tenki/rules.mk b/keyboards/tenki/rules.mk
new file mode 100644
index 0000000000..4c47d369bb
--- /dev/null
+++ b/keyboards/tenki/rules.mk
@@ -0,0 +1,27 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+BOOTLOADER = caterina
+
+# Build Options
+# comment out to disable the options.
+#
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+AUDIO_ENABLE = no
+RGBLIGHT_ENABLE = yes
+
+LAYOUTS = ortho_5x4
diff --git a/keyboards/tenki/tenki.c b/keyboards/tenki/tenki.c
new file mode 100644
index 0000000000..318f8d4757
--- /dev/null
+++ b/keyboards/tenki/tenki.c
@@ -0,0 +1 @@
+#include "tenki.h"
diff --git a/keyboards/tenki/tenki.h b/keyboards/tenki/tenki.h
new file mode 100644
index 0000000000..29ec6303ab
--- /dev/null
+++ b/keyboards/tenki/tenki.h
@@ -0,0 +1,18 @@
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT_ortho_5x4( \
+ K00, K01, K02, K03, \
+ K10, K11, K12, K13, \
+ K20, K21, K22, K23, \
+ K30, K31, K32, K33, \
+ K40, K41, K42, K43 \
+) { \
+ { K00, K01, K02, K03}, \
+ { K10, K11, K12, K13}, \
+ { K20, K21, K22, K23}, \
+ { K30, K31, K32, K33}, \
+ { K40, K41, K42, K43} \
+}
+
diff --git a/keyboards/tgr/910/config.h b/keyboards/tgr/910/config.h
index ab9d81d834..995a6016a0 100644
--- a/keyboards/tgr/910/config.h
+++ b/keyboards/tgr/910/config.h
@@ -19,8 +19,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-#define VENDOR_ID 0x20A0
-#define PRODUCT_ID 0x422D
+#define VENDOR_ID 0x5447 //TG
+#define PRODUCT_ID 0x9100 //910
#define DEVICE_VER 0x0001
#define MANUFACTURER Quadcube
#define PRODUCT TGR-910
diff --git a/keyboards/tgr/910/keymaps/via/keymap.c b/keyboards/tgr/910/keymaps/via/keymap.c
new file mode 100644
index 0000000000..3aff12b530
--- /dev/null
+++ b/keyboards/tgr/910/keymaps/via/keymap.c
@@ -0,0 +1,32 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* layer 0: qwerty */
+ [0] = LAYOUT_ansi_split_bs(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGUP,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(2),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
+
+ [1] = LAYOUT_ansi_split_bs(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSLS, KC_TRNS,
+ BL_TOGG, BL_STEP, BL_INC, BL_DEC, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME,
+ RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END,
+ KC_TRNS, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+ [2] = LAYOUT_ansi_split_bs(
+ KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MSTP, KC_MNXT),
+
+ [3] = LAYOUT_ansi_split_bs(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+ };
diff --git a/keyboards/tgr/910/keymaps/via/rules.mk b/keyboards/tgr/910/keymaps/via/rules.mk
new file mode 100644
index 0000000000..9e1952e236
--- /dev/null
+++ b/keyboards/tgr/910/keymaps/via/rules.mk
@@ -0,0 +1,4 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
+
+EXTRAKEY_ENABLE = no
diff --git a/keyboards/tgr/910/readme.md b/keyboards/tgr/910/readme.md
index df348f0224..63e86380b8 100644
--- a/keyboards/tgr/910/readme.md
+++ b/keyboards/tgr/910/readme.md
@@ -1,4 +1,4 @@
-# tgr-910
+# TGR-910
65% custom keyboard with a very nice design.
@@ -6,6 +6,8 @@
* Hardware Supported: TGR-910 (Quadcube PCB)
* Hardware Availability: [Geekhack GB](https://geekhack.org/index.php?topic=86047.0)
+**Only works with Quadcube PCB, will not work with [TGR 910 CE](../910ce) PCB (a.k.a. TGR Unicorn v1.2)**
+
Make example for this keyboard (after setting up your build environment):
make tgr/910:default
diff --git a/keyboards/tgr/910/rules.mk b/keyboards/tgr/910/rules.mk
index a9746c0d3d..981f6b514f 100644
--- a/keyboards/tgr/910/rules.mk
+++ b/keyboards/tgr/910/rules.mk
@@ -20,5 +20,3 @@ COMMAND_ENABLE = yes
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
-
-OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/tgr/910ce/rules.mk b/keyboards/tgr/910ce/rules.mk
index 7a21b8a329..743a707331 100644
--- a/keyboards/tgr/910ce/rules.mk
+++ b/keyboards/tgr/910ce/rules.mk
@@ -17,12 +17,10 @@ BOOTLOADER = bootloadHID
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = yes # Console for debug
-COMMAND_ENABLE = yes # Commands for debug and configuration
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
WS2812_DRIVER = i2c
-OPT_DEFS = -DDEBUG_LEVEL=0
-
LAYOUTS = 65_ansi_blocker 65_iso_blocker \ No newline at end of file
diff --git a/keyboards/tgr/alice/rules.mk b/keyboards/tgr/alice/rules.mk
index fd340f04eb..20f0222c11 100644
--- a/keyboards/tgr/alice/rules.mk
+++ b/keyboards/tgr/alice/rules.mk
@@ -20,5 +20,3 @@ COMMAND_ENABLE = yes
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
-
-OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/tgr/jane/rules.mk b/keyboards/tgr/jane/rules.mk
index 8eeab33951..75ab2bc5bf 100644
--- a/keyboards/tgr/jane/rules.mk
+++ b/keyboards/tgr/jane/rules.mk
@@ -21,6 +21,4 @@ BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = no
WS2812_DRIVER = i2c
-OPT_DEFS = -DDEBUG_LEVEL=0
-
LAYOUTS = tkl_ansi tkl_iso
diff --git a/keyboards/tokyo60/config.h b/keyboards/tokyo60/config.h
index 79b904da1b..e22242c8f6 100644
--- a/keyboards/tokyo60/config.h
+++ b/keyboards/tokyo60/config.h
@@ -18,7 +18,6 @@
#define BACKLIGHT_PIN B7
#ifdef BACKLIGHT_PIN
#define BACKLIGHT_LEVELS 6
-//#define BACKLIGHT_ON_STATE 1
#endif
/* COL2ROW or ROW2COL */
diff --git a/keyboards/tokyo60/keymaps/default/keymap.c b/keyboards/tokyo60/keymaps/default/keymap.c
index a3e27bdd81..9139d15bc4 100644
--- a/keyboards/tokyo60/keymaps/default/keymap.c
+++ b/keyboards/tokyo60/keymaps/default/keymap.c
@@ -16,7 +16,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│Shift│█████│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │█████│Shift│ Fn │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│█████│ Gui │ Alt │█████│█████│Space│█████│█████│█████│█████│█████│ Alt │ Gui │█████│█████│
+│█████│ Alt │ Gui │█████│█████│Space│█████│█████│█████│█████│█████│ Gui │ Alt │█████│█████│
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
*/
[BL] = LAYOUT_60_hhkb(
diff --git a/keyboards/treadstone32/keymaps/default/config.h b/keyboards/treadstone32/keymaps/default/config.h
index a6363f9b9a..863588c5aa 100644
--- a/keyboards/treadstone32/keymaps/default/config.h
+++ b/keyboards/treadstone32/keymaps/default/config.h
@@ -1,22 +1,18 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
+/* Copyright 2019 marksard
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
#pragma once
@@ -30,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifdef MOUSEKEY_ENABLE
#undef MOUSEKEY_INTERVAL
#define MOUSEKEY_INTERVAL 1
-
#undef MOUSEKEY_TIME_TO_MAX
#define MOUSEKEY_TIME_TO_MAX 150
@@ -43,16 +38,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#undef MOUSEKEY_DELAY
#define MOUSEKEY_DELAY 0
#endif
-
-// Selection of RGBLIGHT MODE to use.
-#if defined(LED_ANIMATIONS)
- //#define RGBLIGHT_EFFECT_BREATHING
- #define RGBLIGHT_EFFECT_RAINBOW_MOOD
- #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
- //#define RGBLIGHT_EFFECT_SNAKE
- #define RGBLIGHT_EFFECT_KNIGHT
- //#define RGBLIGHT_EFFECT_CHRISTMAS
- #define RGBLIGHT_EFFECT_STATIC_GRADIENT
- //#define RGBLIGHT_EFFECT_RGB_TEST
- //#define RGBLIGHT_EFFECT_ALTERNATING
-#endif
diff --git a/keyboards/treadstone32/keymaps/default/keymap.c b/keyboards/treadstone32/keymaps/default/keymap.c
index b49e55f27c..7ca797fcc0 100644
--- a/keyboards/treadstone32/keymaps/default/keymap.c
+++ b/keyboards/treadstone32/keymaps/default/keymap.c
@@ -38,12 +38,12 @@ enum custom_keycodes {
#define KC_Z_CT LCTL_T(KC_Z)
#define KC_X_AL LALT_T(KC_X)
#define KC_C_GU LGUI_T(KC_C)
-#define KC_SSCT LCTL_T(KC_SLSH)
-#define KC_ENSF LSFT_T(KC_ENT)
+#define KC_SSCT RCTL_T(KC_SLSH)
+#define KC_ENSF RSFT_T(KC_ENT)
// Lower layer mod tap
#define KC_F6SF LSFT_T(KC_F6)
-#define KC_BSSF LSFT_T(KC_BSLS)
+#define KC_QUSF RSFT_T(KC_QUOT)
#define KC_11CT LCTL_T(KC_F11)
#define KC_12AL LALT_T(KC_F12)
@@ -77,9 +77,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//,---------------------------------------------------------------------------------------------------.
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
//|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
- KC_F6SF, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUOT,
+ KC_F6SF, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUSF,
//|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
- KC_11CT, KC_12AL, KC_ESC, KC_TAB, KANJI, KC_DEL, XXXXXXX, XXXXXXX, XXXXXXX, KC_GRV,
+ KC_11CT, KC_12AL, KC_ESC, KC_TAB, KANJI, KC_DEL, XXXXXXX, XXXXXXX, KC_RO, KC_GRV,
//`---------+---------+---------+---------+---------+---------+---------+---------+---------+---------'
_______, KC_MLAD
// `---------|---------'
@@ -99,9 +99,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_ADJUST] = LAYOUT(
//,---------------------------------------------------------------------------------------------------.
- RESET, RGBRST, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ RESET, RGBRST, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_PSCR,
//|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
- RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, XXXXXXX,
+ RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_NLCK,
//|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX,
//`---------+---------+---------+---------+---------+---------+---------+---------+---------+---------'
diff --git a/keyboards/treadstone32/keymaps/default/rules.mk b/keyboards/treadstone32/keymaps/default/rules.mk
index 5ca4c52586..882ddd6977 100644
--- a/keyboards/treadstone32/keymaps/default/rules.mk
+++ b/keyboards/treadstone32/keymaps/default/rules.mk
@@ -2,10 +2,9 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
+
# If your custom treadstone32 pcb, you can rewrite to yes.
RGBLIGHT_ENABLE = yes # LED underglow (Enable WS2812 RGB underlight.)
-LED_ANIMATIONS = yes # LED animations
-
# Other selectable option
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
diff --git a/keyboards/treadstone32/keymaps/like_jis/config.h b/keyboards/treadstone32/keymaps/like_jis/config.h
index a6363f9b9a..863588c5aa 100644
--- a/keyboards/treadstone32/keymaps/like_jis/config.h
+++ b/keyboards/treadstone32/keymaps/like_jis/config.h
@@ -1,22 +1,18 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
+/* Copyright 2019 marksard
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
#pragma once
@@ -30,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifdef MOUSEKEY_ENABLE
#undef MOUSEKEY_INTERVAL
#define MOUSEKEY_INTERVAL 1
-
#undef MOUSEKEY_TIME_TO_MAX
#define MOUSEKEY_TIME_TO_MAX 150
@@ -43,16 +38,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#undef MOUSEKEY_DELAY
#define MOUSEKEY_DELAY 0
#endif
-
-// Selection of RGBLIGHT MODE to use.
-#if defined(LED_ANIMATIONS)
- //#define RGBLIGHT_EFFECT_BREATHING
- #define RGBLIGHT_EFFECT_RAINBOW_MOOD
- #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
- //#define RGBLIGHT_EFFECT_SNAKE
- #define RGBLIGHT_EFFECT_KNIGHT
- //#define RGBLIGHT_EFFECT_CHRISTMAS
- #define RGBLIGHT_EFFECT_STATIC_GRADIENT
- //#define RGBLIGHT_EFFECT_RGB_TEST
- //#define RGBLIGHT_EFFECT_ALTERNATING
-#endif
diff --git a/keyboards/treadstone32/keymaps/like_jis/keymap.c b/keyboards/treadstone32/keymaps/like_jis/keymap.c
index 891f484469..a738226d99 100644
--- a/keyboards/treadstone32/keymaps/like_jis/keymap.c
+++ b/keyboards/treadstone32/keymaps/like_jis/keymap.c
@@ -39,12 +39,12 @@ enum custom_keycodes {
#define KC_Z_CT LCTL_T(KC_Z)
#define KC_X_AL LALT_T(KC_X)
#define KC_C_GU LGUI_T(KC_C)
-#define KC_SSCT LCTL_T(KC_SLSH)
-#define KC_ENSF LSFT_T(KC_ENT)
+#define KC_SSCT RCTL_T(KC_SLSH)
+#define KC_ENSF RSFT_T(KC_ENT)
// Lower layer mod tap
#define KC_F6SF LSFT_T(KC_F6)
-#define KC_BSSF LSFT_T(KC_BSLS)
+#define KC_BSSF RSFT_T(KC_BSLS)
#define KC_11CT LCTL_T(KC_F11)
#define KC_12AL LALT_T(KC_F12)
@@ -80,7 +80,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
KC_F6SF, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUOT, KC_BSSF,
//|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
- KC_11CT, KC_12AL, KC_ESC, KC_TAB, KANJI, KC_DEL, XXXXXXX, XXXXXXX, XXXXXXX, KC_RO,
+ KC_11CT, KC_12AL, KC_ESC, KC_TAB, KANJI, KC_DEL, XXXXXXX, XXXXXXX, KC_GRV, KC_RO,
//`---------+---------+---------+---------+---------+---------+---------+---------+---------+---------'
_______, KC_MLAD
// `---------|---------'
@@ -100,9 +100,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_ADJUST] = LAYOUT(
//,---------------------------------------------------------------------------------------------------.
- RESET, RGBRST, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ RESET, RGBRST, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_PSCR,
//|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
- RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, XXXXXXX,
+ RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_NLCK,
//|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX,
//`---------+---------+---------+---------+---------+---------+---------+---------+---------+---------'
diff --git a/keyboards/treadstone32/keymaps/like_jis/rules.mk b/keyboards/treadstone32/keymaps/like_jis/rules.mk
index 8c4541fa19..882ddd6977 100644
--- a/keyboards/treadstone32/keymaps/like_jis/rules.mk
+++ b/keyboards/treadstone32/keymaps/like_jis/rules.mk
@@ -1,14 +1,10 @@
-
# Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-TAP_DANCE_ENABLE = no
# If your custom treadstone32 pcb, you can rewrite to yes.
RGBLIGHT_ENABLE = yes # LED underglow (Enable WS2812 RGB underlight.)
-LED_ANIMATIONS = yes # LED animations
-
# Other selectable option
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
@@ -20,6 +16,3 @@ endif
ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes)
OPT_DEFS += -DIOS_DEVICE_ENABLE
endif
-
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/treadstone32/lite/config.h b/keyboards/treadstone32/lite/config.h
new file mode 100644
index 0000000000..f7c9b2e0d4
--- /dev/null
+++ b/keyboards/treadstone32/lite/config.h
@@ -0,0 +1,96 @@
+/*
+Copyright 2020 marksard
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0xDFA5
+#define DEVICE_VER 0x0015
+#define MANUFACTURER marksard
+#define PRODUCT treadstone32 lite
+#define DESCRIPTION Minimal Symmetrical staggered 32-Key Keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 8
+#define MATRIX_COLS 5
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS { B6, B2, F7, F6, B3, B1, F4, F5 }
+#define MATRIX_COL_PINS { B5, B4, E6, D7, C6 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+#define DIODE_DIRECTION COL2ROW
+#define RGB_DI_PIN D3
+#ifdef RGB_DI_PIN
+ #define RGBLED_NUM 6
+ #ifndef IOS_DEVICE_ENABLE
+ #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+ #define RGBLIGHT_VAL_STEP 8
+ #else
+ #define RGBLIGHT_LIMIT_VAL 50
+ #define RGBLIGHT_VAL_STEP 4
+ #endif
+ #define RGBLIGHT_HUE_STEP 8
+ #define RGBLIGHT_SAT_STEP 8
+ #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+/*== all animations enable ==*/
+// #define RGBLIGHT_ANIMATIONS
+/*== or choose animations ==*/
+// #define RGBLIGHT_EFFECT_BREATHING
+ #define RGBLIGHT_EFFECT_RAINBOW_MOOD
+ #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+// #define RGBLIGHT_EFFECT_SNAKE
+ #define RGBLIGHT_EFFECT_KNIGHT
+// #define RGBLIGHT_EFFECT_CHRISTMAS
+ #define RGBLIGHT_EFFECT_STATIC_GRADIENT
+// #define RGBLIGHT_EFFECT_RGB_TEST
+// #define RGBLIGHT_EFFECT_ALTERNATING
+/*== customize breathing effect ==*/
+ /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+ #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
+ /*==== use exp() and sin() ====*/
+ #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
+ #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
+#endif
+
+#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE)
+// USB_MAX_POWER_CONSUMPTION value for treadstone32 keyboard
+// 120 RGBoff
+// 330 RGB 6
+// 300 RGB 32
+ #define USB_MAX_POWER_CONSUMPTION 400
+#else
+ // fix iPhone and iPad power adapter issue
+ // iOS device need lessthan 100
+ #define USB_MAX_POWER_CONSUMPTION 100
+#endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
diff --git a/keyboards/treadstone32/lite/lite.c b/keyboards/treadstone32/lite/lite.c
new file mode 100644
index 0000000000..a1997feff0
--- /dev/null
+++ b/keyboards/treadstone32/lite/lite.c
@@ -0,0 +1,16 @@
+/* Copyright 2019 marksard
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include "lite.h"
diff --git a/keyboards/treadstone32/treadstone32.h b/keyboards/treadstone32/lite/lite.h
index 90181124c0..90181124c0 100644
--- a/keyboards/treadstone32/treadstone32.h
+++ b/keyboards/treadstone32/lite/lite.h
diff --git a/keyboards/treadstone32/lite/rules.mk b/keyboards/treadstone32/lite/rules.mk
new file mode 100644
index 0000000000..4bdc53c110
--- /dev/null
+++ b/keyboards/treadstone32/lite/rules.mk
@@ -0,0 +1,9 @@
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = caterina
diff --git a/keyboards/treadstone32/readme.md b/keyboards/treadstone32/readme.md
index 989a29c204..99cbe4e014 100644
--- a/keyboards/treadstone32/readme.md
+++ b/keyboards/treadstone32/readme.md
@@ -10,9 +10,12 @@ Hardware Availability: links to where you can find this hardware
Make example for this keyboard (after setting up your build environment):
- make treadstone32:default:dfu
+ make treadstone32:default
+ or
+ make treadstone32/lite:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
[Build guide](https://github.com/marksard/Keyboards/blob/master/treadstone32/documents/treadstone32_buildguide.md)
+[Build guide (lite)](https://github.com/marksard/Keyboards/blob/master/treadstone32/documents/treadstone32lite_buildguide.md)
[Firmware](https://github.com/marksard/qmk_firmware/tree/my_customize/keyboards/treadstone32)
diff --git a/keyboards/treadstone32/config.h b/keyboards/treadstone32/rev1/config.h
index b9cd94d4b6..caec9c5825 100644
--- a/keyboards/treadstone32/config.h
+++ b/keyboards/treadstone32/rev1/config.h
@@ -48,29 +48,38 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
-/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
-#define DEBOUNCE 5
-
-/* define if matrix has ghost (lacks anti-ghosting diodes) */
-//#define MATRIX_HAS_GHOST
-
-/* ws2812 RGB LED */
#define RGB_DI_PIN D3
-#define RGBLIGHT_TIMER
-#define ws2812_PORTREG PORTD
-#define ws2812_DDRREG DDRD
-
-#define RGBLED_NUM 6
-
-#ifndef IOS_DEVICE_ENABLE
- #define RGBLIGHT_LIMIT_VAL 200
- #define RGBLIGHT_VAL_STEP 17
-#else
- #define RGBLIGHT_LIMIT_VAL 50
- #define RGBLIGHT_VAL_STEP 4
+#ifdef RGB_DI_PIN
+ #define RGBLED_NUM 6
+ #ifndef IOS_DEVICE_ENABLE
+ #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+ #define RGBLIGHT_VAL_STEP 8
+ #else
+ #define RGBLIGHT_LIMIT_VAL 50
+ #define RGBLIGHT_VAL_STEP 4
+ #endif
+ #define RGBLIGHT_HUE_STEP 8
+ #define RGBLIGHT_SAT_STEP 8
+ #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+/*== all animations enable ==*/
+// #define RGBLIGHT_ANIMATIONS
+/*== or choose animations ==*/
+// #define RGBLIGHT_EFFECT_BREATHING
+ #define RGBLIGHT_EFFECT_RAINBOW_MOOD
+ #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+// #define RGBLIGHT_EFFECT_SNAKE
+ #define RGBLIGHT_EFFECT_KNIGHT
+// #define RGBLIGHT_EFFECT_CHRISTMAS
+ #define RGBLIGHT_EFFECT_STATIC_GRADIENT
+// #define RGBLIGHT_EFFECT_RGB_TEST
+// #define RGBLIGHT_EFFECT_ALTERNATING
+/*== customize breathing effect ==*/
+ /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+ #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
+ /*==== use exp() and sin() ====*/
+ #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
+ #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
#endif
-#define RGBLIGHT_HUE_STEP 10
-#define RGBLIGHT_SAT_STEP 17
#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE)
// USB_MAX_POWER_CONSUMPTION value for treadstone32 keyboard
@@ -84,20 +93,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define USB_MAX_POWER_CONSUMPTION 100
#endif
-/*
- * Feature disable options
- * These options are also useful to firmware size reduction.
- */
-
-/* disable debug print */
-//#define NO_DEBUG
-
-/* disable print */
-//#define NO_PRINT
-
-/* disable action features */
-//#define NO_ACTION_LAYER
-//#define NO_ACTION_TAPPING
-//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
diff --git a/keyboards/treadstone32/rev1/rev1.c b/keyboards/treadstone32/rev1/rev1.c
new file mode 100644
index 0000000000..bf41abddbe
--- /dev/null
+++ b/keyboards/treadstone32/rev1/rev1.c
@@ -0,0 +1,16 @@
+/* Copyright 2019 marksard
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include "rev1.h"
diff --git a/keyboards/treadstone32/rev1/rev1.h b/keyboards/treadstone32/rev1/rev1.h
new file mode 100644
index 0000000000..90181124c0
--- /dev/null
+++ b/keyboards/treadstone32/rev1/rev1.h
@@ -0,0 +1,45 @@
+/* Copyright 2019 marksard.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#include "quantum.h"
+
+#define K_N KC_NO
+
+/* This a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+#define LAYOUT( \
+ L09, L08, L07, L06, L05, L04, L03, L02, L01, L00, \
+ L19, L18, L17, L16, L15, L14, L13, L12, L11, L10, \
+ L29, L28, L27, L26, L25, L24, L23, L22, L21, L20, \
+ L35, L34 \
+ ) \
+ { \
+ { L00, L01, L02, L03, L04 }, \
+ { L10, L11, L12, L13, L14 }, \
+ { L20, L21, L22, L23, L24 }, \
+ { K_N, K_N, K_N, K_N, L34 }, \
+ { L05, L06, L07, L08, L09 }, \
+ { L15, L16, L17, L18, L19 }, \
+ { L25, L26, L27, L28, L29 }, \
+ { L35, K_N, K_N, K_N, K_N } \
+ }
diff --git a/keyboards/treadstone32/rules.mk b/keyboards/treadstone32/rules.mk
index d779e70020..64ca6a7214 100644
--- a/keyboards/treadstone32/rules.mk
+++ b/keyboards/treadstone32/rules.mk
@@ -27,3 +27,5 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
LEADER_ENABLE = no
+
+DEFAULT_FOLDER = treadstone32/rev1
diff --git a/keyboards/treadstone32/treadstone32.c b/keyboards/treadstone32/treadstone32.c
deleted file mode 100644
index 9d27f86ffe..0000000000
--- a/keyboards/treadstone32/treadstone32.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright 2019 marksard
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#include "treadstone32.h"
-
-void matrix_init_kb(void) {
- // put your keyboard start-up code here
- // runs once when the firmware starts up
-
- matrix_init_user();
-}
-
-void matrix_scan_kb(void) {
- // put your looping keyboard code here
- // runs every cycle (a lot)
-
- matrix_scan_user();
-}
-
-bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
- // put your per-action keyboard code here
- // runs for every action, just before processing by the firmware
-
- return process_record_user(keycode, record);
-}
-
-void led_set_kb(uint8_t usb_led) {
- // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
-
- led_set_user(usb_led);
-}
diff --git a/keyboards/treadstone48/readme.md b/keyboards/treadstone48/readme.md
index eef39c39b3..432ef33fe9 100644
--- a/keyboards/treadstone48/readme.md
+++ b/keyboards/treadstone48/readme.md
@@ -11,8 +11,11 @@ Hardware Availability: links to where you can find this hardware
Make example for this keyboard (after setting up your build environment):
make treadstone48:default
+ or
+ make treadstone48/rev2:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
-[Build guide](https://github.com/marksard/Keyboards/blob/master/treadstpne48/documents/treadstone48_buildguide.md)
+[Build guide](https://github.com/marksard/Keyboards/blob/master/treadstone48/documents/treadstone48_buildguide.md)
+[Build guide (rev2)](https://github.com/marksard/Keyboards/blob/master/treadstone48/documents/treadstone48rev2_buildguide.md)
[Firmware](https://github.com/marksard/qmk_firmware/tree/my_customize/keyboards/treadstone48)
diff --git a/keyboards/treadstone48/keymaps/like_jis_rs/config.h b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/config.h
index 95b58c23db..95b58c23db 100644
--- a/keyboards/treadstone48/keymaps/like_jis_rs/config.h
+++ b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/config.h
diff --git a/keyboards/treadstone48/keymaps/like_jis_rs/keymap.c b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/keymap.c
index 171e034556..171e034556 100644
--- a/keyboards/treadstone48/keymaps/like_jis_rs/keymap.c
+++ b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/keymap.c
diff --git a/keyboards/treadstone48/keymaps/like_jis_rs/readme.md b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/readme.md
index 796df6c4cd..796df6c4cd 100644
--- a/keyboards/treadstone48/keymaps/like_jis_rs/readme.md
+++ b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/readme.md
diff --git a/keyboards/treadstone48/keymaps/like_jis_rs/readme_jp.md b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/readme_jp.md
index 81c5e017ec..81c5e017ec 100644
--- a/keyboards/treadstone48/keymaps/like_jis_rs/readme_jp.md
+++ b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/readme_jp.md
diff --git a/keyboards/treadstone48/keymaps/like_jis_rs/rules.mk b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/rules.mk
index 7380582ca1..7380582ca1 100644
--- a/keyboards/treadstone48/keymaps/like_jis_rs/rules.mk
+++ b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/rules.mk
diff --git a/keyboards/treadstone48/rev2/config.h b/keyboards/treadstone48/rev2/config.h
new file mode 100644
index 0000000000..fb5011a0be
--- /dev/null
+++ b/keyboards/treadstone48/rev2/config.h
@@ -0,0 +1,250 @@
+/*
+Copyright 2020 marksard
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0xDFA3
+#define DEVICE_VER 0x0020
+#define MANUFACTURER marksard
+#define PRODUCT treadstone48
+#define DESCRIPTION Symmetrical staggered 48 Keys Keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 8
+#define MATRIX_COLS 6
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { F4, F5, F6, F7, B1, B3, B2, B6 }
+#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+// #define SOFT_SERIAL_PIN D2 // or D1, D2, D3, E6
+
+// #define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+// #define BACKLIGHT_LEVELS 3
+
+#define RGB_DI_PIN D3
+#ifdef RGB_DI_PIN
+ #define RGBLED_NUM 12
+ #define RGBLIGHT_HUE_STEP 8
+ #define RGBLIGHT_SAT_STEP 8
+ #define RGBLIGHT_VAL_STEP 8
+ #define RGBLIGHT_LIMIT_VAL 220 /* The maximum brightness level */
+ #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+/*== all animations enable ==*/
+// #define RGBLIGHT_ANIMATIONS
+/*== or choose animations ==*/
+// #define RGBLIGHT_EFFECT_BREATHING
+ #define RGBLIGHT_EFFECT_RAINBOW_MOOD
+ #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+// #define RGBLIGHT_EFFECT_SNAKE
+ #define RGBLIGHT_EFFECT_KNIGHT
+// #define RGBLIGHT_EFFECT_CHRISTMAS
+ #define RGBLIGHT_EFFECT_STATIC_GRADIENT
+// #define RGBLIGHT_EFFECT_RGB_TEST
+// #define RGBLIGHT_EFFECT_ALTERNATING
+/*== customize breathing effect ==*/
+ /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+ #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
+ /*==== use exp() and sin() ====*/
+ #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
+ #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
+#endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+// #define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+/* defined by default; to change, uncomment and set to the combination you want */
+// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP H
+//#define MAGIC_KEY_HELP_ALT SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER0_ALT GRAVE
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER B
+//#define MAGIC_KEY_BOOTLOADER_ALT ESC
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+
+/* disable these deprecated features by default */
+#define NO_ACTION_MACRO
+#define NO_ACTION_FUNCTION
+/*
+ * MIDI options
+ */
+
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+//#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 1
+
+/*
+ * HD44780 LCD Display Configuration
+ */
+/*
+#define LCD_LINES 2 //< number of visible lines of the display
+#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
+
+#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
+
+#if LCD_IO_MODE
+#define LCD_PORT PORTB //< port for the LCD lines
+#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
+#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
+#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
+#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
+#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
+#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
+#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
+#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
+#define LCD_RS_PORT LCD_PORT //< port for RS line
+#define LCD_RS_PIN 3 //< pin for RS line
+#define LCD_RW_PORT LCD_PORT //< port for RW line
+#define LCD_RW_PIN 2 //< pin for RW line
+#define LCD_E_PORT LCD_PORT //< port for Enable line
+#define LCD_E_PIN 1 //< pin for Enable line
+#endif
+*/
+
+/* Bootmagic Lite key configuration */
+// #define BOOTMAGIC_LITE_ROW 0
+// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/treadstone48/rev2/info.json b/keyboards/treadstone48/rev2/info.json
new file mode 100644
index 0000000000..df9e7591b5
--- /dev/null
+++ b/keyboards/treadstone48/rev2/info.json
@@ -0,0 +1,261 @@
+{
+ "keyboard_name": "Treadstone48",
+ "url": "https://github.com/marksard/Keyboards",
+ "maintainer": "marksard",
+ "width": 14.75,
+ "height": 4,
+ "layouts": {
+ "LAYOUT_base": {
+ "layout": [
+ {
+ "label": "Esc",
+ "x": 1,
+ "y": 0
+ },
+ {
+ "label": "Q",
+ "x": 2.25,
+ "y": 0
+ },
+ {
+ "label": "W",
+ "x": 3.25,
+ "y": 0
+ },
+ {
+ "label": "E",
+ "x": 4.25,
+ "y": 0
+ },
+ {
+ "label": "R",
+ "x": 5.25,
+ "y": 0
+ },
+ {
+ "label": "T",
+ "x": 6.25,
+ "y": 0
+ },
+ {
+ "label": "Y",
+ "x": 7.75,
+ "y": 0
+ },
+ {
+ "label": "U",
+ "x": 8.75,
+ "y": 0
+ },
+ {
+ "label": "I",
+ "x": 9.75,
+ "y": 0
+ },
+ {
+ "label": "O",
+ "x": 10.75,
+ "y": 0
+ },
+ {
+ "label": "P",
+ "x": 11.75,
+ "y": 0
+ },
+ {
+ "label": "-",
+ "x": 13.75,
+ "y": 0
+ },
+ {
+ "label": "Tab",
+ "x": 1,
+ "y": 1,
+ "w": 1.5
+ },
+ {
+ "label": "A",
+ "x": 2.5,
+ "y": 1
+ },
+ {
+ "label": "S",
+ "x": 3.5,
+ "y": 1
+ },
+ {
+ "label": "D",
+ "x": 4.5,
+ "y": 1
+ },
+ {
+ "label": "F",
+ "x": 5.5,
+ "y": 1
+ },
+ {
+ "label": "G",
+ "x": 6.5,
+ "y": 1
+ },
+ {
+ "label": "H",
+ "x": 7.5,
+ "y": 1
+ },
+ {
+ "label": "J",
+ "x": 8.5,
+ "y": 1
+ },
+ {
+ "label": "K",
+ "x": 9.5,
+ "y": 1
+ },
+ {
+ "label": "L",
+ "x": 10.5,
+ "y": 1
+ },
+ {
+ "label": ":",
+ "x": 11.5,
+ "y": 1
+ },
+ {
+ "label": "Enter",
+ "x": 12.5,
+ "y": 1,
+ "w": 2.25
+ },
+ {
+ "label": "Shift",
+ "x": 0,
+ "y": 2,
+ "w": 2.25
+ },
+ {
+ "label": "Z",
+ "x": 2.25,
+ "y": 2
+ },
+ {
+ "label": "X",
+ "x": 3.25,
+ "y": 2
+ },
+ {
+ "label": "C",
+ "x": 4.25,
+ "y": 2
+ },
+ {
+ "label": "V",
+ "x": 5.25,
+ "y": 2
+ },
+ {
+ "label": "B",
+ "x": 6.25,
+ "y": 2
+ },
+ {
+ "label": "N",
+ "x": 7.75,
+ "y": 2
+ },
+ {
+ "label": "M",
+ "x": 8.75,
+ "y": 2
+ },
+ {
+ "label": "<",
+ "x": 9.75,
+ "y": 2
+ },
+ {
+ "label": ">",
+ "x": 10.75,
+ "y": 2
+ },
+ {
+ "label": "?",
+ "x": 11.75,
+ "y": 2
+ },
+ {
+ "label": "\u2191",
+ "x": 12.75,
+ "y": 2
+ },
+ {
+ "label": "Ctrl",
+ "x": 0.75,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "Win",
+ "x": 2,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "Alt",
+ "x": 3.25,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "Lower",
+ "x": 4.5,
+ "y": 3
+ },
+ {
+ "label": "BackSpace",
+ "x": 5.5,
+ "y": 3,
+ "w": 2
+ },
+ {
+ "x": 7.5,
+ "y": 3,
+ "w": 2
+ },
+ {
+ "label": "Raise",
+ "x": 9.5,
+ "y": 3
+ },
+ {
+ "label": "Menu",
+ "x": 10.5,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "\u2190",
+ "x": 11.75,
+ "y": 3
+ },
+ {
+ "label": "\u2193",
+ "x": 12.75,
+ "y": 3
+ },
+ {
+ "label": "\u2192",
+ "x": 13.75,
+ "y": 3
+ },
+ {
+ "label": "_",
+ "x": 12.75,
+ "y": 0
+ }
+ ]
+ }
+ }
+}
diff --git a/keyboards/treadstone48/rev2/rev2.c b/keyboards/treadstone48/rev2/rev2.c
new file mode 100644
index 0000000000..f7e7bc7702
--- /dev/null
+++ b/keyboards/treadstone48/rev2/rev2.c
@@ -0,0 +1,17 @@
+/* Copyright 2020 marksard
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "rev2.h"
diff --git a/keyboards/treadstone48/rev2/rev2.h b/keyboards/treadstone48/rev2/rev2.h
new file mode 100644
index 0000000000..651468c4a5
--- /dev/null
+++ b/keyboards/treadstone48/rev2/rev2.h
@@ -0,0 +1,48 @@
+/* Copyright 2020 marksard
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+/* This is a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+
+#define LAYOUT_base( \
+ L00, L01, L02, L03, L04, L05, L40, L41, L42, L43, L44, L45, \
+ L10, L11, L12, L13, L14, L15, L50, L51, L52, L53, L54, L55, \
+ L20, L21, L22, L23, L24, L25, L60, L61, L62, L63, L64, L65, \
+ L30, L31, L32, L33, L34, L35, L70, L71, L72, L73, L74, L75 \
+ ) \
+ { \
+ { L45, L44, L43, L42, L41, L40 }, \
+ { L55, L54, L53, L52, L51, L50 }, \
+ { L65, L64, L63, L62, L61, L60 }, \
+ { L75, L74, L73, L72, L71, L70 }, \
+ { L05, L04, L03, L02, L01, L00 }, \
+ { L15, L14, L13, L12, L11, L10 }, \
+ { L25, L24, L23, L22, L21, L20 }, \
+ { L35, L34, L33, L32, L31, L30 } \
+ }
+
+// full Keymap
+#define LAYOUT_full LAYOUT_base
diff --git a/keyboards/treadstone48/rev2/rules.mk b/keyboards/treadstone48/rev2/rules.mk
new file mode 100644
index 0000000000..d29d9074a0
--- /dev/null
+++ b/keyboards/treadstone48/rev2/rules.mk
@@ -0,0 +1 @@
+SPLIT_KEYBOARD = no
diff --git a/keyboards/unikorn/rules.mk b/keyboards/unikorn/rules.mk
index a0ffab2901..93bb0a56eb 100644
--- a/keyboards/unikorn/rules.mk
+++ b/keyboards/unikorn/rules.mk
@@ -20,5 +20,3 @@ COMMAND_ENABLE = yes
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = no
WS2812_DRIVER = i2c
-
-OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/vitamins_included/keymaps/via/keymap.c b/keyboards/vitamins_included/keymaps/via/keymap.c
new file mode 100644
index 0000000000..925c8d92eb
--- /dev/null
+++ b/keyboards/vitamins_included/keymaps/via/keymap.c
@@ -0,0 +1,85 @@
+#include QMK_KEYBOARD_H
+
+enum layer_names {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
+ _ADJUST
+};
+
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Tab | A | S | D | F | G | H | J | K | L | ; | ' |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | GUI | Alt |Adjust|Lower |Space |Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT_ortho_4x12( \
+ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
+ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \
+ KC_LCTRL,KC_LGUI, KC_LALT,MO(_ADJUST),MO(_LOWER),KC_SPC,KC_SPC,MO(_RAISE),KC_LEFT,KC_DOWN, KC_UP, KC_RGHT \
+),
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * |RESET | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |NKTOGG| | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT_ortho_4x12( \
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \
+ RESET, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______,_______,_______, \
+ NK_TOGG, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
+),
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | |NKTOGG|RESET |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT_ortho_4x12( \
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, NK_TOGG, RESET, \
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
+),
+
+/* Adjust
+ * ,-----------------------------------------------------------------------------------.
+ * | | RESET| | | | | | | | | RESET| Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | |RGBMOD|
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = LAYOUT_ortho_4x12( \
+ _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, RESET, KC_DEL, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, AU_OFF, AU_ON, _______, _______, _______, _______, _______, RGB_MOD \
+)
+};
diff --git a/keyboards/vitamins_included/keymaps/via/rules.mk b/keyboards/vitamins_included/keymaps/via/rules.mk
new file mode 100644
index 0000000000..036bd6d1c3
--- /dev/null
+++ b/keyboards/vitamins_included/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/westfoxtrot/cypher/rev5/config.h b/keyboards/westfoxtrot/cypher/rev5/config.h
index 111771ae86..367b5f4f3f 100644
--- a/keyboards/westfoxtrot/cypher/rev5/config.h
+++ b/keyboards/westfoxtrot/cypher/rev5/config.h
@@ -21,7 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* USB Device descriptor parameter */
#define VENDOR_ID 0x21FF
-#define PRODUCT_ID 0xAA97
+#define PRODUCT_ID 0xAA98
#define DEVICE_VER 0x0002
#define MANUFACTURER westfoxtrot
#define PRODUCT cypher
diff --git a/keyboards/westfoxtrot/cypher/rev5/keymaps/via/keymap.c b/keyboards/westfoxtrot/cypher/rev5/keymaps/via/keymap.c
new file mode 100644
index 0000000000..93be29fbdc
--- /dev/null
+++ b/keyboards/westfoxtrot/cypher/rev5/keymaps/via/keymap.c
@@ -0,0 +1,35 @@
+/* VIA Layout > http://www.keyboard-layout-editor.com/#/gists/0e8d4957e77f3179aa09bd6e195f7afa */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[0] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PEQL,
+ KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RALT, MO(1), KC_LEFT,KC_DOWN,KC_RGHT, KC_P0, KC_PDOT, KC_BSPC),
+
+[1] = LAYOUT_all(
+ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, BL_TOGG, BL_STEP, BL_ON, BL_OFF, BL_INC, BL_DEC, BL_BRTG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+[2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+[3] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+};
diff --git a/keyboards/westfoxtrot/cypher/rev5/keymaps/via/rules.mk b/keyboards/westfoxtrot/cypher/rev5/keymaps/via/rules.mk
new file mode 100644
index 0000000000..36b7ba9cbc
--- /dev/null
+++ b/keyboards/westfoxtrot/cypher/rev5/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
diff --git a/keyboards/wheatfield/split75/rules.mk b/keyboards/wheatfield/split75/rules.mk
index e90f5f4394..a13911595a 100644
--- a/keyboards/wheatfield/split75/rules.mk
+++ b/keyboards/wheatfield/split75/rules.mk
@@ -23,8 +23,6 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
WS2812_DRIVER = i2c
-OPT_DEFS = -DDEBUG_LEVEL=0
-
# custom matrix setup
CUSTOM_MATRIX = lite
SRC = matrix.c
diff --git a/keyboards/whitefox/keymaps/konstantin/rules.mk b/keyboards/whitefox/keymaps/konstantin/rules.mk
index c39175c979..111c0faba6 100644
--- a/keyboards/whitefox/keymaps/konstantin/rules.mk
+++ b/keyboards/whitefox/keymaps/konstantin/rules.mk
@@ -1,12 +1,18 @@
-BACKLIGHT_ENABLE = no
+# Generic features
BOOTMAGIC_ENABLE = no
COMMAND_ENABLE = yes
CONSOLE_ENABLE = yes
EXTRAKEY_ENABLE = yes
-GRAVE_ESC_ENABLE = no
MOUSEKEY_ENABLE = yes
NKRO_ENABLE = yes
-SPACE_CADET_ENABLE = no
TAP_DANCE_ENABLE = yes
UNICODEMAP_ENABLE = yes
+
+# Keyboard-specific features
+BACKLIGHT_ENABLE = no
VISUALIZER_ENABLE = no
+
+# Firmware size reduction
+GRAVE_ESC_ENABLE = no
+MAGIC_ENABLE = no
+SPACE_CADET_ENABLE = no
diff --git a/keyboards/wilba_tech/wt60_c/config.h b/keyboards/wilba_tech/wt60_c/config.h
new file mode 100644
index 0000000000..44491e128c
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_c/config.h
@@ -0,0 +1,119 @@
+/* Copyright 2020 Jason Williams (Wilba)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x6582 // wilba.tech
+#define PRODUCT_ID 0x60C0 // 60-C
+#define DEVICE_VER 0x0001
+#define MANUFACTURER wilba.tech
+#define PRODUCT wilba.tech WT60-C
+#define DESCRIPTION wilba.tech WT60-C
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 14
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS { F0, F1, F4, F6, F7 }
+#define MATRIX_COL_PINS { F5, D5, B1, B2, B3, D3, D2, C7, C6, B6, B5, B4, D7, D6 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+
+// IS31FL3731 driver
+#define DRIVER_COUNT 2
+#define DRIVER_LED_TOTAL 72
+
+#define RGB_BACKLIGHT_ENABLED 1
+
+// This conditionally compiles the backlight code for WT60-BX specifics
+// Note: WT60-C is the same RGB matrix as WT60-BX
+#define RGB_BACKLIGHT_WT60_BX
+
+// enable/disable LEDs based on layout
+// they aren't really used if RGB_BACKLIGHT_WT60_BX defined
+#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 0
+#define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0
+#define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 0
+#define RGB_BACKLIGHT_USE_7U_SPACEBAR 0
+#define RGB_BACKLIGHT_USE_ISO_ENTER 0
+#define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0
+
+// disable backlight when USB suspended (PC sleep/hibernate/shutdown)
+#define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0
+
+// disable backlight after timeout in minutes, 0 = no timeout
+#define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0
+
+// the default brightness
+#define RGB_BACKLIGHT_BRIGHTNESS 255
+
+// the default effect (RGB test)
+#define RGB_BACKLIGHT_EFFECT 255
+
+// the default effect speed (0-3)
+#define RGB_BACKLIGHT_EFFECT_SPEED 0
+
+// the default color1 and color2
+#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 }
+#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 }
+
+// These define which keys in the matrix are alphas/mods
+// Used for backlight effects so colors are different for
+// alphas vs. mods
+// Each value is for a row, bit 0 is column 0
+// Alpha=0 Mod=1
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0000000000000001
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0010000000000001
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0011000000000001
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0011000000000001
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0011100000000111
+
+#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
+#define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
+#define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
+#define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
+
+// Backlight config starts after VIA's EEPROM usage,
+// dynamic keymaps start after this.
+#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
+
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
diff --git a/keyboards/wilba_tech/wt60_c/info.json b/keyboards/wilba_tech/wt60_c/info.json
new file mode 100644
index 0000000000..9567d517e8
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_c/info.json
@@ -0,0 +1,12 @@
+{
+ "keyboard_name": "wilba.tech WT60-C",
+ "url": "https://wilba.tech",
+ "maintainer": "Wilba",
+ "width": 15,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.5}, {"x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"x":11, "y":4, "w":1.5}, {"x":12.5, "y":4}, {"x":13.5, "y":4, "w":1.5}]
+ }
+ }
+} \ No newline at end of file
diff --git a/keyboards/wilba_tech/wt60_c/keymaps/default/keymap.c b/keyboards/wilba_tech/wt60_c/keymaps/default/keymap.c
new file mode 100644
index 0000000000..cba25bb8fa
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_c/keymaps/default/keymap.c
@@ -0,0 +1,34 @@
+// Default layout for WT60-C
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[0] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, FN_MO13,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, FN_MO23, KC_RCTL),
+
+[1] = LAYOUT_all(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
+ KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+[2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+[3] = LAYOUT_all(
+ KC_TRNS, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BR_DEC, BR_INC, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ES_DEC, ES_INC, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+};
diff --git a/keyboards/wilba_tech/wt60_c/keymaps/via/keymap.c b/keyboards/wilba_tech/wt60_c/keymaps/via/keymap.c
new file mode 100644
index 0000000000..cba25bb8fa
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_c/keymaps/via/keymap.c
@@ -0,0 +1,34 @@
+// Default layout for WT60-C
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[0] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, FN_MO13,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, FN_MO23, KC_RCTL),
+
+[1] = LAYOUT_all(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
+ KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+[2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+[3] = LAYOUT_all(
+ KC_TRNS, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BR_DEC, BR_INC, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ES_DEC, ES_INC, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+};
diff --git a/keyboards/wilba_tech/wt60_c/keymaps/via/rules.mk b/keyboards/wilba_tech/wt60_c/keymaps/via/rules.mk
new file mode 100644
index 0000000000..1e5b99807c
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_c/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/wilba_tech/wt60_c/readme.md b/keyboards/wilba_tech/wt60_c/readme.md
new file mode 100644
index 0000000000..ea72c1cd0e
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_c/readme.md
@@ -0,0 +1,13 @@
+# wilba.tech WT60-C
+
+WT60-C is a keyboard PCB supporting 60% layout. [More info at wilba.tech](https://wilba.tech/)
+
+* Keyboard Maintainer: [Wilba6582](https://github.com/Wilba6582)
+* Hardware Supported: wilba.tech WT60-C
+* Hardware Availability: Custom keyboard group buys
+
+Make example for this keyboard (after setting up your build environment):
+
+ make wilba_tech/wt60_c:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/wilba_tech/wt60_c/rules.mk b/keyboards/wilba_tech/wt60_c/rules.mk
new file mode 100644
index 0000000000..50faab968c
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_c/rules.mk
@@ -0,0 +1,46 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = atmel-dfu
+
+# Do not put the microcontroller into power saving mode
+# when we get USB suspend event. We want it to keep updating
+# backlight effects.
+OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+CIE1931_CURVE = yes
+
+# project specific files
+SRC = keyboards/wilba_tech/wt_main.c \
+ keyboards/wilba_tech/wt_rgb_backlight.c \
+ quantum/color.c \
+ drivers/issi/is31fl3731.c \
+ drivers/avr/i2c_master.c
diff --git a/keyboards/wilba_tech/wt60_c/wt60_c.c b/keyboards/wilba_tech/wt60_c/wt60_c.c
new file mode 100644
index 0000000000..9b1cfe46e5
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_c/wt60_c.c
@@ -0,0 +1 @@
+#include "wt60_c.h"
diff --git a/keyboards/wilba_tech/wt60_c/wt60_c.h b/keyboards/wilba_tech/wt60_c/wt60_c.h
new file mode 100644
index 0000000000..2b5fe7fe11
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_c/wt60_c.h
@@ -0,0 +1,37 @@
+/* Copyright 2020 Jason Williams (Wilba)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+#include "keyboards/wilba_tech/wt_rgb_backlight_keycodes.h"
+#include "via.h"
+
+#define ____ KC_NO
+
+#define LAYOUT_all( \
+ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K213, \
+ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \
+ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \
+ K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, \
+ K400, K401, K402, K407, K411, K412, K413 \
+) { \
+ { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \
+ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \
+ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213 }, \
+ { K300, ____, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313 }, \
+ { K400, K401, K402, ____, ____, ____, ____, K407, ____, ____, ____, K411, K412, K413 } \
+}
diff --git a/keyboards/wilba_tech/wt80_bc/config.h b/keyboards/wilba_tech/wt80_bc/config.h
new file mode 100644
index 0000000000..d0d5762f52
--- /dev/null
+++ b/keyboards/wilba_tech/wt80_bc/config.h
@@ -0,0 +1,56 @@
+/* Copyright 2020 Jason Williams (Wilba)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x6582 // wilba.tech
+#define PRODUCT_ID 0x80B0 // 80-BC
+#define DEVICE_VER 0x0001
+#define MANUFACTURER wilba.tech
+#define PRODUCT wilba.tech WT80-BC
+#define DESCRIPTION wilba.tech WT80-BC
+
+/* key matrix size */
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 17
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS { F1, F0, E6, F4, F6, F7 }
+#define MATRIX_COL_PINS { F5, D5, B1, B2, B3, D3, D2, C7, C6, B6, B5, B4, D7, D6, D4, B7, B0 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
diff --git a/keyboards/wilba_tech/wt80_bc/info.json b/keyboards/wilba_tech/wt80_bc/info.json
new file mode 100644
index 0000000000..34bee2dc14
--- /dev/null
+++ b/keyboards/wilba_tech/wt80_bc/info.json
@@ -0,0 +1,12 @@
+{
+ "keyboard_name": "wilba.tech WT80-BC",
+ "url": "https://wilba.tech",
+ "maintainer": "Wilba",
+ "width": 18.25,
+ "height": 6.25,
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [{"x":0, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":4, "y":1.25}, {"x":5, "y":1.25}, {"x":6, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.25}, {"x":9, "y":1.25}, {"x":10, "y":1.25}, {"x":11, "y":1.25}, {"x":12, "y":1.25}, {"x":13, "y":1.25, "w":2}, {"x":15.25, "y":1.25}, {"x":16.25, "y":1.25}, {"x":17.25, "y":1.25}, {"x":0, "y":2.25, "w":1.5}, {"x":1.5, "y":2.25}, {"x":2.5, "y":2.25}, {"x":3.5, "y":2.25}, {"x":4.5, "y":2.25}, {"x":5.5, "y":2.25}, {"x":6.5, "y":2.25}, {"x":7.5, "y":2.25}, {"x":8.5, "y":2.25}, {"x":9.5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.25}, {"x":12.5, "y":2.25}, {"x":13.5, "y":2.25, "w":1.5}, {"x":15.25, "y":2.25}, {"x":16.25, "y":2.25}, {"x":17.25, "y":2.25}, {"x":0, "y":3.25, "w":1.75}, {"x":1.75, "y":3.25}, {"x":2.75, "y":3.25}, {"x":3.75, "y":3.25}, {"x":4.75, "y":3.25}, {"x":5.75, "y":3.25}, {"x":6.75, "y":3.25}, {"x":7.75, "y":3.25}, {"x":8.75, "y":3.25}, {"x":9.75, "y":3.25}, {"x":10.75, "y":3.25}, {"x":11.75, "y":3.25}, {"x":12.75, "y":3.25, "w":2.25}, {"x":0, "y":4.25, "w":2.25}, {"x":2.25, "y":4.25}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}, {"x":6.25, "y":4.25}, {"x":7.25, "y":4.25}, {"x":8.25, "y":4.25}, {"x":9.25, "y":4.25}, {"x":10.25, "y":4.25}, {"x":11.25, "y":4.25}, {"x":12.25, "y":4.25, "w":2.75}, {"x":16.25, "y":4.25}, {"x":0, "y":5.25, "w":1.5}, {"x":1.5, "y":5.25}, {"x":2.5, "y":5.25, "w":1.5}, {"x":4, "y":5.25, "w":7}, {"x":11, "y":5.25, "w":1.5}, {"x":12.5, "y":5.25}, {"x":13.5, "y":5.25, "w":1.5}, {"x":15.25, "y":5.25}, {"x":16.25, "y":5.25}, {"x":17.25, "y":5.25}]
+ }
+ }
+}
diff --git a/keyboards/wilba_tech/wt80_bc/keymaps/default/keymap.c b/keyboards/wilba_tech/wt80_bc/keymaps/default/keymap.c
new file mode 100644
index 0000000000..3e6b4546db
--- /dev/null
+++ b/keyboards/wilba_tech/wt80_bc/keymaps/default/keymap.c
@@ -0,0 +1,37 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_all(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
+
+ [1] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+ [2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+ [3] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+};
diff --git a/keyboards/wilba_tech/wt80_bc/keymaps/via/keymap.c b/keyboards/wilba_tech/wt80_bc/keymaps/via/keymap.c
new file mode 100644
index 0000000000..3e6b4546db
--- /dev/null
+++ b/keyboards/wilba_tech/wt80_bc/keymaps/via/keymap.c
@@ -0,0 +1,37 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_all(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
+
+ [1] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+ [2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+ [3] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+};
diff --git a/keyboards/wilba_tech/wt80_bc/keymaps/via/rules.mk b/keyboards/wilba_tech/wt80_bc/keymaps/via/rules.mk
new file mode 100644
index 0000000000..1e5b99807c
--- /dev/null
+++ b/keyboards/wilba_tech/wt80_bc/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/wilba_tech/wt80_bc/readme.md b/keyboards/wilba_tech/wt80_bc/readme.md
new file mode 100644
index 0000000000..aa995a754f
--- /dev/null
+++ b/keyboards/wilba_tech/wt80_bc/readme.md
@@ -0,0 +1,13 @@
+# wilba.tech WT80-BC
+
+WT80-BC is a keyboard PCB supporting TKL layout with 0.25U gaps. [More info at wilba.tech](https://wilba.tech/)
+
+Keyboard Maintainer: [Wilba6582](https://github.com/Wilba6582)
+Hardware Supported: wilba.tech WT80-BC
+Hardware Availability: Custom keyboard group buys
+
+Make example for this keyboard (after setting up your build environment):
+
+ make wilba_tech/wt80_bc:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/wilba_tech/wt80_bc/rules.mk b/keyboards/wilba_tech/wt80_bc/rules.mk
new file mode 100644
index 0000000000..4aa749422c
--- /dev/null
+++ b/keyboards/wilba_tech/wt80_bc/rules.mk
@@ -0,0 +1,34 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = yes # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
+MIDI_ENABLE = no # MIDI support
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+
+# project specific files
+SRC = keyboards/wilba_tech/wt_main.c
diff --git a/keyboards/wilba_tech/wt80_bc/wt80_bc.c b/keyboards/wilba_tech/wt80_bc/wt80_bc.c
new file mode 100644
index 0000000000..1245a2fd0a
--- /dev/null
+++ b/keyboards/wilba_tech/wt80_bc/wt80_bc.c
@@ -0,0 +1,17 @@
+/* Copyright 2020 Jason Williams (Wilba)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+// Nothing to see here, move along... ;-)
diff --git a/keyboards/wilba_tech/wt80_bc/wt80_bc.h b/keyboards/wilba_tech/wt80_bc/wt80_bc.h
new file mode 100644
index 0000000000..0b0d38b486
--- /dev/null
+++ b/keyboards/wilba_tech/wt80_bc/wt80_bc.h
@@ -0,0 +1,38 @@
+/* Copyright 2020 Jason Williams (Wilba)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define ____ KC_NO
+
+
+#define LAYOUT_all( \
+ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, K015, K016, \
+ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, \
+ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, \
+ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \
+ K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K415, \
+ K500, K501, K502, K507, K511, K512, K513, K514, K515, K516 \
+) { \
+ { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, ____, K014, K015, K016 }, \
+ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116 }, \
+ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216 }, \
+ { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, ____, ____, ____, ____ }, \
+ { K400, ____, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, ____, ____, K415, ____ }, \
+ { K500, K501, K502, ____, ____, ____, ____, K507, ____, ____, ____, K511, K512, K513, K514, K515, K516 } \
+}
diff --git a/keyboards/winkeyless/bface/rules.mk b/keyboards/winkeyless/bface/rules.mk
index 84eace5ed6..3d51be1133 100644
--- a/keyboards/winkeyless/bface/rules.mk
+++ b/keyboards/winkeyless/bface/rules.mk
@@ -20,5 +20,3 @@ COMMAND_ENABLE = yes
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
-
-OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/winkeyless/bmini/rules.mk b/keyboards/winkeyless/bmini/rules.mk
index fd340f04eb..20f0222c11 100644
--- a/keyboards/winkeyless/bmini/rules.mk
+++ b/keyboards/winkeyless/bmini/rules.mk
@@ -20,5 +20,3 @@ COMMAND_ENABLE = yes
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
-
-OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/winkeyless/bminiex/rules.mk b/keyboards/winkeyless/bminiex/rules.mk
index df7124400f..f44b7fe858 100644
--- a/keyboards/winkeyless/bminiex/rules.mk
+++ b/keyboards/winkeyless/bminiex/rules.mk
@@ -25,5 +25,3 @@ TAP_DANCE_ENABLE = no
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-
-OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/xd002/config.h b/keyboards/xd002/config.h
new file mode 100644
index 0000000000..c17d816cfc
--- /dev/null
+++ b/keyboards/xd002/config.h
@@ -0,0 +1,60 @@
+/* Copyright 2020 zvecr<git@zvecr.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x7844 // "XD"
+#define PRODUCT_ID 0x0202
+#define DEVICE_VER 0x0001
+#define MANUFACTURER XIUDI
+#define PRODUCT XD002
+
+/* matrix size */
+#define MATRIX_ROWS 1
+#define MATRIX_COLS 2
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * On this board we have direct connection: no diodes.
+ */
+#define DIRECT_PINS {{ B0, B1 }}
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+#define RGBLED_NUM 2
+#define RGB_DI_PIN B2
+
+// Save as much space as we can...
+#define LAYER_STATE_8BIT
+#define NO_ACTION_LAYER
+#define NO_ACTION_TAPPING
+#define NO_ACTION_ONESHOT
+#define NO_RESET
+
+// usbconfig.h overrides
+#define USB_CFG_IOPORTNAME B
+#define USB_CFG_DMINUS_BIT 3
+#define USB_CFG_DPLUS_BIT 4
+#define USB_COUNT_SOF 0
+#define USB_INTR_CFG PCMSK
+#define USB_INTR_CFG_SET (1<<USB_CFG_DPLUS_BIT)
+#define USB_INTR_ENABLE_BIT PCIE
+#define USB_INTR_PENDING_BIT PCIF
+#define USB_INTR_VECTOR SIG_PIN_CHANGE
diff --git a/keyboards/xd002/info.json b/keyboards/xd002/info.json
new file mode 100644
index 0000000000..101952ec35
--- /dev/null
+++ b/keyboards/xd002/info.json
@@ -0,0 +1,16 @@
+{
+ "keyboard_name": "xd002",
+ "url": "https://kprepublic.com/products/xd002-xiudi-2-custom-mechanical-keyboard-2-keys-underglow-and-switch-rgb-pcb-programmed-hot-swappable-macro-key-aluminum-case",
+ "maintainer": "zvecr",
+ "width": 2,
+ "height": 1,
+ "layouts": {
+ "LAYOUT": {
+ "key_count": 2,
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0}
+ ]
+ }
+ }
+}
diff --git a/keyboards/xd002/keymaps/default/keymap.c b/keyboards/xd002/keymaps/default/keymap.c
new file mode 100644
index 0000000000..ae53d396d1
--- /dev/null
+++ b/keyboards/xd002/keymaps/default/keymap.c
@@ -0,0 +1,7 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ KC_A, KC_B
+ )
+};
diff --git a/keyboards/xd002/keymaps/rgb/keymap.c b/keyboards/xd002/keymaps/rgb/keymap.c
new file mode 100644
index 0000000000..af04734138
--- /dev/null
+++ b/keyboards/xd002/keymaps/rgb/keymap.c
@@ -0,0 +1,46 @@
+#include QMK_KEYBOARD_H
+
+// Defines the keycodes used by our macros in process_record_user
+enum custom_keycodes {
+ QMKURL = SAFE_RANGE,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ RGB_HUI, QMKURL
+ )
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if (record->event.pressed) {
+ switch (keycode) {
+ case QMKURL:
+ // Using SEND_STRING here adds 400bytes ...
+ // SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER));
+ tap_code(KC_H);
+ tap_code(KC_T);
+ tap_code(KC_T);
+ tap_code(KC_P);
+ tap_code(KC_S);
+ tap_code16(KC_COLON);
+ tap_code(KC_SLASH);
+ tap_code(KC_SLASH);
+ tap_code(KC_Q);
+ tap_code(KC_M);
+ tap_code(KC_K);
+ tap_code(KC_DOT);
+ tap_code(KC_F);
+ tap_code(KC_M);
+ tap_code(KC_SLASH);
+ tap_code(KC_ENTER);
+ break;
+ }
+ }
+ return true;
+}
+
+void keyboard_post_init_user(void) {
+ rgblight_enable_noeeprom(); // enables Rgb, without saving settings
+ rgblight_sethsv_noeeprom(180, 255, 255); // sets the color to teal/cyan without saving
+ rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); // sets mode to Fast breathing without saving
+}
diff --git a/keyboards/xd002/keymaps/rgb/rules.mk b/keyboards/xd002/keymaps/rgb/rules.mk
new file mode 100644
index 0000000000..1e3cebb145
--- /dev/null
+++ b/keyboards/xd002/keymaps/rgb/rules.mk
@@ -0,0 +1 @@
+RGBLIGHT_ENABLE = yes
diff --git a/keyboards/xd002/keymaps/rgb_lite/keymap.c b/keyboards/xd002/keymaps/rgb_lite/keymap.c
new file mode 100644
index 0000000000..ed9185e3b5
--- /dev/null
+++ b/keyboards/xd002/keymaps/rgb_lite/keymap.c
@@ -0,0 +1,31 @@
+#include QMK_KEYBOARD_H
+#include "rgblite.h"
+
+// Defines the keycodes used by our macros in process_record_user
+enum custom_keycodes {
+ QMKURL = SAFE_RANGE,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ RGB_HUI, QMKURL
+ )
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if (record->event.pressed) {
+ switch (keycode) {
+ case RGB_HUI:
+ rgblight_increase_hue();
+ break;
+ case QMKURL:
+ SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER));
+ break;
+ }
+ }
+ return true;
+}
+
+void keyboard_post_init_user(void) {
+ rgblight_increase_hue();
+}
diff --git a/keyboards/xd002/keymaps/rgb_lite/rgblite.h b/keyboards/xd002/keymaps/rgb_lite/rgblite.h
new file mode 100644
index 0000000000..ca98484b81
--- /dev/null
+++ b/keyboards/xd002/keymaps/rgb_lite/rgblite.h
@@ -0,0 +1,26 @@
+#pragma once
+
+#include "ws2812.h"
+#include "rgblight_list.h"
+
+static inline void rgblight_setrgb(uint8_t _r, uint8_t _g, uint8_t _b) {
+ LED_TYPE leds[RGBLED_NUM] = {{.r = _r, .g = _g, .b = _b}, {.r = _r, .g = _g, .b = _b}};
+ ws2812_setleds(leds, RGBLED_NUM);
+}
+
+static void rgblight_increase_hue(void) {
+ static uint8_t state = 0;
+
+ state = (state + 1) % 3;
+ switch (state) {
+ case 1:
+ rgblight_setrgb_red();
+ break;
+ case 2:
+ rgblight_setrgb_blue();
+ break;
+ default:
+ rgblight_setrgb_green();
+ break;
+ }
+}
diff --git a/keyboards/xd002/keymaps/rgb_lite/rules.mk b/keyboards/xd002/keymaps/rgb_lite/rules.mk
new file mode 100644
index 0000000000..227bbcae32
--- /dev/null
+++ b/keyboards/xd002/keymaps/rgb_lite/rules.mk
@@ -0,0 +1 @@
+SRC += ws2812.c
diff --git a/keyboards/xd002/keymaps/tap_dance/config.h b/keyboards/xd002/keymaps/tap_dance/config.h
new file mode 100644
index 0000000000..b86e862d30
--- /dev/null
+++ b/keyboards/xd002/keymaps/tap_dance/config.h
@@ -0,0 +1,3 @@
+#pragma once
+
+#define TAPPING_TERM 500
diff --git a/keyboards/xd002/keymaps/tap_dance/keymap.c b/keyboards/xd002/keymaps/tap_dance/keymap.c
new file mode 100644
index 0000000000..0f384ce99f
--- /dev/null
+++ b/keyboards/xd002/keymaps/tap_dance/keymap.c
@@ -0,0 +1,19 @@
+#include QMK_KEYBOARD_H
+
+enum layers {
+ _BASE = 0,
+};
+
+enum {
+ TD_BC = 0
+};
+
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [TD_BC] = ACTION_TAP_DANCE_DOUBLE(KC_B, KC_C)
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BASE] = LAYOUT(
+ KC_A, TD(TD_BC)
+ )
+};
diff --git a/keyboards/xd002/keymaps/tap_dance/rules.mk b/keyboards/xd002/keymaps/tap_dance/rules.mk
new file mode 100644
index 0000000000..e5ddcae8d9
--- /dev/null
+++ b/keyboards/xd002/keymaps/tap_dance/rules.mk
@@ -0,0 +1 @@
+TAP_DANCE_ENABLE = yes
diff --git a/keyboards/xd002/keymaps/volume/keymap.c b/keyboards/xd002/keymaps/volume/keymap.c
new file mode 100644
index 0000000000..2365d7b245
--- /dev/null
+++ b/keyboards/xd002/keymaps/volume/keymap.c
@@ -0,0 +1,7 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ KC_VOLU, KC_VOLD
+ )
+};
diff --git a/keyboards/xd002/keymaps/volume/rules.mk b/keyboards/xd002/keymaps/volume/rules.mk
new file mode 100644
index 0000000000..fcfd2225bc
--- /dev/null
+++ b/keyboards/xd002/keymaps/volume/rules.mk
@@ -0,0 +1 @@
+EXTRAKEY_ENABLE = yes
diff --git a/keyboards/xd002/readme.md b/keyboards/xd002/readme.md
new file mode 100644
index 0000000000..6358bc754e
--- /dev/null
+++ b/keyboards/xd002/readme.md
@@ -0,0 +1,49 @@
+# xd002
+
+![xd002](https://cdn.shopify.com/s/files/1/2711/4238/products/xd002_1024x1024.jpg?v=1522134411)
+
+2% Custom mechanical keyboard. ATtiny85 powered, with 2*WS2812 LEDs, and the micronucleus bootloader.
+
+**Note**: Due to limited firmware space, a _**lot**_ of features have to be disabled to get a functioning QMK based keyboard.
+
+* Keyboard Maintainer: [zvecr](https://github.com/zvecr)
+* Hardware Supported: xd002
+* Hardware Availability: [kprepublic](https://kprepublic.com/products/xd002-xiudi-2-custom-mechanical-keyboard-2-keys-underglow-and-switch-rgb-pcb-programmed-hot-swappable-macro-key-aluminum-case)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make xd002:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+## Flashing
+### Prerequisites
+
+```bash
+git clone https://github.com/micronucleus/micronucleus.git
+cd micronucleus/commandline/
+sudo make install
+```
+
+On Linux, you’ll need proper privileges to access the MCU. You can either use sudo when flashing firmware, or place [these files](https://github.com/micronucleus/micronucleus/blob/master/commandline/49-micronucleus.rules) in /etc/udev/rules.d/. Once added run the following:
+
+```bash
+sudo udevadm control --reload-rules
+sudo udevadm trigger
+```
+
+### Instructions
+
+**Reset Key**: Hold down key nearest to the USB socket while plugging in the keyboard.
+
+```bash
+make xd002:default:flash
+
+# or directly with...
+micronucleus --run <firmware.hex>
+```
+
+### Recovery
+
+* [Original Firmware](https://github.com/xiudi/Attiny85_vusb_pad_test)
+* [Bootloader Repair](https://digistump.com/wiki/digispark/tutorials/proisp)
diff --git a/keyboards/xd002/rules.mk b/keyboards/xd002/rules.mk
new file mode 100644
index 0000000000..1142142bfc
--- /dev/null
+++ b/keyboards/xd002/rules.mk
@@ -0,0 +1,34 @@
+# MCU name
+MCU = attiny85
+
+# Bootloader selection
+BOOTLOADER = micronucleus
+OPT_DEFS += -DBOOTLOADER_SIZE=1862
+PROGRAM_CMD = micronucleus --run $(BUILD_DIR)/$(TARGET).hex
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
+
+# Save as much space as we can...
+LTO_ENABLE = yes
+GRAVE_ESC_ENABLE = no
+MAGIC_ENABLE = no
+SPACE_CADET_ENABLE = no
diff --git a/keyboards/xd002/xd002.c b/keyboards/xd002/xd002.c
new file mode 100644
index 0000000000..e679b97243
--- /dev/null
+++ b/keyboards/xd002/xd002.c
@@ -0,0 +1,16 @@
+/* Copyright 2020 zvecr<git@zvecr.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include "xd002.h"
diff --git a/keyboards/xd002/xd002.h b/keyboards/xd002/xd002.h
new file mode 100644
index 0000000000..3d780191bb
--- /dev/null
+++ b/keyboards/xd002/xd002.h
@@ -0,0 +1,33 @@
+/* Copyright 2020 zvecr<git@zvecr.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#include "quantum.h"
+
+/* This a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+#define LAYOUT( \
+ K01, K02 \
+) \
+{ \
+ { K01, K02 }, \
+}
diff --git a/keyboards/xd68/config.h b/keyboards/xd68/config.h
index f0a78c1fd2..c86bb56225 100644
--- a/keyboards/xd68/config.h
+++ b/keyboards/xd68/config.h
@@ -52,6 +52,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define BACKLIGHT_LEVELS 6
#define BACKLIGHT_BREATHING
#define BREATHING_PERIOD 6
+#define BACKLIGHT_ON_STATE 0
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
diff --git a/keyboards/xd75/config.h b/keyboards/xd75/config.h
index 7f8b71c45c..b3a1882bec 100644
--- a/keyboards/xd75/config.h
+++ b/keyboards/xd75/config.h
@@ -51,6 +51,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define BACKLIGHT_PIN F5
#define BACKLIGHT_LEVELS 6
+#define BACKLIGHT_ON_STATE 0
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
diff --git a/keyboards/xd75/keymaps/buzzlighter1/keymap.c b/keyboards/xd75/keymaps/buzzlighter1/keymap.c
index f96edce013..09eea933e1 100644
--- a/keyboards/xd75/keymaps/buzzlighter1/keymap.c
+++ b/keyboards/xd75/keymaps/buzzlighter1/keymap.c
@@ -10,6 +10,8 @@ enum custom_keycodes {
QMKURL
};
+#define FN_CAPS LT(_FN, KC_CAPS)
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* QWERTY
@@ -18,18 +20,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
* | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Mute |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
- * | TT(1) | A | S | D | F | G | H | J | K | L | ; | ' | Vol- | Vol+ | ENTER |
+ * | FN(CPS)| A | S | D | F | G | H | J | K | L | ; | ' | Vol- | Vol+ | ENTER |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
* | LSHIFT | Z | X | C | V | B | N | M | , | . | / | Home | PGUP | UP | PGDWN |
* |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
- * | LCTRL | Prev | Next | LALT | SPACE | End | LEFT | DOWN | RIGHT |
+ * | LCTRL | Del | ENTER | LALT | SPACE | End | LEFT | DOWN | RIGHT |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
[_QW] = LAYOUT_ortho_5x15( /* QWERTY */
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_MUTE,
- TT(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_VOLD, KC_VOLU, KC_ENT,
+ FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_VOLD, KC_VOLU, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_HOME, KC_PGUP, KC_UP, KC_PGDN,
KC_LCTL, KC_MPRV, KC_MNXT, KC_LALT, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_END, KC_LEFT, KC_DOWN, KC_RGHT
),
@@ -38,22 +40,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* .--------------------------------------------------------------------------------------------------------------------------------------.
* | XXXXXXX| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | _______| _______|
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | P* | P7 | P8 | P9 | + | NumLk | PR SCR | SCR LK | PAUSE | XXXXXXX| XXXXXXX| BL_DEC | BL_INC | RGB HD | RGB HI |
+ * | _______| P7 | P8 | P9 | + | P* | XXXXXXX| PR SCR | SCR LK | PAUSE | XXXXXXX| BL_DEC | BL_INC | RGB HD | RGB HI |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | _______| P4 | P5 | P6 | PENT | CALC | XXXXXXX| POWER | XXXXXXX| RESET | XXXXXXX| BL_BRTG| BL_STEP| RGB SD | RGB SI |
+ * | _______| P4 | P5 | P6 | NumLk | CALC | XXXXXXX| POWER | XXXXXXX| RESET | XXXXXXX| BL_BRTG| BL_STEP| RGB SD | RGB SI |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | P/ | P1 | P2 | P3 | - | OS | XXXXXXX| XXXXXXX| XXXXXXX| XXXXXXX| XXXXXXX| BL_OFF | BL_ON | RGB VD | RGB VI |
+ * | _______| P1 | P2 | P3 | - | P/ | XXXXXXX| OS | PLAY | PREV | NXT | BL_OFF | BL_ON | RGB VD | RGB VI |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | CPSLCK | P0 | P. | _______| SPACE | BL_TOGG| RGB TG | RGB RMD| RGB MD |
+ * | _______| P0 | P. | PENT | SPACE | BL_TOGG| RGB TG | RGB RMD| RGB MD |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
[_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
- KC_PAST, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_NLCK, KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX, BL_DEC, BL_INC, RGB_HUD, RGB_HUI,
- _______, KC_P4, KC_P5, KC_P6, KC_PENT, KC_CALC, XXXXXXX, KC_PWR, XXXXXXX, RESET, XXXXXXX, BL_BRTG, BL_STEP, RGB_SAD, RGB_SAI,
- KC_PSLS, KC_P1, KC_P2, KC_P3, KC_PMNS, KC_LWIN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_OFF, BL_ON, RGB_VAD, RGB_VAI,
- KC_CAPS, KC_P0, KC_PDOT, _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, BL_TOGG, RGB_TOG, RGB_RMOD,RGB_MOD
+ _______, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_PAST, XXXXXXX, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX, BL_DEC, BL_INC, RGB_HUD, RGB_HUI,
+ _______, KC_P4, KC_P5, KC_P6, KC_NLCK, KC_CALC, XXXXXXX, KC_PWR, XXXXXXX, RESET, XXXXXXX, BL_BRTG, BL_STEP, RGB_SAD, RGB_SAI,
+ _______, KC_P1, KC_P2, KC_P3, KC_PMNS, KC_PSLS, XXXXXXX, KC_LWIN, KC_MPLY, KC_MPRV, KC_MNXT, BL_OFF, BL_ON, RGB_VAD, RGB_VAI,
+ _______, KC_P0, KC_PDOT, KC_PENT, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, BL_TOGG, RGB_TOG, RGB_RMOD,RGB_MOD
)
};
diff --git a/keyboards/xd75/keymaps/buzzlighter1/readme.md b/keyboards/xd75/keymaps/buzzlighter1/readme.md
index 3ba121aa02..947acca101 100644
--- a/keyboards/xd75/keymaps/buzzlighter1/readme.md
+++ b/keyboards/xd75/keymaps/buzzlighter1/readme.md
@@ -1,41 +1,54 @@
# XD75 with 7U spacebar for EN-RU gamers
+ * Standard QWERTY made for gamers with a Russian alternative input.
+ * The keys for extra letters in RU alphabet are where they are expected.
+ * Full 2x4 nav cluster.
+ * Volume/mute control are on base layer, Win key is on function layer.
+ * FN_CAPS provides fast F-keys access while gaming. Lefthanded Numpad operation.
+ * NKRO is on (forced).
-Standard QWERTY oriented on gamers with a Russian alternative input.
-Base layout is as close to classic layout as possible due to RU alphabet having more letters (thus the need for those extra keys remain on the right side).
-Full uncut 2x4 nav cluster.
-Caps Lock and Win keys sent to the Function layer.
-TT(1) - Function layer tap-toggle at CapsLock position provides fast F-keys access in a heat of a battle. As well as easy access to a Numpad.
-
+## Layout
+```c
/* QWERTY
* .--------------------------------------------------------------------------------------------------------------------------------------.
* | GESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Del | BACKSP |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
* | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Mute |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
- * | TT(1) | A | S | D | F | G | H | J | K | L | ; | '' | Vol- | Vol+ | ENTER |
+ * | FN(CPS)| A | S | D | F | G | H | J | K | L | ; | ' | Vol- | Vol+ | ENTER |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
* | LSHIFT | Z | X | C | V | B | N | M | , | . | / | Home | PGUP | UP | PGDWN |
* |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
- * | LCTRL | Prev | Next | LALT | SPACE | End | LEFT | DOWN | RIGHT |
+ * | LCTRL | Del | ENTER | LALT | SPACE | End | LEFT | DOWN | RIGHT |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
-
+```
+```c
/* FUNCTION
* .--------------------------------------------------------------------------------------------------------------------------------------.
* | XXXXXXX| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | _______| _______|
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | P* | P7 | P8 | P9 | + | NumLk | PR SCR | SCR LK | PAUSE | XXXXXXX| XXXXXXX| BL_DEC | BL_INC | RGB HD | RGB HI |
+ * | _______| P7 | P8 | P9 | + | P* | XXXXXXX| PR SCR | SCR LK | PAUSE | XXXXXXX| BL_DEC | BL_INC | RGB HD | RGB HI |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | _______| P4 | P5 | P6 | PENT | CALC | XXXXXXX| POWER | XXXXXXX| RESET | XXXXXXX| BL_BRTG| BL_STEP| RGB SD | RGB SI |
+ * | _______| P4 | P5 | P6 | NumLk | CALC | XXXXXXX| POWER | XXXXXXX| RESET | XXXXXXX| BL_BRTG| BL_STEP| RGB SD | RGB SI |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | P/ | P1 | P2 | P3 | - | OS | XXXXXXX| XXXXXXX| XXXXXXX| XXXXXXX| XXXXXXX| BL_OFF | BL_ON | RGB VD | RGB VI |
+ * | _______| P1 | P2 | P3 | - | P/ | XXXXXXX| OS | PLAY | PREV | NXT | BL_OFF | BL_ON | RGB VD | RGB VI |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | CPSLCK | P0 | P. | _______| SPACE | BL_TOGG| RGB TG | RGB RMD| RGB MD |
+ * | _______| P0 | P. | PENT | SPACE | BL_TOGG| RGB TG | RGB RMD| RGB MD |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
+```
+## LEDs
+Top left LED - Function layer active.
+Mid left LED - CapsLock active.
+## Compile
-## LED control
+go to qmk top directory.
+```
+$ cd qmk_firmware
+```
-Top left LED - Function layer active.
-Mid left LED - CapsLock active.
+build
+```
+$ make xd75:buzzlighter1
+``` \ No newline at end of file
diff --git a/keyboards/xd75/keymaps/scheiklp/config.h b/keyboards/xd75/keymaps/scheiklp/config.h
new file mode 100644
index 0000000000..68f5a3ee11
--- /dev/null
+++ b/keyboards/xd75/keymaps/scheiklp/config.h
@@ -0,0 +1,41 @@
+/* Copyright 2017 Benjamin Kesselring
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+// place overrides here
+#define AUTO_SHIFT_TIMEOUT 175
+#define NO_AUTO_SHIFT_SPECIAL
+
+// Mouse control
+// constant mode (velocity)
+#define MK_3_SPEED
+// KC_ACL0 < KC_ACL1 < unmodified < KC_ACL2
+// Cursor offset per movement (unmodified)
+#define MK_C_OFFSET_UNMOD 16
+// Time between cursor movements (unmodified)
+#define MK_C_INTERVAL_UNMOD 16
+// Cursor offset per movement (KC_ACL0)
+#define MK_C_OFFSET_0 1
+// Time between cursor movements (KC_ACL0)
+#define MK_C_INTERVAL_0 32
+// Cursor offset per movement (KC_ACL1)
+#define MK_C_OFFSET_1 4
+// Time between cursor movements (KC_ACL1)
+#define MK_C_INTERVAL_1 16
+// Cursor offset per movement (KC_ACL2)
+#define MK_C_OFFSET_2 32
+// Time between cursor movements (KC_ACL2)
+#define MK_C_INTERVAL_2 16
diff --git a/keyboards/xd75/keymaps/scheiklp/keymap.c b/keyboards/xd75/keymaps/scheiklp/keymap.c
new file mode 100644
index 0000000000..a757c2e49c
--- /dev/null
+++ b/keyboards/xd75/keymaps/scheiklp/keymap.c
@@ -0,0 +1,112 @@
+/* Copyright 2017 Wunder
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+#include "koy_keys_on_quertz_de_latin1.h"
+// Layer shorthand
+#define _1 0
+#define _3 1
+#define _4 2
+#define _7 3
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Layer 1
+ * .---------------------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | 1 | 2 | 3 | 4 | 5 | Record 1 | Play 1 | 6 | 7 | 8 | 9 | 0 | DEL | BACKSP |
+ * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | TAB | K | . | O | , | Y | Record 2 | Play 2P | V | G | C | L | ẞ | Z | |
+ * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | Layer 3 | H | A | E | I | U | Undo | Stop Rec. | D | T | R | N | S | F | Layer 3 |
+ * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | LSHIFT | X | Q | Ä | Ü | Ö | Copy | Cut | B | P | W | M | J | RSHIFT | RSHIFT |
+ * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | LCTRL | Layer 4 | | LGUI | LALT | SPACE | Paste | SPACE | SPACE | Layer 4 | RCTRL | | | KEYLOCK | Layer 7 |
+ * '---------------------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_1] = LAYOUT_ortho_5x15( /* KOY */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, DM_REC1, DM_PLY1, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_BSPC,
+ KC_TAB, KC_K, KC_DOT, KC_O, KC_COMM, N_Y, DM_REC2, DM_PLY2, KC_V, KC_G, KC_C, KC_L, N_SS, N_Z, KC_TRNS,
+ MO(_3), KC_H, KC_A, KC_E, KC_I, KC_U, N_UNDO, DM_RSTP, KC_D, KC_T, KC_R, KC_N, KC_S, KC_F, MO(_3),
+ KC_LSFT, KC_X, KC_Q, N_AE, N_UE, N_OE, N_COPY, N_CUT, KC_B, KC_P, KC_W, KC_M, KC_J, KC_RSFT, KC_RSFT,
+ KC_LCTL, MO(_4), KC_TRNS, KC_LGUI, KC_LALT, KC_SPC, N_PASTE, KC_SPC, KC_SPC, MO(_4), KC_RCTL, KC_TRNS, KC_TRNS,KC_LOCK, MO(_7)
+ ),
+
+/* Layer 3
+ * .---------------------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | F1 | F2 | F3 | F4 | F5 | | | F6 | F7 | F8 | F9 | F0 | DEL | BACKSP |
+ * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | TAB | … | _ | [ | ] | ^ | | | ! | < | > | = | & | | |
+ * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | Layer 5 | \ | / | { | } | * | | | ? | ( | ) | - | : | @ | Layer 5 |
+ * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | LSHIFT | # | $ | | | ~ | ` | | | + | % | " | ' | ; | RSHIFT | RSHIFT |
+ * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | LCTRL | | | | LALT | | | | | | | | | | |
+ * '---------------------------------------------------------------------------------------------------------------------------------------------------'
+ */
+ [_3] = LAYOUT_ortho_5x15( /* Layer 3 */
+ KC_ESC, KC_F1, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
+ KC_TAB, N_DOTS, N_USC, N_LSQBR, N_RSQBR, N_CIRC, KC_TRNS, KC_TRNS, N_EXKL, N_LT, N_GT, N_EQ, N_AMP, KC_TRNS, KC_TRNS,
+ KC_TRNS, N_BSLS, N_SLSH, N_LCUBR, N_RCUBR, N_ASTR, KC_TRNS, KC_TRNS, N_QUES, N_LPARN, N_RPARN, N_MINS, N_COLN, N_AT, KC_TRNS,
+ KC_LSFT, N_HASH, N_DLR, N_PIPE, N_TILD, N_GRAVE, KC_TRNS, KC_TRNS, N_PLUS, N_PERC, N_QUOT, N_SING, N_SEMI, KC_RSFT, KC_RSFT,
+ KC_LCTL, KC_TRNS, KC_TRNS, KC_LALT, KC_TRNS, KC_SPC, KC_TRNS, KC_SPC, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+/* Layer 4
+ * .------------------------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | | | | | | | | | | | | | | |
+ * |---------+---------+--------+--------+--------+-----------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | TAB | Page up | BACKSP | Up | DEL | Page down | | | / | 7 | 8 | 9 | − | | |
+ * |---------+---------+--------+--------+--------+-----------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | | Home | Left | Down | Right | End | | | * | 4 | 5 | 6 | . | | |
+ * |---------+---------+--------+--------+--------+-----------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | LSHIFT | ESC | TAB | Insert | Enter | Undo | | | Enter | 1 | 2 | 3 | ; | RSHIFT | RSHIFT |
+ * |---------+---------+--------+--------+--------+-----------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | LCTRL | | | LALT | | 0 | | 0 | 0 | | | | | | |
+ * '------------------------------------------------------------------------------------------------------------------------------------------------------'
+ */
+ [_4] = LAYOUT_ortho_5x15( /* Layer 4 */
+ KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TAB, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_TRNS, KC_TRNS, KC_KP_SLASH, KC_7, KC_8, KC_9, KC_KP_MINUS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, KC_TRNS, KC_TRNS, KC_KP_ASTERISK, KC_4, KC_5, KC_6, KC_KP_PLUS, KC_TRNS, KC_TRNS,
+ KC_LSFT, KC_ESC, KC_TAB, KC_INS, KC_ENTER, N_UNDO, KC_TRNS, KC_TRNS, KC_KP_ENTER, KC_1, KC_2, KC_3, KC_KP_DOT, KC_RSFT, KC_RSFT,
+ KC_LCTL, KC_TRNS, KC_TRNS, KC_LALT, KC_TRNS, KC_0, KC_TRNS, KC_0, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+/* Layer 7
+ * .--------------------------------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | | | Button 3 | | | | | | | | | | | RESET |
+ * |---------+----------+----------+----------+----------+------------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | TAB | Wheel up | Button 2 | Up | Button 1 | Wheel down | | | | | | | | | |
+ * |---------+----------+----------+----------+----------+------------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | | Veloc 0 | Left | Down | Right | | | | | | | | | | |
+ * |---------+----------+----------+----------+----------+------------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | LSHIFT | Veloc 1 | | | | | | | | | | | | | |
+ * |---------+----------+----------+----------+----------+------------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | LCTRL | Veloc 2 | | LALT | | | | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------------------------------'
+ */
+ [_7] = LAYOUT_ortho_5x15( /* Layer 7 */
+ KC_ESC, KC_TRNS, KC_TRNS, KC_MS_BTN3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET,
+ KC_TAB, KC_MS_WH_UP, KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, KC_MS_WH_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_MS_ACCEL0, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_LSFT, KC_MS_ACCEL1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_LCTL, KC_MS_ACCEL2, KC_TRNS, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+
+};
+
diff --git a/keyboards/xd75/keymaps/scheiklp/readme.md b/keyboards/xd75/keymaps/scheiklp/readme.md
new file mode 100644
index 0000000000..58c65f0884
--- /dev/null
+++ b/keyboards/xd75/keymaps/scheiklp/readme.md
@@ -0,0 +1,9 @@
+# KOY Layout for the xd75 pcb board
+Compile the layout
+```bash
+qmk compile -kb xd75 -km scheiklp
+```
+and flash it to the board
+```bash
+qmk flash -kb xd75 -km scheiklp
+```
diff --git a/keyboards/xd75/keymaps/scheiklp/rules.mk b/keyboards/xd75/keymaps/scheiklp/rules.mk
new file mode 100644
index 0000000000..6e07de471a
--- /dev/null
+++ b/keyboards/xd75/keymaps/scheiklp/rules.mk
@@ -0,0 +1,6 @@
+BOOTMAGIC_ENABLE = no
+COMMAND_ENABLE = no
+RGBLIGHT_ENABLE = no
+DYNAMIC_MACRO_ENABLE = yes
+AUTO_SHIFT_ENABLE = yes
+KEY_LOCK_ENABLE = yes
diff --git a/keyboards/ymd96/rules.mk b/keyboards/ymd96/rules.mk
index b7571649bd..2ce37cfc78 100644
--- a/keyboards/ymd96/rules.mk
+++ b/keyboards/ymd96/rules.mk
@@ -27,5 +27,3 @@ KEY_LOCK_ENABLE = yes
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-
-OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/ymdk/bface/rules.mk b/keyboards/ymdk/bface/rules.mk
index 6320071ab8..8cabca8ee6 100644
--- a/keyboards/ymdk/bface/rules.mk
+++ b/keyboards/ymdk/bface/rules.mk
@@ -19,5 +19,3 @@ CONSOLE_ENABLE = no
COMMAND_ENABLE = yes
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = no
-
-OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/ymdk_np21/rules.mk b/keyboards/ymdk_np21/rules.mk
index 237386bcea..c370c616a5 100644
--- a/keyboards/ymdk_np21/rules.mk
+++ b/keyboards/ymdk_np21/rules.mk
@@ -27,5 +27,3 @@ KEY_LOCK_ENABLE = yes
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-
-OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/yosino58/ssd1306.h b/keyboards/yosino58/ssd1306.h
index de0a9a02aa..acaf6217ef 100644
--- a/keyboards/yosino58/ssd1306.h
+++ b/keyboards/yosino58/ssd1306.h
@@ -2,7 +2,6 @@
#include <stdbool.h>
#include <stdio.h>
-#include "pincontrol.h"
#include "action.h"
enum ssd1306_cmds {
@@ -93,4 +92,4 @@ void matrix_write_ln(struct CharacterMatrix *matrix, const char *data);
void matrix_write_P(struct CharacterMatrix *matrix, const char *data);
void matrix_render(struct CharacterMatrix *matrix);
-bool process_record_gfx(uint16_t keycode, keyrecord_t *record); \ No newline at end of file
+bool process_record_gfx(uint16_t keycode, keyrecord_t *record);