summaryrefslogtreecommitdiffstats
path: root/keyboard/ergodox_ez
diff options
context:
space:
mode:
Diffstat (limited to 'keyboard/ergodox_ez')
-rw-r--r--keyboard/ergodox_ez/keymaps/techtomas/keymap.c128
-rw-r--r--keyboard/ergodox_ez/keymaps/techtomas/readme.md25
-rw-r--r--keyboard/ergodox_ez/keymaps/techtomas/techtomas.hex1202
3 files changed, 691 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..31c367a801 100644
--- a/keyboard/ergodox_ez/keymaps/techtomas/readme.md
+++ b/keyboard/ergodox_ez/keymaps/techtomas/readme.md
@@ -6,28 +6,39 @@ 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 modes 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.
+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.
## 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
+:101F500008950C94A80F0E943D1C0E9468040C94E4
+:101F6000031DCF92DF92EF92FF920F931F93CF93B7
:101F7000DF93CDB7DEB72B970FB6F894DEBF0FBE59
:101F8000CDBF0E9480048BE6C82E81E0D82E00E0F1
:101F900010E0E02E802F0E946E05F60141916F0146
:101FA000F42EF826B1F40F5F1F4F0E30110589F79C
-:101FB0008FEF89838A831B820E94CA1B8160782FDE
+:101FB0008FEF89838A831B820E94461C8160782F61
:101FC0009D838C8349815A816B818D810E9454103D
-:101FD00040C09091CD0191FF04C08B870E94740591
+:101FD00040C09091050291FF04C08B870E94740558
:101FE0008B8520E030E04F2D50E0922FBA01022E79
:101FF00002C0759567950A94E2F760FF24C02E83AE
:10200000EF8221E030E0690102C0CC0CDD1C9A9522
:10201000E2F790E08C219D21892B09F420E02887AC
-:102020000E94CA1B8160782F9A8789874E815F81C1
+:102020000E94461C8160782F9A8789874E815F8144
:102030