summaryrefslogtreecommitdiff
path: root/keyboard/planck
diff options
context:
space:
mode:
authorChristopher Browne <cbbrowne@ca.afilias.info>2016-04-27 12:34:54 -0400
committerChristopher Browne <cbbrowne@ca.afilias.info>2016-04-27 12:34:54 -0400
commitf59c4b03facd80cab913c6612a899392dd42ebb8 (patch)
treea6f0bcb584fcc6e6cc31261bafdc4f43b2fa7dfc /keyboard/planck
parent6ec6b613536b7138ee0c87002b10da8fe0c0117d (diff)
parentce75a7675e10e24e7ecd7bc3575c0e0fc1bc34b5 (diff)
Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware
Diffstat (limited to 'keyboard/planck')
-rw-r--r--keyboard/planck/Makefile71
-rw-r--r--keyboard/planck/config.h4
-rw-r--r--keyboard/planck/keymaps/bone2planck.c112
-rw-r--r--keyboard/planck/keymaps/default/README.md32
-rw-r--r--keyboard/planck/keymaps/default/keymap.c311
-rw-r--r--keyboard/planck/keymaps/default/makefile.mk2
-rw-r--r--keyboard/planck/keymaps/pvc/config.h88
-rw-r--r--keyboard/planck/keymaps/pvc/keymap.c536
-rw-r--r--keyboard/planck/keymaps/pvc/makefile.mk16
-rw-r--r--keyboard/planck/planck_pcb_r3.hex (renamed from keyboard/planck/planck_pcb.hex)0
-rwxr-xr-xkeyboard/planck/planck_pcb_r3_w_bootloader.hex (renamed from keyboard/planck/planck_with_bootloader.hex)0
-rw-r--r--keyboard/planck/planck_pcb_r4.hex1628
-rw-r--r--keyboard/planck/planck_pcb_r4_w_bootloader.hex1880
13 files changed, 4591 insertions, 89 deletions
diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile
index 03d2601761..01d9e3ce9a 100644
--- a/keyboard/planck/Makefile
+++ b/keyboard/planck/Makefile
@@ -41,7 +41,6 @@
# Target file name (without extension).
TARGET = planck
-
# Directory common source filess exist
TOP_DIR = ../..
TMK_DIR = ../../tmk_core
@@ -62,17 +61,28 @@ ifneq ("$(wildcard keymaps/$(KEYMAP).c)","")
else
ifneq ("$(wildcard keymaps/$(KEYMAP)/keymap.c)","")
KEYMAP_FILE = keymaps/$(KEYMAP)/keymap.c
+ifneq ("$(wildcard keymaps/$(KEYMAP)/makefile.mk)","")
+ include keymaps/$(KEYMAP)/makefile.mk
+endif
else
$(error Keymap file does not exist)
+endif
endif
-endif
+
else
+
ifneq ("$(wildcard keymaps/default.c)","")
KEYMAP_FILE = keymaps/default.c
else
KEYMAP_FILE = keymaps/default/keymap.c
endif
+
+ifneq ("$(wildcard keymaps/default/makefile.mk)","")
+ include keymaps/default/makefile.mk
+endif
+
endif
+
SRC := $(KEYMAP_FILE) $(SRC)
CONFIG_H = config.h
@@ -94,7 +104,6 @@ MCU = atmega32u4
# software delays.
F_CPU = 16000000
-
#
# LUFA specific
#
@@ -126,29 +135,45 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
# USBaspLoader 2048
OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
# Build Options
-# comment out to disable the options.
-#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
-COMMAND_ENABLE = yes # Commands for debug and configuration
+# change to "no" to disable the options, or define them in the makefile.mk in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
-# NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-# MIDI_ENABLE = YES # MIDI controls
-# AUDIO_ENABLE = YES # Audio output on port C6
-# UNICODE_ENABLE = YES # Unicode
-# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
-# RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
-
-ifdef BACKLIGHT_ENABLE
- SRC += backlight.c
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifdef KEYMAP
+
+ifeq ("$(wildcard keymaps/$(KEYMAP).c)","")
+ifneq ("$(wildcard keymaps/$(KEYMAP)/makefile.mk)","")
+ include keymaps/$(KEYMAP)/makefile.mk
+endif
endif
+else
+
+ifneq ("$(wildcard keymaps/default/makefile.mk)","")
+ include keymaps/default/makefile.mk
+endif
+
+endif
+
+ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
+ SRC := backlight.c $(SRC)
+endif
# Optimize size but this may cause error "relocation truncated to fit"
#EXTRALDFLAGS = -Wl,--relax
@@ -158,4 +183,4 @@ VPATH += $(TARGET_DIR)
VPATH += $(TOP_DIR)
VPATH += $(TMK_DIR)
-include $(TOP_DIR)/quantum/quantum.mk
+include $(TOP_DIR)/quantum/quantum.mk \ No newline at end of file
diff --git a/keyboard/planck/config.h b/keyboard/planck/config.h
index d3719e0cb1..7d64f09773 100644
--- a/keyboard/planck/config.h
+++ b/keyboard/planck/config.h
@@ -73,10 +73,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* disable debug print */
-#define NO_DEBUG
+//#define NO_DEBUG
/* disable print */
-#define NO_PRINT
+//#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
diff --git a/keyboard/planck/keymaps/bone2planck.c b/keyboard/planck/keymaps/bone2planck.c
new file mode 100644
index 0000000000..a99e7719f9
--- /dev/null
+++ b/keyboard/planck/keymaps/bone2planck.c
@@ -0,0 +1,112 @@
+
+#include "planck.h"
+#ifdef BACKLIGHT_ENABLE
+#include "backlight.h"
+#endif
+#include "..\..\quantum\keymap_extras\keymap_german.h"
+
+/* This Layout tries to emulate the Bone2 Variant of Neo2, and is intended to be used with a German QWERTZ Softwarelayout.
+ It has Umlauts and "ß" as it is optimized for a mix of German & English.
+ My favourite features are the placement of the special characters often used for programming right on the home row
+ and the number & navigation block combo, so you never have to move your hands from their home position.
+
+ Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone
+*/
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ /* Bone2
+ * ,-----------------------------------------------------------------------------------.
+ * | Q | J | D | U | A | X | P | H | L | M | W | ẞ |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | M1 | C | T | I | E | O | B | N | R | S | G | M1 |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter |
+ * `-----------------------------------------------------------------------------------'
+ */
+ [0] = {
+ { DE_Q, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_SS },
+ { MO(1), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, MO(1) },
+ { DE_S, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, DE_S },
+ { KC_LCTL, KC_LGUI, KC_LALT, MO(3), MO(2), KC_SPC, KC_SPC, MO(2), MO(3), KC_ESC, KC_TAB, KC_ENT }
+ },
+
+ /* M1 Special Characters
+ * ,-----------------------------------------------------------------------------------.
+ * | ° | @ | _ | [ | ] | ^ | ! | < | > | = | & | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | M1 | \ | / | { | } | * | ? | ( | ) | - | : | M1 |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | # | $ | | | ~ | € | + | % | " | ' | ; | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter |
+ * `-----------------------------------------------------------------------------------'
+ */
+ [1] = {
+ { DE_RING, DE_AT, DE_UNDS, DE_LBRC, DE_RBRC, DE_CIRC, DE_EXLM, DE_LESS, DE_MORE, DE_EQL, DE_AMPR, KC_NO },
+ { KC_TRNS, DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR, DE_QST, DE_LPRN, DE_RPRN, DE_MINS, DE_COLN, KC_TRNS },
+ { KC_NO , DE_HASH, DE_DLR, DE_PIPE, DE_TILD, DE_EURO, DE_PLUS, DE_PERC, DE_DQOT, DE_QUOT, DE_SCLN, KC_NO },
+ { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }
+ },
+
+ /* Navigation & Number Blocks
+ * ,-----------------------------------------------------------------------------------.
+ * | | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | Home | Lft | Down | Right| End | . | 4 | 5 | 6 | , | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| | Tab | Ins | Enter| | 0 | 1 | 2 | 3 | ; |Shift |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter |
+ * `-----------------------------------------------------------------------------------'
+ */
+ [2] = {
+ { KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_NO },
+ { KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_NO },
+ { DE_S, KC_NO, KC_TAB, KC_INS, KC_ENT, KC_NO, KC_0, DE_1, DE_2, DE_3, DE_SCLN, DE_S },
+ { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }
+ },
+
+ /* Function & Media Keys
+ * ,-----------------------------------------------------------------------------------.
+ * | | | Print|Scroll|Pause | | | F7 | F8 | F9 | F12 | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | Mute | Vol- | Vol+ | | ³ | F4 | F5 | F6 | F11 | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | GUI | Alt | M3 | | Space | | M3 | Esc | Tab |Enter |
+ * `-----------------------------------------------------------------------------------'
+ */
+ [3] = {
+ { KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F12, KC_NO },
+ { KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO },
+ { KC_TRNS, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, KC_TRNS},
+ { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
+ }
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ switch (id) {
+ case 0:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+#ifdef BACKLIGHT_ENABLE
+ backlight_step();
+#endif
+ }
+ else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
diff --git a/keyboard/planck/keymaps/default/README.md b/keyboard/planck/keymaps/default/README.md
index d2f43bbdb8..de9680b498 100644
--- a/keyboard/planck/keymaps/default/README.md
+++ b/keyboard/planck/keymaps/default/README.md
@@ -1,34 +1,2 @@
# The Default Planck Layout
- const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QW] = { /* Qwerty */
- {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
- {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
- {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
- {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
- },
- [_CM] = { /* Colemak */
- {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
- {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
- {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
- {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
- },
- [_DV] = { /* Dvorak */
- {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
- {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
- {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT },
- {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
- },
- [_RS] = { /* RAISE */
- {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
- {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
- {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS},
- {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
- },
- [_LW] = { /* LOWER */
- {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
- {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
- {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS},
- {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
- }
- }; \ No newline at end of file
diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c
index a7541b0b87..fa9c3915a8 100644
--- a/keyboard/planck/keymaps/default/keymap.c
+++ b/keyboard/planck/keymaps/default/keymap.c
@@ -2,19 +2,46 @@
// this is the style you want to emulate.
#include "planck.h"
-#ifdef BACKLIGHT_ENABLE
- #include "backlight.h"
+#include "action_layer.h"
+#ifdef AUDIO_ENABLE
+ #include "audio.h"
#endif
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
-#define _QW 0
-#define _CM 1
-#define _DV 2
-#define _LW 3
-#define _RS 4
+#define _QWERTY 0
+#define _COLEMAK 1
+#define _DVORAK 2
+#define _LOWER 3
+#define _RAISE 4
+#define _MUSIC 5
+#define _PLOVER 6
+#define _ADJUST 16
+
+// Macro name shortcuts
+#define QWERTY M(_QWERTY)
+#define COLEMAK M(_COLEMAK)
+#define DVORAK M(_DVORAK)
+#define LOWER M(_LOWER)
+#define RAISE M(_RAISE)
+#define M_BL 5
+#define AUD_OFF M(6)
+#define AUD_ON M(7)
+#define MUS_OFF M(8)
+#define MUS_ON M(9)
+#define VC_IN M(10)
+#define VC_DE M(11)
+#define PLOVER M(12)
+#define EXT_PLV M(13)
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -29,11 +56,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
* `-----------------------------------------------------------------------------------'
*/
-[_QW] = {
+[_QWERTY] = {
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
{KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
- {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+ {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
},
/* Colemak
@@ -47,11 +74,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
* `-----------------------------------------------------------------------------------'
*/
-[_CM] = {
+[_COLEMAK] = {
{KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
{KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
- {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+ {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
},
/* Dvorak
@@ -65,59 +92,174 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
* `-----------------------------------------------------------------------------------'
*/
-[_DV] = {
+[_DVORAK] = {
{KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
{KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
{KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT },
- {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+ {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+},
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = {
+ {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
+ {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
+ {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
},
/* Raise
* ,-----------------------------------------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
* |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter |
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Next | Vol- | Vol+ | Play |
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
* `-----------------------------------------------------------------------------------'
*/
-[_RS] = {
+[_RAISE] = {
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
- {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
- {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS},
- {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+ {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
+ {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
},
-/* Lower
+/* Music (reserved for process_action_user)
+ *
+ */
+[_MUSIC] = {
+ {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
+ {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
+ {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
+ {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}
+},
+
+/* Plover layer (http://opensteno.org)
* ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
+ * | # | # | # | # | # | # | # | # | # | # | # | # |
* |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
+ * | | S | T | P | H | * | * | F | P | L | T | D |
* |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter |
+ * | | S | K | W | R | * | * | R | B | G | S | Z |
* |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Next | Vol- | Vol+ | Play |
+ * | Exit | | | A | O | | E | U | | | |
* `-----------------------------------------------------------------------------------'
*/
-[_LW] = {
- {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
- {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
- {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS},
- {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+
+[_PLOVER] = {
+ {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 },
+ {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC},
+ {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
+ {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX}
+},
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * | | Reset| | | | | | | | | | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | |Voice-|Voice+|Mus on|Musoff| | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = {
+ {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL},
+ {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______},
+ {_______, VC_DE, VC_IN, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
}
+
+
};
const uint16_t PROGMEM fn_actions[] = {
};
+#ifdef AUDIO_ENABLE
+float tone_startup[][2] = {
+ {440.0*pow(2.0,(31)/12.0), 12},
+ {440.0*pow(2.0,(28)/12.0), 8},
+ {440.0*pow(2.0,(19)/12.0), 8},
+ {440.0*pow(2.0,(24)/12.0), 8},
+ {440.0*pow(2.0,(28)/12.0), 20}
+};
+
+float tone_qwerty[][2] = SONG(QWERTY_SOUND);
+float tone_dvorak[][2] = SONG(DVORAK_SOUND);
+float tone_colemak[][2] = SONG(COLEMAK_SOUND);
+float tone_plover[][2] = SONG(PLOVER_SOUND);
+float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
+
+float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
+float goodbye[][2] = SONG(GOODBYE_SOUND);
+#endif
+
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
- // MACRODOWN only works in this function
switch(id) {
- case 0:
+ case _QWERTY:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_QWERTY);
+ }
+ break;
+ case _COLEMAK:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_colemak, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_COLEMAK);
+ }
+ break;
+ case _DVORAK:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
+ #endif
+ persistant_default_layer_set(1UL<<_DVORAK);
+ }
+ break;
+ case _LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ break;
+ case _RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ break;
+ case M_BL:
if (record->event.pressed) {
register_code(KC_RSFT);
#ifdef BACKLIGHT_ENABLE
@@ -127,6 +269,111 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
unregister_code(KC_RSFT);
}
break;
+ case 6:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ audio_off();
+ #endif
+ }
+ break;
+ case 7:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ audio_on();
+ PLAY_NOTE_ARRAY(tone_startup, false, 0);
+ #endif
+ }
+ break;
+ case 8:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ layer_off(_MUSIC);
+ stop_all_notes();
+ #endif
+ }
+ break;
+ case 9:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(music_scale, false, 0);
+ layer_on(_MUSIC);
+ #endif
+ }
+ break;
+ case 10:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ voice_iterate();
+ PLAY_NOTE_ARRAY(music_scale, false, 0);
+ #endif
+ }
+ break;
+ case 11:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ voice_deiterate();
+ PLAY_NOTE_ARRAY(music_scale, false, 0);
+ #endif
+ }
+ break;
+ case 12:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_plover, false, 0);
+ #endif
+ layer_off(_RAISE);
+ layer_off(_LOWER);
+ layer_off(_ADJUST);
+ layer_off(_MUSIC);
+ stop_all_notes();
+ layer_on(_PLOVER);
+ if (!eeconfig_is_enabled()) {
+ eeconfig_init();
+ }
+ keymap_config.raw = eeconfig_read_keymap();
+ keymap_config.nkro = 1;
+ eeconfig_update_keymap(keymap_config.raw);
+ }
+ break;
+ case 13:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_plover_gb, false, 0);
+ #endif
+ layer_off(_PLOVER);
+ }
+ break;
+
}
return MACRO_NONE;
};
+
+void matrix_init_user(void) {
+ #ifdef AUDIO_ENABLE
+ _delay_ms(20); // stops the tick
+ PLAY_NOTE_ARRAY(tone_startup, false, 0);
+ #endif
+}
+
+#ifdef AUDIO_ENABLE
+void play_goodbye_tone()
+{
+ PLAY_NOTE_ARRAY(goodbye, false, 0);
+ _delay_ms(150);
+}
+
+uint8_t starting_note = 0x0C;
+int offset = 7;
+
+void process_action_user(keyrecord_t *record) {
+
+ if (IS_LAYER_ON(_MUSIC)) {
+ if (record->event.pressed) {
+ play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF);
+ } else {
+ stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)));
+ }
+ }
+
+}
+#endif
diff --git a/keyboard/planck/keymaps/default/makefile.mk b/keyboard/planck/keymaps/default/makefile.mk
new file mode 100644
index 0000000000..99fbfbd0bb
--- /dev/null
+++ b/keyboard/planck/keymaps/default/makefile.mk
@@ -0,0 +1,2 @@
+AUDIO_ENABLE = yes
+NKRO_ENABLE = yes \ No newline at end of file
diff --git a/keyboard/planck/keymaps/pvc/config.h b/keyboard/planck/keymaps/pvc/config.h
new file mode 100644
index 0000000000..7d64f09773
--- /dev/null
+++ b/keyboard/planck/keymaps/pvc/config.h
@@ -0,0 +1,88 @@
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef CONFIG_H
+#define CONFIG_H
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x6060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Ortholinear Keyboards
+#define PRODUCT The Planck Keyboard
+#define DESCRIPTION A compact ortholinear keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 12
+
+/* Planck PCB default pin-out */
+#define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
+#define ROWS (int []){ D0, D5, B5, B6 }
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+#define BACKLIGHT_LEVELS 3
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* ws2812 RGB LED */
+#define ws2812_PORTREG PORTD
+#define ws2812_DDRREG DDRD
+#define ws2812_pin PD1
+#define RGBLED_NUM 28 // Number of LEDs
+#define RGBLIGHT_HUE_STEP 10
+#define RGBLIGHT_SAT_STEP 17
+#define RGBLIGHT_VAL_STEP 17
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#endif
diff --git a/keyboard/planck/keymaps/pvc/keymap.c b/keyboard/planck/keymaps/pvc/keymap.c
new file mode 100644
index 0000000000..27850b2154
--- /dev/null
+++ b/keyboard/planck/keymaps/pvc/keymap.c
@@ -0,0 +1,536 @@
+#include "planck.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+#include "led.h"
+
+#ifdef AUDIO_ENABLE
+ #include "audio.h"
+ #include "song_list.h"
+#endif
+
+#define LAYER_QWERTY 0
+#define LAYER_COLEMAK 1
+#define LAYER_DVORAK 2
+#define LAYER_LOWER 3
+#define LAYER_RAISE 4
+#define LAYER_FUNCTION 5
+#define LAYER_MOUSE 6
+#define LAYER_MUSIC 7
+#define LAYER_ADJUST 8
+
+#define MACRO_QWERTY 0
+#define MACRO_COLEMAK 1
+#define MACRO_DVORAK 2
+#define MACRO_LOWER 3
+#define MACRO_RAISE 4
+#define MACRO_FUNCTION 5
+#define MACRO_MOUSE 6
+#define MACRO_TIMBRE_1 7
+#define MACRO_TIMBRE_2 8
+#define MACRO_TIMBRE_3 9
+#define MACRO_TIMBRE_4 10
+#define MACRO_TEMPO_U 11
+#define MACRO_TEMPO_D 12
+#define MACRO_TONE_DEFAULT 13
+#define MACRO_MUSIC_ON 14
+#define MACRO_MUSIC_OFF 15
+#define MACRO_AUDIO_ON 16
+#define MACRO_AUDIO_OFF 17
+#define MACRO_INC_VOICE 18
+#define MACRO_DEC_VOICE 19
+
+#define M_QWRTY M(MACRO_QWERTY)
+#define M_COLMK M(MACRO_COLEMAK)
+#define M_DVORK M(MACRO_DVORAK)
+#define M_LOWER M(MACRO_LOWER)
+#define M_RAISE M(MACRO_RAISE)
+#define M_FUNCT M(MACRO_FUNCTION)
+#define M_MOUSE M(MACRO_MOUSE)
+#define TIMBR_1 M(MACRO_TIMBRE_1)
+#define TIMBR_2 M(MACRO_TIMBRE_2)
+#define TIMBR_3 M(MACRO_TIMBRE_3)
+#define TIMBR_4 M(MACRO_TIMBRE_4)
+#define TMPO_UP M(MACRO_TEMPO_U)
+#define TMPO_DN M(MACRO_TEMPO_D)
+#define TMPO_DF M(MACRO_TONE_DEFAULT)
+
+
+#define MUS_ON M(MACRO_MUSIC_ON)
+#define MUS_OFF M(MACRO_MUSIC_OFF)
+#define AUD_OFF M(MACRO_AUDIO_OFF)
+#define AUD_ON M(MACRO_AUDIO_ON)
+#define VC_UP M(MACRO_INC_VOICE)
+#define VC_DOWN M(MACRO_DEC_VOICE)
+
+
+#define SC_UNDO LCTL(KC_Z)
+#define SC_REDO LCTL(KC_Y)
+#define SC_CUT LCTL(KC_X)
+#define SC_COPY LCTL(KC_C)
+#define SC_PSTE LCTL(KC_V)
+#define SC_SELA LCTL(KC_A)
+#define SC_SAVE LCTL(KC_S)
+#define SC_OPEN LCTL(KC_O)
+#define SC_ACLS LALT(KC_F4)
+#define SC_CCLS LCTL(KC_F4)
+
+
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+#define ________________ _______, _______
+#define XXXXXXXXXXXXXXXX XXXXXXX, XXXXXXX
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* QWERTY
+ * .-----------------------------------------------------------------------------------------------------------.
+ * | TAB | Q | W | E | R | T | Y | U | I | O | P | BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | ESC | A | S | D | F | G | H | J | K | L | ; | ' |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | ENTER |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | LCTRL | LWIN | FN | LALT | RAISE | SPACE | SPACE | LOWER | UP | DOWN | LEFT | RIGHT |
+ * '-----------------------------------------------------------------------------------------------------------'
+ */
+
+ [LAYER_QWERTY] = { /* QWERTY */
+ { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC },
+ { KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT },
+ { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
+ { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT },
+ },
+
+/* COLEMAK
+ * .-----------------------------------------------------------------------------------------------------------.
+ * | TAB | Q | W | F | P | G | J | L | U | Y | ; | ESC |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | BACKSP | A | R | S | T | D | H | N | E | I | O | ' |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | LSHIFT | Z | X | C | V | B | K | M | , | . | / | ENTER |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | LCTRL | LWIN | FN | LALT | RAISE | SPACE | SPACE | LOWER | UP | DOWN | LEFT | RIGHT |
+ * '-----------------------------------------------------------------------------------------------------------'
+ */
+
+ [LAYER_COLEMAK] = { /* COLEMAK */
+ { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_ESC },
+ { KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT },
+ { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
+ { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT },
+ },
+
+/* DVORAK
+ * .-----------------------------------------------------------------------------------------------------------.
+ * | TAB | ' | , | . | P | Y | F | G | C | R | L | BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | ESC | A | O | E | U | I | D | H | T | N | S | ' |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | ENTER |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | LCTRL | LWIN | FN | LALT | RAISE | SPACE | SPACE | LOWER | UP | DOWN | LEFT | RIGHT |
+ * '-----------------------------------------------------------------------------------------------------------'
+ */
+
+ [LAYER_DVORAK] = { /* DVORAK */
+ { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC },
+ { KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH },
+ { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT },
+ { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT },
+ },
+
+/* Raise
+ * .-----------------------------------------------------------------------------------------------------------.
+ * | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | DEL |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | XXXXXX | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | [ | ] | \ |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | LSHIFT | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX | XXXXXX | XXXXXX | XXXXXX | ENTER |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | LCTRL | LWIN | FN | LALT | RAISE | BACKSP | BACKSP | LOWER | PG UP | PG DN | HOME | END |
+ * '-----------------------------------------------------------------------------------------------------------'
+ */
+
+ [LAYER_RAISE] = { /* RAISED */
+ { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL },
+ { XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS },
+ { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
+ { _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END },
+ },
+
+
+/* LOWERED
+ * .-----------------------------------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | INS |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | XXXXXX | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | LSHIFT | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX | XXXXXX | XXXXXX | XXXXXX | ENTER |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | LCTRL | LWIN | FN | LALT | RAISE | BACKSP | BACKSP | LOWER | PG UP | PG DN | HOME | END |
+ * '-----------------------------------------------------------------------------------------------------------'
+ */
+
+ [LAYER_LOWER] = { /* LOWERED */
+ { KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_INS },
+ { XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS },
+ { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
+ { _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END },
+ },
+
+/* FUNCTION
+ * .-----------------------------------------------------------------------------------------------------------.
+ * | NUM LK | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | PAUSE |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | CAP LK | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | PRINT |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | SCR LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MUTE |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | LCTRL | LWIN | FN | LALT | RAISE | PLAY | PLAY | LOWER | VOL UP | VOL DN | NEXT | PREV |
+ * '-----------------------------------------------------------------------------------------------------------'
+ */
+ [LAYER_FUNCTION] = { /* FUNCTION */
+ { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PAUS },
+ { KC_CAPS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_PSCR },
+ { KC_SLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE },
+ { _______, _______, _______, _______, _______, KC_MPLY, KC_MPLY, _______, KC_VOLU, KC_VOLD, KC_MPRV, KC_MNXT },
+ },
+
+#ifdef MOUSEKEY_ENABLE
+
+ [LAYER_MOUSE] = { /* MOUSE */
+ { KC_ESC, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC },
+ { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
+ { _______, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_U, KC_WH_D },
+ { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, KC_MS_U, KC_MS_D, KC_MS_L, KC_MS_R },
+ },
+
+#endif
+
+ [LAYER_MUSIC] = { /* MUSIC */
+ { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
+ { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
+ { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
+ { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_RAISE, XXXXXXX, XXXXXXX, M_LOWER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
+ },
+
+ [LAYER_ADJUST] = { /* ADJUST */
+ { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, MUS_ON, MUS_OFF, AUD_ON, AUD_OFF },
+ { _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______ },
+ { _______, _______, _______, _______, _______, RESET, _______, M_MOUSE, _______, _______, _______, _______ },
+ { _______, _______, _______, _______, _______, _______, _______, _______, VC_UP, VC_DOWN, _______, _______ },
+ },
+
+
+/*
+ [LAYER_EMPTY] = {
+ { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, },
+ { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, },
+ { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, },
+ { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, },
+ },
+*/
+
+};
+
+#ifdef AUDIO_ENABLE
+
+float tone_my_startup[][2] = SONG(ODE_TO_JOY);
+float tone_my_goodbye[][2] = SONG(ROCK_A_BYE_BABY);
+
+float tone_qwerty[][2] = SONG(QWERTY_SOUND);
+float tone_dvorak[][2] = SONG(DVORAK_SOUND);
+float tone_colemak[][2] = SONG(COLEMAK_SOUND);
+
+float tone_audio_on[][2] = SONG(CLOSE_ENCOUNTERS_5_NOTE);
+float tone_music_on[][2] = SONG(DOE_A_DEER);
+float tone_caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND);
+float tone_caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND);
+float tone_numlk_on[][2] = SONG(NUM_LOCK_ON_SOUND);
+float tone_numlk_off[][2] = SONG(NUM_LOCK_OFF_SOUND);
+float tone_scroll_on[][2] = SONG(SCROLL_LOCK_ON_SOUND);
+float tone_scroll_off[][2] = SONG(SCROLL_LOCK_OFF_SOUND);
+float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
+
+#endif /* AUDIO_ENABLE */
+
+void persistant_default_layer_set(uint16_t default_layer)
+{
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+const uint16_t PROGMEM fn_actions[] = {
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+
+ // MACRODOWN only works in this function
+ switch(id)
+ {
+
+ case MACRO_QWERTY:
+ if (record->event.pressed)
+ {
+ persistant_default_layer_set(1UL<<LAYER_QWERTY);
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_qwerty, false, STACCATO);
+ #endif /* AUDIO_ENABLE */
+ }
+ break;
+
+ case MACRO_COLEMAK:
+ if (record->event.pressed)
+ {
+ persistant_default_layer_set(1UL<<LAYER_COLEMAK);
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_colemak, false, STACCATO);
+ #endif /* AUDIO_ENABLE */
+ }
+ break;
+
+ case MACRO_DVORAK:
+ if (record->event.pressed)
+ {
+ persistant_default_layer_set(1UL<<LAYER_DVORAK);
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_dvorak, false, STACCATO);
+ #endif /* AUDIO_ENABLE */
+ }
+ break;
+
+ case MACRO_LOWER:
+ if (record->event.pressed)
+ {
+ layer_on(LAYER_LOWER);
+ update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST);
+ }
+ else
+ {
+ layer_off(LAYER_LOWER);
+ update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST);
+ }
+ break;
+
+ case MACRO_RAISE:
+ if (record->event.pressed)
+ {
+ layer_on(LAYER_RAISE);
+ update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST);
+ }
+ else
+ {
+ layer_off(LAYER_RAISE);
+ update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST);
+ }
+ break;
+
+ case MACRO_FUNCTION:
+ if (record->event.pressed)
+ {
+ layer_on(LAYER_FUNCTION);
+ }
+ else
+ {
+ layer_off(LAYER_FUNCTION);
+ }
+ break;
+
+#ifdef MOUSEKEY_ENABLE
+
+ case MACRO_MOUSE:
+ if (record->event.pressed)
+ {
+ layer_invert(LAYER_MOUSE);
+ }
+ break;
+
+#endif /* MOUSEKEY_ENABLE */
+
+#ifdef AUDIO_ENABLE
+
+ case MACRO_TIMBRE_1:
+ if (record->event.pressed) set_timbre(TIMBRE_12);
+ break;
+
+ case MACRO_TIMBRE_2:
+ if (record->event.pressed) set_timbre(TIMBRE_25);
+ break;
+
+ case MACRO_TIMBRE_3:
+ if (record->event.pressed) set_timbre(TIMBRE_50);
+ break;
+
+ case MACRO_TIMBRE_4:
+ if (record->event.pressed) set_timbre(TIMBRE_75);
+ break;
+
+ case MACRO_TEMPO_U:
+ if (record->event.pressed) increase_tempo(10);
+ break;
+
+ case MACRO_TEMPO_D:
+ if (record->event.pressed) decrease_tempo(10);
+ break;
+
+ case MACRO_TONE_DEFAULT:
+ if (record->event.pressed)
+ {
+ set_timbre(TIMBRE_DEFAULT);
+ set_tempo(TEMPO_DEFAULT);
+ }
+ break;
+
+ case MACRO_AUDIO_OFF:
+ if (record->event.pressed)
+ {
+ #ifdef AUDIO_ENABLE
+ audio_off();
+ #endif
+ }
+ break;
+
+ case MACRO_AUDIO_ON:
+ if (record->event.pressed)
+ {
+ #ifdef AUDIO_ENABLE
+ audio_on();
+ PLAY_NOTE_ARRAY(tone_audio_on, false, STACCATO);
+ #endif
+ }
+ break;
+
+ case MACRO_MUSIC_ON:
+ if (record->event.pressed)
+ {
+ #ifdef AUDIO_ENABLE
+ PLAY_NOTE_ARRAY(tone_music_on, false, STACCATO);
+ layer_on(LAYER_MUSIC);
+ #endif
+ }
+ break;
+
+ case MACRO_MUSIC_OFF:
+ if (record->event.pressed)
+ {
+ #ifdef AUDIO_ENABLE
+ layer_off(LAYER_MUSIC);
+ stop_all_notes();
+ #endif
+ }
+ break;
+
+ case MACRO_INC_VOICE:
+ if (record->event.pressed)
+ {
+ #ifdef AUDIO_ENABLE
+ voice_iterate();
+ PLAY_NOTE_ARRAY(music_scale, false, STACCATO);
+ #endif
+ }
+ break;
+
+ case MACRO_DEC_VOICE:
+ if (record->event.pressed)
+ {
+ #ifdef AUDIO_ENABLE
+ voice_deiterate();
+ PLAY_NOTE_ARRAY(music_scale, false, STACCATO);
+ #endif
+ }
+ break;
+
+#endif /* AUDIO_ENABLE */
+
+ default:
+ break;
+
+ }
+ return MACRO_NONE;
+};
+
+
+#ifdef AUDIO_ENABLE
+
+
+void process_action_user(keyrecord_t *record)
+{
+
+ uint8_t starting_note = 0x0C;
+ int offset = 7;
+
+ if (IS_LAYER_ON(LAYER_MUSIC))
+ {
+ if (record->event.pressed)
+ {
+ play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF);
+ }
+ else
+ {
+ stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)));
+ }
+ }
+}
+
+
+void matrix_init_user(void)
+{
+ set_voice(default_voice);
+ play_startup_tone();
+ println("Matrix Init");
+}
+
+void led_set_user(uint8_t usb_led)
+{
+ static uint8_t old_usb_led = 0;
+
+ _delay_ms(10); // gets rid of tick
+
+ if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK)))
+ {
+ // If CAPS LK LED is turning on...
+ PLAY_NOTE_ARRAY(tone_caps_on, false, LEGATO);
+ }
+ else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK)))
+ {
+ // If CAPS LK LED is turning off...
+ PLAY_NOTE_ARRAY(tone_caps_off, false, LEGATO);
+ }
+ else if ((usb_led & (1<<USB_LED_NUM_LOCK)) && !(old_usb_led & (1<<USB_LED_NUM_LOCK)))
+ {
+ // If NUM LK LED is turning on...
+ PLAY_NOTE_ARRAY(tone_numlk_on, false, LEGATO);
+ }
+ else if (!(usb_led & (1<<USB_LED_NUM_LOCK)) && (old_usb_led & (1<<USB_LED_NUM_LOCK)))
+ {
+ // If NUM LED is turning off...
+ PLAY_NOTE_ARRAY(tone_numlk_off, false, LEGATO);
+ }
+ else if ((usb_led & (1<<USB_LED_SCROLL_LOCK)) && !(old_usb_led & (1<<USB_LED_SCROLL_LOCK)))
+ {
+ // If SCROLL LK LED is turning on...
+ PLAY_NOTE_ARRAY(tone_scroll_on, false, LEGATO);
+ }
+ else if (!(usb_led & (1<<USB_LED_SCROLL_LOCK)) && (old_usb_led & (1<<USB_LED_SCROLL_LOCK)))
+ {
+ // If SCROLL LED is turning off...
+ PLAY_NOTE_ARRAY(tone_scroll_off, false, LEGATO);
+ }
+ old_usb_led = usb_led;
+}
+
+
+void play_startup_tone()
+{
+ _delay_ms(10); // gets rid of tick
+ PLAY_NOTE_ARRAY(tone_my_startup, false, STACCATO);
+}
+
+void play_goodbye_tone()
+{
+ PLAY_NOTE_ARRAY(tone_my_goodbye, false, STACCATO);
+ _delay_ms(1000);
+}
+
+#endif /* AUDIO_ENABLE */ \ No newline at end of file
diff --git a/keyboard/planck/keymaps/pvc/makefile.mk b/keyboard/planck/keymaps/pvc/makefile.mk
new file mode 100644
index 0000000000..4b9e34c53f
--- /dev/null
+++ b/keyboard/planck/keymaps/pvc/makefile.mk
@@ -0,0 +1,16 @@
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = yes # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+CONFIG_H = keymaps/$(KEYMAP)/config.h
diff --git a/keyboard/planck/planck_pcb.hex b/keyboard/planck/planck_pcb_r3.hex
index 11f523c058..11f523c058 100644
--- a/keyboard/planck/planck_pcb.hex
+++ b/keyboard/planck/planck_pcb_r3.hex
diff --git a/keyboard/planck/planck_with_bootloader.hex b/keyboard/planck/planck_pcb_r3_w_bootloader.hex
index c61dfb743a..c61dfb743a 100755
--- a/keyboard/planck/planck_with_bootloader.hex
+++ b/keyboard/planck/planck_pcb_r3_w_bootloader.hex
diff --git a/keyboard/planck/planck_pcb_r4.hex b/keyboard/planck/planck_pcb_r4.hex
new file mode 100644
index 0000000000..889af7f225
--- /dev/null
+++ b/keyboard/planck/planck_pcb_r4.hex
@@ -0,0 +1,1628 @@
+:100000000C94FE040C9442050C9442050C94420599
+:100010000C9442050C9442050C9442050C94420544
+:100020000C9442050C9442050C94A6180C94781973
+:100030000C94DB270C9442050C9442050C94420569
+:100040000C9442050C9442050C9442050C94420514
+:100050000C9442050C9443280C9442050C944205E0
+:100060000C9442050C9442050C9442050C944205F4
+:100070000C9442050C9442050C9442050C944205E4
+:100080000C94D10E0C9442050C9442050C9442053C
+:100090000C9442050C9442050C9442050C944205C4
+:1000A0000C9442050C9442050C9442059D05AD0547
+:1000B000BF05CF05D505E405F005F60504060D06D8
+:1000C0001E062E06340664069013901390139013A8
+:1000D000901390139013901390139013A713A713DA
+:1000E000A713A713A713A713A713A713A713A71340
+:1000F00090139013901390139013A713A713A713A3
+:10010000A713A713901390139013A713A713A71364
+:10011000E519071AF51A071AF51A4C1A6F1AF51A83
+:10012000C41AD71ADA1DDA1D171E171E711EAF1E4C
+:1001300027212721C81E2721C91FC91F8C20A320C2
+:100140002721122107634236B79BD8A71A39685670
+:1001500018AEBAAB558C1D3CB7CC5763BD6DEDFDE9
+:10016000753EF6177231BF000000803F08000000A6
+:10017000BE922449123EABAAAA2ABECDCCCC4C3E9C
+:1001800000000080BEABAAAAAA3E00000000BF008B
+:100190000000803F0000000000084178D3BB438787
+:1001A000D1133D190E3CC3BD4282AD2B3E68EC829B
+:1001B00076BED98FE1A93E4C80EFFFBE01C4FF7F20
+:1001C0003F00000000002B0014001A00080015007A
+:1001D00017001C0018000C00120013002A00290050
+:1001E00004001600070009000A000B000D000E00B5
+:1001F0000F0033003400E1001D001B000600190051
+:1002000005001100100036003700380028000530C6
+:10021000E000E200E30003302C002C00043050002A
+:10022000510052004F002B0014001A000900130067
+:100230000A000D000F0018001C0033002A002900DE
+:10024000040015001600170007000B00110008003D
+:100250000C0012003400E1001D001B000600190014
+:1002600005000E0010003600370038002800053069
+:10027000E000E200E30003302C002C0004305000CA
+:10028000510052004F002B0034003600370013009D
+:100290001C0009000A00060015000F002A002900B2
+:1002A00004001200080018000C0007000B001700E3
+:1002B000110016003800E100330014000D000E009C
+:1002C0001B00050010001A0019001D002800053051
+:1002D000E000E200E30003302C002C00043050006A
+:1002E000510052004F0035021E021F02200221025F
+:1002F0002202230224022502260227022A004C00A1
+:100300003A003B003C003D003E003F002D022E0223
+:100310002F02300231020100400041004200430040
+:10032000440045000100010001000100010001003E
+:100330000100010001000100010001000100AB000B
+:10034000AA00A900AE0035001E001F0020002100F9
+:100350002200230024002500260027002A004C004C
+:100360003A003B003C003D003E003F002D002E00C7
+:100370002F003000310001004000410042004300E6
+:1003800044004500010001000100010001000100DE
+:100390000100010001000100010001000100AB00AB
+:1003A000AA00A900AE00000000000000000000004C
+:1003B000000000000000000000000000000000003D
+:1003C000000000000000000000000000000000002D
+:1003D000000000000000000000000000000000001D
+:1003E000000000000000000000000000000000000D
+:1003F0000000000000000330000000000430000096
+:100400000000000000001E001E001E001E001E0056
+:100410001E001E001E001E001E001E001E0000000A
+:1004200014001A000800150017001C0018000C002A
+:10043000120013002F00000004001600070009003E
+:100440000A000B000D000E000F00330034000D30C9
+:10045000000000000600190000000000110010005C
+:10046000000000000000000000000000000000008C
+:10047000000000000000000000000000000000007C
+:10048000000000000000000000000000000000006C
+:10049000000000000000000000000000000000005C
+:1004A000000000000000000000000000000000004C
+:1004B000000000000000000000000000000000003C
+:1004C000000000000000000000000000000000002C
+:1004D000000000000000000000000000000000001C
+:1004E000000000000000000000000000000000000C
+:1004F00000000000000000000000000000000000FC
+:1005000000000000000000000000000000000000EB
+:1005100000000000000000000000000000000000DB
+:1005200000000000000000000000000000000000CB
+:1005300000000000000000000000000000000000BB
+:1005400000000000000000000000000000000000AB
+:10055000000000000000000000000000000000009B
+:10056000000000000000000000000000000000008B
+:10057000000000000000000000000000000000007B
+:10058000000000000000000000000000000000006B
+:10059000000000000000000000000000000000005B
+:1005A000000000000000000000000000000000004B
+:1005B000000000000000000000000000000000003B
+:1005C000000000000000000000000000000000002B
+:1005D000000000000000000000000000000000001B
+:1005E000000000000000000000000000000000000B
+:1005F00000000000000000000000000000000000FB
+:1006000000000000000000000000000000000000EA
+:1006100000000000000000000000000000000000DA
+:1006200000000000000000000000000000000000CA
+:1006300000000000000000000000000000000000BA
+:1006400000000000000000000000000000000000AA
+:10065000000000000000000000000000000000009A
+:10066000000000000000000000000000000000008A
+:10067000000000000000000000000000000000007A
+:10068000000000000000000000000000000000006A
+:10069000000000000000000000000000000000005A
+:1006A000000000000000000000000000000000004A
+:1006B000000000000000000000000000000000003A
+:1006C000000000000000000000000000000000002A
+:1006D000000000000000000000000000000000001A
+:1006E000000000000000000000000000000000000A
+:1006F00000000000000000000000000000000000FA
+:1007000000000000000000000000000000000000E9
+:1007100000000000000000000000000000000000D9
+:1007200000000000000000000000000000000000C9
+:1007300000000000000000000000000000000000B9
+:1007400000000000000000000000000000000000A9
+:100750000000000000000000000000000000000099
+:100760000000000000000000000000000000000089
+:100770000000000000000000000000000000000079
+:100780000000000000000000000000000000000069
+:100790000000000000000000000000000000000059
+:1007A0000000000000000000000000000000000049
+:1007B0000000000000000000000000000000000039
+:1007C00000000000000001000050010001000100D5
+:1007D0000100010001000100010001004C000100C6
+:1007E0000100010007300630135012500030013074
+:1007F00002300C30010001000B300A3009300830A3
+:1008000001000100010001000100010001000100E0
+:1008100001000100010001000100010001000100D0
+:100820000100010001002803540068006500200059
+:1008300050006C0061006E0063006B0020004B00F4
+:100840006500790062006F006100720064000000C2
+:100850002C034F007200740068006F006C00690088
+:100860006E0065006100720020004B006500790099
+:1008700062006F00610072006400730000000403F6
+:10088000090409026D00040100A0FA090400000136
+:1008900003010100092111010001223F0007058128
+:1008A0000308000A090401000103010200092111E3
+:1008B000010001224D000705820308000A09040215
+:1008C0000001030000000921110100012236000788
+:1008D00005830308000A090403000103000000095E
+:1008E00021110100012239000705840310000112C3
+:1008F00001100100000008EDFE606001000102002F
+:100900000105010906A101050719E029E7150025E0
+:1009100001950875018102050819012905950575DC
+:1009200001910295017503910105071900297715B9
+:10093000002501957875018102C005010980A1019A
+:10094000850216010026B7001A01002AB7007510AB
+:1009500095018100C0050C0901A101850316010064
+:10096000269C021A01002A9C02751095018100C084
+:1009700005010902A1010901A100050919012905C3
+:100980001500250195057501810295017503810109
+:100990000501093009311581257F95027508810609
+:1009A00009381581257F950175088106050C0A38DF
+:1009B000021581257F950175088106C0C0050109D2
+:1009C00006A101050719E029E7150025019508751D
+:1009D0000181029501750881010508190129059514
+:1009E000057501910295017503910105071900290B
+:1009F000FF150025FF950675088100C011241FBE54
+:100A0000CFEFDAE0DEBFCDBF04B603FE24C0809195
+:100A1000190490911A04A0911B04B0911C04873012
+:100A2000904BA740B04BB9F41092190410921A04DD
+:100A300010921B0410921C0414BE84B7877F84BFDD
+:100A400088E10FB6F89480936000109260000FBEAA
+:100A5000E0E0F8E3099513E0A0E0B1E0E4E8F3E6B4
+:100A600002C005900D92A431B107D9F714E0A4E1BA
+:100A7000B3E001C01D92A931B107E1F70E94EC1566
+:100A80000C94C0310C940000279A2F988FEF9FEFA1
+:100A900090938700809386008AE08093800089E1AC
+:100AA000809381000C94452D282F81110BC08091DB
+:100AB0008000877F8093800010928D0010928C00C0
+:100AC0002F9808952F9880918000886080938000EF
+:100AD000233019F48FEF9FEF0FC083E090E0821B6B
+:100AE0009109880F991F2FEF3FEFA90102C056957A
+:100AF00047958A95E2F7CA0190938D0080938C0008
+:100B00000895CF93DF93EC010E94DC28BE0180E0C2
+:100B100090E0DF91CF910C9407250F931F93462F00
+:100B200050E04E30510508F0DEC0DC01FA01EA5A0F
+:100B3000FF4F12968C910C948431882309F4D3C012
+:100B400000E010E0980140E064E070E08BE292E0A9
+:100B50000E944F1281E090E00FC0882309F4C3C0C7
+:100B600000E010E0980140E066E070E08BEB91E07F
+:100B70000E944F1282E090E00E948105B4C0882359
+:100B800009F4B1C000E010E0980140E068E070E0D6
+:100B90008BEE91E00E944F1284E090E0EDCF88232D
+:100BA00011F083E005C083E00CC0882349F084E0A5
+:100BB0000E94842540E164E083E00E94910A93C092
+:100BC00084E00E94A525F6CF882331F085EE0E94AF
+:100BD0006E1C0E949C2D87C085EE0E94361D83C02E
+:100BE000882309F480C00E94E30D7DC0882309F4A6
+:100BF0007AC00E94DC0D00E010E0980140E065E062
+:100C000070E08BE492E027C0882309F46CC085E093
+:100C10000E94A5250E94040E66C0882309F463C0C3
+:100C200000E010E0980140E068E070E08BE191E0C6
+:100C30000E944F1285E00E94842555C0882309F444
+:100C400052C00E94E21200E010E0980140E068E02B
+:100C500070E08BE191E00E944F1245C0882309F4B7
+:100C600042C00E94ED12EFCF8823E9F100E010E0CE
+:100C7000980140E066E070E08BE891E00E944F123E
+:100C800084E00E94A52583E00E94A52580E10E94C2
+:100C9000A52585E00E94A5250E94040E86E00E94FD
+:100CA00084250E94C928811102C00E94A5280E94A3
+:100CB000E12890E090931804809317048068809353
+:100CC00017040E94E5280FC0882369F000E010E0B7
+:100CD000980140E066E070E08BE591E00E944F12E1
+:100CE00086E00E94A52580E090E01F910F91089575
+:100CF0000F931F932FEF89EF90E021508040904099
+:100D0000E1F700C0000000E010E0980140E065E07D
+:100D100070E08BE492E00E944F121F910F910895B2
+:100D20000F931F9300E010E0980140E063E070E053
+:100D300083E091E00E944F122FEF82E597E021506F
+:100D400080409040E1F700C000001F910F9108958E
+:100D5000CF92DF92EF92FF920F931F93CF93DF9387
+:100D6000CDB7DEB7CC58D1090FB6F894DEBF0FBEB1
+:100D7000CDBF2091D10325FFC5C08C01FC0192811C
+:100D800080910201992309F460C096E4E0E9F2E061
+:100D9000DE01A95BBF4F01900D929A95E1F7F80132
+:100DA0009081E0910001F0910101E90FF11DEE0F3A
+:100DB000FF1F27E430E02C0F3D1FE20FF31F60817F
+:100DC0007181680F711D882777FD8095982F0E948B
+:100DD000E02E20E030E040E451E40E94452E6B011B
+:100DE0007C01F801218184E090E0821B9109BC0123
+:100DF000882777FD8095982F0E94E02E9B01AC01FB
+:100E0000C701B6010E94DD2D9B01AC0160E070E0DE
+:100E100080E090E40E94F72F20E030E04CE551E4C0
+:100E20000E94942F4FE050E0C457DF4F0FB6F89464
+:100E3000DEBF0FBECDBFDF91CF911F910F91FF900D
+:100E4000EF90DF90CF900C94EF1196E4E0E9F2E0A0
+:100E5000DE01119601900D929A95E1F7F8019081CB
+:100E6000E0910001F0910101E90FF11DEE0FFF1F6C
+:100E700021E030E02C0F3D1FE20FF31F60817181F4
+:100E8000680F711D882777FD8095982F0E94E02EAE
+:100E900020E030E040E451E40E94452E6B017C01EB
+:100EA000F801218184E090E0821B9109BC01882730
+:100EB00077FD8095982F0E94E02E9B01AC01C70121
+:100EC000B6010E94DD2D9B01AC0160E070E080E086
+:100ED00090E40E94F72F20E030E04CE551E40E94BE
+:100EE000942FC457DF4F0FB6F894DEBF0FBECDBFAF
+:100EF000DF91CF911F910F91FF90EF90DF90CF90F6
+:100F00000C94370EC457DF4F0FB6F894DEBF0FBEF8
+:100F1000CDBFDF91CF911F910F91FF90EF90DF90A8
+:100F2000CF90089508950E9444056E9A769A0C9485
+:100F300078060C9492070C94A8060895880F991FC0
+:100F4000FC01EA5BFF4F859194910895880F991FEA
+:100F5000FC01EA53FE4F8591949108950F931F93DE
+:100F6000CF93DF93EC01811520E49207A0F5C11522
+:100F700080E3D80708F0E1C0C83ED105D8F4C03EF0
+:100F8000D10508F0EEC1C83AD10578F4C53AD105CB
+:100F900008F074C0C130D10509F46DC008F4DEC199
+:100FA000C430D10508F0DDC1D9C1CB3BD10508F46F
+:100FB00070C0D4C1C11590E2D90708F0B9C0C115FD
+:100FC00021E0D20708F0CDC1C03FD10508F4C6C169
+:100FD0008E01106506C2C13080E5D80709F4BDC096
+:100FE00068F5C13120E4D20709F4AEC050F4C03135
+:100FF00090E4D90708F0A5C0CF70DD278E01146DED
+:10100000F0C1C33120E4D20709F4A4C008F49FC0A2
+:10101000C115D04509F0A2C10E944B210E94040EC7
+:101020000E9490069FEF24E38CE091502040804086
+:10103000E1F700C000000E946828D3C1C11520E676
+:10104000D20730F4C11581E5D80708F48CC02DC152
+:10105000C11590E7D90708F481C1C11520E8D2076E
+:1010600008F478C1C11580E9D80708F077C1DF70AE
+:101070008E01106AB6C101E010E0B3C1C53AD105D6
+:1010800009F471C1C63AD10509F070C102E810E453
+:10109000A8C1C83AD10509F46CC1C93AD10509F40F
+:1010A0006BC1CA3AD10509F46AC1CB3AD10509F43A
+:1010B00069C1CC3AD10509F468C1CD3AD10509F42A
+:1010C00067C1C03BD10509F466C1CE3AD10509F428
+:1010D00065C1CF3AD10509F464C1C13BD10509F41A
+:1010E00063C1C23BD10509F462C1C33BD10509F418
+:1010F00061C1C43BD10509F460C1C53BD10509F408
+:101100005FC1C63BD10509F45EC1C73BD10509F4F7
+:101110005DC1C83BD10509F45CC1C93BD10509F4E7
+:101120005BC1CA3BD10509F45AC100E014E459C1BE
+:10113000CE019F700E94A60755C1DD278E01106C5D
+:1011400050C100E011ED4DC100E010ED4AC100E0DA
+:1011500012ED47C100E013ED44C18091ED038160C1
+:101160008093ED033EC10E94C928811102C00E94F4
+:10117000A5280E94E12890E090931804809317041A
+:10118000C23090E5D90721F480911704816086C0B0
+:10119000C43020E5D20721F48091170482607EC01C
+:1011A000C63080E5D80721F480911704846076C0AA
+:1011B000C83090E5D90719F48091170427C0CA30C8
+:1011C00020E5D20721F480911704806167C0CC30FC
+:1011D00080E5D80721F48091170480625FC0CE308B
+:1011E00090E5D90721F480911704806457C0C0317D
+:1011F00020E5D20721F48091170480684FC0C231E6
+:1012000080E5D80729F4809117048460886046C07F
+:10121000C33090E5D90721F4809117048E7F3EC03A
+:10122000C53020E5D20721F4809117048D7F36C0A8
+:10123000C73080E5D80721F4809117048B7F2EC03A
+:10124000C93090E5D90719F48091170426C0CB3036
+:1012500020E5D20721F4809117048F7E1FC0CD3086
+:1012600080E5D80721F4809117048F7D17C0CF3017
+:1012700090E5D90721F4809117048F7B0FC0C1310D
+:1012800020E5D20721F4809117048F7707C0C3317E
+:10129000D04531F4809117048B7F877F80931704AA
+:1012A000809117040E94E5289CC08D2F99278F708C
+:1012B000992781309105D9F49E012370332702C00C
+:1012C000880F991F2A95E2F79C688E0144E0000F71
+:1012D000111F4A95E1F700271370802B912B53E0E3
+:1012E000CC0FDD1F5A95E1F7C076DD272FC0823085
+:1012F000910531F4DC2FCC278E01016F106A71C08B
+:101300008330910569F4CE018370992701E010E0E4
+:1013100002C0000F111F8A95E2F7C8019C680FC038
+:10132000049709F05EC0CE018370992701E010E0B8
+:1013300002C0000F111F8A95E2F7C8019A6823E0E6
+:10134000CC0FDD1F2A95E1F7C07ED7708C010C2BE6
+:101350001D2B47C0DF708E01106243C000E010E01B
+:1013600040C08E013EC001E810E43BC003E810E439
+:1013700038C002EE14E435C009EE14E432C00AEEBF
+:1013800014E42FC005EB14E42CC006EB14E429C0D0
+:1013900007EB14E426C00CEC14E423C00DEC14E4B9
+:1013A00020C003E815E41DC00AE815E41AC002E9EC
+:1013B00015E417C004E915E414C001E216E411C0F5
+:1013C00003E216E40EC004E216E40BC005E216E4E4
+:1013D00008C006E216E405C007E216E402C00AE20D
+:1013E00016E4C801DF91CF911F910F9108959CE001
+:1013F000799FF001112490E3899FE00DF11D1124E4
+:10140000E60FF11DEE0FFF1FEA53FE4F85919491F9
+:10141000803E9105E0F4803C910558F581339105BB
+:1014200009F46FC048F48932910509F463C08A3227
+:10143000910509F46DC072C089339105E9F08238D5
+:101440009105D1F08533910509F44DC067C0833E05
+:10145000910581F138F4803E9105B9F0823E910505
+:10146000D9F05CC0863E910561F1873E9105A1F1FE
+:1014700055C00E949E0708952091170420FD02C0C8
+:1014800021FF4CC080EE90E049C08091170480FF9E
+:10149000F9CF89E390E042C08091170482FF0EC02B
+:1014A0008091170484FF03C080E090E037C083EE92
+:1014B00090E034C08091170482FFF2CF82EE90E07A
+:1014C0002DC08091170483FF0BC08091170484FD09
+:1014D000EBCF87EE90E022C08091170483FFF5CF19
+:1014E00086EE90E01BC08091170485FF07C089E25B
+:1014F00090E014C08091170485FFF9CF85E390E058
+:101500000DC08091170486FF07C08AE290E006C0F4
+:101510008091170486FFF9CF81E390E00E94AE0727
+:101520000895CF92DF92EF92FF920F931F9301E005
+:1015300010E020E030E06801790104C0CC0CDD1C33
+:10154000EE1CFF1C8A95D2F704C0000F111F221F4A
+:10155000331F6A95D2F70C291D292E293F29C090E7
+:10156000D103D090D203E090D303F090D403C022F3
+:10157000D122E222F322842FC016D106E206F3061E
+:1015800041F41F910F91FF90EF90DF90CF900C945A
+:1015900084251F910F91FF90EF90DF90CF900C94D6
+:1015A000A52508950C94D10A5F926F927F928F9235
+:1015B0009F92AF92BF92CF92DF92EF92FF920F93E2
+:1015C0001F93CF93DF93CDB7DEB728970FB6F8946C
+:1015D000DEBF0FBECDBFCE0101966C014E0199E07A
+:1015E000890E911C20E030E040E050E060E070E0C7
+:1015F00000E010E0E12CF12C6C2C5D2C88E0782EC2
+:10160000AA24A394B12CE6EDF2E0A62DB52D872DEA
+:1016100001900D928A95E1F7F601819191916F0108
+:10162000FC01E07FFF27E032F10559F48F70992724
+:10163000F50102C0EE0FFF1F8A95E2F7EE2AFF2A9E
+:1016400037C0E033F10559F48F709927F50102C0D6
+:10165000EE0FFF1F8A95E2F70E2B1F2B29C0E034F7
+:10166000F10559F48F709927F50102C0EE0FFF1FA5
+:101670008A95E2F76E2B7F2B1BC0E035F10559F4FC
+:101680008F709927F50102C0EE0FFF1F8A95E2F7D0
+:101690004E2B5F2B0DC0E036F10551F48F7099276A
+:1016A000F50102C0EE0FFF1F8A95E2F72E2B3F2BAC
+:1016B000C814D90409F0A7CF84B19E2D9095892331
+:1016C00084B985B1E82AE5B887B1902F9095892330
+:1016D00087B988B1082B08B98AB1962F90958923CC
+:1016E0008AB98BB1682B6BB98DB1942F90958923F2
+:1016F0008DB98EB1482B4EB980B3922F9095892326
+:1017000080BB81B3282B21BB28960FB6F894DEBF8F
+:101710000FBECDBFDF91CF911F910F91FF90EF9042
+:10172000DF90CF90BF90AF909F908F907F906F9001
+:101730005F9008955F926F927F928F929F92AF9287
+:10174000BF92CF92DF92EF92FF920F931F93CF93AE
+:10175000DF93CDB7DEB768970FB6F894DEBF0FBE44
+:10176000CDBF85B7806885BF85B7806885BF0E947B
+:10177000D40ACE0101966C014E0199E1890E911CAB
+:1017800020E030E040E050E060E070E000E010E099
+:10179000E12CF12C6C2C5D2C88E1782EAA24A394EA
+:1017A000B12CEEEDF2E0A62DB52D872D01900D9216
+:1017B0008A95E1F7F601819191916F01FC01E07F3B
+:1017C000FF27E032F10559F48F709927F50102C027
+:1017D000EE0FFF1F8A95E2F7EE2AFF2A37C0E033AB
+:1017E000F10559F48F709927F50102C0EE0FFF1F24
+:1017F0008A95E2F70E2B1F2B29C0E034F10559F42E
+:101800008F709927F50102C0EE0FFF1F8A95E2F74E
+:101810006E2B7F2B1BC0E035F10559F48F70992793
+:10182000F50102C0EE0FFF1F8A95E2F74E2B5F2BEA
+:101830000DC0E036F10551F48F709927F50102C013
+:10184000EE0FFF1F8A95E2F72E2B3F2BC814D90409
+:1018500009F0A7CF84B19E2D9095892384B985B1D5
+:10186000E82AE5B887B1902F9095892387B988B188
+:10187000082B08B98AB1962F909589238AB98BB124
+:10188000682B6BB98DB1942F909589238DB98EB14A
+:10189000482B4EB980B3922F9095892380BB81B39A
+:1018A000282B21BB10921D0310921C0310921503CC
+:1018B0001092140310921F0310921E03109217032C
+:1018C0001092160310922103109220031092190314
+:1018D00010921803109223031092220310921B03FC
+:1018E00010921A0368960FB6F894DEBF0FBECDBFF4
+:1018F000DF91CF911F910F91FF90EF90DF90CF90EC
+:10190000BF90AF909F908F907F906F905F900C945E
+:1019100093077F928F929F92AF92BF92CF92DF9266
+:10192000EF92FF920F931F93CF93DF93CDB7DEB764
+:10193000A0970FB6F894DEBF0FBECDBF6E0149E190
+:10194000C40ED11C84E1E82E83E0F82E98E0792EB5
+:10195000BC2CAD2C01E010E028E1822E35E0932E66
+:10196000E6EDF2E0AB2DBA2D872D01900D928A9510
+:10197000E1F7F601819191916F019C01207F33275E
+:101980002032310591F424B18F709927A80102C04B
+:10199000440F551F8A95E2F7CA01922F982B94B9EC
+:1019A00095B18095892385B953C02033310591F4D1
+:1019B00027B18F709927F80102C0EE0FFF1F8A959B
+:1019C000E2F7CF01922F982B97B998B18095892390
+:1019D00088B93EC02034310591F42AB18F7099271F
+:1019E000A80102C0440F551F8A95E2F7CA01922F41
+:1019F000982B9AB99BB1809589238BB929C0203542
+:101A0000310591F42DB18F709927F80102C0EE0FC6
+:101A1000FF1F8A95E2F7CF01922F982B9DB99EB1B7
+:101A2000809589238EB914C02036310589F420B3FE
+:101A30008F709927A80102C0440F551F8A95E2F7BD
+:101A4000CA01922F982B90BB91B38095892381BBBB
+:101A500050EA5A95F1F7BE016F5F7F4F20E030E00A
+:101A600040E050E0EEEDF2E0DE011196882D0190AD
+:101A70000D928A95E1F7FB0181919191BF01FC01E3
+:101A8000E07FFF27E032F10511F4E3B113C0E0334A
+:101A9000F10511F4E6B10EC0E034F10511F4E9B13D
+:101AA00009C0E035F10511F4ECB104C0E036F105F0
+:101AB000B9F4EFB1F0E08F70992702C0F595E79582
+:101AC0008A95E2F7E0FD08C0C801042E02C0880F25
+:101AD000991F0A94E2F702C080E090E0282B392B8E
+:101AE0004F5F5F4F4C30510509F0BCCFF70180814B
+:101AF00091818217930721F03183208390927302A2
+:101B00000E94D40AF2E0EF0EF11C4CE1E41643E02F
+:101B1000F40609F025CF80917302882361F181508A
+:101B200080937302882339F08FE99FE00197F1F7E2
+:101B300000C0000020C08091140390911503909381
+:101B40001D0380931C0380911603909117039093BB
+:101B50001F0380931E0380911803909119039093A3
+:101B600021038093200380911A0390911B0390938B
+:101B70002303809322030E94990781E0A0960FB669
+:101B8000F894DEBF0FBECDBFDF91CF911F910F91B3
+:101B9000FF90EF90DF90CF90BF90AF909F908F908D
+:101BA0007F900895E82FF0E0EE0FFF1FE45EFC4FFA
+:101BB00080819181089508958091020481608093CD
+:101BC00002040C94F728809102048E7F8093020413
+:101BD0000C94F7280E94C928811102C00E94A528F0
+:101BE0000E94F328809302043E9A809171008D7FB9
+:101BF0008093710082E0809390008AE1809391004D
+:101C000081E080932603089580912603811102C00C
+:101C10000E94EA0D10927603109275038091710074
+:101C20008D7F80937100809190008F7780939000DA
+:101C3000109238031092370310926F0310927003C2
+:101C4000109271031092720310926E0310926D0342
+:101C5000EDE4F3E0ADE3B3E0119211921192119231
+:101C60001D921D9283E0ED36F807B1F70895CF92EB
+:101C7000DF92EF92FF920F931F93CF93DF93209108
+:101C80003703222309F484C06B017C018091260371
+:101C9000811102C00E94EA0D0DE613E0C7E0D0E01A
+:101CA000A7019601F80192918291729162918F0140
+:101CB0000E94412E811131C0FE01EE0FFF1FEE0F79
+:101CC000FF1FE35BFC4F1082118212821382DE0140
+:101CD000AA0FBB1FA35CBC4F11961C921E92C7306B
+:101CE000D105E9F021964481558166817781408351
+:101CF000518362837383148215821682178212962F
+:101D00008D919C91139711969C938E9313961C9290
+:101D10001E92129734961296E2CF219708F6809180
+:101D2000750390917603019797FD05C09093760314
+:101D30008093750304C0109276031092750380910E
+:101D400075039091760320917303309174032817E3
+:101D5000390724F01092740310927303892BC1F495
+:101D6000809171008D7F80937100809190008F77BA
+:101D70008093900010926F03109270031092710381
+:101D80001092720310926E0310926D03109237033B
+:101D9000DF91CF911F910F91FF90EF90DF90CF9047
+:101DA00008951F920F920FB60F9211244F925F92D7
+:101DB0006F927F928F929F92AF92BF92CF92DF925B
+:101DC000EF92FF922F933F934F935F936F937F9385
+:101DD0008F939F93AF93BF93CF93DF93EF93FF9333
+:101DE00080913703882309F49BC1C0917503D0917A
+:101DF00076031C161D060CF093C1409027035090EB
+:101E000028036090290370902A0320E030E0A901A4
+:101E1000C301B2010E94902F18160CF065C0C130AA
+:101E2000D10509F452C08091730390917403BE01EF
+:101E30000E9470317C0190937403809373038090AF
+:101E4000390390903A03A0903B03B0903C0320E00C
+:101E500030E040E85FE3C501B4010E94DD2D6093EE
+:101E6000390370933A0380933B0390933C03F7014B
+:101E7000EE0FFF1FEE0FFF1FE35BFC4FA30192016C
+:101E800060817181828193810E94452E20E030E043
+:101E900040E05EE30E94942F9B01AC01C501B401B8
+:101EA0000E94902F18168CF4C7010196BE010E9463
+:101EB00070319093740380937303109239031092DE
+:101EC0003A0310923B0310923C03E0917303F091AC
+:101ED0007403EE0FFF1FEE0FFF1FE35BFC4F6081EB
+:101EE000718182819381D0C0C0906F03D0907003C4
+:101EF000E0907103F090720320E030E0A901C70187
+:101F0000B6010E94412E2197882309F4A2C0FE0148
+:101F1000EE0FFF1FEE0FFF1FE35BFC4F80809180F1
+:101F2000A280B380A5019401C701B6010E94412E91
+:101F300087FF31C0A501940160E070E08CED93EC67
+:101F40000E94452E20E030E040E451E40E94452EFE
+:101F500020E030E040E05FE30E94942F9B01AC0161
+:101F600060E070E080E090E40E94F72F9B01AC01FC
+:101F7000C501B4010E94942F9B01AC01C701B601B9
+:101F80000E94412E87FF07C0A701960160E070E024
+:101F90008CED93E439C0A5019401C701B6010E94FC
+:101FA000902F18160CF055C0A501940160E070E068
+:101FB0008CED93E40E94452E20E030E040E451E4B3
+:101FC0000E94452E20E030E040E05FE30E94942F25
+:101FD0009B01AC0160E070E080E090E40E94F72F8C
+:101FE0009B01AC01C501B4010E94942F9B01AC017F
+:101FF000C701B6010E94902F18165CF5A701960143
+:1020000060E070E08CED93EC0E94452E20E030E023
+:1020100040E451E40E94452E20E030E040E05FE3E0
+:102020000E94942F9B01AC0160E070E080E090E49E
+:102030000E94F72F9B01AC01C701B6010E94942FAB
+:1020400060936F0370937003809371039093720396
+:1020500013C0FE01EE0FFF1FEE0FFF1FE35BFC4FEF
+:1020600080819181A281B38180936F0390937003EB
+:10207000A0937103B093720360916F03709170032A
+:102080008091710390917203209124033091250374
+:102090002F3F4FEF340731F02F5F3F4F3093250331
+:1020A000209324030E94F8126B017C0120E034E2AB
+:1020B00044EF51E40E94412E87FF08C086EFC82EEE
+:1020C00088E2D82E84EFE82E81E4F82E20E030E07C
+:1020D00040E051E4C701B6010E94942F9B01AC017E
+:1020E00060E074E284E79BE40E94452E6B017C0172
+:1020F0000E94AD2E70939700609396002091740219
+:10210000309175024091760250917702C701B60175
+:102110000E94942F0E94AD2E7093990060939800B6
+:1021200080913803882309F433C1C0903303D090E1
+:102130003403E0903503F090360320E030E0A9014D
+:10214000C701B6010E94902F1816D4F58091240380
+:10215000909125038F3F2FEF920729F001969093DE
+:10216000250380932403C701B6010E94F81220E0E2
+:1021700030E040E051E40E94942F9B01AC0160E00C
+:1021800074E284E79BE40E94452E6B017C010E946F
+:10219000AD2E709397006093960020917402309159
+:1021A00075024091760250917702C701B6010E94F4
+:1021B000942F0E94AD2E709399006093980008C0F0
+:1021C0001092970010929600109299001092980029
+:1021D00060912D0370912E036F5F7F4F70932E03DC
+:1021E00060932D03209196003091970080E090E05D
+:1021F000232BF1F0C0919600D09197000E94DE2E23
+:102200006B017C01BE0180E090E00E94DE2E9B010C
+:10221000AC0160912F037091300380913103909154
+:1022200032030E94452E20E03FEF4FE757E410C0F5
+:102230000E94DE2E6B017C0120E030EE4FEF54E473
+:1022400060912F037091300380913103909132039C
+:102250000E94942F9B01AC01C701B6010E94902FF0
+:1022600087FD96C080912B038F5F80932B0390E0B6
+:102270002091FE033091FF0382179307A0F0809115
+:102280000904882319F010922B030DC0809171006E
+:102290008D7F80937100809190008F778093900064
+:1022A000109238037DC080912C03C0912B038111C3
+:1022B00028C0C0900304D0900404E0900504F0907E
+:1022C000060420E030E0A901C701B6010E94902F6A
+:1022D0001816BCF481E080932C0310923303109203
+:1022E00034031092350310923603C0922F03D0921C
+:1022F0003003E0923103F0923203C150C0932B03BC
+:1023000043C010922C031092250310922403E091F5
+:102310000004F091010448E0C49FE00DF11D112478
+:1023200080819181A281B3818093330390933403A0
+:10233000A0933503B093360320E030E040E85EE33D
+:1023400064817581868197810E94942F6B017C0145
+:1023500020E030E048EC52E460917802709179021C
+:1023600080917A0290917B020E94452E9B01AC01E4
+:10237000C701B6010E94942F60932F03709330031E
+:10238000809331039093320310922E0310922D0309
+:102390008091020480FD04C010923803109237032C
+:1023A000FF91EF91DF91CF91BF91AF919F918F916D
+:1023B0007F916F915F914F913F912F91FF90EF909F
+:1023C000DF90CF90BF90AF909F908F907F906F9055
+:1023D0005F904F900F900FBE0F901F901895CF9267
+:1023E000DF92EF92FF92CF93DF936B017C01EA01C2
+:1023F00080912603811102C00E94EA0D809102049F
+:1024000080FF46C0809175039091760308970CF089
+:102410003FC0809171008D7F80937100809138035F
+:1024200081110E94040E81E08093370310922503EE
+:102430001092240320E030E0A901C701B6010E94F8
+:10244000902F1816DCF48091750390917603FC01AF
+:10245000EE0FFF1FEE0FFF1FE35BFC4FC082D18228
+:10246000E282F382FC01EE0FFF1FE35CFC4FD1839D
+:10247000C0830196909376038093750380917100D9
+:1024800082608093710080919000806880939000BA
+:10249000DF91CF91FF90EF90DF90CF9008958F92D2
+:1024A0009F92AF92BF92CF92DF92EF92FF920F93E3
+:1024B0001F93CF93DF93EC017B01D42E4801590188
+:1024C00080912603811102C00E94EA0D80910204CE
+:1024D00080FF6BC0809171008D7F8093710080912F
+:1024E000370381110E94040E81E080933803D0935A
+:1024F0000104C0930004F092FF03E092FE03D09227
+:1025000009048092030490920404A0920504B092FE
+:1025100006041092390310923A0310923B03109272
+:102520003C0310922B0388819981AA81BB818093FF
+:10253000330390933403A0933503B093360320E024
+:1025400030E040E85EE36C817D818E819F810E9456
+:10255000942F6B017C0120E030E048EC52E4609164
+:1025600078027091790280917A0290917B020E94A8
+:10257000452E9B01AC01C701B6010E94942F6093C8
+:102580002F037093300380933103909332031092A2
+:102590002E0310922D038091710082608093710050
+:1025A00080919000806880939000DF91CF911F917F
+:1025B0000F91FF90EF90DF90CF90BF90AF909F90E2
+:1025C0008F9008958091770390E0019665E070E028
+:1025D0000E9470318093770308958091770390E093
+:1025E000019765E070E00E94703180937703089551
+:1025F0008F929F92AF92BF92CF92DF92EF92FF9213
+:10260000CF93DF936B017C01C0912403D09125030C
+:10261000BE0180E090E00E94DE2E4B015C01A7012C
+:10262000960160E070E08CE594E40E94452E9B01E9
+:10263000AC01C501B4010E94942F0E94B22E4091BA
+:102640007703423009F45CC028F4442351F0413050
+:10265000E9F0FBC0433009F481C0443009F4B4C050
+:10266000F4C080E090E0A0E0BFE380937402909318
+:102670007502A0937602B09377021092270310920E
+:1026800028031092290310922A03DFC01092270317
+:10269000109228031092290310922A0364317105C5
+:1026A00040F46A307105E0F520E030E040E85EE398
+:1026B0003BC0693C710508F0C0C080E090E00E941A
+:1026C000DE2E20E030E040EA51E40E94DC2D20E0E4
+:1026D00030E044E353E40E94452E9B01AC010E948C
+:1026E000942F20E030E040E05EE30E94942F9B01B5
+:1026F000AC0160E070E080E09EE30E94DC2D5BC0F6
+:1027000010922703109228031092290310922A0393
+:102710006432710578F4FB01EC59FF4F0C9484315D
+:1027200020E030E040E05FE3C701B6010E94942F53
+:102730006B017C0180E090E0A0E0BEE38093740236
+:1027400090937502A0937602B09377027EC0A701A2
+:102750009601C701B6010E94DD2DEACF1092270332
+:10276000109228031092290310922A032AE0269F30
+:10277000A001279F500D1124CA0168EB7BE00E9445
+:102780005C31BC016C5D754077FF03C0719561954C
+:102790007109882777FD8095982F0E94E02E2EE3FF
+:1027A00033EC4EE259E30E94942F20E030E040ECFD
+:1027B0005EE30E94DD2D6093740270937502809336
+:1027C00076029093770241C010922703109228035B
+:1027D0001092290310922A03CE0183709927892B26
+:1027E000E1F0BE016170772780E090E00E94DE2E6C
+:1027F00020E030E040E05EE30E94942F20E030E0F3
+:1028000040E45FE30E94DD2D6093740270937502D3
+:1028100080937602909377020CC080E090E0A0E075
+:10282000BFE38093740290937502A0937602B093F5
+:102830007702C770DD27CD2B41F4109274021092FD
+:1028400075021092760210927702C701B601DF91ED
+:10285000CF91FF90EF90DF90CF90BF90AF909F907F
+:102860008F900895809188030895CF93DF9300D0CF
+:102870001F92CDB7DEB79C0180910E04843019F50C
+:1028800093E099833B832A839093E9008FEF9091A3
+:10289000E800815095FD06C095ED9A95F1F700008E
+:1028A0008111F5CF8091E80085FF0DC040E050E038
+:1028B00063E070E0CE0101960E9496168091E800D8
+:1028C0008E778093E8000F900F900F90DF91CF915B
+:1028D0000895CF93DF9300D01F92CDB7DEB720913C
+:1028E0000E04243021F522E029839B838A8383E030
+:1028F0008093E9008FEF9091E800815095FD06C02C
+:1029000095ED9A95F1F700008111F5CF8091E800DF
+:1029100085FF0DC040E050E063E070E0CE0101961D
+:102920000E9496168091E8008E778093E8000F90C1
+:102930000F900F90DF91CF91089520910E042430D5
+:10294000F1F422E02093E9002FEF3091E8002150CC
+:1029500035FD06C035ED3A95F1F700002111F5CFB0
+:102960002091E80025FF0BC040E050E065E070E0FA
+:102970000E9496168091E8008E778093E800089573
+:10298000CF93DF93EC0190910E04943009F046C090
+:10299000809186028823D9F0809187028823B9F03C
+:1029A0009093E9008FEF9091E800815095FD06C06B
+:1029B00095E19A95F1F700008111F5CF8091E8003B
+:1029C00085FF2CC040E050E060E170E017C081E07E
+:1029D0008093E9008FEF9091E800815095FD06C04B
+:1029E00095ED9A95F1F700008111F5CF8091E800FF
+:1029F00085FF14C040E050E068E070E0CE010E9426
+:102A000096168091E8008E778093E80080E1FE01C1
+:102A1000A8E7B3E001900D928A95E1F7DF91CF919D
+:102A2000089580910D04811109C00E942B180E9405
+:102A300088188091E20084608093E20008951092EB
+:102A40000D040895089508950C94D02742E061EC98
+:102A500081E00E94A51742E061EC82E00E94A51788
+:102A600042E061EC83E00E94A51742E161EC84E062
+:102A70000C94A51780911004833009F455C030F4EC
+:102A8000813071F0823009F48EC008958A3009F4E3
+:102A90007AC08B3009F460C0893009F09CC020C036
+:102AA00080910F04813A09F096C08091E800877FF9
+:102AB0008093E8008091130490911404892B21F4F1
+:102AC00060E188E793E003C060E080E090E070E0C0
+:102AD0000E94E1168091E8008B778093E8000895CA
+:102AE00080910F04813209F076C080911304909197
+:102AF0001404009719F0039709F06DC08091E80065
+:102B0000877F8093E8008091E80082FD05C0809176
+:102B10000E048111F8CF5FC08091F100809388038B
+:102B20008091E8008B7753C080910F04813A09F0BF
+:102B300052C08091130490911404892B09F04BC06A
+:102B40008091E800877F8093E8008091E80080FF13
+:102B5000FCCF8091860236C080910F048132D9F576
+:102B60008091130490911404892BA9F58091E800B9
+:102B7000877F8093E8000E94DA1780911104809388
+:102B800086020C944B2180910F04813221F58091B3
+:102B9000E800877F8093E8000E94DA178091120492
+:102BA00080938903089580910F04813AA1F4809164
+:102BB000E800877F8093E8008091E80080FFFCCFE9
+:102BC000809189038093F1008091E8008E77809353
+:102BD000E8000C94DA17089584B7877F84BF88E1F2
+:102BE0000FB6F89480936000109260000FBE90E0E2
+:102BF00080E80FB6F89480936100909361000FBE57
+:102C00000E947D1B0E942B180E9488188091E20070
+:102C100084608093E20078940E940E1B0E947F1BC8
+:102C20008CE792E00E94291B80910E04853069F4A4
+:102C30000E948A2780910C048823B1F30E94B82750
+:102C4000882391F30E948016EFCF0E94871BECCF60
+:102C5000292F332723303105C9F064F421303105A1
+:102C600081F02230310509F043C08DE690E022E882
+:102C700038E042C021323105F1F02232310541F114
+:102C800037C082E190E02FEE38E036C099278130DE
+:102C9000910541F08230910541F0892B49F5EEE72D
+:102CA000F8E005C0E0E5F8E002C0E6E2F8E0849173
+:102CB00090E09F0121C06430D8F4E62FF0E0EE0FE1
+:102CC000FF1FEE5FFC4F2081318189E090E014C04E
+:102CD000643070F470E0FB01EE0FFF1FE650FD4F13
+:102CE00020813181FB01EA50FD4F808190E004C0DA
+:102CF00080E090E020E030E0FA0131832083089505
+:102D000080E189BD82E189BD09B400FEFDCF8091DB
+:102D1000D8008F7D8093D8008091E00082608093FE
+:102D2000E0008091E00081FDFCCF0895CF92DF921A
+:102D3000EF92FF920F931F93CF93DF93EC018B01E0
+:102D40006A010E94F917811133C0C114D10439F00E
+:102D5000F60180819181081B190BC80FD91FE12C46
+:102D6000F12C0115110519F18091E80085FD16C0BF
+:102D70008091E8008E778093E800C114D10449F077
+:102D8000F60180819181E80EF91EF182E08285E0F2
+:102D90000FC00E94F917882321F30AC089918093FC
+:102DA000F10001501109FFEFEF1AFF0ADACF80E0BE
+:102DB000DF91CF911F910F91FF90EF90DF90CF9017
+:102DC000089520911504309116042617370748F00E
+:102DD0006115710539F42091E8002E772093E80001
+:102DE00001C0B90140E061157105A9F120910E04FF
+:102DF000222309F443C0253009F442C02091E800A1
+:102E000023FD40C02091E80022FD32C02091E8005F
+:102E100020FFE9CF4091F3002091F20030E0342B05
+:102E2000FC01CF016115710559F02830310540F4DE
+:102E300081918093F100615071092F5F3F4FF1CF75
+:102E400041E02830310509F040E02091E8002E777C
+:102E50002093E800C8CF4111C9CF0AC080910E0469
+:102E6000882361F0853061F08091E80083FD0AC01D
+:102E70008091E80082FFF2CF80E0089582E008951B
+:102E800083E0089581E0089520911504309116049F
+:102E90002617370748F06115710539F42091E800CD
+:102EA0002E772093E80001C0B901FC0120E06115F4
+:102EB000710591F180910E04882309F440C085309A
+:102EC00009F43FC08091E80083FD3DC08091E80097
+:102ED00082FD2FC08091E80080FFE9CF2091F300B0
+:102EE0008091F20090E0922B6115710559F08830C5
+:102EF000910540F424912093F100319661507109BD
+:102F00000196F2CF21E0089709F020E08091E800D7
+:102F10008E778093E800CBCF2111CCCF0AC080916F
+:102F20000E04882361F0853061F08091E80083FD14
+:102F30000AC08091E80082FFF2CF80E0089582E02D
+:102F4000089583E0089581E00895982F973058F50B
+:102F50009093E900981739F07091EC002091ED0002
+:102F60005091F00003C0242F762F50E021FF19C0AC
+:102F70003091EB003E7F3093EB003091ED003D7FD0
+:102F80003093ED003091EB0031603093EB007093A3
+:102F9000EC002093ED005093F0002091EE0027FF0D
+:102FA00007C09F5FD3CF8F708093E90081E00895C1
+:102FB00080E0089580910F0487FF11C08091E800A0
+:102FC00082FD05C080910E048111F8CF11C080915F
+:102FD000E8008B770BC080910E04882349F0809124
+:102FE000E80080FFF8CF8091E8008E778093E800BA
+:102FF00008952091E4003091E50095E64091EC00C1
+:10300000842F817040FF22C08091E80080FD1CC0A9
+:1030100080910E04882391F0853091F08091EB002F
+:1030200085FD10C04091E4005091E5004217530720
+:1030300029F39A01915011F784E0089582E00895F0
+:1030400083E0089581E0089580E008954091E800CC
+:1030500042FFDECF08950E9499180E94A118E0EE69
+:10306000F0E0808181608083E8EDF0E080818F77FF
+:10307000808319BCA7EDB0E08C918E7F8C9380810A
+:103080008F7E808310920D0408950F931F93CF932A
+:10309000DF930E9499180E94A118C8EDD0E08881A2
+:1030A0008F77888388818068888388818F7D8883F3
+:1030B00019BC10920E0410920A0410920C04109283
+:1030C0000B0400EE10E0F80180818B7F8083888103
+:1030D0008160888342E060E080E00E94A517E1EE15
+:1030E000F0E080818E7F8083E2EEF0E0808181607D
+:1030F0008083808188608083F80180818E7F8083D7
+:10310000888180618883DF91CF911F910F9108950D
+:10311000E8EDF0E080818F7E8083E7EDF0E0808154
+:103120008160808384E082BF81E080930D040C94F1
+:103130004518E8EDF0E080818E7F80831092E200F8
+:1031400008951092DA001092E10008951F920F92F4
+:103150000FB60F9211242F933F934F935F936F936A
+:103160007F938F939F93AF93BF93EF93FF93809140
+:10317000E10082FF0BC08091E20082FF07C08091D6
+:10318000E1008B7F8093E1000E940D1B8091DA00AB
+:1031900080FF1FC08091D80080FF1BC08091DA00A3
+:1031A0008E7F8093DA008091D90080FF0DC080E18E
+:1031B00089BD82E189BD09B400FEFDCF81E0809325
+:1031C0000E040E94111505C019BC10920E040E9435
+:1031D0001F158091E10080FF19C08091E20080FFFF
+:1031E00015C08091E2008E7F8093E2008091E20022
+:1031F00080618093E2008091D80080628093D80043
+:1032000019BC85E080930E040E9423158091E10093
+:1032100084FF30C08091E20084FF2CC080E189BD32
+:1032200082E189BD09B400FEFDCF8091D8008F7D79
+:103230008093D8008091E1008F7E8093E10080919F
+:10324000E2008F7E8093E2008091E20081608093B3
+:10325000E20080910A04882311F084E007C0809185
+:10326000E30087FD02C081E001C083E080930E048B
+:103270000E9424158091E10083FF29C08091E20023
+:1032800083FF25C08091E100877F8093E10082E089
+:1032900080930E0410920A048091E1008E7F809347
+:1032A000E1008091E2008E7F8093E2008091E20055
+:1032B00080618093E20042E060E080E00E94A51718
+:1032C0008091F00088608093F0000E942215FF91A9
+:1032D000EF91BF91AF919F918F917F916F915F918E
+:1032E0004F913F912F910F900FBE0F901F90189507
+:1032F0001F920F920FB60F9211242F933F934F936B
+:103300005F936F937F938F939F93AF93BF93CF936D
+:10331000DF93EF93FF93C091E900CF708091EC00B1
+:10332000D82FD17080FDD0E81092E9008091F00094
+:10333000877F8093F00078940E94BC191092E90076
+:103340008091F00088608093F000CD2BCF70C09307
+:10335000E900FF91EF91DF91CF91BF91AF919F91E4
+:103360008F917F916F915F914F913F912F910F902E
+:103370000FBE0F901F9018951F93CF93DF93CDB77B
+:10338000DEB7AA970FB6F894DEBF0FBECDBFEFE051
+:10339000F4E088E08E0F9091F10091938E13FBCFB3
+:1033A0000E943A158091E80083FF1FC180910F04AD
+:1033B00090911004492F50E04A30510508F015C192
+:1033C000FA01E857FF4F0C948431803881F082383D
+:1033D00009F00BC1809113048F708093E9008091F4
+:1033E000EB0085FB882780F91092E90006C08091E8
+:1033F0000B0490910C04911182609091E800977FEA
+:103400009093E8008093F1001092F100C8C0282F3B
+:103410002D7F09F0EAC0882319F0823061F0E5C001
+:1034200080911104813009F0E0C0933009F080E010
+:1034300080930C042BC080911104811127C08091CE
+:1034400013048F7009F4D1C08093E9002091EB0040
+:1034500020FF1CC0933021F48091EB00806214C0E7
+:103460009091EB0090619093EB0021E030E0A90196
+:1034700002C0440F551F8A95E2F74093EA0010926C
+:10348000EA008091EB0088608093EB001092E900E5
+:103490008091E800877F86C08111A7C01091110438
+:1034A0001F778091E3008078812B8093E3008091E7
+:1034B000E800877F8093E8000E94DA178091E80097
+:1034C00080FFFCCF8091E30080688093E3001111BE
+:1034D00002C082E001C083E080930E0486C0805861
+:1034E000823008F082C080911104909112048C3DCA
+:1034F00053E0950779F583E08A838AE289834FB7A1
+:10350000F894DE01139620E03EE051E2E32FF0E074
+:1035100050935700E49120FF03C0E295EF703F5FA6
+:10352000EF708E2F90E0EA3010F0C79601C0C09681
+:103530008D939D932F5F243149F74FBF8091E80011
+:10354000877F8093E8006AE270E0CE0101960E94D6
+:10355000E11614C0AE014F5F5F4F609113040E94EB
+:103560002816BC01009709F440C09091E800977FAD
+:103570009093E80089819A810E9444178091E80025
+:103580008B778093E80031C0803879F58091E8002E
+:10359000877F8093E80080910A048093F1008091F6
+:1035A000E8008E778093E8000E94DA171EC0811130
+:1035B0001CC0909111049230C0F48091E800877F84
+:1035C0008093E80090930A040E94DA1780910A041D
+:1035D000811106C08091E30087FD02C081E001C037
+:1035E00084E080930E040E9426158091E80083FFFA
+:1035F0000AC08091E800877F8093E8008091EB000B
+:1036000080628093EB00AA960FB6F894DEBF0FBEDF
+:10361000CDBFDF91CF911F9108950895CF938091F1
+:103620000E048823A1F0C091E900CF709091EC00C6
+:10363000892F817090FD80E8C82B1092E90080915D
+:10364000E80083FD0E94BC19CF70C093E900CF91C0
+:10365000089590938F0380938E030895E0918E03D5
+:10366000F0918F03309721F00190F081E02D0994C3
+:1036700080E00895E0918E03F0918F03309721F060
+:103680000280F381E02D09940895E0918E03F0917A
+:103690008F03309721F00480F581E02D099408957F
+:1036A00020918C0330918D038217930771F09093D2
+:1036B0008D0380938C03E0918E03F0918F033097FC
+:1036C00021F00680F781E02D0994089520918A0366
+:1036D00030918B038217930771F090938B03809343
+:1036E0008A03E0918E03F0918F03309721F00084DC
+:1036F000F185E02D0994089508950C947C1B0E9497
+:1037000004280E949A0B0E948A280C94452D4F92FF
+:103710005F927F928F929F92AF92BF92CF92DF92F1
+:10372000EF92FF920F931F93CF93DF93CDB7DEB746
+:103730002A970FB6F894DEBF0FBECDBF0E94890C4A
+:1037400091E9C92E93E0D92E00E010E0AA24A394B9
+:10375000B12C702E802F0E94D20D4C01F6014190A9
+:1037600051906F014826592641145104B1F40F5F5E
+:103770001F4F0430110569F78FEF89838A831B82FD
+:103780000E940D288160782F9D838C8349815A8106
+:103790006B818D810E94401C3AC08091ED0381FDB8
+:1037A0000E94DB0D20E030E07501022E02C0EE0C1D
+:1037B000FF1C0A94E2F7C70184219521892B09F1A6
+:1037C0002E837F828E209F2091E0892809F490E04B
+:1037D00098870E940D288160782F9A8789874E816B
+:1037E0005F8168858A850E94401C000F111FF801C7
+:1037F000EF56FC4F80819181E826F926F182E08224
+:1038000006C02F5F3F4F2C30310571F6B0CF0E94BC
+:10381000762A109190030E942E1B1817D9F00E944F
+:103820002E1B809390032A960FB6F894DEBF0FBE2E
+:10383000CDBFDF91CF911F910F91FF90EF90DF905F
+:10384000CF90BF90AF909F908F907F905F904F9060
+:103850000C94D20A2A960FB6F894DEBF0FBECDBFE5
+:10386000DF91CF911F910F91FF90EF90DF90CF905C
+:10387000BF90AF909F908F907F905F904F900895F2
+:10388000CF93DF93CDB7DEB72B970FB6F894DEBF9B
+:103890000FBECDBF4F83588769877A878B87DE013C
+:1038A000119686E0FD0111928A95E9F785E0FE0107
+:1038B000379601900D928A95E1F749815A816B8183
+:1038C0007C818D819E810E94E5232B960FB6F89412
+:1038D000DEBF0FBECDBFDF91CF910895CF93882378
+:1038E00009F4C2C0C82F823859F40E942E1B81FDF2
+:1038F000BBC089E30E948E260E945B2789E30CC02F
+:10390000833879F40E942E1B80FDAEC083E50E94AF
+:103910008E260E945B2783E50E94D026CF910C94CF
+:103920005B27843859F40E942E1B82FD9DC087E4DA
+:103930000E948E260E945B2787E4EECF8CEF8C0FCF
+:10394000813A48F48C2F0E94AD2C81118DC08C2FB0
+:103950000E948E26E3CF80E28C0F883048F4C77037
+:1039600081E001C0880FCA95EAF70E941427D6CFDC
+:103970008BE58C0F833078F4C53A29F0C63A31F0E4
+:1039800083E890E005C081E890E002C082E890E022
+:10399000CF910C94501B88E58C0F833108F064C0E4
+:1039A000C83A39F1C93A41F1CA3A49F1CB3A51F131
+:1039B000CC3A59F1CD3A61F1C03B69F1CE3A71F19F
+:1039C000CF3A79F1C13B81F1C23B89F1C33B91F11F
+:1039D000C43B99F1C53BA1F1C63BA9F1C73BB1F18D
+:1039E000C83BB9F1C93BC1F1CA3BC9F180E090E0E5
+:1039F00038C082EE90E035C089EE90E032C08AEEA9
+:103A000090E02FC085EB90E02CC086EB90E029C0C1
+:103A100087EB90E026C08CEC90E023C08DEC90E02A
+:103A200020C083E891E01DC08AE891E01AC082E9D5
+:103A300091E017C084E991E014C081E292E011C0E6
+:103A400083E292E00EC084E292E00BC085E292E055
+:103A500008C086E292E005C087E292E002C08AE2F6
+:103A600092E0CF910C94661BCF910895882309F4BE
+:103A70004BC0823859F40E942E1B81FF45C089E358
+:103A80000E948E260E945B2789E30CC0833871F464
+:103A90000E942E1B80FF38C083E50E948E260E9464
+:103AA0005B2783E50E94D0260C945B27843859F469
+:103AB0000E942E1B82FF28C087E40E948E260E944F
+:103AC0005B2787E4EFCF9CEF980F913A58F390E291
+:103AD000980F983050F4877091E001C0990F8A9543
+:103AE000EAF7892F0E941A27DFCF9BE5980F9330C2
+:103AF00020F480E090E00C94501B885A833120F42D
+:103B000080E090E00C94661B0895882321F00E94C9
+:103B100014270C945B270895882321F00E941A270C
+:103B20000C945B270895BF92CF92DF92EF92FF92A1
+:103B30000F931F93CF93DF9300D000D000D0CDB769
+:103B4000DEB725E0FC01DE01119601900D922A9569
+:103B5000E1F7FC01D08011810281258122952F702F
+:103B600043815481452B09F472C31F3F21F4FFEFB9
+:103B7000DF1609F46CC37C012E830E949B07D98257
+:103B80001A8369817A81802F0E948A26182FB92E84
+:103B90000E943F260E9406252E81002319F00E94D4
+:103BA00031272E81EB2DE295EF70F0E0EE56FF4FBE
+:103BB0000C9484318B2D807F9B2D9F70F92E882350
+:103BC00019F0F29480EFF822002389F0FF2009F425
+:103BD0007CC280E2810F883020F48F2D0E94142750
+:103BE00003C08F2D0E9424270E945B276EC2812F65
+:103BF0000E94361DFF2009F42AC3105E8F2D183055
+:103C000018F40E941A2702C00E942A2726960FB68F
+:103C1000F894DEBF0FBECDBFDF91CF911F910F9102
+:103C2000FF90EF90DF90CF90BF900C945B278B2D8F
+:103C3000807F9B2D9F70803211F4892F03C0892FC4
+:103C40008295807F112319F0113011F12BC00023D0
+:103C5000A9F0222389F1213079F526960FB6F89440
+:103C6000DEBF0FBECDBFDF91CF911F910F91FF90AF
+:103C7000EF90DF90CF90BF900C944427222319F04F
+:103C8000213009F4E4C28E830E9447278E819BC1B4
+:103C9000002321F0263008F0DAC20EC0253008F0EB
+:103CA000D6C291C10023C9F0222331F0F7019581DA
+:103CB00090FF0BC29F70958326960FB6F894DEBFD7
+:103CC0000FBECDBFDF91CF911F910F91FF90EF906D
+:103CD000DF90CF90BF900C94851D222309F473C10F
+:103CE00009C22B2D26952695237030E0211531052C
+:103CF00021F021303105D1F0AAC2002321F0812F1B
+:103D00009B2D937002C080E090E026960FB6F89449
+:103D1000DEBF0FBECDBFDF91CF911F910F91FF90FE
+:103D2000EF90DF90CF90BF900C94501B002321F0B8
+:103D3000812F9B2D937002C080E090E026960FB6F5
+:103D4000F894DEBF0FBECDBFDF91CF911F910F91D1
+:103D5000FF90EF90DF90CF90BF900C94661B812F67
+:103D6000002319F00E947E2902C00E94E6292696AF
+:103D70000FB6F894DEBF0FBECDBFDF91CF911F917C
+:103D80000F91FF90EF90DF90CF90BF900C946B2A33
+:103D90008B2D837009F07BC0011159C2812F829550
+:103DA00086958770880F880F912F9F70C92ED12C10
+:103DB000E12CF12C082E04C0CC0CDD1CEE1CFF1CE9
+:103DC0000A94D2F714FF12C04FE050E060E070E0B8
+:103DD00004C0440F551F661F771F8A95D2F7CB0189
+:103DE000BA01609570958095909503C060E070E091
+:103DF000CB012B2D269526952370422F50E0423083
+:103E00005105D9F04330510569F16C297D298E297E
+:103E10009F294130510551F126960FB6F894DEBF27
+:103E20000FBECDBFDF91CF911F910F91FF90EF900B
+:103E3000DF90CF90BF900C942D256C297D298E2981
+:103E40009F2926960FB6F894DEBF0FBECDBFDF9137
+:103E5000CF911F910F91FF90EF90DF90CF90BF9087
+:103E60000C9449250E942D25C701B60126960FB650
+:103E7000F894DEBF0FBECDBFDF91CF911F910F91A0
+:103E8000FF90EF90DF90CF90BF900C94112500230E
+:103E900019F08B2D817001C08695882309F4D7C154
+:103EA000812F829586958770880F880F912F9F703C
+:103EB000C92ED12CE12CF12C082E04C0CC0CDD1C19
+:103EC000EE1CFF1C0A94D2F714FF12C04FE050E022
+:103ED00060E070E004C0440F551F661F771F8A958D
+:103EE000D2F7CB01BA01609570958095909503C08B
+:103EF00060E070E0CB012B2D269526952370422F94
+:103F000050E042305105D9F04330510569F16C2938
+:103F10007D298E299F294130510551F126960FB6F2
+:103F2000F894DEBF0FBECDBFDF91CF911F910F91EF
+:103F3000FF90EF90DF90CF90BF900C9407266C29F4
+:103F40007D298E299F2926960FB6F894DEBF0FBED5
+:103F5000CDBFDF91CF911F910F91FF90EF90DF9038
+:103F6000CF90BF900C9423260E940726C701B6016C
+:103F700026960FB6F894DEBF0FBECDBFDF91CF916E
+:103F80001F910F91FF90EF90DF90CF90BF900C9416
+:103F9000EB25103F49F118F4103E48F491C0123F50
+:103FA00009F453C0E8F1133F09F464C089C01F70DD
+:103FB0008B2D8F71002321F00E948425812F7CCED0
+:103FC0000E94A525812F26960FB6F894DEBF0FBE5E
+:103FD000CDBFDF91CF911F910F91FF90EF90DF90B8
+:103FE000CF90BF900C948C1D0023B1F0253008F0C9
+:103FF0002EC18B2D8F7126960FB6F894DEBF0FBEA3
+:10400000CDBFDF91CF911F910F91FF90EF90DF9087
+:10401000CF90BF900C94CA25263008F018C1E9CF84
+:104020000023A9F08B2D8F7126960FB6F894DEBF72
+:104030000FBECDBFDF91CF911F910F91FF90EF90F9
+:10404000DF90CF90BF900C948425002359F38B2DE3
+:104050008F7126960FB6F894DEBF0FBECDBFDF91ED
+:10406000CF911F910F91FF90EF90DF90CF90BF9075
+:104070000C94A525002399F08B2D8F7126960FB6F1
+:10408000F894DEBF0FBECDBFDF91CF911F910F918E
+:10409000FF90EF90DF90CF90BF900C946F25269605
+:1040A0000FB6F894DEBF0FBECDBFDF91CF911F9149
+:1040B0000F91FF90EF90DF90CF90BF900C9465250B
+:1040C0000023A9F0222309F4ADCF812F26960FB645
+:1040D000F894DEBF0FBECDBFDF91CF911F910F913E
+:1040E000FF90EF90DF90CF90BF900C946E1C222336
+:1040F00009F4ADCF812F26960FB6F894DEBF0FBE20
+:10410000CDBFDF91CF911F910F91FF90EF90DF9086
+:10411000CF90BF900C94361D4B2D4F70612FC7016F
+:104120000E948D0526960FB6F894DEBF0FBECDBF58
+:10413000DF91CF911F910F91FF90EF90DF90CF9083
+:10414000BF900C948924011182C09B2D9F70492F30
+:1041500050E04230510509F443C0C4F44115510503
+:1041600071F14130510509F072C026960FB6F894EE
+:10417000DEBF0FBECDBFDF91CF911F910F91FF909A
+:10418000EF90DF90CF90BF900C946D2D4330510590
+:10419000C1F14430510509F05AC0812F26960FB65F
+:1041A000F894DEBF0FBECDBFDF91CF911F910F916D
+:1041B000FF90EF90DF90CF90BF900C94BF2D26968C
+:1041C0000FB6F894DEBF0FBECDBFDF91CF911F9128
+:1041D0000F91FF90EF90DF90CF90BF900C94562DF1
+:1041E00026960FB6F894DEBF0FBECDBFDF91CF91FC
+:1041F0001F910F91FF90EF90DF90CF90BF900C94A4
+:10420000892D26960FB6F894DEBF0FBECDBFDF9185
+:10421000CF911F910F91FF90EF90DF90CF90BF90C3
+:104220000C949C2D4B2D4F70612FC70126960FB615
+:10423000F894DEBF0FBECDBFDF91CF911F910F91DC
+:10424000FF90EF90DF90CF90BF900C949D07269643
+:104250000FB6F894DEBF0FBECDBFDF91CF911F9197
+:104260000F91FF90EF90DF90CF90BF9008950E9444
+:1042700031270E9441270E9406270E945B270E9447
+:104280001C2B0E946B2A80E090E00E94501B80E073
+:1042900090E00C94661B0E9421270C9437210E9409
+:1042A0007F26292F22952F7030E02C3031054CF4D9
+:1042B0002A3031056CF4225031092230310588F45E
+:1042C00007C02C30310549F02F30310531F009C0DD
+:1042D000803E48F0803F29F406C093FB882780F990
+:1042E000089580E0089581E00895CF93DF9300D092
+:1042F00000D01F92CDB7DEB70F900F900F900F90A8
+:104300000F90DF91CF910895CF93DF9300D000D02D
+:1043100000D0CDB7DEB726960FB6F894DEBF0FBE3D
+:10432000CDBFDF91CF9108951F93CF93DF93C091BD
+:10433000990316E080919A03C81799F0D0E01C9F6A
+:10434000F0011D9FF00D1124E556FC4F4081518175
+:1043500062817381848195810E9484212196C77036
+:10436000E9CFDF91CF911F9108954091CB035091F8
+:10437000CC036091CD037091CE038091CF039091D7
+:10438000D0030C9484218091D00382958F7009F022
+:1043900054C08091CD03882309F44FC080919903C4
+:1043A000A0919A036091CB037091CC034091CE030E
+:1043B0005091CF03B6E08A1709F43FC090E0411551
+:1043C0005105C1F17F3F11F46F3FA1F1B89FF0019A
+:1043D000B99FF00D1124E556FC4F218172132AC0BC
+:1043E0002081621327C02281211124C023813481BE
+:1043F0002417350710F421503109241B350B283CB4
+:104400003105C0F42091D0032F7020612093D00398
+:1044100026E0289FF001299FF00D1124E056FC4F63
+:1044200080818F70806180838BEC93E00E94931D6C
+:104430000C94942101968770BECF0895CF92DF929D
+:10444000EF92FF920F931F93CF93DF93CDB7DEB719
+:1044500062970FB6F894DEBF0FBECDBF8C0185E02A
+:10446000F801DE011D9601900D928A95E1F7D801C1
+:104470004C9111965C91119712966C91129713962C
+:10448000CD90DC9014973091CB037091CC03809148
+:10449000CE039091CF03009709F46BC17F3F19F4CD
+:1044A0003F3F09F466C1E090CD03EE2009F4C0C09F
+:1044B0002091D003C816D90628F0F601E81BF90BA5
+:1044C000CF0104C0809590958C0D9D1DFF24F39421
+:1044D000883C910578F0F12C207F09F0C6C07C2D36
+:1044E000D98AC88A89890E9475218BEC93E00E9441
+:1044F000931DB1C0822F807F09F046C0751314C090
+:10450000341312C0611110C02F7020612093D003AA
+:104510000E94B5218BEC93E00E94931D8091D00303
+:10452000D80115968C932EC0CD2819F15F3F11F458
+:104530004F3FF9F0F62E61111CC080919903209134
+:104540009A0336E0821709F45AC090E0389FF001D0
+:10455000399FF00D1124E556FC4F7181571306C0A9
+:104560007081471303C07281711103C00196877077
+:10457000E9CFF62E662309F418C18091D00381603B
+:104580008093D003F12C11C1751308C0341306C0F9
+:10459000611104C08091D003D801C3C04D875E87EC
+:1045A0008D859E856A8B0E944F216A898823E1F15F
+:1045B0006623D1F12091D003822F82958F7090E0F5
+:1045C000029774F08091CB039091CC0398878F83EE
+:1045D0001986DB86CA862C87CE0107960E94931D1A
+:1045E00086E0F801ABECB3E001900D928A95E1F71B
+:1045F0000E94C3210E94B521FF24F394D6C04D87A9
+:104600005E878D859E850E947F26292F22952F709B
+:1046100030E0223031050CF0BCC09F7009F0B6C00C
+:10462000805E883008F4C1C0C8010E94931DE4CFA9
+:10463000C816D90608F453C0F601E81BF90BCF01E0
+:10464000883C910508F450C0F12C7C2DD98AC88A89
+:1046500089890E947521EBECF3E086E0DF011D9271
+:104660008A95E9F70E94B521A0C0751314C03413D0
+:1046700012C0611110C08091D003F8018583C80178
+:104680000E94931D86E0EBECF3E0DF011D928A951A
+:10469000E9F7FE2C8AC04D875E878D859E856A8BE3
+:1046A0000E944F216A89882309F4BECF662309F44A
+:1046B000BBCF2091D003822F82958F7090E002971C
+:1046C0000CF48ECF8091CB039091CC039A83898395
+:1046D0001B82DD82CC822E83CE0101967FCF809516
+:1046E00090958C0D9D1DACCFF62E662309F49CCFC2
+:1046F00075132EC034132CC02091D00320FD1FC091
+:10470000822F82958F70D9F0D80115962C9315972A
+:104710008F3049F08F5F982F9295907F822F8F7006
+:10472000892B15968C93C8010E94931D86E0F80191
+:10473000ABECB3E001900D928A95E1F793CF86E060
+:10474000F801ABECB3E001900D928A95E1F72DC032
+:104750004D875E878D859E850E944F21811140CFB8
+:104760008091D00381608093D003C8010E94931D83
+:104770001CC0662309F458CF4D875E878D859E85C2
+:104780000E944F21882309F44FCF2ACF811148CFAF
+:104790000CC0243031050CF047CF9F7009F440CF96
+:1047A000F8019581907F09F03BCF8F2D62960FB66F
+:1047B000F894DEBF0FBECDBFDF91CF911F910F9157
+:1047C000FF90EF90DF90CF9008951F93CF93DF93EA
+:1047D000CDB7DEB72C970FB6F894DEBF0FBECDBFB6
+:1047E0004F83588769877A878B879C87CE01079686
+:1047F0000E941E22882369F08F8198852A853B8537
+:10480000232BF1F19F3F09F063C08F3F09F060C097
+:1048100037C086E0FE013796DE01119601900D92B9
+:104820008A95E1F76F817885EA85FB85309741F1BC
+:104830007F3F11F46F3F21F120919A0330E0C901CD
+:104840000196877099274091990350E08417950746
+:1048500009F447C069837A83FD83EC8396E0929FD5
+:10486000D001939FB00D1124A556BC4FFE01319687
+:1048700001900D929A95E1F780939A030E949421FA
+:1048800016E08091990390919A038917C1F1189FBE
+:10489000C001112485569C4F0E941E22882379F165
+:1048A000E09199031E9FF0011124E556FC4F4081D1
+:1048B000518162817381848195810E9484218091DC
+:1048C000990390E001968770992780939903D9CF37
+:1048D0004F81588569857A858B859C850E948421C6
+:1048E000CFCF0E944B2110929A0310929903EBECC8
+:1048F000F3E086E0DF011D928A95E9F7C1CF2C969F
+:104900000FB6F894DEBF0FBECDBFDF91CF911F91E0
+:104910000895EF92FF920F931F93CF93DF938C0133
+:10492000009709F46CC0F12CEE24E394E801219681
+:10493000F8018491843740F4843008F051C081300C
+:1049400081F0823019F15BC0853709F444C0A8F1C9
+:104950009CE7980F903708F052C08F770E94361D61
+:1049600041C00E5F1F4FFE01C49180E28C0F883062
+:1049700048F4C7708E2D01C0880FCA95EAF70E94CF
+:10498000342714C08C2F0E946E1C2DC00E5F1F4F49
+:10499000FE01C49180E28C0F883058F4C7708E2DD0
+:1049A00001C0880FCA95EAF70E943A270E945B2748
+:1049B0001AC08C2F0E94361D16C00E5F1F4FFE01BD
+:1049C000C491CC2381F08FE99FE00197F1F700C0FB
+:1049D0000000C150F6CF0E5F1F4FFE01F49003C0E0
+:1049E0000E946E1C8E018F2D882309F49FCFEFE962
+:1049F000FFE03197F1F700C000008150F5CFDF9163
+:104A0000CF911F910F91FF90EF90089508956093BB
+:104A1000D5037093D6038093D7039093D8030C9457
+:104A200037210F931F930091D5031091D603209146
+:104A3000D7033091D803DC01CB01802B912BA22B23
+:104A4000B32B8093D5039093D603A093D703B09351
+:104A5000D8031F910F910C9437210F931F9300914E
+:104A6000D5031091D6032091D7033091D803DC01F0
+:104A7000CB0180239123A223B3238093D50390936A
+:104A8000D603A093D703B093D8031F910F910C9432
+:104A900037210F931F930091D5031091D6032091D6
+:104AA000D7033091D803DC01CB0180279127A227BF
+:104AB000B3278093D5039093D603A093D703B093E5
+:104AC000D8031F910F910C9437211092D1031092AB
+:104AD000D2031092D3031092D4030C94372141E0F7
+:104AE00050E060E070E004C0440F551F661F771F60
+:104AF0008A95D2F74093D1035093D2036093D303A6
+:104B00007093D4030C94372141E050E060E070E0F2
+:104B100004C0440F551F661F771F8A95D2F78091F6
+:104B2000D1039091D203A091D303B091D403482B29
+:104B3000592B6A2B7B2B4093D1035093D203609364
+:104B4000D3037093D4030C94372141E050E060E02C
+:104B500070E004C0440F551F661F771F8A95D2F777
+:104B600040955095609570958091D1039091D203B6
+:104B7000A091D303B091D403482359236A237B2304
+:104B80004093D1035093D2036093D3037093D40323
+:104B90000C94372141E050E060E070E004C0440F25
+:104BA000551F661F771F8A95D2F78091D103909188
+:104BB000D203A091D303B091D403482759276A2781
+:104BC0007B274093D1035093D2036093D303709318
+:104BD000D4030C9437210F931F930091D1031091AC
+:104BE000D2032091D3033091D403DC01CB01802B7D
+:104BF000912BA22BB32B8093D1039093D203A0933C
+:104C0000D303B093D4031F910F910C9437210F93CA
+:104C10001F930091D1031091D2032091D3033091BF
+:104C2000D403DC01CB0180239123A223B3238093FF
+:104C3000D1039093D203A093D303B093D4031F91D5
+:104C40000F910C9437210F931F930091D103109172
+:104C5000D2032091D3033091D403DC01CB01802710
+:104C60009127A227B3278093D1039093D203A093D7
+:104C7000D303B093D4031F910F910C94372108955F
+:104C8000CF92DF92EF92FF920F931F93CF93DF9318
+:104C90008C01C090D503D090D603E090D703F0905C
+:104CA000D8038091D1039091D203A091D303B09106
+:104CB000D403C82AD92AEA2AFB2ACFE1D0E0D701B7
+:104CC000C6010C2E04C0B695A795979587950A94B2
+:104CD000D2F780FF06C0B8018C2F0E94F709019718
+:104CE00021F4219760F780E001C08C2FDF91CF91F4
+:104CF0001F910F91FF90EF90DF90CF900895CF9389
+:104D0000DF93EC010E944026BE010E94F709DF916B
+:104D1000CF910895CB010E947F260895909186023D
+:104D2000992321F090918702911109C02091880266
+:104D300030918902F90132969FEF40E01FC0982F11
+:104D40009695969596959F3050F5E0918802F09152
+:104D50008902E90FF11D877021E030E0A90102C04E
+:104D6000440F551F8A95E2F7CA019181892B8183EF
+:104D700008959F3F39F04F5F4E3041F051915813E5
+:104D8000F8CF0DC05111F7CF942FF5CF9F3F39F0D9
+:104D9000F901E90FF11D97FDFA95828308950895B1
+:104DA00090918602992321F090918702911109C078
+:104DB0002091880230918902F9013296205F3F4F9D
+:104DC0001FC0982F9695969596959F30F0F4E09198
+:104DD0008802F0918902E90FF11D877021E030E02F
+:104DE000A90102C0440F551F8A95E2F7CA018095B8
+:104DF00091818923818308953196E217F30729F081
+:104E000090819813F9CF1082F7CF089581E090E058
+:104E1000E0918802F0918902E80FF91F1082019653
+:104E200080319105A9F708959091EC03892B809327
+:104E3000EC03089580959091EC0389238093EC0313
+:104E400008951092EC0308959091EB03892B8093C1
+:104E5000EB03089580959091EB0389238093EB03F6
+:104E600008951092EB0308959091EA03892B8093A3
+:104E7000EA03089580959091EA0389238093EA03D9
+:104E800008951092EA0308958093D903089510922B
+:104E9000D90308958091880290918902FC0131968E
+:104EA0009C01205F3F4F80E0919191118F5FE2174D
+:104EB000F307D1F70895E0918802F091890280917B
+:104EC000EC038083E0918802F091890290818091C7
+:104ED000EB03892B8083E0918802F0918902908115
+:104EE0008091EA03892B80838091D903882361F024
+:104EF000E0918802F09189029081892B80830E9441
+:104F00004A2781111092D9038091880290918902D9
+:104F10000C943A1B80910E04843039F11092EE0308
+:104F200020E488E190E00FB6F894A89580936000A3
+:104F30000FBE2093600080E00E94540580E00E9434
+:104F4000D20A83B7817F846083BF83B7816083BFC8
+:104F50007894889583B78E7F83BF88E10FB6F894E5
+:104F600080936000109260000FBE08950895089528
+:104F7000CF9380E00E9454050E94B6270E94890CBE
+:104F80000E94B727C0E08C2F0E94D20D892B29F4F4
+:104F9000CF5FC430C1F780E001C081E0CF910895B8
+:104FA0000E944B2180E00E9454050E94452D0E94E2
+:104FB0002E1B0C94D20A1F920F920FB60F9211243F
+:104FC0008F939F93AF93BF938091EE03811113C092
+:104FD0008091EF039091F003A091F103B091F2035F
+:104FE0004196A11DB11D8093EF039093F003A09310
+:104FF000F103B093F203BF91AF919F918F910F9006
+:105000000FBE0F901F90189582E084BD93E095BD70
+:105010009AEF97BD80936E0008952FB7F894809112
+:10502000EF039091F003A091F103B091F2032FBF31
+:105030000895CF92DF92EF92FF920F931F932FB7B5
+:10504000F8944091EF035091F0036091F103709157
+:10505000F2032FBF6A017B01EE24FF248C0120E0C4
+:1050600030E0C016D106E206F30610F441505109B3
+:105070009A01281B390BC9011F910F91FF90EF90E6
+:10508000DF90CF9008951F920F920FB60F921124C8
+:105090008F939F93AF93BF938091EF039091F00311
+:1050A000A091F103B091F2030196A11DB11D80936F
+:1050B000EF039093F003A093F103B093F203BF9139
+:1050C000AF919F918F910F900FBE0F901F901895E9
+:1050D0000E942B18F8942FEF87EA91E62150804028
+:1050E0009040E1F700C0000087E090EBDC01809386
+:1050F000190490931A04A0931B04B0931C049CE021
+:1051000088E10FB6F894A895809360000FBE909345
+:105110006000FFCF0E94C928811102C00E94A5280B
+:105120000E94D4288093ED030E94E1288093170405
+:1051300087FB882780F9809387020E94D828682FF0
+:1051400070E080E090E00C9407256DEE7EEF80E04B
+:1051500090E00E94AA3160E082E090E00E949831E5
+:1051600060E083E090E00E94983160E084E090E0AD
+:105170000E94983160E085E090E00E94983160E004
+:1051800086E090E00E9498316FEF87E090E00C9409
+:10519000983180E090E00E94923121E08D3E9E4F58
+:1051A00009F020E0822F089582E090E00C948A318B
+:1051B00083E090E00C948A31682F83E090E00C94B7
+:1051C000983184E090E00C948A31682F84E090E07C
+:1051D0000C94983186E090E00C948A31682F86E038
+:1051E00090E00C94983187E090E00C948A31682F1D
+:1051F00087E090E00C9498318091F50380FF0BC01C
+:1052000060918D0285E0689FB001112475956795C6
+:10521000759567952BC081FF09C060918D0285E06F
+:10522000689FB00111247595679520C082FF07C063
+:1052300060918D0285E0689FB001112417C09091A4
+:10524000F6039923D1F060918C02961788F720918C
+:105250008D0285E0289F90011124929FA001939FC9
+:10526000500D112470E0CA010E9470316038710540
+:1052700040F46115710539F002C065E070E0862FD9
+:1052800008958FE7089581E008958091F50380FFE8
+:1052900008C060918B0270E075956795759567956C
+:1052A00021C081FF06C060918B0270E07595679503
+:1052B00019C082FF04C060918B0270E010C0909111
+:1052C000F6039923C1F060918A029617A0F78091A6
+:1052D0008B02899FC001112470E00E9470316038F8
+:1052E000710528F46115710521F0862F08958FE767
+:1052F000089581E0089561E070E0F4CF803F21F4EB
+:105300000E94FC28819504C0813F29F40E94FC285A
+:105310008093F9030895823F21F40E94FC2881952F
+:1053200004C0833F29F40E94FC288093F803089569
+:10533000893F19F40E94452905C08A3F31F40E9433
+:10534000452981958093FA0308958B3F21F40E94AB
+:105350004529819504C08C3F29F40E9445298093FA
+:10536000FB030895843F21F48091F703816017C007
+:10537000853F21F48091F703826011C0863F21F4BC
+:105380008091F70384600BC0873F21F48091F7037D
+:10539000886005C0883F31F48091F7038061809375
+:1053A000F70308958D3F21F48091F50381600BC0D0
+:1053B0008E3F21F48091F503826005C08F3F29F470
+:1053C0008091F50384608093F5030895803F39F45C
+:1053D0008091F90387FF6CC01092F90369C0813F87
+:1053E00029F48091F9031816BCF362C09091F80378
+:1053F000823F29F497FF5CC01092F80359C0833FA5
+:1054000019F41916CCF354C0893F41F48091FA0382
+:1054100018160CF04DC01092FA034AC08A3F29F4C6
+:105420008091FA0387FF44C0F6CF8B3F39F4809117
+:10543000FB0387FF3DC01092FB033AC08C3F29F469
+:105440008091FB031816BCF333C0843F21F4809194
+:10545000F7038E7F17C0853F21F48091F7038D7F7E
+:1054600011C0863F21F48091F7038B7F0BC0873FEB
+:1054700021F48091F703877F05C0883F31F4809144
+:10548000F7038F7E8093F70313C08D3F21F4809143
+:10549000F5038E7F0BC08E3F21F48091F5038D7F45
+:1054A00005C08F3F29F48091F5038B7F8093F5032E
+:1054B0008091F80381110EC08091F90381110AC017
+:1054C0008091FA03811106C08091FB03811102C013
+:1054D0001092F603089587EF93E00E94451B0E9407
+:1054E0000D289093F4038093F30308951F93CF93B3
+:1054F000DF938091F3039091F4030E941928AC018B
+:105500009091F603992321F020918E0230E006C09D
+:1055100020918F028AE0289F90011124421753079F
+:1055200008F486C08091F803C091F903D091FA0382
+:105530001091FB03811107C0C11176C0D11174C055
+:10554000111172C075C09F3F19F09F5F9093F603D1
+:10555000181624F40E94FC288093F8038091F80325
+:1055600087FF05C00E94FC2881958093F8031C16D4
+:1055700024F40E94FC288093F9038091F90387FFAB
+:1055800005C00E94FC2881958093F9036091F8037F
+:10559000662339F1C091F903CC2319F1772767FD10
+:1055A0007095872F972F0E94E02E23E333E343E388
+:1055B0005FE30E94942F0E94AD2E6093F8036C2F3E
+:1055C000772767FD7095872F972F0E94E02E23E3A2
+:1055D00033E343E35FE30E94942F0E94AD2E609378
+:1055E000F9031D1624F40E9445298093FA03809143
+:1055F000FA0387FF05C00E94452981958093FA032D
+:10560000111624F40E9445298093FB038091FB032B
+:1056100087FF05C00E94452981958093FB03DF9198
+:10562000CF911F910C946B2A9F3F09F08ECF96CF9C
+:10563000DF91CF911F910895E7EFF3E085E0DF015F
+:105640001D928A95E9F71092F6031092F5030895DA
+:10565000833081F128F4813059F08230D1F00895FF
+:10566000853009F449C0B8F1863009F456C0089570
+:1056700080918F02262F30E0280F311D2F3F3105FA
+:1056800024F4680F60938F0208958FEF80938F0248
+:10569000089580918E02262F30E0280F311D2F3F74
+:1056A000310524F4680F60938E0208958FEF809384
+:1056B0008E02089580918D02262F30E0280F311D33
+:1056C0002F3F310524F4680F60938D0208958FEF0A
+:1056D00080938D02089580918C02262F30E0280F50
+:1056E000311D2F3F310524F4680F60938C0208951B
+:1056F0008FEF80938C02089580918B02262F30E0EB
+:10570000280F311D2F3F310524F4680F60938B0261
+:1057100008958FEF80938B02089580918A02262F3F
+:1057200030E0280F311D2F3F310524F4680F6093BE
+:105730008A0208958FEF80938A020895833011F1D1
+:1057400028F4813049F0823091F00895853081F15C
+:1057500020F18630C1F1089580918F02681720F4FE
+:10576000861B80938F02089510928F020895809176
+:105770008E02681720F4861B80938E020895109283
+:105780008E02089580918D02681720F4861B809305
+:105790008D02089510928D02089580918C026817F1
+:1057A00020F4861B80938C02089510928C02089539
+:1057B00080918B02681720F4861B80938B020895DA
+:1057C00010928B02089580918A02681720F4861B3C
+:1057D00080938A02089510928A0208950F931F936E
+:1057E000873208F048C08E3108F094C0803109F447
+:1057F0007EC008F5873009F468C068F4863009F087
+:10580000A4C08091ED03817F8E7F8093ED0381E0C2
+:105810008093FD039BC08B3009F490C08E3009F05B
+:1058200094C08091ED0382FB222720F991E092271A
+:1058300090FB82F965C0863109F480C060F4813143
+:1058400009F083C00E944B219091870281E0892753
+:105850008093870273C0893109F470C08B3109F0DD
+:1058600074C08091ED0381FB222720F991E09227FB
+:1058700090FB81F945C0883309F460C050F4893247
+:1058800009F45EC0853309F45BC0873209F458C05F
+:105890005CC0833409F454C028F48A3308F455C03A
+:1058A000895339C0883409F050C00E944B210E94AE
+:1058B00090060FEF13ED20E3015010402040E1F778
+:1058C00000C000000E94682839C09091ED03892F24
+:1058D0008095817080FB90F929F096609860909394
+:1058E000ED0334C0997F977F9093ED0327C080919B
+:1058F000ED0383FB222720F991E0922790FB83F9A7
+:105900008093ED039923D1F08091ED038160809322
+:10591000ED0314C08D5141E050E060E070E08A0179
+:105920009B0104C0000F111F221F331F8A95D2F75D
+:10593000C901B8010E9407250E944B2181E006C0E1
+:1059400061E070E080E090E0F5CF80E01F910F9182
+:10595000089580E0089580E00895CF93C82F809146
+:10596000FD03813069F018F08230C9F184C0E09104
+:105970008802F09189028081823209F07EC007C0DE
+:10598000E0918802F09189028081823261F48C2F4B
+:105990000E94A92C811104C08C2F0E94EE2B1DC0E7
+:1059A00081E090E01AC08C2F0E94AB2C811114C0B2
+:1059B000C43179F048F4CB3079F0C03109F061C0DE
+:1059C00082E08093FD0308C0C93219F0C83321F08A
+:1059D00058C01092FD0355C081E0817054C0C93297
+:1059E00091F120F5C43179F1B0F4C73009F047C026
+:1059F0008EE180938F0282E380938E028AE080930F
+:105A00008D0284E180938C0288E080938B0288E28F
+:105A100080938A0234C0CE51C63088F5EC2FF0E076
+:105A2000E65FFC4F80818093FC0329C0CE34E9F00F
+:105A300020F4CB3421F56AE013C0C13579F0C235CA
+:105A4000F1F461E00DC08091FC03882319F01092FD
+:105A5000FC0315C081E08093FD0315C061E006C022
+:105A60008091FC030E94282B0AC06AE08091FC030D
+:105A70000E949E2B04C01092FD0380E004C081E0D0
+:105A800002C080E0AACFCF9108950E94C928811159
+:105A900002C00E94A5280E94EA288093180480FF73
+:105AA00002C0869501C080E00C94540580911804D2
+:105AB000982F9695292F30E0233031054CF49F5FC5
+:105AC000990F8170892B8160809318040E94EE28C1
+:105AD0008091180486950C94540580911804982F91
+:105AE000969591F09158990F8170892B80931804A5
+:105AF0008E7F91E009F490E08091180490FB80F98A
+:105B0000809318040E94EE288091180486950C94C6
+:105B1000540580911804982F909590FB80F98093FC
+:105B200018040E94EE288091180480FF02C0869518
+:105B300001C080E00C94540590911804892F86953B
+:105B40008F5F8F779170843028F4880F892B809332
+:105B5000180402C090931804809118048E7F91E07D
+:105B600009F490E08091180490FB80F98093180468
+:105B70000E94EE288091180486950C94540520917B
+:105B80001804922F96958927982F990F822F81704C
+:105B9000892B809318048E7F91E009F490E0809126
+:105BA000180490FB80F9809318040E94EE288091DD
+:105BB000180486950C9454055058BB27AA270ED07C
+:105BC00075C166D130F06BD120F031F49F3F11F4F4
+:105BD0001EF45BC10EF4E095E7FB51C1E92F77D1CC
+:105BE00080F3BA17620773078407950718F071F4FA
+:105BF0009EF58FC10EF4E0950B2EBA2FA02D0B0150
+:105C0000B90190010C01CA01A0011124FF27591B01
+:105C100099F0593F50F4503E68F11A16F040A22F07
+:105C2000232F342F4427585FF3CF46953795279578
+:105C3000A795F0405395C9F77EF41F16BA0B620B77
+:105C4000730B840BBAF09150A1F0FF0FBB1F661FBE
+:105C5000771F881FC2F70EC0BA0F621F731F841F01
+:105C600048F4879577956795B795F7959E3F08F027
+:105C7000B3CF9395880F08F09927EE0F97958795E6
+:105C80000895D9D008F481E008950CD00FC107D150
+:105C900040F0FED030F021F45F3F19F0F0C0511118
+:105CA00039C1F3C014D198F39923C9F35523B1F343
+:105CB000951B550BBB27AA2762177307840738F07B
+:105CC0009F5F5F4F220F331F441FAA1FA9F333D0DA
+:105CD0000E2E3AF0E0E830D091505040E695001C8E
+:105CE000CAF729D0FE2F27D0660F771F881FBB1F4A
+:105CF000261737074807AB07B0E809F0BB0B802D24
+:105D0000BF01FF2793585F4F2AF09E3F510568F06F
+:105D1000B6C000C15F3FECF3983EDCF38695779503
+:105D20006795B795F7959F5FC9F7880F911D969571
+:105D3000879597F90895E1E0660F771F881FBB1FCD
+:105D4000621773078407BA0720F0621B730B840B7A
+:105D5000BA0BEE1F88F7E095089504D06894B1114E
+:105D6000D9C00895BCD088F09F5790F0B92F9927DB
+:105D7000B751A0F0D1F0660F771F881F991F1AF056
+:105D8000BA95C9F712C0B13081F0C3D0B1E008951F
+:105D9000C0C0672F782F8827B85F39F0B93FCCF3A0
+:105DA000869577956795B395D9F73EF4909580954C
+:105DB000709561957F4F8F4F9F4F0895E89409C06C
+:105DC00097FB3EF490958095709561957F4F8F4F2E
+:105DD0009F4F9923A9F0F92F96E9BB279395F69544
+:105DE000879577956795B795F111F8CFFAF4BB0FC2
+:105DF00011F460FF1BC06F5F7F4F8F4F9F4F16C026
+:105E0000882311F096E911C0772321F09EE8872FAF
+:105E1000762F05C0662371F096E8862F70E060E06B
+:105E20002AF09A95660F771F881FDAF7880F9695E4
+:105E3000879597F90895990F0008550FAA0BE0E888
+:105E4000FEEF16161706E807F907C0F0121613063C
+:105E5000E407F50798F0621B730B840B950B39F47C
+:105E60000A2661F0232B242B252B21F408950A26E2
+:105E700009F4A140A6958FEF811D811D089597F922
+:105E80009F6780E870E060E008959FEF80EC0895E0
+:105E900000240A9416161706180609060895002409
+:105EA0000A9412161306140605060895092E039483
+:105EB000000C11F4882352F0BB0F40F4BF2B11F4F7
+:105EC00060FF04C06F5F7F4F8F4F9F4F089557FD56
+:105ED0009058440F551F59F05F3F71F04795880F58
+:105EE00097FB991F61F09F3F79F0879508951216EF
+:105EF00013061406551FF2CF4695F1DF08C016169B
+:105F000017061806991FF1CF86957105610508944B
+:105F10000895E894BB2766277727CB0197F9089562
+:105F20008ADF08F48FEF08950BD0C0CFB1DF28F0DF
+:105F3000B6DF18F0952309F0A2CFA7CF1124EACF3E
+:105F4000C6DFA0F3959FD1F3950F50E0551F629FD8
+:105F5000F001729FBB27F00DB11D639FAA27F00DC2
+:105F6000B11DAA1F649F6627B00DA11D661F829FE9
+:105F70002227B00DA11D621F739FB00DA11D621FCE
+:105F8000839FA00D611D221F749F3327A00D611DEB
+:105F9000231F849F600D211D822F762F6A2F1124CD
+:105FA0009F5750408AF0E1F088234AF0EE0FFF1F20
+:105FB000BB1F661F771F881F91505040A9F79E3F57
+:105FC000510570F05CCFA6CF5F3FECF3983EDCF359
+:105FD000869577956795B795F795E7959F5FC1F794
+:105FE000FE2B880F911D9695879597F90895FA01D4
+:105FF000EE0FFF1F30962105310599F161157105EE
+:1060000061F48038BFE39B0749F1689490388105BB
+:1060100061F08038BFEF9B0741F0992342F5FF3FC5
+:10602000E1053105210511F1E8940894E795D901BE
+:10603000AA2329F4AB2FBE2FF85FD0F310C0FF5F67
+:1060400070F4A695E0F7F73950F019F0FF3A38F4FC
+:106050009F779F930CD00F9007FC905808953EF0C7
+:1060600014CF60E070E080E89FE308954FE79F77EA
+:106070005F934F933F932F939ED02F913F914F91DA
+:106080005F9152DF05C019F40EF0F9CE42CFFDCE7C
+:1060900026DFC8F39638C0F707F80F92E8942BE391
+:1060A0003AEA48EB5FE74EDF0F920F920F924DB73F
+:1060B0005EB70F92C0D0E4E4F1E016D04F915F914B
+:1060C000EF91FF91E595EE1FFF1F49F0FE57E06845
+:1060D0004427EE0F441FFA95E1F74195550B32D056
+:1060E0000F9007FE26C00895DF93CF931F930F9361
+:1060F000FF92EF92DF927B018C01689405C0DA2E4B
+:10610000EF011EDFFE01E894A5912591359145919F
+:106110005591AEF3EF0162DDFE019701A801DA941B
+:1061200079F7DF90EF90FF900F911F91CF91DF9162
+:1061300008959B01AC0160E070E080E89FE3A5CD8D
+:106140009ECEACC0CCDEE8F39923D9F3940F511D59
+:10615000BBF39150504094F059F0882332F0660F11
+:10616000771F881F91505040C1F79E3F510544F75B
+:10617000880F911D9695879597F908955F3FACF02C
+:10618000983E9CF0BB27869577956795B79508F460
+:10619000B1609395C1F7BB0F58F711F460FFE8CFDA
+:1061A0006F5F7F4F8F4F9F4FE3CFB4CE0EF076C01F
+:1061B0006CCE689464CE93DEC8F39923D1F3C6F312
+:1061C000DF93CF931F930F93FF92C92FDD2788236F
+:1061D0002AF02197660F771F881FDAF720E030E05A
+:1061E00040E85FEB9FE3883920F0803E30F0219655
+:1061F0008F77E3DCECE6F1E003C0DFDCE9E9F1E016
+:1062000073DF8B01BE01EC01FB2E6F577109759591
+:10621000771F880B990BD4DD28E132E741E35FE378
+:106220008FDEAF2D9801AE01FF900F911F91CF919E
+:10623000DF91D4DC3BCEFA01DC01AA0FBB1F9B012E
+:10624000AC01BF5728F422273327442750781FC0BA
+:10625000B75188F4AB2F0024469537952795011C3C
+:10626000A395D2F3002069F0220F331F441FB3958A
+:10627000DAF30DD0A1CC61307105A0E88A07B946E8
+:1062800030F49B01AC0166277727882790783096F9
+:1062900021F0208331834283538308959F3F31F05F
+:1062A000915020F4879577956795B795880F911D44
+:1062B0009695879597F90895AA1BBB1B51E107C0D6
+:1062C000AA1FBB1FA617B70710F0A61BB70B881F86
+:1062D000991F5A95A9F780959095BC01CD01089515
+:1062E00097FB072E16F4009407D077FD09D00E9483
+:1062F0005C3107FC05D03EF4909581959F4F089541
+:10630000709561957F4F0895EE0FFF1F0590F491F2
+:10631000E02D0994F999FECF92BD81BDF89A992795
+:1063200080B50895A8E1B0E042E050E00C94B231AD
+:10633000262FF999FECF92BD81BDF89A019700B43E
+:10634000021639F01FBA20BD0FB6F894FA9AF99ADE
+:106350000FBE08950196272F0E9499310C94983111
+:10636000DC01CB01FC01F999FECF06C0F2BDE1BD15
+:10637000F89A319600B40D9241505040B8F7089504
+:04638000F894FFCFBF
+:1063840007000C52D02445000000410000DC44000A
+:1063940000004152D0A4440000404100005C44008D
+:1063A40000004148F17644000000415C978A4400B3
+:1063B4000000411FD592440000004152D0A4440083
+:1063C4000000415CFFB844000000410AA7CF44002C
+:1063D4000000410000DC44000000410AA7CF440053
+:1063E4000000410000DC4400000041000000000007
+:1063F40000804000005C45000040410000000000B7
+:1064040000804052D02445000040410AA7CF4400F8
+:106414000000410000DC44000000410000000000D6
+:1064240000804052D024450000404100000000009C
+:1064340000804000005C45000040410AA7CF4400B2
+:106444000000410000DC44000000410000000000A6
+:1064540000804052D024450000404100000000006C
+:106464000080400AA74F45000040410AA7CF4400DE
+:106474000000410000DC4400000041000000000076
+:1064840000804052D024450000004100000000007C
+:106494000080405CFF38450000004100000000001F
+:1064A40000804052D02445000000410AA7CF440098
+:1064B4000000410000DC4400000041000000000036
+:1064C40000804052D024450000804153D024450030
+:1064D40000404160970A450000004154D0A44400A4
+:1064E4000000410000DC440000004160970A4500C0
+:1064F40000A041050000003F0000C8423214C0144F
+:106504009D14691435140101DA032808140A321E93
+:106514000000020004000500070009000B000C0045
+:106524000E001000110013001500170018001A00C7
+:106534001C001D001F002100230024002600280049
+:1065440029002B002D002F003000320034003500CC
+:10655400370039003B00400045002500260061005B
+:106564006000200037006400650066006700440096
+:106574004600240047003F4D3639BD0970093A09E9
+:1065840001099408AD08C608DF08010203040506E2
+:0465940007080900EB
+:00000001FF
diff --git a/keyboard/planck/planck_pcb_r4_w_bootloader.hex b/keyboard/planck/planck_pcb_r4_w_bootloader.hex
new file mode 100644
index 0000000000..f2e9993ac8
--- /dev/null
+++ b/keyboard/planck/planck_pcb_r4_w_bootloader.hex
@@ -0,0 +1,1880 @@
+:020000020000FC
+:047000000C948D3E21
+:047028000C94B73DD0
+:10702F0012010002FF010020EB03F42F0000010208
+:10703F00030109021200010100803209040000005F
+:10704F00000000000C03410054004D0045004C00AF
+:10705F001603410054006D00330032005500340018
+:10706F004400460055000C0331002E0030002E0066
+:10707F0030000403090416010C0100000C0000018C
+:02708F006C7F14
+:1070920012BD01BDF89A00B5089501E00895F9996D
+:1070A200FECF12BD01BD20BDFA9AF99AF6CFF99929
+:1070B200FECF0C944938F80104910895F8013491F7
+:1070C20031962491890108950091610000930C0189
+:1070D20000E80093610001E00093610005BF02E057
+:1070E20005BF0C9486380091D70001600093D70049
+:1070F200A89507EF04BF0091600000610093600053
+:1071020000E00093600001E008950E94AA3D0E9401
+:10711200B53DFDCF0CD00F7708D0006806D00061D6
+:1071220004D0016028D0789408950093D80000918B
+:10713200D8000895FCDF00621ED04CD009B500FFD4
+:10714200FDCFF5DF0F7D17D00091E0000E7F009399
+:10715200E0000091E000077F0093E0000091E20070
+:1071620001600093E2000091E20008600093E200F7
+:1071720078940C94743B0093D800089500910D010B
+:10718200002359F40091D90000FF07C0D0DF006846
+:10719200F2DF01E000930D01CDDFE0E2F2E00081D9
+:1071A200018100FF0DC0008111811E7F11830083C8
+:1071B20001E00093EA0000E00093EA0000931E025F
+:1071C20000E00093E9000091E80003FF02C00E9482
+:1071D200F23B0895A89539D000E40093600000E0E6
+:1071E200009381000093800010E0009385000093DB
+:1071F200840001E006BB00918100036000938100DE
+:107202000091600007FFFCCF00E80093600010933C
+:107212008100A89507EF04BF18D010936000209159
+:1072220084003091850010938100109380001093A8
+:1072320085001093840001E006BB2D3D354010F01F
+:1072420002E101C002E009BD089500916000006101
+:107252000093600008950E94AD3E239741D100E063
+:1072620000930901B5D104811581012B51F437D165
+:1072720000910701002309F4B9C000E0009307015F
+:10728200B5C058D102FFFDCF37D1068335D1009367
+:107292000F0132D1009310012FD1009311012CD193
+:1072A2000093120129D10093130102852091130149
+:1072B20030911201409111015091100116811A95DD
+:1072C20041F01250A9F01A9599F11A9509F473C078
+:1072D2008BC010910F01113011F411E001C010E0C8
+:1072E200138799D00C3F11F414D17FC077D17DC0A0
+:1072F20092D010910F01112329F01A9549F01A9595
+:10730200A9F073C010E013870C3F09F06EC0ECCFF8
+:1073120056D103C04CD109F468C00D911C9144D1DF
+:107322000F3FC1F305E0009309015FC011E0EBCF0D
+:10733200D2D029F00250E1F10A9541F056C0FDD0B9
+:107342000E94A33F0FEF00930A014FC0552319F08B
+:107352005A9579F04AC04ED00DEF04BF74D0EAD0EE
+:1073620003FFFDCF67D051D04AD008E00093600000
+:10737200FFCF40D068D0DED003FFFDCF5BD03FD03F
+:1073820044D00FEF1FE004C009811A810150104060
+:1073920009831A8309811A81012BB1F700E800934E
+:1073A200610000910C01009361000C940000FFCF7A
+:1073B20001E003871AC08FD019F00A9539F015C081
+:1073C200535098F4BAD002E000870FC0505339F0FE
+:1073D2005A9541F05F52B1F35A95A1F306C002E00B
+:1073E2000883F0CF01E0FCCFA8D079D02396E4E067
+:1073F2000C94BA3E01E005BF00E005BF089500917C
+:10740200D8000F770093D800089509B50D7F09BD04
+:1074120000E009BD08955183408333832283109194
+:10742200E8001B7F1093E8001091E8001F7710938B
+:10743200E80008955DD053D0F8940091E000016017
+:107442000093E000089579D04AC0219749D0009175
+:107452000601035019F00250B9F00BC03CD021F0E4
+:107462000A9559F00A9529F400910A010C3F19F482
+:1074720050D02196089567D0FCCF0091010100936E
+:10748200F100009100010AC01091100124D019F0FE
+:107492000A9549F0EECF135018F400E00093F10082
+:1074A2001ED044D0E6CF105339F01A9539F01F524E
+:1074B20041F01A9541F0F4CF08E5F0CF00E006D094
+:1074C200EDCF02E0FCCF04E001D0E8CF10E020E0F5
+:1074D20030E00C94113F00910F010023089521C068
+:1074E2000BD008D007D00093040106D00093050109
+:1074F20021D00BC000D008830091F10008950091C3
+:10750200EB0000620093EB0015D0077F0093E800C8
+:107512000895F5DF02E00093080103E000930901FA
+:10752200089559D007D000FFFDCF089503D002FF80
+:10753200FDCF03C00091E8000895FCDF0B7FE6DF7A
+:10754200F9DF0F77E3CF0E94AC3E42D038D006C0BD
+:107552002BD00093F1002BD059F43DD0082F092BEA
+:10756200A9F0E8DF02FD12C0E5DF00FFFDCF4424F1
+:10757200042D4394003289F300910B0100230D91F5
+:107582001C9131F311970E945838E3CFD3DF00FFEB
+:10759200FDCF21D0CFDF00FFFDCFCCDF02FFFDCF3B
+:1075A200CCDFE5E00C94B93E11970C945C380D9158
+:1075B2001C910F5F1F4F1C930E93019708958281B8
+:1075C200938100811181801B910B0196DF01089547
+:1075D200E0E0F1E00895AEDF0E7F98CF0E94A93E71
+:1075E200F7DF80819181A081B181AF710481158122
+:1075F20000521040048315830AC000910B0100233E
+:1076020031F4A301920103E911E00E943B3F47D00C
+:10761200B8F1662477242C0111C06EDFF301ED5618
+:10762200FE4F008301E0600E00E0701E01960091A3
+:10763200F200002311F033D0B8F47FDF30D0E8F24B
+:10764200F301B096E238F040C0F674DF02FFFDCFDE
+:107652000091F200BDDF24813581201B304024835C
+:107662003583E5CF49DFAA95AA23E1F700910B0103
+:10767200013099F62091F1008C010E945038D6CF4A
+:1076820004811581012B21F055DF02FFFDCF55DF6B
+:10769200A2DF50DF00FFFDCFE8E00C94B63EE0E051
+:1076A200F1E0028113810817190708952091EB0078
+:1076B20021602093EB000093EC000091ED0002703A
+:1076C200012B0093ED000091ED0002600093ED00AC
+:1076D2001091EE00012F000F00E0001F0895412FCE
+:1076E2000093E900089500E009D000FD05C000E024
+:1076F200F7DF10E202E0DACF00E00895F1DF009157
+:10770200EB0008950F770132A9F5112369F11A955B
+:1077120059F01A9561F01A9569F01A95F9F01A95CF
+:10772200C1F01A95D9F024C00E942C3920C00E94C1
+:10773200263A1DC029D00091090123D001E01FD0B3
+:1077420020D0009108011BD00E94923A0E94973AE1
+:107752000EC01AD00091080114D007C002E00093B5
+:10776200080100E0009309010FD00E94923A03C081
+:107772000E94803A02C001E0089500E0089501D01D
+:1077820000E00093F10008950091E800077F009364
+:10779200E800089508950350F9F4112339F01A9579
+:1077A20051F01A9581F01A9599F016C004E016D09E
+:1077B20001E810E703C011D003E510E7E7E1F2E0CA
+:1077C20000831183D8CF06E109D00FE510E7F6CF89
+:1077D20004D005E710E7F2CFD0CF0CE000931A02F5
+:1077E200089527D120D100931D02E1D0212F11232A
+:1077F20029F12A95E9F02250F1F0225099F02A95C8
+:1078020049F0225061F02A9581F02A95E1F02A95FB
+:10781200E9F023C0003809F44FC00C94833B0038D0
+:10782200E1F7C8C00023C9F71EC00023B1F72DC07D
+:10783200033098F744C1033080F70BC1003868F376
+:10784200033858F7C9C0013841F77BC1013051F400
+:10785200FCD0BFD000FD06C0FCCF0E94833B0023BA
+:1078620009F41ED008951091E3001078DCD00F7750
+:10787200012B0093E300E9D0ACD000FFFDCF0091D3
+:10788200E30000680093E300089591D0123040F4C1
+:107892000FD010931E02DAD000911E020C94CB3B43
+:1078A2000091EB0001D004C000620093EB00089548
+:1078B2000091E800077FC0C0BA93AA93229700E024
+:1078C2000093190274D0AFD0202F2A9519F02A956F
+:1078D200E9F022C002E100931A020FE210E7E7E1A9
+:1078E200F2E0008311839DD008839DD00983E0DFFD
+:1078F20000911A0210E02881398102171307A8F4B7
+:107902000F7181F401E00093190211C002E10093AA
+:107912001A0201E410E7E3CF0E94CC3B002319F7DF
+:107922008ED040C01093190202C020931A027ED05A
+:10793200A7E1B2E001C08AD000911A02002309F146
+:1079420048D004FD1EC045D000FD03C042D004FF54
+:10795200FACF10E0012F1395003281F0ED91FC91E6
+:107962001197049133D02D913C912F5F3F4F3C935F
+:107972002E93FD0103810A95038361F72AD004FF48
+:10798200DACF00911902013039F423D004FD04C08A
+:1079920020D000FFFDCF5AD01CD004FFFDCF46D02F
+:1079A20018D00B7F49D02296A991B99108951091D0
+:1079B200F10008957DDF00911E0208D047D009D062
+:1079C2000F773AD006D002FFFDCFBFC00093F1007F
+:1079D20008950091E800089524D010911D021058D6
+:1079E20029F01A9589F01A9591F019C061DF00917A
+:1079F2001C02ECDF00E0EADF29D0EBDF02FFFDCF63
+:107A020018D0E7DF0F770CC053DF00E0F2CF51D080
+:107A12000F7710E0F801E55EFD4F0081EACF0FD04D
+:107A22000BC001D000D00091F1000895D2DF0F7E8B
+:107A320003C00091E8000B7F0093E80008950091D5
+:107A4200EB0032DFC6DF077F089532DFC2DF0E7F31
+:107A5200F3CF00911D02002329F00A9509F10A953E
+:107A620031F01EC0E0DF0A9561D0D9F41AC061D0AE
+:107A7200B9F4D9DF0F7711F416D01BD00093E900C7
+:107A82001091EB0010FF0BC00ED010E01093E90034
+:107A920021E0F801E55EFD4F20834FD003C042D0C4
+:107AA20045D0CFDFC9CF1091EB0010621093EB00ED
+:107AB20008951091E800177F1093E800089500914F
+:107AC2001D02002311F4AFDF02C0013011F4B7DF51
+:107AD200B3CF023031F52DD019F52091F1002F7777
+:107AE2002093E90023D000FF19C081F01FD000616C
+:107AF200DCDE01E010E0422F0E949F3E0093EA008C
+:107B020000E00093EA0012D00860CFDE0BD030E034
+:107B1200F901E55EFD4F008310D0DACF03D0D7CF55
+:107B2200BFDE089500E00093E90008950091EB00A4
+:107B3200089579DF3CDF00230895BADE4ADF0E7F25
+:107B4200089583DF46DF02FFFDCF73DF42DF0F7749
+:107B520073CF0091D70001600093D7000E948B3849
+:107B620000E000931F0208950C94BF388A93FA93A1
+:107B7200EA933A922A921A920A927A936A935A93BF
+:107B82004A933A932A931A930A938FB70091DA0091
+:107B920000FF24C00091D80000FF20C00EEF009328
+:107BA200DA000091D90000FF11C001E000930D013D
+:107BB200ABD0026096D09AD00860A2D00E949B38C7
+:107BC2000091E0000E7F0093E00008C000E0009307
+:107BD2000D0100931E0298D0046083D07FD002FF73
+:107BE20005C084D002FF02C00BEF75D077D000FF32
+:107BF2001BC07CD000FF18C001E000930E016AD0C8
+:107C020083D000626ED00EEF6FD0006179D06ED05B
+:107C12000F7D76D00091D80000620093D80009B59C
+:107C22000D7F09BD00E009BD59D004FF20C05ED020
+:107C320004FF1DC009B500FD05C00E94EB3809B55F
+:107C420000FFFDCF0091D8000F7D0093D80042D0F5
+:107C520000910E01002359F04CD00FEE45D00F7E5B
+:107C620052D000643ED042D001604AD042D036D0D9
+:107C720005FF0FC03BD005FF0CC000E000930E01D2
+:107C820035D00F7E3DD00FED2FD00F7D3CD0006858
+:107C920028D024D003FF0DC029D003FF0AC000E082
+:107CA20000931F0207EF17D00E94743B2DD0116082
+:107CB20018D08FBF09911991299139914991599100
+:107CC200699179910990199029903990E991F991E6
+:107CD200899118950FEE0093E10008950091E1005B
+:107CE20008951183008308950093E1000091E2005A
+:107CF20008950091E200006203D00091E200086062
+:107D02000093E2000895FCDFE0E2F2E000811181DD
+:107D1200089500008895FECF01E60DBF02E00EBF78
+:107D2200C2EED2E00E947438002311F00E94D33ECA
+:107D32000E9465380E948A3E0C948A3E4A951AF047
+:107D4200000F111FFBCF0895BA92AA929A928A92BB
+:107D52007A926A925A924A92BA93AA939A938A937D
+:107D62000895BB84AA84998488847F806E805D8014
+:107D72004C80BB81AA8199818881F0E00FB6F8948A
+:107D8200CE0FDF1F0FBE089520E006D0E9F7089559
+:107D9200259102D0E9F708952D9301501040202F2C
+:107DA200212B089585E890E7FC0105911491FC01CF
+:107DB2003296A591B491FC01349625913491422FCB
+:107DC200432B19F0F901E4DF01C0DEDF069610E76C
+:107DD2008139910748F308952F930CD02F9101D048
+:107DE20008953CD0F12FE02F45E047BFE89536D00B
+:107DF20012D0089533D0F12FE02F43E047BFE8952A
+:107E02002DD008952BD0F12FE02F43E047BFE89506
+:107E120025D001D0089522D041E147BFE8951EC088
+:107E22001DD0F12FE02F41E247BFC895002D16C0AB
+:107E320015D0F12FE02F49E047BFC895002D0EC0A5
+:107E4200F32FE22F012E102E41E047BFE89506C026
+:107E520005D0002E29E027BFE89500C0022E27B7E3
+:107E620020FDFCCF202D0895022E27B726FDFCCF42
+:107E7200202D08950E94A53E22974801C901DA01EA
+:107E820010C05BD001E0A00E00E0B01E00E4A0161E
+:107E920000E0B00608F440C0830120E030E00E9418
+:107EA200F23E0A2F0B2B09F440C0082F0F7710E087
+:107EB2002C01401A510A320100E4A02E03C00A2FFD
+:107EC2000B2BE1F04816590680F0F40101914F01A5
+:107ED2000983119729F001914F010883119711C06D
+:107EE200F2013196049108830CC0F20104910983D6
+:107EF2003196E817F907A1F7F401EDCF1BD00883FB
+:107F020019839201088119810E94213F16D0AA94F7
+:107F1200B1F62301AA24BB240DD0312F0F3F3F4FCE
+:107F220009F4AFCF83011DD0B7CF01E02296ECE078
+:107F32000C94B23E82010C945F3802E0400E00E0E5
+:107F4200501E08959A938A9380E090E08C0109D0A4
+:107F520080589F4F8F3F0FE69007C0F38991999108
+:107F6200089520E030E00C94FB3E00000000000089
+:067F720000000000FC000D
+:107FE4000C94ED3E0C94113F0C94193F0C94213FDA
+:0C7FF4000C94F23E0C94033F0C94293FC7
+:040000030000700089
+:100000000C94FE040C9442050C9442050C94420599
+:100010000C9442050C9442050C9442050C94420544
+:100020000C9442050C9442050C94A6180C94781973
+:100030000C94DB270C9442050C9442050C94420569
+:100040000C9442050C9442050C9442050C94420514
+:100050000C9442050C9443280C9442050C944205E0
+:100060000C9442050C9442050C9442050C944205F4
+:100070000C9442050C9442050C9442050C944205E4
+:100080000C94D10E0C9442050C9442050C9442053C
+:100090000C9442050C9442050C9442050C944205C4
+:1000A0000C9442050C9442050C9442059D05AD0547
+:1000B000BF05CF05D505E405F005F60504060D06D8
+:1000C0001E062E06340664069013901390139013A8
+:1000D000901390139013901390139013A713A713DA
+:1000E000A713A713A713A713A713A713A713A71340
+:1000F00090139013901390139013A713A713A713A3
+:10010000A713A713901390139013A713A713A71364
+:10011000E519071AF51A071AF51A4C1A6F1AF51A83
+:10012000C41AD71ADA1DDA1D171E171E711EAF1E4C
+:1001300027212721C81E2721C91FC91F8C20A320C2
+:100140002721122107634236B79BD8A71A39685670
+:1001500018AEBAAB558C1D3CB7CC5763BD6DEDFDE9
+:10016000753EF6177231BF000000803F08000000A6
+:10017000BE922449123EABAAAA2ABECDCCCC4C3E9C
+:1001800000000080BEABAAAAAA3E00000000BF008B
+:100190000000803F0000000000084178D3BB438787
+:1001A000D1133D190E3CC3BD4282AD2B3E68EC829B
+:1001B00076BED98FE1A93E4C80EFFFBE01C4FF7F20
+:1001C0003F00000000002B0014001A00080015007A
+:1001D00017001C0018000C00120013002A00290050
+:1001E00004001600070009000A000B000D000E00B5
+:1001F0000F0033003400E1001D001B000600190051
+:1002000005001100100036003700380028000530C6
+:10021000E000E200E30003302C002C00043050002A
+:10022000510052004F002B0014001A000900130067
+:100230000A000D000F0018001C0033002A002900DE
+:10024000040015001600170007000B00110008003D
+:100250000C0012003400E1001D001B000600190014
+:1002600005000E0010003600370038002800053069
+:10027000E000E200E30003302C002C0004305000CA
+:10028000510052004F002B0034003600370013009D
+:100290001C0009000A00060015000F002A002900B2
+:1002A00004001200080018000C0007000B001700E3
+:1002B000110016003800E100330014000D000E009C
+:1002C0001B00050010001A0019001D002800053051
+:1002D000E000E200E30003302C002C00043050006A
+:1002E000510052004F0035021E021F02200221025F
+:1002F0002202230224022502260227022A004C00A1
+:100300003A003B003C003D003E003F002D022E0223
+:100310002F02300231020100400041004200430040
+:10032000440045000100010001000100010001003E
+:100330000100010001000100010001000100AB000B
+:10034000AA00A900AE0035001E001F0020002100F9
+:100350002200230024002500260027002A004C004C
+:100360003A003B003C003D003E003F002D002E00C7
+:100370002F003000310001004000410042004300E6
+:1003800044004500010001000100010001000100DE
+:100390000100010001000100010001000100AB00AB
+:1003A000AA00A900AE00000000000000000000004C
+:1003B000000000000000000000000000000000003D
+:1003C000000000000000000000000000000000002D
+:1003D000000000000000000000000000000000001D
+:1003E000000000000000000000000000000000000D
+:1003F0000000000000000330000000000430000096
+:100400000000000000001E001E001E001E001E0056
+:100410001E001E001E001E001E001E001E0000000A
+:1004200014001A000800150017001C0018000C002A
+:10043000120013002F00000004001600070009003E
+:100440000A000B000D000E000F00330034000D30C9
+:10045000000000000600190000000000110010005C
+:10046000000000000000000000000000000000008C
+:10047000000000000000000000000000000000007C
+:10048000000000000000000000000000000000006C
+:10049000000000000000000000000000000000005C
+:1004A000000000000000000000000000000000004C
+:1004B000000000000000000000000000000000003C
+:1004C000000000000000000000000000000000002C
+:1004D000000000000000000000000000000000001C
+:1004E000000000000000000000000000000000000C
+:1004F00000000000000000000000000000000000FC
+:1005000000000000000000000000000000000000EB
+:1005100000000000000000000000000000000000DB
+:1005200000000000000000000000000000000000CB
+:1005300000000000000000000000000000000000BB
+:1005400000000000000000000000000000000000AB
+:10055000000000000000000000000000000000009B
+:10056000000000000000000000000000000000008B
+:10057000000000000000000000000000000000007B
+:10058000000000000000000000000000000000006B
+:10059000000000000000000000000000000000005B
+:1005A000000000000000000000000000000000004B
+:1005B000000000000000000000000000000000003B
+:1005C000000000000000000000000000000000002B
+:1005D000000000000000000000000000000000001B
+:1005E000000000000000000000000000000000000B
+:1005F00000000000000000000000000000000000FB
+:1006000000000000000000000000000000000000EA
+:1006100000000000000000000000000000000000DA
+:1006200000000000000000000000000000000000CA
+:1006300000000000000000000000000000000000BA
+:1006400000000000000000000000000000000000AA
+:10065000000000000000000000000000000000009A
+:10066000000000000000000000000000000000008A
+:10067000000000000000000000000000000000007A
+:10068000000000000000000000000000000000006A
+:10069000000000000000000000000000000000005A
+:1006A000000000000000000000000000000000004A
+:1006B000000000000000000000000000000000003A
+:1006C000000000000000000000000000000000002A
+:1006D000000000000000000000000000000000001A
+:1006E000000000000000000000000000000000000A
+:1006F00000000000000000000000000000000000FA
+:1007000000000000000000000000000000000000E9
+:1007100000000000000000000000000000000000D9
+:1007200000000000000000000000000000000000C9
+:1007300000000000000000000000000000000000B9
+:1007400000000000000000000000000000000000A9
+:100750000000000000000000000000000000000099
+:100760000000000000000000000000000000000089
+:100770000000000000000000000000000000000079
+:100780000000000000000000000000000000000069
+:100790000000000000000000000000000000000059
+:1007A0000000000000000000000000000000000049
+:1007B0000000000000000000000000000000000039
+:1007C00000000000000001000050010001000100D5
+:1007D0000100010001000100010001004C000100C6
+:1007E0000100010007300630135012500030013074
+:1007F00002300C30010001000B300A3009300830A3
+:1008000001000100010001000100010001000100E0
+:1008100001000100010001000100010001000100D0
+:100820000100010001002803540068006500200059
+:1008300050006C0061006E0063006B0020004B00F4
+:100840006500790062006F006100720064000000C2
+:100850002C034F007200740068006F006C00690088
+:100860006E0065006100720020004B006500790099
+:1008700062006F00610072006400730000000403F6
+:10088000090409026D00040100A0FA090400000136
+:1008900003010100092111010001223F0007058128
+:1008A0000308000A090401000103010200092111E3
+:1008B000010001224D000705820308000A09040215
+:1008C0000001030000000921110100012236000788
+:1008D00005830308000A090403000103000000095E
+:1008E00021110100012239000705840310000112C3
+:1008F00001100100000008EDFE606001000102002F
+:100900000105010906A101050719E029E7150025E0
+:1009100001950875018102050819012905950575DC
+:1009200001910295017503910105071900297715B9
+:10093000002501957875018102C005010980A1019A
+:10094000850216010026B7001A01002AB7007510AB
+:1009500095018100C0050C0901A101850316010064
+:10096000269C021A01002A9C02751095018100C084
+:1009700005010902A1010901A100050919012905C3
+:100980001500250195057501810295017503810109
+:100990000501093009311581257F95027508810609
+:1009A00009381581257F950175088106050C0A38DF
+:1009B000021581257F950175088106C0C0050109D2
+:1009C00006A101050719E029E7150025019508751D
+:1009D0000181029501750881010508190129059514
+:1009E000057501910295017503910105071900290B
+:1009F000FF150025FF950675088100C011241FBE54
+:100A0000CFEFDAE0DEBFCDBF04B603FE24C0809195
+:100A1000190490911A04A0911B04B0911C04873012
+:100A2000904BA740B04BB9F41092190410921A04DD
+:100A300010921B0410921C0414BE84B7877F84BFDD
+:100A400088E10FB6F89480936000109260000FBEAA
+:100A5000E0E0F8E3099513E0A0E0B1E0E4E8F3E6B4
+:100A600002C005900D92A431B107D9F714E0A4E1BA
+:100A7000B3E001C01D92A931B107E1F70E94EC1566
+:100A80000C94C0310C940000279A2F988FEF9FEFA1
+:100A900090938700809386008AE08093800089E1AC
+:100AA000809381000C94452D282F81110BC08091DB
+:100AB0008000877F8093800010928D0010928C00C0
+:100AC0002F9808952F9880918000886080938000EF
+:100AD000233019F48FEF9FEF0FC083E090E0821B6B
+:100AE0009109880F991F2FEF3FEFA90102C056957A
+:100AF00047958A95E2F7CA0190938D0080938C0008
+:100B00000895CF93DF93EC010E94DC28BE0180E0C2
+:100B100090E0DF91CF910C9407250F931F93462F00
+:100B200050E04E30510508F0DEC0DC01FA01EA5A0F
+:100B3000FF4F12968C910C948431882309F4D3C012
+:100B400000E010E0980140E064E070E08BE292E0A9
+:100B50000E944F1281E090E00FC0882309F4C3C0C7
+:100B600000E010E0980140E066E070E08BEB91E07F
+:100B70000E944F1282E090E00E948105B4C0882359
+:100B800009F4B1C000E010E0980140E068E070E0D6
+:100B90008BEE91E00E944F1284E090E0EDCF88232D
+:100BA00011F083E005C083E00CC0882349F084E0A5
+:100BB0000E94842540E164E083E00E94910A93C092
+:100BC00084E00E94A525F6CF882331F085EE0E94AF
+:100BD0006E1C0E949C2D87C085EE0E94361D83C02E
+:100BE000882309F480C00E94E30D7DC0882309F4A6
+:100BF0007AC00E94DC0D00E010E0980140E065E062
+:100C000070E08BE492E027C0882309F46CC085E093
+:100C10000E94A5250E94040E66C0882309F463C0C3
+:100C200000E010E0980140E068E070E08BE191E0C6
+:100C30000E944F1285E00E94842555C0882309F444
+:100C400052C00E94E21200E010E0980140E068E02B
+:100C500070E08BE191E00E944F1245C0882309F4B7
+:100C600042C00E94ED12EFCF8823E9F100E010E0CE
+:100C7000980140E066E070E08BE891E00E944F123E
+:100C800084E00E94A52583E00E94A52580E10E94C2
+:100C9000A52585E00E94A5250E94040E86E00E94FD
+:100CA00084250E94C928811102C00E94A5280E94A3
+:100CB000E12890E090931804809317048068809353
+:100CC00017040E94E5280FC0882369F000E010E0B7
+:100CD000980140E066E070E08BE591E00E944F12E1
+:100CE00086E00E94A52580E090E01F910F91089575
+:100CF0000F931F932FEF89EF90E021508040904099
+:100D0000E1F700C0000000E010E0980140E065E07D
+:100D100070E08BE492E00E944F121F910F910895B2
+:100D20000F931F9300E010E0980140E063E070E053
+:100D300083E091E00E944F122FEF82E597E021506F
+:100D400080409040E1F700C000001F910F9108958E
+:100D5000CF92DF92EF92FF920F931F93CF93DF9387
+:100D6000CDB7DEB7CC58D1090FB6F894DEBF0FBEB1
+:100D7000CDBF2091D10325FFC5C08C01FC0192811C
+:100D800080910201992309F460C096E4E0E9F2E061
+:100D9000DE01A95BBF4F01900D929A95E1F7F80132
+:100DA0009081E0910001F0910101E90FF11DEE0F3A
+:100DB000FF1F27E430E02C0F3D1FE20FF31F60817F
+:100DC0007181680F711D882777FD8095982F0E948B
+:100DD000E02E20E030E040E451E40E94452E6B011B
+:100DE0007C01F801218184E090E0821B9109BC0123
+:100DF000882777FD8095982F0E94E02E9B01AC01FB
+:100E0000C701B6010E94DD2D9B01AC0160E070E0DE
+:100E100080E090E40E94F72F20E030E04CE551E4C0
+:100E20000E94942F4FE050E0C457DF4F0FB6F89464
+:100E3000DEBF0FBECDBFDF91CF911F910F91FF900D
+:100E4000EF90DF90CF900C94EF1196E4E0E9F2E0A0
+:100E5000DE01119601900D929A95E1F7F8019081CB
+:100E6000E0910001F0910101E90FF11DEE0FFF1F6C
+:100E700021E030E02C0F3D1FE20FF31F60817181F4
+:100E8000680F711D882777FD8095982F0E94E02EAE
+:100E900020E030E040E451E40E94452E6B017C01EB
+:100EA000F801218184E090E0821B9109BC01882730
+:100EB00077FD8095982F0E94E02E9B01AC01C70121
+:100EC000B6010E94DD2D9B01AC0160E070E080E086
+:100ED00090E40E94F72F20E030E04CE551E40E94BE
+:100EE000942FC457DF4F0FB6F894DEBF0FBECDBFAF
+:100EF000DF91CF911F910F91FF90EF90DF90CF90F6
+:100F00000C94370EC457DF4F0FB6F894DEBF0FBEF8
+:100F1000CDBFDF91CF911F910F91FF90EF90DF90A8
+:100F2000CF90089508950E9444056E9A769A0C9485
+:100F300078060C9492070C94A8060895880F991FC0
+:100F4000FC01EA5BFF4F859194910895880F991FEA
+:100F5000FC01EA53FE4F8591949108950F931F93DE
+:100F6000CF93DF93EC01811520E49207A0F5C11522
+:100F700080E3D80708F0E1C0C83ED105D8F4C03EF0
+:100F8000D10508F0EEC1C83AD10578F4C53AD105CB
+:100F900008F074C0C130D10509F46DC008F4DEC199
+:100FA000C430D10508F0DDC1D9C1CB3BD10508F46F
+:100FB00070C0D4C1C11590E2D90708F0B9C0C115FD
+:100FC00021E0D20708F0CDC1C03FD10508F4C6C169
+:100FD0008E01106506C2C13080E5D80709F4BDC096
+:100FE00068F5C13120E4D20709F4AEC050F4C03135
+:100FF00090E4D90708F0A5C0CF70DD278E01146DED
+:10100000F0C1C33120E4D20709F4A4C008F49FC0A2
+:10101000C115D04509F0A2C10E944B210E94040EC7
+:101020000E9490069FEF24E38CE091502040804086
+:10103000E1F700C000000E946828D3C1C11520E676
+:10104000D20730F4C11581E5D80708F48CC02DC152
+:10105000C11590E7D90708F481C1C11520E8D2076E
+:1010600008F478C1C11580E9D80708F077C1DF70AE
+:101070008E01106AB6C101E010E0B3C1C53AD105D6
+:1010800009F471C1C63AD10509F070C102E810E453
+:10109000A8C1C83AD10509F46CC1C93AD10509F40F
+:1010A0006BC1CA3AD10509F46AC1CB3AD10509F43A
+:1010B00069C1CC3AD10509F468C1CD3AD10509F42A
+:1010C00067C1C03BD10509F466C1CE3AD10509F428
+:1010D00065C1CF3AD10509F464C1C13BD10509F41A
+:1010E00063C1C23BD10509F462C1C33BD10509F418
+:1010F00061C1C43BD10509F460C1C53BD10509F408
+:101100005FC1C63BD10509F45EC1C73BD10509F4F7
+:101110005DC1C83BD10509F45CC1C93BD10509F4E7
+:101120005BC1CA3BD10509F45AC100E014E459C1BE
+:10113000CE019F700E94A60755C1DD278E01106C5D
+:1011400050C100E011ED4DC100E010ED4AC100E0DA
+:1011500012ED47C100E013ED44C18091ED038160C1
+:101160008093ED033EC10E94C928811102C00E94F4
+:10117000A5280E94E12890E090931804809317041A
+:10118000C23090E5D90721F480911704816086C0B0
+:10119000C43020E5D20721F48091170482607EC01C
+:1011A000C63080E5D80721F480911704846076C0AA
+:1011B000C83090E5D90719F48091170427C0CA30C8
+:1011C00020E5D20721F480911704806167C0CC30FC
+:1011D00080E5D80721F48091170480625FC0CE308B
+:1011E00090E5D90721F480911704806457C0C0317D
+:1011F00020E5D20721F48091170480684FC0C231E6
+:1012000080E5D80729F4809117048460886046C07F
+:10121000C33090E5D90721F4809117048E7F3EC03A
+:10122000C53020E5D20721F4809117048D7F36C0A8
+:10123000C73080E5D80721F4809117048B7F2EC03A
+:10124000C93090E5D90719F48091170426C0CB3036
+:1012500020E5D20721F4809117048F7E1FC0CD3086
+:1012600080E5D80721F4809117048F7D17C0CF3017
+:1012700090E5D90721F4809117048F7B0FC0C1310D
+:1012800020E5D20721F4809117048F7707C0C3317E
+:10129000D04531F4809117048B7F877F80931704AA
+:1012A000809117040E94E5289CC08D2F99278F708C
+:1012B000992781309105D9F49E012370332702C00C
+:1012C000880F991F2A95E2F79C688E0144E0000F71
+:1012D000111F4A95E1F700271370802B912B53E0E3
+:1012E000CC0FDD1F5A95E1F7C076DD272FC0823085
+:1012F000910531F4DC2FCC278E01016F106A71C08B
+:101300008330910569F4CE018370992701E010E0E4
+:1013100002C0000F111F8A95E2F7C8019C680FC038
+:10132000049709F05EC0CE018370992701E010E0B8
+:1013300002C0000F111F8A95E2F7C8019A6823E0E6
+:10134000CC0FDD1F2A95E1F7C07ED7708C010C2BE6
+:101350001D2B47C0DF708E01106243C000E010E01B
+:1013600040C08E013EC001E810E43BC003E810E439
+:1013700038C002EE14E435C009EE14E432C00AEEBF
+:1013800014E42FC005EB14E42CC006EB14E429C0D0
+:1013900007EB14E426C00CEC14E423C00DEC14E4B9
+:1013A00020C003E815E41DC00AE815E41AC002E9EC
+:1013B00015E417C004E915E414C001E216E411C0F5
+:1013C00003E216E40EC004E216E40BC005E216E4E4
+:1013D00008C006E216E405C007E216E402C00AE20D
+:1013E00016E4C801DF91CF911F910F9108959CE001
+:1013F000799FF001112490E3899FE00DF11D1124E4
+:10140000E60FF11DEE0FFF1FEA53FE4F85919491F9
+:10141000803E9105E0F4803C910558F581339105BB
+:1014200009F46FC048F48932910509F463C08A3227
+:10143000910509F46DC072C089339105E9F08238D5
+:101440009105D1F08533910509F44DC067C0833E05
+:10145000910581F138F4803E9105B9F0823E910505
+:10146000D9F05CC0863E910561F1873E9105A1F1FE
+:1014700055C00E949E0708952091170420FD02C0C8
+:1014800021FF4CC080EE90E049C08091170480FF9E
+:10149000F9CF89E390E042C08091170482FF0EC02B
+:1014A0008091170484FF03C080E090E037C083EE92
+:1014B00090E034C08091170482FFF2CF82EE90E07A
+:1014C0002DC08091170483FF0BC08091170484FD09
+:1014D000EBCF87EE90E022C08091170483FFF5CF19
+:1014E00086EE90E01BC08091170485FF07C089E25B
+:1014F00090E014C08091170485FFF9CF85E390E058
+:101500000DC08091170486FF07C08AE290E006C0F4
+:101510008091170486FFF9CF81E390E00E94AE0727
+:101520000895CF92DF92EF92FF920F931F9301E005
+:1015300010E020E030E06801790104C0CC0CDD1C33
+:10154000EE1CFF1C8A95D2F704C0000F111F221F4A
+:10155000331F6A95D2F70C291D292E293F29C090E7
+:10156000D103D090D203E090D303F090D403C022F3
+:10157000D122E222F322842FC016D106E206F3061E
+:1015800041F41F910F91FF90EF90DF90CF900C945A
+:1015900084251F910F91FF90EF90DF90CF900C94D6
+:1015A000A52508950C94D10A5F926F927F928F9235
+:1015B0009F92AF92BF92CF92DF92EF92FF920F93E2
+:1015C0001F93CF93DF93CDB7DEB728970FB6F8946C
+:1015D000DEBF0FBECDBFCE0101966C014E0199E07A
+:1015E000890E911C20E030E040E050E060E070E0C7
+:1015F00000E010E0E12CF12C6C2C5D2C88E0782EC2
+:10160000AA24A394B12CE6EDF2E0A62DB52D872DEA
+:1016100001900D928A95E1F7F601819191916F0108
+:10162000FC01E07FFF27E032F10559F48F70992724
+:10163000F50102C0EE0FFF1F8A95E2F7EE2AFF2A9E
+:1016400037C0E033F10559F48F709927F50102C0D6
+:10165000EE0FFF1F8A95E2F70E2B1F2B29C0E034F7
+:10166000F10559F48F709927F50102C0EE0FFF1FA5
+:101670008A95E2F76E2B7F2B1BC0E035F10559F4FC
+:101680008F709927F50102C0EE0FFF1F8A95E2F7D0
+:101690004E2B5F2B0DC0E036F10551F48F7099276A
+:1016A000F50102C0EE0FFF1F8A95E2F72E2B3F2BAC
+:1016B000C814D90409F0A7CF84B19E2D9095892331
+:1016C00084B985B1E82AE5B887B1902F9095892330
+:1016D00087B988B1082B08B98AB1962F90958923CC
+:1016E0008AB98BB1682B6BB98DB1942F90958923F2
+:1016F0008DB98EB1482B4EB980B3922F9095892326
+:1017000080BB81B3282B21BB28960FB6F894DEBF8F
+:101710000FBECDBFDF91CF911F910F91FF90EF9042
+:10172000DF90CF90BF90AF909F908F907F906F9001
+:101730005F9008955F926F927F928F929F92AF9287
+:10174000BF92CF92DF92EF92FF920F931F93CF93AE
+:10175000DF93CDB7DEB768970FB6F894DEBF0FBE44
+:10176000CDBF85B7806885BF85B7806885BF0E947B
+:10177000D40ACE0101966C014E0199E1890E911CAB
+:1017800020E030E040E050E060E070E000E010E099
+:10179000E12CF12C6C2C5D2C88E1782EAA24A394EA
+:1017A000B12CEEEDF2E0A62DB52D872D01900D9216
+:1017B0008A95E1F7F601819191916F01FC01E07F3B
+:1017C000FF27E032F10559F48F709927F50102C027
+:1017D000EE0FFF1F8A95E2F7EE2AFF2A37C0E033AB
+:1017E000F10559F48F709927F50102C0EE0FFF1F24
+:1017F0008A95E2F70E2B1F2B29C0E034F10559F42E
+:101800008F709927F50102C0EE0FFF1F8A95E2F74E
+:101810006E2B7F2B1BC0E035F10559F48F70992793
+:10182000F50102C0EE0FFF1F8A95E2F74E2B5F2BEA
+:101830000DC0E036F10551F48F709927F50102C013
+:10184000EE0FFF1F8A95E2F72E2B3F2BC814D90409
+:1018500009F0A7CF84B19E2D9095892384B985B1D5
+:10186000E82AE5B887B1902F9095892387B988B188
+:10187000082B08B98AB1962F909589238AB98BB124
+:10188000682B6BB98DB1942F909589238DB98EB14A
+:10189000482B4EB980B3922F9095892380BB81B39A
+:1018A000282B21BB10921D0310921C0310921503CC
+:1018B0001092140310921F0310921E03109217032C
+:1018C0001092160310922103109220031092190314
+:1018D00010921803109223031092220310921B03FC
+:1018E00010921A0368960FB6F894DEBF0FBECDBFF4
+:1018F000DF91CF911F910F91FF90EF90DF90CF90EC
+:10190000BF90AF909F908F907F906F905F900C945E
+:1019100093077F928F929F92AF92BF92CF92DF9266
+:10192000EF92FF920F931F93CF93DF93CDB7DEB764
+:10193000A0970FB6F894DEBF0FBECDBF6E0149E190
+:10194000C40ED11C84E1E82E83E0F82E98E0792EB5
+:10195000BC2CAD2C01E010E028E1822E35E0932E66
+:10196000E6EDF2E0AB2DBA2D872D01900D928A9510
+:10197000E1F7F601819191916F019C01207F33275E
+:101980002032310591F424B18F709927A80102C04B
+:10199000440F551F8A95E2F7CA01922F982B94B9EC
+:1019A00095B18095892385B953C02033310591F4D1
+:1019B00027B18F709927F80102C0EE0FFF1F8A959B
+:1019C000E2F7CF01922F982B97B998B18095892390
+:1019D00088B93EC02034310591F42AB18F7099271F
+:1019E000A80102C0440F551F8A95E2F7CA01922F41
+:1019F000982B9AB99BB1809589238BB929C0203542
+:101A0000310591F42DB18F709927F80102C0EE0FC6
+:101A1000FF1F8A95E2F7CF01922F982B9DB99EB1B7
+:101A2000809589238EB914C02036310589F420B3FE
+:101A30008F709927A80102C0440F551F8A95E2F7BD
+:101A4000CA01922F982B90BB91B38095892381BBBB
+:101A500050EA5A95F1F7BE016F5F7F4F20E030E00A
+:101A600040E050E0EEEDF2E0DE011196882D0190AD
+:101A70000D928A95E1F7FB0181919191BF01FC01E3
+:101A8000E07FFF27E032F10511F4E3B113C0E0334A
+:101A9000F10511F4E6B10EC0E034F10511F4E9B13D
+:101AA00009C0E035F10511F4ECB104C0E036F105F0
+:101AB000B9F4EFB1F0E08F70992702C0F595E79582
+:101AC0008A95E2F7E0FD08C0C801042E02C0880F25
+:101AD000991F0A94E2F702C080E090E0282B392B8E
+:101AE0004F5F5F4F4C30510509F0BCCFF70180814B
+:101AF00091818217930721F03183208390927302A2
+:101B00000E94D40AF2E0EF0EF11C4CE1E41643E02F
+:101B1000F40609F025CF80917302882361F181508A
+:101B200080937302882339F08FE99FE00197F1F7E2
+:101B300000C0000020C08091140390911503909381
+:101B40001D0380931C0380911603909117039093BB
+:101B50001F0380931E0380911803909119039093A3
+:101B600021038093200380911A0390911B0390938B
+:101B70002303809322030E94990781E0A0960FB669
+:101B8000F894DEBF0FBECDBFDF91CF911F910F91B3
+:101B9000FF90EF90DF90CF90BF90AF909F908F908D
+:101BA0007F900895E82FF0E0EE0FFF1FE45EFC4FFA
+:101BB00080819181089508958091020481608093CD
+:101BC00002040C94F728809102048E7F8093020413
+:101BD0000C94F7280E94C928811102C00E94A528F0
+:101BE0000E94F328809302043E9A809171008D7FB9
+:101BF0008093710082E0809390008AE1809391004D
+:101C000081E080932603089580912603811102C00C
+:101C10000E94EA0D10927603109275038091710074
+:101C20008D7F80937100809190008F7780939000DA
+:101C3000109238031092370310926F0310927003C2
+:101C4000109271031092720310926E0310926D0342
+:101C5000EDE4F3E0ADE3B3E0119211921192119231
+:101C60001D921D9283E0ED36F807B1F70895CF92EB
+:101C7000DF92EF92FF920F931F93CF93DF93209108
+:101C80003703222309F484C06B017C018091260371
+:101C9000811102C00E94EA0D0DE613E0C7E0D0E01A
+:101CA000A7019601F80192918291729162918F0140
+:101CB0000E94412E811131C0FE01EE0FFF1FEE0F79
+:101CC000FF1FE35BFC4F1082118212821382DE0140
+:101CD000AA0FBB1FA35CBC4F11961C921E92C7306B
+:101CE000D105E9F021964481558166817781408351
+:101CF000518362837383148215821682178212962F
+:101D00008D919C91139711969C938E9313961C9290
+:101D10001E92129734961296E2CF219708F6809180
+:101D2000750390917603019797FD05C09093760314
+:101D30008093750304C0109276031092750380910E
+:101D400075039091760320917303309174032817E3
+:101D5000390724F01092740310927303892BC1F495
+:101D6000809171008D7F80937100809190008F77BA
+:101D70008093900010926F03109270031092710381
+:101D80001092720310926E0310926D03109237033B
+:101D9000DF91CF911F910F91FF90EF90DF90CF9047
+:101DA00008951F920F920FB60F9211244F925F92D7
+:101DB0006F927F928F929F92AF92BF92CF92DF925B
+:101DC000EF92FF922F933F934F935F936F937F9385
+:101DD0008F939F93AF93BF93CF93DF93EF93FF9333
+:101DE00080913703882309F49BC1C0917503D0917A
+:101DF00076031C161D060CF093C1409027035090EB
+:101E000028036090290370902A0320E030E0A901A4
+:101E1000C301B2010E94902F18160CF065C0C130AA
+:101E2000D10509F452C08091730390917403BE01EF
+:101E30000E9470317C0190937403809373038090AF
+:101E4000390390903A03A0903B03B0903C0320E00C
+:101E500030E040E85FE3C501B4010E94DD2D6093EE
+:101E6000390370933A0380933B0390933C03F7014B
+:101E7000EE0FFF1FEE0FFF1FE35BFC4FA30192016C
+:101E800060817181828193810E94452E20E030E043
+:101E900040E05EE30E94942F9B01AC01C501B401B8
+:101EA0000E94902F18168CF4C7010196BE010E9463
+:101EB00070319093740380937303109239031092DE
+:101EC0003A0310923B0310923C03E0917303F091AC
+:101ED0007403EE0FFF1FEE0FFF1FE35BFC4F6081EB
+:101EE000718182819381D0C0C0906F03D0907003C4
+:101EF000E0907103F090720320E030E0A901C70187
+:101F0000B6010E94412E2197882309F4A2C0FE0148
+:101F1000EE0FFF1FEE0FFF1FE35BFC4F80809180F1
+:101F2000A280B380A5019401C701B6010E94412E91
+:101F300087FF31C0A501940160E070E08CED93EC67
+:101F40000E94452E20E030E040E451E40E94452EFE
+:101F500020E030E040E05FE30E94942F9B01AC0161
+:101F600060E070E080E090E40E94F72F9B01AC01FC
+:101F7000C501B4010E94942F9B01AC01C701B601B9
+:101F80000E94412E87FF07C0A701960160E070E024
+:101F90008CED93E439C0A5019401C701B6010E94FC
+:101FA000902F18160CF055C0A501940160E070E068
+:101FB0008CED93E40E94452E20E030E040E451E4B3
+:101FC0000E94452E20E030E040E05FE30E94942F25
+:101FD0009B01AC0160E070E080E090E40E94F72F8C
+:101FE0009B01AC01C501B4010E94942F9B01AC017F
+:101FF000C701B6010E94902F18165CF5A701960143
+:1020000060E070E08CED93EC0E94452E20E030E023
+:1020100040E451E40E94452E20E030E040E05FE3E0
+:102020000E94942F9B01AC0160E070E080E090E49E
+:102030000E94F72F9B01AC01C701B6010E94942FAB
+:1020400060936F0370937003809371039093720396
+:1020500013C0FE01EE0FFF1FEE0FFF1FE35BFC4FEF
+:1020600080819181A281B38180936F0390937003EB
+:10207000A0937103B093720360916F03709170032A
+:102080008091710390917203209124033091250374
+:102090002F3F4FEF340731F02F5F3F4F3093250331
+:1020A000209324030E94F8126B017C0120E034E2AB
+:1020B00044EF51E40E94412E87FF08C086EFC82EEE
+:1020C00088E2D82E84EFE82E81E4F82E20E030E07C
+:1020D00040E051E4C701B6010E94942F9B01AC017E
+:1020E00060E074E284E79BE40E94452E6B017C0172
+:1020F0000E94AD2E70939700609396002091740219
+:10210000309175024091760250917702C701B60175
+:102110000E94942F0E94AD2E7093990060939800B6
+:1021200080913803882309F433C1C0903303D090E1
+:102130003403E0903503F090360320E030E0A9014D
+:10214000C701B6010E94902F1816D4F58091240380
+:10215000909125038F3F2FEF920729F001969093DE
+:10216000250380932403C701B6010E94F81220E0E2
+:1021700030E040E051E40E94942F9B01AC0160E00C
+:1021800074E284E79BE40E94452E6B017C010E946F
+:10219000AD2E709397006093960020917402309159
+:1021A00075024091760250917702C701B6010E94F4
+:1021B000942F0E94AD2E709399006093980008C0F0
+:1021C0001092970010929600109299001092980029
+:1021D00060912D0370912E036F5F7F4F70932E03DC
+:1021E00060932D03209196003091970080E090E05D
+:1021F000232BF1F0C0919600D09197000E94DE2E23
+:102200006B017C01BE0180E090E00E94DE2E9B010C
+:10221000AC0160912F037091300380913103909154
+:1022200032030E94452E20E03FEF4FE757E410C0F5
+:102230000E94DE2E6B017C0120E030EE4FEF54E473
+:1022400060912F037091300380913103909132039C
+:102250000E94942F9B01AC01C701B6010E94902FF0
+:1022600087FD96C080912B038F5F80932B0390E0B6
+:102270002091FE033091FF0382179307A0F0809115
+:102280000904882319F010922B030DC0809171006E
+:102290008D7F80937100809190008F778093900064
+:1022A000109238037DC080912C03C0912B038111C3
+:1022B00028C0C0900304D0900404E0900504F0907E
+:1022C000060420E030E0A901C701B6010E94902F6A
+:1022D0001816BCF481E080932C0310923303109203
+:1022E00034031092350310923603C0922F03D0921C
+:1022F0003003E0923103F0923203C150C0932B03BC
+:1023000043C010922C031092250310922403E091F5
+:102310000004F091010448E0C49FE00DF11D112478
+:1023200080819181A281B3818093330390933403A0
+:10233000A0933503B093360320E030E040E85EE33D
+:1023400064817581868197810E94942F6B017C0145
+:1023500020E030E048EC52E460917802709179021C
+:1023600080917A0290917B020E94452E9B01AC01E4
+:10237000C701B6010E94942F60932F03709330031E
+:10238000809331039093320310922E0310922D0309
+:102390008091020480FD04C010923803109237032C
+:1023A000FF91EF91DF91CF91BF91AF919F918F916D
+:1023B0007F916F915F914F913F912F91FF90EF909F
+:1023C000DF90CF90BF90AF909F908F907F906F9055
+:1023D0005F904F900F900FBE0F901F901895CF9267
+:1023E000DF92EF92FF92CF93DF936B017C01EA01C2
+:1023F00080912603811102C00E94EA0D809102049F
+:1024000080FF46C0809175039091760308970CF089
+:102410003FC0809171008D7F80937100809138035F
+:1024200081110E94040E81E08093370310922503EE
+:102430001092240320E030E0A901C701B6010E94F8
+:10244000902F1816DCF48091750390917603FC01AF
+:10245000EE0FFF1FEE0FFF1FE35BFC4FC082D18228
+:10246000E282F382FC01EE0FFF1FE35CFC4FD1839D
+:10247000C0830196909376038093750380917100D9
+:1024800082608093710080919000806880939000BA
+:10249000DF91CF91FF90EF90DF90CF9008958F92D2
+:1024A0009F92AF92BF92CF92DF92EF92FF920F93E3
+:1024B0001F93CF93DF93EC017B01D42E4801590188
+:1024C00080912603811102C00E94EA0D80910204CE
+:1024D00080FF6BC0809171008D7F8093710080912F
+:1024E000370381110E94040E81E080933803D0935A
+:1024F0000104C0930004F092FF03E092FE03D09227
+:1025000009048092030490920404A0920504B092FE
+:1025100006041092390310923A0310923B03109272
+:102520003C0310922B0388819981AA81BB818093FF
+:10253000330390933403A0933503B093360320E024
+:1025400030E040E85EE36C817D818E819F810E9456
+:10255000942F6B017C0120E030E048EC52E4609164
+:1025600078027091790280917A0290917B020E94A8
+:10257000452E9B01AC01C701B6010E94942F6093C8
+:102580002F037093300380933103909332031092A2
+:102590002E0310922D038091710082608093710050
+:1025A00080919000806880939000DF91CF911F917F
+:1025B0000F91FF90EF90DF90CF90BF90AF909F90E2
+:1025C0008F9008958091770390E0019665E070E028
+:1025D0000E9470318093770308958091770390E093
+:1025E000019765E070E00E94703180937703089551
+:1025F0008F929F92AF92BF92CF92DF92EF92FF9213
+:10260000CF93DF936B017C01C0912403D09125030C
+:10261000BE0180E090E00E94DE2E4B015C01A7012C
+:10262000960160E070E08CE594E40E94452E9B01E9
+:10263000AC01C501B4010E94942F0E94B22E4091BA
+:102640007703423009F45CC028F4442351F0413050
+:10265000E9F0FBC0433009F481C0443009F4B4C050
+:10266000F4C080E090E0A0E0BFE380937402909318
+:102670007502A0937602B09377021092270310920E
+:1026800028031092290310922A03DFC01092270317
+:10269000109228031092290310922A0364317105C5
+:1026A00040F46A307105E0F520E030E040E85EE398
+:1026B0003BC0693C710508F0C0C080E090E00E941A
+:1026C000DE2E20E030E040EA51E40E94DC2D20E0E4
+:1026D00030E044E353E40E94452E9B01AC010E948C
+:1026E000942F20E030E040E05EE30E94942F9B01B5
+:1026F000AC0160E070E080E09EE30E94DC2D5BC0F6
+:1027000010922703109228031092290310922A0393
+:102710006432710578F4FB01EC59FF4F0C9484315D
+:1027200020E030E040E05FE3C701B6010E94942F53
+:102730006B017C0180E090E0A0E0BEE38093740236
+:1027400090937502A0937602B09377027EC0A701A2
+:102750009601C701B6010E94DD2DEACF1092270332
+:10276000109228031092290310922A032AE0269F30
+:10277000A001279F500D1124CA0168EB7BE00E9445
+:102780005C31BC016C5D754077FF03C0719561954C
+:102790007109882777FD8095982F0E94E02E2EE3FF
+:1027A00033EC4EE259E30E94942F20E030E040ECFD
+:1027B0005EE30E94DD2D6093740270937502809336
+:1027C00076029093770241C010922703109228035B
+:1027D0001092290310922A03CE0183709927892B26
+:1027E000E1F0BE016170772780E090E00E94DE2E6C
+:1027F00020E030E040E05EE30E94942F20E030E0F3
+:1028000040E45FE30E94DD2D6093740270937502D3
+:1028100080937602909377020CC080E090E0A0E075
+:10282000BFE38093740290937502A0937602B093F5
+:102830007702C770DD27CD2B41F4109274021092FD
+:1028400075021092760210927702C701B601DF91ED
+:10285000CF91FF90EF90DF90CF90BF90AF909F907F
+:102860008F900895809188030895CF93DF9300D0CF
+:102870001F92CDB7DEB79C0180910E04843019F50C
+:1028800093E099833B832A839093E9008FEF9091A3
+:10289000E800815095FD06C095ED9A95F1F700008E
+:1028A0008111F5CF8091E80085FF0DC040E050E038
+:1028B00063E070E0CE0101960E9496168091E800D8
+:1028C0008E778093E8000F900F900F90DF91CF915B
+:1028D0000895CF93DF9300D01F92CDB7DEB720913C
+:1028E0000E04243021F522E029839B838A8383E030
+:1028F0008093E9008FEF9091E800815095FD06C02C
+:1029000095ED9A95F1F700008111F5CF8091E800DF
+:1029100085FF0DC040E050E063E070E0CE0101961D
+:102920000E9496168091E8008E778093E8000F90C1
+:102930000F900F90DF91CF91089520910E042430D5
+:10294000F1F422E02093E9002FEF3091E8002150CC
+:1029500035FD06C035ED3A95F1F700002111F5CFB0
+:102960002091E80025FF0BC040E050E065E070E0FA
+:102970000E9496168091E8008E778093E800089573
+:10298000CF93DF93EC0190910E04943009F046C090
+:10299000809186028823D9F0809187028823B9F03C
+:1029A0009093E9008FEF9091E800815095FD06C06B
+:1029B00095E19A95F1F700008111F5CF8091E8003B
+:1029C00085FF2CC040E050E060E170E017C081E07E
+:1029D0008093E9008FEF9091E800815095FD06C04B
+:1029E00095ED9A95F1F700008111F5CF8091E800FF
+:1029F00085FF14C040E050E068E070E0CE010E9426
+:102A000096168091E8008E778093E80080E1FE01C1
+:102A1000A8E7B3E001900D928A95E1F7DF91CF919D
+:102A2000089580910D04811109C00E942B180E9405
+:102A300088188091E20084608093E20008951092EB
+:102A40000D040895089508950C94D02742E061EC98
+:102A500081E00E94A51742E061EC82E00E94A51788
+:102A600042E061EC83E00E94A51742E161EC84E062
+:102A70000C94A51780911004833009F455C030F4EC
+:102A8000813071F0823009F48EC008958A3009F4E3
+:102A90007AC08B3009F460C0893009F09CC020C036
+:102AA00080910F04813A09F096C08091E800877FF9
+:102AB0008093E8008091130490911404892B21F4F1
+:102AC00060E188E793E003C060E080E090E070E0C0
+:102AD0000E94E1168091E8008B778093E8000895CA
+:102AE00080910F04813209F076C080911304909197
+:102AF0001404009719F0039709F06DC08091E80065
+:102B0000877F8093E8008091E80082FD05C0809176
+:102B10000E048111F8CF5FC08091F100809388038B
+:102B20008091E8008B7753C080910F04813A09F0BF
+:102B300052C08091130490911404892B09F04BC06A
+:102B40008091E800877F8093E8008091E80080FF13
+:102B5000FCCF8091860236C080910F048132D9F576
+:102B60008091130490911404892BA9F58091E800B9
+:102B7000877F8093E8000E94DA1780911104809388
+:102B800086020C944B2180910F04813221F58091B3
+:102B9000E800877F8093E8000E94DA178091120492
+:102BA00080938903089580910F04813AA1F4809164
+:102BB000E800877F8093E8008091E80080FFFCCFE9
+:102BC000809189038093F1008091E8008E77809353
+:102BD000E8000C94DA17089584B7877F84BF88E1F2
+:102BE0000FB6F89480936000109260000FBE90E0E2
+:102BF00080E80FB6F89480936100909361000FBE57
+:102C00000E947D1B0E942B180E9488188091E20070
+:102C100084608093E20078940E940E1B0E947F1BC8
+:102C20008CE792E00E94291B80910E04853069F4A4
+:102C30000E948A2780910C048823B1F30E94B82750
+:102C4000882391F30E948016EFCF0E94871BECCF60
+:102C5000292F332723303105C9F064F421303105A1
+:102C600081F02230310509F043C08DE690E022E882
+:102C700038E042C021323105F1F02232310541F114
+:102C800037C082E190E02FEE38E036C099278130DE
+:102C9000910541F08230910541F0892B49F5EEE72D
+:102CA000F8E005C0E0E5F8E002C0E6E2F8E0849173
+:102CB00090E09F0121C06430D8F4E62FF0E0EE0FE1
+:102CC000FF1FEE5FFC4F2081318189E090E014C04E
+:102CD000643070F470E0FB01EE0FFF1FE650FD4F13
+:102CE00020813181FB01EA50FD4F808190E004C0DA
+:102CF00080E090E020E030E0FA0131832083089505
+:102D000080E189BD82E189BD09B400FEFDCF8091DB
+:102D1000D8008F7D8093D8008091E00082608093FE
+:102D2000E0008091E00081FDFCCF0895CF92DF921A
+:102D3000EF92FF920F931F93CF93DF93EC018B01E0
+:102D40006A010E94F917811133C0C114D10439F00E
+:102D5000F60180819181081B190BC80FD91FE12C46
+:102D6000F12C0115110519F18091E80085FD16C0BF
+:102D70008091E8008E778093E800C114D10449F077
+:102D8000F60180819181E80EF91EF182E08285E0F2
+:102D90000FC00E94F917882321F30AC089918093FC
+:102DA000F10001501109FFEFEF1AFF0ADACF80E0BE
+:102DB000DF91CF911F910F91FF90EF90DF90CF9017
+:102DC000089520911504309116042617370748F00E
+:102DD0006115710539F42091E8002E772093E80001
+:102DE00001C0B90140E061157105A9F120910E04FF
+:102DF000222309F443C0253009F442C02091E800A1
+:102E000023FD40C02091E80022FD32C02091E8005F
+:102E100020FFE9CF4091F3002091F20030E0342B05
+:102E2000FC01CF016115710559F02830310540F4DE
+:102E300081918093F100615071092F5F3F4FF1CF75
+:102E400041E02830310509F040E02091E8002E777C
+:102E50002093E800C8CF4111C9CF0AC080910E0469
+:102E6000882361F0853061F08091E80083FD0AC01D
+:102E70008091E80082FFF2CF80E0089582E008951B
+:102E800083E0089581E0089520911504309116049F
+:102E90002617370748F06115710539F42091E800CD
+:102EA0002E772093E80001C0B901FC0120E06115F4
+:102EB000710591F180910E04882309F440C085309A
+:102EC00009F43FC08091E80083FD3DC08091E80097
+:102ED00082FD2FC08091E80080FFE9CF2091F300B0
+:102EE0008091F20090E0922B6115710559F08830C5
+:102EF000910540F424912093F100319661507109BD
+:102F00000196F2CF21E0089709F020E08091E800D7
+:102F10008E778093E800CBCF2111CCCF0AC080916F
+:102F20000E04882361F0853061F08091E80083FD14
+:102F30000AC08091E80082FFF2CF80E0089582E02D
+:102F4000089583E0089581E00895982F973058F50B
+:102F50009093E900981739F07091EC002091ED0002
+:102F60005091F00003C0242F762F50E021FF19C0AC
+:102F70003091EB003E7F3093EB003091ED003D7FD0
+:102F80003093ED003091EB0031603093EB007093A3
+:102F9000EC002093ED005093F0002091EE0027FF0D
+:102FA00007C09F5FD3CF8F708093E90081E00895C1
+:102FB00080E0089580910F0487FF11C08091E800A0
+:102FC00082FD05C080910E048111F8CF11C080915F
+:102FD000E8008B770BC080910E04882349F0809124
+:102FE000E80080FFF8CF8091E8008E778093E800BA
+:102FF00008952091E4003091E50095E64091EC00C1
+:10300000842F817040FF22C08091E80080FD1CC0A9
+:1030100080910E04882391F0853091F08091EB002F
+:1030200085FD10C04091E4005091E5004217530720
+:1030300029F39A01915011F784E0089582E00895F0
+:1030400083E0089581E0089580E008954091E800CC
+:1030500042FFDECF08950E9499180E94A118E0EE69
+:10306000F0E0808181608083E8EDF0E080818F77FF
+:10307000808319BCA7EDB0E08C918E7F8C9380810A
+:103080008F7E808310920D0408950F931F93CF932A
+:10309000DF930E9499180E94A118C8EDD0E08881A2
+:1030A0008F77888388818068888388818F7D8883F3
+:1030B00019BC10920E0410920A0410920C04109283
+:1030C0000B0400EE10E0F80180818B7F8083888103
+:1030D0008160888342E060E080E00E94A517E1EE15
+:1030E000F0E080818E7F8083E2EEF0E0808181607D
+:1030F0008083808188608083F80180818E7F8083D7
+:10310000888180618883DF91CF911F910F9108950D
+:10311000E8EDF0E080818F7E8083E7EDF0E0808154
+:103120008160808384E082BF81E080930D040C94F1
+:103130004518E8EDF0E080818E7F80831092E200F8
+:1031400008951092DA001092E10008951F920F92F4
+:103150000FB60F9211242F933F934F935F936F936A
+:103160007F938F939F93AF93BF93EF93FF93809140
+:10317000E10082FF0BC08091E20082FF07C08091D6
+:10318000E1008B7F8093E1000E940D1B8091DA00AB
+:1031900080FF1FC08091D80080FF1BC08091DA00A3
+:1031A0008E7F8093DA008091D90080FF0DC080E18E
+:1031B00089BD82E189BD09B400FEFDCF81E0809325
+:1031C0000E040E94111505C019BC10920E040E9435
+:1031D0001F158091E10080FF19C08091E20080FFFF
+:1031E00015C08091E2008E7F8093E2008091E20022
+:1031F00080618093E2008091D80080628093D80043
+:1032000019BC85E080930E040E9423158091E10093
+:1032100084FF30C08091E20084FF2CC080E189BD32
+:1032200082E189BD09B400FEFDCF8091D8008F7D79
+:103230008093D8008091E1008F7E8093E10080919F
+:10324000E2008F7E8093E2008091E20081608093B3
+:10325000E20080910A04882311F084E007C0809185
+:10326000E30087FD02C081E001C083E080930E048B
+:103270000E9424158091E10083FF29C08091E20023
+:1032800083FF25C08091E100877F8093E10082E089
+:1032900080930E0410920A048091E1008E7F809347
+:1032A000E1008091E2008E7F8093E2008091E20055
+:1032B00080618093E20042E060E080E00E94A51718
+:1032C0008091F00088608093F0000E942215FF91A9
+:1032D000EF91BF91AF919F918F917F916F915F918E
+:1032E0004F913F912F910F900FBE0F901F90189507
+:1032F0001F920F920FB60F9211242F933F934F936B
+:103300005F936F937F938F939F93AF93BF93CF936D
+:10331000DF93EF93FF93C091E900CF708091EC00B1
+:10332000D82FD17080FDD0E81092E9008091F00094
+:10333000877F8093F00078940E94BC191092E90076
+:103340008091F00088608093F000CD2BCF70C09307
+:10335000E900FF91EF91DF91CF91BF91AF919F91E4
+:103360008F917F916F915F914F913F912F910F902E
+:103370000FBE0F901F9018951F93CF93DF93CDB77B
+:10338000DEB7AA970FB6F894DEBF0FBECDBFEFE051
+:10339000F4E088E08E0F9091F10091938E13FBCFB3
+:1033A0000E943A158091E80083FF1FC180910F04AD
+:1033B00090911004492F50E04A30510508F015C192
+:1033C000FA01E857FF4F0C948431803881F082383D
+:1033D00009F00BC1809113048F708093E9008091F4
+:1033E000EB0085FB882780F91092E90006C08091E8
+:1033F0000B0490910C04911182609091E800977FEA
+:103400009093E8008093F1001092F100C8C0282F3B
+:103410002D7F09F0EAC0882319F0823061F0E5C001
+:1034200080911104813009F0E0C0933009F080E010
+:1034300080930C042BC080911104811127C08091CE
+:1034400013048F7009F4D1C08093E9002091EB0040
+:1034500020FF1CC0933021F48091EB00806214C0E7
+:103460009091EB0090619093EB0021E030E0A90196
+:1034700002C0440F551F8A95E2F74093EA0010926C
+:10348000EA008091EB0088608093EB001092E900E5
+:103490008091E800877F86C08111A7C01091110438
+:1034A0001F778091E3008078812B8093E3008091E7
+:1034B000E800877F8093E8000E94DA178091E80097
+:1034C00080FFFCCF8091E30080688093E3001111BE
+:1034D00002C082E001C083E080930E0486C0805861
+:1034E000823008F082C080911104909112048C3DCA
+:1034F00053E0950779F583E08A838AE289834FB7A1
+:10350000F894DE01139620E03EE051E2E32FF0E074
+:1035100050935700E49120FF03C0E295EF703F5FA6
+:10352000EF708E2F90E0EA3010F0C79601C0C09681
+:103530008D939D932F5F243149F74FBF8091E80011
+:10354000877F8093E8006AE270E0CE0101960E94D6
+:10355000E11614C0AE014F5F5F4F609113040E94EB
+:103560002816BC01009709F440C09091E800977FAD
+:103570009093E80089819A810E9444178091E80025
+:103580008B778093E80031C0803879F58091E8002E
+:10359000877F8093E80080910A048093F1008091F6
+:1035A000E8008E778093E8000E94DA171EC0811130
+:1035B0001CC0909111049230C0F48091E800877F84
+:1035C0008093E80090930A040E94DA1780910A041D
+:1035D000811106C08091E30087FD02C081E001C037
+:1035E00084E080930E040E9426158091E80083FFFA
+:1035F0000AC08091E800877F8093E8008091EB000B
+:1036000080628093EB00AA960FB6F894DEBF0FBEDF
+:10361000CDBFDF91CF911F9108950895CF938091F1
+:103620000E048823A1F0C091E900CF709091EC00C6
+:10363000892F817090FD80E8C82B1092E90080915D
+:10364000E80083FD0E94BC19CF70C093E900CF91C0
+:10365000089590938F0380938E030895E0918E03D5
+:10366000F0918F03309721F00190F081E02D0994C3
+:1036700080E00895E0918E03F0918F03309721F060
+:103680000280F381E02D09940895E0918E03F0917A
+:103690008F03309721F00480F581E02D099408957F
+:1036A00020918C0330918D038217930771F09093D2
+:1036B0008D0380938C03E0918E03F0918F033097FC
+:1036C00021F00680F781E02D0994089520918A0366
+:1036D00030918B038217930771F090938B03809343
+:1036E0008A03E0918E03F0918F03309721F00084DC
+:1036F000F185E02D0994089508950C947C1B0E9497
+:1037000004280E949A0B0E948A280C94452D4F92FF
+:103710005F927F928F929F92AF92BF92CF92DF92F1
+:10372000EF92FF920F931F93CF93DF93CDB7DEB746
+:103730002A970FB6F894DEBF0FBECDBF0E94890C4A
+:1037400091E9C92E93E0D92E00E010E0AA24A394B9
+:10375000B12C702E802F0E94D20D4C01F6014190A9
+:1037600051906F014826592641145104B1F40F5F5E
+:103770001F4F0430110569F78FEF89838A831B82FD
+:103780000E940D288160782F9D838C8349815A8106
+:103790006B818D810E94401C3AC08091ED0381FDB8
+:1037A0000E94DB0D20E030E07501022E02C0EE0C1D
+:1037B000FF1C0A94E2F7C70184219521892B09F1A6
+:1037C0002E837F828E209F2091E0892809F490E04B
+:1037D00098870E940D288160782F9A8789874E816B
+:1037E0005F8168858A850E94401C000F111FF801C7
+:1037F000EF56FC4F80819181E826F926F182E08224
+:1038000006C02F5F3F4F2C30310571F6B0CF0E94BC
+:10381000762A109190030E942E1B1817D9F00E944F
+:103820002E1B809390032A960FB6F894DEBF0FBE2E
+:10383000CDBFDF91CF911F910F91FF90EF90DF905F
+:10384000CF90BF90AF909F908F907F905F904F9060
+:103850000C94D20A2A960FB6F894DEBF0FBECDBFE5
+:10386000DF91CF911F910F91FF90EF90DF90CF905C
+:10387000BF90AF909F908F907F905F904F900895F2
+:10388000CF93DF93CDB7DEB72B970FB6F894DEBF9B
+:103890000FBECDBF4F83588769877A878B87DE013C
+:1038A000119686E0FD0111928A95E9F785E0FE0107
+:1038B000379601900D928A95E1F749815A816B8183
+:1038C0007C818D819E810E94E5232B960FB6F89412
+:1038D000DEBF0FBECDBFDF91CF910895CF93882378
+:1038E00009F4C2C0C82F823859F40E942E1B81FDF2
+:1038F000BBC089E30E948E260E945B2789E30CC02F
+:10390000833879F40E942E1B80FDAEC083E50E94AF
+:103910008E260E945B2783E50E94D026CF910C94CF
+:103920005B27843859F40E942E1B82FD9DC087E4DA
+:103930000E948E260E945B2787E4EECF8CEF8C0FCF
+:10394000813A48F48C2F0E94AD2C81118DC08C2FB0
+:103950000E948E26E3CF80E28C0F883048F4C77037
+:1039600081E001C0880FCA95EAF70E941427D6CFDC
+:103970008BE58C0F833078F4C53A29F0C63A31F0E4
+:1039800083E890E005C081E890E002C082E890E022
+:10399000CF910C94501B88E58C0F833108F064C0E4
+:1039A000C83A39F1C93A41F1CA3A49F1CB3A51F131
+:1039B000CC3A59F1CD3A61F1C03B69F1CE3A71F19F
+:1039C000CF3A79F1C13B81F1C23B89F1C33B91F11F
+:1039D000C43B99F1C53BA1F1C63BA9F1C73BB1F18D
+:1039E000C83BB9F1C93BC1F1CA3BC9F180E090E0E5
+:1039F00038C082EE90E035C089EE90E032C08AEEA9
+:103A000090E02FC085EB90E02CC086EB90E029C0C1
+:103A100087EB90E026C08CEC90E023C08DEC90E02A
+:103A200020C083E891E01DC08AE891E01AC082E9D5
+:103A300091E017C084E991E014C081E292E011C0E6
+:103A400083E292E00EC084E292E00BC085E292E055
+:103A500008C086E292E005C087E292E002C08AE2F6
+:103A600092E0CF910C94661BCF910895882309F4BE
+:103A70004BC0823859F40E942E1B81FF45C089E358
+:103A80000E948E260E945B2789E30CC0833871F464
+:103A90000E942E1B80FF38C083E50E948E260E9464
+:103AA0005B2783E50E94D0260C945B27843859F469
+:103AB0000E942E1B82FF28C087E40E948E260E944F
+:103AC0005B2787E4EFCF9CEF980F913A58F390E291
+:103AD000980F983050F4877091E001C0990F8A9543
+:103AE000EAF7892F0E941A27DFCF9BE5980F9330C2
+:103AF00020F480E090E00C94501B885A833120F42D
+:103B000080E090E00C94661B0895882321F00E94C9
+:103B100014270C945B270895882321F00E941A270C
+:103B20000C945B270895BF92CF92DF92EF92FF92A1
+:103B30000F931F93CF93DF9300D000D000D0CDB769
+:103B4000DEB725E0FC01DE01119601900D922A9569
+:103B5000E1F7FC01D08011810281258122952F702F
+:103B600043815481452B09F472C31F3F21F4FFEFB9
+:103B7000DF1609F46CC37C012E830E949B07D98257
+:103B80001A8369817A81802F0E948A26182FB92E84
+:103B90000E943F260E9406252E81002319F00E94D4
+:103BA00031272E81EB2DE295EF70F0E0EE56FF4FBE
+:103BB0000C9484318B2D807F9B2D9F70F92E882350
+:103BC00019F0F29480EFF822002389F0FF2009F425
+:103BD0007CC280E2810F883020F48F2D0E94142750
+:103BE00003C08F2D0E9424270E945B276EC2812F65
+:103BF0000E94361DFF2009F42AC3105E8F2D183055
+:103C000018F40E941A2702C00E942A2726960FB68F
+:103C1000F894DEBF0FBECDBFDF91CF911F910F9102
+:103C2000FF90EF90DF90CF90BF900C945B278B2D8F
+:103C3000807F9B2D9F70803211F4892F03C0892FC4
+:103C40008295807F112319F0113011F12BC00023D0
+:103C5000A9F0222389F1213079F526960FB6F89440
+:103C6000DEBF0FBECDBFDF91CF911F910F91FF90AF
+:103C7000EF90DF90CF90BF900C944427222319F04F
+:103C8000213009F4E4C28E830E9447278E819BC1B4
+:103C9000002321F0263008F0DAC20EC0253008F0EB
+:103CA000D6C291C10023C9F0222331F0F7019581DA
+:103CB00090FF0BC29F70958326960FB6F894DEBFD7
+:103CC0000FBECDBFDF91CF911F910F91FF90EF906D
+:103CD000DF90CF90BF900C94851D222309F473C10F
+:103CE00009C22B2D26952695237030E0211531052C
+:103CF00021F021303105D1F0AAC2002321F0812F1B
+:103D00009B2D937002C080E090E026960FB6F89449
+:103D1000DEBF0FBECDBFDF91CF911F910F91FF90FE
+:103D2000EF90DF90CF90BF900C94501B002321F0B8
+:103D3000812F9B2D937002C080E090E026960FB6F5
+:103D4000F894DEBF0FBECDBFDF91CF911F910F91D1
+:103D5000FF90EF90DF90CF90BF900C94661B812F67
+:103D6000002319F00E947E2902C00E94E6292696AF
+:103D70000FB6F894DEBF0FBECDBFDF91CF911F917C
+:103D80000F91FF90EF90DF90CF90BF900C946B2A33
+:103D90008B2D837009F07BC0011159C2812F829550
+:103DA00086958770880F880F912F9F70C92ED12C10
+:103DB000E12CF12C082E04C0CC0CDD1CEE1CFF1CE9
+:103DC0000A94D2F714FF12C04FE050E060E070E0B8
+:103DD00004C0440F551F661F771F8A95D2F7CB0189
+:103DE000BA01609570958095909503C060E070E091
+:103DF000CB012B2D269526952370422F50E0423083
+:103E00005105D9F04330510569F16C297D298E297E
+:103E10009F294130510551F126960FB6F894DEBF27
+:103E20000FBECDBFDF91CF911F910F91FF90EF900B
+:103E3000DF90CF90BF900C942D256C297D298E2981
+:103E40009F2926960FB6F894DEBF0FBECDBFDF9137
+:103E5000CF911F910F91FF90EF90DF90CF90BF9087
+:103E60000C9449250E942D25C701B60126960FB650
+:103E7000F894DEBF0FBECDBFDF91CF911F910F91A0
+:103E8000FF90EF90DF90CF90BF900C94112500230E
+:103E900019F08B2D817001C08695882309F4D7C154
+:103EA000812F829586958770880F880F912F9F703C
+:103EB000C92ED12CE12CF12C082E04C0CC0CDD1C19
+:103EC000EE1CFF1C0A94D2F714FF12C04FE050E022
+:103ED00060E070E004C0440F551F661F771F8A958D
+:103EE000D2F7CB01BA01609570958095909503C08B
+:103EF00060E070E0CB012B2D269526952370422F94
+:103F000050E042305105D9F04330510569F16C2938
+:103F10007D298E299F294130510551F126960FB6F2
+:103F2000F894DEBF0FBECDBFDF91CF911F910F91EF
+:103F3000FF90EF90DF90CF90BF900C9407266C29F4
+:103F40007D298E299F2926960FB6F894DEBF0FBED5
+:103F5000CDBFDF91CF911F910F91FF90EF90DF9038
+:103F6000CF90BF900C9423260E940726C701B6016C
+:103F700026960FB6F894DEBF0FBECDBFDF91CF916E
+:103F80001F910F91FF90EF90DF90CF90BF900C9416
+:103F9000EB25103F49F118F4103E48F491C0123F50
+:103FA00009F453C0E8F1133F09F464C089C01F70DD
+:103FB0008B2D8F71002321F00E948425812F7CCED0
+:103FC0000E94A525812F26960FB6F894DEBF0FBE5E
+:103FD000CDBFDF91CF911F910F91FF90EF90DF90B8
+:103FE000CF90BF900C948C1D0023B1F0253008F0C9
+:103FF0002EC18B2D8F7126960FB6F894DEBF0FBEA3
+:10400000CDBFDF91CF911F910F91FF90EF90DF9087
+:10401000CF90BF900C94CA25263008F018C1E9CF84
+:104020000023A9F08B2D8F7126960FB6F894DEBF72
+:104030000FBECDBFDF91CF911F910F91FF90EF90F9
+:10404000DF90CF90BF900C948425002359F38B2DE3
+:104050008F7126960FB6F894DEBF0FBECDBFDF91ED
+:10406000CF911F910F91FF90EF90DF90CF90BF9075
+:104070000C94A525002399F08B2D8F7126960FB6F1
+:10408000F894DEBF0FBECDBFDF91CF911F910F918E
+:10409000FF90EF90DF90CF90BF900C946F25269605
+:1040A0000FB6F894DEBF0FBECDBFDF91CF911F9149
+:1040B0000F91FF90EF90DF90CF90BF900C9465250B
+:1040C0000023A9F0222309F4ADCF812F26960FB645
+:1040D000F894DEBF0FBECDBFDF91CF911F910F913E
+:1040E000FF90EF90DF90CF90BF900C946E1C222336
+:1040F00009F4ADCF812F26960FB6F894DEBF0FBE20
+:10410000CDBFDF91CF911F910F91FF90EF90DF9086
+:10411000CF90BF900C94361D4B2D4F70612FC7016F
+:104120000E948D0526960FB6F894DEBF0FBECDBF58
+:10413000DF91CF911F910F91FF90EF90DF90CF9083
+:10414000BF900C948924011182C09B2D9F70492F30
+:1041500050E04230510509F443C0C4F44115510503
+:1041600071F14130510509F072C026960FB6F894EE
+:10417000DEBF0FBECDBFDF91CF911F910F91FF909A
+:10418000EF90DF90CF90BF900C946D2D4330510590
+:10419000C1F14430510509F05AC0812F26960FB65F
+:1041A000F894DEBF0FBECDBFDF91CF911F910F916D
+:1041B000FF90EF90DF90CF90BF900C94BF2D26968C
+:1041C0000FB6F894DEBF0FBECDBFDF91CF911F9128
+:1041D0000F91FF90EF90DF90CF90BF900C94562DF1
+:1041E00026960FB6F894DEBF0FBECDBFDF91CF91FC
+:1041F0001F910F91FF90EF90DF90CF90BF900C94A4
+:10420000892D26960FB6F894DEBF0FBECDBFDF9185
+:10421000CF911F910F91FF90EF90DF90CF90BF90C3
+:104220000C949C2D4B2D4F70612FC70126960FB615
+:10423000F894DEBF0FBECDBFDF91CF911F910F91DC
+:10424000FF90EF90DF90CF90BF900C949D07269643
+:104250000FB6F894DEBF0FBECDBFDF91CF911F9197
+:104260000F91FF90EF90DF90CF90BF9008950E9444
+:1042700031270E9441270E9406270E945B270E9447
+:104280001C2B0E946B2A80E090E00E94501B80E073
+:1042900090E00C94661B0E9421270C9437210E9409
+:1042A0007F26292F22952F7030E02C3031054CF4D9
+:1042B0002A3031056CF4225031092230310588F45E
+:1042C00007C02C30310549F02F30310531F009C0DD
+:1042D000803E48F0803F29F406C093FB882780F990
+:1042E000089580E0089581E00895CF93DF9300D092
+:1042F00000D01F92CDB7DEB70F900F900F900F90A8
+:104300000F90DF91CF910895CF93DF9300D000D02D
+:1043100000D0CDB7DEB726960FB6F894DEBF0FBE3D
+:10432000CDBFDF91CF9108951F93CF93DF93C091BD
+:10433000990316E080919A03C81799F0D0E01C9F6A
+:10434000F0011D9FF00D1124E556FC4F4081518175
+:1043500062817381848195810E9484212196C77036
+:10436000E9CFDF91CF911F9108954091CB035091F8
+:10437000CC036091CD037091CE038091CF039091D7
+:10438000D0030C9484218091D00382958F7009F022
+:1043900054C08091CD03882309F44FC080919903C4
+:1043A000A0919A036091CB037091CC034091CE030E
+:1043B0005091CF03B6E08A1709F43FC090E0411551
+:1043C0005105C1F17F3F11F46F3FA1F1B89FF0019A
+:1043D000B99FF00D1124E556FC4F218172132AC0BC
+:1043E0002081621327C02281211124C023813481BE
+:1043F0002417350710F421503109241B350B283CB4
+:104400003105C0F42091D0032F7020612093D00398
+:1044100026E0289FF001299FF00D1124E056FC4F63
+:1044200080818F70806180838BEC93E00E94931D6C
+:104430000C94942101968770BECF0895CF92DF929D
+:10444000EF92FF920F931F93CF93DF93CDB7DEB719
+:1044500062970FB6F894DEBF0FBECDBF8C0185E02A
+:10446000F801DE011D9601900D928A95E1F7D801C1
+:104470004C9111965C91119712966C91129713962C
+:10448000CD90DC9014973091CB037091CC03809148
+:10449000CE039091CF03009709F46BC17F3F19F4CD
+:1044A0003F3F09F466C1E090CD03EE2009F4C0C09F
+:1044B0002091D003C816D90628F0F601E81BF90BA5
+:1044C000CF0104C0809590958C0D9D1DFF24F39421
+:1044D000883C910578F0F12C207F09F0C6C07C2D36
+:1044E000D98AC88A89890E9475218BEC93E00E9441
+:1044F000931DB1C0822F807F09F046C0751314C090
+:10450000341312C0611110C02F7020612093D003AA
+:104510000E94B5218BEC93E00E94931D8091D00303
+:10452000D80115968C932EC0CD2819F15F3F11F458
+:104530004F3FF9F0F62E61111CC080919903209134
+:104540009A0336E0821709F45AC090E0389FF001D0
+:10455000399FF00D1124E556FC4F7181571306C0A9
+:104560007081471303C07281711103C00196877077
+:10457000E9CFF62E662309F418C18091D00381603B
+:104580008093D003F12C11C1751308C0341306C0F9
+:10459000611104C08091D003D801C3C04D875E87EC
+:1045A0008D859E856A8B0E944F216A898823E1F15F
+:1045B0006623D1F12091D003822F82958F7090E0F5
+:1045C000029774F08091CB039091CC0398878F83EE
+:1045D0001986DB86CA862C87CE0107960E94931D1A
+:1045E00086E0F801ABECB3E001900D928A95E1F71B
+:1045F0000E94C3210E94B521FF24F394D6C04D87A9
+:104600005E878D859E850E947F26292F22952F709B
+:1046100030E0223031050CF0BCC09F7009F0B6C00C
+:10462000805E883008F4C1C0C8010E94931DE4CFA9
+:10463000C816D90608F453C0F601E81BF90BCF01E0
+:10464000883C910508F450C0F12C7C2DD98AC88A89
+:1046500089890E947521EBECF3E086E0DF011D9271
+:104660008A95E9F70E94B521A0C0751314C03413D0
+:1046700012C0611110C08091D003F8018583C80178
+:104680000E94931D86E0EBECF3E0DF011D928A951A
+:10469000E9F7FE2C8AC04D875E878D859E856A8BE3
+:1046A0000E944F216A89882309F4BECF662309F44A
+:1046B000BBCF2091D003822F82958F7090E002971C
+:1046C0000CF48ECF8091CB039091CC039A83898395
+:1046D0001B82DD82CC822E83CE0101967FCF809516
+:1046E00090958C0D9D1DACCFF62E662309F49CCFC2
+:1046F00075132EC034132CC02091D00320FD1FC091
+:10470000822F82958F70D9F0D80115962C9315972A
+:104710008F3049F08F5F982F9295907F822F8F7006
+:10472000892B15968C93C8010E94931D86E0F80191
+:10473000ABECB3E001900D928A95E1F793CF86E060
+:10474000F801ABECB3E001900D928A95E1F72DC032
+:104750004D875E878D859E850E944F21811140CFB8
+:104760008091D00381608093D003C8010E94931D83
+:104770001CC0662309F458CF4D875E878D859E85C2
+:104780000E944F21882309F44FCF2ACF811148CFAF
+:104790000CC0243031050CF047CF9F7009F440CF96
+:1047A000F8019581907F09F03BCF8F2D62960FB66F
+:1047B000F894DEBF0FBECDBFDF91CF911F910F9157
+:1047C000FF90EF90DF90CF9008951F93CF93DF93EA
+:1047D000CDB7DEB72C970FB6F894DEBF0FBECDBFB6
+:1047E0004F83588769877A878B879C87CE01079686
+:1047F0000E941E22882369F08F8198852A853B8537
+:10480000232BF1F19F3F09F063C08F3F09F060C097
+:1048100037C086E0FE013796DE01119601900D92B9
+:104820008A95E1F76F817885EA85FB85309741F1BC
+:104830007F3F11F46F3F21F120919A0330E0C901CD
+:104840000196877099274091990350E08417950746
+:1048500009F447C069837A83FD83EC8396E0929FD5
+:10486000D001939FB00D1124A556BC4FFE01319687
+:1048700001900D929A95E1F780939A030E949421FA
+:1048800016E08091990390919A038917C1F1189FBE
+:10489000C001112485569C4F0E941E22882379F165
+:1048A000E09199031E9FF0011124E556FC4F4081D1
+:1048B000518162817381848195810E9484218091DC
+:1048C000990390E001968770992780939903D9CF37
+:1048D0004F81588569857A858B859C850E948421C6
+:1048E000CFCF0E944B2110929A0310929903EBECC8
+:1048F000F3E086E0DF011D928A95E9F7C1CF2C969F
+:104900000FB6F894DEBF0FBECDBFDF91CF911F91E0
+:104910000895EF92FF920F931F93CF93DF938C0133
+:10492000009709F46CC0F12CEE24E394E801219681
+:10493000F8018491843740F4843008F051C081300C
+:1049400081F0823019F15BC0853709F444C0A8F1C9
+:104950009CE7980F903708F052C08F770E94361D61
+:1049600041C00E5F1F4FFE01C49180E28C0F883062
+:1049700048F4C7708E2D01C0880FCA95EAF70E94CF
+:10498000342714C08C2F0E946E1C2DC00E5F1F4F49
+:10499000FE01C49180E28C0F883058F4C7708E2DD0
+:1049A00001C0880FCA95EAF70E943A270E945B2748
+:1049B0001AC08C2F0E94361D16C00E5F1F4FFE01BD
+:1049C000C491CC2381F08FE99FE00197F1F700C0FB
+:1049D0000000C150F6CF0E5F1F4FFE01F49003C0E0
+:1049E0000E946E1C8E018F2D882309F49FCFEFE962
+:1049F000FFE03197F1F700C000008150F5CFDF9163
+:104A0000CF911F910F91FF90EF90089508956093BB
+:104A1000D5037093D6038093D7039093D8030C9457
+:104A200037210F931F930091D5031091D603209146
+:104A3000D7033091D803DC01CB01802B912BA22B23
+:104A4000B32B8093D5039093D603A093D703B09351
+:104A5000D8031F910F910C9437210F931F9300914E
+:104A6000D5031091D6032091D7033091D803DC01F0
+:104A7000CB0180239123A223B3238093D50390936A
+:104A8000D603A093D703B093D8031F910F910C9432
+:104A900037210F931F930091D5031091D6032091D6
+:104AA000D7033091D803DC01CB0180279127A227BF
+:104AB000B3278093D5039093D603A093D703B093E5
+:104AC000D8031F910F910C9437211092D1031092AB
+:104AD000D2031092D3031092D4030C94372141E0F7
+:104AE00050E060E070E004C0440F551F661F771F60
+:104AF0008A95D2F74093D1035093D2036093D303A6
+:104B00007093D4030C94372141E050E060E070E0F2
+:104B100004C0440F551F661F771F8A95D2F78091F6
+:104B2000D1039091D203A091D303B091D403482B29
+:104B3000592B6A2B7B2B4093D1035093D203609364
+:104B4000D3037093D4030C94372141E050E060E02C
+:104B500070E004C0440F551F661F771F8A95D2F777
+:104B600040955095609570958091D1039091D203B6
+:104B7000A091D303B091D403482359236A237B2304
+:104B80004093D1035093D2036093D3037093D40323
+:104B90000C94372141E050E060E070E004C0440F25
+:104BA000551F661F771F8A95D2F78091D103909188
+:104BB000D203A091D303B091D403482759276A2781
+:104BC0007B274093D1035093D2036093D303709318
+:104BD000D4030C9437210F931F930091D1031091AC
+:104BE000D2032091D3033091D403DC01CB01802B7D
+:104BF000912BA22BB32B8093D1039093D203A0933C
+:104C0000D303B093D4031F910F910C9437210F93CA
+:104C10001F930091D1031091D2032091D3033091BF
+:104C2000D403DC01CB0180239123A223B3238093FF
+:104C3000D1039093D203A093D303B093D4031F91D5
+:104C40000F910C9437210F931F930091D103109172
+:104C5000D2032091D3033091D403DC01CB01802710
+:104C60009127A227B3278093D1039093D203A093D7
+:104C7000D303B093D4031F910F910C94372108955F
+:104C8000CF92DF92EF92FF920F931F93CF93DF9318
+:104C90008C01C090D503D090D603E090D703F0905C
+:104CA000D8038091D1039091D203A091D303B09106
+:104CB000D403C82AD92AEA2AFB2ACFE1D0E0D701B7
+:104CC000C6010C2E04C0B695A795979587950A94B2
+:104CD000D2F780FF06C0B8018C2F0E94F709019718
+:104CE00021F4219760F780E001C08C2FDF91CF91F4
+:104CF0001F910F91FF90EF90DF90CF900895CF9389
+:104D0000DF93EC010E944026BE010E94F709DF916B
+:104D1000CF910895CB010E947F260895909186023D
+:104D2000992321F090918702911109C02091880266
+:104D300030918902F90132969FEF40E01FC0982F11
+:104D40009695969596959F3050F5E0918802F09152
+:104D50008902E90FF11D877021E030E0A90102C04E
+:104D6000440F551F8A95E2F7CA019181892B8183EF
+:104D700008959F3F39F04F5F4E3041F051915813E5
+:104D8000F8CF0DC05111F7CF942FF5CF9F3F39F0D9
+:104D9000F901E90FF11D97FDFA95828308950895B1
+:104DA00090918602992321F090918702911109C078
+:104DB0002091880230918902F9013296205F3F4F9D
+:104DC0001FC0982F9695969596959F30F0F4E09198
+:104DD0008802F0918902E90FF11D877021E030E02F
+:104DE000A90102C0440F551F8A95E2F7CA018095B8
+:104DF00091818923818308953196E217F30729F081
+:104E000090819813F9CF1082F7CF089581E090E058
+:104E1000E0918802F0918902E80FF91F1082019653
+:104E200080319105A9F708959091EC03892B809327
+:104E3000EC03089580959091EC0389238093EC0313
+:104E400008951092EC0308959091EB03892B8093C1
+:104E5000EB03089580959091EB0389238093EB03F6
+:104E600008951092EB0308959091EA03892B8093A3
+:104E7000EA03089580959091EA0389238093EA03D9
+:104E800008951092EA0308958093D903089510922B
+:104E9000D90308958091880290918902FC0131968E
+:104EA0009C01205F3F4F80E0919191118F5FE2174D
+:104EB000F307D1F70895E0918802F091890280917B
+:104EC000EC038083E0918802F091890290818091C7
+:104ED000EB03892B8083E0918802F0918902908115
+:104EE0008091EA03892B80838091D903882361F024
+:104EF000E0918802F09189029081892B80830E9441
+:104F00004A2781111092D9038091880290918902D9
+:104F10000C943A1B80910E04843039F11092EE0308
+:104F200020E488E190E00FB6F894A89580936000A3
+:104F30000FBE2093600080E00E94540580E00E9434
+:104F4000D20A83B7817F846083BF83B7816083BFC8
+:104F50007894889583B78E7F83BF88E10FB6F894E5
+:104F600080936000109260000FBE08950895089528
+:104F7000CF9380E00E9454050E94B6270E94890CBE
+:104F80000E94B727C0E08C2F0E94D20D892B29F4F4
+:104F9000CF5FC430C1F780E001C081E0CF910895B8
+:104FA0000E944B2180E00E9454050E94452D0E94E2
+:104FB0002E1B0C94D20A1F920F920FB60F9211243F
+:104FC0008F939F93AF93BF938091EE03811113C092
+:104FD0008091EF039091F003A091F103B091F2035F
+:104FE0004196A11DB11D8093EF039093F003A09310
+:104FF000F103B093F203BF91AF919F918F910F9006
+:105000000FBE0F901F90189582E084BD93E095BD70
+:105010009AEF97BD80936E0008952FB7F894809112
+:10502000EF039091F003A091F103B091F2032FBF31
+:105030000895CF92DF92EF92FF920F931F932FB7B5
+:10504000F8944091EF035091F0036091F103709157
+:10505000F2032FBF6A017B01EE24FF248C0120E0C4
+:1050600030E0C016D106E206F30610F441505109B3
+:105070009A01281B390BC9011F910F91FF90EF90E6
+:10508000DF90CF9008951F920F920FB60F921124C8
+:105090008F939F93AF93BF938091EF039091F00311
+:1050A000A091F103B091F2030196A11DB11D80936F
+:1050B000EF039093F003A093F103B093F203BF9139
+:1050C000AF919F918F910F900FBE0F901F901895E9
+:1050D0000E942B18F8942FEF87EA91E62150804028
+:1050E0009040E1F700C0000087E090EBDC01809386
+:1050F000190490931A04A0931B04B0931C049CE021
+:1051000088E10FB6F894A895809360000FBE909345
+:105110006000FFCF0E94C928811102C00E94A5280B
+:105120000E94D4288093ED030E94E1288093170405
+:1051300087FB882780F9809387020E94D828682FF0
+:1051400070E080E090E00C9407256DEE7EEF80E04B
+:1051500090E00E94AA3160E082E090E00E949831E5
+:1051600060E083E090E00E94983160E084E090E0AD
+:105170000E94983160E085E090E00E94983160E004
+:1051800086E090E00E9498316FEF87E090E00C9409
+:10519000983180E090E00E94923121E08D3E9E4F58
+:1051A00009F020E0822F089582E090E00C948A318B
+:1051B00083E090E00C948A31682F83E090E00C94B7
+:1051C000983184E090E00C948A31682F84E090E07C
+:1051D0000C94983186E090E00C948A31682F86E038
+:1051E00090E00C94983187E090E00C948A31682F1D
+:1051F00087E090E00C9498318091F50380FF0BC01C
+:1052000060918D0285E0689FB001112475956795C6
+:10521000759567952BC081FF09C060918D0285E06F
+:10522000689FB00111247595679520C082FF07C063
+:1052300060918D0285E0689FB001112417C09091A4
+:10524000F6039923D1F060918C02961788F720918C
+:105250008D0285E0289F90011124929FA001939FC9
+:10526000500D112470E0CA010E9470316038710540
+:1052700040F46115710539F002C065E070E0862FD9
+:1052800008958FE7089581E008958091F50380FFE8
+:1052900008C060918B0270E075956795759567956C
+:1052A00021C081FF06C060918B0270E07595679503
+:1052B00019C082FF04C060918B0270E010C0909111
+:1052C000F6039923C1F060918A029617A0F78091A6
+:1052D0008B02899FC001112470E00E9470316038F8
+:1052E000710528F46115710521F0862F08958FE767
+:1052F000089581E0089561E070E0F4CF803F21F4EB
+:105300000E94FC28819504C0813F29F40E94FC285A
+:105310008093F9030895823F21F40E94FC2881952F
+:1053200004C0833F29F40E94FC288093F803089569
+:10533000893F19F40E94452905C08A3F31F40E9433
+:10534000452981958093FA0308958B3F21F40E94AB
+:105350004529819504C08C3F29F40E9445298093FA
+:10536000FB030895843F21F48091F703816017C007
+:10537000853F21F48091F703826011C0863F21F4BC
+:105380008091F70384600BC0873F21F48091F7037D
+:10539000886005C0883F31F48091F7038061809375
+:1053A000F70308958D3F21F48091F50381600BC0D0
+:1053B0008E3F21F48091F503826005C08F3F29F470
+:1053C0008091F50384608093F5030895803F39F45C
+:1053D0008091F90387FF6CC01092F90369C0813F87
+:1053E00029F48091F9031816BCF362C09091F80378
+:1053F000823F29F497FF5CC01092F80359C0833FA5
+:1054000019F41916CCF354C0893F41F48091FA0382
+:1054100018160CF04DC01092FA034AC08A3F29F4C6
+:105420008091FA0387FF44C0F6CF8B3F39F4809117
+:10543000FB0387FF3DC01092FB033AC08C3F29F469
+:105440008091FB031816BCF333C0843F21F4809194
+:10545000F7038E7F17C0853F21F48091F7038D7F7E
+:1054600011C0863F21F48091F7038B7F0BC0873FEB
+:1054700021F48091F703877F05C0883F31F4809144
+:10548000F7038F7E8093F70313C08D3F21F4809143
+:10549000F5038E7F0BC08E3F21F48091F5038D7F45
+:1054A00005C08F3F29F48091F5038B7F8093F5032E
+:1054B0008091F80381110EC08091F90381110AC017
+:1054C0008091FA03811106C08091FB03811102C013
+:1054D0001092F603089587EF93E00E94451B0E9407
+:1054E0000D289093F4038093F30308951F93CF93B3
+:1054F000DF938091F3039091F4030E941928AC018B
+:105500009091F603992321F020918E0230E006C09D
+:1055100020918F028AE0289F90011124421753079F
+:1055200008F486C08091F803C091F903D091FA0382
+:105530001091FB03811107C0C11176C0D11174C055
+:10554000111172C075C09F3F19F09F5F9093F603D1
+:10555000181624F40E94FC288093F8038091F80325
+:1055600087FF05C00E94FC2881958093F8031C16D4
+:1055700024F40E94FC288093F9038091F90387FFAB
+:1055800005C00E94FC2881958093F9036091F8037F
+:10559000662339F1C091F903CC2319F1772767FD10
+:1055A0007095872F972F0E94E02E23E333E343E388
+:1055B0005FE30E94942F0E94AD2E6093F8036C2F3E
+:1055C000772767FD7095872F972F0E94E02E23E3A2
+:1055D00033E343E35FE30E94942F0E94AD2E609378
+:1055E000F9031D1624F40E9445298093FA03809143
+:1055F000FA0387FF05C00E94452981958093FA032D
+:10560000111624F40E9445298093FB038091FB032B
+:1056100087FF05C00E94452981958093FB03DF9198
+:10562000CF911F910C946B2A9F3F09F08ECF96CF9C
+:10563000DF91CF911F910895E7EFF3E085E0DF015F
+:105640001D928A95E9F71092F6031092F5030895DA
+:10565000833081F128F4813059F08230D1F00895FF
+:10566000853009F449C0B8F1863009F456C0089570
+:1056700080918F02262F30E0280F311D2F3F3105FA
+:1056800024F4680F60938F0208958FEF80938F0248
+:10569000089580918E02262F30E0280F311D2F3F74
+:1056A000310524F4680F60938E0208958FEF809384
+:1056B0008E02089580918D02262F30E0280F311D33
+:1056C0002F3F310524F4680F60938D0208958FEF0A
+:1056D00080938D02089580918C02262F30E0280F50
+:1056E000311D2F3F310524F4680F60938C0208951B
+:1056F0008FEF80938C02089580918B02262F30E0EB
+:10570000280F311D2F3F310524F4680F60938B0261
+:1057100008958FEF80938B02089580918A02262F3F
+:1057200030E0280F311D2F3F310524F4680F6093BE
+:105730008A0208958FEF80938A020895833011F1D1
+:1057400028F4813049F0823091F00895853081F15C
+:1057500020F18630C1F1089580918F02681720F4FE
+:10576000861B80938F02089510928F020895809176
+:105770008E02681720F4861B80938E020895109283
+:105780008E02089580918D02681720F4861B809305
+:105790008D02089510928D02089580918C026817F1
+:1057A00020F4861B80938C02089510928C02089539
+:1057B00080918B02681720F4861B80938B020895DA
+:1057C00010928B02089580918A02681720F4861B3C
+:1057D00080938A02089510928A0208950F931F936E
+:1057E000873208F048C08E3108F094C0803109F447
+:1057F0007EC008F5873009F468C068F4863009F087
+:10580000A4C08091ED03817F8E7F8093ED0381E0C2
+:105810008093FD039BC08B3009F490C08E3009F05B
+:1058200094C08091ED0382FB222720F991E092271A
+:1058300090FB82F965C0863109F480C060F4813143
+:1058400009F083C00E944B219091870281E0892753
+:105850008093870273C0893109F470C08B3109F0DD
+:1058600074C08091ED0381FB222720F991E09227FB
+:1058700090FB81F945C0883309F460C050F4893247
+:1058800009F45EC0853309F45BC0873209F458C05F
+:105890005CC0833409F454C028F48A3308F455C03A
+:1058A000895339C0883409F050C00E944B210E94AE
+:1058B00090060FEF13ED20E3015010402040E1F778
+:1058C00000C000000E94682839C09091ED03892F24
+:1058D0008095817080FB90F929F096609860909394
+:1058E000ED0334C0997F977F9093ED0327C080919B
+:1058F000ED0383FB222720F991E0922790FB83F9A7
+:105900008093ED039923D1F08091ED038160809322
+:10591000ED0314C08D5141E050E060E070E08A0179
+:105920009B0104C0000F111F221F331F8A95D2F75D
+:10593000C901B8010E9407250E944B2181E006C0E1
+:1059400061E070E080E090E0F5CF80E01F910F9182
+:10595000089580E0089580E00895CF93C82F809146
+:10596000FD03813069F018F08230C9F184C0E09104
+:105970008802F09189028081823209F07EC007C0DE
+:10598000E0918802F09189028081823261F48C2F4B
+:105990000E94A92C811104C08C2F0E94EE2B1DC0E7
+:1059A00081E090E01AC08C2F0E94AB2C811114C0B2
+:1059B000C43179F048F4CB3079F0C03109F061C0DE
+:1059C00082E08093FD0308C0C93219F0C83321F08A
+:1059D00058C01092FD0355C081E0817054C0C93297
+:1059E00091F120F5C43179F1B0F4C73009F047C026
+:1059F0008EE180938F0282E380938E028AE080930F
+:105A00008D0284E180938C0288E080938B0288E28F
+:105A100080938A0234C0CE51C63088F5EC2FF0E076
+:105A2000E65FFC4F80818093FC0329C0CE34E9F00F
+:105A300020F4CB3421F56AE013C0C13579F0C235CA
+:105A4000F1F461E00DC08091FC03882319F01092FD
+:105A5000FC0315C081E08093FD0315C061E006C022
+:105A60008091FC030E94282B0AC06AE08091FC030D
+:105A70000E949E2B04C01092FD0380E004C081E0D0
+:105A800002C080E0AACFCF9108950E94C928811159
+:105A900002C00E94A5280E94EA288093180480FF73
+:105AA00002C0869501C080E00C94540580911804D2
+:105AB000982F9695292F30E0233031054CF49F5FC5
+:105AC000990F8170892B8160809318040E94EE28C1
+:105AD0008091180486950C94540580911804982F91
+:105AE000969591F09158990F8170892B80931804A5
+:105AF0008E7F91E009F490E08091180490FB80F98A
+:105B0000809318040E94EE288091180486950C94C6
+:105B1000540580911804982F909590FB80F98093FC
+:105B200018040E94EE288091180480FF02C0869518
+:105B300001C080E00C94540590911804892F86953B
+:105B40008F5F8F779170843028F4880F892B809332
+:105B5000180402C090931804809118048E7F91E07D
+:105B600009F490E08091180490FB80F98093180468
+:105B70000E94EE288091180486950C94540520917B
+:105B80001804922F96958927982F990F822F81704C
+:105B9000892B809318048E7F91E009F490E0809126
+:105BA000180490FB80F9809318040E94EE288091DD
+:105BB000180486950C9454055058BB27AA270ED07C
+:105BC00075C166D130F06BD120F031F49F3F11F4F4
+:105BD0001EF45BC10EF4E095E7FB51C1E92F77D1CC
+:105BE00080F3BA17620773078407950718F071F4FA
+:105BF0009EF58FC10EF4E0950B2EBA2FA02D0B0150
+:105C0000B90190010C01CA01A0011124FF27591B01
+:105C100099F0593F50F4503E68F11A16F040A22F07
+:105C2000232F342F4427585FF3CF46953795279578
+:105C3000A795F0405395C9F77EF41F16BA0B620B77
+:105C4000730B840BBAF09150A1F0FF0FBB1F661FBE
+:105C5000771F881FC2F70EC0BA0F621F731F841F01
+:105C600048F4879577956795B795F7959E3F08F027
+:105C7000B3CF9395880F08F09927EE0F97958795E6
+:105C80000895D9D008F481E008950CD00FC107D150
+:105C900040F0FED030F021F45F3F19F0F0C0511118
+:105CA00039C1F3C014D198F39923C9F35523B1F343
+:105CB000951B550BBB27AA2762177307840738F07B
+:105CC0009F5F5F4F220F331F441FAA1FA9F333D0DA
+:105CD0000E2E3AF0E0E830D091505040E695001C8E
+:105CE000CAF729D0FE2F27D0660F771F881FBB1F4A
+:105CF000261737074807AB07B0E809F0BB0B802D24
+:105D0000BF01FF2793585F4F2AF09E3F510568F06F
+:105D1000B6C000C15F3FECF3983EDCF38695779503
+:105D20006795B795F7959F5FC9F7880F911D969571
+:105D3000879597F90895E1E0660F771F881FBB1FCD
+:105D4000621773078407BA0720F0621B730B840B7A
+:105D5000BA0BEE1F88F7E095089504D06894B1114E
+:105D6000D9C00895BCD088F09F5790F0B92F9927DB
+:105D7000B751A0F0D1F0660F771F881F991F1AF056
+:105D8000BA95C9F712C0B13081F0C3D0B1E008951F
+:105D9000C0C0672F782F8827B85F39F0B93FCCF3A0
+:105DA000869577956795B395D9F73EF4909580954C
+:105DB000709561957F4F8F4F9F4F0895E89409C06C
+:105DC00097FB3EF490958095709561957F4F8F4F2E
+:105DD0009F4F9923A9F0F92F96E9BB279395F69544
+:105DE000879577956795B795F111F8CFFAF4BB0FC2
+:105DF00011F460FF1BC06F5F7F4F8F4F9F4F16C026
+:105E0000882311F096E911C0772321F09EE8872FAF
+:105E1000762F05C0662371F096E8862F70E060E06B
+:105E20002AF09A95660F771F881FDAF7880F9695E4
+:105E3000879597F90895990F0008550FAA0BE0E888
+:105E4000FEEF16161706E807F907C0F0121613063C
+:105E5000E407F50798F0621B730B840B950B39F47C
+:105E60000A2661F0232B242B252B21F408950A26E2
+:105E700009F4A140A6958FEF811D811D089597F922
+:105E80009F6780E870E060E008959FEF80EC0895E0
+:105E900000240A9416161706180609060895002409
+:105EA0000A9412161306140605060895092E039483
+:105EB000000C11F4882352F0BB0F40F4BF2B11F4F7
+:105EC00060FF04C06F5F7F4F8F4F9F4F089557FD56
+:105ED0009058440F551F59F05F3F71F04795880F58
+:105EE00097FB991F61F09F3F79F0879508951216EF
+:105EF00013061406551FF2CF4695F1DF08C016169B
+:105F000017061806991FF1CF86957105610508944B
+:105F10000895E894BB2766277727CB0197F9089562
+:105F20008ADF08F48FEF08950BD0C0CFB1DF28F0DF
+:105F3000B6DF18F0952309F0A2CFA7CF1124EACF3E
+:105F4000C6DFA0F3959FD1F3950F50E0551F629FD8
+:105F5000F001729FBB27F00DB11D639FAA27F00DC2
+:105F6000B11DAA1F649F6627B00DA11D661F829FE9
+:105F70002227B00DA11D621F739FB00DA11D621FCE
+:105F8000839FA00D611D221F749F3327A00D611DEB
+:105F9000231F849F600D211D822F762F6A2F1124CD
+:105FA0009F5750408AF0E1F088234AF0EE0FFF1F20
+:105FB000BB1F661F771F881F91505040A9F79E3F57
+:105FC000510570F05CCFA6CF5F3FECF3983EDCF359
+:105FD000869577956795B795F795E7959F5FC1F794
+:105FE000FE2B880F911D9695879597F90895FA01D4
+:105FF000EE0FFF1F30962105310599F161157105EE
+:1060000061F48038BFE39B0749F1689490388105BB
+:1060100061F08038BFEF9B0741F0992342F5FF3FC5
+:10602000E1053105210511F1E8940894E795D901BE
+:10603000AA2329F4AB2FBE2FF85FD0F310C0FF5F67
+:1060400070F4A695E0F7F73950F019F0FF3A38F4FC
+:106050009F779F930CD00F9007FC905808953EF0C7
+:1060600014CF60E070E080E89FE308954FE79F77EA
+:106070005F934F933F932F939ED02F913F914F91DA
+:106080005F9152DF05C019F40EF0F9CE42CFFDCE7C
+:1060900026DFC8F39638C0F707F80F92E8942BE391
+:1060A0003AEA48EB5FE74EDF0F920F920F924DB73F
+:1060B0005EB70F92C0D0E4E4F1E016D04F915F914B
+:1060C000EF91FF91E595EE1FFF1F49F0FE57E06845
+:1060D0004427EE0F441FFA95E1F74195550B32D056
+:1060E0000F9007FE26C00895DF93CF931F930F9361
+:1060F000FF92EF92DF927B018C01689405C0DA2E4B
+:10610000EF011EDFFE01E894A5912591359145919F
+:106110005591AEF3EF0162DDFE019701A801DA941B
+:1061200079F7DF90EF90FF900F911F91CF91DF9162
+:1061300008959B01AC0160E070E080E89FE3A5CD8D
+:106140009ECEACC0CCDEE8F39923D9F3940F511D59
+:10615000BBF39150504094F059F0882332F0660F11
+:10616000771F881F91505040C1F79E3F510544F75B
+:10617000880F911D9695879597F908955F3FACF02C
+:10618000983E9CF0BB27869577956795B79508F460
+:10619000B1609395C1F7BB0F58F711F460FFE8CFDA
+:1061A0006F5F7F4F8F4F9F4FE3CFB4CE0EF076C01F
+:1061B0006CCE689464CE93DEC8F39923D1F3C6F312
+:1061C000DF93CF931F930F93FF92C92FDD2788236F
+:1061D0002AF02197660F771F881FDAF720E030E05A
+:1061E00040E85FEB9FE3883920F0803E30F0219655
+:1061F0008F77E3DCECE6F1E003C0DFDCE9E9F1E016
+:1062000073DF8B01BE01EC01FB2E6F577109759591
+:10621000771F880B990BD4DD28E132E741E35FE378
+:106220008FDEAF2D9801AE01FF900F911F91CF919E
+:10623000DF91D4DC3BCEFA01DC01AA0FBB1F9B012E
+:10624000AC01BF5728F422273327442750781FC0BA
+:10625000B75188F4AB2F0024469537952795011C3C
+:10626000A395D2F3002069F0220F331F441FB3958A
+:10627000DAF30DD0A1CC61307105A0E88A07B946E8
+:1062800030F49B01AC0166277727882790783096F9
+:1062900021F0208331834283538308959F3F31F05F
+:1062A000915020F4879577956795B795880F911D44
+:1062B0009695879597F90895AA1BBB1B51E107C0D6
+:1062C000AA1FBB1FA617B70710F0A61BB70B881F86
+:1062D000991F5A95A9F780959095BC01CD01089515
+:1062E00097FB072E16F4009407D077FD09D00E9483
+:1062F0005C3107FC05D03EF4909581959F4F089541
+:10630000709561957F4F0895EE0FFF1F0590F491F2
+:10631000E02D0994F999FECF92BD81BDF89A992795
+:1063200080B50895A8E1B0E042E050E00C94B231AD
+:10633000262FF999FECF92BD81BDF89A019700B43E
+:10634000021639F01FBA20BD0FB6F894FA9AF99ADE
+:106350000FBE08950196272F0E9499310C94983111
+:10636000DC01CB01FC01F999FECF06C0F2BDE1BD15
+:10637000F89A319600B40D9241505040B8F7089504
+:04638000F894FFCFBF
+:1063840007000C52D02445000000410000DC44000A
+:1063940000004152D0A4440000404100005C44008D
+:1063A40000004148F17644000000415C978A4400B3
+:1063B4000000411FD592440000004152D0A4440083
+:1063C4000000415CFFB844000000410AA7CF44002C
+:1063D4000000410000DC44000000410AA7CF440053
+:1063E4000000410000DC4400000041000000000007
+:1063F40000804000005C45000040410000000000B7
+:1064040000804052D02445000040410AA7CF4400F8
+:106414000000410000DC44000000410000000000D6
+:1064240000804052D024450000404100000000009C
+:1064340000804000005C45000040410AA7CF4400B2
+:106444000000410000DC44000000410000000000A6
+:1064540000804052D024450000404100000000006C
+:106464000080400AA74F45000040410AA7CF4400DE
+:106474000000410000DC4400000041000000000076
+:1064840000804052D024450000004100000000007C
+:106494000080405CFF38450000004100000000001F
+:1064A40000804052D02445000000410AA7CF440098
+:1064B4000000410000DC4400000041000000000036
+:1064C40000804052D024450000804153D024450030
+:1064D40000404160970A450000004154D0A44400A4
+:1064E4000000410000DC440000004160970A4500C0
+:1064F40000A041050000003F0000C8423214C0144F
+:106504009D14691435140101DA032808140A321E93
+:106514000000020004000500070009000B000C0045
+:106524000E001000110013001500170018001A00C7
+:106534001C001D001F002100230024002600280049
+:1065440029002B002D002F003000320034003500CC
+:10655400370039003B00400045002500260061005B
+:106564006000200037006400650066006700440096
+:106574004600240047003F4D3639BD0970093A09E9
+:1065840001099408AD08C608DF08010203040506E2
+:0465940007080900EB
+:00000001FF