diff options
author | Olivier <olivier@gid0.org> | 2016-04-30 16:03:52 +0200 |
---|---|---|
committer | Olivier <olivier@gid0.org> | 2016-04-30 16:03:52 +0200 |
commit | 09ea12f9ca96fa89a500a5965bf074c4347d300d (patch) | |
tree | 747caedcbd529d068d6794a72e65a5bef274ed8e /keyboard/ergodox_ez/keymaps/plums | |
parent | 9d48ba9713d17a8ebae99ef42bc7838402fc532f (diff) | |
parent | e7d56215deb253b44b190d12288076d03b206bdf (diff) |
Merge https://github.com/jackhumbert/qmk_firmware
Diffstat (limited to 'keyboard/ergodox_ez/keymaps/plums')
-rw-r--r-- | keyboard/ergodox_ez/keymaps/plums/keymap.c | 229 | ||||
-rw-r--r-- | keyboard/ergodox_ez/keymaps/plums/plums.hex | 1159 | ||||
-rw-r--r-- | keyboard/ergodox_ez/keymaps/plums/plums.png | bin | 0 -> 223300 bytes | |||
-rw-r--r-- | keyboard/ergodox_ez/keymaps/plums/readme.md | 11 |
4 files changed, 1399 insertions, 0 deletions
diff --git a/keyboard/ergodox_ez/keymaps/plums/keymap.c b/keyboard/ergodox_ez/keymaps/plums/keymap.c new file mode 100644 index 0000000000..46eb2e42b1 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/plums/keymap.c @@ -0,0 +1,229 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | F5 | |Hypr+M| 6 | 7 | 8 | 9 | 0 | Mute | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | LGui | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | + * |--------+------+------+------+------+------| SYMB | | MDIA |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Ca/Ctl| { | ( | | | : | | - | = | ) | } |C`/Ctl| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | LGA | LAlt | | RAlt | Play | + * ,------|------|------| |------+------+------. + * | | | Home | | PgUp | | | + * |Backsp| Esc |------| |------|Enter |Space | + * |ace | | End | | PgDn | | | + * `--------------------' `--------------------' + */ +// 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 + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F5, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, + KC_LGUI, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, TG(SYMB), + F(0), KC_LCBR, KC_LPRN,KC_PIPE,KC_COLN, + LGUI(KC_LALT), KC_LALT, + KC_HOME, + KC_BSPC, KC_ESC, KC_END, + // right hand + HYPR(KC_M), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MUTE, + KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + TG(MDIA), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_MINS, KC_EQL, KC_RPRN, KC_RCBR, F(1), + KC_RALT, KC_MPLY, + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | | | | | | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Left | Down | Up | Right| | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, + 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------|MsLeft|MsDown| MsUp |MsRght| | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |VolUp |VolDn | Prev | Next | | | LClk | RClk | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[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_VOLU, KC_VOLD, KC_MPRV, KC_MNXT, 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_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_MACRO_TAP(0), // FN0 - Ctrl + a (For screen/tmux) + [1] = ACTION_MACRO_TAP(1) // FN1 - Ctrl + ` (For quake style console) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. +{ + switch(id) { + case 0: + if (record->event.pressed) { + if (record->tap.count) { + if (record->tap.interrupted) { + record->tap.count = 0; + // hold press action + register_code(KC_LCTL); + } else { + // tap press action + return MACRO( D(LCTL), T(A), U(LCTL), END ); + } + } else { + // hold press action + register_code(KC_LCTL); + } + } else { + if (record->tap.count) { + // tap release action + } else { + // hold release action + unregister_code(KC_LCTL); + } + record->tap.count = 0; + } + break; + case 1: + if (record->event.pressed) { + if (record->tap.count) { + if (record->tap.interrupted) { + record->tap.count = 0; + // hold press action + register_code(KC_RCTL); + } else { + // tap press action + return MACRO( DOWN(KC_RCTL), TYPE(KC_GRV), UP(KC_RCTL), END ); + } + } else { + // hold press action + register_code(KC_RCTL); + } + } else { + if (record->tap.count) { + // tap release action + } else { + // hold release action + unregister_code(KC_RCTL); + } + record->tap.count = 0; + } + break; + } + return MACRO_NONE; +}; + + + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// 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 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/plums/plums.hex b/keyboard/ergodox_ez/keymaps/plums/plums.hex new file mode 100644 index 0000000000..f950ba3ab2 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/plums/plums.hex @@ -0,0 +1,1159 @@ +:100000000C946E020C94B2020C94B2020C94B202E4
+:100010000C94B2020C94B2020C94B2020C94B20290
+:100020000C94B2020C94B2020C94A60C0C94780DB1
+:100030000C94B2020C94B2020C94B2020C94B20270
+:100040000C94B2020C9442220C94B2020C94B202B0
+:100050000C94B2020C94D11B0C94B2020C94B20218
+:100060000C94B2020C94B2020C94B2020C94B20240
+:100070000C94B2020C94B2020C94B2020C94B20230
+:100080000C94B2020C94B2020C94B2020C94B20220
+:100090000C94B2020C94B2020C94B2020C94B20210
+:1000A0000C94B2020C94B2020C94B202E50D070E4D
+:1000B000F50E070EF50E4C0E6F0EF50EC40ED70E94
+:1000C000C311C31100120012431281129A149A1420
+:1000D0009A129A149B139B136E149A149A148514F3
+:1000E00001E40135023502E40001E00104020402EA
+:1000F000E00000C801C835002B00E300E10000204B
+:1001000000001E00140004001D002F024D001F00FF
+:100110001A0016001B002602290020000800070014
+:10012000060031022A0021001500090019003302DF
+:100130004A00220017000A0005000000E2083E0005
+:100140002F00000001540000E200100F30000000FA
+:1001500002540000E60023001C000B001100000008
+:10016000AE00240018000D0010002D004B002500EB
+:100170000C000E0036002E002C00260012000F008E
+:100180003700270228002700130033003800300210
+:100190004E00A80031003400E500012000000100FD
+:1001A000010001000100010000003A001E022002CF
+:1001B0002202010001003B001F0221022302010074
+:1001C00001003C002F0226022F00010001003D002B
+:1001D000300227023000010001003E0031023500EC
+:1001E00035020000010001000100000001000000D4
+:1001F00001000100010000000100000001003F00BB
+:100200000100500001000000010040000100510009
+:100210000100010001004100010052000100010045
+:100220000100420001004F000100010001004300F5
+:10023000010001000100010001004400450001002F
+:100240000100010000000100010001000100A900FF
+:1002500000000100010001000100AA0001000100EE
+:10026000010001000100AC000100010001000100DB
+:100270000100AB00010001000100010001000100CC
+:100280000100010001000100010000000100010067
+:100290000100000001000000010001000100000059
+:1002A00001000000010001000100F2000100000057
+:1002B000010001000100F1000100F4000100010053
+:1002C0000100F0000100F500B60001000100F3009C
+:1002D0000100010001000100010001000100010016
+:1002E00001000100010001000100010000001603EF
+:1002F0004500720067006F0044006F007800200026
+:1003000045005A00000016034500720067006F00A8
+:1003100044006F007800200045005A0000000403EC
+:10032000090409026D00040100A0FA09040000019B
+:1003300003010100092111010001223F000705818D
+:100340000308000A09040100010301020009211148
+:10035000010001224D000705820308000A0904027A
+:1003600000010300000009211101000122360007ED
+:1003700005830308000A09040300010300000009C3
+:100380002111010001223900070584031000011228
+:1003900001100100000008EDFE071301000102003A
+:1003A0000105010906A101050719E029E715002546
+:1003B0000195087501810205081901290595057542
+:1003C000019102950175039101050719002977151F
+:1003D000002501957875018102C005010980A10100
+:1003E000850216010026B7001A01002AB700751011
+:1003F00095018100C0050C0901A1018503160100CA
+:10040000269C021A01002A9C02751095018100C0E9
+:1004100005010902A1010901A10005091901290528
+:10042000150025019505750181029501750381016E
+:100430000501093009311581257F9502750881066E
+:1004400009381581257F950175088106050C0A3844
+:10045000021581257F950175088106C0C005010937
+:1004600006A101050719E029E71500250195087582
+:100470000181029501750881010508190129059579
+:100480000575019102950175039101050719002970
+:10049000FF150025FF950675088100C000000000CB
+:1004A00000000000000000010204060A0F17202CC3
+:1004B0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9BF
+:1004C000DAC7B39D87715D4A3A2C20170F0A0604DC
+:1004D00002010000000000000000000011241FBE07
+:1004E000CFEFDAE0DEBFCDBF04B603FE24C08091BB
+:1004F000EE019091EF01A091F001B091F1018730F0
+:10050000904BA740B04BB9F41092EE011092EF015E
+:100510001092F0011092F10114BE84B7877F84BF5E
+:1005200088E10FB6F89480936000109260000FBECF
+:10053000E0E0FFE3099511E0A0E0B1E0E2E1F8E4DA
+:1005400002C005900D92A433B107D9F711E0A4E3DE
+:10055000B1E001C01D92AE3EB107E1F70E94EA0989
+:100560000C9407240C940000CF93DF93EC016623D6
+:1005700019F06130C9F015C09A818D81992349F035
+:10058000982F907F21F080FF22C08F708D8380EEA6
+:1005900017C0807F19F480EE0E941F118D818F702B
+:1005A0008D8380E090E018C09A818D81992359F065
+:1005B000982F907F21F080FF0DC08F708D8384EE87
+:1005C0000E945710EECF807F49F784EEE5CF89EE89
+:1005D00090E002C080EE90E0DF91CF910895089501
+:1005E0006091B1017091B2018091B3019091B40119
+:1005F0000E94FD1A56985E9825982D9826982E9858
+:1006000027982F98813019F0823021F00895259A8B
+:100610002D9A0895269A2E9A08950C94F0025698D1
+:100620005E9825982D9826982E9827982F988FEFCA
+:1006300090E0909389008093880090938B00809342
+:100640008A0090938D0080938C00259A2D9A2FEF2D
+:1006500080E792E0215080409040E1F700C0000028
+:10066000269A2E9A2FEF80E792E02150804090400A
+:10067000E1F700C00000279A2F9A2FEF80E792E061
+:10068000215080409040E1F700C0000025982D984F
+:100690002FEF80E792E0215080409040E1F700C0CA
+:1006A000000026982E982FEF80E792E0215080409E
+:1006B0009040E1F700C0000027982F9856985E9868
+:1006C00025982D9826982E9827982F98089589EA8E
+:1006D0008093800089E08093810024982C983F9833
+:1006E0008AB18F748AB96E98479A8BB1806B8BB937
+:1006F000769A0E940F030C94EF0280E2809300012F
+:100700008091340181110EC00E94CC0381E080935E
+:1007100034012FEF83ED90E3215080409040E1F7CA
+:1007200000C0000080E40E94D20380930001811188
+:100730002EC00E94FC0380930001811128C00E94FA
+:10074000FC0380930001811122C08FE30E94FC030F
+:100750008093000181111BC00E94F40380E40E9479
+:10076000D20380930001811112C08CE00E94FC032F
+:100770008093000181110BC00E94FC038093000153
+:10078000811105C08FE30E94FC03809300010E9449
+:10079000F4038091000108951092B9008AE08093DB
+:1007A000B800089594EA9093BC009091BC0097FF24
+:1007B000FCCF9091B900987F983021F0903111F0E2
+:1007C00081E008958093BB0084E88093BC00809111
+:1007D000BC0087FFFCCF8091B900887F883111F081
+:1007E000803471F780E0089584E98093BC008091A3
+:1007F000BC0084FDFCCF08958093BB0084E8809307
+:10080000BC008091BC0087FFFCCF9091B900987F1D
+:1008100081E0983209F480E0089584E88093BC0078
+:100820008091BC0087FFFCCF8091BB000895809130
+:100830000001811115C080E40E94D2038093000161
+:1008400081110CC082E10E94FC03809300018111A0
+:1008500005C08FEF0E94FC03809300010E94F40307
+:1008600084B1807F84B985B1807F85B98AB1837F67
+:100870008AB98BB1837F8BB93E98469808950E94C0
+:100880007D03809300010E94170480B38C7080BBAD
+:1008900081B3836F81BBA6E3B1E0E4E4F1E08EE0D5
+:1008A0008E0F11921D928E13FCCF0C946703BF9292
+:1008B000CF92DF92EF92FF920F931F93CF93DF932C
+:1008C00080910001882379F0809135018F5F8093BA
+:1008D0003501811108C00E947D03809300018111C0
+:1008E00002C00E940F0306E311E0C0E0D0E0DD2467
+:1008F000D39482E0C82EEE24E394F12CC730D105C6
+:1009000000F580910001811164C080E40E94D2034F
+:1009100080930001811112C082E10E94FC03809348
+:10092000000181110BC0C7010C2E01C0880F0A9471
+:10093000EAF780950E94FC03809300010E94F40373
+:1009400048C0CA30A1F028F4C83059F0C93061F06D
+:1009500005C0CC3089F070F0CD3089F0209A28980D
+:1009600010C0219A29980DC0229A2A980AC0239A69
+:100970002B9807C0529A01C0539A5B9802C03E9AC6
+:10098000469890EA9A95F1F79FB1799902C082E072
+:1009900001C080E091709D25982B7C9902C084E075
+:1009A00001C080E0892B7D9902C038E001C030E0B1
+:1009B000832B7E9902C020E101C020E0822B9FB1F1
+:1009C0009095991F9927991F9295990F907E892B41
+:1009D0000FC080910001811149C080E40E94D203C0
+:1009E00080930001882379F1B12C0E94F4038B2DB0
+:1009F000F8019081981719F08083C09201010E943C
+:100A0000170421960F5F1F4FCE30D10509F076CF26
+:100A100080910101882361F1815080930101882335
+:100A200039F08FE99FE00197F1F700C0000020C086
+:100A3000A4E4B1E0E6E3F1E0CF01825F91919D9300
+:100A40008E13FCCF15C083E10E94FC03809300014C
+:100A50008111CACF81E40E94D203809300018111E9
+:100A6000C3CF0E940D04B82EB094BFCF80E0C0CF9A
+:100A70000E940D0381E0DF91CF911F910F91FF90B4
+:100A8000EF90DF90CF90BF900895E82FF0E0EC5BFF
+:100A9000FE4F808108950895089596E0799FF001B2
+:100AA000112494E5899FE00DF11D1124E60FF11D3D
+:100AB000EE0FFF1FEA50FF4F859194910895880F24
+:100AC000991FFC01EE58F040859194910895880F8C
+:100AD000991FFC01EE50FF4F8591949108950F935B
+:100AE0001F93CF93DF93EC018115904350F5C1150F
+:100AF00080E2D80708F0B3C0CB3BD10590F4C83AE8
+:100B0000D10508F05AC0C53AD10508F04BC0C43031
+:100B1000D10508F0BBC1219709F0B5C101E010E093
+:100B2000F5C1CF3FD10511F008F0B0C1C03FD105EC
+:100B300008F092C0CE01805E9109089708F4A6C122
+:100B4000A2C1C11591E5D907A8F4C23020E5D207AA
+:100B500008F09EC0C11580E5D80709F485C008F0EB
+:100B600091C0C11520E4D20708F08DC1DD278E01A8
+:100B7000106CCCC1C11580E8D80758F4C11590E7B6
+:100B8000D90708F07CC1C11520E6D20708F422C1BC
+:100B90007AC1C11580E9D80708F075C1DF708E01F0
+:100BA000106AB4C1C53AD10509F472C1C63AD1057B
+:100BB00009F071C102E810E4A9C1C83AD10509F4ED
+:100BC0006DC1C93AD10509F46CC1CA3AD10509F41D
+:100BD0006BC1CB3AD10509F46AC1CC3AD10509F40D
+:100BE00069C1CD3AD10509F468C1C03BD10509F40A
+:100BF00067C1CE3AD10509F466C1CF3AD10509F4EF
+:100C000065C1C13BD10509F464C1C23BD10509F4FA
+:100C100063C1C33BD10509F462C1C43BD10509F4EA
+:100C200061C1C53BD10509F460C1C63BD10509F4DA
+:100C30005FC1C73BD10509F45EC1C83BD10509F4CA
+:100C40005DC1C93BD10509F45CC1CA3BD10509F4BA
+:100C50005BC100E014E45AC18E01106557C1CE019A
+:100C60009F700E94670553C10E94BE149FEF24E34A
+:100C70008CE0915020408040E1F700C000000E94CD
+:100C8000F61B44C18091CD0181608093CD013EC1AE
+:100C90000E949F1D811102C00E94851D0E94BC1DE3
+:100CA00090E09093EE018093ED01C23090E5D9077A
+:100CB00021F48091ED01816086C0C43020E5D20727
+:100CC00021F48091ED0182607EC0C63080E5D807B6
+:100CD00021F48091ED01846076C0C83090E5D90799
+:100CE00019F48091ED0127C0CA3020E5D20721F424
+:100CF0008091ED01806167C0CC3080E5D80721F498
+:100D00008091ED0180625FC0CE3090E5D90721F47B
+:100D10008091ED01806457C0C03120E5D20721F4F5
+:100D20008091ED0180684FC0C23180E5D80729F479
+:100D30008091ED018460886046C0C33090E5D9079A
+:100D400021F48091ED018E7F3EC0C53020E5D207B1
+:100D500021F48091ED018D7F36C0C73080E5D80742
+:100D600021F48091ED018B7F2EC0C93090E5D90729
+:100D700019F48091ED0126C0CB3020E5D20721F493
+:100D80008091ED018F7E1FC0CD3080E5D80721F422
+:100D90008091ED018F7D17C0CF3090E5D90721F408
+:100DA0008091ED018F7B0FC0C13120E5D20721F486
+:100DB0008091ED018F7707C0C331D04531F4809128
+:100DC000ED018B7F877F8093ED018091ED010E9483
+:100DD000C01D9CC08D2F99278F7099278130910558
+:100DE000D9F49E012370332702C0880F991F2A95DA
+:100DF000E2F79C688E0144E0000F111F4A95E1F76D
+:100E000000271370802B912B53E0CC0FDD1F5A95D8
+:100E1000E1F7C076DD272FC08230910531F4DC2F59
+:100E2000CC278E01016F106A71C08330910569F47F
+:100E3000CE018370992701E010E002C0000F111F5E
+:100E40008A95E2F7C8019C680FC0049709F05EC05C
+:100E5000CE018370992701E010E002C0000F111F3E
+:100E60008A95E2F7C8019A6823E0CC0FDD1F2A9526
+:100E7000E1F7C07ED7708C010C2B1D2B47C0DF70B3
+:100E80008E01106243C000E010E040C08E013EC001
+:100E900001E810E43BC003E810E438C002EE14E4BB
+:100EA00035C009EE14E432C00AEE14E42FC005EB9D
+:100EB00014E42CC006EB14E429C007EB14E426C0AC
+:100EC0000CEC14E423C00DEC14E420C003E815E49A
+:100ED0001DC00AE815E41AC002E915E417C004E9C8
+:100EE00015E414C001E216E411C003E216E40EC0DA
+:100EF00004E216E40BC005E216E408C006E216E4BC
+:100F000005C007E216E402C00AE216E4C801DF9158
+:100F1000CF911F910F91089596E0799FF0011124D0
+:100F200094E5899FE00DF11D1124E60FF11DEE0FF0
+:100F3000FF1FEA50FF4F85919491803E9105E0F4A8
+:100F4000803C910558F58133910509F46FC048F450
+:100F50008932910509F463C08A32910509F46DC0A4
+:100F600072C089339105E9F082389105D1F085335B
+:100F7000910509F44DC067C0833E910581F138F4B5
+:100F8000803E9105B9F0823E9105D9F05CC0863E65
+:100F9000910561F1873E9105A1F155C00E945F0561
+:100FA00008952091ED0120FD02C021FF4CC080EE8C
+:100FB00090E049C08091ED0180FFF9CF89E390E096
+:100FC00042C08091ED0182FF0EC08091ED0184FF4F
+:100FD00003C080E090E037C083EE90E034C08091A1
+:100FE000ED0182FFF2CF82EE90E02DC08091ED0105
+:100FF00083FF0BC08091ED0184FDEBCF87EE90E085
+:1010000022C08091ED0183FFF5CF86EE90E01BC0FA
+:101010008091ED0185FF07C089E290E014C08091C6
+:10102000ED0185FFF9CF85E390E00DC08091ED01E2
+:1010300086FF07C08AE290E006C08091ED0186FF3E
+:10104000F9CF81E390E00E946F05089508950C9414
+:101050002608809162010895CF93DF9300D01F92FC
+:10106000CDB7DEB79C018091E401843019F593E09F
+:1010700099833B832A839093E9008FEF9091E80056
+:10108000815095FD06C095ED9A95F1F7000081110C
+:10109000F5CF8091E80085FF0DC040E050E063E0AF
+:1010A00070E0CE0101960E94960A8091E8008E774A
+:1010B0008093E8000F900F900F90DF91CF910895EB
+:1010C000CF93DF9300D01F92CDB7DEB72091E4011C
+:1010D000243021F522E029839B838A8383E0809357
+:1010E000E9008FEF9091E800815095FD06C095EDE5
+:1010F0009A95F1F700008111F5CF8091E80085FF06
+:101100000DC040E050E063E070E0CE0101960E9427
+:10111000960A8091E8008E778093E8000F900F90F8
+:101120000F90DF91CF9108952091E4012430F1F4E4
+:1011300022E02093E9002FEF3091E800215035FDA7
+:1011400006C035ED3A95F1F700002111F5CF209159
+:10115000E80025FF0BC040E050E065E070E00E9431
+:10116000960A8091E8008E778093E8000895CF93E7
+:10117000DF93EC019091E401943009F046C0809136
+:101180000C018823D9F080910D018823B9F0909348
+:10119000E9008FEF9091E800815095FD06C095E140
+:1011A0009A95F1F700008111F5CF8091E80085FF55
+:1011B0002CC040E050E060E170E017C081E0809317
+:1011C000E9008FEF9091E800815095FD06C095ED04
+:1011D0009A95F1F700008111F5CF8091E80085FF25
+:1011E00014C040E050E068E070E0CE010E94960A32
+:1011F0008091E8008E778093E80080E1FE01A2E50F
+:10120000B1E001900D928A95E1F7DF91CF910895B9
+:101210008091E301811109C00E942B0C0E94880C6F
+:101220008091E20084608093E20008951092E301CF
+:10123000089508950C942F220E948C1B0E94352241
+:101240000E942E0F0C94270842E061EC81E00E947E
+:10125000A50B42E061EC82E00E94A50B42E061EC4C
+:1012600083E00E94A50B42E161EC84E00C94A50BA5
+:101270008091E601833009F455C030F4813071F07B
+:10128000823009F48EC008958A3009F47AC08B3018
+:1012900009F460C0893009F09CC020C08091E5014C
+:1012A000813A09F096C08091E800877F8093E8003A
+:1012B0008091E9019091EA01892B21F460E182E5B6
+:1012C00091E003C060E080E090E070E00E94E10AFD
+:1012D0008091E8008B778093E80008958091E50184
+:1012E000813209F076C08091E9019091EA0100977E
+:1012F00019F0039709F06DC08091E800877F809313
+:10130000E8008091E80082FD05C08091E401811130
+:10131000F8CF5FC08091F100809362018091E80076
+:101320008B7753C08091E501813A09F052C08091DA
+:10133000E9019091EA01892B09F04BC08091E80006
+:10134000877F8093E8008091E80080FFFCCF809148
+:101350000C0136C08091E5018132D9F58091E90117
+:101360009091EA01892BA9F58091E800877F80930D
+:10137000E8000E94DA0B8091E70180930C010C9445
+:10138000BE148091E501813221F58091E800877FCC
+:101390008093E8000E94DA0B8091E801809363015A
+:1013A00008958091E501813AA1F48091E800877F5A
+:1013B0008093E8008091E80080FFFCCF809163017A
+:1013C0008093F1008091E8008E778093E8000C9480
+:1013D000DA0B089584B7877F84BF88E10FB6F8944D
+:1013E00080936000109260000FBE90E080E80FB61E
+:1013F000F89480936100909361000FBE0E947D0F6E
+:101400000E942B0C0E94880C8091E20084608093E3
+:10141000E20078940E940E0F0E947F0F82E091E01C
+:101420000E94290F0E941D228091E401853069F4F9
+:101430000E944D1B8091E2018823B1F30E94781B2A
+:10144000882391F30E94800AEFCF0E94850FECCF92
+:10145000292F332723303105C9F064F421303105B9
+:1014600081F02230310509F043C08DE690E022E2A0
+:1014700033E042C021323105F1F02232310541F131
+:1014800037C082E190E02FE833E036C09927813001
+:10149000910541F08230910541F0892B49F5EEE14B
+:1014A000F3E005C0E6E0F3E002C0EEEEF2E0849186
+:1014B00090E09F0121C06430D8F4E62FF0E0EE0FF9
+:1014C000FF1FEE5DFE4F2081318189E090E014C066
+:1014D000643070F470E0FB01EE0FFF1FE65EFE4F1C
+:1014E00020813181FB01EA5EFE4F808190E004C0E3
+:1014F00080E090E020E030E0FA013183208308951D
+:1015000080E189BD82E189BD09B400FEFDCF8091F3
+:10151000D8008F7D8093D8008091E0008260809316
+:10152000E0008091E00081FDFCCF0895CF92DF9232
+:10153000EF92FF920F931F93CF93DF93EC018B01F8
+:101540006A010E94F90B811133C0C114D10439F032
+:10155000F60180819181081B190BC80FD91FE12C5E
+:10156000F12C0115110519F18091E80085FD16C0D7
+:101570008091E8008E778093E800C114D10449F08F
+:10158000F60180819181E80EF91EF182E08285E00A
+:101590000FC00E94F90B882321F30AC08991809320
+:1015A000F10001501109FFEFEF1AFF0ADACF80E0D6
+:1015B000DF91CF911F910F91FF90EF90DF90CF902F
+:1015C00008952091EB013091EC012617370748F080
+:1015D0006115710539F42091E8002E772093E80019
+:1015E00001C0B90140E061157105A9F12091E40144
+:1015F000222309F443C0253009F442C02091E800B9
+:1016000023FD40C02091E80022FD32C02091E80077
+:1016100020FFE9CF4091F3002091F20030E0342B1D
+:10162000FC01CF016115710559F02830310540F4F6
+:1016300081918093F100615071092F5F3F4FF1CF8D
+:1016400041E02830310509F040E02091E8002E7794
+:101650002093E800C8CF4111C9CF0AC08091E401AE
+:10166000882361F0853061F08091E80083FD0AC035
+:101670008091E80082FFF2CF80E0089582E0089533
+:1016800083E0089581E008952091EB013091EC0111
+:101690002617370748F06115710539F42091E800E5
+:1016A0002E772093E80001C0B901FC0120E061150C
+:1016B000710591F18091E401882309F440C08530DF
+:1016C00009F43FC08091E80083FD3DC08091E800AF
+:1016D00082FD2FC08091E80080FFE9CF2091F300C8
+:1016E0008091F20090E0922B6115710559F08830DD
+:1016F000910540F424912093F100319661507109D5
+:101700000196F2CF21E0089709F020E08091E800EF
+:101710008E778093E800CBCF2111CCCF0AC0809187
+:10172000E401882361F0853061F08091E80083FD59
+:101730000AC08091E80082FFF2CF80E0089582E045
+:10174000089583E0089581E00895982F973058F523
+:101750009093E900981739F07091EC002091ED001A
+:101760005091F00003C0242F762F50E021FF19C0C4
+:101770003091EB003E7F3093EB003091ED003D7FE8
+:101780003093ED003091EB0031603093EB007093BB
+:10179000EC002093ED005093F0002091EE0027FF25
+:1017A00007C09F5FD3CF8F708093E90081E00895D9
+:1017B00080E008958091E50187FF11C08091E800E5
+:1017C00082FD05C08091E4018111F8CF11C08091A4
+:1017D000E8008B770BC08091E401882349F0809169
+:1017E000E80080FFF8CF8091E8008E778093E800D2
+:1017F00008952091E4003091E50095E64091EC00D9
+:10180000842F817040FF22C08091E80080FD1CC0C1
+:101810008091E401882391F0853091F08091EB0074
+:1018200085FD10C04091E4005091E5004217530738
+:1018300029F39A01915011F784E0089582E0089508
+:1018400083E0089581E0089580E008954091E800E4
+:1018500042FFDECF08950E94990C0E94A10CE0EE99
+:10186000F0E0808181608083E8EDF0E080818F7717
+:10187000808319BCA7EDB0E08C918E7F8C93808122
+:101880008F7E80831092E30108950F931F93CF936F
+:10189000DF930E94990C0E94A10CC8EDD0E08881D2
+:1018A0008F77888388818068888388818F7D88830B
+:1018B00019BC1092E4011092E0011092E201109222
+:1018C000E10100EE10E0F80180818B7F8083888148
+:1018D0008160888342E060E080E00E94A50BE1EE39
+:1018E000F0E080818E7F8083E2EEF0E08081816095
+:1018F0008083808188608083F80180818E7F8083EF
+:10190000888180618883DF91CF911F910F91089525
+:10191000E8EDF0E080818F7E8083E7EDF0E080816C
+:101920008160808384E082BF81E08093E3010C9436
+:10193000450CE8EDF0E080818E7F80831092E2001C
+:1019400008951092DA001092E10008951F920F920C
+:101950000FB60F9211242F933F934F935F936F9382
+:101960007F938F939F93AF93BF93EF93FF93809158
+:10197000E10082FF0BC08091E20082FF07C08091EE
+:10198000E1008B7F8093E1000E940D0F8091DA00CF
+:1019900080FF1FC08091D80080FF1BC08091DA00BB
+:1019A0008E7F8093DA008091D90080FF0DC080E1A6
+:1019B00089BD82E189BD09B400FEFDCF81E080933D
+:1019C000E4010E94080905C019BC1092E4010E94BC
+:1019D00016098091E10080FF19C08091E20080FF2C
+:1019E00015C08091E2008E7F8093E2008091E2003A
+:1019F00080618093E2008091D80080628093D8005B
+:101A000019BC85E08093E4010E941A098091E100ED
+:101A100084FF30C08091E20084FF2CC080E189BD4A
+:101A200082E189BD09B400FEFDCF8091D8008F7D91
+:101A30008093D8008091E1008F7E8093E1008091B7
+:101A4000E2008F7E8093E2008091E20081608093CB
+:101A5000E2008091E001882311F084E007C08091CA
+:101A6000E30087FD02C081E001C083E08093E401D0
+:101A70000E941C098091E10083FF29C08091E2004F
+:101A800083FF25C08091E100877F8093E10082E0A1
+:101A90008093E4011092E0018091E1008E7F8093B9
+:101AA000E1008091E2008E7F8093E2008091E2006D
+:101AB00080618093E20042E060E080E00E94A50B3C
+:101AC0008091F00088608093F0000E941909FF91D6
+:101AD000EF91BF91AF919F918F917F916F915F91A6
+:101AE0004F913F912F910F900FBE0F901F9018951F
+:101AF0001F920F920FB60F9211242F933F934F9383
+:101B00005F936F937F938F939F93AF93BF93CF9385
+:101B1000DF93EF93FF93C091E900CF708091EC00C9
+:101B2000D82FD17080FDD0E81092E9008091F000AC
+:101B3000877F8093F00078940E94BC0D1092E9009A
+:101B40008091F00088608093F000CD2BCF70C0931F
+:101B5000E900FF91EF91DF91CF91BF91AF919F91FC
+:101B60008F917F916F915F914F913F912F910F9046
+:101B70000FBE0F901F9018951F93CF93DF93CDB793
+:101B8000DEB7AA970FB6F894DEBF0FBECDBFE5EE65
+:101B9000F1E088E08E0F9091F10091938E13FBCFCE
+:101BA0000E9438098091E80083FF1FC18091E50100
+:101BB0009091E601492F50E04A30510508F015C1D7
+:101BC000FA01EA5AFF4F0C94B723803881F082382B
+:101BD00009F00BC18091E9018F708093E900809139
+:101BE000EB0085FB882780F91092E90006C0809100
+:101BF000E1019091E201911182609091E800977F5C
+:101C00009093E8008093F1001092F100C8C0282F53
+:101C10002D7F09F0EAC0882319F0823061F0E5C019
+:101C20008091E701813009F0E0C0933009F080E055
+:101C30008093E2012BC08091E701811127C0809140
+:101C4000E9018F7009F4D1C08093E9002091EB0085
+:101C500020FF1CC0933021F48091EB00806214C0FF
+:101C60009091EB0090619093EB0021E030E0A901AE
+:101C700002C0440F551F8A95E2F74093EA00109284
+:101C8000EA008091EB0088608093EB001092E900FD
+:101C90008091E800877F86C08111A7C01091E7017D
+:101CA0001F778091E3008078812B8093E3008091FF
+:101CB000E800877F8093E8000E94DA0B8091E800BB
+:101CC00080FFFCCF8091E30080688093E3001111D6
+:101CD00002C082E001C083E08093E40186C08058A6
+:101CE000823008F082C08091E7019091E8018C3D3C
+:101CF00053E0950779F583E08A838AE289834FB7B9
+:101D0000F894DE01139620E03EE051E2E32FF0E08C
+:101D100050935700E49120FF03C0E295EF703F5FBE
+:101D2000EF708E2F90E0EA3010F0C79601C0C09699
+:101D30008D939D932F5F243149F74FBF8091E80029
+:101D4000877F8093E8006AE270E0CE0101960E94EE
+:101D5000E10A14C0AE014F5F5F4F6091E9010E943C
+:101D6000280ABC01892B09F440C09091E800977FB4
+:101D70009093E80089819A810E94440B8091E80049
+:101D80008B778093E80031C0803879F58091E80046
+:101D9000877F8093E8008091E0018093F10080913B
+:101DA000E8008E778093E8000E94DA0B1EC0811154
+:101DB0001CC09091E7019230C0F48091E800877FC9
+:101DC0008093E8009093E0010E94DA0B8091E0019B
+:101DD000811106C08091E30087FD02C081E001C04F
+:101DE00084E08093E4010E9424098091E80083FF4D
+:101DF0000AC08091E800877F8093E8008091EB0023
+:101E000080628093EB00AA960FB6F894DEBF0FBEF7
+:101E1000CDBFDF91CF911F9108950895CF93809109
+:101E2000E4018823A1F0C091E900CF709091EC000B
+:101E3000892F817090FD80E8C82B1092E900809175
+:101E4000E80083FD0E94BC0DCF70C093E900CF91E4
+:101E5000089590936901809368010895E091680165
+:101E6000F0916901309721F00190F081E02D099403
+:101E700080E00895E0916801F0916901309721F0C8
+:101E80000280F381E02D09940895E0916801F091BA
+:101E90006901309721F00480F581E02D09940895BF
+:101EA00020916601309167018217930771F090933A
+:101EB000670180936601E0916801F09169013097B4
+:101EC00021F00680F781E02D0994089520916401A6
+:101ED000309165018217930771F0909365018093AB
+:101EE0006401E0916801F0916901309721F000846C
+:101EF000F185E02D0994089508950C947C0F0E94BB
+:101F0000921B0E943F040C94581CCF92DF92EF92D8
+:101F1000FF920F931F93CF93DF93CDB7DEB72B972D
+:101F20000FB6F894DEBF0FBECDBF0E9457048BE6FC
+:101F3000C82E81E0D82E00E010E0E02E802F0E9415
+:101F40004505F60141916F01F42EF826B1F40F5FBB
+:101F50001F4F0E30110589F78FEF89838A831B820B
+:101F60000E949B1B8160782F9D838C8349815A81BD
+:101F70006B818D810E94281040C09091CD0191FF0E
+:101F800004C08B870E944B058B8520E030E04F2DED
+:101F900050E0922FBA01022E02C0759567950A94FF
+:101FA000E2F760FF24C02E83EF8221E030E0690178
+:101FB00002C0CC0CDD1C9A95E2F790E08C219D21AB
+:101FC000892B09F420E028870E949B1B8160782FD1
+:101FD0009A8789874E815F8168858A850E9428104B
+:101FE000F801E559FE4F8081C826C08206C02F5FE8
+:101FF0003F4F2630310569F6AACF0E943F1F10914E
+:102000006A010E942E0F1817A1F00E942E0F8093D4
+:102010006A012B960FB6F894DEBF0FBECDBFDF91DD
+:10202000CF911F910F91FF90EF90DF90CF900C9484
+:1020300027082B960FB6F894DEBF0FBECDBFDF91F9
+:10204000CF911F910F91FF90EF90DF90CF90089567
+:10205000CF93DF93CDB7DEB72B970FB6F894DEBFE3
+:102060000FBECDBF4F83588769877A878B87DE0184
+:10207000119686E0FD0111928A95E9F785E0FE014F
+:10208000379601900D928A95E1F749815A816B81CB
+:102090007C818D819E810E9458172B960FB6F894F3
+:1020A000DEBF0FBECDBFDF91CF9108950895CF93CE
+:1020B000882309F4C2C0C82F823859F40E942E0F19
+:1020C00081FDBBC089E30E94011A0E94CE1A89E3F8
+:1020D0000CC0833879F40E942E0F80FDAEC083E5DA
+:1020E0000E94011A0E94CE1A83E50E94431ACF91E2
+:1020F0000C94CE1A843859F40E942E0F82FD9DC094
+:1021000087E40E94011A0E94CE1A87E4EECF8CEF7A
+:102110008C0F813A48F48C2F0E94822181118DC04E
+:102120008C2F0E94011AE3CF80E28C0F883048F494
+:10213000C77081E001C0880FCA95EAF70E94871A2C
+:10214000D6CF8BE58C0F833078F4C53A29F0C63AA8
+:1021500031F083E890E005C081E890E002C082E8B9
+:1021600090E0CF910C94500F88E58C0F833108F0EC
+:1021700064C0C83A39F1C93A41F1CA3A49F1CB3A97
+:1021800051F1CC3A59F1CD3A61F1C03B69F1CE3A07
+:1021900071F1CF3A79F1C13B81F1C23B89F1C33B87
+:1021A00091F1C43B99F1C53BA1F1C63BA9F1C73BF5
+:1021B000B1F1C83BB9F1C93BC1F1CA3BC9F180E0FB
+:1021C00090E038C082EE90E035C089EE90E032C0F9
+:1021D0008AEE90E02FC085EB90E02CC086EB90E07B
+:1021E00029C087EB90E026C08CEC90E023C08DECFA
+:1021F00090E020C083E891E01DC08AE891E01AC019
+:1022000082E991E017C084E991E014C081E292E094
+:1022100011C083E292E00EC084E292E00BC085E23E
+:1022200092E008C086E292E005C087E292E002C038
+:102230008AE292E0CF910C94660FCF9108958823A3
+:1022400009F44BC0823859F40E942E0F81FF45C01B
+:1022500089E30E94011A0E94CE1A89E30CC08338D8
+:1022600071F40E942E0F80FF38C083E50E94011A8E
+:102270000E94CE1A83E50E94431A0C94CE1A843829
+:1022800059F40E942E0F82FF28C087E40E94011A91
+:102290000E94CE1A87E4EFCF9CEF980F913A58F343
+:1022A00090E2980F983050F4877091E001C0990F38
+:1022B0008A95EAF7892F0E948D1ADFCF9BE5980F48
+:1022C000933020F480E090E00C94500F885A8331D2
+:1022D00020F480E090E00C94660F0895882321F0AC
+:1022E0000E94871A0C94CE1A0895882321F00E9428
+:1022F0008D1A0C94CE1A0895BF92CF92DF92EF926E
+:10230000FF920F931F93CF93DF9300D000D000D0A4
+:10231000CDB7DEB725E0FC01DE01119601900D92EC
+:102320002A95E1F7FC01D080118102812581229557
+:102330002F7043815481452B09F4FCC21F3F21F4C7
+:10234000FFEFDF1609F4F6C27C012E830E945610BF
+:10235000D9821A8369817A81802F0E94FD19182FF2
+:10236000B92E0E94B2190E9479182E81002319F00B
+:102370000E94A41A2E81EB2DE295EF70F0E0E05A56
+:10238000FF4F0C94B7238B2D807F9B2D9F70F92ED0
+:10239000882319F0F29480EFF822002389F0FF20BF
+:1023A00009F475C280E2810F883020F48F2D0E94DD
+:1023B000871A03C08F2D0E94971A0E94CE1A67C2F7
+:1023C000812F0E941F11FF2009F4B4C2105E8F2DCF
+:1023D000183018F40E948D1A02C00E949D1A269689
+:1023E0000FB6F894DEBF0FBECDBFDF91CF911F9126
+:1023F0000F91FF90EF |