summaryrefslogtreecommitdiffstats
path: root/keyboard/ergodox_ez/keymaps
diff options
context:
space:
mode:
Diffstat (limited to 'keyboard/ergodox_ez/keymaps')
-rw-r--r--keyboard/ergodox_ez/keymaps/mpiechotka/keymap.c271
-rw-r--r--keyboard/ergodox_ez/keymaps/mpiechotka/mpiechotka.hex1493
-rw-r--r--keyboard/ergodox_ez/keymaps/mpiechotka/readme.md6
3 files changed, 1770 insertions, 0 deletions
diff --git a/keyboard/ergodox_ez/keymaps/mpiechotka/keymap.c b/keyboard/ergodox_ez/keymaps/mpiechotka/keymap.c
new file mode 100644
index 0000000000..178c290660
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/mpiechotka/keymap.c
@@ -0,0 +1,271 @@
+#include "ergodox_ez.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "keymap_extras/keymap_colemak.h"
+
+enum {
+ BASE = 0,
+ BASE_CM,
+ SYMB,
+ MACR
+};
+
+enum {
+ LWIN = 1,
+ PC1,
+ PC2,
+ PC3,
+ PC4,
+ DL_BASE,
+ DL_BASE_CM,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0a: Basic layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | Esc | A | R | S | T | D |------| |------| H | N | E | I | O | ' |
+ * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
+ * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | LAlt | LGui | | LAlt | RAlt |
+ * ,------|------|------| |------+--------+------.
+ * | |Backsp| Home | | PgUp | | |
+ * | Space|ace/ |------| |------| Tab/ |Enter/|
+ * | /Shft|Ctrl | 1) | | 2) | Ctrl |Shift |
+ * `--------------------' `----------------------'
+ *
+ * 1) End/L1
+ * 2) PgDown/L2
+ */
+[BASE] = KEYMAP( // layer 0 : default
+ // left hand
+ KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
+ KC_DELT, KC_Q, KC_W, KC_F, KC_P, KC_G, TG(SYMB),
+ KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
+ LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT,
+ KC_LALT, F(LWIN),
+ KC_HOME,
+ SFT_T(KC_SPC),CTL_T(KC_BSPC),LT(SYMB, KC_END),
+ // right hand
+ KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ TG(SYMB), KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
+ KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
+ MEH_T(KC_NO),KC_K, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
+ KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, LT(SYMB,KC_NO),
+ KC_LALT, KC_RALT,
+ KC_PGUP,
+ LT(MACR,KC_PGDN),CTL_T(KC_TAB), SFT_T(KC_ENT)
+ ),
+/* Keymap 0b: Basic layer (Colemak keycodes or QWERTY)
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | Esc | A | R | S | T | D |------| |------| H | N | E | I | O | ' |
+ * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
+ * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | LAlt | LGui | | LAlt | RAlt |
+ * ,------|------|------| |------+--------+------.
+ * | |Backsp| Home | | PgUp | | |
+ * | Space|ace/ |------| |------| Tab/ |Enter/|
+ * | /Shft|Ctrl | 1) | | 2) | Ctrl |Shift |
+ * `--------------------' `----------------------'
+ *
+ * 1) End/L1
+ * 2) PgDown/L2
+ */
+[BASE_CM] = KEYMAP( // layer 0 : default
+ // left hand
+ KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
+ KC_DELT, CM_Q, CM_W, CM_F, CM_P, CM_G, TG(SYMB),
+ KC_ESC, CM_A, CM_R, CM_S, CM_T, CM_D,
+ KC_LSFT, CM_Z, CM_X, CM_C, CM_V, CM_B, ALL_T(KC_NO),
+ LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT,
+ KC_LALT, F(LWIN),
+ KC_HOME,
+ SFT_T(KC_SPC),CTL_T(KC_BSPC),LT(SYMB, KC_END),
+ // right hand
+ KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ TG(SYMB), CM_J, CM_L, CM_U, CM_Y, KC_P, /*CM_SCLN*/ KC_BSLS,
+ CM_H, CM_N, CM_E, CM_I, CM_O, KC_QUOT,
+ MEH_T(KC_NO),CM_K, CM_M, CM_COMM,CM_DOT, CTL_T(CM_SLSH), KC_RSFT,
+ KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, LT(SYMB,KC_NO),
+ KC_LALT, KC_RALT,
+ KC_PGUP,
+ LT(MACR,KC_PGDN),CTL_T(KC_TAB), SFT_T(KC_ENT)
+ ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | . | 0 | = | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// SYMBOLS
+[SYMB] = KEYMAP(
+ // left hand
+ KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
+ KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
+ KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,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_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
+ KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
+ KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
+ KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+/* Keymap 2: Macros
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | DLa | DLb | | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | PC1 | PC2 | PC3 | PC4 | |------| |------| | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// MACROS
+[MACR] = KEYMAP(
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, F(DL_BASE),F(DL_BASE_CM),KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, F(PC1), F(PC2), F(PC3), F(PC4), KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 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,
+ // right hand
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 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
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [LWIN] = ACTION_MACRO(LWIN),
+ [PC1] = ACTION_MACRO(PC1),
+ [PC2] = ACTION_MACRO(PC2),
+ [PC3] = ACTION_MACRO(PC3),
+ [PC4] = ACTION_MACRO(PC4),
+ [DL_BASE] = ACTION_DEFAULT_LAYER_SET(BASE),
+ [DL_BASE_CM] = ACTION_DEFAULT_LAYER_SET(BASE_CM)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+ case LWIN:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ unregister_code(KC_RSFT);
+ register_code(KC_LGUI);
+ } else {
+ unregister_code(KC_LGUI);
+ }
+ case PC1:
+ if (!record->event.pressed) {
+ return MACRO(T(SLCK), T(SLCK), T(1), T(ENT), END);
+ }
+ case PC2:
+ if (!record->event.pressed) {
+ return MACRO(T(SLCK), T(SLCK), T(2), T(ENT), END);
+ }
+ case PC3:
+ if (!record->event.pressed) {
+ return MACRO(T(SLCK), T(SLCK), T(3), T(ENT), END);
+ }
+ case PC4:
+ if (!record->event.pressed) {
+ return MACRO(T(SLCK), T(SLCK), T(4), T(ENT), END);
+ }
+ }
+ return MACRO_NONE;
+}
+
+// Runs just one time when the keyboard initializes.
+void * matrix_init_user(void) {
+ return NULL;
+};
+
+// Runs constantly in the background, in a loop.
+void * matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ // TODO: Make this relevant to the ErgoDox EZ.
+ case SYMB:
+ ergodox_right_led_1_on();
+ break;
+ case MACR:
+ ergodox_right_led_2_on();
+ break;
+ default:
+ // none
+ break;
+ }
+};
diff --git a/keyboard/ergodox_ez/keymaps/mpiechotka/mpiechotka.hex b/keyboard/ergodox_ez/keymaps/mpiechotka/mpiechotka.hex
new file mode 100644
index 0000000000..4bb17147f0
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/mpiechotka/mpiechotka.hex
@@ -0,0 +1,1493 @@
+:100000000C9476070C94BA070C94BA070C94BA07B0
+:100010000C94BA070C94BA070C94BA070C94BA075C
+:100020000C94BA070C94BA070C9405130C94D713CC
+:100030000C94BA070C94BA070C94BA070C94BA073C
+:100040000C94BA070C94B12C0C94BA070C94BA0710
+:100050000C94BA070C94A9220C94BA070C94BA0712
+:100060000C94BA070C94BA070C94BA070C94BA070C
+:100070000C94BA070C94BA070C94BA070C94BA07FC
+:100080000C94BA070C94BA070C94BA070C94BA07EC
+:100090000C94BA070C94BA070C94BA070C94BA07DC
+:1000A0000C94BA070C94BA070C94BA07441466145B
+:1000B000541566145415AB14CE1454152315361567
+:1000C0007D187D18AC18AC18EF182D19461B461B6F
+:1000D0004619461B471A471A1A1B461B461B311B5B
+:1000E0000147024701470247012102210128022856
+:1000F0000001470247014702470120022001280270
+:1001000028000147024701470247011F021F01283B
+:100110000228000147024701470247011E021E0153
+:1001200028022800000001C002C003C004C005C0AE
+:10013000018C028C2E004C002900E1003582000069
+:100140001E00140004001D0034004D821F001A0020
+:1001500015001B00E1042A712000090016000600AA
+:1001600050002C7221001300170019004F004A00A4
+:1001700022000A00070005000000E20050000254BF
+:100180000000007F000001204F00025400000077B3
+:100190000000E20023000D000B000E000000E6004E
+:1001A00024000F001100100052004B002500180021
+:1001B000080036005100287226001C000C00370091
+:1001C0002F002B71270033001200387130004E834E
+:1001D0002D0031003400E500008200002E004C00AC
+:1001E0002900E100358200001E00140004001D00FB
+:1001F00034004D821F001A0016001B00E1042A7112
+:10020000200008000700060050002C722100150095
+:10021000090019004F004A00220017000A000500DB
+:100220000000E200500002540000007F00000120A6
+:100230004F000254000000770000E20023001C0081
+:100240000B0011000000E600240018000D00100053
+:1002500052004B0025000C000E00360051002872A1
+:10026000260012000F0037002F002B71270013000B
+:100270003300387130004E832D0031003400E5002A
+:1002800000820000010001000100010001000000E7
+:100290003A001E0220022202010001003B001F0260
+:1002A00021022302010001003C002F0226022F0040
+:1002B000010001003D003002270230000100010072
+:1002C0003E0031023500350200000100010001004E
+:1002D0000000010000000100010001000000010019
+:1002E000000001003F005200510024020000010004
+:1002F0004000240021001E000100010041002500F3
+:1003000022001F00370001004200260023002000C9
+:1003100027000100430025022E0231002E000100BB
+:100320004400450001000100010000000000000041
+:100330000000000000000000000006200220000075
+:100340000000010000000720032000000000010061
+:100350000000000004200000000001000000000078
+:100360000520000000000100000000000000000067
+:10037000000001000000000000000000000001007B
+:10038000000000000000000000000100000000006C
+:10039000000000000000010000000000000000005C
+:1003A000000001000000000000000000000001004B
+:1003B000000000000000000000000100000000003C
+:1003C000000000000000010000000000000000002C
+:1003D000000000000A002530313662003A20002576
+:1003E000303258000A722F632030313233343536C0
+:1003F0003738394142434445460A000A0025303225
+:100400005800626F756E6365213A20006C656674F2
+:1004100020736964652061747461636865640A00AF
+:100420006C6566742073696465206E6F74207265F4
+:1004300073706F6E64696E670A00747279696E67B3
+:1004400020746F207265736574206D637032333071
+:1004500031380A005B735D004B6579626F617264CD
+:100460002073746172742E0A005B575D005B535DEC
+:10047000005B525D005B445D005B435D001603451D
+:1004800000720067006F0044006F00780020004594
+:10049000005A00000016034500720067006F004418
+:1004A000006F007800200045005A00000004030996
+:1004B0000409028D00050100A0FA090400000103EF
+:1004C000010100092111010001223F0007058103FC
+:1004D00008000A09040100010301020009211101B9
+:1004E0000001224D000705820308000A09040200EA
+:1004F0000103000000092111010001223600070557
+:10050000830308000A090403000203000000092114
+:1005100011010001222000070584032000010705C6
+:100520000403200001090404000103000000092164
+:100530001101000122390007058503100001120195
+:10054000100100000008EDFE071301000102000188
+:1005500005010906A101050719E029E71500250194
+:100560009508750181020508190129059505750190
+:10057000910295017503910105071900297715006E
+:100580002501957875018102C00631FF0974A1012A
+:100590000975150025FF952075088102097615005B
+:1005A00025FF952075089102C005010980A10185EC
+:1005B0000216010026B7001A01002AB7007510952F
+:1005C000018100C0050C0901A10185031601002667
+:1005D0009C021A01002A9C02751095018100C00539
+:1005E000010902A1010901A1000509190129051547
+:1005F00000250195057501810295017503810105AD
+:1006000001093009311581257F9502750881060998
+:10061000381581257F950175088106050C0A380279
+:100620001581257F950175088106C0C00501090661
+:10063000A101050719E029E71500250195087501B5
+:1006400081029501750881010508190129059505A3
+:10065000750191029501750391010507190029FFA4
+:10066000150025FF950675088100C00A0025303267
+:100670005820006B6579626F6172645F7265706F9C
+:1006800072743A20000A0025303258006B65796296
+:100690006F6172645F7365745F6C65643A200064B7
+:1006A000656C5F6B65795F6269743A2063616E2780
+:1006B000742064656C3A20253032580A0061646405
+:1006C0005F6B65795F6269743A2063616E2774209D
+:1006D0006164643A20253032580A00646F6E652EDA
+:1006E0000A00626F6F676D61676963207363616E93
+:1006F0003A202E2E2E2000290A002575002F0025D5
+:1007000075005D2800256400200025640020002578
+:10071000640020002564007C0025303258006D6F95
+:100720007573656B6579205B62746E7C78207920C7
+:100730007620685D287265702F61636C293A205BB2
+:10074000006D6B5F776865656C5F74696D655F747C
+:100750006F5F6D6178203D2025640A006D6B5F77C7
+:100760006865656C5F6D61785F7370656564203D79
+:100770002025640A006D6B5F74696D655F746F5F3F
+:100780006D6178203D2025640A006D6B5F6D617896
+:100790005F7370656564203D2025640A006D6B5FA2
+:1007A000696E74657276616C203D2025640A006D67
+:1007B0006B5F64656C6179203D2025640A006D6B78
+:1007C0005F776865656C5F74696D655F746F5F6D99
+:1007D0006178203D2025640A006D6B5F7768656550
+:1007E0006C5F6D61785F7370656564203D20256482
+:1007F0000A006D6B5F74696D655F746F5F6D617822
+:10080000203D2025640A006D6B5F6D61785F737019
+:10081000656564203D2025640A006D6B5F696E7418
+:10082000657276616C203D2025640A006D6B5F6403
+:10083000656C6179203D2025640A000A0025750059
+:10084000363A20776865656C5F74696D655F746FB3
+:100850005F6D61783A20000A00257500353A2077EF
+:100860006865656C5F6D61785F73706565643A207B
+:10087000000A00257500343A2074696D655F746F55
+:100880005F6D61783A20000A00257500333A206DCB
+:1008900061785F73706565643A20000A0025750011
+:1008A000323A20696E74657276616C286D73293AEC
+:1008B00020000A00257500313A2064656C617928B2
+:1008C0002A31306D73293A20000A092D2056616CB7
+:1008D000756573202D0A004D3E004D25643E2000B5
+:1008E0003F007365742064656661756C740A00432B
+:1008F0003E200077686572652064656C74613A20FB
+:10090000637572736F723D25642C20776865656C22
+:100910003D25640A53656520687474703A2F2F650D
+:100920006E2E77696B6970656469612E6F72672FCF
+:1009300077696B692F4D6F7573655F6B6579730AA6
+:10094000000A092D204D6F7573656B6579202D0A9E
+:100950004553432F713A09717569740A313A096434
+:10096000656C6179282A31306D73290A323A096938
+:100970006E74657276616C286D73290A333A096D5D
+:1009800061785F73706565640A343A0974696D65EE
+:100990005F746F5F6D61780A353A09776865656CD9
+:1009A0005F6D61785F73706565640A363A097768D0
+:1009B00065656C5F74696D655F746F5F6D61780A02
+:1009C0000A703A097072696E742076616C7565738D
+:1009D0000A643A097365742064656661756C7473A2
+:1009E0000A75703A092B310A646F776E3A092D3116
+:1009F0000A706775703A092B31300A7067646F7737
+:100A00006E3A092D31300A0A7370656564203D2005
+:100A100064656C7461202A206D61785F7370656510
+:100A200064202A2028726570656174202F20746903
+:100A30006D655F746F5F6D6178290A003F004D3E00
+:100A40002000433E20004C25640A000A092D204363
+:100A50006F6E736F6C65202D0A4553432F713A09F1
+:100A6000717569740A6D3A096D6F7573656B657997
+:100A70000A000A092D204D61676963202D0A643A36
+:100A80000964656275670A783A096465627567206A
+:100A90006D61747269780A6B3A09646562756720E2
+:100AA0006B6579626F6172640A6D3A09646562759B
+:100AB00067206D6F7573650A763A0976657273699A
+:100AC0006F6E0A733A097374617475730A633A0935
+:100AD000636F6E736F6C65206D6F64650A302D34C3
+:100AE0003A096C61796572302D34284631302D46D3
+:100AF00034290A506175733A09626F6F746C6F61C3
+:100B00006465720A653A09656570726F6D0A6E3ABE
+:100B1000094E4B524F0A7A3A09736C656570204C46
+:100B2000454420746573740A000A002575002E6E12
+:100B30006B726F3A20000A002575002E7377617082
+:100B40005F6261636B736C6173685F6261636B7337
+:100B5000706163653A20000A002575002E73776185
+:100B6000705F67726176655F6573633A20000A00A3
+:100B70002575002E6E6F5F6775693A20000A0025A3
+:100B800075002E737761705F72616C745F72677548
+:100B9000693A20000A002575002E737761705F6C3A
+:100BA000616C745F6C6775693A20000A00257500F6
+:100BB0002E636170736C6F636B5F746F5F636F6ED6
+:100BC00074726F6C3A20000A002575002E737761ED
+:100BD000705F636F6E74726F6C5F636170736C6F64
+:100BE000636B3A20000A0025303258006B65796D3E
+:100BF00061705F636F6E6669672E7261773A20007D
+:100C00000A002575002E6D6F7573653A20000A0085
+:100C10002575002E6B6579626F6172643A20000A57
+:100C2000002575002E6D61747269783A20000A0003
+:100C30002575002E656E61626C653A20000A0025FC
+:100C40003032580064656275675F636F6E6669670E
+:100C50002E7261773A20000A00257500646566618E
+:100C6000756C745F6C617965723A20003F004E4B81
+:100C7000524F3A206F66660A004E4B524F3A206F31
+:100C80006E0A0074696D65725F636F756E743A20E9
+:100C90002530346C580A006B6579626F6172645F4D
+:100CA0006E6B726F3A2025580A006B6579626F612E
+:100CB00072645F69646C653A2025580A006B657937
+:100CC000626F6172645F70726F746F636F6C3A20F1
+:100CD00025580A00686F73745F6B6579626F617283
+:100CE000645F6C65647328293A2025580A000A0954
+:100CF0002D20537461747573202D0A004743433AC5
+:100D000020342E392E33204156522D4C4942433A3D
+:100D100020312E382E31204156525F415243483AFD
+:100D200020617672350A004F5054494F4E533A2095
+:100D30004C55464120424F4F544D41474943204D69
+:100D40004F5553454B45592045585452414B4559F1
+:100D500020434F4E534F4C4520434F4D4D414E4441
+:100D6000204E4B524F203531320A004255494C44F7
+:100D70003A20333064623330302D646972747920E4
+:100D80002830373A35373A3335204A616E203237CA
+:100D90002032303136290A005649443A203078460C
+:100DA000454544284572676F446F7820455A29208D
+:100DB0005049443A20307831333037284572676FD4
+:100DC000446F7820455A29205645523A20307830D1
+:100DD0003030310A00444553433A20742E6D2E6B57
+:100DE0002E206B6579626F617264206669726D771F
+:100DF00061726520666F72204572676F646F780A52
+:100E0000000A092D2056657273696F6E202D0A0045
+:100E10000A6D6F7573653A206F66660A000A6D6F1A
+:100E20007573653A206F6E0A000A6B6579626F61AF
+:100E300072643A206F66660A000A6B6579626F61B8
+:100E400072643A206F6E0A000A6D61747269783AB2
+:100E5000206F66660A000A6D61747269783A206FC5
+:100E60006E0A000A64656275673A206F6E0A000AAE
+:100E700064656275673A206F66660A000A0A626FE7
+:100E80006F746C6F616465722E2E2E2000433E20BD
+:100E9000006565636F6E6669673A0A00536C656545
+:100EA00070204C454420746573740A0000000000F3
+:100EB00000000000000000010204060A0F17202CA9
+:100EC0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9A5
+:100ED000DAC7B39D87715D4A3A2C20170F0A0604C2
+:100EE00002010000000000000000000011241FBEED
+:100EF000CFEFDAE0DEBFCDBF04B603FE24C08091A1
+:100F0000F9019091FA01A091FB01B091FC018730A9
+:100F1000904BA740B04BB9F41092F9011092FA012E
+:100F20001092FB011092FC0114BE84B7877F84BF2E
+:100F300088E10FB6F89480936000109260000FBEB5
+:100F4000E0E0FFE3099511E0A0E0B1E0EEEFFCE5A1
+:100F500002C005900D92AA33B107D9F711E0AAE3B8
+:100F6000B1E001C01D92A93FB107E1F70E943D1019
+:100F70000C947D2E0C940000FF93EF93E0913A01C6
+:100F8000F0913B01309709F00995EF91FF91089599
+:100F9000FC018591803011F0EFDFFBCF0895FF2732
+:100FA000E0E230E247FF0CC0419597FF09C0EDE257
+:100FB0006095709580959095611D711D811D911DA5
+:100FC00027FF02C0219530E350E2AA27660F771F62
+:100FD000881F991FAA1FA41710F0A41B63955A9588
+:100FE000A9F7AA3008F0A95FA05DAF93F39561154A
+:100FF00071058105910541F7ED3211F4EF93F395F9
+:10100000F21718F43F93F395FBCF8F91B5DFFA9564
+:10101000E1F70895E991F9918591803021F08532C9
+:1010200019F0AADFF9CF089520E0E89455915532E0
+:10103000C1F3503311F4689455915A3348F4505326
+:1010400090F3220F022E220F220F200D250FF4CF36
+:101050000EF4219589919991533619F3533729F15B
+:10106000533559F1BC0188279927E8945C3621F45F
+:101070008991999168945591543639F446EF7EF0F0
+:1010800077FF0DC08FEF9FEF0AC055374AE039F068
+:10109000583540E121F0523642E009F00895FF93BF
+:1010A000EF937DDFEF91FF91B7CFFF93EF93FC01BB
+:1010B00081918030B9F360DFFBCFFF93EF9368DF5E
+:1010C000F1CFDF93CF93CDB7DEB72596A3DFCF91D6
+:1010D000DF910895CF93DF93EC01623039F128F46A
+:1010E000662349F0613091F02DC0643029F108F198
+:1010F000653029F127C08A81882321F085EE0E947E
+:101100001A1720C085EE0E94E2171CC08A8188232E
+:1011100051F085EE0E941A1785EE0E94E21783EEC9
+:101120000E941A1703C083EE0E94E2178A81882367
+:1011300061F08A81882361F08A81882361F08A8145
+:10114000882361F080E090E00BC083E191E008C06B
+:1011500082E091E005C081EF90E002C080EE90E077
+:10116000DF91CF91089580E090E008956091BC01F7
+:101170007091BD018091BE019091BF010E94A82194
+:1011800056985E9825982D9826982E9827982F98EF
+:10119000823019F0833021F00895259A2D9A089510
+:1011A000269A2E9A089586EB98E0892B11F00E94DA
+:1011B000B60880E090E0089556985E9825982D989E
+:1011C00026982E9827982F988FEF90E0909389007B
+:1011D0008093880090938B0080938A0090938D0079
+:1011E00080938C00259A2D9A2FEF80E792E0215072
+:1011F00080409040E1F700C00000269A2E9A2FEF21
+:1012000080E792E0215080409040E1F700C000006C
+:10121000279A2F9A2FEF80E792E02150804090404C
+:10122000E1F700C0000025982D982FEF80E792E0AD
+:10123000215080409040E1F700C0000026982E9891
+:101240002FEF80E792E0215080409040E1F700C00E
+:10125000000027982F9856985E9825982D982698E4
+:101260002E9827982F98089589EA8093800089E026
+:101270008093810024982C983F988AB18F748AB902
+:101280006E98479A8BB1806B8BB9769A0E94DC0876
+:1012900083EB98E0892B11F00E94B30880E090E086
+:1012A000089580E28093000180913C0181110EC07D
+:1012B0000E94A00981E080933C012FEF83ED90E331
+:1012C000215080409040E1F700C0000080E40E947F
+:1012D000A6098093000181112EC00E94D00980933D
+:1012E0000001811128C00E94D00980930001811162
+:1012F00022C08FE30E94D0098093000181111BC09E
+:101300000E94C80980E40E94A6098093000181110F
+:1013100012C08CE00E94D0098093000181110BC0A3
+:101320000E94D00980930001811105C08FE30E94C3
+:10133000D009809300010E94C8098091000108959E
+:101340001092B9008AE08093B800089594EA9093CF
+:10135000BC009091BC0097FFFCCF9091B900987FA2
+:10136000983021F0903111F081E008958093BB0016
+:1013700084E88093BC008091BC0087FFFCCF809103
+:10138000B900887F883111F0803471F780E00895CA
+:1013900084E98093BC008091BC0084FDFCCF08955B
+:1013A0008093BB0084E88093BC008091BC0087FFE1
+:1013B000FCCF9091B900987F81E0983209F480E0E9
+:1013C000089584E88093BC008091BC0087FFFCCF27
+:1013D0008091BB00089580910001811115C080E4C7
+:1013E0000E94A6098093000181110CC082E10E9435
+:1013F000D00980930001811105C08FEF0E94D009B0
+:10140000809300010E94C80984B1807F84B985B1AE
+:10141000807F85B98AB1837F8AB98BB1837F8BB98D
+:101420003E98469808950E945109809300010E94B9
+:10143000EB0980B38C7080BB81B3836F81BBAEE35B
+:10144000B1E0ECE4F1E08EE08E0F11921D928E136C
+:10145000FCCF84E399E0892B11F00C9434090895B2
+:101460009F92AF92BF92CF92DF92EF92FF920F9333
+:101470001F93CF93DF93809100018823E1F0809147
+:101480003D018F5F80933D01811115C08AE394E097
+:101490000E94C8070E94510980930001882329F007
+:1014A00080E294E00E94C80706C08CE094E00E94AD
+:1014B000C8070E94DC080EE311E0C0E0D0E0BB24C6
+:1014C000B39482E0A82ECC24C394D12C2DEFE22E2D
+:1014D00023E0F22EC730D10500F580910001811183
+:1014E00064C080E40E94A60980930001811112C0AB
+:1014F00082E10E94D0098093000181110BC0C601D6
+:101500000C2E01C0880F0A94EAF780950E94D0093A
+:10151000809300010E94C80948C0CA30A1F028F495
+:10152000C83059F0C93061F005C0CC3089F070F096
+:10153000CD3089F0209A289810C0219A29980DC0A2
+:10154000229A2A980AC0239A2B9807C0529A01C05F
+:10155000539A5B9802C03E9A469890EA9A95F1F7A2
+:101560009FB1799902C082E001C080E091709B2513
+:10157000982B7C9902C084E001C080E0892B7D9982
+:1015800002C038E001C030E0832B7E9902C020E128
+:1015900001C020E0822B9FB19095991F9927991F38
+:1015A0009295990F907E892B10C080910001811136
+:1015B00074C080E40E94A60980930001882309F486
+:1015C00059C0912C0E94C809892DF8019081981763
+:1015D00039F1808380910101882301F18091D70145
+:1015E00080FF04C082E094E00E94C8078091D70188
+:1015F00080FF0CC0809101011F928F93FF92EF92A8
+:101600000E9461080F900F900F900F908091D7016A
+:1016100080FF04C08BEF93E00E94C807A0920101F5
+:101620000E94EB0921960F5F1F4FCE30D10509F0C4
+:1016300051CF809101018823B1F081508093010145
+:10164000882339F08FE99FE00197F1F700C000008F
+:101650000AC0ACE4B1E0EEE3F1E0CF01825F91912A
+:101660009D938E13FCCF83ED98E0892BC1F00E94EF
+:10167000D30815C083E10E94D00980930001811135
+:10168000A0CF81E40E94A60980930001811199CF27
+:101690000E94E109982E909495CF80E096CF81E04A
+:1016A000DF91CF911F910F91FF90EF90DF90CF903E
+:1016B000BF90AF909F900895E82FF0E0E45BFE4F5D
+:1016C00080810895CF92DF92EF92FF920F931F9344
+:1016D000CF93DF9384EE93E00E94C8078CE4E82E5A
+:1016E00081E0F82EC0E0D0E09FEDC92E93E0D92E26
+:1016F00006ED13E0DF93CF93DF92CF920E94610853
+:101700008CED93E00E94C807F70181917F0190E082
+:101710000E940E229F938F931F930F930E94610844
+:1017200084ED93E00E94C80721968DB79EB7089676
+:101730000FB6F8949EBF0FBE8DBFCE30D105D1F647
+:10174000DF91CF911F910F91FF90EF90DF90CF909D
+:1017500008958B3B910578F4883A910540F5853AD8
+:101760009105D0F48430910508F0B1C08130910525
+:1017700009F4ADC06BC0803E910508F467C0883E97
+:10178000910508F4A4C09C01205F31092031310586
+:1017900008F05CC090650895853A910509F459C038
+:1017A000863A910509F058C082E890E40895883A95
+:1017B000910509F454C0893A910509F453C08A3A55
+:1017C000910509F452C08B3A910509F451C08C3A45
+:1017D000910509F450C08D3A910509F44FC0803B42
+:1017E000910509F44EC08E3A910509F44DC08F3A27
+:1017F000910509F44CC0813B910509F44BC0823B33
+:10180000910509F44AC0833B910509F449C0843B22
+:10181000910509F448C0853B910509F447C0863B12
+:10182000910509F446C0873B910509F445C0883B02
+:10183000910509F444C0893B910509F443C08A3BF2
+:10184000910509F442C080E094E4089580E090E0BE
+:10185000089581E890E4089583E890E4089582EE85
+:1018600094E4089589EE94E408958AEE94E408954A
+:1018700085EB94E4089586EB94E4089587EB94E473
+:1018800008958CEC94E408958DEC94E4089583E835
+:1018900095E408958AE895E4089582E995E4089529
+:1018A00084E995E4089581E296E4089583E296E45C
+:1018B000089584E296E4089585E296E4089586E228
+:1018C00096E4089587E296E408958AE296E40895FE
+:1018D000089596E0799FF001112494E5899FE00D29
+:1018E000F11D1124E60FF11DEE0FFF1FEC5CFE4F02
+:1018F000859194910895880F991FFC01EC55F04053
+:10190000859194910895880F991FFC01EC5DFE4F1D
+:1019100085919491089526E0729FF001112444E589
+:10192000849FE00DF11D1124E60FF11DEE0FFF1F46
+:10193000EC5CFE4F859194919C013A9521154FE105
+:10194000340708F41AC13F512115304120F49F702B
+:101950000E94830C08959C0130532115304118F4E6
+:101960009927906C0895811520E5920769F40E94EB
+:10197000681B4FEF84E39CE0415080409040E1F7CA
+:1019800000C000000C94CE22813020E5920731F493
+:101990008091D70181608093D70108959C013055D3
+:1019A0002115304108F051C0292F33272F703327DC
+:1019B00021303105D9F4AC014370552702C0220F04
+:1019C000331F4A95E2F73C68AC0164E0440F551FB1
+:1019D0006A95E1F744275370242B352B73E0880F69
+:1019E000991F7A95E1F7807699271DC0223031053D
+:1019F00029F4982F8827816F906A08952330310544
+:101A0000A9F4AC014370552721E030E002C0220F59
+:101A1000331F4A95E2F73C6843E0880F991F4A95C7
+:101A2000E1F7807E9770822B932B08952430310547
+:101A3000E1F4AC014370552721E030E002C0220FF1
+:101A4000331F4A95E2F73A68E7CF9C0130572115DA
+:101A5000304118F49F70906208959C013058211510
+:101A6000304118F49F70906A0895803E9105E0F42B
+:101A7000803C910558F58133910509F46FC048F415
+:101A80008932910509F463C08A32910509F46DC069
+:101A900072C089339105E9F082389105D1F0853320
+:101AA000910509F44DC067C0833E910581F138F47A
+:101AB000803E9105B9F0823E9105D9F05CC0863E2A
+:101AC000910561F1873E9105A1F155C00E947B0C03
+:101AD00008952091EA0120FD02C021FF4CC080EE54
+:101AE00090E049C08091EA0180FFF9CF89E390E05E
+:101AF00042C08091EA0182FF0EC08091EA0184FF1A
+:101B000003C080E090E037C083EE90E034C0809165
+:101B1000EA0182FFF2CF82EE90E02DC08091EA01CF
+:101B200083FF0BC08091EA0184FDEBCF87EE90E04C
+:101B300022C08091EA0183FFF5CF86EE90E01BC0C2
+:101B40008091EA0185FF07C089E290E014C080918E
+:101B5000EA0185FFF9CF85E390E00DC08091EA01AD
+:101B600086FF07C08AE290E006C08091EA0186FF06
+:101B7000F9CF81E390E00E94A90B08950895809128
+:101B80006D0108959FB7F89410925C019FBF9091EA
+:101B9000F001943009F057C09091E9009F703091A6
+:101BA000EC00232F217030FD20E8922B24E02093BD
+:101BB000E9002091EB0020FF43C02091EE0027FFB9
+:101BC0003FC020915A01222321F02091E80025FFF7
+:101BD00037C010925A0126E03091E80035FD15C05B
+:101BE0003091F001343061F53091EB0035FD28C0C3
+:101BF000215021F481E080935A0122C0EFE9FFE0F7
+:101C00003197F1F700C00000E7CF8093F100809199
+:101C1000E80085FD0AC08091E80080FFFCCF80913C
+:101C2000E8008E778093E80006C08FB7F89421E033
+:101C300020935C018FBF9F709093E90080E008952E
+:101C40009F709093E9008FEF0895CF93DF9300D0BA
+:101C50001F92CDB7DEB79C018091F001843019F559
+:101C600093E099833B832A839093E9008FEF9091CF
+:101C7000E800815095FD06C095ED9A95F1F70000BA
+:101C80008111F5CF8091E80085FF0DC040E050E064
+:101C900063E070E0CE0101960E94F5108091E800AB
+:101CA0008E778093E8000F900F900F90DF91CF9187
+:101CB0000895CF93DF9300D01F92CDB7DEB7209168
+:101CC000F001243021F522E029839B838A8383E07D
+:101CD0008093E9008FEF9091E800815095FD06C058
+:101CE00095ED9A95F1F700008111F5CF8091E8000C
+:101CF00085FF0DC040E050E063E070E0CE0101964A
+:101D00000E94F5108091E8008E778093E8000F9094
+:101D10000F900F90DF91CF9108952091F001243022
+:101D2000F1F422E02093E9002FEF3091E8002150F8
+:101D300035FD06C035ED3A95F1F700002111F5CFDC
+:101D40002091E80025FF0BC040E050E065E070E026
+:101D50000E94F5108091E8008E778093E800089546
+:101D6000CF93DF932091F001243009F048C0EC01BB
+:101D700080910C018823E1F080910D018823C1F04E
+:101D800085E08093E9008FEF9091E800815095FD08
+:101D900006C095E19A95F1F700008111F5CF809189
+:101DA000E80085FF2CC040E050E060E170E017C023
+:101DB00081E08093E9008FEF9091E800815095FDDC
+:101DC00006C095ED9A95F1F700008111F5CF80914D
+:101DD000E80085FF14C040E050E068E070E0CE010C
+:101DE0000E94F5108091E8008E778093E80080E1F2
+:101DF000FE01ADE5B1E001900D928A95E1F7DF912A
+:101E0000CF91089589E794E00E94C8078091EF017F
+:101E1000811109C00E948A120E94E7128091E2009B
+:101E200084608093E200089585E794E00E94C807EB
+:101E30001092EF01089581E794E00C94C8078DE6B5
+:101E400094E00E94C8070C949E2C89E694E00E94BE
+:101E5000C8070E9464220E94A42C0E948C150C9436
+:101E6000BE0D20915B012F5F822F62E30E94122E34
+:101E7000992319F020935B01089510925B018091E2
+:101E80005C01882371F18091F001843041F58091EB
+:101E9000E9008F702091EC00922F917020FD90E866
+:101EA000892B94E09093E9009091EB0090FF14C08F
+:101EB0009091EE0097FF10C09091E80095FF03C04D
+:101EC0001092F100F9CF9091E80090FF05C0909139
+:101ED000E8009E779093E8008F708093E90010925D
+:101EE0005C01089542E061EC81E00E94041242E04E
+:101EF00061EC82E00E94041242E061EC83E00E9407
+:101F0000041242E261EC84E00E94041242E161ECBE
+:101F100085E00C9404128091F201833009F455C0DD
+:101F200030F4813071F0823009F48EC008958A3027
+:101F300009F47AC08B3009F460C0893009F09CC084
+:101F400020C08091F101813A09F096C08091E800AB
+:101F5000877F8093E8008091F5019091F601892BAD
+:101F600021F460E18DE591E003C060E080E090E065
+:101F700070E00E9440118091E8008B778093E80028
+:101F800008958091F101813209F076C08091F501C8
+:101F90009091F601009719F0049709F06DC08091B7
+:101FA000E800877F8093E8008091E80082FD05C00B
+:101FB0008091F0018111F8CF5FC08091F100809392
+:101FC0006D018091E8008B7753C08091F101813AD7
+:101FD00009F052C08091F5019091F601892B09F02A
+:101FE0004BC08091E800877F8093E8008091E800F3
+:101FF00080FFFCCF80910C0136C08091F1018132CD
+:10200000D9F58091F5019091F601892BA9F5809180
+:10201000E800877F8093E8000E9439128091F301E5
+:1020200080930C010C94681B8091F101813221F5A1
+:102030008091E800877F8093E8000E9439128091A8
+:10204000F40180936E0108958091F101813AA1F429
+:102050008091E800877F8093E8008091E80080FF0E
+:10206000FCCF80916E018093F1008091E8008E7723
+:102070008093E8000C943912089584B7877F84BF59
+:1020800088E10FB6F89480936000109260000FBE54
+:1020900090E080E80FB6F89480936100909361001F
+:1020A0000FBE0E9419160E948A120E94E7128091A8
+:1020B000E20084608093E20082EC9DE00E94A32114
+:1020C00078940E946C150E941B1682E091E00E9499
+:1020D00087150E948C2C88E594E00E94C8078091A7
+:1020E000F001853089F484E594E00E94C8070E94DD
+:1020F00028228091EE01882391F30E9450228823A8
+:1021000071F30E94DF10EBCF0E944916E8CF292F10
+:10211000332723303105C9F064F42130310581F0D3
+:102120002230310509F043C08DE890E021EB34E026
+:1021300042C021323105F1F02232310541F137C080
+:1021400082E190E02EE335E036C099278130910599
+:1021500041F08230910541F0892B49F5EDEAF4E038
+:1021600005C0E5E9F4E002C0EDE7F4E0849190E019
+:102170009F0121C06530D8F4E62FF0E0EE0FFF1F7D
+:10218000EB5DFE4F2081318189E090E014C0653025
+:1021900070F470E0FB01EE0FFF1FE55EFE4F208143
+:1021A0003181FB01EA5EFE4F808190E004C080E057
+:1021B00090E020E030E0FA0131832083089580E14F
+:1021C00089BD82E189BD09B400FEFDCF8091D800B0
+:1021D0008F7D8093D8008091E00082608093E00042
+:1021E0008091E00081FDFCCF0895CF92DF92EF92C5
+:1021F000FF920F931F93CF93DF93EC018B016A0142
+:102200000E945812811133C0C114D10439F0F60173
+:1022100080819181081B190BC80FD91FE12CF12C6B
+:102220000115110519F18091E80085FD16C0809116
+:10223000E8008E778093E800C114D10449F0F601DC
+:1022400080819181E80EF91EF182E08285E00FC065
+:102250000E945812882321F30AC089918093F100CB
+:1022600001501109FF