summaryrefslogtreecommitdiffstats
path: root/keyboard
diff options
context:
space:
mode:
authorErez Zukerman <bulk@ezuk.org>2016-06-07 21:18:32 -0400
committerErez Zukerman <bulk@ezuk.org>2016-06-07 21:18:32 -0400
commita5d638ad3091e2d553eaa04d933df28eeced5a8b (patch)
treefc909084fd07dbc031da43053468c5fb9c30d172 /keyboard
parentfd454e5b74bc0a87effd755986ce33bf05b4d27c (diff)
parent623466e340744157df867d023c7f1e57b8bedb0a (diff)
Merge pull request #364 from techtomas/techtomas
Rearranged the layer toggles and keys.
Diffstat (limited to 'keyboard')
-rw-r--r--keyboard/ergodox_ez/keymaps/techtomas/keymap.c128
-rw-r--r--keyboard/ergodox_ez/keymaps/techtomas/readme.md35
-rw-r--r--keyboard/ergodox_ez/keymaps/techtomas/techtomas.hex1202
3 files changed, 701 insertions, 664 deletions
diff --git a/keyboard/ergodox_ez/keymaps/techtomas/keymap.c b/keyboard/ergodox_ez/keymaps/techtomas/keymap.c
index b7d3b9a116..1ff6618b98 100644
--- a/keyboard/ergodox_ez/keymaps/techtomas/keymap.c
+++ b/keyboard/ergodox_ez/keymaps/techtomas/keymap.c
@@ -4,65 +4,65 @@
#define BASE 0 // default layer
#define SYMB 1 // symbols
-#define MDIA 2 // media
+#define APP 2 // app layer
#define CNTL 3 // control layer
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
- * | L1/` | 1 | 2 | 3 | 4 | 5 |CmdSpc| | - | 6 | 7 | 8 | 9 | 0 | = |
+ * | L2/` | 1 | 2 | 3 | 4 | 5 |CmdSpc| | - | 6 | 7 | 8 | 9 | 0 | = |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * |Meh/Tab | Q | W | E | R | T | STab | | L3 | Y | U | I | O | P | Meh/\ |
+ * | MEH/Tab| Q | W | E | R | T | [ | | ] | Y | U | I | O | P | MEH/\ |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * |Hyp/Esc | L3/A | S | D | F | G |------| |------| H | J | K | L | L2/; | Hyp/' |
- * |--------+------+------+------+------+------| Tab | |AltGui|------+------+------+------+------+--------|
- * | LShift | L3/Z | X | C | V | B | | | | N | M | , | . | L2// | RShift |
+ * |Hyp/Esc | A | S | D | F | G |------| |------| H | J | K | L | L2/; | Hyp/' |
+ * |--------+------+------+------+------+------| Tab | | STab |------+------+------+------+------+--------|
+ * | LShift | Z | X | C | V | B | | | | N | M | , | . | L2// | RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |LCtrl | LAlt | LGui |Left |Right | | UP | Down | [ | ] | L1 |
+ * |L1/Lft|L3/Rht| LCtl | LAlt | LGui | | Rgui | Up | Dn | L3 | L1 |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
- * | LCtl | LGui | | LAlt |ShfGui|
+ * | LCtl | LGui | |AltGui|ShfGui|
* ,-------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
+ * | | |L1/Hom| |L2/PUp| | |
* | Backsp|Delete|------| |------| Enter | Space |
- * | | | End | | PgDn | | |
+ * | | |L3/End| |L1/PDn| | |
* `--------------------' `-----------------------'
*/
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
[BASE] = KEYMAP( // layer 0 : default
// left hand
- LT(SYMB,KC_GRV), KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_SPC),
- MEH_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, S(KC_TAB),
- ALL_T(KC_ESC), LT(CNTL,KC_A), KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, LT(CNTL,KC_Z), KC_X, KC_C, KC_V, KC_B, KC_TAB,
- KC_LCTL, KC_LALT, KC_LGUI, KC_LEFT, KC_RIGHT,
- KC_LCTL, KC_LGUI,
- KC_HOME,
- KC_BSPC, KC_DELETE, KC_END,
+ LT(APP,KC_GRV), KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_SPC),
+ MEH_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC,
+ ALL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_TAB,
+ LT(SYMB,KC_LEFT), LT(CNTL,KC_RIGHT), KC_LCTL, KC_LALT, KC_LGUI,
+ KC_LCTL, KC_LGUI,
+ LT(SYMB,KC_HOME),
+ KC_BSPC, KC_DELETE, LT(CNTL,KC_END),
// right hand
- KC_MINS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
- KC_FN3, KC_Y, KC_U, KC_I, KC_O, KC_P, MEH_T(KC_BSLS),
- KC_H, KC_J, KC_K, KC_L, LT(MDIA,KC_SCLN), ALL_T(KC_QUOT),
- LALT(KC_LGUI), KC_N, KC_M, KC_COMM, KC_DOT, LT(MDIA,KC_SLSH), KC_RSFT,
- KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, KC_FN1,
- KC_LALT, S(KC_LGUI),
- KC_PGUP,
- KC_PGDN,KC_ENT, KC_SPC
+ KC_MINS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
+ KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, MEH_T(KC_BSLS),
+ KC_H, KC_J, KC_K, KC_L, LT(APP,KC_SCLN), ALL_T(KC_QUOT),
+ S(KC_TAB), KC_N, KC_M, KC_COMM, KC_DOT, LT(APP,KC_SLSH), KC_RSFT,
+ KC_RGUI, KC_UP, KC_DOWN, KC_FN3, KC_FN1,
+ LALT(KC_LGUI), S(KC_LGUI),
+ LT(APP,KC_PGUP),
+ LT(SYMB,KC_PGDN), KC_ENT, KC_SPC
),
/* Keymap 1: Symbol Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * | | F1 | F2 | F3 | F4 | F5 | | | Tab | F6 | F7 | F8 | F9 | F10 | F11 |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | < | | > | : | 7 | 8 | 9 | / | F12 |
+ * | | ! | @ | { | } | | | < | | > | : | 7 | 8 | 9 | / | F12 |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| ; | 4 | 5 | 6 | * | Prnt |
+ * | | # | $ | ( | ) | ` |------| |------| ; | 4 | 5 | 6 | * | |
* |--------+------+------+------+------+------| F14 | | F15 |------+------+------+------+------+--------|
* | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | - | Entr |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | 0 | . | = | + | |
+ * | | | | | | | 0 | . | = | + | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
@@ -84,60 +84,60 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,
// right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_TAB, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
S(KC_DOT), KC_COLN, KC_7, KC_8, KC_9, KC_BSLS, KC_F12,
- KC_SCLN, KC_4, KC_5, KC_6, KC_ASTR, KC_PSCR,
+ KC_SCLN, KC_4, KC_5, KC_6, KC_ASTR, KC_TRNS,
KC_F15, KC_AMPR, KC_1, KC_2, KC_3, KC_MINS, KC_ENT,
KC_0, KC_DOT, KC_EQL, KC_PLUS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
-/* Keymap 2: Media Layer
+/* Keymap 2: App Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------| | | | | | |
+ * | | CmdQ | CmdW | | | | Stab | | Play | Prev | Next | | |PrtSc | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
+ * | | | | | | |------| |------| VolDn|VolUp | | | | |
+ * |--------+------+------+------+------+------| | | Mute |------+------+------+------+------+--------|
+ * | | CmdZ | CmdX | CmdC | CmdY | CtrlC| | | | | | | | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
- * | Prev | Next | | Prev | Next |
+ * | | | | | |
* ,------|------|------| |------+------+------.
- * | | | VolUp| | VolUp| | |
- * | Play | Mute |------| |------| Mute | Play |
- * | | | VolDn| | VolDn| | |
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
* `--------------------' `--------------------'
*/
// Control
-[MDIA] = KEYMAP(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_MPRV, KC_MNXT,
- KC_VOLU,
- KC_MPLY, KC_MUTE, KC_VOLD,
+[APP] = KEYMAP(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, LGUI(KC_Q), LGUI(KC_W), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_TAB),
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LCTL(KC_C), KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
// right hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_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_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS,
+ KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_MPRV, KC_MNXT,
- KC_VOLU,
- KC_VOLD, KC_MUTE, KC_MPLY
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
),
/* Keymap 3: Control Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
- * | Sleep | | | | | | Pwr | | | | | | | | |
+ * | Pwr | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | | MsUp | | | | | | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
@@ -148,22 +148,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
- * | | | | | |
+ * | Shift| | | Home | End |
* ,------|------|------| |------+------+------.
- * | | | | | | | |
+ * | | | LAtl | | | | |
* | | |------| |------| | |
* | | | | | | | |
* `--------------------' `--------------------'
*/
// Control
[CNTL] = KEYMAP(
- KC_SLEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PWR,
+ KC_PWR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN1,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN2, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
+ KC_LSFT, KC_TRNS,
+ KC_LALT,
KC_TRNS, KC_TRNS, KC_TRNS,
// right hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -171,7 +171,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
+ KC_HOME, KC_END,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
@@ -179,7 +179,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
const uint16_t PROGMEM fn_actions[] = {
[1] = ACTION_LAYER_TAP_TOGGLE(SYMB),
- [2] = ACTION_LAYER_TAP_TOGGLE(MDIA),
+ [2] = ACTION_LAYER_TAP_TOGGLE(APP),
[3] = ACTION_LAYER_TAP_TOGGLE(CNTL) // FN1 - Momentary Layer 1 (Symbols)
};
diff --git a/keyboard/ergodox_ez/keymaps/techtomas/readme.md b/keyboard/ergodox_ez/keymaps/techtomas/readme.md
index 1ed80fc20c..36e0591a8e 100644
--- a/keyboard/ergodox_ez/keymaps/techtomas/readme.md
+++ b/keyboard/ergodox_ez/keymaps/techtomas/readme.md
@@ -6,28 +6,49 @@ The base layer is a merge of what I liked with the default layout and the ordina
* The Caps Lock postion handles [Hyper/Esc](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)
* The Tab key toggles MEH.
-* The two vertical mods on the left board are Shift+Tab and Tab.
-* The two vertical mods on the right board are Control Layer tap/toggle and Alt+Cmd.
+* The top vertical mods on the left and right are [ and ].
+* The bottom vertical mods on the left and right are tab and shift+tab
* The HYPER and MEH key are made in the same location on the right side of the board as well. Using Keyboard Maestro for OS X makes one-handed shortcuts very easy.
+* Layer switching is focused around the thumb clusters plus some additional locations for convience.
## Symbol Layer
-The symbol layer can be tap/toggled through the bottom right key and also toggled holding the tilde/grave key in the upper left corner. I haven't used the symbol layer enough to tell if this was a good place or not but it made sense in my head
+The symbol layer can be tap/toggled with the bottom right key and also toggled on the thumb clusters.
The bottom two vertical mods are set to F14 and F15 which is the default for changing screen brightness on the mac
-## Media Layer
-/ & ; will toggle the media layer which has play and volume controls assigned to the thumb cluster. I found this an easy way to quickly play/pause
+## App Layer
+The app layer is used to control media playback and also some application shortcuts (OS X Focused).
+It can be toggled on the left board in the top left corner (tilde/grave) or using your pinky on the right side of the board using either ; or /.
+There is one additional toggle on the right thumb cluster for quick access to play and mute key combos.
+
+### Current App shortcuts defined
+* Q = CMD+Q
+* W = CMD+W
+* Z = CMD+Z
+* X = CMD+X
+* C = CMD+C
+* V = CMD+V
+* B = CTRL+C
+* P = Print Screen
## Control Layer
-The a and z keys toggle the control layer.
+The control layer is meant to help easily navigate and select text. It can also be stacked ontop of the Symbol layer when needed.
+
+The right arrow key and End key toggle the control layer on the left board. There is also a tap toggle for the layer in the same position on the right side of the board.
On the left board you have mouse control with left & right click in the location of the G and B keys.
On the right board you have vim-style arrow keys using hjkl
-The thumb cluster and mods all pass down to this layer.
+The left thumb cluster moves shift and alt within easy reach while holding the toggle (end). So far I've found this convient to navigate and skip around text when using the hjkl arrow keys. I found that it was easy to get the alt key stuck on depending on what key you released first so I added the PREVENT_STUCK_MODIFIERS to the config.h to help with that.
## Changelog
+* May 4th, 2016 (v1.2):
+ * Moved layer toggles around to match my habbits of typing
+ * Enabled Prevent Stuck Modifers in my config.h (L3 + Alt on cluster would get stuck)
+ * Changed media layer to be more like an app layer with some quick shortcuts (mac centric)
+ * Moved around the base layer arrow keys so mod keys were more accesible
+
* Apr 29, 2016 (V1.1):
* Added F14 and F15 to symbol layer
* Added control layer toggle to A key.
diff --git a/keyboard/ergodox_ez/keymaps/techtomas/techtomas.hex b/keyboard/ergodox_ez/keymaps/techtomas/techtomas.hex
index 8aa849208f..ad1c62d523 100644
--- a/keyboard/ergodox_ez/keymaps/techtomas/techtomas.hex
+++ b/keyboard/ergodox_ez/keymaps/techtomas/techtomas.hex
@@ -2,8 +2,8 @@
:100010000C9402030C9402030C9402030C9402034C
:100020000C9402030C9402030C94D20C0C94A40DB7
:100030000C9402030C9402030C9402030C9402032C
-:100040000C9402030C9470220C9402030C9402038F
-:100050000C9402030C94001C0C9402030C940203F5
+:100040000C9402030C94EC220C9402030C94020313
+:100050000C9402030C947C1C0C9402030C94020379
:100060000C9402030C9402030C9402030C940203FC
:100070000C9402030C9402030C9402030C940203EC
:100080000C9402030C9402030C9402030C940203DC
@@ -12,45 +12,45 @@
:1000B000210F330E210F780E9B0E210FF00E030F30
:1000C000EF11EF112C122C126F12AD12C614C614C0
:1000D000C612C614C713C7139A14C614C614B11493
-:1000E0000000F0A1F0A2F0A335812B77297FE10079
-:1000F000E00000001E00140004831D83E2004D0098
-:100100001F001A0016001B00E3004C00200008002E
-:100110000700060050002A00210015000900190000
-:100120004F004A00220017000A0005000000E0000E
-:100130002C082B0200002B000000E3002D00C30060
-:100140000000E3040000E20023001C000B0011008B
-:100150000000E302240018000D00100052004B00C4
-:1001600025000C000E00360051002C002600120065
-:100170000F0037002F002800270013003382388239
-:1001800030004E002E003177347FE500C1000000C2
+:1000E0000000F0A1F0A2F0A335822B77297FE10078
+:1000F000508100001E00140004001D004F834D833A
+:100100001F001A0016001B00E0004C002000080031
+:1001100007000600E2002A0021001500090019006E
+:10012000E3004A81220017000A0005000000E000F9
+:100130002C082F0000002B000000E3002D003000F1
+:1001400000002B020000E30423001C000B00110040
+:100150000000E302240018000D001000E7004B82AD
+:1001600025000C000E00360052002C002600120064
+:100170000F00370051002800270013003382388217
+:10018000C3004E812E003177347FE500C1000000AE
:100190000100010001000100010000003A001E0200
:1001A00020022202010001003B001F022102230263
:1001B000010001003C002F0226022F000100010077
:1001C0003D00300227023000010001003E003102F4
:1001D0003500350200000100010036020000690010
-:1001E000000001000100370200006A000000010069
+:1001E000000001002B00370200006A00000001003F
:1001F0003F003302330024020000010040002400CD
:1002000021001E00270001004100250022001F00E0
:100210003700010042002600230020002E000100CC
:100220004300310025022D002E020100440045004C
-:10023000460028000100000001000100010001004B
-:100240000100000001000100010001000100AA00FE
-:1002500001000100010001000100A80001000100EF
-:10026000010001000100AE000100010001000100D9
-:100270000100A90001000100010001000000AC0024
-:1002800001000100000001000000AB0001000100BE
-:10029000000001000000AC000100010001000100AD
-:1002A0000000AB0001000100010001000100A900F5
-:1002B00001000100010001000100AE000100010089
-:1002C000010001000100A80001000100010001007F
-:1002D0000100AA000100010001000100010000006E
-:1002E000A600010001000100010000000100010062
+:100230000100280001000000010001000100010090
+:10024000010000000100140801001D080100010068
+:1002500001001A0801001B08010001000100010053
+:100260000100060801000100010001000100190859
+:100270000100010001000100010006010000010071
+:1002800001002B0200000100000001000100AE008F
+:100290000000A800000001000100AC00AA0001005D
+:1002A000000001000100AB00A900010001000100F5
+:1002B0000100010001000100010001000100010036
+:1002C00001000100010001000100460001000100E1
+:1002D0000100010001000100010001000100000017
+:1002E000A500010001000100010000000100010063
:1002F000010001000100010001000100F200010005
:10030000010001000100F000F10001000100010006
-:1003100001000100F30001000100010001000100E3
-:10032000F400F50000000100A5000100000001003C
-:1003300000000100010001000000010000000100B8
-:100340000100010050000100000001000100010057
+:1003100001000100F30001000100E2000100010002
+:10032000F400F5000000E100010001000000010000
+:1003300000000100010001000000010000004A006F
+:10034000010001005000010000004D00010001000B
:1003500051000100010001000100010052000100F4
:1003600001000100010001004F0001000100010037
:100370000100010001000100010001000100010075
@@ -86,18 +86,18 @@
:10055000B3C7DAE9F5FCFFFCF5E9DAC7B39D8771AB
:100560005D4A3A2C20170F0A060402010000000021
:1005700000000000000011241FBECFEFDAE0DEBF54
-:10058000CDBF04B603FE27C08091EE019091EF012C
-:10059000A091F001B091F1018730904BA740B04B92
-:1005A000D1F41092EE011092EF011092F00110922E
-:1005B000F10114BE84B7877F84BF0FB6F894A89565
+:10058000CDBF04B603FE27C08091260290912702BA
+:10059000A0912802B09129028730904BA740B04B20
+:1005A000D1F4109226021092270210922802109283
+:1005B000290214BE84B7877F84BF0FB6F894A8952C
:1005C00080916000886180936000109260000FBE8F
-:1005D000E0E0FFE3099511E0A0E0B1E0ECE8F8E429
-:1005E00002C005900D92A433B107D9F721E0A4E32E
-:1005F000B1E001C01D92AE3EB207E1F70E94130ABE
-:100600000C9444240C94000061110BC0FC01828105
+:1005D000E0E0FFE3099511E0A0E0B1E0E4E8F9E430
+:1005E00002C005900D92A433B107D9F722E0A4E32D
+:1005F000B1E001C01D92A632B207E1F70E94130AD2
+:100600000C94C0240C94000061110BC0FC01828189
:10061000882321F085EE0E94831003C085EE0E949E
-:100620004B1180E090E0089508956091B1017091C0
-:10063000B2018091B3019091B4010E94291B569898
+:100620004B1180E090E0089508956091E901709188
+:10063000EA018091EB019091EC010E94A51B569874
:100640005E9825982D9826982E9827982F98823076
:1006500039F0833041F0813041F4259A2D9A089584
:10066000269A2E9A0895279A2F9A08950C94150386
@@ -203,28 +203,28 @@
:100CA00009F45BC100E014E45AC18E01106557C11C
:100CB000CE019F700E94900553C10E94EA149FEFDD
:100CC00024E38CE0915020408040E1F700C0000018
-:100CD0000E94251C44C18091CD0181608093CD018B
-:100CE0003EC10E94CE1D811102C00E94B41D0E940F
-:100CF000EB1D90E09093EE018093ED01C23090E502
-:100D0000D90721F48091ED01816086C0C43020E5CF
-:100D1000D20721F48091ED0182607EC0C63080E56B
-:100D2000D80721F48091ED01846076C0C83090E549
-:100D3000D90719F48091ED0127C0CA3020E5D20708
-:100D400021F48091ED01806167C0CC3080E5D80747
-:100D500021F48091ED0180625FC0CE3090E5D9072B
-:100D600021F48091ED01806457C0C03120E5D207A5
-:100D700021F48091ED0180684FC0C23180E5D80731
-:100D800029F48091ED018460886046C0C33090E50D
-:100D9000D90721F48091ED018E7F3EC0C53020E55A
-:100DA000D20721F48091ED018D7F36C0C73080E5F8
-:100DB000D80721F48091ED018B7F2EC0C93090E5DA
-:100DC000D90719F48091ED0126C0CB3020E5D20778
-:100DD00021F48091ED018F7E1FC0CD3080E5D807D2
-:100DE00021F48091ED018F7D17C0CF3090E5D907B8
-:100DF00021F48091ED018F7B0FC0C13120E5D20736
-:100E000021F48091ED018F7707C0C331D04531F4D3
-:100E10008091ED018B7F877F8093ED018091ED01C3
-:100E20000E94EF1D9CC08D2F99278F7099278130CC
+:100CD0000E94A11C44C1809105028160809305029D
+:100CE0003EC10E944A1E811102C00E94301E0E9415
+:100CF000671E90E09093260280932502C23090E513
+:100D0000D90721F480912502816086C0C43020E596
+:100D1000D20721F48091250282607EC0C63080E532
+:100D2000D80721F480912502846076C0C83090E510
+:100D3000D90719F48091250227C0CA3020E5D207CF
+:100D400021F480912502806167C0CC3080E5D8070E
+:100D500021F48091250280625FC0CE3090E5D907F2
+:100D600021F480912502806457C0C03120E5D2076C
+:100D700021F48091250280684FC0C23180E5D807F8
+:100D800029F4809125028460886046C0C33090E5D4
+:100D9000D90721F4809125028E7F3EC0C53020E521
+:100DA000D20721F4809125028D7F36C0C73080E5BF
+:100DB000D80721F4809125028B7F2EC0C93090E5A1
+:100DC000D90719F48091250226C0CB3020E5D2073F
+:100DD00021F4809125028F7E1FC0CD3080E5D80799
+:100DE00021F4809125028F7D17C0CF3090E5D9077F
+:100DF00021F4809125028F7B0FC0C13120E5D207FD
+:100E000021F4809125028F7707C0C331D04531F49A
+:100E1000809125028B7F877F809325028091250218
+:100E20000E946B1E9CC08D2F99278F70992781304F
:100E30009105D9F49E012370332702C0880F991FB2
:100E40002A95E2F79C688E0144E0000F111F4A9535
:100E5000E1F700271370802B912B53E0CC0FDD1F9F
@@ -253,36 +253,36 @@
:100FC0008533910509F44DC067C0833E910581F1D9
:100FD00038F4803E9105B9F0823E9105D9F05CC0AD
:100FE000863E910561F1873E9105A1F155C00E94B1
-:100FF000880508952091ED0120FD02C021FF4CC01D
-:1010000080EE90E049C08091ED0180FFF9CF89E347
-:1010100090E042C08091ED0182FF0EC08091ED0111
+:100FF000880508952091250220FD02C021FF4CC0E4
+:1010000080EE90E049C08091250280FFF9CF89E30E
+:1010100090E042C08091250282FF0EC0809125029F
:1010200084FF03C080E090E037C083EE90E034C0DE
-:101030008091ED0182FFF2CF82EE90E02DC0809191
-:10104000ED0183FF0BC08091ED0184FDEBCF87EEB6
-:1010500090E022C08091ED0183FFF5CF86EE90E015
-:101060001BC08091ED0185FF07C089E290E014C0AC
-:101070008091ED0185FFF9CF85E390E00DC080916F
-:10108000ED0186FF07C08AE290E006C08091ED0185
+:101030008091250282FFF2CF82EE90E02DC0809158
+:10104000250283FF0BC08091250284FDEBCF87EE44
+:1010500090E022C08091250283FFF5CF86EE90E0DC
+:101060001BC08091250285FF07C089E290E014C073
+:101070008091250285FFF9CF85E390E00DC0809136
+:10108000250286FF07C08AE290E006C08091250213
:1010900086FFF9CF81E390E00E94980508950895B6
:1010A0000C944F08809162010895CF93DF9300D094
-:1010B0001F92CDB7DEB79C018091E401843019F511
+:1010B0001F92CDB7DEB79C0180911C02843019F5D8
:1010C00093E099833B832A839093E9008FEF90917B
:1010D000E800815095FD06C095ED9A95F1F7000066
:1010E0008111F5CF8091E80085FF0DC040E050E010
:1010F00063E070E0CE0101960E94C20A8091E80090
:101100008E778093E8000F900F900F90DF91CF9132
:101110000895CF93DF9300D01F92CDB7DEB7209113
-:10112000E401243021F522E029839B838A8383E034
+:101120001C02243021F522E029839B838A8383E0FB
:101130008093E9008FEF9091E800815095FD06C003
:1011400095ED9A95F1F700008111F5CF8091E800B7
:1011500085FF0DC040E050E063E070E0CE010196F5
:101160000E94C20A8091E8008E778093E8000F9079
-:101170000F900F90DF91CF9108952091E4012430DA
+:101170000F900F90DF91CF91089520911C022430A1
:10118000F1F422E02093E9002FEF3091E8002150A4
:1011900035FD06C035ED3A95F1F700002111F5CF88
:1011A0002091E80025FF0BC040E050E065E070E0D2
:1011B0000E94C20A8091E8008E778093E80008952B
-:1011C000CF93DF93EC019091E401943009F046C095
+:1011C000CF93DF93EC0190911C02943009F046C05C
:1011D00080910C018823D9F080910D018823B9F00A
:1011E0009093E9008FEF9091E800815095FD06C043
:1011F00095E19A95F1F700008111F5CF8091E80013
@@ -292,32 +292,32 @@
:1012300085FF14C040E050E068E070E0CE010E94FD
:10124000C20A8091E8008E778093E80080E1FE0179
:10125000A2E5B1E001900D928A95E1F7DF91CF917F
-:1012600008958091E301811109C00E94570C0E94EA
+:10126000089580911B02811109C00E94570C0E94B1
:10127000B40C8091E20084608093E20008951092A3
-:10128000E301089508950C945D220E94BB1B0E9407
-:1012900063220E945A0F0C94500842E061EC81E0F6
+:101280001B02089508950C94D9220E94371C0E94D5
+:10129000DF220E945A0F0C94500842E061EC81E07A
:1012A0000E94D10B42E061EC82E00E94D10B42E04F
:1012B00061EC83E00E94D10B42E161EC84E00C948C
-:1012C000D10B8091E601833009F455C030F48130B0
+:1012C000D10B80911E02833009F455C030F4813077
:1012D00071F0823009F48EC008958A3009F47AC022
:1012E0008B3009F460C0893009F09CC020C0809127
-:1012F000E501813A09F096C08091E800877F8093EC
-:10130000E8008091E9019091EA01892B21F460E1E4
+:1012F0001D02813A09F096C08091E800877F8093B3
+:10130000E8008091210290912202892B21F460E172
:1013100082E591E003C060E080E090E070E00E9430
:101320000D0B8091E8008B778093E8000895809101
-:10133000E501813209F076C08091E9019091EA01DE
+:101330001D02813209F076C0809121029091220233
:10134000009719F0039709F06DC08091E800877F3E
-:101350008093E8008091E80082FD05C08091E4015F
+:101350008093E8008091E80082FD05C080911C0226
:101360008111F8CF5FC08091F1008093620180917C
-:10137000E8008B7753C08091E501813A09F052C0B3
-:101380008091E9019091EA01892B09F04BC080918D
+:10137000E8008B7753C080911D02813A09F052C07A
+:101380008091210290912202892B09F04BC080911B
:10139000E800877F8093E8008091E80080FFFCCF21
-:1013A00080910C0136C08091E5018132D9F58091A0
-:1013B000E9019091EA01892BA9F58091E800877FE6
-:1013C0008093E8000E94060C8091E70180930C0155
-:1013D0000C94EA148091E501813221F58091E800B6
-:1013E000877F8093E8000E94060C8091E80180933B
-:1013F000630108958091E501813AA1F48091E800AC
+:1013A00080910C0136C080911D028132D9F5809167
+:1013B000210290912202892BA9F58091E800877F74
+:1013C0008093E8000E94060C80911F0280930C011C
+:1013D0000C94EA1480911D02813221F58091E8007D
+:1013E000877F8093E8000E94060C80912002809302
+:1013F0006301089580911D02813AA1F48091E80073
:10140000877F8093E8008091E80080FFFCCF809187
:1014100063018093F1008091E8008E778093E8006B
:101420000C94060C089584B7877F84BF0FB6F89498
@@ -325,9 +325,9 @@
:101440000FBE90E080E80FB6F8948093610090930F
:1014500061000FBE0E94A90F0E94570C0E94B40C9D
:101460008091E20084608093E20078940E943A0FB9
-:101470000E94AB0F82E091E00E94550F0E944B2228
-:101480008091E401853069F40E94791B8091E2012A
-:101490008823B1F30E94A71B882391F30E94AC0A12
+:101470000E94AB0F82E091E00E94550F0E94C722AC
+:1014800080911C02853069F40E94F51B80911A023C
+:101490008823B1F30E94231C882391F30E94AC0A95
:1014A000EFCF0E94B10FECCF292F33272330310526
:1014B000C9F064F42130310581F02230310509F0A2
:1014C00043C08DE690E02CEB33E042C02132310581
@@ -351,29 +351,29 @@
:1015E000F91EF182E08285E00FC00E94250C88235D
:1015F00021F30AC089918093F10001501109FFEF96
:10160000EF1AFF0ADACF80E0DF91CF911F910F919F
-:10161000FF90EF90DF90CF9008952091EB013091F3
-:10162000EC012617370748F06115710539F4209150
+:10161000FF90EF90DF90CF900895209123023091BA
+:1016200024022617370748F06115710539F4209117
:10163000E8002E772093E80001C0B90140E0611571
-:101640007105A9F12091E401222309F443C025305A
+:101640007105A9F120911C02222309F443C0253021
:1016500009F442C02091E80023FD40C02091E80039
:1016600022FD32C02091E80020FFE9CF4091F30035
:101670002091F20030E0342BFC01CF01611571059F
:1016800059F02830310540F481918093F100615088
:1016900071092F5F3F4FF1CF41E02830310509F04C
:1016A00040E02091E8002E772093E800C8CF411158
-:1016B000C9CF0AC08091E401882361F0853061F0D0
+:1016B000C9CF0AC080911C02882361F0853061F097
:1016C0008091E80083FD0AC08091E80082FFF2CF9C
:1016D00080E0089582E0089583E0089581E0089510
-:1016E0002091EB013091EC012617370748F0611586
+:1016E00020912302309124022617370748F0611514
:1016F000710539F42091E8002E772093E80001C0AD
-:10170000B901FC0120E06115710591F18091E401BE
+:10170000B901FC0120E06115710591F180911C0285
:10171000882309F440C0853009F43FC08091E80077
:1017200083FD3DC08091E80082FD2FC08091E800DC
:1017300080FFE9CF2091F3008091F20090E0922B9E
:101740006115710559F08830910540F4249120937A
:10175000F1003196615071090196F2CF21E00897AE
:1017600009F020E08091E8008E778093E800CBCFED
-:101770002111CCCF0AC08091E401882361F085302B
+:101770002111CCCF0AC080911C02882361F08530F2
:1017800061F08091E80083FD0AC08091E80082FF4B
:10179000F2CF80E0089582E0089583E0089581E02B
:1017A0000895982F973058F59093E900981739F0DD
@@ -382,31 +382,31 @@
:1017D000EB003091ED003D7F3093ED003091EB0058
:1017E00031603093EB007093EC002093ED00509348
:1017F000F0002091EE0027FF07C09F5FD3CF8F70CE
-:101800008093E90081E0089580E008958091E501EA
-:1018100087FF11C08091E80082FD05C08091E4013E
+:101800008093E90081E0089580E0089580911D02B1
+:1018100087FF11C08091E80082FD05C080911C0205
:101820008111F8CF11C08091E8008B770BC08091B7
-:10183000E401882349F08091E80080FFF8CF80918F
+:101830001C02882349F08091E80080FFF8CF809156
:10184000E8008E778093E80008952091E4003091BD
:10185000E50095E64091EC00842F817040FF22C0A6
-:101860008091E80080FD1CC08091E401882391F004
+:101860008091E80080FD1CC080911C02882391F0CB
:10187000853091F08091EB0085FD10C04091E4002F
:101880005091E5004217530729F39A01915011F73F
:1018900084E0089582E0089583E0089581E008954A
:1018A00080E008954091E80042FFDECF08950E9455
:1018B000C50C0E94CD0CE0EEF0E080818160808359
:1018C000E8EDF0E080818F77808319BCA7EDB0E070
-:1018D0008C918E7F8C9380818F7E80831092E30128
+:1018D0008C918E7F8C9380818F7E808310921B02EF
:1018E00008950F931F93CF93DF930E94C50C0E941E
:1018F000CD0CC8EDD0E088818F778883888180689F
-:10190000888388818F7D888319BC1092E4011092AE
-:10191000E0011092E2011092E10100EE10E0F80106
+:10190000888388818F7D888319BC10921C02109275
+:10191000180210921A021092190200EE10E0F8015B
:1019200080818B7F808388818160888342E060E052
:1019300080E00E94D10BE1EEF0E080818E7F808319
:10194000E2EEF0E080818160808380818860808326
:10195000F80180818E7F8083888180618883DF9118
:10196000CF911F910F910895E8EDF0E080818F7E77
:101970008083E7EDF0E080818160808384E082BF36
-:1019800081E08093E3010C94710CE8EDF0E080813C
+:1019800081E080931B020C94710CE8EDF0E0808103
:101990008E7F80831092E20008951092DA001092F8
:1019A000E10008951F920F920FB60F9211242F930A
:1019B0003F934F935F936F937F938F939F93AF93D7
@@ -415,20 +415,20 @@
:1019E0000E94390F8091DA0080FF1FC08091D800DB
:1019F00080FF1BC08091DA008E7F8093DA00809197
:101A0000D90080FF0DC080E189BD82E189BD09B4A4
-:101A100000FEFDCF81E08093E4010E94310905C002
-:101A200019BC1092E4010E943F098091E10080FFFF
+:101A100000FEFDCF81E080931C020E94310905C0C9
+:101A200019BC10921C020E943F098091E10080FFC6
:101A300019C08091E20080FF15C08091E2008E7F86
:101A40008093E2008091E20080618093E2008091C7
-:101A5000D80080628093D80019BC85E08093E401AF
+:101A5000D80080628093D80019BC85E080931C0276
:101A60000E9443098091E10084FF30C08091E20030
:101A700084FF2CC080E189BD82E189BD09B400FEEC
:101A8000FDCF8091D8008F7D8093D8008091E100B8
:101A90008F7E8093E1008091E2008F7E8093E20050
-:101AA0008091E20081608093E2008091E0018823D0
+:101AA0008091E20081608093E20080911802882397
:101AB00011F084E007C08091E30087FD02C081E05F
-:101AC00001C083E08093E4010E9445098091E10018
+:101AC00001C083E080931C020E9445098091E100DF
:101AD00083FF29C08091E20083FF25C08091E1004F
-:101AE000877F8093E10082E08093E4011092E0011F
+:101AE000877F8093E10082E080931C0210921802AD
:101AF0008091E1008E7F8093E1008091E2008E7FF3
:101B00008093E2008091E20080618093E20042E0F5
:101B100060E080E00E94D10B8091F00088608093AB
@@ -444,48 +444,48 @@
:101BB000CF91BF91AF919F918F917F916F915F91E5
:101BC0004F913F912F910F900FBE0F901F9018953E
:101BD0001F93CF93DF93CDB7DEB7AA970FB6F894D4
-:101BE000DEBF0FBECDBFE5EEF1E088E08E0F909135
+:101BE000DEBF0FBECDBFEDE1F2E088E08E0F909139
:101BF000F10091938E13FBCF0E9461098091E80060
-:101C000083FF1FC18091E5019091E601492F50E0CB
+:101C000083FF1FC180911D0290911E02492F50E059
:101C10004A30510508F015C1FA01EA5AFF4F0C94F9
-:101C2000F423803881F0823809F00BC18091E901FA
+:101C20007024803881F0823809F00BC18091210244
:101C30008F708093E9008091EB0085FB882780F905
-:101C40001092E90006C08091E1019091E2019111AA
+:101C40001092E90006C08091190290911A02911138
:101C500082609091E800977F9093E8008093F10074
:101C60001092F100C8C0282F2D7F09F0EAC0882308
-:101C700019F0823061F0E5C08091E701813009F010
-:101C8000E0C0933009F080E08093E2012BC08091A6
-:101C9000E701811127C08091E9018F7009F4D1C05B
+:101C700019F0823061F0E5C080911F02813009F0D7
+:101C8000E0C0933009F080E080931A022BC080916D
+:101C90001F02811127C0809121028F7009F4D1C0E9
:101CA0008093E9002091EB0020FF1CC0933021F4C9
:101CB0008091EB00806214C09091EB009061909352
:101CC000EB0021E030E0A90102C0440F551F8A95C6
:101CD000E2F74093EA001092EA008091EB008860FE
:101CE0008093EB001092E9008091E800877F86C026
-:101CF0008111A7C01091E7011F778091E3008078E0
+:101CF0008111A7C010911F021F778091E3008078A7
:101D0000812B8093E3008091E800877F8093E80037
:101D10000E94060C8091E80080FFFCCF8091E300D8
:101D200080688093E300111102C082E001C083E06B
-:101D30008093E40186C08058823008F082C0809190
-:101D4000E7019091E8018C3D53E0950779F583E038
+:101D300080931C0286C08058823008F082C0809157
+:101D40001F02909120028C3D53E0950779F583E0C6
:101D50008A838AE289834FB7F894DE01139620E0E4
:101D60003EE051E2E32FF0E050935700E49120FF72
:101D700003C0E295EF703F5FEF708E2F90E0EA3086
:101D800010F0C79601C0C0968D939D932F5F2431AC
:101D900049F74FBF8091E800877F8093E8006AE2AF
:101DA00070E0CE0101960E940D0B14C0AE014F5F92
-:101DB0005F4F6091E9010E94540ABC01892B09F42C
+:101DB0005F4F609121020E94540ABC01892B09F4F3
:101DC00040C09091E800977F9093E80089819A81C4
:101DD0000E94700B8091E8008B778093E80031C0FF
:101DE000803879F58091E800877F8093E8008091C2
-:101DF000E0018093F1008091E8008E778093E80005
-:101E00000E94060C1EC081111CC09091E701923007
-:101E1000C0F48091E800877F8093E8009093E00110
-:101E20000E94060C8091E001811106C08091E300C0
-:101E300087FD02C081E001C084E08093E4010E943C
+:101DF00018028093F1008091E8008E778093E800CC
+:101E00000E94060C1EC081111CC090911F029230CE
+:101E1000C0F48091E800877F8093E80090931802D7
+:101E20000E94060C80911802811106C08091E30087
+:101E300087FD02C081E001C084E080931C020E9403
:101E40004D098091E80083FF0AC08091E800877FF8
:101E50008093E8008091EB0080628093EB00AA966B
:101E60000FB6F894DEBF0FBECDBFDF91CF911F91AB
-:101E700008950895CF938091E4018823A1F0C09143
+:101E700008950895CF9380911C028823A1F0C0910A
:101E8000E900CF709091EC00892F817090FD80E87F
:101E9000C82B1092E9008091E80083FD0E94E80DB4
:101EA000CF70C093E900CF9108959093690180931A
@@ -499,23 +499,23 @@
:101F20000994089520916401309165018217930707
:101F300071F09093650180936401E0916801F091E4
:101F40006901309721F00084F185E02D099408950E
-:101F500008950C94A80F0E94C11B0E9468040C9461
-:101F6000871CCF92DF92EF92FF920F931F93CF9334